1. 03 3月, 2015 1 次提交
    • 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
  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. 13 2月, 2015 1 次提交
  4. 10 2月, 2015 1 次提交
  5. 20 1月, 2015 1 次提交
  6. 15 1月, 2015 1 次提交
    • T
      ALSA: hda - Select INPUT for Realtek HD-audio codec · ffcd28d8
      Takashi Iwai 提交于
      The commit commit [33f4acd3: ALSA: hda - Enable mic mute hotkey
      and LEDs for an HP machine] introduced a quirk for a HP machine
      involving with the input event handling.  Although the relevant code
      is protected via IS_ENABLED(CONFIG_INPUT), this doesn't suffice when
      the audio driver is built in while the input is module.
      
      As an easy workaround, this patch forcibly selects CONFIG_INPUT in
      Kconfig.  This shouldn't be a practical problem since CONFIG_INPUT is
      almost mandatory for all systems.  Also, this allows to remove the
      ugly ifdefs in the code.
      
      Fixes: 33f4acd3 ('ALSA: hda - Enable mic mute hotkey and LEDs for an HP machine')
      Acked-by: NDavid Henningsson <david.henningsson@canonical.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      ffcd28d8
  7. 11 1月, 2015 1 次提交
  8. 07 1月, 2015 1 次提交
  9. 19 12月, 2014 1 次提交
  10. 17 12月, 2014 2 次提交
  11. 06 12月, 2014 1 次提交
  12. 02 12月, 2014 1 次提交
  13. 21 11月, 2014 2 次提交
  14. 20 11月, 2014 1 次提交
  15. 18 11月, 2014 2 次提交
  16. 12 11月, 2014 1 次提交
    • K
      ALSA: hda/realtek - Change EAPD to verb control · 394c97f8
      Kailang Yang 提交于
      This will fix no sound in Linux system after reboot from windows.
      
      Change log:
      - alc662_fill_coef() is replaced with alc_fill_eapd_coef_idx()
        and move into alc_auto_init_amp().
      - For ALC262, ALC267, ALC268, ALC269, ALC233, ALC255, ALC280, ALC282,
        ALC283, ALC284, ALC285, ALC286, ALC288, ALC290, ALC292, ALC293, ALC294,
        ALC668, ALC888VC, ALC888VD, ALC891, ALC892, ALC898 and ALC1150, add update
        COEF control for EAPD setting.
      - Remove alc269_fill_coef() for update EAPD control line.
      
      ADDITIONAL NOTE:
      Many Realtek cdoecs have a COEF bit to switch the master amp control
      between COEF and EAPD.  Windows drivers seem using COEF while we use
      EAPD, which is more standard.  As a result, some system suffer from
      the silent output when booting after Windows.  This patch sets the
      COEF bits on the relevant codecs properly to switch to EAPD control.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=87771Signed-off-by: NKailang Yang <kailang@realtek.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      394c97f8
  17. 06 11月, 2014 1 次提交
  18. 05 11月, 2014 1 次提交
  19. 30 10月, 2014 4 次提交
  20. 27 10月, 2014 1 次提交
  21. 24 10月, 2014 2 次提交
  22. 20 10月, 2014 2 次提交
  23. 08 10月, 2014 1 次提交
  24. 07 10月, 2014 3 次提交
  25. 16 9月, 2014 1 次提交
    • 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
  26. 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
  27. 03 9月, 2014 4 次提交