1. 29 5月, 2015 1 次提交
  2. 23 3月, 2015 2 次提交
    • T
      ALSA: hda - Use regmap for command verb caches, too · a551d914
      Takashi Iwai 提交于
      Like the previous patches, this patch converts also to the regmap, at
      this time, the cached verb writes are the target.  But this conversion
      needs a bit more caution than before.
      
      - In the old code, we just record any verbs as is, and restore them at
        resume.  For the regmap scheme, this doesn't work, since a few verbs
        like AMP or DIGI_CONVERT are asymmetrical.  Such verbs are converted
        either to the dedicated function (snd_hda_regmap_xxx_amp()) or
        changed to the unified verb.
      
      - Some verbs have to be declared as vendor-specific ones before
        accessing via regmap.
      
      Also, the minor optimization with codec->cached_write flag is dropped
      in a few places, as this would confuse the operation.  Further
      optimizations will be brought in the later patches, if any.
      
      This conversion ends up with a drop of significant amount of codes,
      mostly the helper codes that are no longer used.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      a551d914
    • T
      ALSA: hda - Move a part of hda_codec stuff into hdac_device · 7639a06c
      Takashi Iwai 提交于
      Now some codes and functionalities of hda_codec struct are moved to
      hdac_device struct.  A few basic attributes like the codec address,
      vendor ID number, FG numbers, etc are moved to hdac_device, and they
      are accessed like codec->core.addr.  The basic verb exec functions are
      moved, too.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7639a06c
  3. 23 2月, 2015 1 次提交
    • 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
  4. 26 12月, 2014 1 次提交
  5. 18 12月, 2014 1 次提交
  6. 15 12月, 2014 1 次提交
  7. 10 12月, 2014 2 次提交
  8. 30 5月, 2014 1 次提交
  9. 05 3月, 2014 2 次提交
  10. 15 2月, 2014 1 次提交
  11. 05 2月, 2014 2 次提交
  12. 04 2月, 2014 1 次提交
  13. 13 1月, 2014 1 次提交
  14. 08 1月, 2014 1 次提交
  15. 11 12月, 2013 1 次提交
    • T
      ALSA: hda - Add static DAC/pin mapping for AD1986A codec · 3690739b
      Takashi Iwai 提交于
      AD1986A codec is a pretty old codec and has really many hidden
      restrictions.  One of such is that each DAC is dedicated to certain
      pin although there are possible connections.  Currently, the generic
      parser tries to assign individual DACs as much as possible, and this
      lead to two bad situations: connections where the sound actually
      doesn't work, and connections conflicting other channels.
      
      We may fix this by trying to find the best connections more harder,
      but as of now, it's easier to give some hints for paired DAC/pin
      connections and honor them if available, since such a hint is needed
      only for specific codecs (right now only AD1986A, and there will be
      unlikely any others in future).
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=64971
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66621
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      3690739b
  16. 09 12月, 2013 1 次提交
    • T
      ALSA: hda - Enable stereo mix as default for AD and VIA codecs · f1e762dd
      Takashi Iwai 提交于
      AD and VIA codecs had stereo mixer input enabled as default before
      moving to the generic parser, and people think the lack of such a
      regression.  In this patch, the stereo mixer input is added back to
      the input selection if no auto-mic is available, and if it's not
      disabled explicitly via hint.  This should satisfy most of demands,
      i.e. stereo mix on desktop machines like what it worked before, and it
      still keeps the new auto-mic feature on laptops.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      f1e762dd
  17. 02 12月, 2013 3 次提交
  18. 13 11月, 2013 2 次提交
  19. 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
  20. 05 7月, 2013 7 次提交
  21. 04 7月, 2013 6 次提交