linux-stable/sound
Richard Fitzgerald 1b4d9c2219 ASoC: core: Add component pin control functions
It's often the case that a codec driver will need to control its
own pins. However, if a name_prefix has been applied to this codec it
must be included in the name passed to any of the snd_soc_dapm_x_pin()
functions.

The behaviour of the existing pin control functions is reasonable, since
you may want to search for a fully-specified name within the scope of an
entire card. This means that we can't apply the prefix in these functions
because it will break card-scope searches.

Constructing a prefixed string "manually" in codec drivers leads to a lot
of repetition of the same code.

To make this tidier in codec drivers this patch adds a new set of
equivalent functions that take a struct snd_soc_component instead of a
dapm context and automatically add the component's name_prefix to the
given name. This makes it a simple change in codec drivers to be
prefix-safe.

The new functions are not quite trivial enough to be inlines and the
compiler won't be able to compile-away any part of them.

Although it looks somewhat inefficient to have to allocate a temporary
buffer and combine strings, the current design of the widget list
doesn't lend itself to a more optimized implementation - it's a single
list of all widgets on a card and is searched linearly for a matching
string. As pin state changes are generally low-frequency events it's
unlikely to be a significant issue - at least not enough to rewrite the
widget list handling just for this.

Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2016-11-30 17:16:09 +00:00
..
aoa powerpc updates for 4.9 2016-10-07 20:19:31 -07:00
arm ALSA: arm: Fix empty menuconfig SND_ARM 2016-08-01 16:07:53 +02:00
atmel
core ALSA: seq: fix passing wrong pointer in function call of compatibility layer 2016-10-12 20:09:36 +02:00
drivers ALSA: dummy: Fix a use-after-free at closing 2016-06-24 15:18:32 +02:00
firewire Merge branch 'for-linus' into for-next 2016-09-11 09:33:12 +02:00
hda ALSA: hdac: add missing \n to end of dev_err messages 2016-09-16 19:23:57 +02:00
i2c ALSA: ak4114: remove redundant check on err being < 0 2016-07-12 12:28:04 +02:00
isa ALSA: adlib: Utilize the module_isa_driver macro 2016-06-01 07:35:52 +02:00
mips
oss sound: oss: Use kernel_read_file_from_path() for mod_firmware_load() 2016-07-26 10:38:03 +02:00
parisc
pci ALSA: hda - Fix a failure of micmute led when having multi adcs 2016-10-12 20:07:25 +02:00
pcmcia
ppc powerpc updates for 4.9 2016-10-07 20:19:31 -07:00
sh ALSA: sh: aica: Remove deprecated create_workqueue 2016-06-07 11:23:33 +02:00
soc ASoC: core: Add component pin control functions 2016-11-30 17:16:09 +00:00
sparc
spi
synth
usb ALSA: line6: fix a crash in line6_hwdep_write() 2016-10-12 20:10:23 +02:00
ac97_bus.c
Kconfig
last.c
Makefile sound: oss: Use kernel_read_file_from_path() for mod_firmware_load() 2016-07-26 10:38:03 +02:00
sound_core.c