diff options
42 files changed, 265 insertions, 237 deletions
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h index 08b8f7025c6..f51cb55902f 100644 --- a/include/sound/soc-dai.h +++ b/include/sound/soc-dai.h | |||
| @@ -156,6 +156,23 @@ struct snd_soc_dai_ops { | |||
| 156 | * Called by soc-core to minimise any pops. | 156 | * Called by soc-core to minimise any pops. |
| 157 | */ | 157 | */ |
| 158 | int (*digital_mute)(struct snd_soc_dai *dai, int mute); | 158 | int (*digital_mute)(struct snd_soc_dai *dai, int mute); |
| 159 | |||
| 160 | /* | ||
| 161 | * ALSA PCM audio operations - all optional. | ||
| 162 | * Called by soc-core during audio PCM operations. | ||
| 163 | */ | ||
| 164 | int (*startup)(struct snd_pcm_substream *, | ||
| 165 | struct snd_soc_dai *); | ||
| 166 | void (*shutdown)(struct snd_pcm_substream *, | ||
| 167 | struct snd_soc_dai *); | ||
| 168 | int (*hw_params)(struct snd_pcm_substream *, | ||
| 169 | struct snd_pcm_hw_params *, struct snd_soc_dai *); | ||
| 170 | int (*hw_free)(struct snd_pcm_substream *, | ||
| 171 | struct snd_soc_dai *); | ||
| 172 | int (*prepare)(struct snd_pcm_substream *, | ||
| 173 | struct snd_soc_dai *); | ||
| 174 | int (*trigger)(struct snd_pcm_substream *, int, | ||
| 175 | struct snd_soc_dai *); | ||
| 159 | }; | 176 | }; |
| 160 | 177 | ||
| 161 | /* | 178 | /* |
| @@ -180,8 +197,7 @@ struct snd_soc_dai { | |||
| 180 | struct snd_soc_dai *dai); | 197 | struct snd_soc_dai *dai); |
| 181 | 198 | ||
| 182 | /* ops */ | 199 | /* ops */ |
| 183 | struct snd_soc_ops ops; | 200 | struct snd_soc_dai_ops ops; |
| 184 | struct snd_soc_dai_ops dai_ops; | ||
| 185 | 201 | ||
| 186 | /* DAI capabilities */ | 202 | /* DAI capabilities */ |
| 187 | struct snd_soc_pcm_stream capture; | 203 | struct snd_soc_pcm_stream capture; |
diff --git a/sound/soc/atmel/atmel_ssc_dai.c b/sound/soc/atmel/atmel_ssc_dai.c index d290b789491..916f73b9a18 100644 --- a/sound/soc/atmel/atmel_ssc_dai.c +++ b/sound/soc/atmel/atmel_ssc_dai.c | |||
| @@ -202,7 +202,8 @@ static irqreturn_t atmel_ssc_interrupt(int irq, void *dev_id) | |||
| 202 | /* | 202 | /* |
| 203 | * Startup. Only that one substream allowed in each direction. | 203 | * Startup. Only that one substream allowed in each direction. |
| 204 | */ | 204 | */ |
| 205 | static int atmel_ssc_startup(struct snd_pcm_substream *substream) | 205 | static int atmel_ssc_startup(struct snd_pcm_substream *substream, |
| 206 | struct snd_soc_dai *dai) | ||
| 206 | { | 207 | { |
| 207 | struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream); | 208 | struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream); |
| 208 | struct atmel_ssc_info *ssc_p = &ssc_info[rtd->dai->cpu_dai->id]; | 209 | struct atmel_ssc_info *ssc_p = &ssc_info[rtd->dai->cpu_dai->id]; |
| @@ -231,7 +232,8 @@ static int atmel_ssc_startup(struct snd_pcm_substream *substream) | |||
| 231 | * Shutdown. Clear DMA parameters and shutdown the SSC if there | 232 | * Shutdown. Clear DMA parameters and shutdown the SSC if there |
| 232 | * are no other substreams open. | 233 | * are no other substreams open. |
| 233 | */ | 234 | */ |
| 234 | static void atmel_ssc_shutdown(struct snd_pcm_substream *substream) | 235 | static void atmel_ssc_shutdown(struct snd_pcm_substream *substream, |
| 236 | struct snd_soc_dai *dai) | ||
| 235 | { | 237 | { |
| 236 | struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream); | 238 | struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream); |
| 237 | struct atmel_ssc_info *ssc_p = &ssc_info[rtd->dai->cpu_dai->id]; | 239 | struct atmel_ssc_info *ssc_p = &ssc_info[rtd->dai->cpu_dai->id]; |
| @@ -332,7 +334,8 @@ static int atmel_ssc_set_dai_clkdiv(struct snd_soc_dai *cpu_dai, | |||
| 332 | * Configure the SSC. | 334 | * Configure the SSC. |
| 333 | */ | 335 | */ |
| 334 | static int atmel_ssc_hw_params(struct snd_pcm_substream *substream, | 336 | static int atmel_ssc_hw_params(struct snd_pcm_substream *substream, |
| 335 | struct snd_pcm_hw_params *params) | 337 | struct snd_pcm_hw_params *params, |
| 338 | struct snd_soc_dai *dai) | ||
| 336 | { | 339 | { |
| 337 | struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream); | 340 | struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream); |
| 338 | int id = rtd->dai->cpu_dai->id; | 341 | int id = rtd->dai->cpu_dai->id; |
| @@ -600,7 +603,8 @@ static int atmel_ssc_hw_params(struct snd_pcm_substream *substream, | |||
| 600 | } | 603 | } |
| 601 | 604 | ||
| 602 | 605 | ||
| 603 | static int atmel_ssc_prepare(struct snd_pcm_substream *substream) | 606 | static int atmel_ssc_prepare(struct snd_pcm_substream *substream, |
| 607 | struct snd_soc_dai *dai) | ||
| 604 | { | 608 | { |
| 605 | struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream); | 609 | struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream); |
| 606 | struct atmel_ssc_info *ssc_p = &ssc_info[rtd->dai->cpu_dai->id]; | 610 | struct atmel_ssc_info *ssc_p = &ssc_info[rtd->dai->cpu_dai->id]; |
| @@ -715,8 +719,7 @@ struct snd_soc_dai atmel_ssc_dai[NUM_SSC_DEVICES] = { | |||
| 715 | .startup = atmel_ssc_startup, | 719 | .startup = atmel_ssc_startup, |
| 716 | .shutdown = atmel_ssc_shutdown, | 720 | .shutdown = atmel_ssc_shutdown, |
| 717 | .prepare = atmel_ssc_prepare, | 721 | .prepare = atmel_ssc_prepare, |
| 718 | .hw_params = atmel_ssc_hw_params,}, | 722 | .hw_params = atmel_ssc_hw_params, |
| 719 | .dai_ops = { | ||
| 720 | .set_fmt = atmel_ssc_set_dai_fmt, | 723 | .set_fmt = atmel_ssc_set_dai_fmt, |
| 721 | .set_clkdiv = atmel_ssc_set_dai_clkdiv,}, | 724 | .set_clkdiv = atmel_ssc_set_dai_clkdiv,}, |
| 722 | .private_data = &ssc_info[0], | 725 | .private_data = &ssc_info[0], |
| @@ -741,8 +744,7 @@ struct snd_soc_dai atmel_ssc_dai[NUM_SSC_DEVICES] = { | |||
| 741 | .startup = atmel_ssc_startup, | 744 | .startup = atmel_ssc_startup, |
| 742 | .shutdown = atmel_ssc_shutdown, | 745 | .shutdown = atmel_ssc_shutdown, |
| 743 | .prepare = atmel_ssc_prepare, | 746 | .prepare = atmel_ssc_prepare, |
| 744 | .hw_params = atmel_ssc_hw_params,}, | 747 | .hw_params = atmel_ssc_hw_params, |
| 745 | .dai_ops = { | ||
| 746 | .set_fmt = atmel_ssc_set_dai_fmt, | 748 | .set_fmt = atmel_ssc_set_dai_fmt, |
| 747 | .set_clkdiv = atmel_ssc_set_dai_clkdiv,}, | 749 | .set_clkdiv = atmel_ssc_set_dai_clkdiv,}, |
| 748 | .private_data = &ssc_info[1], | 750 | .private_data = &ssc_info[1], |
| @@ -766,8 +768,7 @@ struct snd_soc_dai atmel_ssc_dai[NUM_SSC_DEVICES] = { | |||
| 766 | .startup = atmel_ssc_startup, | 768 | .startup = atmel_ssc_startup, |
| 767 | .shutdown = atmel_ssc_shutdown, | 769 | .shutdown = atmel_ssc_shutdown, |
| 768 | .prepare = atmel_ssc_prepare, | 770 | .prepare = atmel_ssc_prepare, |
| 769 | .hw_params = atmel_ssc_hw_params,}, | 771 | .hw_params = atmel_ssc_hw_params, |
| 770 | .dai_ops = { | ||
| 771 | .set_fmt = atmel_ssc_set_dai_fmt, | 772 | .set_fmt = atmel_ssc_set_dai_fmt, |
| 772 | .set_clkdiv = atmel_ssc_set_dai_clkdiv,}, | 773 | .set_clkdiv = atmel_ssc_set_dai_clkdiv,}, |
| 773 | .private_data = &ssc_info[2], | 774 | .private_data = &ssc_info[2], |
diff --git a/sound/soc/au1x/psc-ac97.c b/sound/soc/au1x/psc-ac97.c index 57facbad682..ad60a6042ca 100644 --- a/sound/soc/au1x/psc-ac97.c +++ b/sound/soc/au1x/psc-ac97.c | |||
| @@ -160,7 +160,8 @@ struct snd_ac97_bus_ops soc_ac97_ops = { | |||
| 160 | EXPORT_SYMBOL_GPL(soc_ac97_ops); | 160 | EXPORT_SYMBOL_GPL(soc_ac97_ops); |
| 161 | 161 | ||
| 162 | static int au1xpsc_ac97_hw_params(struct snd_pcm_substream *substream, | 162 | static int au1xpsc_ac97_hw_params(struct snd_pcm_substream *substream, |
| 163 | struct snd_pcm_hw_params *params) | 163 | struct snd_pcm_hw_params *params, |
| 164 | struct snd_soc_dai *dai) | ||
| 164 | { | 165 | { |
| 165 | /* FIXME */ | 166 | /* FIXME */ |
| 166 | struct au1xpsc_audio_data *pscdata = au1xpsc_ac97_workdata; | 167 | struct au1xpsc_audio_data *pscdata = au1xpsc_ac97_workdata; |
| @@ -210,7 +211,7 @@ static int au1xpsc_ac97_hw_params(struct snd_pcm_substream *substream, | |||
| 210 | } | 211 | } |
| 211 | 212 | ||
| 212 | static int au1xpsc_ac97_trigger(struct snd_pcm_substream *substream, | 213 | static int au1xpsc_ac97_trigger(struct snd_pcm_substream *substream, |
| 213 | int cmd) | 214 | int cmd, struct snd_soc_dai *dai) |
| 214 | { | 215 | { |
| 215 | /* FIXME */ | 216 | /* FIXME */ |
| 216 | struct au1xpsc_audio_data *pscdata = au1xpsc_ac97_workdata; | 217 | struct au1xpsc_audio_data *pscdata = au1xpsc_ac97_workdata; |
diff --git a/sound/soc/au1x/psc-i2s.c b/sound/soc/au1x/psc-i2s.c index 9384702c7eb..05a5acbb16a 100644 --- a/sound/soc/au1x/psc-i2s.c +++ b/sound/soc/au1x/psc-i2s.c | |||
| @@ -116,7 +116,8 @@ out: | |||
| 116 | } | 116 | } |
| 117 | 117 | ||
| 118 | static int au1xpsc_i2s_hw_params(struct snd_pcm_substream *substream, | 118 | static int au1xpsc_i2s_hw_params(struct snd_pcm_substream *substream, |
| 119 | struct snd_pcm_hw_params *params) | 119 | struct snd_pcm_hw_params *params, |
| 120 | struct snd_soc_dai *dai) | ||
| 120 | { | 121 | { |
| 121 | struct au1xpsc_audio_data *pscdata = au1xpsc_i2s_workdata; | 122 | struct au1xpsc_audio_data *pscdata = au1xpsc_i2s_workdata; |
| 122 | 123 | ||
| @@ -240,7 +241,8 @@ static int au1xpsc_i2s_stop(struct au1xpsc_audio_data *pscdata, int stype) | |||
| 240 | return 0; | 241 | return 0; |
| 241 | } | 242 | } |
| 242 | 243 | ||
| 243 | static int au1xpsc_i2s_trigger(struct snd_pcm_substream *substream, int cmd) | 244 | static int au1xpsc_i2s_trigger(struct snd_pcm_substream *substream, int cmd, |
| 245 | struct snd_soc_dai *dai) | ||
| 244 | { | 246 | { |
| 245 | struct au1xpsc_audio_data *pscdata = au1xpsc_i2s_workdata; | 247 | struct au1xpsc_audio_data *pscdata = au1xpsc_i2s_workdata; |
| 246 | int ret, stype = SUBSTREAM_TYPE(substream); | 248 | int ret, stype = SUBSTREAM_TYPE(substream); |
| @@ -389,8 +391,6 @@ struct snd_soc_dai au1xpsc_i2s_dai = { | |||
| 389 | .ops = { | 391 | .ops = { |
| 390 | .trigger = au1xpsc_i2s_trigger, | 392 | .trigger = au1xpsc_i2s_trigger, |
| 391 | .hw_params = au1xpsc_i2s_hw_params, | 393 | .hw_params = au1xpsc_i2s_hw_params, |
| 392 | }, | ||
| 393 | .dai_ops = { | ||
| 394 | .set_fmt = au1xpsc_i2s_set_fmt, | 394 | .set_fmt = au1xpsc_i2s_set_fmt, |
| 395 | }, | 395 | }, |
| 396 | }; | 396 | }; |
diff --git a/sound/soc/blackfin/bf5xx-i2s.c b/sound/soc/blackfin/bf5xx-i2s.c index e020c160ee4..4e675b55b18 100644 --- a/sound/soc/blackfin/bf5xx-i2s.c +++ b/sound/soc/blackfin/bf5xx-i2s.c | |||
| @@ -132,7 +132,8 @@ static int bf5xx_i2s_set_dai_fmt(struct snd_soc_dai *cpu_dai, | |||
| 132 | return ret; | 132 | return ret; |
| 133 | } | 133 | } |
| 134 | 134 | ||
| 135 | static int bf5xx_i2s_startup(struct snd_pcm_substream *substream) | 135 | static int bf5xx_i2s_startup(struct snd_pcm_substream *substream, |
| 136 | struct snd_soc_dai *dai) | ||
| 136 | { | 137 | { |
| 137 | pr_debug("%s enter\n", __func__); | 138 | pr_debug("%s enter\n", __func__); |
| 138 | 139 | ||
| @@ -142,7 +143,8 @@ static int bf5xx_i2s_startup(struct snd_pcm_substream *substream) | |||
| 142 | } | 143 | } |
| 143 | 144 | ||
| 144 | static int bf5xx_i2s_hw_params(struct snd_pcm_substream *substream, | 145 | static int bf5xx_i2s_hw_params(struct snd_pcm_substream *substream, |
| 145 | struct snd_pcm_hw_params *params) | 146 | struct snd_pcm_hw_params *params, |
| 147 | struct snd_soc_dai *dai) | ||
| 146 | { | 148 | { |
| 147 | int ret = 0; | 149 | int ret = 0; |
| 148 | 150 | ||
| @@ -193,7 +195,8 @@ static int bf5xx_i2s_hw_params(struct snd_pcm_substream *substream, | |||
| 193 | return 0; | 195 | return 0; |
| 194 | } | 196 | } |
| 195 | 197 | ||
| 196 | static void bf5xx_i2s_shutdown(struct snd_pcm_substream *substream) | 198 | static void bf5xx_i2s_shutdown(struct snd_pcm_substream *substream, |
| 199 | struct snd_soc_dai *dai) | ||
| 197 | { | 200 | { |
| 198 | pr_debug("%s enter\n", __func__); | 201 | pr_debug("%s enter\n", __func__); |
| 199 | bf5xx_i2s.counter--; | 202 | bf5xx_i2s.counter--; |
| @@ -307,8 +310,7 @@ struct snd_soc_dai bf5xx_i2s_dai = { | |||
| 307 | .ops = { | 310 | .ops = { |
| 308 | .startup = bf5xx_i2s_startup, | 311 | .startup = bf5xx_i2s_startup, |
| 309 | .shutdown = bf5xx_i2s_shutdown, | 312 | .shutdown = bf5xx_i2s_shutdown, |
| 310 | .hw_params = bf5xx_i2s_hw_params,}, | 313 | .hw_params = bf5xx_i2s_hw_params, |
| 311 | .dai_ops = { | ||
| 312 | .set_fmt = bf5xx_i2s_set_dai_fmt, | 314 | .set_fmt = bf5xx_i2s_set_dai_fmt, |
| 313 | }, | 315 | }, |
| 314 | }; | 316 | }; |
diff --git a/sound/soc/codecs/ac97.c b/sound/soc/codecs/ac97.c index bd1ebdc6c86..8a93aff359d 100644 --- a/sound/soc/codecs/ac97.c +++ b/sound/soc/codecs/ac97.c | |||
| @@ -24,7 +24,8 @@ | |||
| 24 | 24 | ||
| 25 | #define AC97_VERSION "0.6" | 25 | #define AC97_VERSION "0.6" |
| 26 | 26 | ||
| 27 | static int ac97_prepare(struct snd_pcm_substream *substream) | 27 | static int ac97_prepare(struct snd_pcm_substream *substream, |
| 28 | struct snd_soc_dai *dai) | ||
| 28 | { | 29 | { |
| 29 | struct snd_pcm_runtime *runtime = substream->runtime; | 30 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 30 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 31 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
diff --git a/sound/soc/codecs/ak4535.c b/sound/soc/codecs/ak4535.c index 2a89b5888e1..c742290e553 100644 --- a/sound/soc/codecs/ak4535.c +++ b/sound/soc/codecs/ak4535.c | |||
| @@ -339,7 +339,8 @@ static int ak4535_set_dai_sysclk(struct snd_soc_dai *codec_dai, | |||
| 339 | } | 339 | } |
| 340 | 340 | ||
| 341 | static int ak4535_hw_params(struct snd_pcm_substream *substream, | 341 | static int ak4535_hw_params(struct snd_pcm_substream *substream, |
| 342 | struct snd_pcm_hw_params *params) | 342 | struct snd_pcm_hw_params *params, |
| 343 | struct snd_soc_dai *dai) | ||
| 343 | { | 344 | { |
| 344 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 345 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 345 | struct snd_soc_device *socdev = rtd->socdev; | 346 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -451,8 +452,6 @@ struct snd_soc_dai ak4535_dai = { | |||
| 451 | .formats = SNDRV_PCM_FMTBIT_S16_LE,}, | 452 | .formats = SNDRV_PCM_FMTBIT_S16_LE,}, |
| 452 | .ops = { | 453 | .ops = { |
| 453 | .hw_params = ak4535_hw_params, | 454 | .hw_params = ak4535_hw_params, |
| 454 | }, | ||
| 455 | .dai_ops = { | ||
| 456 | .set_fmt = ak4535_set_dai_fmt, | 455 | .set_fmt = ak4535_set_dai_fmt, |
| 457 | .digital_mute = ak4535_mute, | 456 | .digital_mute = ak4535_mute, |
| 458 | .set_sysclk = ak4535_set_dai_sysclk, | 457 | .set_sysclk = ak4535_set_dai_sysclk, |
diff --git a/sound/soc/codecs/cs4270.c b/sound/soc/codecs/cs4270.c index 0ff476d7057..7507d468b20 100644 --- a/sound/soc/codecs/cs4270.c +++ b/sound/soc/codecs/cs4270.c | |||
| @@ -360,13 +360,14 @@ static int cs4270_i2c_write(struct snd_soc_codec *codec, unsigned int reg, | |||
| 360 | /* | 360 | /* |
| 361 | * Program the CS4270 with the given hardware parameters. | 361 | * Program the CS4270 with the given hardware parameters. |
| 362 | * | 362 | * |
| 363 | * The .dai_ops functions are used to provide board-specific data, like | 363 | * The .ops functions are used to provide board-specific data, like |
| 364 | * input frequencies, to this driver. This function takes that information, | 364 | * input frequencies, to this driver. This function takes that information, |
| 365 | * combines it with the hardware parameters provided, and programs the | 365 | * combines it with the hardware parameters provided, and programs the |
| 366 | * hardware accordingly. | 366 | * hardware accordingly. |
| 367 | */ | 367 | */ |
| 368 | static int cs4270_hw_params(struct snd_pcm_substream *substream, | 368 | static int cs4270_hw_params(struct snd_pcm_substream *substream, |
| 369 | struct snd_pcm_hw_params *params) | 369 | struct snd_pcm_hw_params *params, |
| 370 | struct snd_soc_dai *dai) | ||
| 370 | { | 371 | { |
| 371 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 372 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 372 | struct snd_soc_device *socdev = rtd->socdev; | 373 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -710,10 +711,10 @@ static int cs4270_probe(struct platform_device *pdev) | |||
| 710 | if (codec->control_data) { | 711 | if (codec->control_data) { |
| 711 | /* Initialize codec ops */ | 712 | /* Initialize codec ops */ |
| 712 | cs4270_dai.ops.hw_params = cs4270_hw_params; | 713 | cs4270_dai.ops.hw_params = cs4270_hw_params; |
| 713 | cs4270_dai.dai_ops.set_sysclk = cs4270_set_dai_sysclk; | 714 | cs4270_dai.ops.set_sysclk = cs4270_set_dai_sysclk; |
| 714 | cs4270_dai.dai_ops.set_fmt = cs4270_set_dai_fmt; | 715 | cs4270_dai.ops.set_fmt = cs4270_set_dai_fmt; |
| 715 | #ifdef CONFIG_SND_SOC_CS4270_HWMUTE | 716 | #ifdef CONFIG_SND_SOC_CS4270_HWMUTE |
| 716 | cs4270_dai.dai_ops.digital_mute = cs4270_mute; | 717 | cs4270_dai.ops.digital_mute = cs4270_mute; |
| 717 | #endif | 718 | #endif |
| 718 | } else | 719 | } else |
| 719 | printk(KERN_INFO "cs4270: no I2C device found, " | 720 | printk(KERN_INFO "cs4270: no I2C device found, " |
diff --git a/sound/soc/codecs/ssm2602.c b/sound/soc/codecs/ssm2602.c index 56dc1c9c7c5..0c5884ea1b0 100644 --- a/sound/soc/codecs/ssm2602.c +++ b/sound/soc/codecs/ssm2602.c | |||
| @@ -285,7 +285,8 @@ static inline int get_coeff(int mclk, int rate) | |||
| 285 | } | 285 | } |
| 286 | 286 | ||
| 287 | static int ssm2602_hw_params(struct snd_pcm_substream *substream, | 287 | static int ssm2602_hw_params(struct snd_pcm_substream *substream, |
| 288 | struct snd_pcm_hw_params *params) | 288 | struct snd_pcm_hw_params *params, |
| 289 | struct snd_soc_dai *dai) | ||
| 289 | { | 290 | { |
| 290 | u16 srate; | 291 | u16 srate; |
| 291 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 292 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| @@ -330,7 +331,8 @@ static int ssm2602_hw_params(struct snd_pcm_substream *substream, | |||
| 330 | return 0; | 331 | return 0; |
| 331 | } | 332 | } |
| 332 | 333 | ||
| 333 | static int ssm2602_startup(struct snd_pcm_substream *substream) | 334 | static int ssm2602_startup(struct snd_pcm_substream *substream, |
| 335 | struct snd_soc_dai *dai) | ||
| 334 | { | 336 | { |
| 335 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 337 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 336 | struct snd_soc_device *socdev = rtd->socdev; | 338 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -366,7 +368,8 @@ static int ssm2602_startup(struct snd_pcm_substream *substream) | |||
| 366 | return 0; | 368 | return 0; |
| 367 | } | 369 | } |
| 368 | 370 | ||
| 369 | static int ssm2602_pcm_prepare(struct snd_pcm_substream *substream) | 371 | static int ssm2602_pcm_prepare(struct snd_pcm_substream *substream, |
| 372 | struct snd_soc_dai *dai) | ||
| 370 | { | 373 | { |
| 371 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 374 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 372 | struct snd_soc_device *socdev = rtd->socdev; | 375 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -377,7 +380,8 @@ static int ssm2602_pcm_prepare(struct snd_pcm_substream *substream) | |||
| 377 | return 0; | 380 | return 0; |
| 378 | } | 381 | } |
| 379 | 382 | ||
| 380 | static void ssm2602_shutdown(struct snd_pcm_substream *substream) | 383 | static void ssm2602_shutdown(struct snd_pcm_substream *substream, |
| 384 | struct snd_soc_dai *dai) | ||
| 381 | { | 385 | { |
| 382 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 386 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 383 | struct snd_soc_device *socdev = rtd->socdev; | 387 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -536,8 +540,6 @@ struct snd_soc_dai ssm2602_dai = { | |||
| 536 | .prepare = ssm2602_pcm_prepare, | 540 | .prepare = ssm2602_pcm_prepare, |
| 537 | .hw_params = ssm2602_hw_params, | 541 | .hw_params = ssm2602_hw_params, |
| 538 | .shutdown = ssm2602_shutdown, | 542 | .shutdown = ssm2602_shutdown, |
| 539 | }, | ||
| 540 | .dai_ops = { | ||
| 541 | .digital_mute = ssm2602_mute, | 543 | .digital_mute = ssm2602_mute, |
| 542 | .set_sysclk = ssm2602_set_dai_sysclk, | 544 | .set_sysclk = ssm2602_set_dai_sysclk, |
| 543 | .set_fmt = ssm2602_set_dai_fmt, | 545 | .set_fmt = ssm2602_set_dai_fmt, |
diff --git a/sound/soc/codecs/tlv320aic23.c b/sound/soc/codecs/tlv320aic23.c index c903e4f48dc..a4e13d0688c 100644 --- a/sound/soc/codecs/tlv320aic23.c +++ b/sound/soc/codecs/tlv320aic23.c | |||
| @@ -418,7 +418,8 @@ static int tlv320aic23_add_widgets(struct snd_soc_codec *codec) | |||
| 418 | } | 418 | } |
| 419 | 419 | ||
| 420 | static int tlv320aic23_hw_params(struct snd_pcm_substream *substream, | 420 | static int tlv320aic23_hw_params(struct snd_pcm_substream *substream, |
| 421 | struct snd_pcm_hw_params *params) | 421 | struct snd_pcm_hw_params *params, |
| 422 | struct snd_soc_dai *dai) | ||
| 422 | { | 423 | { |
| 423 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 424 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 424 | struct snd_soc_device *socdev = rtd->socdev; | 425 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -465,7 +466,8 @@ static int tlv320aic23_hw_params(struct snd_pcm_substream *substream, | |||
| 465 | return 0; | 466 | return 0; |
| 466 | } | 467 | } |
| 467 | 468 | ||
| 468 | static int tlv320aic23_pcm_prepare(struct snd_pcm_substream *substream) | 469 | static int tlv320aic23_pcm_prepare(struct snd_pcm_substream *substream, |
| 470 | struct snd_soc_dai *dai) | ||
| 469 | { | 471 | { |
| 470 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 472 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 471 | struct snd_soc_device *socdev = rtd->socdev; | 473 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -477,7 +479,8 @@ static int tlv320aic23_pcm_prepare(struct snd_pcm_substream *substream) | |||
| 477 | return 0; | 479 | return 0; |
| 478 | } | 480 | } |
| 479 | 481 | ||
| 480 | static void tlv320aic23_shutdown(struct snd_pcm_substream *substream) | 482 | static void tlv320aic23_shutdown(struct snd_pcm_substream *substream, |
| 483 | struct snd_soc_dai *dai) | ||
| 481 | { | 484 | { |
| 482 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 485 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 483 | struct snd_soc_device *socdev = rtd->socdev; | 486 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -613,12 +616,10 @@ struct snd_soc_dai tlv320aic23_dai = { | |||
| 613 | .prepare = tlv320aic23_pcm_prepare, | 616 | .prepare = tlv320aic23_pcm_prepare, |
| 614 | .hw_params = tlv320aic23_hw_params, | 617 | .hw_params = tlv320aic23_hw_params, |
| 615 | .shutdown = tlv320aic23_shutdown, | 618 | .shutdown = tlv320aic23_shutdown, |
| 616 | }, | 619 | .digital_mute = tlv320aic23_mute, |
| 617 | .dai_ops = { | 620 | .set_fmt = tlv320aic23_set_dai_fmt, |
| 618 | .digital_mute = tlv320aic23_mute, | 621 | .set_sysclk = tlv320aic23_set_dai_sysclk, |
| 619 | .set_fmt = tlv320aic23_set_dai_fmt, | 622 | } |
| 620 | .set_sysclk = tlv320aic23_set_dai_sysclk, | ||
| 621 | } | ||
| 622 | }; | 623 | }; |
| 623 | EXPORT_SYMBOL_GPL(tlv320aic23_dai); | 624 | EXPORT_SYMBOL_GPL(tlv320aic23_dai); |
| 624 | 625 | ||
diff --git a/sound/soc/codecs/tlv320aic26.c b/sound/soc/codecs/tlv320aic26.c index bed8a9e63dd..6b7ddfc9257 100644 --- a/sound/soc/codecs/tlv320aic26.c +++ b/sound/soc/codecs/tlv320aic26.c | |||
| @@ -125,7 +125,8 @@ static int aic26_reg_write(struct snd_soc_codec *codec, unsigned int reg, | |||
| 125 | * Digital Audio Interface Operations | 125 | * Digital Audio Interface Operations |
| 126 | */ | 126 | */ |
| 127 | static int aic26_hw_params(struct snd_pcm_substream *substream, | 127 | static int aic26_hw_params(struct snd_pcm_substream *substream, |
| 128 | struct snd_pcm_hw_params *params) | 128 | struct snd_pcm_hw_params *params, |
| 129 | struct snd_soc_dai *dai) | ||
| 129 | { | 130 | { |
| 130 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 131 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 131 | struct snd_soc_device *socdev = rtd->socdev; | 132 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -287,8 +288,6 @@ struct snd_soc_dai aic26_dai = { | |||
| 287 | }, | 288 | }, |
| 288 | .ops = { | 289 | .ops = { |
| 289 | .hw_params = aic26_hw_params, | 290 | .hw_params = aic26_hw_params, |
| 290 | }, | ||
| 291 | .dai_ops = { | ||
| 292 | .digital_mute = aic26_mute, | 291 | .digital_mute = aic26_mute, |
| 293 | .set_sysclk = aic26_set_sysclk, | 292 | .set_sysclk = aic26_set_sysclk, |
| 294 | .set_fmt = aic26_set_fmt, | 293 | .set_fmt = aic26_set_fmt, |
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c index cff276ee261..b76bcc3c411 100644 --- a/sound/soc/codecs/tlv320aic3x.c +++ b/sound/soc/codecs/tlv320aic3x.c | |||
| @@ -694,7 +694,8 @@ static int aic3x_add_widgets(struct snd_soc_codec *codec) | |||
| 694 | } | 694 | } |
| 695 | 695 | ||
| 696 | static int aic3x_hw_params(struct snd_pcm_substream *substream, | 696 | static int aic3x_hw_params(struct snd_pcm_substream *substream, |
| 697 | struct snd_pcm_hw_params *params) | 697 | struct snd_pcm_hw_params *params, |
| 698 | struct snd_soc_dai *dai) | ||
| 698 | { | 699 | { |
| 699 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 700 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 700 | struct snd_soc_device *socdev = rtd->socdev; | 701 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -1009,8 +1010,6 @@ struct snd_soc_dai aic3x_dai = { | |||
| 1009 | .formats = AIC3X_FORMATS,}, | 1010 | .formats = AIC3X_FORMATS,}, |
| 1010 | .ops = { | 1011 | .ops = { |
| 1011 | .hw_params = aic3x_hw_params, | 1012 | .hw_params = aic3x_hw_params, |
| 1012 | }, | ||
| 1013 | .dai_ops = { | ||
| 1014 | .digital_mute = aic3x_mute, | 1013 | .digital_mute = aic3x_mute, |
| 1015 | .set_sysclk = aic3x_set_dai_sysclk, | 1014 | .set_sysclk = aic3x_set_dai_sysclk, |
| 1016 | .set_fmt = aic3x_set_dai_fmt, | 1015 | .set_fmt = aic3x_set_dai_fmt, |
diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c index c778eb446a5..33489515b92 100644 --- a/sound/soc/codecs/twl4030.c +++ b/sound/soc/codecs/twl4030.c | |||
| @@ -343,7 +343,8 @@ static int twl4030_set_bias_level(struct snd_soc_codec *codec, | |||
| 343 | } | 343 | } |
| 344 | 344 | ||
| 345 | static int twl4030_hw_params(struct snd_pcm_substream *substream, | 345 | static int twl4030_hw_params(struct snd_pcm_substream *substream, |
| 346 | struct snd_pcm_hw_params *params) | 346 | struct snd_pcm_hw_params *params, |
| 347 | struct snd_soc_dai *dai) | ||
| 347 | { | 348 | { |
| 348 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 349 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 349 | struct snd_soc_device *socdev = rtd->socdev; | 350 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -523,8 +524,6 @@ struct snd_soc_dai twl4030_dai = { | |||
| 523 | .formats = TWL4030_FORMATS,}, | 524 | .formats = TWL4030_FORMATS,}, |
| 524 | .ops = { | 525 | .ops = { |
| 525 | .hw_params = twl4030_hw_params, | 526 | .hw_params = twl4030_hw_params, |
| 526 | }, | ||
| 527 | .dai_ops = { | ||
| 528 | .set_sysclk = twl4030_set_dai_sysclk, | 527 | .set_sysclk = twl4030_set_dai_sysclk, |
| 529 | .set_fmt = twl4030_set_dai_fmt, | 528 | .set_fmt = twl4030_set_dai_fmt, |
| 530 | } | 529 | } |
diff --git a/sound/soc/codecs/uda134x.c b/sound/soc/codecs/uda134x.c index 69ef521a2ed..91f333cdc7c 100644 --- a/sound/soc/codecs/uda134x.c +++ b/sound/soc/codecs/uda134x.c | |||
| @@ -168,7 +168,8 @@ static int uda134x_mute(struct snd_soc_dai *dai, int mute) | |||
| 168 | return 0; | 168 | return 0; |
| 169 | } | 169 | } |
| 170 | 170 | ||
| 171 | static int uda134x_startup(struct snd_pcm_substream *substream) | 171 | static int uda134x_startup(struct snd_pcm_substream *substream, |
| 172 | struct snd_soc_dai *dai) | ||
| 172 | { | 173 | { |
| 173 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 174 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 174 | struct snd_soc_device *socdev = rtd->socdev; | 175 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -200,7 +201,8 @@ static int uda134x_startup(struct snd_pcm_substream *substream) | |||
| 200 | return 0; | 201 | return 0; |
| 201 | } | 202 | } |
| 202 | 203 | ||
| 203 | static void uda134x_shutdown(struct snd_pcm_substream *substream) | 204 | static void uda134x_shutdown(struct snd_pcm_substream *substream, |
| 205 | struct snd_soc_dai *dai) | ||
| 204 | { | 206 | { |
| 205 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 207 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 206 | struct snd_soc_device *socdev = rtd->socdev; | 208 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -214,7 +216,8 @@ static void uda134x_shutdown(struct snd_pcm_substream *substream) | |||
| 214 | } | 216 | } |
| 215 | 217 | ||
| 216 | static int uda134x_hw_params(struct snd_pcm_substream *substream, | 218 | static int uda134x_hw_params(struct snd_pcm_substream *substream, |
| 217 | struct snd_pcm_hw_params *params) | 219 | struct snd_pcm_hw_params *params, |
| 220 | struct snd_soc_dai *dai) | ||
| 218 | { | 221 | { |
| 219 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 222 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 220 | struct snd_soc_device *socdev = rtd->socdev; | 223 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -484,9 +487,6 @@ struct snd_soc_dai uda134x_dai = { | |||
| 484 | .startup = uda134x_startup, | 487 | .startup = uda134x_startup, |
| 485 | .shutdown = uda134x_shutdown, | 488 | .shutdown = uda134x_shutdown, |
| 486 | .hw_params = uda134x_hw_params, | 489 | .hw_params = uda134x_hw_params, |
| 487 | }, | ||
| 488 | /* DAI operations */ | ||
| 489 | .dai_ops = { | ||
| 490 | .digital_mute = uda134x_mute, | 490 | .digital_mute = uda134x_mute, |
| 491 | .set_sysclk = uda134x_set_dai_sysclk, | 491 | .set_sysclk = uda134x_set_dai_sysclk, |
| 492 | .set_fmt = uda134x_set_dai_fmt, | 492 | .set_fmt = uda134x_set_dai_fmt, |
diff --git a/sound/soc/codecs/uda1380.c b/sound/soc/codecs/uda1380.c index a69ee72a7af..330877c7069 100644 --- a/sound/soc/codecs/uda1380.c +++ b/sound/soc/codecs/uda1380.c | |||
| @@ -407,7 +407,8 @@ static int uda1380_set_dai_fmt(struct snd_soc_dai *codec_dai, | |||
| 407 | * when the DAI is being clocked by the CPU DAI. It's up to the | 407 | * when the DAI is being clocked by the CPU DAI. It's up to the |
| 408 | * machine and cpu DAI driver to do this before we are called. | 408 | * machine and cpu DAI driver to do this before we are called. |
| 409 | */ | 409 | */ |
| 410 | static int uda1380_pcm_prepare(struct snd_pcm_substream *substream) | 410 | static int uda1380_pcm_prepare(struct snd_pcm_substream *substream, |
| 411 | struct snd_soc_dai *dai) | ||
| 411 | { | 412 | { |
| 412 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 413 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 413 | struct snd_soc_device *socdev = rtd->socdev; | 414 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -439,7 +440,8 @@ static int uda1380_pcm_prepare(struct snd_pcm_substream *substream) | |||
| 439 | } | 440 | } |
| 440 | 441 | ||
| 441 | static int uda1380_pcm_hw_params(struct snd_pcm_substream *substream, | 442 | static int uda1380_pcm_hw_params(struct snd_pcm_substream *substream, |
| 442 | struct snd_pcm_hw_params *params) | 443 | struct snd_pcm_hw_params *params, |
| 444 | struct snd_soc_dai *dai) | ||
| 443 | { | 445 | { |
| 444 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 446 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 445 | struct snd_soc_device *socdev = rtd->socdev; | 447 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -477,7 +479,8 @@ static int uda1380_pcm_hw_params(struct snd_pcm_substream *substream, | |||
| 477 | return 0; | 479 | return 0; |
| 478 | } | 480 | } |
| 479 | 481 | ||
| 480 | static void uda1380_pcm_shutdown(struct snd_pcm_substream *substream) | 482 | static void uda1380_pcm_shutdown(struct snd_pcm_substream *substream, |
| 483 | struct snd_soc_dai *dai) | ||
| 481 | { | 484 | { |
| 482 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 485 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 483 | struct snd_soc_device *socdev = rtd->socdev; | 486 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -560,8 +563,6 @@ struct snd_soc_dai uda1380_dai[] = { | |||
| 560 | .hw_params = uda1380_pcm_hw_params, | 563 | .hw_params = uda1380_pcm_hw_params, |
| 561 | .shutdown = uda1380_pcm_shutdown, | 564 | .shutdown = uda1380_pcm_shutdown, |
| 562 | .prepare = uda1380_pcm_prepare, | 565 | .prepare = uda1380_pcm_prepare, |
| 563 | }, | ||
| 564 | .dai_ops = { | ||
| 565 | .digital_mute = uda1380_mute, | 566 | .digital_mute = uda1380_mute, |
| 566 | .set_fmt = uda1380_set_dai_fmt, | 567 | .set_fmt = uda1380_set_dai_fmt, |
| 567 | }, | 568 | }, |
| @@ -579,8 +580,6 @@ struct snd_soc_dai uda1380_dai[] = { | |||
| 579 | .hw_params = uda1380_pcm_hw_params, | 580 | .hw_params = uda1380_pcm_hw_params, |
| 580 | .shutdown = uda1380_pcm_shutdown, | 581 | .shutdown = uda1380_pcm_shutdown, |
| 581 | .prepare = uda1380_pcm_prepare, | 582 | .prepare = uda1380_pcm_prepare, |
| 582 | }, | ||
| 583 | .dai_ops = { | ||
| 584 | .digital_mute = uda1380_mute, | 583 | .digital_mute = uda1380_mute, |
| 585 | .set_fmt = uda1380_set_dai_fmt, | 584 | .set_fmt = uda1380_set_dai_fmt, |
| 586 | }, | 585 | }, |
| @@ -598,8 +597,6 @@ struct snd_soc_dai uda1380_dai[] = { | |||
| 598 | .hw_params = uda1380_pcm_hw_params, | 597 | .hw_params = uda1380_pcm_hw_params, |
| 599 | .shutdown = uda1380_pcm_shutdown, | 598 | .shutdown = uda1380_pcm_shutdown, |
| 600 | .prepare = uda1380_pcm_prepare, | 599 | .prepare = uda1380_pcm_prepare, |
| 601 | }, | ||
| 602 | .dai_ops = { | ||
| 603 | .set_fmt = uda1380_set_dai_fmt, | 600 | .set_fmt = uda1380_set_dai_fmt, |
| 604 | }, | 601 | }, |
| 605 | }, | 602 | }, |
diff --git a/sound/soc/codecs/wm8510.c b/sound/soc/codecs/wm8510.c index d8ca2da8d63..173b66c0c76 100644 --- a/sound/soc/codecs/wm8510.c +++ b/sound/soc/codecs/wm8510.c | |||
| @@ -463,7 +463,8 @@ static int wm8510_set_dai_fmt(struct snd_soc_dai *codec_dai, | |||
| 463 | } | 463 | } |
| 464 | 464 | ||
| 465 | static int wm8510_pcm_hw_params(struct snd_pcm_substream *substream, | 465 | static int wm8510_pcm_hw_params(struct snd_pcm_substream *substream, |
| 466 | struct snd_pcm_hw_params *params) | 466 | struct snd_pcm_hw_params *params, |
| 467 | struct snd_soc_dai *dai) | ||
| 467 | { | 468 | { |
| 468 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 469 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 469 | struct snd_soc_device *socdev = rtd->socdev; | 470 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -585,8 +586,6 @@ struct snd_soc_dai wm8510_dai = { | |||
| 585 | .formats = WM8510_FORMATS,}, | 586 | .formats = WM8510_FORMATS,}, |
| 586 | .ops = { | 587 | .ops = { |
| 587 | .hw_params = wm8510_pcm_hw_params, | 588 | .hw_params = wm8510_pcm_hw_params, |
| 588 | }, | ||
| 589 | .dai_ops = { | ||
| 590 | .digital_mute = wm8510_mute, | 589 | .digital_mute = wm8510_mute, |
| 591 | .set_fmt = wm8510_set_dai_fmt, | 590 | .set_fmt = wm8510_set_dai_fmt, |
| 592 | .set_clkdiv = wm8510_set_dai_clkdiv, | 591 | .set_clkdiv = wm8510_set_dai_clkdiv, |
diff --git a/sound/soc/codecs/wm8580.c b/sound/soc/codecs/wm8580.c index cbcd7c324ab..220d4b68904 100644 --- a/sound/soc/codecs/wm8580.c +++ b/sound/soc/codecs/wm8580.c | |||
| @@ -548,13 +548,13 @@ static int wm8580_set_dai_pll(struct snd_soc_dai *codec_dai, | |||
| 548 | * Set PCM DAI bit size and sample rate. | 548 | * Set PCM DAI bit size and sample rate. |
| 549 | */ | 549 | */ |
| 550 | static int wm8580_paif_hw_params(struct snd_pcm_substream *substream, | 550 | static int wm8580_paif_hw_params(struct snd_pcm_substream *substream, |
| 551 | struct snd_pcm_hw_params *params) | 551 | struct snd_pcm_hw_params *params, |
| 552 | struct snd_soc_dai *dai) | ||
| 552 | { | 553 | { |
| 553 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 554 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 554 | struct snd_soc_dai_link *dai = rtd->dai; | ||
| 555 | struct snd_soc_device *socdev = rtd->socdev; | 555 | struct snd_soc_device *socdev = rtd->socdev; |
| 556 | struct snd_soc_codec *codec = socdev->codec; | 556 | struct snd_soc_codec *codec = socdev->codec; |
| 557 | u16 paifb = wm8580_read(codec, WM8580_PAIF3 + dai->codec_dai->id); | 557 | u16 paifb = wm8580_read(codec, WM8580_PAIF3 + dai->id); |
| 558 | 558 | ||
| 559 | paifb &= ~WM8580_AIF_LENGTH_MASK; | 559 | paifb &= ~WM8580_AIF_LENGTH_MASK; |
| 560 | /* bit size */ | 560 | /* bit size */ |
| @@ -574,7 +574,7 @@ static int wm8580_paif_hw_params(struct snd_pcm_substream *substream, | |||
| 574 | return -EINVAL; | 574 | return -EINVAL; |
| 575 | } | 575 | } |
| 576 | 576 | ||
| 577 | wm8580_write(codec, WM8580_PAIF3 + dai->codec_dai->id, paifb); | 577 | wm8580_write(codec, WM8580_PAIF3 + dai->id, paifb); |
| 578 | return 0; | 578 | return 0; |
| 579 | } | 579 | } |
| 580 | 580 | ||
| @@ -798,8 +798,6 @@ struct snd_soc_dai wm8580_dai[] = { | |||
| 798 | }, | 798 | }, |
| 799 | .ops = { | 799 | .ops = { |
| 800 | .hw_params = wm8580_paif_hw_params, | 800 | .hw_params = wm8580_paif_hw_params, |
| 801 | }, | ||
| 802 | .dai_ops = { | ||
| 803 | .set_fmt = wm8580_set_paif_dai_fmt, | 801 | .set_fmt = wm8580_set_paif_dai_fmt, |
| 804 | .set_clkdiv = wm8580_set_dai_clkdiv, | 802 | .set_clkdiv = wm8580_set_dai_clkdiv, |
| 805 | .set_pll = wm8580_set_dai_pll, | 803 | .set_pll = wm8580_set_dai_pll, |
| @@ -818,8 +816,6 @@ struct snd_soc_dai wm8580_dai[] = { | |||
| 818 | }, | 816 | }, |
| 819 | .ops = { | 817 | .ops = { |
| 820 | .hw_params = wm8580_paif_hw_params, | 818 | .hw_params = wm8580_paif_hw_params, |
| 821 | }, | ||
| 822 | .dai_ops = { | ||
| 823 | .set_fmt = wm8580_set_paif_dai_fmt, | 819 | .set_fmt = wm8580_set_paif_dai_fmt, |
| 824 | .set_clkdiv = wm8580_set_dai_clkdiv, | 820 | .set_clkdiv = wm8580_set_dai_clkdiv, |
| 825 | .set_pll = wm8580_set_dai_pll, | 821 | .set_pll = wm8580_set_dai_pll, |
diff --git a/sound/soc/codecs/wm8728.c b/sound/soc/codecs/wm8728.c index 3e39dea6124..71949bd320d 100644 --- a/sound/soc/codecs/wm8728.c +++ b/sound/soc/codecs/wm8728.c | |||
| @@ -147,7 +147,8 @@ static int wm8728_mute(struct snd_soc_dai *dai, int mute) | |||
| 147 | } | 147 | } |
| 148 | 148 | ||
| 149 | static int wm8728_hw_params(struct snd_pcm_substream *substream, | 149 | static int wm8728_hw_params(struct snd_pcm_substream *substream, |
| 150 | struct snd_pcm_hw_params *params) | 150 | struct snd_pcm_hw_params *params, |
| 151 | struct snd_soc_dai *dai) | ||
| 151 | { | 152 | { |
| 152 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 153 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 153 | struct snd_soc_device *socdev = rtd->socdev; | 154 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -269,8 +270,6 @@ struct snd_soc_dai wm8728_dai = { | |||
| 269 | }, | 270 | }, |
| 270 | .ops = { | 271 | .ops = { |
| 271 | .hw_params = wm8728_hw_params, | 272 | .hw_params = wm8728_hw_params, |
| 272 | }, | ||
| 273 | .dai_ops = { | ||
| 274 | .digital_mute = wm8728_mute, | 273 | .digital_mute = wm8728_mute, |
| 275 | .set_fmt = wm8728_set_dai_fmt, | 274 | .set_fmt = wm8728_set_dai_fmt, |
| 276 | } | 275 | } |
diff --git a/sound/soc/codecs/wm8731.c b/sound/soc/codecs/wm8731.c index 7f8a7e36b33..c0f277053bb 100644 --- a/sound/soc/codecs/wm8731.c +++ b/sound/soc/codecs/wm8731.c | |||
| @@ -264,7 +264,8 @@ static inline int get_coeff(int mclk, int rate) | |||
| 264 | } | 264 | } |
| 265 | 265 | ||
| 266 | static int wm8731_hw_params(struct snd_pcm_substream *substream, | 266 | static int wm8731_hw_params(struct snd_pcm_substream *substream, |
| 267 | struct snd_pcm_hw_params *params) | 267 | struct snd_pcm_hw_params *params, |
| 268 | struct snd_soc_dai *dai) | ||
| 268 | { | 269 | { |
| 269 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 270 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 270 | struct snd_soc_device *socdev = rtd->socdev; | 271 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -293,7 +294,8 @@ static int wm8731_hw_params(struct snd_pcm_substream *substream, | |||
| 293 | return 0; | 294 | return 0; |
| 294 | } | 295 | } |
| 295 | 296 | ||
| 296 | static int wm8731_pcm_prepare(struct snd_pcm_substream *substream) | 297 | static int wm8731_pcm_prepare(struct snd_pcm_substream *substream, |
| 298 | struct snd_soc_dai *dai) | ||
| 297 | { | 299 | { |
| 298 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 300 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 299 | struct snd_soc_device *socdev = rtd->socdev; | 301 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -305,7 +307,8 @@ static int wm8731_pcm_prepare(struct snd_pcm_substream *substream) | |||
| 305 | return 0; | 307 | return 0; |
| 306 | } | 308 | } |
| 307 | 309 | ||
| 308 | static void wm8731_shutdown(struct snd_pcm_substream *substream) | 310 | static void wm8731_shutdown(struct snd_pcm_substream *substream, |
| 311 | struct snd_soc_dai *dai) | ||
| 309 | { | 312 | { |
| 310 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 313 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 311 | struct snd_soc_device *socdev = rtd->socdev; | 314 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -461,8 +464,6 @@ struct snd_soc_dai wm8731_dai = { | |||
| 461 | .prepare = wm8731_pcm_prepare, | 464 | .prepare = wm8731_pcm_prepare, |
| 462 | .hw_params = wm8731_hw_params, | 465 | .hw_params = wm8731_hw_params, |
| 463 | .shutdown = wm8731_shutdown, | 466 | .shutdown = wm8731_shutdown, |
| 464 | }, | ||
| 465 | .dai_ops = { | ||
| 466 | .digital_mute = wm8731_mute, | 467 | .digital_mute = wm8731_mute, |
| 467 | .set_sysclk = wm8731_set_dai_sysclk, | 468 | .set_sysclk = wm8731_set_dai_sysclk, |
| 468 | .set_fmt = wm8731_set_dai_fmt, | 469 | .set_fmt = wm8731_set_dai_fmt, |
diff --git a/sound/soc/codecs/wm8750.c b/sound/soc/codecs/wm8750.c index 9b7296ee5b0..860a1d56830 100644 --- a/sound/soc/codecs/wm8750.c +++ b/sound/soc/codecs/wm8750.c | |||
| @@ -614,7 +614,8 @@ static int wm8750_set_dai_fmt(struct snd_soc_dai *codec_dai, | |||
| 614 | } | 614 | } |
| 615 | 615 | ||
| 616 | static int wm8750_pcm_hw_params(struct snd_pcm_substream *substream, | 616 | static int wm8750_pcm_hw_params(struct snd_pcm_substream *substream, |
| 617 | struct snd_pcm_hw_params *params) | 617 | struct snd_pcm_hw_params *params, |
| 618 | struct snd_soc_dai *dai) | ||
| 618 | { | 619 | { |
| 619 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 620 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 620 | struct snd_soc_device *socdev = rtd->socdev; | 621 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -709,8 +710,6 @@ struct snd_soc_dai wm8750_dai = { | |||
| 709 | .formats = WM8750_FORMATS,}, | 710 | .formats = WM8750_FORMATS,}, |
| 710 | .ops = { | 711 | .ops = { |
| 711 | .hw_params = wm8750_pcm_hw_params, | 712 | .hw_params = wm8750_pcm_hw_params, |
| 712 | }, | ||
| 713 | .dai_ops = { | ||
| 714 | .digital_mute = wm8750_mute, | 713 | .digital_mute = wm8750_mute, |
| 715 | .set_fmt = wm8750_set_dai_fmt, | 714 | .set_fmt = wm8750_set_dai_fmt, |
| 716 | .set_sysclk = wm8750_set_dai_sysclk, | 715 | .set_sysclk = wm8750_set_dai_sysclk, |
diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c index d426eaa2218..5e4cd3bb824 100644 --- a/sound/soc/codecs/wm8753.c +++ b/sound/soc/codecs/wm8753.c | |||
| @@ -922,7 +922,8 @@ static int wm8753_vdac_adc_set_dai_fmt(struct snd_soc_dai *codec_dai, | |||
| 922 | * Set PCM DAI bit size and sample rate. | 922 | * Set PCM DAI bit size and sample rate. |
| 923 | */ | 923 | */ |
| 924 | static int wm8753_pcm_hw_params(struct snd_pcm_substream *substream, | 924 | static int wm8753_pcm_hw_params(struct snd_pcm_substream *substream, |
| 925 | struct snd_pcm_hw_params *params) | 925 | struct snd_pcm_hw_params *params, |
| 926 | struct snd_soc_dai *dai) | ||
| 926 | { | 927 | { |
| 927 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 928 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 928 | struct snd_soc_device *socdev = rtd->socdev; | 929 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -1155,7 +1156,8 @@ static int wm8753_i2s_set_dai_fmt(struct snd_soc_dai *codec_dai, | |||
| 1155 | * Set PCM DAI bit size and sample rate. | 1156 | * Set PCM DAI bit size and sample rate. |
| 1156 | */ | 1157 | */ |
| 1157 | static int wm8753_i2s_hw_params(struct snd_pcm_substream *substream, | 1158 | static int wm8753_i2s_hw_params(struct snd_pcm_substream *substream, |
| 1158 | struct snd_pcm_hw_params *params) | 1159 | struct snd_pcm_hw_params *params, |
| 1160 | struct snd_soc_dai *dai) | ||
| 1159 | { | 1161 | { |
| 1160 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 1162 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 1161 | struct snd_soc_device *socdev = rtd->socdev; | 1163 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -1323,16 +1325,15 @@ static const struct snd_soc_dai wm8753_all_dai[] = { | |||
| 1323 | .channels_min = 1, | 1325 | .channels_min = 1, |
| 1324 | .channels_max = 2, | 1326 | .channels_max = 2, |
| 1325 | .rates = WM8753_RATES, | 1327 | .rates = WM8753_RATES, |
| 1326 | .formats = WM8753_FORMATS,}, | 1328 | .formats = WM8753_FORMATS}, |
| 1327 | .capture = { /* dummy for fast DAI switching */ | 1329 | .capture = { /* dummy for fast DAI switching */ |
| 1328 | .stream_name = "Capture", | 1330 | .stream_name = "Capture", |
| 1329 | .channels_min = 1, | 1331 | .channels_min = 1, |
| 1330 | .channels_max = 2, | 1332 | .channels_max = 2, |
| 1331 | .rates = WM8753_RATES, | 1333 | .rates = WM8753_RATES, |
| 1332 | .formats = WM8753_FORMATS,}, | 1334 | .formats = WM8753_FORMATS}, |
| 1333 | .ops = { | 1335 | .ops = { |
| 1334 | .hw_params = wm8753_i2s_hw_params,}, | 1336 | .hw_params = wm8753_i2s_hw_params, |
| 1335 | .dai_ops = { | ||
| 1336 | .digital_mute = wm8753_mute, | 1337 | .digital_mute = wm8753_mute, |
| 1337 | .set_fmt = wm8753_mode1h_set_dai_fmt, | 1338 | .set_fmt = wm8753_mode1h_set_dai_fmt, |
| 1338 | .set_clkdiv = wm8753_set_dai_clkdiv, | 1339 | .set_clkdiv = wm8753_set_dai_clkdiv, |
| @@ -1356,8 +1357,7 @@ static const struct snd_soc_dai wm8753_all_dai[] = { | |||
| 1356 | .rates = WM8753_RATES, | 1357 | .rates = WM8753_RATES, |
| 1357 | .formats = WM8753_FORMATS,}, | 1358 | .formats = WM8753_FORMATS,}, |
| 1358 | .ops = { | 1359 | .ops = { |
| 1359 | .hw_params = wm8753_pcm_hw_params,}, | 1360 | .hw_params = wm8753_pcm_hw_params, |
| 1360 | .dai_ops = { | ||
| 1361 | .digital_mute = wm8753_mute, | 1361 | .digital_mute = wm8753_mute, |
| 1362 | .set_fmt = wm8753_mode1v_set_dai_fmt, | 1362 | .set_fmt = wm8753_mode1v_set_dai_fmt, |
| 1363 | .set_clkdiv = wm8753_set_dai_clkdiv, | 1363 | .set_clkdiv = wm8753_set_dai_clkdiv, |
| @@ -1385,8 +1385,7 @@ static const struct snd_soc_dai wm8753_all_dai[] = { | |||
| 1385 | .rates = WM8753_RATES, | 1385 | .rates = WM8753_RATES, |
| 1386 | .formats = WM8753_FORMATS,}, | 1386 | .formats = WM8753_FORMATS,}, |
| 1387 | .ops = { | 1387 | .ops = { |
| 1388 | .hw_params = wm8753_pcm_hw_params,}, | 1388 | .hw_params = wm8753_pcm_hw_params, |
| 1389 | .dai_ops = { | ||
| 1390 | .digital_mute = wm8753_mute, | 1389 | .digital_mute = wm8753_mute, |
| 1391 | .set_fmt = wm8753_mode2_set_dai_fmt, | 1390 | .set_fmt = wm8753_mode2_set_dai_fmt, |
| 1392 | .set_clkdiv = wm8753_set_dai_clkdiv, | 1391 | .set_clkdiv = wm8753_set_dai_clkdiv, |
| @@ -1410,8 +1409,7 @@ static const struct snd_soc_dai wm8753_all_dai[] = { | |||
| 1410 | .rates = WM8753_RATES, | 1409 | .rates = WM8753_RATES, |
| 1411 | .formats = WM8753_FORMATS,}, | 1410 | .formats = WM8753_FORMATS,}, |
| 1412 | .ops = { | 1411 | .ops = { |
| 1413 | .hw_params = wm8753_i2s_hw_params,}, | 1412 | .hw_params = wm8753_i2s_hw_params, |
| 1414 | .dai_ops = { | ||
| 1415 | .digital_mute = wm8753_mute, | 1413 | .digital_mute = wm8753_mute, |
| 1416 | .set_fmt = wm8753_mode3_4_set_dai_fmt, | 1414 | .set_fmt = wm8753_mode3_4_set_dai_fmt, |
| 1417 | .set_clkdiv = wm8753_set_dai_clkdiv, | 1415 | .set_clkdiv = wm8753_set_dai_clkdiv, |
| @@ -1439,8 +1437,7 @@ static const struct snd_soc_dai wm8753_all_dai[] = { | |||
| 1439 | .rates = WM8753_RATES, | 1437 | .rates = WM8753_RATES, |
| 1440 | .formats = WM8753_FORMATS,}, | 1438 | .formats = WM8753_FORMATS,}, |
| 1441 | .ops = { | 1439 | .ops = { |
| 1442 | .hw_params = wm8753_i2s_hw_params,}, | 1440 | .hw_params = wm8753_i2s_hw_params, |
| 1443 | .dai_ops = { | ||
| 1444 | .digital_mute = wm8753_mute, | 1441 | .digital_mute = wm8753_mute, |
| 1445 | .set_fmt = wm8753_mode3_4_set_dai_fmt, | 1442 | .set_fmt = wm8753_mode3_4_set_dai_fmt, |
| 1446 | .set_clkdiv = wm8753_set_dai_clkdiv, | 1443 | .set_clkdiv = wm8753_set_dai_clkdiv, |
diff --git a/sound/soc/codecs/wm8900.c b/sound/soc/codecs/wm8900.c index de016f41e04..d1326be91c8 100644 --- a/sound/soc/codecs/wm8900.c +++ b/sound/soc/codecs/wm8900.c | |||
| @@ -727,7 +727,8 @@ static int wm8900_add_widgets(struct snd_soc_codec *codec) | |||
| 727 | } | 727 | } |
| 728 | 728 | ||
| 729 | static int wm8900_hw_params(struct snd_pcm_substream *substream, | 729 | static int wm8900_hw_params(struct snd_pcm_substream *substream, |
| 730 | struct snd_pcm_hw_params *params) | 730 | struct snd_pcm_hw_params *params, |
| 731 | struct snd_soc_dai *dai) | ||
| 731 | { | 732 | { |
| 732 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 733 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 733 | struct snd_soc_device *socdev = rtd->socdev; | 734 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -1117,8 +1118,6 @@ struct snd_soc_dai wm8900_dai = { | |||
| 1117 | }, | 1118 | }, |
| 1118 | .ops = { | 1119 | .ops = { |
| 1119 | .hw_params = wm8900_hw_params, | 1120 | .hw_params = wm8900_hw_params, |
| 1120 | }, | ||
| 1121 | .dai_ops = { | ||
| 1122 | .set_clkdiv = wm8900_set_dai_clkdiv, | 1121 | .set_clkdiv = wm8900_set_dai_clkdiv, |
| 1123 | .set_pll = wm8900_set_dai_pll, | 1122 | .set_pll = wm8900_set_dai_pll, |
| 1124 | .set_fmt = wm8900_set_dai_fmt, | 1123 | .set_fmt = wm8900_set_dai_fmt, |
diff --git a/sound/soc/codecs/wm8903.c b/sound/soc/codecs/wm8903.c index ce40d787760..efbe8927b7d 100644 --- a/sound/soc/codecs/wm8903.c +++ b/sound/soc/codecs/wm8903.c | |||
| @@ -1257,7 +1257,8 @@ static struct { | |||
| 1257 | { 0, 0 }, | 1257 | { 0, 0 }, |
| 1258 | }; | 1258 | }; |
| 1259 | 1259 | ||
| 1260 | static int wm8903_startup(struct snd_pcm_substream *substream) | 1260 | static int wm8903_startup(struct snd_pcm_substream *substream, |
| 1261 | struct snd_soc_dai *dai) | ||
| 1261 | { | 1262 | { |
| 1262 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 1263 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 1263 | struct snd_soc_device *socdev = rtd->socdev; | 1264 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -1298,7 +1299,8 @@ static int wm8903_startup(struct snd_pcm_substream *substream) | |||
| 1298 | return 0; | 1299 | return 0; |
| 1299 | } | 1300 | } |
| 1300 | 1301 | ||
| 1301 | static void wm8903_shutdown(struct snd_pcm_substream *substream) | 1302 | static void wm8903_shutdown(struct snd_pcm_substream *substream, |
| 1303 | struct snd_soc_dai *dai) | ||
| 1302 | { | 1304 | { |
| 1303 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 1305 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 1304 | struct snd_soc_device *socdev = rtd->socdev; | 1306 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -1317,7 +1319,8 @@ static void wm8903_shutdown(struct snd_pcm_substream *substream) | |||
| 1317 | } | 1319 | } |
| 1318 | 1320 | ||
| 1319 | static int wm8903_hw_params(struct snd_pcm_substream *substream, | 1321 | static int wm8903_hw_params(struct snd_pcm_substream *substream, |
| 1320 | struct snd_pcm_hw_params *params) | 1322 | struct snd_pcm_hw_params *params, |
| 1323 | struct snd_soc_dai *dai) | ||
| 1321 | { | 1324 | { |
| 1322 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 1325 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 1323 | struct snd_soc_device *socdev = rtd->socdev; | 1326 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -1515,8 +1518,6 @@ struct snd_soc_dai wm8903_dai = { | |||
| 1515 | .startup = wm8903_startup, | 1518 | .startup = wm8903_startup, |
| 1516 | .shutdown = wm8903_shutdown, | 1519 | .shutdown = wm8903_shutdown, |
| 1517 | .hw_params = wm8903_hw_params, | 1520 | .hw_params = wm8903_hw_params, |
| 1518 | }, | ||
| 1519 | .dai_ops = { | ||
| 1520 | .digital_mute = wm8903_digital_mute, | 1521 | .digital_mute = wm8903_digital_mute, |
| 1521 | .set_fmt = wm8903_set_dai_fmt, | 1522 | .set_fmt = wm8903_set_dai_fmt, |
| 1522 | .set_sysclk = wm8903_set_dai_sysclk | 1523 | .set_sysclk = wm8903_set_dai_sysclk |
diff --git a/sound/soc/codecs/wm8971.c b/sound/soc/codecs/wm8971.c index f41a578ddd4..26edcc9d6e8 100644 --- a/sound/soc/codecs/wm8971.c +++ b/sound/soc/codecs/wm8971.c | |||
| @@ -541,7 +541,8 @@ static int wm8971_set_dai_fmt(struct snd_soc_dai *codec_dai, | |||
| 541 | } | 541 | } |
| 542 | 542 | ||
| 543 | static int wm8971_pcm_hw_params(struct snd_pcm_substream *substream, | 543 | static int wm8971_pcm_hw_params(struct snd_pcm_substream *substream, |
| 544 | struct snd_pcm_hw_params *params) | 544 | struct snd_pcm_hw_params *params, |
| 545 | struct snd_soc_dai *dai) | ||
| 545 | { | 546 | { |
| 546 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 547 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 547 | struct snd_soc_device *socdev = rtd->socdev; | 548 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -634,8 +635,6 @@ struct snd_soc_dai wm8971_dai = { | |||
| 634 | .formats = WM8971_FORMATS,}, | 635 | .formats = WM8971_FORMATS,}, |
| 635 | .ops = { | 636 | .ops = { |
| 636 | .hw_params = wm8971_pcm_hw_params, | 637 | .hw_params = wm8971_pcm_hw_params, |
| 637 | }, | ||
| 638 | .dai_ops = { | ||
| 639 | .digital_mute = wm8971_mute, | 638 | .digital_mute = wm8971_mute, |
| 640 | .set_fmt = wm8971_set_dai_fmt, | 639 | .set_fmt = wm8971_set_dai_fmt, |
| 641 | .set_sysclk = wm8971_set_dai_sysclk, | 640 | .set_sysclk = wm8971_set_dai_sysclk, |
diff --git a/sound/soc/codecs/wm8990.c b/sound/soc/codecs/wm8990.c index 2d7b0096d92..13926516d16 100644 --- a/sound/soc/codecs/wm8990.c +++ b/sound/soc/codecs/wm8990.c | |||
| @@ -1172,7 +1172,8 @@ static int wm8990_set_dai_clkdiv(struct snd_soc_dai *codec_dai, | |||
| 1172 | * Set PCM DAI bit size and sample rate. | 1172 | * Set PCM DAI bit size and sample rate. |
| 1173 | */ | 1173 | */ |
| 1174 | static int wm8990_hw_params(struct snd_pcm_substream *substream, | 1174 | static int wm8990_hw_params(struct snd_pcm_substream *substream, |
| 1175 | struct snd_pcm_hw_params *params) | 1175 | struct snd_pcm_hw_params *params, |
| 1176 | struct snd_soc_dai *dai) | ||
| 1176 | { | 1177 | { |
| 1177 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 1178 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 1178 | struct snd_soc_device *socdev = rtd->socdev; | 1179 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -1362,8 +1363,7 @@ struct snd_soc_dai wm8990_dai = { | |||
| 1362 | .rates = WM8990_RATES, | 1363 | .rates = WM8990_RATES, |
| 1363 | .formats = WM8990_FORMATS,}, | 1364 | .formats = WM8990_FORMATS,}, |
| 1364 | .ops = { | 1365 | .ops = { |
| 1365 | .hw_params = wm8990_hw_params,}, | 1366 | .hw_params = wm8990_hw_params, |
| 1366 | .dai_ops = { | ||
| 1367 | .digital_mute = wm8990_mute, | 1367 | .digital_mute = wm8990_mute, |
| 1368 | .set_fmt = wm8990_set_dai_fmt, | 1368 | .set_fmt = wm8990_set_dai_fmt, |
| 1369 | .set_clkdiv = wm8990_set_dai_clkdiv, | 1369 | .set_clkdiv = wm8990_set_dai_clkdiv, |
diff --git a/sound/soc/codecs/wm9712.c b/sound/soc/codecs/wm9712.c index ffb471e420e..81c38e7ad34 100644 --- a/sound/soc/codecs/wm9712.c +++ b/sound/soc/codecs/wm9712.c | |||
| @@ -487,7 +487,8 @@ static int ac97_write(struct snd_soc_codec *codec, unsigned int reg, | |||
| 487 | return 0; | 487 | return 0; |
| 488 | } | 488 | } |
| 489 | 489 | ||
| 490 | static int ac97_prepare(struct snd_pcm_substream *substream) | 490 | static int ac97_prepare(struct snd_pcm_substream *substream, |
| 491 | struct snd_soc_dai *dai) | ||
| 491 | { | 492 | { |
| 492 | struct snd_pcm_runtime *runtime = substream->runtime; | 493 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 493 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 494 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| @@ -507,7 +508,8 @@ static int ac97_prepare(struct snd_pcm_substream *substream) | |||
| 507 | return ac97_write(codec, reg, runtime->rate); | 508 | return ac97_write(codec, reg, runtime->rate); |
| 508 | } | 509 | } |
| 509 | 510 | ||
| 510 | static int ac97_aux_prepare(struct snd_pcm_substream *substream) | 511 | static int ac97_aux_prepare(struct snd_pcm_substream *substream, |
| 512 | struct snd_soc_dai *dai) | ||
| 511 | { | 513 | { |
| 512 | struct snd_pcm_runtime *runtime = substream->runtime; | 514 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 513 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 515 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
diff --git a/sound/soc/codecs/wm9713.c b/sound/soc/codecs/wm9713.c index 740bf3cde18..a0cc5ac969a 100644 --- a/sound/soc/codecs/wm9713.c +++ b/sound/soc/codecs/wm9713.c | |||
| @@ -928,7 +928,8 @@ static int wm9713_set_dai_fmt(struct snd_soc_dai *codec_dai, | |||
| 928 | } | 928 | } |
| 929 | 929 | ||
| 930 | static int wm9713_pcm_hw_params(struct snd_pcm_substream *substream, | 930 | static int wm9713_pcm_hw_params(struct snd_pcm_substream *substream, |
| 931 | struct snd_pcm_hw_params *params) | 931 | struct snd_pcm_hw_params *params, |
| 932 | struct snd_soc_dai *dai) | ||
| 932 | { | 933 | { |
| 933 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 934 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 934 | struct snd_soc_device *socdev = rtd->socdev; | 935 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -954,7 +955,8 @@ static int wm9713_pcm_hw_params(struct snd_pcm_substream *substream, | |||
| 954 | return 0; | 955 | return 0; |
| 955 | } | 956 | } |
| 956 | 957 | ||
| 957 | static void wm9713_voiceshutdown(struct snd_pcm_substream *substream) | 958 | static void wm9713_voiceshutdown(struct snd_pcm_substream *substream, |
| 959 | struct snd_soc_dai *dai) | ||
| 958 | { | 960 | { |
| 959 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 961 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 960 | struct snd_soc_device *socdev = rtd->socdev; | 962 | struct snd_soc_device *socdev = rtd->socdev; |
| @@ -969,7 +971,8 @@ static void wm9713_voiceshutdown(struct snd_pcm_substream *substream) | |||
| 969 | ac97_write(codec, AC97_EXTENDED_MID, status); | 971 | ac97_write(codec, AC97_EXTENDED_MID, status); |
| 970 | } | 972 | } |
| 971 | 973 | ||
| 972 | static int ac97_hifi_prepare(struct snd_pcm_substream *substream) | 974 | static int ac97_hifi_prepare(struct snd_pcm_substream *substream, |
| 975 | struct snd_soc_dai *dai) | ||
| 973 | { | 976 | { |
| 974 | struct snd_pcm_runtime *runtime = substream->runtime; | 977 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 975 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 978 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| @@ -989,7 +992,8 @@ static int ac97_hifi_prepare(struct snd_pcm_substream *substream) | |||
| 989 | return ac97_write(codec, reg, runtime->rate); | 992 | return ac97_write(codec, reg, runtime->rate); |
| 990 | } | 993 | } |
| 991 | 994 | ||
| 992 | static int ac97_aux_prepare(struct snd_pcm_substream *substream) | 995 | static int ac97_aux_prepare(struct snd_pcm_substream *substream, |
| 996 | struct snd_soc_dai *dai) | ||
| 993 | { | 997 | { |
| 994 | struct snd_pcm_runtime *runtime = substream->runtime; | 998 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 995 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 999 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| @@ -1042,8 +1046,7 @@ struct snd_soc_dai wm9713_dai[] = { | |||
| 1042 | .rates = WM9713_RATES, | 1046 | .rates = WM9713_RATES, |
| 1043 | .formats = SNDRV_PCM_FMTBIT_S16_LE,}, | 1047 | .formats = SNDRV_PCM_FMTBIT_S16_LE,}, |
| 1044 | .ops = { | 1048 | .ops = { |
| 1045 | .prepare = ac97_hifi_prepare,}, | 1049 | .prepare = ac97_hifi_prepare, |
| 1046 | .dai_ops = { | ||
| 1047 | .set_clkdiv = wm9713_set_dai_clkdiv, | 1050 | .set_clkdiv = wm9713_set_dai_clkdiv, |
| 1048 | .set_pll = wm9713_set_dai_pll,}, | 1051 | .set_pll = wm9713_set_dai_pll,}, |
| 1049 | }, | 1052 | }, |
| @@ -1056,8 +1059,7 @@ struct snd_soc_dai wm9713_dai[] = { | |||
| 1056 | .rates = WM9713_RATES, | 1059 | .rates = WM9713_RATES, |
| 1057 | .formats = SNDRV_PCM_FMTBIT_S16_LE,}, | 1060 | .formats = SNDRV_PCM_FMTBIT_S16_LE,}, |
| 1058 | .ops = { | 1061 | .ops = { |
| 1059 | .prepare = ac97_aux_prepare,}, | 1062 | .prepare = ac97_aux_prepare, |
| 1060 | .dai_ops = { | ||
| 1061 | .set_clkdiv = wm9713_set_dai_clkdiv, | 1063 | .set_clkdiv = wm9713_set_dai_clkdiv, |
| 1062 | .set_pll = wm9713_set_dai_pll,}, | 1064 | .set_pll = wm9713_set_dai_pll,}, |
| 1063 | }, | 1065 | }, |
| @@ -1077,8 +1079,7 @@ struct snd_soc_dai wm9713_dai[] = { | |||
| 1077 | .formats = WM9713_PCM_FORMATS,}, | 1079 | .formats = WM9713_PCM_FORMATS,}, |
| 1078 | .ops = { | 1080 | .ops = { |
| 1079 | .hw_params = wm9713_pcm_hw_params, | 1081 | .hw_params = wm9713_pcm_hw_params, |
| 1080 | .shutdown = wm9713_voiceshutdown,}, | 1082 | .shutdown = wm9713_voiceshutdown, |
| 1081 | .dai_ops = { | ||
| 1082 | .set_clkdiv = wm9713_set_dai_clkdiv, | 1083 | .set_clkdiv = wm9713_set_dai_clkdiv, |
| 1083 | .set_pll = wm9713_set_dai_pll, | 1084 | .set_pll = wm9713_set_dai_pll, |
| 1084 | .set_fmt = wm9713_set_dai_fmt, | 1085 | .set_fmt = wm9713_set_dai_fmt, |
diff --git a/sound/soc/davinci/davinci-i2s.c b/sound/soc/davinci/davinci-i2s.c index 95df51e803b..7a17cd0ecf6 100644 --- a/sound/soc/davinci/davinci-i2s.c +++ b/sound/soc/davinci/davinci-i2s.c | |||
| @@ -188,7 +188,8 @@ static void davinci_mcbsp_stop(struct snd_pcm_substream *substream) | |||
| 188 | davinci_mcbsp_write_reg(dev, DAVINCI_MCBSP_SPCR_REG, w); | 188 | davinci_mcbsp_write_reg(dev, DAVINCI_MCBSP_SPCR_REG, w); |
| 189 | } | 189 | } |
| 190 | 190 | ||
| 191 | static int davinci_i2s_startup(struct snd_pcm_substream *substream) | 191 | static int davinci_i2s_startup(struct snd_pcm_substream *substream, |
| 192 | struct snd_soc_dai *dai) | ||
| 192 | { | 193 | { |
| 193 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 194 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 194 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 195 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -285,7 +286,8 @@ static int davinci_i2s_set_dai_fmt(struct snd_soc_dai *cpu_dai, | |||
| 285 | } | 286 | } |
| 286 | 287 | ||
| 287 | static int davinci_i2s_hw_params(struct snd_pcm_substream *substream, | 288 | static int davinci_i2s_hw_params(struct snd_pcm_substream *substream, |
| 288 | struct snd_pcm_hw_params *params) | 289 | struct snd_pcm_hw_params *params, |
| 290 | struct snd_soc_dai *dai) | ||
| 289 | { | 291 | { |
| 290 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 292 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 291 | struct davinci_pcm_dma_params *dma_params = rtd->dai->cpu_dai->dma_data; | 293 | struct davinci_pcm_dma_params *dma_params = rtd->dai->cpu_dai->dma_data; |
| @@ -349,7 +351,8 @@ static int davinci_i2s_hw_params(struct snd_pcm_substream *substream, | |||
| 349 | return 0; | 351 | return 0; |
| 350 | } | 352 | } |
| 351 | 353 | ||
| 352 | static int davinci_i2s_trigger(struct snd_pcm_substream *substream, int cmd) | 354 | static int davinci_i2s_trigger(struct snd_pcm_substream *substream, int cmd, |
| 355 | struct snd_soc_dai *dai) | ||
| 353 | { | 356 | { |
| 354 | int ret = 0; | 357 | int ret = 0; |
| 355 | 358 | ||
| @@ -473,8 +476,7 @@ struct snd_soc_dai davinci_i2s_dai = { | |||
| 473 | .ops = { | 476 | .ops = { |
| 474 | .startup = davinci_i2s_startup, | 477 | .startup = davinci_i2s_startup, |
| 475 | .trigger = davinci_i2s_trigger, | 478 | .trigger = davinci_i2s_trigger, |
| 476 | .hw_params = davinci_i2s_hw_params,}, | 479 | .hw_params = davinci_i2s_hw_params, |
| 477 | .dai_ops = { | ||
| 478 | .set_fmt = davinci_i2s_set_dai_fmt, | 480 | .set_fmt = davinci_i2s_set_dai_fmt, |
| 479 | }, | 481 | }, |
| 480 | }; | 482 | }; |
diff --git a/sound/soc/davinci/davinci-sffsdr.c b/sound/soc/davinci/davinci-sffsdr.c index fa38f9cd350..e95fde1766b 100644 --- a/sound/soc/davinci/davinci-sffsdr.c +++ b/sound/soc/davinci/davinci-sffsdr.c | |||
| @@ -34,7 +34,8 @@ | |||
| 34 | #include "davinci-i2s.h" | 34 | #include "davinci-i2s.h" |
| 35 | 35 | ||
| 36 | static int sffsdr_hw_params(struct snd_pcm_substream *substream, | 36 | static int sffsdr_hw_params(struct snd_pcm_substream *substream, |
| 37 | struct snd_pcm_hw_params *params) | 37 | struct snd_pcm_hw_params *params, |
| 38 | struct snd_soc_dai *dai) | ||
| 38 | { | 39 | { |
| 39 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 40 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 40 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 41 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c index 157a7895ffa..52c290bb47b 100644 --- a/sound/soc/fsl/fsl_ssi.c +++ b/sound/soc/fsl/fsl_ssi.c | |||
| @@ -266,7 +266,8 @@ static irqreturn_t fsl_ssi_isr(int irq, void *dev_id) | |||
| 266 | * If this is the first stream open, then grab the IRQ and program most of | 266 | * If this is the first stream open, then grab the IRQ and program most of |
| 267 | * the SSI registers. | 267 | * the SSI registers. |
| 268 | */ | 268 | */ |
| 269 | static int fsl_ssi_startup(struct snd_pcm_substream *substream) | 269 | static int fsl_ssi_startup(struct snd_pcm_substream *substream, |
| 270 | struct snd_soc_dai *dai) | ||
| 270 | { | 271 | { |
| 271 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 272 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 272 | struct fsl_ssi_private *ssi_private = rtd->dai->cpu_dai->private_data; | 273 | struct fsl_ssi_private *ssi_private = rtd->dai->cpu_dai->private_data; |
| @@ -411,7 +412,8 @@ static int fsl_ssi_startup(struct snd_pcm_substream *substream) | |||
| 411 | * Note: The SxCCR.DC and SxCCR.PM bits are only used if the SSI is the | 412 | * Note: The SxCCR.DC and SxCCR.PM bits are only used if the SSI is the |
| 412 | * clock master. | 413 | * clock master. |
| 413 | */ | 414 | */ |
| 414 | static int fsl_ssi_prepare(struct snd_pcm_substream *substream) | 415 | static int fsl_ssi_prepare(struct snd_pcm_substream *substream, |
| 416 | struct snd_soc_dai *dai) | ||
| 415 | { | 417 | { |
| 416 | struct snd_pcm_runtime *runtime = substream->runtime; | 418 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 417 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 419 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| @@ -441,7 +443,8 @@ static int fsl_ssi_prepare(struct snd_pcm_substream *substream) | |||
| 441 | * The DMA channel is in external master start and pause mode, which | 443 | * The DMA channel is in external master start and pause mode, which |
| 442 | * means the SSI completely controls the flow of data. | 444 | * means the SSI completely controls the flow of data. |
| 443 | */ | 445 | */ |
| 444 | static int fsl_ssi_trigger(struct snd_pcm_substream *substream, int cmd) | 446 | static int fsl_ssi_trigger(struct snd_pcm_substream *substream, int cmd, |
| 447 | struct snd_soc_dai *dai) | ||
| 445 | { | 448 | { |
| 446 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 449 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 447 | struct fsl_ssi_private *ssi_private = rtd->dai->cpu_dai->private_data; | 450 | struct fsl_ssi_private *ssi_private = rtd->dai->cpu_dai->private_data; |
| @@ -490,7 +493,8 @@ static int fsl_ssi_trigger(struct snd_pcm_substream *substream, int cmd) | |||
| 490 | * | 493 | * |
| 491 | * Shutdown the SSI if there are no other substreams open. | 494 | * Shutdown the SSI if there are no other substreams open. |
| 492 | */ | 495 | */ |
| 493 | static void fsl_ssi_shutdown(struct snd_pcm_substream *substream) | 496 | static void fsl_ssi_shutdown(struct snd_pcm_substream *substream, |
| 497 | struct snd_soc_dai *dai) | ||
| 494 | { | 498 | { |
| 495 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 499 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 496 | struct fsl_ssi_private *ssi_private = rtd->dai->cpu_dai->private_data; | 500 | struct fsl_ssi_private *ssi_private = rtd->dai->cpu_dai->private_data; |
| @@ -578,8 +582,6 @@ static struct snd_soc_dai fsl_ssi_dai_template = { | |||
| 578 | .prepare = fsl_ssi_prepare, | 582 | .prepare = fsl_ssi_prepare, |
| 579 | .shutdown = fsl_ssi_shutdown, | 583 | .shutdown = fsl_ssi_shutdown, |
| 580 | .trigger = fsl_ssi_trigger, | 584 | .trigger = fsl_ssi_trigger, |
| 581 | }, | ||
| 582 | .dai_ops = { | ||
| 583 | .set_sysclk = fsl_ssi_set_sysclk, | 585 | .set_sysclk = fsl_ssi_set_sysclk, |
| 584 | .set_fmt = fsl_ssi_set_fmt, | 586 | .set_fmt = fsl_ssi_set_fmt, |
| 585 | }, | 587 | }, |
diff --git a/sound/soc/fsl/mpc5200_psc_i2s.c b/sound/soc/fsl/mpc5200_psc_i2s.c index 94a02eaa482..e2c172f3897 100644 --- a/sound/soc/fsl/mpc5200_psc_i2s.c +++ b/sound/soc/fsl/mpc5200_psc_i2s.c | |||
| @@ -187,7 +187,8 @@ static irqreturn_t psc_i2s_bcom_irq(int irq, void *_psc_i2s_stream) | |||
| 187 | * If this is the first stream open, then grab the IRQ and program most of | 187 | * If this is the first stream open, then grab the IRQ and program most of |
| 188 | * the PSC registers. | 188 | * the PSC registers. |
| 189 | */ | 189 | */ |
| 190 | static int psc_i2s_startup(struct snd_pcm_substream *substream) | 190 | static int psc_i2s_startup(struct snd_pcm_substream *substream, |
| 191 | struct snd_soc_dai *dai) | ||
| 191 | { | 192 | { |
| 192 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 193 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 193 | struct psc_i2s *psc_i2s = rtd->dai->cpu_dai->private_data; | 194 | struct psc_i2s *psc_i2s = rtd->dai->cpu_dai->private_data; |
| @@ -220,7 +221,8 @@ static int psc_i2s_startup(struct snd_pcm_substream *substream) | |||
| 220 | } | 221 | } |
| 221 | 222 | ||
| 222 | static int psc_i2s_hw_params(struct snd_pcm_substream *substream, | 223 | static int psc_i2s_hw_params(struct snd_pcm_substream *substream, |
| 223 | struct snd_pcm_hw_params *params) | 224 | struct snd_pcm_hw_params *params, |
| 225 | struct snd_soc_dai *dai) | ||
| 224 | { | 226 | { |
| 225 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 227 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 226 | struct psc_i2s *psc_i2s = rtd->dai->cpu_dai->private_data; | 228 | struct psc_i2s *psc_i2s = rtd->dai->cpu_dai->private_data; |
| @@ -256,7 +258,8 @@ static int psc_i2s_hw_params(struct snd_pcm_substream *substream, | |||
| 256 | return 0; | 258 | return 0; |
| 257 | } | 259 | } |
| 258 | 260 | ||
| 259 | static int psc_i2s_hw_free(struct snd_pcm_substream *substream) | 261 | static int psc_i2s_hw_free(struct snd_pcm_substream *substream, |
| 262 | struct snd_soc_dai *dai) | ||
| 260 | { | 263 | { |
| 261 | snd_pcm_set_runtime_buffer(substream, NULL); | 264 | snd_pcm_set_runtime_buffer(substream, NULL); |
| 262 | return 0; | 265 | return 0; |
| @@ -268,7 +271,8 @@ static int psc_i2s_hw_free(struct snd_pcm_substream *substream) | |||
| 268 | * This function is called by ALSA to start, stop, pause, and resume the DMA | 271 | * This function is called by ALSA to start, stop, pause, and resume the DMA |
| 269 | * transfer of data. | 272 | * transfer of data. |
| 270 | */ | 273 | */ |
| 271 | static int psc_i2s_trigger(struct snd_pcm_substream *substream, int cmd) | 274 | static int psc_i2s_trigger(struct snd_pcm_substream *substream, int cmd, |
| 275 | struct snd_soc_dai *dai) | ||
| 272 | { | 276 | { |
| 273 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 277 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 274 | struct psc_i2s *psc_i2s = rtd->dai->cpu_dai->private_data; | 278 | struct psc_i2s *psc_i2s = rtd->dai->cpu_dai->private_data; |
| @@ -383,7 +387,8 @@ static int psc_i2s_trigger(struct snd_pcm_substream *substream, int cmd) | |||
| 383 | * | 387 | * |
| 384 | * Shutdown the PSC if there are no other substreams open. | 388 | * Shutdown the PSC if there are no other substreams open. |
| 385 | */ | 389 | */ |
| 386 | static void psc_i2s_shutdown(struct snd_pcm_substream *substream) | 390 | static void psc_i2s_shutdown(struct snd_pcm_substream *substream, |
| 391 | struct snd_soc_dai *dai) | ||
| 387 | { | 392 | { |
| 388 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 393 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 389 | struct psc_i2s *psc_i2s = rtd->dai->cpu_dai->private_data; | 394 | struct psc_i2s *psc_i2s = rtd->dai->cpu_dai->private_data; |
| @@ -483,8 +488,6 @@ static struct snd_soc_dai psc_i2s_dai_template = { | |||
| 483 | .hw_free = psc_i2s_hw_free, | 488 | .hw_free = psc_i2s_hw_free, |
| 484 | .shutdown = psc_i2s_shutdown, | 489 | .shutdown = psc_i2s_shutdown, |
| 485 | .trigger = psc_i2s_trigger, | 490 | .trigger = psc_i2s_trigger, |
| 486 | }, | ||
| 487 | .dai_ops = { | ||
| 488 | .set_sysclk = psc_i2s_set_sysclk, | 491 | .set_sysclk = psc_i2s_set_sysclk, |
| 489 | .set_fmt = psc_i2s_set_fmt, | 492 | .set_fmt = psc_i2s_set_fmt, |
| 490 | }, | 493 | }, |
diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c index 3d4060b00eb..6013898f49b 100644 --- a/sound/soc/omap/omap-mcbsp.c +++ b/sound/soc/omap/omap-mcbsp.c | |||
| @@ -138,7 +138,8 @@ static const unsigned long omap34xx_mcbsp_port[][2] = { | |||
| 138 | static const unsigned long omap34xx_mcbsp_port[][2] = {}; | 138 | static const unsigned long omap34xx_mcbsp_port[][2] = {}; |
| 139 | #endif | 139 | #endif |
| 140 | 140 | ||
| 141 | static int omap_mcbsp_dai_startup(struct snd_pcm_substream *substream) | 141 | static int omap_mcbsp_dai_startup(struct snd_pcm_substream *substream, |
| 142 | struct snd_soc_dai *dai) | ||
| 142 | { | 143 | { |
| 143 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 144 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 144 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 145 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -151,7 +152,8 @@ static int omap_mcbsp_dai_startup(struct snd_pcm_substream *substream) | |||
| 151 | return err; | 152 | return err; |
| 152 | } | 153 | } |
| 153 | 154 | ||
| 154 | static void omap_mcbsp_dai_shutdown(struct snd_pcm_substream *substream) | 155 | static void omap_mcbsp_dai_shutdown(struct snd_pcm_substream *substream, |
| 156 | struct snd_soc_dai *dai) | ||
| 155 | { | 157 | { |
| 156 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 158 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 157 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 159 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -163,7 +165,8 @@ static void omap_mcbsp_dai_shutdown(struct snd_pcm_substream *substream) | |||
| 163 | } | 165 | } |
| 164 | } | 166 | } |
| 165 | 167 | ||
| 166 | static int omap_mcbsp_dai_trigger(struct snd_pcm_substream *substream, int cmd) | 168 | static int omap_mcbsp_dai_trigger(struct snd_pcm_substream *substream, int cmd, |
| 169 | struct snd_soc_dai *dai) | ||
| 167 | { | 170 | { |
| 168 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 171 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 169 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 172 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -192,7 +195,8 @@ static int omap_mcbsp_dai_trigger(struct snd_pcm_substream *substream, int cmd) | |||
| 192 | } | 195 | } |
| 193 | 196 | ||
| 194 | static int omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream, | 197 | static int omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream, |
| 195 | struct snd_pcm_hw_params *params) | 198 | struct snd_pcm_hw_params *params, |
| 199 | struct snd_soc_dai *dai) | ||
| 196 | { | 200 | { |
| 197 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 201 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 198 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 202 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -470,8 +474,6 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai, | |||
| 470 | .shutdown = omap_mcbsp_dai_shutdown, \ | 474 | .shutdown = omap_mcbsp_dai_shutdown, \ |
| 471 | .trigger = omap_mcbsp_dai_trigger, \ | 475 | .trigger = omap_mcbsp_dai_trigger, \ |
| 472 | .hw_params = omap_mcbsp_dai_hw_params, \ | 476 | .hw_params = omap_mcbsp_dai_hw_params, \ |
| 473 | }, \ | ||
| 474 | .dai_ops = { \ | ||
| 475 | .set_fmt = omap_mcbsp_dai_set_dai_fmt, \ | 477 | .set_fmt = omap_mcbsp_dai_set_dai_fmt, \ |
| 476 | .set_clkdiv = omap_mcbsp_dai_set_clkdiv, \ | 478 | .set_clkdiv = omap_mcbsp_dai_set_clkdiv, \ |
| 477 | .set_sysclk = omap_mcbsp_dai_set_dai_sysclk, \ | 479 | .set_sysclk = omap_mcbsp_dai_set_dai_sysclk, \ |
diff --git a/sound/soc/omap/omap2evm.c b/sound/soc/omap/omap2evm.c index 5bea31157a9..7b160f9d83f 100644 --- a/sound/soc/omap/omap2evm.c +++ b/sound/soc/omap/omap2evm.c | |||
| @@ -38,7 +38,8 @@ | |||
| 38 | #include "../codecs/twl4030.h" | 38 | #include "../codecs/twl4030.h" |
| 39 | 39 | ||
| 40 | static int omap2evm_hw_params(struct snd_pcm_substream *substream, | 40 | static int omap2evm_hw_params(struct snd_pcm_substream *substream, |
| 41 | struct snd_pcm_hw_params *params) | 41 | struct snd_pcm_hw_params *params, |
| 42 | struct snd_soc_dai *dai) | ||
| 42 | { | 43 | { |
| 43 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 44 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 44 | struct snd_soc_dai *codec_dai = rtd->dai->codec_dai; | 45 | struct snd_soc_dai *codec_dai = rtd->dai->codec_dai; |
diff --git a/sound/soc/pxa/pxa-ssp.c b/sound/soc/pxa/pxa-ssp.c index e2b54b88c38..d0dd6245a20 100644 --- a/sound/soc/pxa/pxa-ssp.c +++ b/sound/soc/pxa/pxa-ssp.c | |||
| @@ -212,7 +212,8 @@ static struct pxa2xx_pcm_dma_params *ssp_dma_params[4][4] = { | |||
| 212 | }, | 212 | }, |
| 213 | }; | 213 | }; |
| 214 | 214 | ||
| 215 | static int pxa_ssp_startup(struct snd_pcm_substream *substream) | 215 | static int pxa_ssp_startup(struct snd_pcm_substream *substream, |
| 216 | struct snd_soc_dai *dai) | ||
| 216 | { | 217 | { |
| 217 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 218 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 218 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 219 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -228,7 +229,8 @@ static int pxa_ssp_startup(struct snd_pcm_substream *substream) | |||
| 228 | return ret; | 229 | return ret; |
| 229 | } | 230 | } |
| 230 | 231 | ||
| 231 | static void pxa_ssp_shutdown(struct snd_pcm_substream *substream) | 232 | static void pxa_ssp_shutdown(struct snd_pcm_substream *substream, |
| 233 | struct snd_soc_dai *dai) | ||
| 232 | { | 234 | { |
| 233 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 235 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 234 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 236 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -604,7 +606,8 @@ static int pxa_ssp_set_dai_fmt(struct snd_soc_dai *cpu_dai, | |||
| 604 | * Can be called multiple times by oss emulation. | 606 | * Can be called multiple times by oss emulation. |
| 605 | */ | 607 | */ |
| 606 | static int pxa_ssp_hw_params(struct snd_pcm_substream *substream, | 608 | static int pxa_ssp_hw_params(struct snd_pcm_substream *substream, |
| 607 | struct snd_pcm_hw_params *params) | 609 | struct snd_pcm_hw_params *params, |
| 610 | struct snd_soc_dai *dai) | ||
| 608 | { | 611 | { |
| 609 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 612 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 610 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 613 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -678,7 +681,8 @@ static int pxa_ssp_hw_params(struct snd_pcm_substream *substream, | |||
| 678 | return 0; | 681 | return 0; |
| 679 | } | 682 | } |
| 680 | 683 | ||
| 681 | static int pxa_ssp_trigger(struct snd_pcm_substream *substream, int cmd) | 684 | static int pxa_ssp_trigger(struct snd_pcm_substream *substream, int cmd, |
| 685 | struct snd_soc_dai *dai) | ||
| 682 | { | 686 | { |
| 683 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 687 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 684 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 688 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -806,8 +810,6 @@ struct snd_soc_dai pxa_ssp_dai[] = { | |||
| 806 | .shutdown = pxa_ssp_shutdown, | 810 | .shutdown = pxa_ssp_shutdown, |
| 807 | .trigger = pxa_ssp_trigger, | 811 | .trigger = pxa_ssp_trigger, |
| 808 | .hw_params = pxa_ssp_hw_params, | 812 | .hw_params = pxa_ssp_hw_params, |
| 809 | }, | ||
| 810 | .dai_ops = { | ||
| 811 | .set_sysclk = pxa_ssp_set_dai_sysclk, | 813 | .set_sysclk = pxa_ssp_set_dai_sysclk, |
| 812 | .set_clkdiv = pxa_ssp_set_dai_clkdiv, | 814 | .set_clkdiv = pxa_ssp_set_dai_clkdiv, |
| 813 | .set_pll = pxa_ssp_set_dai_pll, | 815 | .set_pll = pxa_ssp_set_dai_pll, |
| @@ -840,8 +842,6 @@ struct snd_soc_dai pxa_ssp_dai[] = { | |||
| 840 | .shutdown = pxa_ssp_shutdown, | 842 | .shutdown = pxa_ssp_shutdown, |
| 841 | .trigger = pxa_ssp_trigger, | 843 | .trigger = pxa_ssp_trigger, |
| 842 | .hw_params = pxa_ssp_hw_params, | 844 | .hw_params = pxa_ssp_hw_params, |
| 843 | }, | ||
| 844 | .dai_ops = { | ||
| 845 | .set_sysclk = pxa_ssp_set_dai_sysclk, | 845 | .set_sysclk = pxa_ssp_set_dai_sysclk, |
| 846 | .set_clkdiv = pxa_ssp_set_dai_clkdiv, | 846 | .set_clkdiv = pxa_ssp_set_dai_clkdiv, |
| 847 | .set_pll = pxa_ssp_set_dai_pll, | 847 | .set_pll = pxa_ssp_set_dai_pll, |
| @@ -875,8 +875,6 @@ struct snd_soc_dai pxa_ssp_dai[] = { | |||
| 875 | .shutdown = pxa_ssp_shutdown, | 875 | .shutdown = pxa_ssp_shutdown, |
| 876 | .trigger = pxa_ssp_trigger, | 876 | .trigger = pxa_ssp_trigger, |
| 877 | .hw_params = pxa_ssp_hw_params, | 877 | .hw_params = pxa_ssp_hw_params, |
| 878 | }, | ||
| 879 | .dai_ops = { | ||
| 880 | .set_sysclk = pxa_ssp_set_dai_sysclk, | 878 | .set_sysclk = pxa_ssp_set_dai_sysclk, |
| 881 | .set_clkdiv = pxa_ssp_set_dai_clkdiv, | 879 | .set_clkdiv = pxa_ssp_set_dai_clkdiv, |
| 882 | .set_pll = pxa_ssp_set_dai_pll, | 880 | .set_pll = pxa_ssp_set_dai_pll, |
| @@ -910,8 +908,6 @@ struct snd_soc_dai pxa_ssp_dai[] = { | |||
| 910 | .shutdown = pxa_ssp_shutdown, | 908 | .shutdown = pxa_ssp_shutdown, |
| 911 | .trigger = pxa_ssp_trigger, | 909 | .trigger = pxa_ssp_trigger, |
| 912 | .hw_params = pxa_ssp_hw_params, | 910 | .hw_params = pxa_ssp_hw_params, |
| 913 | }, | ||
| 914 | .dai_ops = { | ||
| 915 | .set_sysclk = pxa_ssp_set_dai_sysclk, | 911 | .set_sysclk = pxa_ssp_set_dai_sysclk, |
| 916 | .set_clkdiv = pxa_ssp_set_dai_clkdiv, | 912 | .set_clkdiv = pxa_ssp_set_dai_clkdiv, |
| 917 | .set_pll = pxa_ssp_set_dai_pll, | 913 | .set_pll = pxa_ssp_set_dai_pll, |
diff --git a/sound/soc/pxa/pxa2xx-ac97.c b/sound/soc/pxa/pxa2xx-ac97.c index a7a3a9c5c6f..86667d2f1b7 100644 --- a/sound/soc/pxa/pxa2xx-ac97.c +++ b/sound/soc/pxa/pxa2xx-ac97.c | |||
| @@ -117,7 +117,8 @@ static void pxa2xx_ac97_remove(struct platform_device *pdev, | |||
| 117 | } | 117 | } |
| 118 | 118 | ||
| 119 | static int pxa2xx_ac97_hw_params(struct snd_pcm_substream *substream, | 119 | static int pxa2xx_ac97_hw_params(struct snd_pcm_substream *substream, |
| 120 | struct snd_pcm_hw_params *params) | 120 | struct snd_pcm_hw_params *params, |
| 121 | struct snd_soc_dai *dai) | ||
| 121 | { | 122 | { |
| 122 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 123 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 123 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 124 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -131,7 +132,8 @@ static int pxa2xx_ac97_hw_params(struct snd_pcm_substream *substream, | |||
| 131 | } | 132 | } |
| 132 | 133 | ||
| 133 | static int pxa2xx_ac97_hw_aux_params(struct snd_pcm_substream *substream, | 134 | static int pxa2xx_ac97_hw_aux_params(struct snd_pcm_substream *substream, |
| 134 | struct snd_pcm_hw_params *params) | 135 | struct snd_pcm_hw_params *params, |
| 136 | struct snd_soc_dai *dai) | ||
| 135 | { | 137 | { |
| 136 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 138 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 137 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 139 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -145,7 +147,8 @@ static int pxa2xx_ac97_hw_aux_params(struct snd_pcm_substream *substream, | |||
| 145 | } | 147 | } |
| 146 | 148 | ||
| 147 | static int pxa2xx_ac97_hw_mic_params(struct snd_pcm_substream *substream, | 149 | static int pxa2xx_ac97_hw_mic_params(struct snd_pcm_substream *substream, |
| 148 | struct snd_pcm_hw_params *params) | 150 | struct snd_pcm_hw_params *params, |
| 151 | struct snd_soc_dai *dai) | ||
| 149 | { | 152 | { |
| 150 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 153 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 151 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 154 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
diff --git a/sound/soc/pxa/pxa2xx-i2s.c b/sound/soc/pxa/pxa2xx-i2s.c index e758034db5c..9a3e55b4812 100644 --- a/sound/soc/pxa/pxa2xx-i2s.c +++ b/sound/soc/pxa/pxa2xx-i2s.c | |||
| @@ -121,7 +121,8 @@ static struct pxa2xx_gpio gpio_bus[] = { | |||
| 121 | }, | 121 | }, |
| 122 | }; | 122 | }; |
| 123 | 123 | ||
| 124 | static int pxa2xx_i2s_startup(struct snd_pcm_substream *substream) | 124 | static int pxa2xx_i2s_startup(struct snd_pcm_substream *substream, |
| 125 | struct snd_soc_dai *dai) | ||
| 125 | { | 126 | { |
| 126 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 127 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 127 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 128 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -187,7 +188,8 @@ static int pxa2xx_i2s_set_dai_sysclk(struct snd_soc_dai *cpu_dai, | |||
| 187 | } | 188 | } |
| 188 | 189 | ||
| 189 | static int pxa2xx_i2s_hw_params(struct snd_pcm_substream *substream, | 190 | static int pxa2xx_i2s_hw_params(struct snd_pcm_substream *substream, |
| 190 | struct snd_pcm_hw_params *params) | 191 | struct snd_pcm_hw_params *params, |
| 192 | struct snd_soc_dai *dai) | ||
| 191 | { | 193 | { |
| 192 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 194 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 193 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 195 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -248,7 +250,8 @@ static int pxa2xx_i2s_hw_params(struct snd_pcm_substream *substream, | |||
| 248 | return 0; | 250 | return 0; |
| 249 | } | 251 | } |
| 250 | 252 | ||
| 251 | static int pxa2xx_i2s_trigger(struct snd_pcm_substream *substream, int cmd) | 253 | static int pxa2xx_i2s_trigger(struct snd_pcm_substream *substream, int cmd, |
| 254 | struct snd_soc_dai *dai) | ||
| 252 | { | 255 | { |
| 253 | int ret = 0; | 256 | int ret = 0; |
| 254 | 257 | ||
| @@ -269,7 +272,8 @@ static int pxa2xx_i2s_trigger(struct snd_pcm_substream *substream, int cmd) | |||
| 269 | return ret; | 272 | return ret; |
| 270 | } | 273 | } |
| 271 | 274 | ||
| 272 | static void pxa2xx_i2s_shutdown(struct snd_pcm_substream *substream) | 275 | static void pxa2xx_i2s_shutdown(struct snd_pcm_substream *substream, |
| 276 | struct snd_soc_dai *dai) | ||
| 273 | { | 277 | { |
| 274 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { | 278 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { |
| 275 | SACR1 |= SACR1_DRPL; | 279 | SACR1 |= SACR1_DRPL; |
| @@ -353,8 +357,7 @@ struct snd_soc_dai pxa_i2s_dai = { | |||
| 353 | .startup = pxa2xx_i2s_startup, | 357 | .startup = pxa2xx_i2s_startup, |
| 354 | .shutdown = pxa2xx_i2s_shutdown, | 358 | .shutdown = pxa2xx_i2s_shutdown, |
| 355 | .trigger = pxa2xx_i2s_trigger, | 359 | .trigger = pxa2xx_i2s_trigger, |
| 356 | .hw_params = pxa2xx_i2s_hw_params,}, | 360 | .hw_params = pxa2xx_i2s_hw_params, |
| 357 | .dai_ops = { | ||
| 358 | .set_fmt = pxa2xx_i2s_set_dai_fmt, | 361 | .set_fmt = pxa2xx_i2s_set_dai_fmt, |
| 359 | .set_sysclk = pxa2xx_i2s_set_dai_sysclk, | 362 | .set_sysclk = pxa2xx_i2s_set_dai_sysclk, |
| 360 | }, | 363 | }, |
diff --git a/sound/soc/s3c24xx/s3c2412-i2s.c b/sound/soc/s3c24xx/s3c2412-i2s.c index ded7d995a92..360cc2a49d9 100644 --- a/sound/soc/s3c24xx/s3c2412-i2s.c +++ b/sound/soc/s3c24xx/s3c2412-i2s.c | |||
| @@ -343,7 +343,8 @@ static int s3c2412_i2s_set_fmt(struct snd_soc_dai *cpu_dai, | |||
| 343 | } | 343 | } |
| 344 | 344 | ||
| 345 | static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream, | 345 | static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream, |
| 346 | struct snd_pcm_hw_params *params) | 346 | struct snd_pcm_hw_params *params, |
| 347 | struct snd_soc_dai *dai) | ||
| 347 | { | 348 | { |
| 348 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 349 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 349 | u32 iismod; | 350 | u32 iismod; |
| @@ -373,7 +374,8 @@ static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream, | |||
| 373 | return 0; | 374 | return 0; |
| 374 | } | 375 | } |
| 375 | 376 | ||
| 376 | static int s3c2412_i2s_trigger(struct snd_pcm_substream *substream, int cmd) | 377 | static int s3c2412_i2s_trigger(struct snd_pcm_substream *substream, int cmd, |
| 378 | struct snd_soc_dai *dai) | ||
| 377 | { | 379 | { |
| 378 | int capture = (substream->stream == SNDRV_PCM_STREAM_CAPTURE); | 380 | int capture = (substream->stream == SNDRV_PCM_STREAM_CAPTURE); |
| 379 | unsigned long irqs; | 381 | unsigned long irqs; |
| @@ -730,8 +732,6 @@ struct snd_soc_dai s3c2412_i2s_dai = { | |||
| 730 | .ops = { | 732 | .ops = { |
| 731 | .trigger = s3c2412_i2s_trigger, | 733 | .trigger = s3c2412_i2s_trigger, |
| 732 | .hw_params = s3c2412_i2s_hw_params, | 734 | .hw_params = s3c2412_i2s_hw_params, |
| 733 | }, | ||
| 734 | .dai_ops = { | ||
| 735 | .set_fmt = s3c2412_i2s_set_fmt, | 735 | .set_fmt = s3c2412_i2s_set_fmt, |
| 736 | .set_clkdiv = s3c2412_i2s_set_clkdiv, | 736 | .set_clkdiv = s3c2412_i2s_set_clkdiv, |
| 737 | .set_sysclk = s3c2412_i2s_set_sysclk, | 737 | .set_sysclk = s3c2412_i2s_set_sysclk, |
diff --git a/sound/soc/s3c24xx/s3c2443-ac97.c b/sound/soc/s3c24xx/s3c2443-ac97.c index 19c5c3cf5d8..31377821b2c 100644 --- a/sound/soc/s3c24xx/s3c2443-ac97.c +++ b/sound/soc/s3c24xx/s3c2443-ac97.c | |||
| @@ -271,7 +271,8 @@ static void s3c2443_ac97_remove(struct platform_device *pdev, | |||
| 271 | } | 271 | } |
| 272 | 272 | ||
| 273 | static int s3c2443_ac97_hw_params(struct snd_pcm_substream *substream, | 273 | static int s3c2443_ac97_hw_params(struct snd_pcm_substream *substream, |
| 274 | struct snd_pcm_hw_params *params) | 274 | struct snd_pcm_hw_params *params, |
| 275 | struct snd_soc_dai *dai) | ||
| 275 | { | 276 | { |
| 276 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 277 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 277 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 278 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -313,7 +314,8 @@ static int s3c2443_ac97_trigger(struct snd_pcm_substream *substream, int cmd) | |||
| 313 | } | 314 | } |
| 314 | 315 | ||
| 315 | static int s3c2443_ac97_hw_mic_params(struct snd_pcm_substream *substream, | 316 | static int s3c2443_ac97_hw_mic_params(struct snd_pcm_substream *substream, |
| 316 | struct snd_pcm_hw_params *params) | 317 | struct snd_pcm_hw_params *params, |
| 318 | struct snd_soc_dai *dai) | ||
| 317 | { | 319 | { |
| 318 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 320 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 319 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 321 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| @@ -327,7 +329,7 @@ static int s3c2443_ac97_hw_mic_params(struct snd_pcm_substream *substream, | |||
| 327 | } | 329 | } |
| 328 | 330 | ||
| 329 | static int s3c2443_ac97_mic_trigger(struct snd_pcm_substream *substream, | 331 | static int s3c2443_ac97_mic_trigger(struct snd_pcm_substream *substream, |
| 330 | int cmd) | 332 | int cmd, struct snd_soc_dai *dai) |
| 331 | { | 333 | { |
| 332 | u32 ac_glbctrl; | 334 | u32 ac_glbctrl; |
| 333 | 335 | ||
diff --git a/sound/soc/s3c24xx/s3c24xx-i2s.c b/sound/soc/s3c24xx/s3c24xx-i2s.c index c18977bceaf..1bac9dd3dbd 100644 --- a/sound/soc/s3c24xx/s3c24xx-i2s.c +++ b/sound/soc/s3c24xx/s3c24xx-i2s.c | |||
| @@ -243,7 +243,8 @@ static int s3c24xx_i2s_set_fmt(struct snd_soc_dai *cpu_dai, | |||
| 243 | } | 243 | } |
| 244 | 244 | ||
| 245 | static int s3c24xx_i2s_hw_params(struct snd_pcm_substream *substream, | 245 | static int s3c24xx_i2s_hw_params(struct snd_pcm_substream *substream, |
| 246 | struct snd_pcm_hw_params *params) | 246 | struct snd_pcm_hw_params *params, |
| 247 | struct snd_soc_dai *dai) | ||
| 247 | { | 248 | { |
| 248 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 249 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 249 | u32 iismod; | 250 | u32 iismod; |
| @@ -279,7 +280,8 @@ static int s3c24xx_i2s_hw_params(struct snd_pcm_substream *substream, | |||
| 279 | return 0; | 280 | return 0; |
| 280 | } | 281 | } |
| 281 | 282 | ||
| 282 | static int s3c24xx_i2s_trigger(struct snd_pcm_substream *substream, int cmd) | 283 | static int s3c24xx_i2s_trigger(struct snd_pcm_substream *substream, int cmd, |
| 284 | struct snd_soc_dai *dai) | ||
| 283 | { | 285 | { |
| 284 | int ret = 0; | 286 | int ret = 0; |
| 285 | 287 | ||
| @@ -475,8 +477,7 @@ struct snd_soc_dai s3c24xx_i2s_dai = { | |||
| 475 | .formats = SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE,}, | 477 | .formats = SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE,}, |
| 476 | .ops = { | 478 | .ops = { |
| 477 | .trigger = s3c24xx_i2s_trigger, | 479 | .trigger = s3c24xx_i2s_trigger, |
| 478 | .hw_params = s3c24xx_i2s_hw_params,}, | 480 | .hw_params = s3c24xx_i2s_hw_params, |
| 479 | .dai_ops = { | ||
| 480 | .set_fmt = s3c24xx_i2s_set_fmt, | 481 | .set_fmt = s3c24xx_i2s_set_fmt, |
| 481 | .set_clkdiv = s3c24xx_i2s_set_clkdiv, | 482 | .set_clkdiv = s3c24xx_i2s_set_clkdiv, |
| 482 | .set_sysclk = s3c24xx_i2s_set_sysclk, | 483 | .set_sysclk = s3c24xx_i2s_set_sysclk, |
diff --git a/sound/soc/sh/hac.c b/sound/soc/sh/hac.c index df7bc345c32..3318071dc80 100644 --- a/sound/soc/sh/hac.c +++ b/sound/soc/sh/hac.c | |||
| @@ -236,7 +236,8 @@ struct snd_ac97_bus_ops soc_ac97_ops = { | |||
| 236 | EXPORT_SYMBOL_GPL(soc_ac97_ops); | 236 | EXPORT_SYMBOL_GPL(soc_ac97_ops); |
| 237 | 237 | ||
| 238 | static int hac_hw_params(struct snd_pcm_substream *substream, | 238 | static int hac_hw_params(struct snd_pcm_substream *substream, |
| 239 | struct snd_pcm_hw_params *params) | 239 | struct snd_pcm_hw_params *params, |
| 240 | struct snd_soc_dai *dai) | ||
| 240 | { | 241 | { |
| 241 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 242 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 242 | struct hac_priv *hac = &hac_cpu_data[rtd->dai->cpu_dai->id]; | 243 | struct hac_priv *hac = &hac_cpu_data[rtd->dai->cpu_dai->id]; |
diff --git a/sound/soc/sh/ssi.c b/sound/soc/sh/ssi.c index 55c3464163a..52a233840d2 100644 --- a/sound/soc/sh/ssi.c +++ b/sound/soc/sh/ssi.c | |||
| @@ -89,7 +89,8 @@ struct ssi_priv { | |||
| 89 | * track usage of the SSI; it is simplex-only so prevent attempts of | 89 | * track usage of the SSI; it is simplex-only so prevent attempts of |
| 90 | * concurrent playback + capture. FIXME: any locking required? | 90 | * concurrent playback + capture. FIXME: any locking required? |
| 91 | */ | 91 | */ |
| 92 | static int ssi_startup(struct snd_pcm_substream *substream) | 92 | static int ssi_startup(struct snd_pcm_substream *substream, |
| 93 | struct snd_soc_dai *dai) | ||
| 93 | { | 94 | { |
| 94 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 95 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 95 | struct ssi_priv *ssi = &ssi_cpu_data[rtd->dai->cpu_dai->id]; | 96 | struct ssi_priv *ssi = &ssi_cpu_data[rtd->dai->cpu_dai->id]; |
| @@ -101,7 +102,8 @@ static int ssi_startup(struct snd_pcm_substream *substream) | |||
| 101 | return 0; | 102 | return 0; |
| 102 | } | 103 | } |
| 103 | 104 | ||
| 104 | static void ssi_shutdown(struct snd_pcm_substream *substream) | 105 | static void ssi_shutdown(struct snd_pcm_substream *substream, |
| 106 | struct snd_soc_dai *dai) | ||
| 105 | { | 107 | { |
| 106 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 108 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 107 | struct ssi_priv *ssi = &ssi_cpu_data[rtd->dai->cpu_dai->id]; | 109 | struct ssi_priv *ssi = &ssi_cpu_data[rtd->dai->cpu_dai->id]; |
| @@ -109,7 +111,8 @@ static void ssi_shutdown(struct snd_pcm_substream *substream) | |||
| 109 | ssi->inuse = 0; | 111 | ssi->inuse = 0; |
| 110 | } | 112 | } |
| 111 | 113 | ||
| 112 | static int ssi_trigger(struct snd_pcm_substream *substream, int cmd) | 114 | static int ssi_trigger(struct snd_pcm_substream *substream, int cmd, |
| 115 | struct snd_soc_dai *dai) | ||
| 113 | { | 116 | { |
| 114 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 117 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 115 | struct ssi_priv *ssi = &ssi_cpu_data[rtd->dai->cpu_dai->id]; | 118 | struct ssi_priv *ssi = &ssi_cpu_data[rtd->dai->cpu_dai->id]; |
| @@ -129,7 +132,8 @@ static int ssi_trigger(struct snd_pcm_substream *substream, int cmd) | |||
| 129 | } | 132 | } |
| 130 | 133 | ||
| 131 | static int ssi_hw_params(struct snd_pcm_substream *substream, | 134 | static int ssi_hw_params(struct snd_pcm_substream *substream, |
| 132 | struct snd_pcm_hw_params *params) | 135 | struct snd_pcm_hw_params *params, |
| 136 | struct snd_soc_dai *dai) | ||
| 133 | { | 137 | { |
| 134 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 138 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 135 | struct ssi_priv *ssi = &ssi_cpu_data[rtd->dai->cpu_dai->id]; | 139 | struct ssi_priv *ssi = &ssi_cpu_data[rtd->dai->cpu_dai->id]; |
| @@ -354,8 +358,6 @@ struct snd_soc_dai sh4_ssi_dai[] = { | |||
| 354 | .shutdown = ssi_shutdown, | 358 | .shutdown = ssi_shutdown, |
| 355 | .trigger = ssi_trigger, | 359 | .trigger = ssi_trigger, |
| 356 | .hw_params = ssi_hw_params, | 360 | .hw_params = ssi_hw_params, |
| 357 | }, | ||
| 358 | .dai_ops = { | ||
| 359 | .set_sysclk = ssi_set_sysclk, | 361 | .set_sysclk = ssi_set_sysclk, |
| 360 | .set_clkdiv = ssi_set_clkdiv, | 362 | .set_clkdiv = ssi_set_clkdiv, |
| 361 | .set_fmt = ssi_set_fmt, | 363 | .set_fmt = ssi_set_fmt, |
| @@ -383,8 +385,6 @@ struct snd_soc_dai sh4_ssi_dai[] = { | |||
| 383 | .shutdown = ssi_shutdown, | 385 | .shutdown = ssi_shutdown, |
| 384 | .trigger = ssi_trigger, | 386 | .trigger = ssi_trigger, |
| 385 | .hw_params = ssi_hw_params, | 387 | .hw_params = ssi_hw_params, |
| 386 | }, | ||
| 387 | .dai_ops = { | ||
| 388 | .set_sysclk = ssi_set_sysclk, | 388 | .set_sysclk = ssi_set_sysclk, |
| 389 | .set_clkdiv = ssi_set_clkdiv, | 389 | .set_clkdiv = ssi_set_clkdiv, |
| 390 | .set_fmt = ssi_set_fmt, | 390 | .set_fmt = ssi_set_fmt, |
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index c5cb9516fea..43f4060dbe7 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c | |||
| @@ -134,7 +134,7 @@ static int soc_pcm_open(struct snd_pcm_substream *substream) | |||
| 134 | 134 | ||
| 135 | /* startup the audio subsystem */ | 135 | /* startup the audio subsystem */ |
| 136 | if (cpu_dai->ops.startup) { | 136 | if (cpu_dai->ops.startup) { |
| 137 | ret = cpu_dai->ops.startup(substream); | 137 | ret = cpu_dai->ops.startup(substream, cpu_dai); |
| 138 | if (ret < 0) { | 138 | if (ret < 0) { |
| 139 | printk(KERN_ERR "asoc: can't open interface %s\n", | 139 | printk(KERN_ERR "asoc: can't open interface %s\n", |
| 140 | cpu_dai->name); | 140 | cpu_dai->name); |
| @@ -151,7 +151,7 @@ static int soc_pcm_open(struct snd_pcm_substream *substream) | |||
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | if (codec_dai->ops.startup) { | 153 | if (codec_dai->ops.startup) { |
| 154 | ret = codec_dai->ops.startup(substream); | 154 | ret = codec_dai->ops.startup(substream, codec_dai); |
| 155 | if (ret < 0) { | 155 | if (ret < 0) { |
| 156 | printk(KERN_ERR "asoc: can't open codec %s\n", | 156 | printk(KERN_ERR "asoc: can't open codec %s\n", |
| 157 | codec_dai->name); | 157 | codec_dai->name); |
| @@ -248,7 +248,7 @@ codec_dai_err: | |||
| 248 | 248 | ||
| 249 | platform_err: | 249 | platform_err: |
| 250 | if (cpu_dai->ops.shutdown) | 250 | if (cpu_dai->ops.shutdown) |
| 251 | cpu_dai->ops.shutdown(substream); | 251 | cpu_dai->ops.shutdown(substream, cpu_dai); |
| 252 | out: | 252 | out: |
| 253 | mutex_unlock(&pcm_mutex); | 253 | mutex_unlock(&pcm_mutex); |
| 254 | return ret; | 254 | return ret; |
| @@ -339,10 +339,10 @@ static int soc_codec_close(struct snd_pcm_substream *substream) | |||
| 339 | snd_soc_dai_digital_mute(codec_dai, 1); | 339 | snd_soc_dai_digital_mute(codec_dai, 1); |
| 340 | 340 | ||
| 341 | if (cpu_dai->ops.shutdown) | 341 | if (cpu_dai->ops.shutdown) |
| 342 | cpu_dai->ops.shutdown(substream); | 342 | cpu_dai->ops.shutdown(substream, cpu_dai); |
| 343 | 343 | ||
| 344 | if (codec_dai->ops.shutdown) | 344 | if (codec_dai->ops.shutdown) |
| 345 | codec_dai->ops.shutdown(substream); | 345 | codec_dai->ops.shutdown(substream, codec_dai); |
| 346 | 346 | ||
| 347 | if (machine->ops && machine->ops->shutdown) | 347 | if (machine->ops && machine->ops->shutdown) |
| 348 | machine->ops->shutdown(substream); | 348 | machine->ops->shutdown(substream); |
| @@ -406,7 +406,7 @@ static int soc_pcm_prepare(struct snd_pcm_substream *substream) | |||
| 406 | } | 406 | } |
| 407 | 407 | ||
| 408 | if (codec_dai->ops.prepare) { | 408 | if (codec_dai->ops.prepare) { |
| 409 | ret = codec_dai->ops.prepare(substream); | 409 | ret = codec_dai->ops.prepare(substream, codec_dai); |
| 410 | if (ret < 0) { | 410 | if (ret < 0) { |
| 411 | printk(KERN_ERR "asoc: codec DAI prepare error\n"); | 411 | printk(KERN_ERR "asoc: codec DAI prepare error\n"); |
| 412 | goto out; | 412 | goto out; |
| @@ -414,7 +414,7 @@ static int soc_pcm_prepare(struct snd_pcm_substream *substream) | |||
| 414 | } | 414 | } |
| 415 | 415 | ||
| 416 | if (cpu_dai->ops.prepare) { | 416 | if (cpu_dai->ops.prepare) { |
| 417 | ret = cpu_dai->ops.prepare(substream); | 417 | ret = cpu_dai->ops.prepare(substream, cpu_dai); |
| 418 | if (ret < 0) { | 418 | if (ret < 0) { |
| 419 | printk(KERN_ERR "asoc: cpu DAI prepare error\n"); | 419 | printk(KERN_ERR "asoc: cpu DAI prepare error\n"); |
| 420 | goto out; | 420 | goto out; |
| @@ -491,7 +491,7 @@ static int soc_pcm_hw_params(struct snd_pcm_substream *substream, | |||
| 491 | } | 491 | } |
| 492 | 492 | ||
| 493 | if (codec_dai->ops.hw_params) { | 493 | if (codec_dai->ops.hw_params) { |
| 494 | ret = codec_dai->ops.hw_params(substream, params); | 494 | ret = codec_dai->ops.hw_params(substream, params, codec_dai); |
| 495 | if (ret < 0) { | 495 | if (ret < 0) { |
| 496 | printk(KERN_ERR "asoc: can't set codec %s hw params\n", | 496 | printk(KERN_ERR "asoc: can't set codec %s hw params\n", |
| 497 | codec_dai->name); | 497 | codec_dai->name); |
| @@ -500,7 +500,7 @@ static int soc_pcm_hw_params(struct snd_pcm_substream *substream, | |||
| 500 | } | 500 | } |
| 501 | 501 | ||
| 502 | if (cpu_dai->ops.hw_params) { | 502 | if (cpu_dai->ops.hw_params) { |
| 503 | ret = cpu_dai->ops.hw_params(substream, params); | 503 | ret = cpu_dai->ops.hw_params(substream, params, cpu_dai); |
| 504 | if (ret < 0) { | 504 | if (ret < 0) { |
| 505 | printk(KERN_ERR "asoc: interface %s hw params failed\n", | 505 | printk(KERN_ERR "asoc: interface %s hw params failed\n", |
| 506 | cpu_dai->name); | 506 | cpu_dai->name); |
| @@ -523,11 +523,11 @@ out: | |||
| 523 | 523 | ||
| 524 | platform_err: | 524 | platform_err: |
| 525 | if (cpu_dai->ops.hw_free) | 525 | if (cpu_dai->ops.hw_free) |
| 526 | cpu_dai->ops.hw_free(substream); | 526 | cpu_dai->ops.hw_free(substream, cpu_dai); |
| 527 | 527 | ||
| 528 | interface_err: | 528 | interface_err: |
| 529 | if (codec_dai->ops.hw_free) | 529 | if (codec_dai->ops.hw_free) |
| 530 | codec_dai->ops.hw_free(substream); | 530 | codec_dai->ops.hw_free(substream, codec_dai); |
| 531 | 531 | ||
| 532 | codec_err: | 532 | codec_err: |
| 533 | if (machine->ops && machine->ops->hw_free) | 533 | if (machine->ops && machine->ops->hw_free) |
| @@ -566,10 +566,10 @@ static int soc_pcm_hw_free(struct snd_pcm_substream *substream) | |||
| 566 | 566 | ||
| 567 | /* now free hw params for the DAI's */ | 567 | /* now free hw params for the DAI's */ |
| 568 | if (codec_dai->ops.hw_free) | 568 | if (codec_dai->ops.hw_free) |
| 569 | codec_dai->ops.hw_free(substream); | 569 | codec_dai->ops.hw_free(substream, codec_dai); |
| 570 | 570 | ||
| 571 | if (cpu_dai->ops.hw_free) | 571 | if (cpu_dai->ops.hw_free) |
| 572 | cpu_dai->ops.hw_free(substream); | 572 | cpu_dai->ops.hw_free(substream, cpu_dai); |
| 573 | 573 | ||
| 574 | mutex_unlock(&pcm_mutex); | 574 | mutex_unlock(&pcm_mutex); |
| 575 | return 0; | 575 | return 0; |
| @@ -586,7 +586,7 @@ static int soc_pcm_trigger(struct snd_pcm_substream *substream, int cmd) | |||
| 586 | int ret; | 586 | int ret; |
| 587 | 587 | ||
| 588 | if (codec_dai->ops.trigger) { | 588 | if (codec_dai->ops.trigger) { |
| 589 | ret = codec_dai->ops.trigger(substream, cmd); | 589 | ret = codec_dai->ops.trigger(substream, cmd, codec_dai); |
| 590 | if (ret < 0) | 590 | if (ret < 0) |
| 591 | return ret; | 591 | return ret; |
| 592 | } | 592 | } |
| @@ -598,7 +598,7 @@ static int soc_pcm_trigger(struct snd_pcm_substream *substream, int cmd) | |||
| 598 | } | 598 | } |
| 599 | 599 | ||
| 600 | if (cpu_dai->ops.trigger) { | 600 | if (cpu_dai->ops.trigger) { |
| 601 | ret = cpu_dai->ops.trigger(substream, cmd); | 601 | ret = cpu_dai->ops.trigger(substream, cmd, cpu_dai); |
| 602 | if (ret < 0) | 602 | if (ret < 0) |
| 603 | return ret; | 603 | return ret; |
| 604 | } | 604 | } |
| @@ -637,10 +637,10 @@ static int soc_suspend(struct platform_device *pdev, pm_message_t state) | |||
| 637 | snd_power_change_state(codec->card, SNDRV_CTL_POWER_D3hot); | 637 | snd_power_change_state(codec->card, SNDRV_CTL_POWER_D3hot); |
| 638 | 638 | ||
| 639 | /* mute any active DAC's */ | 639 | /* mute any active DAC's */ |
| 640 | for (i = 0; i < machine->num_links; i++) { | 640 | for (i = 0; i < card->num_links; i++) { |
| 641 | struct snd_soc_dai *dai = machine->dai_link[i].codec_dai; | 641 | struct snd_soc_dai *dai = card->dai_link[i].codec_dai; |
| 642 | if (dai->dai_ops.digital_mute && dai->playback.active) | 642 | if (dai->ops.digital_mute && dai->playback.active) |
| 643 | dai->dai_ops.digital_mute(dai, 1); | 643 | dai->ops.digital_mute(dai, 1); |
| 644 | } | 644 | } |
| 645 | 645 | ||
| 646 | /* suspend all pcms */ | 646 | /* suspend all pcms */ |
| @@ -733,10 +733,10 @@ static void soc_resume_deferred(struct work_struct *work) | |||
| 733 | } | 733 | } |
| 734 | 734 | ||
| 735 | /* unmute any active DACs */ | 735 | /* unmute any active DACs */ |
| 736 | for (i = 0; i < machine->num_links; i++) { | 736 | for (i = 0; i < card->num_links; i++) { |
| 737 | struct snd_soc_dai *dai = machine->dai_link[i].codec_dai; | 737 | struct snd_soc_dai *dai = card->dai_link[i].codec_dai; |
| 738 | if (dai->dai_ops.digital_mute && dai->playback.active) | 738 | if (dai->ops.digital_mute && dai->playback.active) |
| 739 | dai->dai_ops.digital_mute(dai, 0); | 739 | dai->ops.digital_mute(dai, 0); |
| 740 | } | 740 | } |
| 741 | 741 | ||
| 742 | for (i = 0; i < card->num_links; i++) { | 742 | for (i = 0; i < card->num_links; i++) { |
| @@ -1849,8 +1849,8 @@ EXPORT_SYMBOL_GPL(snd_soc_put_volsw_s8); | |||
| 1849 | int snd_soc_dai_set_sysclk(struct snd_soc_dai *dai, int clk_id, | 1849 | int snd_soc_dai_set_sysclk(struct snd_soc_dai *dai, int clk_id, |
| 1850 | unsigned int freq, int dir) | 1850 | unsigned int freq, int dir) |
| 1851 | { | 1851 | { |
| 1852 | if (dai->dai_ops.set_sysclk) | 1852 | if (dai->ops.set_sysclk) |
| 1853 | return dai->dai_ops.set_sysclk(dai, clk_id, freq, dir); | 1853 | return dai->ops.set_sysclk(dai, clk_id, freq, dir); |
| 1854 | else | 1854 | else |
| 1855 | return -EINVAL; | 1855 | return -EINVAL; |
| 1856 | } | 1856 | } |
| @@ -1869,8 +1869,8 @@ EXPORT_SYMBOL_GPL(snd_soc_dai_set_sysclk); | |||
| 1869 | int snd_soc_dai_set_clkdiv(struct snd_soc_dai *dai, | 1869 | int snd_soc_dai_set_clkdiv(struct snd_soc_dai *dai, |
| 1870 | int div_id, int div) | 1870 | int div_id, int div) |
| 1871 | { | 1871 | { |
| 1872 | if (dai->dai_ops.set_clkdiv) | 1872 | if (dai->ops.set_clkdiv) |
| 1873 | return dai->dai_ops.set_clkdiv(dai, div_id, div); | 1873 | return dai->ops.set_clkdiv(dai, div_id, div); |
| 1874 | else | 1874 | else |
| 1875 | return -EINVAL; | 1875 | return -EINVAL; |
| 1876 | } | 1876 | } |
| @@ -1888,8 +1888,8 @@ EXPORT_SYMBOL_GPL(snd_soc_dai_set_clkdiv); | |||
| 1888 | int snd_soc_dai_set_pll(struct snd_soc_dai *dai, | 1888 | int snd_soc_dai_set_pll(struct snd_soc_dai *dai, |
| 1889 | int pll_id, unsigned int freq_in, unsigned int freq_out) | 1889 | int pll_id, unsigned int freq_in, unsigned int freq_out) |
| 1890 | { | 1890 | { |
| 1891 | if (dai->dai_ops.set_pll) | 1891 | if (dai->ops.set_pll) |
| 1892 | return dai->dai_ops.set_pll(dai, pll_id, freq_in, freq_out); | 1892 | return dai->ops.set_pll(dai, pll_id, freq_in, freq_out); |
| 1893 | else | 1893 | else |
| 1894 | return -EINVAL; | 1894 | return -EINVAL; |
| 1895 | } | 1895 | } |
| @@ -1905,8 +1905,8 @@ EXPORT_SYMBOL_GPL(snd_soc_dai_set_pll); | |||
| 1905 | */ | 1905 | */ |
| 1906 | int snd_soc_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) | 1906 | int snd_soc_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) |
| 1907 | { | 1907 | { |
| 1908 | if (dai->dai_ops.set_fmt) | 1908 | if (dai->ops.set_fmt) |
| 1909 | return dai->dai_ops.set_fmt(dai, fmt); | 1909 | return dai->ops.set_fmt(dai, fmt); |
| 1910 | else | 1910 | else |
| 1911 | return -EINVAL; | 1911 | return -EINVAL; |
| 1912 | } | 1912 | } |
| @@ -1924,8 +1924,8 @@ EXPORT_SYMBOL_GPL(snd_soc_dai_set_fmt); | |||
| 1924 | int snd_soc_dai_set_tdm_slot(struct snd_soc_dai *dai, | 1924 | int snd_soc_dai_set_tdm_slot(struct snd_soc_dai *dai, |
| 1925 | unsigned int mask, int slots) | 1925 | unsigned int mask, int slots) |
| 1926 | { | 1926 | { |
| 1927 | if (dai->dai_ops.set_sysclk) | 1927 | if (dai->ops.set_sysclk) |
| 1928 | return dai->dai_ops.set_tdm_slot(dai, mask, slots); | 1928 | return dai->ops.set_tdm_slot(dai, mask, slots); |
| 1929 | else | 1929 | else |
| 1930 | return -EINVAL; | 1930 | return -EINVAL; |
| 1931 | } | 1931 | } |
| @@ -1940,8 +1940,8 @@ EXPORT_SYMBOL_GPL(snd_soc_dai_set_tdm_slot); | |||
| 1940 | */ | 1940 | */ |
| 1941 | int snd_soc_dai_set_tristate(struct snd_soc_dai *dai, int tristate) | 1941 | int snd_soc_dai_set_tristate(struct snd_soc_dai *dai, int tristate) |
| 1942 | { | 1942 | { |
| 1943 | if (dai->dai_ops.set_sysclk) | 1943 | if (dai->ops.set_sysclk) |
| 1944 | return dai->dai_ops.set_tristate(dai, tristate); | 1944 | return dai->ops.set_tristate(dai, tristate); |
| 1945 | else | 1945 | else |
| 1946 | return -EINVAL; | 1946 | return -EINVAL; |
| 1947 | } | 1947 | } |
| @@ -1956,8 +1956,8 @@ EXPORT_SYMBOL_GPL(snd_soc_dai_set_tristate); | |||
| 1956 | */ | 1956 | */ |
| 1957 | int snd_soc_dai_digital_mute(struct snd_soc_dai *dai, int mute) | 1957 | int snd_soc_dai_digital_mute(struct snd_soc_dai *dai, int mute) |
| 1958 | { | 1958 | { |
| 1959 | if (dai->dai_ops.digital_mute) | 1959 | if (dai->ops.digital_mute) |
| 1960 | return dai->dai_ops.digital_mute(dai, mute); | 1960 | return dai->ops.digital_mute(dai, mute); |
| 1961 | else | 1961 | else |
| 1962 | return -EINVAL; | 1962 | return -EINVAL; |
| 1963 | } | 1963 | } |
