Skip to content
  1. Nov 14, 2015
  2. Nov 12, 2015
    • Dan Williams's avatar
      ALSA: pci: depend on ZONE_DMA · 2db1a579
      Dan Williams authored
      
      
      There are several sound drivers that 'select ZONE_DMA'.  This is
      backwards as ZONE_DMA is an architecture capability exported to drivers.
      Switch the polarity of the dependency to disable these drivers when the
      architecture does not support ZONE_DMA.  This was discovered in the
      context of testing/enabling devm_memremap_pages() which depends on
      ZONE_DEVICE.  ZONE_DEVICE in turn depends on !ZONE_DMA.
      
      Reported-by: default avatarJeff Moyer <jmoyer@redhat.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      2db1a579
    • Takashi Iwai's avatar
      ALSA: hda - Simplify phantom jack handling for HDMI/DP · 909cadc6
      Takashi Iwai authored
      
      
      The HDMI codec parser may create a phantom jack, but the helper
      function snd_hda_jack_add_kctl() treats always as a normal jack.  This
      is superfluous as the jack query is executed at each time the jack
      sync is performed.
      
      Since the HDMI codec parser is the only caller of this function, it's
      easier to change back this directly calling the original
      __snd_hda_jack_add_kctl() with phantom_jack parameter.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      909cadc6
  3. Nov 11, 2015
  4. Nov 05, 2015
  5. Nov 04, 2015
  6. Nov 02, 2015
  7. Nov 01, 2015
  8. Oct 30, 2015
  9. Oct 27, 2015
  10. Oct 26, 2015
  11. Oct 21, 2015
  12. Oct 20, 2015
    • Takashi Iwai's avatar
      ALSA: hda - Fix deadlock at error in building PCM · d289619a
      Takashi Iwai authored
      The HDA codec driver issues snd_hda_codec_reset() at the error path of
      PCM build.  This was needed in the earlier code base, but the recent
      rewrite to use the standard bus binding made this a deadlock:
       modprobe        D 0000000000000005     0   720    716 0x00000080
       Call Trace:
        [<ffffffff816a5dbe>] schedule+0x3e/0x90
        [<ffffffff816a61a5>] schedule_preempt_disabled+0x15/0x20
        [<ffffffff816a7ae5>] __mutex_lock_slowpath+0xb5/0x120
        [<ffffffff816a7b6b>] mutex_lock+0x1b/0x30
        [<ffffffff8148656b>] device_release_driver+0x1b/0x30
        [<ffffffff81485c15>] bus_remove_device+0x105/0x180
        [<ffffffff814822b9>] device_del+0x139/0x260
        [<ffffffffa05e0ec5>] snd_hdac_device_unregister+0x25/0x30 [snd_hda_core]
        [<ffffffffa074fa6a>] snd_hda_codec_reset+0x2a/0x70 [snd_hda_codec]
        [<ffffffffa075007b>] snd_hda_codec_build_pcms+0x18b/0x1b0 [snd_hda_codec]
        [<ffffffffa074a44e>] hda_codec_driver_probe+0xbe/0x140 [snd_hda_codec]
        [<ffffffff81486ac4>] driver_probe_device+0x1f4/0x460
        [<ffffffff81486dc0>] __driver_attach+0x90/0xa0
        [<ffffffff81484844>] bus_for_each_dev+0x64/0xa0
        [<ffffffff814862de>] driver_attach+0x1e/0x20
        [<ffffffff81485e7b>] bus_add_driver+0x1eb/0x280
        [<ffffffff81487680>] driver_register+0x60/0xe0
        [<ffffffffa074a0da>] __hda_codec_driver_register+0x5a/0x60 [snd_hda_codec]
        [<ffffffffa070a01e>] realtek_driver_init+0x1e/0x1000 [snd_hda_codec_realtek]
        [<ffffffff810002f3>] do_one_initcall+0xb3/0x200
        [<ffffffff816a1fc5>] do_init_module+0x60/0x1f8
        [<ffffffff810ee5c3>] load_module+0x1653/0x1bd0
        [<ffffffff810eed48>] SYSC_finit_module+0x98/0xc0
        [<ffffffff810eed8e>] SyS_finit_module+0xe/0x10
        [<ffffffff816aa032>] entry_SYSCALL_64_fastpath+0x16/0x75
      
      The simple fix is just to remove this call, since we don't need to
      think about unbinding at there any longer.
      
      Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=948758
      
      
      Cc: <stable@vger.kernel.org> # v4.1+
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      d289619a
    • Takashi Iwai's avatar
      ALSA: hda - convert to hda_device_id · b9a94a9c
      Takashi Iwai authored
      
      
      Finally we have a proper infrastructure to generate the modaliases
      automatically, let's move to hda_device_id from the legacy
      hda_codec_preset that contains basically the same information.
      
      The patch function hook is stored in driver_data field, which is long,
      and we need an explicit cast.  Other than that, the conversion is
      mostly straightforward.  Each entry is even simplified using a macro,
      and the lengthy (and error-prone) manual modaliases got removed.
      
      As a result, we achieved a quite good diet:
       14 files changed, 407 insertions(+), 595 deletions(-)
      
      Reviewed-by: default avatarVinod Koul <vinod.koul@intel.com>
      Tested-by: default avatarSubhransu S Prusty <subhransu.s.prusty@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      b9a94a9c
  13. Oct 17, 2015
  14. Oct 15, 2015
    • Takashi Iwai's avatar
      ALSA: hda - Update mixer name for the lower codec address · 7fbe824a
      Takashi Iwai authored
      
      
      In most cases, we prefer the onboard codec as the primary device, thus
      it's better to set it as the mixer name.  Currently, however, the
      mixer name is updated per the device instantiation order, and user
      gets often HDMI/DP or other seen as a mixer chip name.  Also, if a
      codec name is renamed by the driver, the old chip name might be left
      still as the mixer name.
      
      This patch addresses these issues by remembering the chip address that
      was referred as the mixer name.  When a codec with the same or lower
      address gives its name, renew the mixer name accordingly, as it's
      either the update of the codec name or we get likely the more
      appropriate chip as the reference.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7fbe824a
    • Takashi Iwai's avatar
      ALSA: hda - consolidate chip rename functions · ded255be
      Takashi Iwai authored
      
      
      A few multiple codec drivers do renaming the chip_name string but all
      these are open-coded and some of them have even no error check.  Let's
      make common helpers to do it properly.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      ded255be
    • Takashi Iwai's avatar
      ALSA: hda - Enable widget power saving for Cirrus codecs · 3e19fec3
      Takashi Iwai authored
      
      
      Cirrus codecs have also fine power controls on each widget, thus it
      gets benefit from the recent widget power-saving feature.  As we
      haven't seen any obvious regressions with tests on some MacBooks,
      let's try to enable it.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      3e19fec3
  15. Oct 13, 2015
  16. Oct 08, 2015
  17. Oct 04, 2015
  18. Oct 03, 2015
  19. Sep 25, 2015
  20. Sep 24, 2015
    • Takashi Iwai's avatar
      ALSA: hda - Disable power_save_node for Thinkpads · 7f57d803
      Takashi Iwai authored
      Lenovo Thinkpads with recent Realtek codecs seem suffering from click
      noises at power transition since the introduction of widget power
      saving in 4.1 kernel.  Although this might be solved by some delays in
      appropriate points, as a quick workaround, just disable the
      power_save_node feature for now.  The gain it gives is relatively
      small, and this makes the situation back to pre 4.1 time.
      
      This patch ended up with a bit more code changes than usual because
      the existing fixup for Thinkpads is highly chained.  Instead of adding
      yet another chain, combine a few of them into a single fixup entry, as
      a gratis cleanup.
      
      Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=943982
      
      
      Cc: <stable@vger.kernel.org> # v4.1+
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7f57d803
    • Takashi Iwai's avatar
      ALSA: hda/tegra - async probe for avoiding module loading deadlock · 83510441
      Takashi Iwai authored
      
      
      The Tegra HD-audio controller driver causes deadlocks when loaded as a
      module since the driver invokes request_module() at binding with the
      codec driver.  This patch works around it by deferring the probe in a
      work like Intel HD-audio controller driver does.  Although hovering
      the codec probe stuff into udev would be a better solution, it may
      cause other regressions, so let's try this band-aid fix until the more
      proper solution gets landed.
      
      Reported-by: default avatarThierry Reding <treding@nvidia.com>
      Tested-by: default avatarThierry Reding <treding@nvidia.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      83510441
  21. Sep 11, 2015
  22. Sep 05, 2015
  23. Sep 04, 2015
Loading