diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2008-06-11 08:47:10 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2008-06-13 10:48:01 -0400 |
commit | bdb92876f0a9d2b431199e385732ede89ff0b97d (patch) | |
tree | 5a88d9e7f370facce9e44e60c59ec5636b316b6d | |
parent | dbac7cb8a7fcae34ffda04e4bc30673c2ea841ae (diff) |
ALSA: ASoC: Pass the DAI being configured into CPU DAI probe and remove
This allows per-DAI initialisation to be done by the CPU DAI drivers.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r-- | include/sound/soc.h | 6 | ||||
-rw-r--r-- | sound/soc/davinci/davinci-i2s.c | 6 | ||||
-rw-r--r-- | sound/soc/pxa/pxa2xx-ac97.c | 3 | ||||
-rw-r--r-- | sound/soc/s3c24xx/s3c2412-i2s.c | 3 | ||||
-rw-r--r-- | sound/soc/s3c24xx/s3c2443-ac97.c | 6 | ||||
-rw-r--r-- | sound/soc/s3c24xx/s3c24xx-i2s.c | 3 | ||||
-rw-r--r-- | sound/soc/soc-core.c | 6 |
7 files changed, 21 insertions, 12 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h index 9fa2093e74eb..56d2224c2c07 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h | |||
@@ -358,8 +358,10 @@ struct snd_soc_cpu_dai { | |||
358 | unsigned char type; | 358 | unsigned char type; |
359 | 359 | ||
360 | /* DAI callbacks */ | 360 | /* DAI callbacks */ |
361 | int (*probe)(struct platform_device *pdev); | 361 | int (*probe)(struct platform_device *pdev, |
362 | void (*remove)(struct platform_device *pdev); | 362 | struct snd_soc_cpu_dai *dai); |
363 | void (*remove)(struct platform_device *pdev, | ||
364 | struct snd_soc_cpu_dai *dai); | ||
363 | int (*suspend)(struct platform_device *pdev, | 365 | int (*suspend)(struct platform_device *pdev, |
364 | struct snd_soc_cpu_dai *cpu_dai); | 366 | struct snd_soc_cpu_dai *cpu_dai); |
365 | int (*resume)(struct platform_device *pdev, | 367 | int (*resume)(struct platform_device *pdev, |
diff --git a/sound/soc/davinci/davinci-i2s.c b/sound/soc/davinci/davinci-i2s.c index c421774b33ee..c3b545ccff72 100644 --- a/sound/soc/davinci/davinci-i2s.c +++ b/sound/soc/davinci/davinci-i2s.c | |||
@@ -295,7 +295,8 @@ static int davinci_i2s_trigger(struct snd_pcm_substream *substream, int cmd) | |||
295 | return ret; | 295 | return ret; |
296 | } | 296 | } |
297 | 297 | ||
298 | static int davinci_i2s_probe(struct platform_device *pdev) | 298 | static int davinci_i2s_probe(struct platform_device *pdev, |
299 | struct snd_soc_cpu_dai *dai) | ||
299 | { | 300 | { |
300 | struct snd_soc_device *socdev = platform_get_drvdata(pdev); | 301 | struct snd_soc_device *socdev = platform_get_drvdata(pdev); |
301 | struct snd_soc_machine *machine = socdev->machine; | 302 | struct snd_soc_machine *machine = socdev->machine; |
@@ -356,7 +357,8 @@ err_release_region: | |||
356 | return ret; | 357 | return ret; |
357 | } | 358 | } |
358 | 359 | ||
359 | static void davinci_i2s_remove(struct platform_device *pdev) | 360 | static void davinci_i2s_remove(struct platform_device *pdev, |
361 | struct snd_soc_cpu_dai *dai) | ||
360 | { | 362 | { |
361 | struct snd_soc_device *socdev = platform_get_drvdata(pdev); | 363 | struct snd_soc_device *socdev = platform_get_drvdata(pdev); |
362 | struct snd_soc_machine *machine = socdev->machine; | 364 | struct snd_soc_machine *machine = socdev->machine; |
diff --git a/sound/soc/pxa/pxa2xx-ac97.c b/sound/soc/pxa/pxa2xx-ac97.c index 97ec2d90547c..cb947956ed1a 100644 --- a/sound/soc/pxa/pxa2xx-ac97.c +++ b/sound/soc/pxa/pxa2xx-ac97.c | |||
@@ -310,7 +310,8 @@ static int pxa2xx_ac97_resume(struct platform_device *pdev, | |||
310 | #define pxa2xx_ac97_resume NULL | 310 | #define pxa2xx_ac97_resume NULL |
311 | #endif | 311 | #endif |
312 | 312 | ||
313 | static int pxa2xx_ac97_probe(struct platform_device *pdev) | 313 | static int pxa2xx_ac97_probe(struct platform_device *pdev, |
314 | struct snd_soc_cpu_dai *dai) | ||
314 | { | 315 | { |
315 | int ret; | 316 | int ret; |
316 | 317 | ||
diff --git a/sound/soc/s3c24xx/s3c2412-i2s.c b/sound/soc/s3c24xx/s3c2412-i2s.c index c4a46dd589b3..c463a82dec3a 100644 --- a/sound/soc/s3c24xx/s3c2412-i2s.c +++ b/sound/soc/s3c24xx/s3c2412-i2s.c | |||
@@ -601,7 +601,8 @@ struct clk *s3c2412_get_iisclk(void) | |||
601 | EXPORT_SYMBOL_GPL(s3c2412_get_iisclk); | 601 | EXPORT_SYMBOL_GPL(s3c2412_get_iisclk); |
602 | 602 | ||
603 | 603 | ||
604 | static int s3c2412_i2s_probe(struct platform_device *pdev) | 604 | static int s3c2412_i2s_probe(struct platform_device *pdev, |
605 | struct snd_soc_cpu_dai *dai) | ||
605 | { | 606 | { |
606 | DBG("Entered %s\n", __func__); | 607 | DBG("Entered %s\n", __func__); |
607 | 608 | ||
diff --git a/sound/soc/s3c24xx/s3c2443-ac97.c b/sound/soc/s3c24xx/s3c2443-ac97.c index 0eed140dcd9b..533565b61b2f 100644 --- a/sound/soc/s3c24xx/s3c2443-ac97.c +++ b/sound/soc/s3c24xx/s3c2443-ac97.c | |||
@@ -209,7 +209,8 @@ static struct s3c24xx_pcm_dma_params s3c2443_ac97_mic_mono_in = { | |||
209 | .dma_size = 4, | 209 | .dma_size = 4, |
210 | }; | 210 | }; |
211 | 211 | ||
212 | static int s3c2443_ac97_probe(struct platform_device *pdev) | 212 | static int s3c2443_ac97_probe(struct platform_device *pdev, |
213 | struct snd_soc_cpu_dai *dai) | ||
213 | { | 214 | { |
214 | int ret; | 215 | int ret; |
215 | u32 ac_glbctrl; | 216 | u32 ac_glbctrl; |
@@ -260,7 +261,8 @@ static int s3c2443_ac97_probe(struct platform_device *pdev) | |||
260 | return ret; | 261 | return ret; |
261 | } | 262 | } |
262 | 263 | ||
263 | static void s3c2443_ac97_remove(struct platform_device *pdev) | 264 | static void s3c2443_ac97_remove(struct platform_device *pdev, |
265 | struct snd_soc_cpu_dai *dai) | ||
264 | { | 266 | { |
265 | free_irq(IRQ_S3C244x_AC97, NULL); | 267 | free_irq(IRQ_S3C244x_AC97, NULL); |
266 | clk_disable(s3c24xx_ac97.ac97_clk); | 268 | clk_disable(s3c24xx_ac97.ac97_clk); |
diff --git a/sound/soc/s3c24xx/s3c24xx-i2s.c b/sound/soc/s3c24xx/s3c24xx-i2s.c index 4c52f7946d9e..42e96b5ff825 100644 --- a/sound/soc/s3c24xx/s3c24xx-i2s.c +++ b/sound/soc/s3c24xx/s3c24xx-i2s.c | |||
@@ -377,7 +377,8 @@ u32 s3c24xx_i2s_get_clockrate(void) | |||
377 | } | 377 | } |
378 | EXPORT_SYMBOL_GPL(s3c24xx_i2s_get_clockrate); | 378 | EXPORT_SYMBOL_GPL(s3c24xx_i2s_get_clockrate); |
379 | 379 | ||
380 | static int s3c24xx_i2s_probe(struct platform_device *pdev) | 380 | static int s3c24xx_i2s_probe(struct platform_device *pdev, |
381 | struct snd_soc_cpu_dai *dai) | ||
381 | { | 382 | { |
382 | DBG("Entered %s\n", __func__); | 383 | DBG("Entered %s\n", __func__); |
383 | 384 | ||
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index f594ab888e17..c96a6184d66e 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c | |||
@@ -768,7 +768,7 @@ static int soc_probe(struct platform_device *pdev) | |||
768 | for (i = 0; i < machine->num_links; i++) { | 768 | for (i = 0; i < machine->num_links; i++) { |
769 | struct snd_soc_cpu_dai *cpu_dai = machine->dai_link[i].cpu_dai; | 769 | struct snd_soc_cpu_dai *cpu_dai = machine->dai_link[i].cpu_dai; |
770 | if (cpu_dai->probe) { | 770 | if (cpu_dai->probe) { |
771 | ret = cpu_dai->probe(pdev); | 771 | ret = cpu_dai->probe(pdev, cpu_dai); |
772 | if (ret < 0) | 772 | if (ret < 0) |
773 | goto cpu_dai_err; | 773 | goto cpu_dai_err; |
774 | } | 774 | } |
@@ -798,7 +798,7 @@ cpu_dai_err: | |||
798 | for (i--; i >= 0; i--) { | 798 | for (i--; i >= 0; i--) { |
799 | struct snd_soc_cpu_dai *cpu_dai = machine->dai_link[i].cpu_dai; | 799 | struct snd_soc_cpu_dai *cpu_dai = machine->dai_link[i].cpu_dai; |
800 | if (cpu_dai->remove) | 800 | if (cpu_dai->remove) |
801 | cpu_dai->remove(pdev); | 801 | cpu_dai->remove(pdev, cpu_dai); |
802 | } | 802 | } |
803 | 803 | ||
804 | if (machine->remove) | 804 | if (machine->remove) |
@@ -827,7 +827,7 @@ static int soc_remove(struct platform_device *pdev) | |||
827 | for (i = 0; i < machine->num_links; i++) { | 827 | for (i = 0; i < machine->num_links; i++) { |
828 | struct snd_soc_cpu_dai *cpu_dai = machine->dai_link[i].cpu_dai; | 828 | struct snd_soc_cpu_dai *cpu_dai = machine->dai_link[i].cpu_dai; |
829 | if (cpu_dai->remove) | 829 | if (cpu_dai->remove) |
830 | cpu_dai->remove(pdev); | 830 | cpu_dai->remove(pdev, cpu_dai); |
831 | } | 831 | } |
832 | 832 | ||
833 | if (machine->remove) | 833 | if (machine->remove) |