diff options
-rw-r--r-- | sound/soc/davinci/davinci-i2s.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/sound/soc/davinci/davinci-i2s.c b/sound/soc/davinci/davinci-i2s.c index dd44167a90f0..f7d7e4c30764 100644 --- a/sound/soc/davinci/davinci-i2s.c +++ b/sound/soc/davinci/davinci-i2s.c | |||
@@ -130,10 +130,10 @@ static void toggle_clock(struct davinci_mcbsp_dev *dev, int playback) | |||
130 | davinci_mcbsp_write_reg(dev, DAVINCI_MCBSP_PCR_REG, dev->pcr); | 130 | davinci_mcbsp_write_reg(dev, DAVINCI_MCBSP_PCR_REG, dev->pcr); |
131 | } | 131 | } |
132 | 132 | ||
133 | static void davinci_mcbsp_start(struct snd_pcm_substream *substream) | 133 | static void davinci_mcbsp_start(struct davinci_mcbsp_dev *dev, |
134 | struct snd_pcm_substream *substream) | ||
134 | { | 135 | { |
135 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 136 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
136 | struct davinci_mcbsp_dev *dev = rtd->dai->cpu_dai->private_data; | ||
137 | struct snd_soc_device *socdev = rtd->socdev; | 137 | struct snd_soc_device *socdev = rtd->socdev; |
138 | struct snd_soc_platform *platform = socdev->card->platform; | 138 | struct snd_soc_platform *platform = socdev->card->platform; |
139 | int playback = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK); | 139 | int playback = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK); |
@@ -202,12 +202,9 @@ static void davinci_mcbsp_start(struct snd_pcm_substream *substream) | |||
202 | davinci_mcbsp_write_reg(dev, DAVINCI_MCBSP_SPCR_REG, spcr); | 202 | davinci_mcbsp_write_reg(dev, DAVINCI_MCBSP_SPCR_REG, spcr); |
203 | } | 203 | } |
204 | 204 | ||
205 | static void davinci_mcbsp_stop(struct snd_pcm_substream *substream) | 205 | static void davinci_mcbsp_stop(struct davinci_mcbsp_dev *dev, int playback) |
206 | { | 206 | { |
207 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | ||
208 | struct davinci_mcbsp_dev *dev = rtd->dai->cpu_dai->private_data; | ||
209 | u32 spcr; | 207 | u32 spcr; |
210 | int playback = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK); | ||
211 | 208 | ||
212 | /* Reset transmitter/receiver and sample rate/frame sync generators */ | 209 | /* Reset transmitter/receiver and sample rate/frame sync generators */ |
213 | spcr = davinci_mcbsp_read_reg(dev, DAVINCI_MCBSP_SPCR_REG); | 210 | spcr = davinci_mcbsp_read_reg(dev, DAVINCI_MCBSP_SPCR_REG); |
@@ -427,18 +424,21 @@ static int davinci_i2s_hw_params(struct snd_pcm_substream *substream, | |||
427 | static int davinci_i2s_trigger(struct snd_pcm_substream *substream, int cmd, | 424 | static int davinci_i2s_trigger(struct snd_pcm_substream *substream, int cmd, |
428 | struct snd_soc_dai *dai) | 425 | struct snd_soc_dai *dai) |
429 | { | 426 | { |
427 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | ||
428 | struct davinci_mcbsp_dev *dev = rtd->dai->cpu_dai->private_data; | ||
430 | int ret = 0; | 429 | int ret = 0; |
430 | int playback = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK); | ||
431 | 431 | ||
432 | switch (cmd) { | 432 | switch (cmd) { |
433 | case SNDRV_PCM_TRIGGER_START: | 433 | case SNDRV_PCM_TRIGGER_START: |
434 | case SNDRV_PCM_TRIGGER_RESUME: | 434 | case SNDRV_PCM_TRIGGER_RESUME: |
435 | case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: | 435 | case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: |
436 | davinci_mcbsp_start(substream); | 436 | davinci_mcbsp_start(dev, substream); |
437 | break; | 437 | break; |
438 | case SNDRV_PCM_TRIGGER_STOP: | 438 | case SNDRV_PCM_TRIGGER_STOP: |
439 | case SNDRV_PCM_TRIGGER_SUSPEND: | 439 | case SNDRV_PCM_TRIGGER_SUSPEND: |
440 | case SNDRV_PCM_TRIGGER_PAUSE_PUSH: | 440 | case SNDRV_PCM_TRIGGER_PAUSE_PUSH: |
441 | davinci_mcbsp_stop(substream); | 441 | davinci_mcbsp_stop(dev, playback); |
442 | break; | 442 | break; |
443 | default: | 443 | default: |
444 | ret = -EINVAL; | 444 | ret = -EINVAL; |