1. 07 Dec, 2018 2 commits
  2. 06 Dec, 2018 2 commits
  3. 05 Dec, 2018 4 commits
  4. 03 Dec, 2018 4 commits
  5. 29 Nov, 2018 7 commits
    • Takashi Iwai's avatar
      Merge branch 'topic/leds-trigger' into for-next · 22b3b41c
      Takashi Iwai authored
      This is a series of patches for conversion to LEDs audio-mute
      trigger.  It's based on 4.20-rc3 to be an immutable branch.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      22b3b41c
    • Takashi Iwai's avatar
      ALSA: pcm: Fix interval evaluation with openmin/max · 5363857b
      Takashi Iwai authored
      As addressed in alsa-lib (commit b420056604f0), we need to fix the
      case where the evaluation of PCM interval "(x x+1]" leading to
      -EINVAL.  After applying rules, such an interval may be translated as
      "(x x+1)".
      
      Fixes: ff2d6acd ("ALSA: pcm: Fix snd_interval_refine first/last with open min/max")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      5363857b
    • Kai-Heng Feng's avatar
      ALSA: hda: Add support for AMD Stoney Ridge · 3deef52c
      Kai-Heng Feng authored
      It's similar to other AMD audio devices, it also supports D3, which can
      save some power drain.
      Signed-off-by: default avatarKai-Heng Feng <kai.heng.feng@canonical.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      3deef52c
    • Tony Das's avatar
      ALSA: usb-audio: Add SMSL D1 to quirks for native DSD support · 44ff57e6
      Tony Das authored
      This patch adds quirk VID/PID IDs for the SMSL D1 in order to enable
      Native DSD support.
      
      [ Moved the added entry in numerical order -- tiwai ]
      Signed-off-by: default avatarTony Das <tdas444@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      44ff57e6
    • Chanho Min's avatar
      ALSA: pcm: Fix starvation on down_write_nonblock() · b888a5f7
      Chanho Min authored
      Commit 67ec1072 ("ALSA: pcm: Fix rwsem deadlock for non-atomic PCM
      stream") fixes deadlock for non-atomic PCM stream. But, This patch
      causes antother stuck.
      If writer is RT thread and reader is a normal thread, the reader
      thread will be difficult to get scheduled. It may not give chance to
      release readlocks and writer gets stuck for a long time if they are
      pinned to single cpu.
      
      The deadlock described in the previous commit is because the linux
      rwsem queues like a FIFO. So, we might need non-FIFO writelock, not
      non-block one.
      
      My suggestion is that the writer gives reader a chance to be scheduled
      by using the minimum msleep() instaed of spinning without blocking by
      writer. Also, The *_nonblock may be changed to *_nonfifo appropriately
      to this concept.
      In terms of performance, when trylock is failed, this minimum periodic
      msleep will have the same performance as the tick-based
      schedule()/wake_up_q().
      
      [ Although this has a fairly high performance penalty, the relevant
        code path became already rare due to the previous commit ("ALSA:
        pcm: Call snd_pcm_unlink() conditionally at closing").  That is, now
        this unconditional msleep appears only when using linked streams,
        and this must be a rare case.  So we accept this as a quick
        workaround until finding a more suitable one -- tiwai ]
      
      Fixes: 67ec1072 ("ALSA: pcm: Fix rwsem deadlock for non-atomic PCM stream")
      Suggested-by: default avatarWonmin Jung <wonmin.jung@lge.com>
      Signed-off-by: default avatarChanho Min <chanho.min@lge.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      b888a5f7
    • Takashi Iwai's avatar
      ALSA: pcm: Call snd_pcm_unlink() conditionally at closing · b51abed8
      Takashi Iwai authored
      Currently the PCM core calls snd_pcm_unlink() always unconditionally
      at closing a stream.  However, since snd_pcm_unlink() invokes the
      global rwsem down, the lock can be easily contended.  More badly, when
      a thread runs in a high priority RT-FIFO, it may stall at spinning.
      
      Basically the call of snd_pcm_unlink() is required only for the linked
      streams that are already rare occasion.  For normal use cases, this
      code path is fairly superfluous.
      
      As an optimization (and also as a workaround for the RT problem
      above in normal situations without linked streams), this patch adds a
      check before calling snd_pcm_unlink() and calls it only when needed.
      Reported-by: default avatarChanho Min <chanho.min@lge.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      b51abed8
    • Sameer Pujar's avatar
      ALSA: hda/tegra: compatible string as shortname · c94800a3
      Sameer Pujar authored
      By default HDA sound card is registered with shortname "tegra-hda".
      Same driver is used across tegra platforms and it is necessary to
      distinguish between platforms to use platform specific settings from
      userspace. One such example is, hdmi port on different platforms use
      different alsa pcm device ID. For hdmi playback to work it should
      open correct pcm device depending on the platform.
      
      This patch applies shortname from first compatible string provided
      in root node of device tree. Userspace then can use this card name
      to apply specific settings.
      Signed-off-by: default avatarSameer Pujar <spujar@nvidia.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      c94800a3
  6. 28 Nov, 2018 7 commits
  7. 27 Nov, 2018 3 commits
  8. 26 Nov, 2018 1 commit
  9. 24 Nov, 2018 5 commits
    • Takashi Iwai's avatar
      ALSA: control: Consolidate helpers for adding and replacing ctl elements · 3103c08f
      Takashi Iwai authored
      Both snd_ctl_add() and snd_ctl_replace() process the things in a
      fairly similar way, and indeed the most of the codes can be unified.
      
      This patch is a refactoring to consolidate the both functions to call
      a single helper with an extra "mode" argument.  There should be no
      functional difference, except for one additional sanity check applied
      now to snd_ctl_replace() (which was rather overlooking, IMO), too.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      3103c08f
    • Takashi Iwai's avatar
      Merge branch 'for-linus' into for-next · 5f2ad594
      Takashi Iwai authored
      Pull the user control race fix, so that we can continue working on the
      code refactoring.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      5f2ad594
    • Takashi Iwai's avatar
      ALSA: control: Fix race between adding and removing a user element · e1a7bfe3
      Takashi Iwai authored
      The procedure for adding a user control element has some window opened
      for race against the concurrent removal of a user element.  This was
      caught by syzkaller, hitting a KASAN use-after-free error.
      
      This patch addresses the bug by wrapping the whole procedure to add a
      user control element with the card->controls_rwsem, instead of only
      around the increment of card->user_ctl_count.
      
      This required a slight code refactoring, too.  The function
      snd_ctl_add() is split to two parts: a core function to add the
      control element and a part calling it.  The former is called from the
      function for adding a user control element inside the controls_rwsem.
      
      One change to be noted is that snd_ctl_notify() for adding a control
      element gets called inside the controls_rwsem as well while it was
      called outside the rwsem.  But this should be OK, as snd_ctl_notify()
      takes another (finer) rwlock instead of rwsem, and the call of
      snd_ctl_notify() inside rwsem is already done in another code path.
      
      Reported-by: syzbot+dc09047bce3820621ba2@syzkaller.appspotmail.com
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      e1a7bfe3
    • Takashi Iwai's avatar
      ALSA: sparc: Fix invalid snd_free_pages() at error path · 9a20332a
      Takashi Iwai authored
      Some spurious calls of snd_free_pages() have been overlooked and
      remain in the error paths of sparc cs4231 driver code.  Since
      runtime->dma_area is managed by the PCM core helper, we shouldn't
      release manually.
      
      Drop the superfluous calls.
      Reviewed-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      9a20332a
    • Takashi Iwai's avatar
      ALSA: wss: Fix invalid snd_free_pages() at error path · 7b691541
      Takashi Iwai authored
      Some spurious calls of snd_free_pages() have been overlooked and
      remain in the error paths of wss driver code.  Since runtime->dma_area
      is managed by the PCM core helper, we shouldn't release manually.
      
      Drop the superfluous calls.
      Reviewed-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7b691541
  10. 23 Nov, 2018 5 commits