aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2008-09-24 06:23:11 -0400
committerTakashi Iwai <tiwai@suse.de>2008-10-12 20:15:42 -0400
commit5817b52a298adce69e01acf2c131b3dcfda65d64 (patch)
treef6ce8d3d9cf475c954c997626e6338906b32ca11
parent72474be62d6ec2e0337ff01ecbd737f9c5c242c7 (diff)
ALSA: ASoC: Allow machine drivers to mark pins as not connected
Add a new API call snd_soc_dapm_nc_pin() which allows machine drivers to mark pins as being permanently disabled. At present this is identical to snd_soc_dapm_disable_pin() except in terms of improving the internal documentation of machine drivers that use it. The intention is that in future it will be extended to provide additional features such as hiding controls that are only relevant to paths using the disconnected pin. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--include/sound/soc-dapm.h1
-rw-r--r--sound/soc/soc-dapm.c20
2 files changed, 21 insertions, 0 deletions
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h
index c1b26fcc0b5c..ca699a3017f3 100644
--- a/include/sound/soc-dapm.h
+++ b/include/sound/soc-dapm.h
@@ -240,6 +240,7 @@ int snd_soc_dapm_sys_add(struct device *dev);
240/* dapm audio pin control and status */ 240/* dapm audio pin control and status */
241int snd_soc_dapm_enable_pin(struct snd_soc_codec *codec, char *pin); 241int snd_soc_dapm_enable_pin(struct snd_soc_codec *codec, char *pin);
242int snd_soc_dapm_disable_pin(struct snd_soc_codec *codec, char *pin); 242int snd_soc_dapm_disable_pin(struct snd_soc_codec *codec, char *pin);
243int snd_soc_dapm_nc_pin(struct snd_soc_codec *codec, char *pin);
243int snd_soc_dapm_get_pin_status(struct snd_soc_codec *codec, char *pin); 244int snd_soc_dapm_get_pin_status(struct snd_soc_codec *codec, char *pin);
244int snd_soc_dapm_sync(struct snd_soc_codec *codec); 245int snd_soc_dapm_sync(struct snd_soc_codec *codec);
245 246
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 9ca9c08610fa..83fa9c47b660 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -1484,6 +1484,26 @@ int snd_soc_dapm_disable_pin(struct snd_soc_codec *codec, char *pin)
1484EXPORT_SYMBOL_GPL(snd_soc_dapm_disable_pin); 1484EXPORT_SYMBOL_GPL(snd_soc_dapm_disable_pin);
1485 1485
1486/** 1486/**
1487 * snd_soc_dapm_nc_pin - permanently disable pin.
1488 * @codec: SoC codec
1489 * @pin: pin name
1490 *
1491 * Marks the specified pin as being not connected, disabling it along
1492 * any parent or child widgets. At present this is identical to
1493 * snd_soc_dapm_disable_pin() but in future it will be extended to do
1494 * additional things such as disabling controls which only affect
1495 * paths through the pin.
1496 *
1497 * NOTE: snd_soc_dapm_sync() needs to be called after this for DAPM to
1498 * do any widget power switching.
1499 */
1500int snd_soc_dapm_nc_pin(struct snd_soc_codec *codec, char *pin)
1501{
1502 return snd_soc_dapm_set_pin(codec, pin, 0);
1503}
1504EXPORT_SYMBOL_GPL(snd_soc_dapm_nc_pin);
1505
1506/**
1487 * snd_soc_dapm_get_pin_status - get audio pin status 1507 * snd_soc_dapm_get_pin_status - get audio pin status
1488 * @codec: audio codec 1508 * @codec: audio codec
1489 * @pin: audio signal pin endpoint (or start point) 1509 * @pin: audio signal pin endpoint (or start point)