1. 23 2月, 2015 2 次提交
    • T
      ALSA: hda - Bind codecs via standard bus · d8a766a1
      Takashi Iwai 提交于
      Now we create the standard HD-audio bus (/sys/bus/hdaudio), and bind
      the codec driver with the codec device over there.  This is the first
      step of the whole transition so that the changes to each codec driver
      are kept as minimal as possible.
      
      Each codec driver needs to register hda_codec_driver struct containing
      the currently existing preset via the new helper macro
      module_hda_codec_driver().  The old hda_codec_preset_list is replaced
      with this infrastructure.  The generic parsers (for HDMI and other)
      are also included in the preset with the special IDs to bind
      uniquely.
      
      In HD-audio core side, the device binding code is split to
      hda_bind.c.  It provides the snd_hda_bus_type implementation to match
      the codec driver with the given codec vendor ID.  It also manages the
      module auto-loading by itself like before: when the matching isn't
      found, it tries to probe the corresponding codec modules, and finally
      falls back to the generic drivers.  (The special ID mentioned above is
      set at this stage.)
      
      The only visible change to outside is that the hdaudio sysfs entry now
      appears in /sys/bus/devices, not as a sound class device.
      
      More works to move the suspend/resume and remove ops will be
      (hopefully) done in later patches.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      d8a766a1
    • T
      ALSA: hda - Add pin configs for ASUS mobo with IDT 92HD73XX codec · 6426460e
      Takashi Iwai 提交于
      BIOS doesn't seem to set up pins for 5.1 and the SPDIF out, so we need
      to give explicitly here.
      Reported-and-tested-by: NMisan Thropos <misanthropos@gmx.de>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      6426460e
  2. 06 2月, 2015 1 次提交
  3. 05 1月, 2015 1 次提交
  4. 16 9月, 2014 2 次提交
    • T
      ALSA: hda - Remove superfluous callbacks from STAC/IDT codecs · aa699c49
      Takashi Iwai 提交于
      Now we can register multiple callbacks to each jack, most of hooks
      used in STAC/IDT codecs can be removed by enabling the powermap update
      callback for all relevant pins.  Along with this, the call of
      stac_init_power_map() can be moved back to stac_parse_auto_config()
      and the own build_controls callback can be removed, too.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      aa699c49
    • T
      ALSA: hda - Allow multiple callbacks for jack · 1a4f69d5
      Takashi Iwai 提交于
      So far, hda_jack infrastructure allows only one callback per jack, and
      this makes things slightly complicated when a driver wants to assign
      multiple tasks to a jack, e.g. the standard auto-mute with a power
      up/down sequence.  This can be simplified if the hda_jack accepts
      multiple callbacks.
      
      This patch is such an extension: the callback-specific part (the
      function and private_data) is split to another struct from
      hda_jack_tbl, and multiple such objects can be assigned to a single
      hda_jack_tbl entry.
      
      The new struct hda_jack_callback is passed to each callback function
      now, thus the patch became bigger than expected.  But these changes
      are mostly trivial.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1a4f69d5
  5. 15 9月, 2014 1 次提交
  6. 11 9月, 2014 2 次提交
    • T
      ALSA: hda - Get rid of action field from struct hda_jack_tbl · 62f949bf
      Takashi Iwai 提交于
      The action value assigned to each hda_jack_tbl entry is mostly
      superfluous.  The actually used values are either the widget NID or a
      value specific to the callback.
      
      The former case can be simply replaced by a reference to widget NID
      itself.  The only place doing the latter is STAC/IDT codec driver for
      the powermap handling.  But, the code doesn't need to check the action
      field at all -- the function jack_update_power() is called either with
      a specific pin or with NULL.  So the check of jack->action can be
      removed completely there, too.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      62f949bf
    • T
      ALSA: hda - Fix invalid pin powermap without jack detection · 7a9744cb
      Takashi Iwai 提交于
      When a driver is set up without the jack detection explicitly (either
      by passing a model option or via a specific fixup), the pin powermap
      of IDT/STAC codecs is set up wrongly, resulting in the silence
      output.  It's because of a logic failure in stac_init_power_map().
      It tries to avoid creating a callback for the pins that have other
      auto-hp and auto-mic callbacks, but the check is done in a wrong way
      at a wrong time.  The stac_init_power_map() should be called after
      creating other jack detection ctls, and the jack callback should be
      created only for jack-detectable widgets.
      
      This patch fixes the check in stac_init_power_map() and its callee
      at the right place, after snd_hda_gen_build_controls().
      Reported-by: NAdam Richter <adam_richter2004@yahoo.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7a9744cb
  7. 03 9月, 2014 1 次提交
    • T
      ALSA: hda - Add TLV_DB_SCALE_MUTE bit for relevant controls · d89c6c0c
      Takashi Iwai 提交于
      The DACs on Sigmatel/IDT codecs do mute at the lowest volume level,
      and in the earlier drivers, we passed TLV_DB_SCALE_MUTE bit for each
      volume control element like Speaker and Headphone as well as Master.
      Along with the translation to the generic parser, however, the TLV bit
      was lost for the slave controls (e.g. Speaker) but set only to
      Master.  In theory this should have sufficed, but apps, particularly
      PA, do care the slave volume bits, so we seem to see a regression in
      the volume controls.
      
      This patch adds a flag to hda_gen_spec to specify the DAC mute
      feature, and adds the TLV bit properly for all relevant volume
      controls.  Also, the TLV bit for vmaster is set in hda_generic.c, so
      that we can get rid of all tricks from the codec driver side.
      
      As the similar hack is applied to Conexant 5051 stuff, we can get rid
      of it as well.
      
      BugLink: https://bugs.launchpad.net/bugs/1357928Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      d89c6c0c
  8. 30 7月, 2014 1 次提交
  9. 22 7月, 2014 1 次提交
  10. 15 7月, 2014 1 次提交
  11. 25 6月, 2014 2 次提交
  12. 21 5月, 2014 1 次提交
  13. 27 2月, 2014 1 次提交
    • T
      ALSA: hda/sigmatel - Allow auto-switching for dock line-in of HP laptops · e8b99a1d
      Takashi Iwai 提交于
      Many HP laptops with STAC codecs have a docking station port and BIOS
      sets the pins for the input on the dock as a line in.  Because the
      generic parser doesn't handle a line in pin as auto-switchable, this
      resulted in the manual capture source selection on these laptops.
      
      However, from the usability POV, the automatic switching is easier.
      This patch adds the line_in_auto_switch hint in the fixup function for
      these laptops.  Even if no dock port is present, this should be
      harmless as the generic parser allows the auto-switching only in a
      limited situation (all three pins are located in different
      positions).
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      e8b99a1d
  14. 25 2月, 2014 2 次提交
  15. 20 2月, 2014 1 次提交
  16. 07 2月, 2014 1 次提交
    • T
      ALSA: hda - Fix inconsistent Mic mute LED · 7fe30711
      Takashi Iwai 提交于
      The current code for controlling mic mute LED in patch_sigmatel.c
      blindly assumes that there is a single capture switch.  But, there can
      be multiple multiple ones, and each of them flips the state, ended up
      in an inconsistent state.
      
      For fixing this problem, this patch adds kcontrol to be passed to the
      hook function so that the callee can check which switch is being
      accessed.  In stac_capture_led_hook(), the state is checked as a
      bitmask, and turns on the LED when all capture switches are off.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7fe30711
  17. 13 1月, 2014 1 次提交
  18. 26 11月, 2013 1 次提交
  19. 15 11月, 2013 1 次提交
  20. 24 10月, 2013 1 次提交
    • T
      ALSA: hda - Fix mute LED on HP laptops in runtime suspend · 95f74c41
      Takashi Iwai 提交于
      When HP laptops with mute and mic-record LEDs go to runtime suspend,
      these LEDs are turned on forcibly no matter whether GPIO pis are on or
      off.  This strange behavior seems triggered by resetting the HD-audio
      bus link at azx_rutime_suspend().  So, just add a new hda_bus flag to
      avoid the link reset at runtime suspend and set it for these HP
      machines.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      95f74c41
  21. 02 8月, 2013 1 次提交
    • T
      ALSA: hda - Fix missing fixup for Mac Mini with STAC9221 · 697aebab
      Takashi Iwai 提交于
      A fixup for Apple Mac Mini was lost during the adaption to the generic
      parser because the fallback for the generic ID 8384:7680 was dropped,
      and it resulted in the silence output (and maybe other problems).
      
      Unfortunately, just adding the missing subsystem ID wasn't enough, in
      this case.  The subsystem ID of this machine is 0000:0100 (what Apple
      thought...?), and since snd_hda_pick_fixup() doesn't take the vendor
      id zero into account, the driver ignored this entry.  Now it's fixed
      to regard the vendor id zero as a valid value.
      Reported-and-tested-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: <stable@vger.kernel.org> [v3.9+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      697aebab
  22. 29 7月, 2013 1 次提交
  23. 19 7月, 2013 2 次提交
    • T
      ALSA: hda - Remove NO_PRESENCE bit override for Dell 1420n Laptop · f3e351ee
      Takashi Iwai 提交于
      The quirk for Dell laptops with STAC9228 overrides the pin default
      config of NID 0x0f to the value with AC_DEFCFG_MISC_NO_PRESENCE bit
      on.  I'm not quite sure why this was done so, but can guess that this
      was introduced for avoiding this to be muted by another headphone
      plug.  Now, after transition to the generic parser, this workaround
      rather causes a problem (notably as unexpected speaker mutes) because
      the pin is seen as if it's always plugged in.
      
      Since the generic parser can handle multiple headphone plugging
      gracefully, we can get rid of this override now.
      Reported-and-tested-by: NEric Shattow <lucent@gmail.com>
      Cc: <stable@vger.kernel.org> [v3.9+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      f3e351ee
    • T
      ALSA: hda - Fix EAPD GPIO control for Sigmatel codecs · 1ea9a69d
      Takashi Iwai 提交于
      The EAPD GPIO is dynamically turned on/off for some machines with
      Sigmatel codecs, but this didn't work as expected, and it resulted in
      spontaneous lost of speaker outputs per HP plugging or power-saving.
      
      This patch fixes the bug by simply including spec->eapd_mask into
      spec->gpio_mask and spec->gpio_data bits.
      Reported-and-tested-by: NEric Shattow <lucent@gmail.com>
      Cc: <stable@vger.kernel.org> [v3.9+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1ea9a69d
  24. 25 6月, 2013 1 次提交
  25. 28 5月, 2013 1 次提交
  26. 22 3月, 2013 1 次提交
  27. 18 3月, 2013 1 次提交
  28. 14 3月, 2013 2 次提交
  29. 06 2月, 2013 1 次提交
  30. 01 2月, 2013 1 次提交
  31. 28 1月, 2013 1 次提交
  32. 25 1月, 2013 2 次提交