1. 05 11月, 2015 1 次提交
  2. 03 11月, 2015 1 次提交
    • T
      ALSA: hda - Fix lost 4k BDL boundary workaround · de1ab6af
      Takashi Iwai 提交于
      During the migration to HDA core code, we lost the workaround for 4k
      BDL boundary.  The flag exists in the new hdac_bus, but it's never
      set.  This resulted in the sudden sound stall on some controllers that
      require this workaround like Creative Recon3D.
      
      This patch fixes the issue by setting the flag for such controllers
      properly.
      
      Fixes: ccc98865 ('ALSA: hda - Migrate more hdac_stream codes')
      Cc: <stable@vger.kernel.org> # v4.2+
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      de1ab6af
  3. 27 10月, 2015 2 次提交
  4. 26 10月, 2015 1 次提交
  5. 20 10月, 2015 2 次提交
    • T
      ALSA: hda - Fix deadlock at error in building PCM · d289619a
      Takashi Iwai 提交于
      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: NTakashi Iwai <tiwai@suse.de>
      d289619a
    • T
      ALSA: hda - convert to hda_device_id · b9a94a9c
      Takashi Iwai 提交于
      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: NVinod Koul <vinod.koul@intel.com>
      Tested-by: NSubhransu S Prusty <subhransu.s.prusty@intel.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b9a94a9c
  6. 18 10月, 2015 2 次提交
  7. 15 10月, 2015 3 次提交
    • T
      ALSA: hda - Update mixer name for the lower codec address · 7fbe824a
      Takashi Iwai 提交于
      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: NTakashi Iwai <tiwai@suse.de>
      7fbe824a
    • T
      ALSA: hda - consolidate chip rename functions · ded255be
      Takashi Iwai 提交于
      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: NTakashi Iwai <tiwai@suse.de>
      ded255be
    • T
      ALSA: hda - Enable widget power saving for Cirrus codecs · 3e19fec3
      Takashi Iwai 提交于
      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: NTakashi Iwai <tiwai@suse.de>
      3e19fec3
  8. 13 10月, 2015 1 次提交
  9. 09 10月, 2015 1 次提交
  10. 05 10月, 2015 1 次提交
  11. 03 10月, 2015 2 次提交
  12. 25 9月, 2015 2 次提交
  13. 24 9月, 2015 1 次提交
  14. 06 9月, 2015 3 次提交
  15. 04 9月, 2015 1 次提交
  16. 03 9月, 2015 1 次提交
  17. 02 9月, 2015 1 次提交
  18. 26 8月, 2015 1 次提交
  19. 25 8月, 2015 3 次提交
    • T
      ALSA: hda - Refresh sysfs at snd_hda_codec_update_widgets() · 9dcc144b
      Takashi Iwai 提交于
      In the commit [fa4f18b4: ALSA: hda - Refresh widgets sysfs at
      probing Haswell+ HDMI codecs], snd_hdac_refresh_widget_sysfs() is
      explicitly called in the codec driver.  But this results in refreshing
      twice, as snd_hdac_refresh_widget_sysfs() itself calls
      snd_hdac_refresh_widgets() function.
      
      Instead, we can replace the call in snd_hda_codec_update_widgets()
      with snd_hdac_refresh_widget_sysfs().  This also fixes the missing
      sysfs update for ca0132, too.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      9dcc144b
    • T
      ALSA: hda - Fix path power activation · c7cd0ef6
      Takashi Iwai 提交于
      The widget power-saving code tries to turn up/down the power of each
      widget in the I/O paths that are modified at each jack plug/unplug.
      The recent report revealed that the power activation leaves some
      widgets unpowered after plugging.  This is because
      snd_hda_activate_path() turns on path->active flag at the end of the
      function while the path power management is done before that.  Then
      it's regarded as if nothing is active, and the driver turns off the
      power.
      
      The fix is simply to set the flag at the beginning of the function,
      before trying to power up.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102521
      Cc: <stable@vger.kernel.org> [v4.1+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c7cd0ef6
    • T
      ALSA: hda - Check all inputs for is_active_nid_for_any() · 9d2b48f7
      Takashi Iwai 提交于
      The is_active_nid_for_any() function in the generic parser is supposed
      to check all connections from/to the given widget, but the current
      code checks only the first input connection (index = 0).
      
      This patch corrects the code to check all inputs by passing -1 to
      index argument.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102521
      Cc: <stable@vger.kernel.org> [v4.1+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      9d2b48f7
  20. 24 8月, 2015 1 次提交
  21. 21 8月, 2015 2 次提交
  22. 19 8月, 2015 1 次提交
  23. 17 8月, 2015 4 次提交
  24. 13 8月, 2015 1 次提交
  25. 10 8月, 2015 1 次提交
    • T
      ALSA: hda - Fix pin config and mapping on Alienware 15 · fe14f39e
      Takashi Iwai 提交于
      Alienware 15 has CA0132 codec for its onboard sound, but the pin
      config and mapping seem quite different from other Creative boards.
      This patch corrects them, at least, for providing the right headphone
      and mic jack notification, as well as removing the non-existing SPDIF
      pins.
      
      Even with this fix, not all stuff works perfectly yet, mainly because
      of the badly written ca0132 driver code -- it has too many implicit
      assumptions of pin configs and maps.  Nevertheless, this is a small
      good step forward.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=101981Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      fe14f39e