diff options
Diffstat (limited to 'sound/soc/davinci/davinci-vcif.c')
-rw-r--r-- | sound/soc/davinci/davinci-vcif.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/sound/soc/davinci/davinci-vcif.c b/sound/soc/davinci/davinci-vcif.c index 48678533da7a..ea232f6a2c21 100644 --- a/sound/soc/davinci/davinci-vcif.c +++ b/sound/soc/davinci/davinci-vcif.c | |||
@@ -36,7 +36,6 @@ | |||
36 | 36 | ||
37 | #include "davinci-pcm.h" | 37 | #include "davinci-pcm.h" |
38 | #include "davinci-i2s.h" | 38 | #include "davinci-i2s.h" |
39 | #include "davinci-vcif.h" | ||
40 | 39 | ||
41 | #define MOD_REG_BIT(val, mask, set) do { \ | 40 | #define MOD_REG_BIT(val, mask, set) do { \ |
42 | if (set) { \ | 41 | if (set) { \ |
@@ -55,7 +54,7 @@ static void davinci_vcif_start(struct snd_pcm_substream *substream) | |||
55 | { | 54 | { |
56 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 55 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
57 | struct davinci_vcif_dev *davinci_vcif_dev = | 56 | struct davinci_vcif_dev *davinci_vcif_dev = |
58 | rtd->dai->cpu_dai->private_data; | 57 | snd_soc_dai_get_drvdata(rtd->cpu_dai); |
59 | struct davinci_vc *davinci_vc = davinci_vcif_dev->davinci_vc; | 58 | struct davinci_vc *davinci_vc = davinci_vcif_dev->davinci_vc; |
60 | u32 w; | 59 | u32 w; |
61 | 60 | ||
@@ -74,7 +73,7 @@ static void davinci_vcif_stop(struct snd_pcm_substream *substream) | |||
74 | { | 73 | { |
75 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 74 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
76 | struct davinci_vcif_dev *davinci_vcif_dev = | 75 | struct davinci_vcif_dev *davinci_vcif_dev = |
77 | rtd->dai->cpu_dai->private_data; | 76 | snd_soc_dai_get_drvdata(rtd->cpu_dai); |
78 | struct davinci_vc *davinci_vc = davinci_vcif_dev->davinci_vc; | 77 | struct davinci_vc *davinci_vc = davinci_vcif_dev->davinci_vc; |
79 | u32 w; | 78 | u32 w; |
80 | 79 | ||
@@ -92,12 +91,15 @@ static int davinci_vcif_hw_params(struct snd_pcm_substream *substream, | |||
92 | struct snd_pcm_hw_params *params, | 91 | struct snd_pcm_hw_params *params, |
93 | struct snd_soc_dai *dai) | 92 | struct snd_soc_dai *dai) |
94 | { | 93 | { |
95 | struct davinci_vcif_dev *davinci_vcif_dev = dai->private_data; | 94 | struct davinci_vcif_dev *davinci_vcif_dev = snd_soc_dai_get_drvdata(dai); |
96 | struct davinci_vc *davinci_vc = davinci_vcif_dev->davinci_vc; | 95 | struct davinci_vc *davinci_vc = davinci_vcif_dev->davinci_vc; |
97 | struct davinci_pcm_dma_params *dma_params = | 96 | struct davinci_pcm_dma_params *dma_params = |
98 | &davinci_vcif_dev->dma_params[substream->stream]; | 97 | &davinci_vcif_dev->dma_params[substream->stream]; |
99 | u32 w; | 98 | u32 w; |
100 | 99 | ||
100 | dai->capture_dma_data = davinci_vcif_dev->dma_params; | ||
101 | dai->playback_dma_data = davinci_vcif_dev->dma_params; | ||
102 | |||
101 | /* Restart the codec before setup */ | 103 | /* Restart the codec before setup */ |
102 | davinci_vcif_stop(substream); | 104 | davinci_vcif_stop(substream); |
103 | davinci_vcif_start(substream); | 105 | davinci_vcif_start(substream); |
@@ -179,8 +181,7 @@ static struct snd_soc_dai_ops davinci_vcif_dai_ops = { | |||
179 | .hw_params = davinci_vcif_hw_params, | 181 | .hw_params = davinci_vcif_hw_params, |
180 | }; | 182 | }; |
181 | 183 | ||
182 | struct snd_soc_dai davinci_vcif_dai = { | 184 | static struct snd_soc_dai_driver davinci_vcif_dai = { |
183 | .name = "davinci-vcif", | ||
184 | .playback = { | 185 | .playback = { |
185 | .channels_min = 1, | 186 | .channels_min = 1, |
186 | .channels_max = 2, | 187 | .channels_max = 2, |
@@ -194,7 +195,6 @@ struct snd_soc_dai davinci_vcif_dai = { | |||
194 | .ops = &davinci_vcif_dai_ops, | 195 | .ops = &davinci_vcif_dai_ops, |
195 | 196 | ||
196 | }; | 197 | }; |
197 | EXPORT_SYMBOL_GPL(davinci_vcif_dai); | ||
198 | 198 | ||
199 | static int davinci_vcif_probe(struct platform_device *pdev) | 199 | static int davinci_vcif_probe(struct platform_device *pdev) |
200 | { | 200 | { |
@@ -222,12 +222,9 @@ static int davinci_vcif_probe(struct platform_device *pdev) | |||
222 | davinci_vcif_dev->dma_params[SNDRV_PCM_STREAM_CAPTURE].dma_addr = | 222 | davinci_vcif_dev->dma_params[SNDRV_PCM_STREAM_CAPTURE].dma_addr = |
223 | davinci_vc->davinci_vcif.dma_rx_addr; | 223 | davinci_vc->davinci_vcif.dma_rx_addr; |
224 | 224 | ||
225 | davinci_vcif_dai.dev = &pdev->dev; | 225 | dev_set_drvdata(&pdev->dev, davinci_vcif_dev); |
226 | davinci_vcif_dai.capture.dma_data = davinci_vcif_dev->dma_params; | ||
227 | davinci_vcif_dai.playback.dma_data = davinci_vcif_dev->dma_params; | ||
228 | davinci_vcif_dai.private_data = davinci_vcif_dev; | ||
229 | 226 | ||
230 | ret = snd_soc_register_dai(&davinci_vcif_dai); | 227 | ret = snd_soc_register_dai(&pdev->dev, &davinci_vcif_dai); |
231 | if (ret != 0) { | 228 | if (ret != 0) { |
232 | dev_err(&pdev->dev, "could not register dai\n"); | 229 | dev_err(&pdev->dev, "could not register dai\n"); |
233 | goto fail; | 230 | goto fail; |
@@ -243,7 +240,7 @@ fail: | |||
243 | 240 | ||
244 | static int davinci_vcif_remove(struct platform_device *pdev) | 241 | static int davinci_vcif_remove(struct platform_device *pdev) |
245 | { | 242 | { |
246 | snd_soc_unregister_dai(&davinci_vcif_dai); | 243 | snd_soc_unregister_dai(&pdev->dev); |
247 | 244 | ||
248 | return 0; | 245 | return 0; |
249 | } | 246 | } |
@@ -252,7 +249,7 @@ static struct platform_driver davinci_vcif_driver = { | |||
252 | .probe = davinci_vcif_probe, | 249 | .probe = davinci_vcif_probe, |
253 | .remove = davinci_vcif_remove, | 250 | .remove = davinci_vcif_remove, |
254 | .driver = { | 251 | .driver = { |
255 | .name = "davinci_vcif", | 252 | .name = "davinci-vcif", |
256 | .owner = THIS_MODULE, | 253 | .owner = THIS_MODULE, |
257 | }, | 254 | }, |
258 | }; | 255 | }; |