1. 26 10月, 2013 2 次提交
    • T
      ALSA: hda - Sync EAPD with vmaster on AD1984A Thinkpads · afb5a779
      Takashi Iwai 提交于
      As EAPD on NID 0x12 (speaker pin) is used as the master amp on
      Thinkpads with AD1984A codec, we can hook this to vmaster for saving a
      bit more power at master mute state.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      afb5a779
    • T
      ALSA: hda - Fix silent headphone on Thinkpads with AD1984A codec · 1ac32930
      Takashi Iwai 提交于
      AD1984A codec has a couple of pins with EAPD controls, and the generic
      codec driver tries to turn each of them on/off depending on the pin
      active state.  However, Thinkpads seem to use EAPD of the speaker pin
      as a master EAPD for controlling the mute of all outputs, including
      the headphone.  This results in the dead headphone output via the
      headphone plugging because it mutes the speaker and turns off EAPD.
      
      The fix is to simply add spec->gen.keep_on_eapd flag.
      
      [This is a regression fix on 3.12 where we moved the AD codec parser
       to the generic parser.  3.11 and earlier didn't show this problem
       because still static quirks have been used.]
      Reported-and-tested-by: NVito Caputo <vcaputo@gnugeneration.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1ac32930
  2. 05 7月, 2013 7 次提交
  3. 04 7月, 2013 7 次提交
  4. 18 3月, 2013 1 次提交
  5. 24 1月, 2013 1 次提交
  6. 23 1月, 2013 3 次提交
  7. 22 1月, 2013 2 次提交
    • T
      ALSA: hda - Add SPDIF mux control to AD codec auto-parser · 272f3ea3
      Takashi Iwai 提交于
      AD codecs have strange implementations for choosing the SPDIF-output
      mux source: the digital audio out widget may take the sources from
      multiple connections, where 0x01 indicates it's a PCM while others
      point ADCs.  It's obviously invalid in the HD-audio spec POV, but it's
      somehow convincing, too.  And, to make things more complex, AD1988A
      and AD1882 have deeper connection routes that aren't expressed
      correctly.
      
      In this patch, the SPDIF mux control is implemented in two ways:
      - For easier one like AD1981, AD1983, AD1884 and AD1984, where the
        SPDIF audio out widget takes just two or three sources, we can
        simply implement via the normal input_mux and connection verb
        calls.
      
      - For the complex routes like AD1988A (but not AD1988B) or AD1882, we
        prepare "faked" paths represented statically, and switch the paths
        using these static ones, instead of parsing the routes from the
        widget tree.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      272f3ea3
    • T
      ALSA: hda - Add aamix NID to AD codecs · f2f8be43
      Takashi Iwai 提交于
      The aamix NIDs are also missing for AD codecs.  All AD codecs seem to
      have a (more or less) working aamix widget.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      f2f8be43
  8. 21 1月, 2013 1 次提交
  9. 18 1月, 2013 1 次提交
  10. 12 1月, 2013 1 次提交
    • T
      ALSA: hda - Add generic parser support to Analog Device codec driver · 78bb3cb0
      Takashi Iwai 提交于
      This patch adds the support for the generic auto-parser to AD codec
      driver.  For AD1988, the old code is replaced simply with the new
      generic parser.  For other codecs, new model "auto" is added and
      directed to use the generic parser.
      
      No fixup codes have been implemented yet as of now.  Eventually we'd
      replace each static quirk with the generic parser + fixup.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      78bb3cb0
  11. 10 1月, 2013 1 次提交
  12. 28 11月, 2012 1 次提交
    • T
      ALSA: hda - Call snd_array_init() early and only once · 361dab3e
      Takashi Iwai 提交于
      This is a preliminary patch for introducing a protection to access
      races of snd_array instances.  Call snd_array_init() appropriately
      at the initialization time and don't call it twice.
      
      Also the allocations of codec-spec structs are cleaned up by helper
      functions in patch_sigmatel.c and patch_analog.c.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      361dab3e
  13. 21 11月, 2012 1 次提交
  14. 05 11月, 2012 1 次提交
  15. 19 9月, 2012 1 次提交
  16. 30 8月, 2012 1 次提交
  17. 15 8月, 2012 1 次提交
    • T
      ALSA: hda - Add 3stack-automute model to AD1882 codec · 1c868452
      Takashi Iwai 提交于
      Added a simple support of automute for the front HP jack to AD1882
      stack model.  Such an addition is basically an exception -- we really
      want to avoid the static quirk codes, but AD1882 parser isn't still
      ready for moving to the BIOS auto-parser yet.  So, as a quick fix, I
      merged it for now.
      
      In near future, we really need the big clean up of patch_analog.c to
      move on to the auto-parser...
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1c868452
  18. 03 7月, 2012 1 次提交
  19. 09 5月, 2012 1 次提交
  20. 20 4月, 2012 2 次提交
    • T
      ALSA: hda - Add snd_hda_get_default_vref() helper function · 4740860b
      Takashi Iwai 提交于
      Add a new helper function to guess the default VREF pin control bits
      for mic in.  This can be used to set the pin control value safely
      matching with the actual pin capabilities.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      4740860b
    • T
      ALSA: hda - Introduce snd_hda_set_pin_ctl*() helper functions · cdd03ced
      Takashi Iwai 提交于
      For setting the pin-control values more safely to match with the
      actual pin capability bits, a copule of new helper functions,
      snd_hda_set_pin_ctl() and snd_hda_set_pin_ctl_cache(), are
      introduced.  These are simple replacement of the codec verb write with
      AC_VERB_SET_PIN_WIDGET but do more sanity checks and filter out
      superfluous pin-control bits if they don't fit with the corresponding
      pin capabilities.
      
      Some codecs are screwed up or ignore the command when such a wrong bit
      is set.  These helpers will avoid such secret errors.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      cdd03ced
  21. 12 3月, 2012 1 次提交
  22. 10 3月, 2012 1 次提交
    • T
      ALSA: hda - Initialize vmaster slave volumes · 18478e8b
      Takashi Iwai 提交于
      When the driver is changed to use vmaster or a new slave element is
      added by the improvement of the parser code, user may face often the
      silent output because of the muted slave mixer although Master volume
      is properly set.  And they complain.  And I get upset.
      
      Although such a mixer element should be initialized via "alsactl init",
      it'd be more user-friendly if the known output slaves are unmuted and
      set to 0dB so that user can control the volume only with Master as
      default.  Since Master is still set muted as default even with this
      change, no risk of the speaker blow up, too.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      18478e8b
  23. 03 2月, 2012 1 次提交
    • T
      ALSA: hda - Add suffix argument to snd_hda_add_vmaster() · 9322ca54
      Takashi Iwai 提交于
      In most cases, the slave strings for vmaster are identical between
      volumes and switches except for "xxx Volume" and "xxx Switch" suffix.
      Now snd_hda_add_vmaster() takes the optional suffix argument so that
      each string can be composed with the given suffix, and we can share the
      slave name strings in both volume and switch calls nicely.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      9322ca54