linux/sound/soc/codecs
Jarkko Nikula 098b171823 ASoC: tlv320aic3x: Sanitize output controls
Currently output controls are not uniform. Some routes are adjusted by
mono controls that don't match to associated mixer switch, many routes are
not covered at all and stereo controls have following variants:

- L-to-L & R-to-R
- R-to-L & R-to-R
- L-to-L & R-to-L

This patch attempts to fix these issues. First, for the convenience, only
direct L-to-L, R-to-R and [L | R]-to-Mono routes are controlled by the
stereo controls. This logic is also used with the output pin mute controls
so all of them except mono output are controlled by stereo switches.

Then rest of the swapped L-to-R and R-to-L routes are controlled by the
mono controls that map to mixer switches with a same name. Mixers can then
associate these switches and volumes together.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
2010-08-28 10:57:58 +01:00
..
88pm860x-codec.c ASoC: add 88pm860x codec driver 2010-08-18 18:03:09 +01:00
88pm860x-codec.h ASoC: add 88pm860x codec driver 2010-08-18 18:03:09 +01:00
ac97.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ad193x.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ad193x.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ad1836.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ad1836.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ad1980.c Merge branch 'for-2.6.36' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into for-2.6.37 2010-08-15 14:56:40 +01:00
ad1980.h Merge branch 'for-2.6.36' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into for-2.6.37 2010-08-15 14:56:40 +01:00
ad73311.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ad73311.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ads117x.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ads117x.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ak4104.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ak4535.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ak4535.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ak4642.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ak4671.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ak4671.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
cq93vc.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
cs42l51.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
cs42l51.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
cs4270.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
cx20442.c ASoC: Use a more adequate name for the CX20442 codec DAI 2010-08-19 15:30:43 +01:00
cx20442.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
da7210.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
jz4740.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
Kconfig ASoC: add 88pm860x codec driver 2010-08-18 18:03:09 +01:00
l3.c ASoC: UDA134x codec driver 2008-11-17 11:45:39 +00:00
Makefile ASoC: add 88pm860x codec driver 2010-08-18 18:03:09 +01:00
max9877.c ASoC: MAX9877: fix write operation for register 2009-07-23 11:08:30 +01:00
max9877.h ASoC: MAX9877: add MAX9877 amp driver 2009-07-15 16:59:31 +01:00
pcm3008.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
pcm3008.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
spdif_transciever.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ssm2602.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
ssm2602.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
stac9766.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
stac9766.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
tlv320aic3x.c ASoC: tlv320aic3x: Sanitize output controls 2010-08-28 10:57:58 +01:00
tlv320aic3x.h ASoC: tlv320aic3x: Reimplement output mixers 2010-08-28 10:57:58 +01:00
tlv320aic23.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
tlv320aic23.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
tlv320aic26.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
tlv320aic26.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
tlv320dac33.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
tlv320dac33.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
tpa6130a2.c Merge branch 'topic/asoc' into for-linus 2010-05-20 12:00:43 +02:00
tpa6130a2.h ASoC: TPA6130A2: Make tpa6130a2_power as static 2009-10-12 13:40:54 +01:00
twl4030.c ASoC: multi-component: TWL4030: Restore registers on removal 2010-08-12 14:04:35 +01:00
twl6040.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
twl6040.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
uda134x.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
uda134x.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
uda1380.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
uda1380.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wl1273.c ASoC: TI WL1273 FM Radio Codec. 2010-08-20 13:28:49 +01:00
wl1273.h ASoC: TI WL1273 FM Radio Codec. 2010-08-20 13:28:49 +01:00
wm2000.c ASoC: Default WM2000 ANC and speaker to enabled 2010-06-15 15:14:00 +01:00
wm2000.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8350.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8350.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8400.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8400.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8510.c ASoC: Remove unneeded control_data management from Wolfson drivers 2010-08-12 14:00:19 +01:00
wm8510.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8523.c ASoC: Remove unneeded control_data management from Wolfson drivers 2010-08-12 14:00:19 +01:00
wm8523.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8580.c ASoC: Fix argument ordering for snd_soc_update_bits() in WM8580 2010-08-16 20:21:45 +01:00
wm8580.h ASoC: Automatically calculate clock ratio for WM8580 2010-08-15 14:52:12 +01:00
wm8711.c ASoC: Remove unneeded control_data management from Wolfson drivers 2010-08-12 14:00:19 +01:00
wm8711.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8727.c ASoC: Staticise WM8727 codec driver structure 2010-08-12 16:10:55 +01:00
wm8728.c ASoC: Remove unneeded control_data management from Wolfson drivers 2010-08-12 14:00:19 +01:00
wm8728.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8731.c ASoC: Support non-crystal master clocks for WM8731 2010-08-18 16:52:56 +01:00
wm8731.h ASoC: Support non-crystal master clocks for WM8731 2010-08-18 16:52:56 +01:00
wm8741.c ASoC: Remove unneeded control_data management from Wolfson drivers 2010-08-12 14:00:19 +01:00
wm8741.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8750.c ASoC: Remove unneeded control_data management from Wolfson drivers 2010-08-12 14:00:19 +01:00
wm8750.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8753.c ASoC: Remove unneeded control_data management from Wolfson drivers 2010-08-12 14:00:19 +01:00
wm8753.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8776.c Merge branch 'for-2.6.36' into for-2.6.37 2010-08-16 18:42:58 +01:00
wm8776.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8900.c ASoC: Remove unneeded control_data management from Wolfson drivers 2010-08-12 14:00:19 +01:00
wm8900.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8903.c ASoC: Remove unneeded control_data management from Wolfson drivers 2010-08-12 14:00:19 +01:00
wm8903.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8904.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8904.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8940.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8940.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8955.c ASoC: Remove unneeded control_data management from Wolfson drivers 2010-08-12 14:00:19 +01:00
wm8955.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8960.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8960.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8961.c ASoC: Remove unused driver data from WM8961 probe 2010-08-12 16:11:07 +01:00
wm8961.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8962-tables.c ASoC: Add initial WM8962 CODEC driver 2010-08-05 13:38:57 +01:00
wm8962.c ASoC: Update WM8962 to build with multi-component 2010-08-12 15:02:11 +01:00
wm8962.h ASoC: Update WM8962 to build with multi-component 2010-08-12 15:02:11 +01:00
wm8971.c ASoC: Remove version display from WM8971 driver 2010-08-12 14:00:19 +01:00
wm8971.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8974.c ASoC: Remove unused WM8974 private data 2010-08-17 12:10:18 +01:00
wm8974.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8978.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8978.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8988.c ASoC: Remove unneeded control_data management from Wolfson drivers 2010-08-12 14:00:19 +01:00
wm8988.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8990.c ASoC: Remove unneeded control_data management from Wolfson drivers 2010-08-12 14:00:19 +01:00
wm8990.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8993.c ASoC: Remove unneeded control_data management from Wolfson drivers 2010-08-12 14:00:19 +01:00
wm8993.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm8994.c Merge branch 'for-2.6.36' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into for-2.6.37 2010-08-15 14:56:40 +01:00
wm8994.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm9081.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm9081.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm9090.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm9090.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm9705.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm9705.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm9712.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm9712.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm9713.c ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm9713.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
wm_hubs.c ASoC: Explicitly disable DC servo on WM hubs headphone powerdown 2010-07-20 09:48:07 +01:00
wm_hubs.h ASoC: Support second DC servo readback method for wm_hubs 2010-04-05 16:19:09 +01:00