1. 03 3月, 2015 3 次提交
    • T
      ALSA: hda - Use standard workqueue for unsol and jack events · 2f35c630
      Takashi Iwai 提交于
      The events that are handled by HD-audio drivers are no frequent and
      urgent ones, so we can use the standard workqueue without any problem
      nowadays.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      2f35c630
    • T
      ALSA: hda - Allocate hda_pcm objects dynamically · bbbc7e85
      Takashi Iwai 提交于
      So far, the hda_codec object kept the hda_pcm list in an array, and
      the codec driver was expected to assign the array.  However, this
      makes the object life cycle management harder, because the assigned
      array is freed at the codec driver detach while it might be still
      accessed by the opened streams.
      
      In this patch, we allocate each hda_pcm object dynamically and manage
      it as a linked list.  Each object has a kref refcount, and both the
      codec driver binder and the PCM open/close touches it, so that the
      object won't be freed while in use.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      bbbc7e85
    • T
      ALSA: hda - Add card field to hda_codec struct · 6efdd851
      Takashi Iwai 提交于
      Allow the codec object to have an individual card pointer.  Not only
      this simplifies the redirections in many places, also this will allow
      us to make each codec assigned to a different card object.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      6efdd851
  2. 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
  3. 15 12月, 2014 1 次提交
  4. 16 9月, 2014 2 次提交
    • T
      ALSA: hda - Remove superfluous hooks from VIA driver · 7c3008c4
      Takashi Iwai 提交于
      Like the previous fix for STAC/IDT codecs, the automute hooks in VIA
      driver can be also removed by enabling the power control callback for
      all pins.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7c3008c4
    • 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. 11 9月, 2014 1 次提交
    • 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
  6. 11 2月, 2014 1 次提交
  7. 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
  8. 29 7月, 2013 1 次提交
  9. 25 6月, 2013 1 次提交
    • T
      ALSA: hda - Use auto_mute_via_amp=1 for VT1708 · eb33ccf7
      Takashi Iwai 提交于
      We've got bug report wrt many machines with VT1708 (e.g. IBM POS
      machines) showing the broken auto-mute behavior.  It turned out that
      the problem is that the pin control values of the speaker and line-out
      pins are completely ignored.  As a workaround, let's use the newly
      introduced feature of the generic parser, to control the mute via amp
      on pins.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      eb33ccf7
  10. 19 6月, 2013 1 次提交
    • T
      ALSA: hda - Fix missing Mic Boost controls for VIA codecs · d045c5dc
      Takashi Iwai 提交于
      Some VIA codecs like VT1708S have Mic boost amps in the mic pins but
      they aren't exposed in the capability bits.  In the past driver code,
      we override the pin caps and create mic boost controls forcibly.
      While transition to the generic parser, we lost the mic boost controls
      although the pin caps are still overridden, because the generic parser
      code checks the widget caps, too.
      
      So this patch adds a new helper function to allow the override of the
      given widget capability bits, and makes VIA codecs driver to add the
      missing input-amp capability bit.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=59861
      Cc: <stable@vger.kernel.org> [v3.9+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      d045c5dc
  11. 05 6月, 2013 1 次提交
  12. 03 6月, 2013 3 次提交
  13. 22 3月, 2013 1 次提交
    • T
      ALSA: hda - VIA prefers side surrounds over HP · 4abdbd1c
      Takashi Iwai 提交于
      The recent fix for the independent HP reduced the availability of the
      side surround output, because there are only 4 DACs for 7.1 and a HP
      outputs.  Adjust the badness tables for VIA so that 7.1 outputs are
      activated for the cost of missing independent HP.
      
      Once when we implement the dynamic DAC switching to multiple outputs,
      this conflicts will be eased in future...
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      4abdbd1c
  14. 07 2月, 2013 1 次提交
  15. 05 2月, 2013 2 次提交
  16. 25 1月, 2013 2 次提交
  17. 21 1月, 2013 1 次提交
  18. 12 1月, 2013 3 次提交
  19. 10 12月, 2012 2 次提交
  20. 01 12月, 2012 1 次提交
  21. 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
  22. 09 11月, 2012 3 次提交
  23. 07 11月, 2012 3 次提交
  24. 10 10月, 2012 1 次提交
    • T
      ALSA: hda - Add missing hda_gen_spec to struct via_spec · 7819d1c7
      Takashi Iwai 提交于
      The commit [4b527b65 ALSA: hda - limit internal mic boost for Asus
      X202E] introduced the use of auto-parser code, but it forgot to add
      struct hda_gen_spec at the head of codec->spec which the auto-parser
      assumes silently.  Without this record, it may result in memory
      corruption.
      
      This patch adds the missing piece.
      
      Cc: <stable@vger.kernel.org> [v3.5+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7819d1c7
  25. 08 10月, 2012 2 次提交