1. 24 Jul, 2019 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips · 2756d914
      Takashi Iwai authored
      It turned out that the recent Intel HD-audio controller chips show a
      significant stall during the system PM resume intermittently.  It
      doesn't happen so often and usually it may read back successfully
      after one or more seconds, but in some rare worst cases the driver
      went into fallback mode.
      
      After trial-and-error, we found out that the communication stall seems
      covered by issuing the sync after each verb write, as already done for
      AMD and other chipsets.  So this patch enables the write-sync flag for
      the recent Intel chips, Skylake and onward, as a workaround.
      
      Also, since Broxton and co have the very same driver flags as Skylake,
      refer to the Skylake driver flags instead of defining the same
      contents again for simplification.
      
      BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=201901Reported-and-tested-by: default avatarTodd Brandt <todd.e.brandt@linux.intel.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      2756d914
  2. 23 Jul, 2019 5 commits
  3. 22 Jul, 2019 1 commit
  4. 19 Jul, 2019 1 commit
    • Takashi Iwai's avatar
      ALSA: pcm: Fix refcount_inc() on zero usage · 0e279dce
      Takashi Iwai authored
      The recent rewrite of PCM link lock management introduced the refcount
      in snd_pcm_group object, managed by the kernel refcount_t API.  This
      caused unexpected kernel warnings when the kernel is built with
      CONFIG_REFCOUNT_FULL=y.  As the warning line indicates, the problem is
      obviously that we start with refcount=0 and do refcount_inc() for
      adding each PCM link, while refcount_t API doesn't like refcount_inc()
      performed on zero.
      
      For adapting the proper refcount_t usage, this patch changes the logic
      slightly:
      - The initial refcount is 1, assuming the single list entry
      - The refcount is incremented / decremented at each PCM link addition
        and deletion
      - ... which allows us concentrating only on the refcount as a release
        condition
      
      Fixes: f57f3df0 ("ALSA: pcm: More fine-grained PCM link locking")
      BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204221Reported-and-tested-by: default avatarDuncan Overbruck <kernel@duncano.de>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      0e279dce
  5. 18 Jul, 2019 2 commits
  6. 16 Jul, 2019 5 commits
    • Takashi Iwai's avatar
      ALSA: hda - Don't resume forcibly i915 HDMI/DP codec · 4914da2f
      Takashi Iwai authored
      We apply the codec resume forcibly at system resume callback for
      updating and syncing the jack detection state that may have changed
      during sleeping.  This is, however, superfluous for the codec like
      Intel HDMI/DP, where the jack detection is managed via the audio
      component notification; i.e. the jack state change shall be reported
      sooner or later from the graphics side at mode change.
      
      This patch changes the codec resume callback to avoid the forcible
      resume conditionally with a new flag, codec->relaxed_resume, for
      reducing the resume time.  The flag is set in the codec probe.
      
      Although this doesn't fix the entire bug mentioned in the bugzilla
      entry below, it's still a good optimization and some improvements are
      seen.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=201901
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      4914da2f
    • Takashi Iwai's avatar
      ALSA: hda/hdmi - Fix i915 reverse port/pin mapping · 3140aafb
      Takashi Iwai authored
      The recent fix for Icelake HDMI codec introduced the mapping from pin
      NID to the i915 gfx port number.  However, it forgot the reverse
      mapping from the port number to the pin NID that is used in the ELD
      notifier callback.  As a result, it's processed to a wrong widget and
      gives a warning like
        snd_hda_codec_hdmi hdaudioC0D2: HDMI: pin nid 5 not registered
      
      This patch corrects it with a proper reverse mapping function.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204133
      Fixes: b0d8bc50 ("ALSA: hda: hdmi - add Icelake support")
      Reviewed-by: default avatarKai Vehmanen <kai.vehmanen@linux.intel.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      3140aafb
    • Takashi Iwai's avatar
      ALSA: hda/hdmi - Remove duplicated define · eb417711
      Takashi Iwai authored
      INTEL_GET_VENDOR_VERB is defined twice identically.
      Let's remove a superfluous line.
      
      Fixes: b0d8bc50 ("ALSA: hda: hdmi - add Icelake support")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      eb417711
    • Takashi Iwai's avatar
      ALSA: seq: Break too long mutex context in the write loop · ede34f39
      Takashi Iwai authored
      The fix for the racy writes and ioctls to sequencer widened the
      application of client->ioctl_mutex to the whole write loop.  Although
      it does unlock/relock for the lengthy operation like the event dup,
      the loop keeps the ioctl_mutex for the whole time in other
      situations.  This may take quite long time if the user-space would
      give a huge buffer, and this is a likely cause of some weird behavior
      spotted by syzcaller fuzzer.
      
      This patch puts a simple workaround, just adding a mutex break in the
      loop when a large number of events have been processed.  This
      shouldn't hit any performance drop because the threshold is set high
      enough for usual operations.
      
      Fixes: 7bd80091 ("ALSA: seq: More protection for concurrent write and ioctl races")
      Reported-by: syzbot+97aae04ce27e39cbfca9@syzkaller.appspotmail.com
      Reported-by: syzbot+4c595632b98bb8ffcc66@syzkaller.appspotmail.com
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      ede34f39
    • Hui Wang's avatar
      ALSA: hda/realtek: apply ALC891 headset fixup to one Dell machine · 4b4e0e32
      Hui Wang authored
      Without this patch, the headset-mic and headphone-mic don't work.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarHui Wang <hui.wang@canonical.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      4b4e0e32
  7. 15 Jul, 2019 4 commits
  8. 10 Jul, 2019 2 commits
  9. 08 Jul, 2019 8 commits
  10. 07 Jul, 2019 8 commits
    • Takashi Iwai's avatar
      Merge branch 'topic/hda-refresh-cleanup' into for-next · b89b889a
      Takashi Iwai authored
      Merge a cleanup for HD-audio widget refresh code
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      b89b889a
    • Nicola Lunghi's avatar
      ALSA: usb-audio: fix Line6 Helix audio format rates · d4bd3053
      Nicola Lunghi authored
      Line6 Helix and HX stomp devices don't support retrieving
      the number of clock sample rate.
      
      Add a quirk to set it to 48Khz by default.
      
      [ fixed wrong variable initialization changes by tiwai ]
      Signed-off-by: default avatarNicola Lunghi <nick83ola@gmail.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      d4bd3053
    • Takashi Sakamoto's avatar
      firewire-motu: fix wrong reference count for stream functionality at error... · ba18ca2b
      Takashi Sakamoto authored
      firewire-motu: fix wrong reference count for stream functionality at error path of rawmidi interface
      
      In IEC 61883-6, several types of sampling data can be multiplexed into
      payload of common isochronous packet (CIP). For typical audio and music
      units, PCM samples and MIDI messages are multiplexed into one packet
      streaming.
      
      ALSA firewire-motu driver allows applications of rawmidi interface to
      start packet streaming for transmission of MIDI messages. However at
      error path, the reference count of stream functionality is not operated
      correctly. This can brings a bug that packet streaming is not stopped
      when all referrers release the count.
      
      This commit fixes the bug.
      
      Fixes: 8edc56ec ("ALSA: firewire-motu: reserve/release isochronous resources in pcm.hw_params/hw_free callbacks")
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      ba18ca2b
    • Takashi Sakamoto's avatar
      ALSA: firewire-digi00x: fix wrong reference count for stream functionality at... · 64582c56
      Takashi Sakamoto authored
      ALSA: firewire-digi00x: fix wrong reference count for stream functionality at error path of rawmidi interface
      
      In IEC 61883-6, several types of sampling data can be multiplexed into
      payload of common isochronous packet (CIP). For typical audio and music
      units, PCM samples and MIDI messages are multiplexed into one packet
      streaming.
      
      ALSA firewire-digi00x driver allows applications of rawmidi interface to
      start packet streaming for transmission of MIDI messages. However at
      error path, the reference count of stream functionality is not operated
      correctly. This can brings a bug that packet streaming is not stopped
      when all referrers release the count.
      
      This commit fixes the bug.
      
      Fixes: ae8ffbb2 ("ALSA: firewire-digi00x: reserve/release isochronous resources in pcm.hw_params/hw_free callbacks")
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      64582c56
    • Takashi Sakamoto's avatar
      ALSA: dice: fix wrong reference count for stream functionality at error path of rawmidi interface · e79c3f0c
      Takashi Sakamoto authored
      In IEC 61883-6, several types of sampling data can be multiplexed into
      payload of common isochronous packet (CIP). For typical audio and music
      units, PCM samples and MIDI messages are multiplexed into one packet
      streaming.
      
      ALSA dice driver allows applications of rawmidi interface to start
      packet streaming for transmission of MIDI messages. However at error
      path, the reference count of stream functionality is not operated
      correctly. This can brings a bug that packet streaming is not stopped
      when all referrers release the count.
      
      This commit fixes the bug.
      
      Fixes: 3cd2c2d7 ("ALSA: dice: reserve/release isochronous resources in pcm.hw_params/hw_free callbacks")
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      e79c3f0c
    • Takashi Sakamoto's avatar
      ALSA: oxfw: fix wrong reference count for stream functionality at error path of rawmidi interface · 03a954ae
      Takashi Sakamoto authored
      In IEC 61883-6, several types of sampling data can be multiplexed into
      payload of common isochronous packet (CIP). For typical audio and music
      units, PCM samples and MIDI messages are multiplexed into one packet
      streaming.
      
      ALSA oxfw driver allows applications of rawmidi interface to start
      packet streaming for transmission of MIDI messages. However at error
      path, the reference count of stream functionality is not operated
      correctly. This can brings a bug that packet streaming is not stopped
      when all referrers release the count.
      
      This commit fixes the bug.
      
      Fixes: 4f380d00 ("ALSA: oxfw: configure packet format in pcm.hw_params callback")
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      03a954ae
    • Takashi Sakamoto's avatar
      ALSA: fireworks: fix wrong reference count for stream functionality at error... · 2e9f17e3
      Takashi Sakamoto authored
      ALSA: fireworks: fix wrong reference count for stream functionality at error path of rawmidi interface
      
      In IEC 61883-6, several types of sampling data can be multiplexed into
      payload of common isochronous packet (CIP). For typical audio and music
      units, PCM samples and MIDI messages are multiplexed into one packet
      streaming.
      
      ALSA fireworks driver allows applications of rawmidi interface to start
      packet streaming for transmission of MIDI messages. However at error
      path, the reference count of stream functionality is not operated
      correctly. This can brings a bug that packet streaming is not stopped
      when all referrers release the count.
      
      This commit fixes the bug.
      
      Fixes: 3d725066 ("ALSA: fireworks: configure sampling transfer frequency in pcm.hw_params callback")
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      2e9f17e3
    • Takashi Sakamoto's avatar
      ALSA: bebob: fix wrong reference count for stream functionality at error path of rawmidi interface · 097f8ba3
      Takashi Sakamoto authored
      In IEC 61883-6, several types of sampling data can be multiplexed into
      payload of common isochronous packet (CIP). For typical audio and music
      units, PCM samples and MIDI messages are multiplexed into one packet
      streaming.
      
      ALSA bebob driver allows applications of rawmidi interface to start
      packet streaming for transmission of MIDI messages. However at error
      path, the reference count of stream functionality is not operated
      correctly. This can brings a bug that packet streaming is not stopped
      when all referrers release the count.
      
      This commit fixes the bug.
      
      Fixes: ac2888b9 ("ALSA: bebob: configure sampling transfer frequency in pcm.hw_params callback")
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      097f8ba3
  11. 06 Jul, 2019 3 commits