aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/s3c24xx/rx1950_uda1380.c
diff options
context:
space:
mode:
authorLiam Girdwood <lrg@slimlogic.co.uk>2010-11-05 09:53:46 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-11-06 11:28:29 -0400
commitce6120cca2589ede530200c7cfe11ac9f144333c (patch)
tree6ea7c26ce64dd4753e7cf9a3b048e74614b169dc /sound/soc/s3c24xx/rx1950_uda1380.c
parent22e2fda5660cdf62513acabdb5c82a5af415f838 (diff)
ASoC: Decouple DAPM from CODECs
Decoupling Dynamic Audio Power Management (DAPM) from codec devices is required when developing ASoC further. Such as for other ASoC components to have DAPM widgets or when extending DAPM to handle cross-device paths. This patch decouples DAPM related variables from struct snd_soc_codec and moves them to new struct snd_soc_dapm_context that is used to encapsulate DAPM context of a device. ASoC core and API of DAPM functions are modified to use DAPM context instead of codec. This patch does not change current functionality and a large part of changes come because of structure and internal API changes. Core implementation is from Liam Girdwood <lrg@slimlogic.co.uk> with some minor core changes, codecs and machine driver conversions from Jarkko Nikula <jhnikula@gmail.com>. Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Cc: Nicolas Ferre <nicolas.ferre@atmel.com> Cc: Manuel Lauss <manuel.lauss@googlemail.com> Cc: Mike Frysinger <vapier.adi@gmail.com> Cc: Cliff Cai <cliff.cai@analog.com> Cc: Kevin Hilman <khilman@deeprootsystems.com> Cc: Ryan Mallon <ryan@bluewatersys.com> Cc: Timur Tabi <timur@freescale.com> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Lars-Peter Clausen <lars@metafoo.de> Cc: Arnaud Patard (Rtp) <arnaud.patard@rtp-net.org> Cc: Wan ZongShun <mcuos.com@gmail.com> Cc: Eric Miao <eric.y.miao@gmail.com> Cc: Jassi Brar <jassi.brar@samsung.com> Cc: Daniel Gloeckner <dg@emlix.com> Cc: Kuninori Morimoto <morimoto.kuninori@renesas.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/s3c24xx/rx1950_uda1380.c')
-rw-r--r--sound/soc/s3c24xx/rx1950_uda1380.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sound/soc/s3c24xx/rx1950_uda1380.c b/sound/soc/s3c24xx/rx1950_uda1380.c
index ffd5cf2fb0a9..105d177fa427 100644
--- a/sound/soc/s3c24xx/rx1950_uda1380.c
+++ b/sound/soc/s3c24xx/rx1950_uda1380.c
@@ -232,26 +232,27 @@ static int rx1950_hw_params(struct snd_pcm_substream *substream,
232static int rx1950_uda1380_init(struct snd_soc_pcm_runtime *rtd) 232static int rx1950_uda1380_init(struct snd_soc_pcm_runtime *rtd)
233{ 233{
234 struct snd_soc_codec *codec = rtd->codec; 234 struct snd_soc_codec *codec = rtd->codec;
235 struct snd_soc_dapm_context *dapm = &codec->dapm;
235 int err; 236 int err;
236 237
237 /* Add rx1950 specific widgets */ 238 /* Add rx1950 specific widgets */
238 err = snd_soc_dapm_new_controls(codec, uda1380_dapm_widgets, 239 err = snd_soc_dapm_new_controls(dapm, uda1380_dapm_widgets,
239 ARRAY_SIZE(uda1380_dapm_widgets)); 240 ARRAY_SIZE(uda1380_dapm_widgets));
240 241
241 if (err) 242 if (err)
242 return err; 243 return err;
243 244
244 /* Set up rx1950 specific audio path audio_mapnects */ 245 /* Set up rx1950 specific audio path audio_mapnects */
245 err = snd_soc_dapm_add_routes(codec, audio_map, 246 err = snd_soc_dapm_add_routes(dapm, audio_map,
246 ARRAY_SIZE(audio_map)); 247 ARRAY_SIZE(audio_map));
247 248
248 if (err) 249 if (err)
249 return err; 250 return err;
250 251
251 snd_soc_dapm_enable_pin(codec, "Headphone Jack"); 252 snd_soc_dapm_enable_pin(dapm, "Headphone Jack");
252 snd_soc_dapm_enable_pin(codec, "Speaker"); 253 snd_soc_dapm_enable_pin(dapm, "Speaker");
253 254
254 snd_soc_dapm_sync(codec); 255 snd_soc_dapm_sync(dapm);
255 256
256 snd_soc_jack_new(codec, "Headphone Jack", SND_JACK_HEADPHONE, 257 snd_soc_jack_new(codec, "Headphone Jack", SND_JACK_HEADPHONE,
257 &hp_jack); 258 &hp_jack);