linux/sound/pci/hda
Takashi Iwai 7bba2157c5 ALSA: hda - Add dock speaker support for ASUS TX300
ASUS TX300 has a built-in speaker in the tablet part and in the dock
part, and the tablet speaker is supposed to be unused while the
machine is docked.  The current HD-audio driver, however, doesn't
support the dock speaker, partly because BIOS doesn't set up the pin
for the corresponding output.

But, not only the missing pin config, also the missing unsol event
handling is another issue.  Otherwise the automatic switching via
dock/undock won't work.

Through debugging sessions, we found out that the dock speaker pin is
NID 0x1b, and it generates an unsol event at docking/undocking, the
docking state can be inquired via the normal pin detection verb.
Also, it's turned out that GPIO 2 is needed as an amp.  So, all
materials are ready to cook.

This patch provides the basic dock speaker support with TX300:
- The dock speaker is turned on/off via "Dock Speaker" mixer mute.
- The dock speaker is automatically muted when docked.  This is
  independently from the mixer mute switch, just like the headphone
  auto-mute function.

The implementation is a bit tricky.  Since we want to handle it as a
secondary speaker, we set it up a pin as a speaker with a jack
detection.  Then, the fixup function registers the own unsol callback
for this pin because the standard automute can't handle the thing like
a "speaker jack".  In the own automute hook, we apply the mute of the
tablet speaker in addition by checking the dock state.

Also, the speaker control names are slightly shuffled because the
generic parser doesn't give good names but blindly assumes a bass
speaker as a secondary speaker.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=59791
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-06 15:54:42 +02:00
..
ca0132_regs.h ALSA: hda/ca0132 - Fix type of INVALID_CHIP_ADDRESS 2013-02-12 10:15:15 +01:00
hda_auto_parser.c ALSA: hda - Fix missing fixup for Mac Mini with STAC9221 2013-08-02 08:16:52 +02:00
hda_auto_parser.h ALSA: hda - add some small convenience functions to auto parser 2013-04-11 11:59:27 +02:00
hda_beep.c ALSA: hda - Make the resume of digital beep setup proper 2013-03-18 12:58:48 +01:00
hda_beep.h ALSA: hda - Fix power-saving during playing beep sound 2013-03-18 12:58:47 +01:00
hda_codec.c ALSA: hda - add flags and routines to get devices selection info for DP1.2 MST 2013-08-27 12:15:09 +02:00
hda_codec.h ALSA: hda - add device entry and inactive flag to unsolicited response 2013-08-27 12:15:28 +02:00
hda_eld.c ALSA: hda - bug fix on return value when getting HDMI ELD info 2013-04-02 11:55:23 +02:00
hda_generic.c ASoC: Updates for v3.12 2013-08-23 14:12:22 +02:00
hda_generic.h ALSA: hda - Fix invalid multi-io creation on VAIO-Z laptops 2013-07-29 16:54:36 +02:00
hda_hwdep.c ALSA: replace strict_strto*() with kstrto*() 2013-07-21 11:56:18 +02:00
hda_i915.c ALSA: hda - Add power-welll support for haswell HDA 2013-06-06 17:31:56 +02:00
hda_i915.h ALSA: hda - Add power-welll support for haswell HDA 2013-06-06 17:31:56 +02:00
hda_intel_trace.h ALSA: hda - Add tracepoints to HD-audio controller driver 2012-10-30 10:39:59 +01:00
hda_intel.c ALSA: hda - Try to allow haswell HDMI audio even without powerwell 2013-08-19 15:46:17 +02:00
hda_jack.c ALSA: hda - Fix jack gating when auto_{mute,mic} is suppressed. 2013-08-05 11:19:59 +02:00
hda_jack.h ALSA: hda - Add snd_hda_jack_detect_state() helper function 2013-07-21 11:52:54 +02:00
hda_local.h ALSA: hda - Fix missing Mic Boost controls for VIA codecs 2013-06-19 07:54:09 +02:00
hda_proc.c ALSA: hda - add device list & select info of display pins to codec proc file 2013-08-27 12:15:17 +02:00
hda_trace.h ALSA: hda - Clean up CONFIG_SND_HDA_POWER_SAVE 2012-08-30 07:50:13 -07:00
Kconfig ALSA: hda - Simplify CONFIG_SND_HDA_I915 condition 2013-08-27 14:49:59 +02:00
Makefile ALSA: hda - Add power-welll support for haswell HDA 2013-06-06 17:31:56 +02:00
patch_analog.c ALSA: hda - Remove static quirks for AD1986A codec 2013-07-05 14:14:14 +02:00
patch_ca0110.c ALSA: hda - Remove superfluous header inclusions 2013-01-21 16:10:56 +01:00
patch_ca0132.c ALSA: Replace the magic number 44 with const 2013-06-28 12:14:44 +02:00
patch_cirrus.c ALSA: hda - Fix pin configurations for MacBook Air 4,2 2013-06-17 10:22:46 +02:00
patch_cmedia.c ALSA: hda - Remove superfluous header inclusions 2013-01-21 16:10:56 +01:00
patch_conexant.c ALSA: hda - Headphone mic support for an Asus/Conexant device 2013-07-16 11:57:37 +02:00
patch_hdmi.c ALSA: hda - Re-setup HDMI pin and audio infoframe on stream switches 2013-09-03 08:26:54 +02:00
patch_realtek.c ALSA: hda - Add dock speaker support for ASUS TX300 2013-09-06 15:54:42 +02:00
patch_si3054.c sound: Add module.h to the previously silent sound users 2011-10-31 19:31:21 -04:00
patch_sigmatel.c ASoC: Updates for v3.12 2013-08-23 14:12:22 +02:00
patch_via.c ALSA: hda - Clearing jackpoll_interval avoid pending work 2013-07-29 14:19:03 +02:00