linux/sound
Stephen Warren 85762e71f1 ASoC: dapm: Implement mixer control sharing
This is the equivalent of commit af46800 "ASoC: Implement mux control
sharing", but applied to mixers instead of muxes.

This allows a single control to affect multiple mixer widgets at once,
which is useful when there is a single set of register bits that affects
multiple mixers in HW, for example both the L and R mixers of a stereo
path.

Without this, you either:

1) End up with multiple controls that affect the same register bits, but
whose DAPM state falls out of sync with HW, since the DAPM state is only
updated for the specific control that is modified, and not for other
paths that are affected by the register bit(s).

2) False paths through DAPM, since you end up merging unconnected stereo
paths together into a single widget which hosts the single control, and
then branching back out again, thus conjoining the enable states of the
two input paths.

Now that the kcontrol creation logic is split out into a separate
function, dapm_create_or_share_mixmux_kcontrol(), also use that to
replace most of the body of dapm_new_mux(). This should produce no
functional change, but simply eliminates some mostly duplicated code.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-31 13:28:40 +01:00
..
aoa sound/aoa: Adapt to new i2c probing scheme 2012-07-11 18:22:48 +10:00
arm ALSA: pxa27x: rename pxa27x_assert_ac97reset() 2013-01-08 11:30:08 +00:00
atmel ALSA: atmel: remove __dev* attributes 2012-12-07 07:22:12 +01:00
core ALSA: seq: Fix missing error handling in snd_seq_timer_open() 2013-03-11 09:40:36 +01:00
drivers Merge branch 'for-linus' into for-next 2013-02-05 14:48:03 +01:00
firewire ALSA: firewire-speakers: remove __dev* attributes 2012-12-07 07:29:30 +01:00
i2c ALSA: Fix typo in drivers sound 2012-11-04 09:20:58 +01:00
isa ALSA: Remove the rest of __devinit* in comments 2012-12-07 07:41:56 +01:00
mips ALSA: mips: remove __dev* attributes 2012-12-07 07:29:45 +01:00
oss sound: sequencer: cap array index in seq_chn_common_event() 2013-03-15 07:45:20 +01:00
parisc ALSA: parisc/harmony: remove __dev* attributes 2012-12-07 07:30:11 +01:00
pci ALSA: hda - Fix DAC assignment for independent HP 2013-03-21 17:20:12 +01:00
pcmcia ALSA: pdaudiocf: Remove superfluous pm_message_t argument from suspend 2012-07-03 08:23:08 +02:00
ppc ALSA: ppc: remove __dev* attributes 2012-12-07 07:33:30 +01:00
sh ALSA: sh: remove __dev* attributes 2012-12-07 07:33:47 +01:00
soc ASoC: dapm: Implement mixer control sharing 2013-03-31 13:28:40 +01:00
sparc ALSA: sparc: remove __dev* attributes 2012-12-07 07:34:04 +01:00
spi ALSA: at73c213: remove __dev* attributes 2012-12-07 07:34:13 +01:00
synth
usb ALSA: snd-usb: mixer: ignore -EINVAL in snd_usb_mixer_controls() 2013-03-20 08:43:00 +01:00
ac97_bus.c
Kconfig sound: remove reference to feature-removal-schedule.txt 2012-12-17 17:15:12 -08:00
last.c ALSA: Remove the last mention of SNDRV_MAIN_OBJECT_FILE 2012-09-03 10:07:23 +02:00
Makefile
sound_core.c sound: remove reference to feature-removal-schedule.txt 2012-12-17 17:15:12 -08:00
sound_firmware.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00