diff options
author | Takashi Iwai <tiwai@suse.de> | 2014-09-03 10:57:41 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-09-03 10:57:41 -0400 |
commit | 05244d166739ae273fdc7a2151bdef61df49ca7d (patch) | |
tree | 9065482d33f445c90f0b99d29aa51485d1d96488 /sound/soc | |
parent | acf08081adb5e8fe0519eb97bb49797ef52614d6 (diff) | |
parent | f58f0cba15c2d0bfbc72b1eedd0a6294e8c83419 (diff) |
Merge tag 'asoc-v3.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v3.17
A few more driver specific fixes on top of the currently pending fixes
(which are already in your tree but not Linus').
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/au1x/psc-ac97.c | 140 | ||||
-rw-r--r-- | sound/soc/au1x/psc-i2s.c | 100 | ||||
-rw-r--r-- | sound/soc/au1x/psc.h | 22 | ||||
-rw-r--r-- | sound/soc/codecs/arizona.c | 10 | ||||
-rw-r--r-- | sound/soc/codecs/cs4265.c | 12 | ||||
-rw-r--r-- | sound/soc/codecs/da732x.h | 2 | ||||
-rw-r--r-- | sound/soc/codecs/rt5640.c | 1 | ||||
-rw-r--r-- | sound/soc/codecs/rt5677.c | 8 | ||||
-rw-r--r-- | sound/soc/generic/simple-card.c | 8 | ||||
-rw-r--r-- | sound/soc/omap/omap-twl4030.c | 2 | ||||
-rw-r--r-- | sound/soc/samsung/goni_wm8994.c | 2 | ||||
-rw-r--r-- | sound/soc/sh/rcar/gen.c | 2 | ||||
-rw-r--r-- | sound/soc/soc-core.c | 2 | ||||
-rw-r--r-- | sound/soc/tegra/tegra_asoc_utils.h | 2 |
14 files changed, 161 insertions, 152 deletions
diff --git a/sound/soc/au1x/psc-ac97.c b/sound/soc/au1x/psc-ac97.c index 986dcec79fa0..84f31e1f9d24 100644 --- a/sound/soc/au1x/psc-ac97.c +++ b/sound/soc/au1x/psc-ac97.c | |||
@@ -79,28 +79,28 @@ static unsigned short au1xpsc_ac97_read(struct snd_ac97 *ac97, | |||
79 | unsigned short retry, tmo; | 79 | unsigned short retry, tmo; |
80 | unsigned long data; | 80 | unsigned long data; |
81 | 81 | ||
82 | au_writel(PSC_AC97EVNT_CD, AC97_EVNT(pscdata)); | 82 | __raw_writel(PSC_AC97EVNT_CD, AC97_EVNT(pscdata)); |
83 | au_sync(); | 83 | wmb(); /* drain writebuffer */ |
84 | 84 | ||
85 | retry = AC97_RW_RETRIES; | 85 | retry = AC97_RW_RETRIES; |
86 | do { | 86 | do { |
87 | mutex_lock(&pscdata->lock); | 87 | mutex_lock(&pscdata->lock); |
88 | 88 | ||
89 | au_writel(PSC_AC97CDC_RD | PSC_AC97CDC_INDX(reg), | 89 | __raw_writel(PSC_AC97CDC_RD | PSC_AC97CDC_INDX(reg), |
90 | AC97_CDC(pscdata)); | 90 | AC97_CDC(pscdata)); |
91 | au_sync(); | 91 | wmb(); /* drain writebuffer */ |
92 | 92 | ||
93 | tmo = 20; | 93 | tmo = 20; |
94 | do { | 94 | do { |
95 | udelay(21); | 95 | udelay(21); |
96 | if (au_readl(AC97_EVNT(pscdata)) & PSC_AC97EVNT_CD) | 96 | if (__raw_readl(AC97_EVNT(pscdata)) & PSC_AC97EVNT_CD) |
97 | break; | 97 | break; |
98 | } while (--tmo); | 98 | } while (--tmo); |
99 | 99 | ||
100 | data = au_readl(AC97_CDC(pscdata)); | 100 | data = __raw_readl(AC97_CDC(pscdata)); |
101 | 101 | ||
102 | au_writel(PSC_AC97EVNT_CD, AC97_EVNT(pscdata)); | 102 | __raw_writel(PSC_AC97EVNT_CD, AC97_EVNT(pscdata)); |
103 | au_sync(); | 103 | wmb(); /* drain writebuffer */ |
104 | 104 | ||
105 | mutex_unlock(&pscdata->lock); | 105 | mutex_unlock(&pscdata->lock); |
106 | 106 | ||
@@ -119,26 +119,26 @@ static void au1xpsc_ac97_write(struct snd_ac97 *ac97, unsigned short reg, | |||
119 | struct au1xpsc_audio_data *pscdata = ac97_to_pscdata(ac97); | 119 | struct au1xpsc_audio_data *pscdata = ac97_to_pscdata(ac97); |
120 | unsigned int tmo, retry; | 120 | unsigned int tmo, retry; |
121 | 121 | ||
122 | au_writel(PSC_AC97EVNT_CD, AC97_EVNT(pscdata)); | 122 | __raw_writel(PSC_AC97EVNT_CD, AC97_EVNT(pscdata)); |
123 | au_sync(); | 123 | wmb(); /* drain writebuffer */ |
124 | 124 | ||
125 | retry = AC97_RW_RETRIES; | 125 | retry = AC97_RW_RETRIES; |
126 | do { | 126 | do { |
127 | mutex_lock(&pscdata->lock); | 127 | mutex_lock(&pscdata->lock); |
128 | 128 | ||
129 | au_writel(PSC_AC97CDC_INDX(reg) | (val & 0xffff), | 129 | __raw_writel(PSC_AC97CDC_INDX(reg) | (val & 0xffff), |
130 | AC97_CDC(pscdata)); | 130 | AC97_CDC(pscdata)); |
131 | au_sync(); | 131 | wmb(); /* drain writebuffer */ |
132 | 132 | ||
133 | tmo = 20; | 133 | tmo = 20; |
134 | do { | 134 | do { |
135 | udelay(21); | 135 | udelay(21); |
136 | if (au_readl(AC97_EVNT(pscdata)) & PSC_AC97EVNT_CD) | 136 | if (__raw_readl(AC97_EVNT(pscdata)) & PSC_AC97EVNT_CD) |
137 | break; | 137 | break; |
138 | } while (--tmo); | 138 | } while (--tmo); |
139 | 139 | ||
140 | au_writel(PSC_AC97EVNT_CD, AC97_EVNT(pscdata)); | 140 | __raw_writel(PSC_AC97EVNT_CD, AC97_EVNT(pscdata)); |
141 | au_sync(); | 141 | wmb(); /* drain writebuffer */ |
142 | 142 | ||
143 | mutex_unlock(&pscdata->lock); | 143 | mutex_unlock(&pscdata->lock); |
144 | } while (--retry && !tmo); | 144 | } while (--retry && !tmo); |
@@ -149,11 +149,11 @@ static void au1xpsc_ac97_warm_reset(struct snd_ac97 *ac97) | |||
149 | { | 149 | { |
150 | struct au1xpsc_audio_data *pscdata = ac97_to_pscdata(ac97); | 150 | struct au1xpsc_audio_data *pscdata = ac97_to_pscdata(ac97); |
151 | 151 | ||
152 | au_writel(PSC_AC97RST_SNC, AC97_RST(pscdata)); | 152 | __raw_writel(PSC_AC97RST_SNC, AC97_RST(pscdata)); |
153 | au_sync(); | 153 | wmb(); /* drain writebuffer */ |
154 | msleep(10); | 154 | msleep(10); |
155 | au_writel(0, AC97_RST(pscdata)); | 155 | __raw_writel(0, AC97_RST(pscdata)); |
156 | au_sync(); | 156 | wmb(); /* drain writebuffer */ |
157 | } | 157 | } |
158 | 158 | ||
159 | static void au1xpsc_ac97_cold_reset(struct snd_ac97 *ac97) | 159 | static void au1xpsc_ac97_cold_reset(struct snd_ac97 *ac97) |
@@ -162,25 +162,25 @@ static void au1xpsc_ac97_cold_reset(struct snd_ac97 *ac97) | |||
162 | int i; | 162 | int i; |
163 | 163 | ||
164 | /* disable PSC during cold reset */ | 164 | /* disable PSC during cold reset */ |
165 | au_writel(0, AC97_CFG(au1xpsc_ac97_workdata)); | 165 | __raw_writel(0, AC97_CFG(au1xpsc_ac97_workdata)); |
166 | au_sync(); | 166 | wmb(); /* drain writebuffer */ |
167 | au_writel(PSC_CTRL_DISABLE, PSC_CTRL(pscdata)); | 167 | __raw_writel(PSC_CTRL_DISABLE, PSC_CTRL(pscdata)); |
168 | au_sync(); | 168 | wmb(); /* drain writebuffer */ |
169 | 169 | ||
170 | /* issue cold reset */ | 170 | /* issue cold reset */ |
171 | au_writel(PSC_AC97RST_RST, AC97_RST(pscdata)); | 171 | __raw_writel(PSC_AC97RST_RST, AC97_RST(pscdata)); |
172 | au_sync(); | 172 | wmb(); /* drain writebuffer */ |
173 | msleep(500); | 173 | msleep(500); |
174 | au_writel(0, AC97_RST(pscdata)); | 174 | __raw_writel(0, AC97_RST(pscdata)); |
175 | au_sync(); | 175 | wmb(); /* drain writebuffer */ |
176 | 176 | ||
177 | /* enable PSC */ | 177 | /* enable PSC */ |
178 | au_writel(PSC_CTRL_ENABLE, PSC_CTRL(pscdata)); | 178 | __raw_writel(PSC_CTRL_ENABLE, PSC_CTRL(pscdata)); |
179 | au_sync(); | 179 | wmb(); /* drain writebuffer */ |
180 | 180 | ||
181 | /* wait for PSC to indicate it's ready */ | 181 | /* wait for PSC to indicate it's ready */ |
182 | i = 1000; | 182 | i = 1000; |
183 | while (!((au_readl(AC97_STAT(pscdata)) & PSC_AC97STAT_SR)) && (--i)) | 183 | while (!((__raw_readl(AC97_STAT(pscdata)) & PSC_AC97STAT_SR)) && (--i)) |
184 | msleep(1); | 184 | msleep(1); |
185 | 185 | ||
186 | if (i == 0) { | 186 | if (i == 0) { |
@@ -189,12 +189,12 @@ static void au1xpsc_ac97_cold_reset(struct snd_ac97 *ac97) | |||
189 | } | 189 | } |
190 | 190 | ||
191 | /* enable the ac97 function */ | 191 | /* enable the ac97 function */ |
192 | au_writel(pscdata->cfg | PSC_AC97CFG_DE_ENABLE, AC97_CFG(pscdata)); | 192 | __raw_writel(pscdata->cfg | PSC_AC97CFG_DE_ENABLE, AC97_CFG(pscdata)); |
193 | au_sync(); | 193 | wmb(); /* drain writebuffer */ |
194 | 194 | ||
195 | /* wait for AC97 core to become ready */ | 195 | /* wait for AC97 core to become ready */ |
196 | i = 1000; | 196 | i = 1000; |
197 | while (!((au_readl(AC97_STAT(pscdata)) & PSC_AC97STAT_DR)) && (--i)) | 197 | while (!((__raw_readl(AC97_STAT(pscdata)) & PSC_AC97STAT_DR)) && (--i)) |
198 | msleep(1); | 198 | msleep(1); |
199 | if (i == 0) | 199 | if (i == 0) |
200 | printk(KERN_ERR "au1xpsc-ac97: AC97 ctrl not ready\n"); | 200 | printk(KERN_ERR "au1xpsc-ac97: AC97 ctrl not ready\n"); |
@@ -218,8 +218,8 @@ static int au1xpsc_ac97_hw_params(struct snd_pcm_substream *substream, | |||
218 | 218 | ||
219 | chans = params_channels(params); | 219 | chans = params_channels(params); |
220 | 220 | ||
221 | r = ro = au_readl(AC97_CFG(pscdata)); | 221 | r = ro = __raw_readl(AC97_CFG(pscdata)); |
222 | stat = au_readl(AC97_STAT(pscdata)); | 222 | stat = __raw_readl(AC97_STAT(pscdata)); |
223 | 223 | ||
224 | /* already active? */ | 224 | /* already active? */ |
225 | if (stat & (PSC_AC97STAT_TB | PSC_AC97STAT_RB)) { | 225 | if (stat & (PSC_AC97STAT_TB | PSC_AC97STAT_RB)) { |
@@ -252,28 +252,28 @@ static int au1xpsc_ac97_hw_params(struct snd_pcm_substream *substream, | |||
252 | mutex_lock(&pscdata->lock); | 252 | mutex_lock(&pscdata->lock); |
253 | 253 | ||
254 | /* disable AC97 device controller first... */ | 254 | /* disable AC97 device controller first... */ |
255 | au_writel(r & ~PSC_AC97CFG_DE_ENABLE, AC97_CFG(pscdata)); | 255 | __raw_writel(r & ~PSC_AC97CFG_DE_ENABLE, AC97_CFG(pscdata)); |
256 | au_sync(); | 256 | wmb(); /* drain writebuffer */ |
257 | 257 | ||
258 | /* ...wait for it... */ | 258 | /* ...wait for it... */ |
259 | t = 100; | 259 | t = 100; |
260 | while ((au_readl(AC97_STAT(pscdata)) & PSC_AC97STAT_DR) && --t) | 260 | while ((__raw_readl(AC97_STAT(pscdata)) & PSC_AC97STAT_DR) && --t) |
261 | msleep(1); | 261 | msleep(1); |
262 | 262 | ||
263 | if (!t) | 263 | if (!t) |
264 | printk(KERN_ERR "PSC-AC97: can't disable!\n"); | 264 | printk(KERN_ERR "PSC-AC97: can't disable!\n"); |
265 | 265 | ||
266 | /* ...write config... */ | 266 | /* ...write config... */ |
267 | au_writel(r, AC97_CFG(pscdata)); | 267 | __raw_writel(r, AC97_CFG(pscdata)); |
268 | au_sync(); | 268 | wmb(); /* drain writebuffer */ |
269 | 269 | ||
270 | /* ...enable the AC97 controller again... */ | 270 | /* ...enable the AC97 controller again... */ |
271 | au_writel(r | PSC_AC97CFG_DE_ENABLE, AC97_CFG(pscdata)); | 271 | __raw_writel(r | PSC_AC97CFG_DE_ENABLE, AC97_CFG(pscdata)); |
272 | au_sync(); | 272 | wmb(); /* drain writebuffer */ |
273 | 273 | ||
274 | /* ...and wait for ready bit */ | 274 | /* ...and wait for ready bit */ |
275 | t = 100; | 275 | t = 100; |
276 | while ((!(au_readl(AC97_STAT(pscdata)) & PSC_AC97STAT_DR)) && --t) | 276 | while ((!(__raw_readl(AC97_STAT(pscdata)) & PSC_AC97STAT_DR)) && --t) |
277 | msleep(1); | 277 | msleep(1); |
278 | 278 | ||
279 | if (!t) | 279 | if (!t) |
@@ -300,21 +300,21 @@ static int au1xpsc_ac97_trigger(struct snd_pcm_substream *substream, | |||
300 | switch (cmd) { | 300 | switch (cmd) { |
301 | case SNDRV_PCM_TRIGGER_START: | 301 | case SNDRV_PCM_TRIGGER_START: |
302 | case SNDRV_PCM_TRIGGER_RESUME: | 302 | case SNDRV_PCM_TRIGGER_RESUME: |
303 | au_writel(AC97PCR_CLRFIFO(stype), AC97_PCR(pscdata)); | 303 | __raw_writel(AC97PCR_CLRFIFO(stype), AC97_PCR(pscdata)); |
304 | au_sync(); | 304 | wmb(); /* drain writebuffer */ |
305 | au_writel(AC97PCR_START(stype), AC97_PCR(pscdata)); | 305 | __raw_writel(AC97PCR_START(stype), AC97_PCR(pscdata)); |
306 | au_sync(); | 306 | wmb(); /* drain writebuffer */ |
307 | break; | 307 | break; |
308 | case SNDRV_PCM_TRIGGER_STOP: | 308 | case SNDRV_PCM_TRIGGER_STOP: |
309 | case SNDRV_PCM_TRIGGER_SUSPEND: | 309 | case SNDRV_PCM_TRIGGER_SUSPEND: |
310 | au_writel(AC97PCR_STOP(stype), AC97_PCR(pscdata)); | 310 | __raw_writel(AC97PCR_STOP(stype), AC97_PCR(pscdata)); |
311 | au_sync(); | 311 | wmb(); /* drain writebuffer */ |
312 | 312 | ||
313 | while (au_readl(AC97_STAT(pscdata)) & AC97STAT_BUSY(stype)) | 313 | while (__raw_readl(AC97_STAT(pscdata)) & AC97STAT_BUSY(stype)) |
314 | asm volatile ("nop"); | 314 | asm volatile ("nop"); |
315 | 315 | ||
316 | au_writel(AC97PCR_CLRFIFO(stype), AC97_PCR(pscdata)); | 316 | __raw_writel(AC97PCR_CLRFIFO(stype), AC97_PCR(pscdata)); |
317 | au_sync(); | 317 | wmb(); /* drain writebuffer */ |
318 | 318 | ||
319 | break; | 319 | break; |
320 | default: | 320 | default: |
@@ -398,13 +398,13 @@ static int au1xpsc_ac97_drvprobe(struct platform_device *pdev) | |||
398 | PSC_AC97CFG_DE_ENABLE; | 398 | PSC_AC97CFG_DE_ENABLE; |
399 | 399 | ||
400 | /* preserve PSC clock source set up by platform */ | 400 | /* preserve PSC clock source set up by platform */ |
401 | sel = au_readl(PSC_SEL(wd)) & PSC_SEL_CLK_MASK; | 401 | sel = __raw_readl(PSC_SEL(wd)) & PSC_SEL_CLK_MASK; |
402 | au_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); | 402 | __raw_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); |
403 | au_sync(); | 403 | wmb(); /* drain writebuffer */ |
404 | au_writel(0, PSC_SEL(wd)); | 404 | __raw_writel(0, PSC_SEL(wd)); |
405 | au_sync(); | 405 | wmb(); /* drain writebuffer */ |
406 | au_writel(PSC_SEL_PS_AC97MODE | sel, PSC_SEL(wd)); | 406 | __raw_writel(PSC_SEL_PS_AC97MODE | sel, PSC_SEL(wd)); |
407 | au_sync(); | 407 | wmb(); /* drain writebuffer */ |
408 | 408 | ||
409 | /* name the DAI like this device instance ("au1xpsc-ac97.PSCINDEX") */ | 409 | /* name the DAI like this device instance ("au1xpsc-ac97.PSCINDEX") */ |
410 | memcpy(&wd->dai_drv, &au1xpsc_ac97_dai_template, | 410 | memcpy(&wd->dai_drv, &au1xpsc_ac97_dai_template, |
@@ -433,10 +433,10 @@ static int au1xpsc_ac97_drvremove(struct platform_device *pdev) | |||
433 | snd_soc_unregister_component(&pdev->dev); | 433 | snd_soc_unregister_component(&pdev->dev); |
434 | 434 | ||
435 | /* disable PSC completely */ | 435 | /* disable PSC completely */ |
436 | au_writel(0, AC97_CFG(wd)); | 436 | __raw_writel(0, AC97_CFG(wd)); |
437 | au_sync(); | 437 | wmb(); /* drain writebuffer */ |
438 | au_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); | 438 | __raw_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); |
439 | au_sync(); | 439 | wmb(); /* drain writebuffer */ |
440 | 440 | ||
441 | au1xpsc_ac97_workdata = NULL; /* MDEV */ | 441 | au1xpsc_ac97_workdata = NULL; /* MDEV */ |
442 | 442 | ||
@@ -449,12 +449,12 @@ static int au1xpsc_ac97_drvsuspend(struct device *dev) | |||
449 | struct au1xpsc_audio_data *wd = dev_get_drvdata(dev); | 449 | struct au1xpsc_audio_data *wd = dev_get_drvdata(dev); |
450 | 450 | ||
451 | /* save interesting registers and disable PSC */ | 451 | /* save interesting registers and disable PSC */ |
452 | wd->pm[0] = au_readl(PSC_SEL(wd)); | 452 | wd->pm[0] = __raw_readl(PSC_SEL(wd)); |
453 | 453 | ||
454 | au_writel(0, AC97_CFG(wd)); | 454 | __raw_writel(0, AC97_CFG(wd)); |
455 | au_sync(); | 455 | wmb(); /* drain writebuffer */ |
456 | au_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); | 456 | __raw_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); |
457 | au_sync(); | 457 | wmb(); /* drain writebuffer */ |
458 | 458 | ||
459 | return 0; | 459 | return 0; |
460 | } | 460 | } |
@@ -464,8 +464,8 @@ static int au1xpsc_ac97_drvresume(struct device *dev) | |||
464 | struct au1xpsc_audio_data *wd = dev_get_drvdata(dev); | 464 | struct au1xpsc_audio_data *wd = dev_get_drvdata(dev); |
465 | 465 | ||
466 | /* restore PSC clock config */ | 466 | /* restore PSC clock config */ |
467 | au_writel(wd->pm[0] | PSC_SEL_PS_AC97MODE, PSC_SEL(wd)); | 467 | __raw_writel(wd->pm[0] | PSC_SEL_PS_AC97MODE, PSC_SEL(wd)); |
468 | au_sync(); | 468 | wmb(); /* drain writebuffer */ |
469 | 469 | ||
470 | /* after this point the ac97 core will cold-reset the codec. | 470 | /* after this point the ac97 core will cold-reset the codec. |
471 | * During cold-reset the PSC is reinitialized and the last | 471 | * During cold-reset the PSC is reinitialized and the last |
diff --git a/sound/soc/au1x/psc-i2s.c b/sound/soc/au1x/psc-i2s.c index fe923a7bdc39..814beffc56f2 100644 --- a/sound/soc/au1x/psc-i2s.c +++ b/sound/soc/au1x/psc-i2s.c | |||
@@ -120,10 +120,10 @@ static int au1xpsc_i2s_hw_params(struct snd_pcm_substream *substream, | |||
120 | unsigned long stat; | 120 | unsigned long stat; |
121 | 121 | ||
122 | /* check if the PSC is already streaming data */ | 122 | /* check if the PSC is already streaming data */ |
123 | stat = au_readl(I2S_STAT(pscdata)); | 123 | stat = __raw_readl(I2S_STAT(pscdata)); |
124 | if (stat & (PSC_I2SSTAT_TB | PSC_I2SSTAT_RB)) { | 124 | if (stat & (PSC_I2SSTAT_TB | PSC_I2SSTAT_RB)) { |
125 | /* reject parameters not currently set up in hardware */ | 125 | /* reject parameters not currently set up in hardware */ |
126 | cfgbits = au_readl(I2S_CFG(pscdata)); | 126 | cfgbits = __raw_readl(I2S_CFG(pscdata)); |
127 | if ((PSC_I2SCFG_GET_LEN(cfgbits) != params->msbits) || | 127 | if ((PSC_I2SCFG_GET_LEN(cfgbits) != params->msbits) || |
128 | (params_rate(params) != pscdata->rate)) | 128 | (params_rate(params) != pscdata->rate)) |
129 | return -EINVAL; | 129 | return -EINVAL; |
@@ -149,33 +149,33 @@ static int au1xpsc_i2s_configure(struct au1xpsc_audio_data *pscdata) | |||
149 | unsigned long tmo; | 149 | unsigned long tmo; |
150 | 150 | ||
151 | /* bring PSC out of sleep, and configure I2S unit */ | 151 | /* bring PSC out of sleep, and configure I2S unit */ |
152 | au_writel(PSC_CTRL_ENABLE, PSC_CTRL(pscdata)); | 152 | __raw_writel(PSC_CTRL_ENABLE, PSC_CTRL(pscdata)); |
153 | au_sync(); | 153 | wmb(); /* drain writebuffer */ |
154 | 154 | ||
155 | tmo = 1000000; | 155 | tmo = 1000000; |
156 | while (!(au_readl(I2S_STAT(pscdata)) & PSC_I2SSTAT_SR) && tmo) | 156 | while (!(__raw_readl(I2S_STAT(pscdata)) & PSC_I2SSTAT_SR) && tmo) |
157 | tmo--; | 157 | tmo--; |
158 | 158 | ||
159 | if (!tmo) | 159 | if (!tmo) |
160 | goto psc_err; | 160 | goto psc_err; |
161 | 161 | ||
162 | au_writel(0, I2S_CFG(pscdata)); | 162 | __raw_writel(0, I2S_CFG(pscdata)); |
163 | au_sync(); | 163 | wmb(); /* drain writebuffer */ |
164 | au_writel(pscdata->cfg | PSC_I2SCFG_DE_ENABLE, I2S_CFG(pscdata)); | 164 | __raw_writel(pscdata->cfg | PSC_I2SCFG_DE_ENABLE, I2S_CFG(pscdata)); |
165 | au_sync(); | 165 | wmb(); /* drain writebuffer */ |
166 | 166 | ||
167 | /* wait for I2S controller to become ready */ | 167 | /* wait for I2S controller to become ready */ |
168 | tmo = 1000000; | 168 | tmo = 1000000; |
169 | while (!(au_readl(I2S_STAT(pscdata)) & PSC_I2SSTAT_DR) && tmo) | 169 | while (!(__raw_readl(I2S_STAT(pscdata)) & PSC_I2SSTAT_DR) && tmo) |
170 | tmo--; | 170 | tmo--; |
171 | 171 | ||
172 | if (tmo) | 172 | if (tmo) |
173 | return 0; | 173 | return 0; |
174 | 174 | ||
175 | psc_err: | 175 | psc_err: |
176 | au_writel(0, I2S_CFG(pscdata)); | 176 | __raw_writel(0, I2S_CFG(pscdata)); |
177 | au_writel(PSC_CTRL_SUSPEND, PSC_CTRL(pscdata)); | 177 | __raw_writel(PSC_CTRL_SUSPEND, PSC_CTRL(pscdata)); |
178 | au_sync(); | 178 | wmb(); /* drain writebuffer */ |
179 | return -ETIMEDOUT; | 179 | return -ETIMEDOUT; |
180 | } | 180 | } |
181 | 181 | ||
@@ -187,26 +187,26 @@ static int au1xpsc_i2s_start(struct au1xpsc_audio_data *pscdata, int stype) | |||
187 | ret = 0; | 187 | ret = 0; |
188 | 188 | ||
189 | /* if both TX and RX are idle, configure the PSC */ | 189 | /* if both TX and RX are idle, configure the PSC */ |
190 | stat = au_readl(I2S_STAT(pscdata)); | 190 | stat = __raw_readl(I2S_STAT(pscdata)); |
191 | if (!(stat & (PSC_I2SSTAT_TB | PSC_I2SSTAT_RB))) { | 191 | if (!(stat & (PSC_I2SSTAT_TB | PSC_I2SSTAT_RB))) { |
192 | ret = au1xpsc_i2s_configure(pscdata); | 192 | ret = au1xpsc_i2s_configure(pscdata); |
193 | if (ret) | 193 | if (ret) |
194 | goto out; | 194 | goto out; |
195 | } | 195 | } |
196 | 196 | ||
197 | au_writel(I2SPCR_CLRFIFO(stype), I2S_PCR(pscdata)); | 197 | __raw_writel(I2SPCR_CLRFIFO(stype), I2S_PCR(pscdata)); |
198 | au_sync(); | 198 | wmb(); /* drain writebuffer */ |
199 | au_writel(I2SPCR_START(stype), I2S_PCR(pscdata)); | 199 | __raw_writel(I2SPCR_START(stype), I2S_PCR(pscdata)); |
200 | au_sync(); | 200 | wmb(); /* drain writebuffer */ |
201 | 201 | ||
202 | /* wait for start confirmation */ | 202 | /* wait for start confirmation */ |
203 | tmo = 1000000; | 203 | tmo = 1000000; |
204 | while (!(au_readl(I2S_STAT(pscdata)) & I2SSTAT_BUSY(stype)) && tmo) | 204 | while (!(__raw_readl(I2S_STAT(pscdata)) & I2SSTAT_BUSY(stype)) && tmo) |
205 | tmo--; | 205 | tmo--; |
206 | 206 | ||
207 | if (!tmo) { | 207 | if (!tmo) { |
208 | au_writel(I2SPCR_STOP(stype), I2S_PCR(pscdata)); | 208 | __raw_writel(I2SPCR_STOP(stype), I2S_PCR(pscdata)); |
209 | au_sync(); | 209 | wmb(); /* drain writebuffer */ |
210 | ret = -ETIMEDOUT; | 210 | ret = -ETIMEDOUT; |
211 | } | 211 | } |
212 | out: | 212 | out: |
@@ -217,21 +217,21 @@ static int au1xpsc_i2s_stop(struct au1xpsc_audio_data *pscdata, int stype) | |||
217 | { | 217 | { |
218 | unsigned long tmo, stat; | 218 | unsigned long tmo, stat; |
219 | 219 | ||
220 | au_writel(I2SPCR_STOP(stype), I2S_PCR(pscdata)); | 220 | __raw_writel(I2SPCR_STOP(stype), I2S_PCR(pscdata)); |
221 | au_sync(); | 221 | wmb(); /* drain writebuffer */ |
222 | 222 | ||
223 | /* wait for stop confirmation */ | 223 | /* wait for stop confirmation */ |
224 | tmo = 1000000; | 224 | tmo = 1000000; |
225 | while ((au_readl(I2S_STAT(pscdata)) & I2SSTAT_BUSY(stype)) && tmo) | 225 | while ((__raw_readl(I2S_STAT(pscdata)) & I2SSTAT_BUSY(stype)) && tmo) |
226 | tmo--; | 226 | tmo--; |
227 | 227 | ||
228 | /* if both TX and RX are idle, disable PSC */ | 228 | /* if both TX and RX are idle, disable PSC */ |
229 | stat = au_readl(I2S_STAT(pscdata)); | 229 | stat = __raw_readl(I2S_STAT(pscdata)); |
230 | if (!(stat & (PSC_I2SSTAT_TB | PSC_I2SSTAT_RB))) { | 230 | if (!(stat & (PSC_I2SSTAT_TB | PSC_I2SSTAT_RB))) { |
231 | au_writel(0, I2S_CFG(pscdata)); | 231 | __raw_writel(0, I2S_CFG(pscdata)); |
232 | au_sync(); | 232 | wmb(); /* drain writebuffer */ |
233 | au_writel(PSC_CTRL_SUSPEND, PSC_CTRL(pscdata)); | 233 | __raw_writel(PSC_CTRL_SUSPEND, PSC_CTRL(pscdata)); |
234 | au_sync(); | 234 | wmb(); /* drain writebuffer */ |
235 | } | 235 | } |
236 | return 0; | 236 | return 0; |
237 | } | 237 | } |
@@ -332,12 +332,12 @@ static int au1xpsc_i2s_drvprobe(struct platform_device *pdev) | |||
332 | /* preserve PSC clock source set up by platform (dev.platform_data | 332 | /* preserve PSC clock source set up by platform (dev.platform_data |
333 | * is already occupied by soc layer) | 333 | * is already occupied by soc layer) |
334 | */ | 334 | */ |
335 | sel = au_readl(PSC_SEL(wd)) & PSC_SEL_CLK_MASK; | 335 | sel = __raw_readl(PSC_SEL(wd)) & PSC_SEL_CLK_MASK; |
336 | au_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); | 336 | __raw_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); |
337 | au_sync(); | 337 | wmb(); /* drain writebuffer */ |
338 | au_writel(PSC_SEL_PS_I2SMODE | sel, PSC_SEL(wd)); | 338 | __raw_writel(PSC_SEL_PS_I2SMODE | sel, PSC_SEL(wd)); |
339 | au_writel(0, I2S_CFG(wd)); | 339 | __raw_writel(0, I2S_CFG(wd)); |
340 | au_sync(); | 340 | wmb(); /* drain writebuffer */ |
341 | 341 | ||
342 | /* preconfigure: set max rx/tx fifo depths */ | 342 | /* preconfigure: set max rx/tx fifo depths */ |
343 | wd->cfg |= PSC_I2SCFG_RT_FIFO8 | PSC_I2SCFG_TT_FIFO8; | 343 | wd->cfg |= PSC_I2SCFG_RT_FIFO8 | PSC_I2SCFG_TT_FIFO8; |
@@ -364,10 +364,10 @@ static int au1xpsc_i2s_drvremove(struct platform_device *pdev) | |||
364 | 364 | ||
365 | snd_soc_unregister_component(&pdev->dev); | 365 | snd_soc_unregister_component(&pdev->dev); |
366 | 366 | ||
367 | au_writel(0, I2S_CFG(wd)); | 367 | __raw_writel(0, I2S_CFG(wd)); |
368 | au_sync(); | 368 | wmb(); /* drain writebuffer */ |
369 | au_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); | 369 | __raw_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); |
370 | au_sync(); | 370 | wmb(); /* drain writebuffer */ |
371 | 371 | ||
372 | return 0; | 372 | return 0; |
373 | } | 373 | } |
@@ -378,12 +378,12 @@ static int au1xpsc_i2s_drvsuspend(struct device *dev) | |||
378 | struct au1xpsc_audio_data *wd = dev_get_drvdata(dev); | 378 | struct au1xpsc_audio_data *wd = dev_get_drvdata(dev); |
379 | 379 | ||
380 | /* save interesting register and disable PSC */ | 380 | /* save interesting register and disable PSC */ |
381 | wd->pm[0] = au_readl(PSC_SEL(wd)); | 381 | wd->pm[0] = __raw_readl(PSC_SEL(wd)); |
382 | 382 | ||
383 | au_writel(0, I2S_CFG(wd)); | 383 | __raw_writel(0, I2S_CFG(wd)); |
384 | au_sync(); | 384 | wmb(); /* drain writebuffer */ |
385 | au_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); | 385 | __raw_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); |
386 | au_sync(); | 386 | wmb(); /* drain writebuffer */ |
387 | 387 | ||
388 | return 0; | 388 | return 0; |
389 | } | 389 | } |
@@ -393,12 +393,12 @@ static int au1xpsc_i2s_drvresume(struct device *dev) | |||
393 | struct au1xpsc_audio_data *wd = dev_get_drvdata(dev); | 393 | struct au1xpsc_audio_data *wd = dev_get_drvdata(dev); |
394 | 394 | ||
395 | /* select I2S mode and PSC clock */ | 395 | /* select I2S mode and PSC clock */ |
396 | au_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); | 396 | __raw_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd)); |
397 | au_sync(); | 397 | wmb(); /* drain writebuffer */ |
398 | au_writel(0, PSC_SEL(wd)); | 398 | __raw_writel(0, PSC_SEL(wd)); |
399 | au_sync(); | 399 | wmb(); /* drain writebuffer */ |
400 | au_writel(wd->pm[0], PSC_SEL(wd)); | 400 | __raw_writel(wd->pm[0], PSC_SEL(wd)); |
401 | au_sync(); | 401 | wmb(); /* drain writebuffer */ |
402 | 402 | ||
403 | return 0; | 403 | return 0; |
404 | } | 404 | } |
diff --git a/sound/soc/au1x/psc.h b/sound/soc/au1x/psc.h index b16b2e02e0c9..74dffeb641fa 100644 --- a/sound/soc/au1x/psc.h +++ b/sound/soc/au1x/psc.h | |||
@@ -27,16 +27,16 @@ struct au1xpsc_audio_data { | |||
27 | }; | 27 | }; |
28 | 28 | ||
29 | /* easy access macros */ | 29 | /* easy access macros */ |
30 | #define PSC_CTRL(x) ((unsigned long)((x)->mmio) + PSC_CTRL_OFFSET) | 30 | #define PSC_CTRL(x) ((x)->mmio + PSC_CTRL_OFFSET) |
31 | #define PSC_SEL(x) ((unsigned long)((x)->mmio) + PSC_SEL_OFFSET) | 31 | #define PSC_SEL(x) ((x)->mmio + PSC_SEL_OFFSET) |
32 | #define I2S_STAT(x) ((unsigned long)((x)->mmio) + PSC_I2SSTAT_OFFSET) | 32 | #define I2S_STAT(x) ((x)->mmio + PSC_I2SSTAT_OFFSET) |
33 | #define I2S_CFG(x) ((unsigned long)((x)->mmio) + PSC_I2SCFG_OFFSET) | 33 | #define I2S_CFG(x) ((x)->mmio + PSC_I2SCFG_OFFSET) |
34 | #define I2S_PCR(x) ((unsigned long)((x)->mmio) + PSC_I2SPCR_OFFSET) | 34 | #define I2S_PCR(x) ((x)->mmio + PSC_I2SPCR_OFFSET) |
35 | #define AC97_CFG(x) ((unsigned long)((x)->mmio) + PSC_AC97CFG_OFFSET) | 35 | #define AC97_CFG(x) ((x)->mmio + PSC_AC97CFG_OFFSET) |
36 | #define AC97_CDC(x) ((unsigned long)((x)->mmio) + PSC_AC97CDC_OFFSET) | 36 | #define AC97_CDC(x) ((x)->mmio + PSC_AC97CDC_OFFSET) |
37 | #define AC97_EVNT(x) ((unsigned long)((x)->mmio) + PSC_AC97EVNT_OFFSET) | 37 | #define AC97_EVNT(x) ((x)->mmio + PSC_AC97EVNT_OFFSET) |
38 | #define AC97_PCR(x) ((unsigned long)((x)->mmio) + PSC_AC97PCR_OFFSET) | 38 | #define AC97_PCR(x) ((x)->mmio + PSC_AC97PCR_OFFSET) |
39 | #define AC97_RST(x) ((unsigned long)((x)->mmio) + PSC_AC97RST_OFFSET) | 39 | #define AC97_RST(x) ((x)->mmio + PSC_AC97RST_OFFSET) |
40 | #define AC97_STAT(x) ((unsigned long)((x)->mmio) + PSC_AC97STAT_OFFSET) | 40 | #define AC97_STAT(x) ((x)->mmio + PSC_AC97STAT_OFFSET) |
41 | 41 | ||
42 | #endif | 42 | #endif |
diff --git a/sound/soc/codecs/arizona.c b/sound/soc/codecs/arizona.c index 4dfab9573a95..2c71f16bd661 100644 --- a/sound/soc/codecs/arizona.c +++ b/sound/soc/codecs/arizona.c | |||
@@ -107,7 +107,7 @@ static int arizona_spk_ev(struct snd_soc_dapm_widget *w, | |||
107 | break; | 107 | break; |
108 | case SND_SOC_DAPM_POST_PMU: | 108 | case SND_SOC_DAPM_POST_PMU: |
109 | val = snd_soc_read(codec, ARIZONA_INTERRUPT_RAW_STATUS_3); | 109 | val = snd_soc_read(codec, ARIZONA_INTERRUPT_RAW_STATUS_3); |
110 | if (val & ARIZONA_SPK_SHUTDOWN_STS) { | 110 | if (val & ARIZONA_SPK_OVERHEAT_STS) { |
111 | dev_crit(arizona->dev, | 111 | dev_crit(arizona->dev, |
112 | "Speaker not enabled due to temperature\n"); | 112 | "Speaker not enabled due to temperature\n"); |
113 | return -EBUSY; | 113 | return -EBUSY; |
@@ -159,7 +159,7 @@ static irqreturn_t arizona_thermal_warn(int irq, void *data) | |||
159 | if (ret != 0) { | 159 | if (ret != 0) { |
160 | dev_err(arizona->dev, "Failed to read thermal status: %d\n", | 160 | dev_err(arizona->dev, "Failed to read thermal status: %d\n", |
161 | ret); | 161 | ret); |
162 | } else if (val & ARIZONA_SPK_SHUTDOWN_WARN_STS) { | 162 | } else if (val & ARIZONA_SPK_OVERHEAT_WARN_STS) { |
163 | dev_crit(arizona->dev, "Thermal warning\n"); | 163 | dev_crit(arizona->dev, "Thermal warning\n"); |
164 | } | 164 | } |
165 | 165 | ||
@@ -177,7 +177,7 @@ static irqreturn_t arizona_thermal_shutdown(int irq, void *data) | |||
177 | if (ret != 0) { | 177 | if (ret != 0) { |
178 | dev_err(arizona->dev, "Failed to read thermal status: %d\n", | 178 | dev_err(arizona->dev, "Failed to read thermal status: %d\n", |
179 | ret); | 179 | ret); |
180 | } else if (val & ARIZONA_SPK_SHUTDOWN_STS) { | 180 | } else if (val & ARIZONA_SPK_OVERHEAT_STS) { |
181 | dev_crit(arizona->dev, "Thermal shutdown\n"); | 181 | dev_crit(arizona->dev, "Thermal shutdown\n"); |
182 | ret = regmap_update_bits(arizona->regmap, | 182 | ret = regmap_update_bits(arizona->regmap, |
183 | ARIZONA_OUTPUT_ENABLES_1, | 183 | ARIZONA_OUTPUT_ENABLES_1, |
@@ -223,7 +223,7 @@ int arizona_init_spk(struct snd_soc_codec *codec) | |||
223 | break; | 223 | break; |
224 | } | 224 | } |
225 | 225 | ||
226 | ret = arizona_request_irq(arizona, ARIZONA_IRQ_SPK_SHUTDOWN_WARN, | 226 | ret = arizona_request_irq(arizona, ARIZONA_IRQ_SPK_OVERHEAT_WARN, |
227 | "Thermal warning", arizona_thermal_warn, | 227 | "Thermal warning", arizona_thermal_warn, |
228 | arizona); | 228 | arizona); |
229 | if (ret != 0) | 229 | if (ret != 0) |
@@ -231,7 +231,7 @@ int arizona_init_spk(struct snd_soc_codec *codec) | |||
231 | "Failed to get thermal warning IRQ: %d\n", | 231 | "Failed to get thermal warning IRQ: %d\n", |
232 | ret); | 232 | ret); |
233 | 233 | ||
234 | ret = arizona_request_irq(arizona, ARIZONA_IRQ_SPK_SHUTDOWN, | 234 | ret = arizona_request_irq(arizona, ARIZONA_IRQ_SPK_OVERHEAT, |
235 | "Thermal shutdown", arizona_thermal_shutdown, | 235 | "Thermal shutdown", arizona_thermal_shutdown, |
236 | arizona); | 236 | arizona); |
237 | if (ret != 0) | 237 | if (ret != 0) |
diff --git a/sound/soc/codecs/cs4265.c b/sound/soc/codecs/cs4265.c index a20b30ca52c0..98523209f739 100644 --- a/sound/soc/codecs/cs4265.c +++ b/sound/soc/codecs/cs4265.c | |||
@@ -282,10 +282,10 @@ static const struct cs4265_clk_para clk_map_table[] = { | |||
282 | 282 | ||
283 | /*64k*/ | 283 | /*64k*/ |
284 | {8192000, 64000, 1, 0}, | 284 | {8192000, 64000, 1, 0}, |
285 | {1228800, 64000, 1, 1}, | 285 | {12288000, 64000, 1, 1}, |
286 | {1693440, 64000, 1, 2}, | 286 | {16934400, 64000, 1, 2}, |
287 | {2457600, 64000, 1, 3}, | 287 | {24576000, 64000, 1, 3}, |
288 | {3276800, 64000, 1, 4}, | 288 | {32768000, 64000, 1, 4}, |
289 | 289 | ||
290 | /* 88.2k */ | 290 | /* 88.2k */ |
291 | {11289600, 88200, 1, 0}, | 291 | {11289600, 88200, 1, 0}, |
@@ -435,10 +435,10 @@ static int cs4265_pcm_hw_params(struct snd_pcm_substream *substream, | |||
435 | index = cs4265_get_clk_index(cs4265->sysclk, params_rate(params)); | 435 | index = cs4265_get_clk_index(cs4265->sysclk, params_rate(params)); |
436 | if (index >= 0) { | 436 | if (index >= 0) { |
437 | snd_soc_update_bits(codec, CS4265_ADC_CTL, | 437 | snd_soc_update_bits(codec, CS4265_ADC_CTL, |
438 | CS4265_ADC_FM, clk_map_table[index].fm_mode); | 438 | CS4265_ADC_FM, clk_map_table[index].fm_mode << 6); |
439 | snd_soc_update_bits(codec, CS4265_MCLK_FREQ, | 439 | snd_soc_update_bits(codec, CS4265_MCLK_FREQ, |
440 | CS4265_MCLK_FREQ_MASK, | 440 | CS4265_MCLK_FREQ_MASK, |
441 | clk_map_table[index].mclkdiv); | 441 | clk_map_table[index].mclkdiv << 4); |
442 | 442 | ||
443 | } else { | 443 | } else { |
444 | dev_err(codec->dev, "can't get correct mclk\n"); | 444 | dev_err(codec->dev, "can't get correct mclk\n"); |
diff --git a/sound/soc/codecs/da732x.h b/sound/soc/codecs/da732x.h index 1dceafeec415..f586cbd30b77 100644 --- a/sound/soc/codecs/da732x.h +++ b/sound/soc/codecs/da732x.h | |||
@@ -11,7 +11,7 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #ifndef __DA732X_H_ | 13 | #ifndef __DA732X_H_ |
14 | #define __DA732X_H | 14 | #define __DA732X_H_ |
15 | 15 | ||
16 | #include <sound/soc.h> | 16 | #include <sound/soc.h> |
17 | 17 | ||
diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c index 6bc6efdec550..f1ec6e6bd08a 100644 --- a/sound/soc/codecs/rt5640.c +++ b/sound/soc/codecs/rt5640.c | |||
@@ -2059,6 +2059,7 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5640 = { | |||
2059 | static const struct regmap_config rt5640_regmap = { | 2059 | static const struct regmap_config rt5640_regmap = { |
2060 | .reg_bits = 8, | 2060 | .reg_bits = 8, |
2061 | .val_bits = 16, | 2061 | .val_bits = 16, |
2062 | .use_single_rw = true, | ||
2062 | 2063 | ||
2063 | .max_register = RT5640_VENDOR_ID2 + 1 + (ARRAY_SIZE(rt5640_ranges) * | 2064 | .max_register = RT5640_VENDOR_ID2 + 1 + (ARRAY_SIZE(rt5640_ranges) * |
2064 | RT5640_PR_SPACING), | 2065 | RT5640_PR_SPACING), |
diff --git a/sound/soc/codecs/rt5677.c b/sound/soc/codecs/rt5677.c index 67f14556462f..5337c448b5e3 100644 --- a/sound/soc/codecs/rt5677.c +++ b/sound/soc/codecs/rt5677.c | |||
@@ -2135,10 +2135,10 @@ static const struct snd_soc_dapm_route rt5677_dapm_routes[] = { | |||
2135 | { "BST2", NULL, "IN2P" }, | 2135 | { "BST2", NULL, "IN2P" }, |
2136 | { "BST2", NULL, "IN2N" }, | 2136 | { "BST2", NULL, "IN2N" }, |
2137 | 2137 | ||
2138 | { "IN1P", NULL, "micbias1" }, | 2138 | { "IN1P", NULL, "MICBIAS1" }, |
2139 | { "IN1N", NULL, "micbias1" }, | 2139 | { "IN1N", NULL, "MICBIAS1" }, |
2140 | { "IN2P", NULL, "micbias1" }, | 2140 | { "IN2P", NULL, "MICBIAS1" }, |
2141 | { "IN2N", NULL, "micbias1" }, | 2141 | { "IN2N", NULL, "MICBIAS1" }, |
2142 | 2142 | ||
2143 | { "ADC 1", NULL, "BST1" }, | 2143 | { "ADC 1", NULL, "BST1" }, |
2144 | { "ADC 1", NULL, "ADC 1 power" }, | 2144 | { "ADC 1", NULL, "ADC 1 power" }, |
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index 159e517fa09a..cef7776b712c 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c | |||
@@ -481,12 +481,19 @@ static int asoc_simple_card_probe(struct platform_device *pdev) | |||
481 | snd_soc_card_set_drvdata(&priv->snd_card, priv); | 481 | snd_soc_card_set_drvdata(&priv->snd_card, priv); |
482 | 482 | ||
483 | ret = devm_snd_soc_register_card(&pdev->dev, &priv->snd_card); | 483 | ret = devm_snd_soc_register_card(&pdev->dev, &priv->snd_card); |
484 | if (ret >= 0) | ||
485 | return ret; | ||
484 | 486 | ||
485 | err: | 487 | err: |
486 | asoc_simple_card_unref(pdev); | 488 | asoc_simple_card_unref(pdev); |
487 | return ret; | 489 | return ret; |
488 | } | 490 | } |
489 | 491 | ||
492 | static int asoc_simple_card_remove(struct platform_device *pdev) | ||
493 | { | ||
494 | return asoc_simple_card_unref(pdev); | ||
495 | } | ||
496 | |||
490 | static const struct of_device_id asoc_simple_of_match[] = { | 497 | static const struct of_device_id asoc_simple_of_match[] = { |
491 | { .compatible = "simple-audio-card", }, | 498 | { .compatible = "simple-audio-card", }, |
492 | {}, | 499 | {}, |
@@ -500,6 +507,7 @@ static struct platform_driver asoc_simple_card = { | |||
500 | .of_match_table = asoc_simple_of_match, | 507 | .of_match_table = asoc_simple_of_match, |
501 | }, | 508 | }, |
502 | .probe = asoc_simple_card_probe, | 509 | .probe = asoc_simple_card_probe, |
510 | .remove = asoc_simple_card_remove, | ||
503 | }; | 511 | }; |
504 | 512 | ||
505 | module_platform_driver(asoc_simple_card); | 513 | module_platform_driver(asoc_simple_card); |
diff --git a/sound/soc/omap/omap-twl4030.c b/sound/soc/omap/omap-twl4030.c index f8a6adc2d81c..4336d1831485 100644 --- a/sound/soc/omap/omap-twl4030.c +++ b/sound/soc/omap/omap-twl4030.c | |||
@@ -260,7 +260,7 @@ static struct snd_soc_dai_link omap_twl4030_dai_links[] = { | |||
260 | .stream_name = "TWL4030 Voice", | 260 | .stream_name = "TWL4030 Voice", |
261 | .cpu_dai_name = "omap-mcbsp.3", | 261 | .cpu_dai_name = "omap-mcbsp.3", |
262 | .codec_dai_name = "twl4030-voice", | 262 | .codec_dai_name = "twl4030-voice", |
263 | .platform_name = "omap-mcbsp.2", | 263 | .platform_name = "omap-mcbsp.3", |
264 | .codec_name = "twl4030-codec", | 264 | .codec_name = "twl4030-codec", |
265 | .dai_fmt = SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_IB_NF | | 265 | .dai_fmt = SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_IB_NF | |
266 | SND_SOC_DAIFMT_CBM_CFM, | 266 | SND_SOC_DAIFMT_CBM_CFM, |
diff --git a/sound/soc/samsung/goni_wm8994.c b/sound/soc/samsung/goni_wm8994.c index 9506d7617223..3b527dcfc0aa 100644 --- a/sound/soc/samsung/goni_wm8994.c +++ b/sound/soc/samsung/goni_wm8994.c | |||
@@ -16,7 +16,7 @@ | |||
16 | #include <sound/jack.h> | 16 | #include <sound/jack.h> |
17 | 17 | ||
18 | #include <asm/mach-types.h> | 18 | #include <asm/mach-types.h> |
19 | #include <mach/gpio.h> | 19 | #include <mach/gpio-samsung.h> |
20 | 20 | ||
21 | #include "../codecs/wm8994.h" | 21 | #include "../codecs/wm8994.h" |
22 | 22 | ||
diff --git a/sound/soc/sh/rcar/gen.c b/sound/soc/sh/rcar/gen.c index 3fdf3be7b99a..f95e7ab135e8 100644 --- a/sound/soc/sh/rcar/gen.c +++ b/sound/soc/sh/rcar/gen.c | |||
@@ -247,7 +247,7 @@ rsnd_gen2_dma_addr(struct rsnd_priv *priv, | |||
247 | }; | 247 | }; |
248 | 248 | ||
249 | /* it shouldn't happen */ | 249 | /* it shouldn't happen */ |
250 | if (use_dvc & !use_src) | 250 | if (use_dvc && !use_src) |
251 | dev_err(dev, "DVC is selected without SRC\n"); | 251 | dev_err(dev, "DVC is selected without SRC\n"); |
252 | 252 | ||
253 | /* use SSIU or SSI ? */ | 253 | /* use SSIU or SSI ? */ |
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index d4bfd4a9076f..889f4e3d35dc 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c | |||
@@ -1325,7 +1325,7 @@ static int soc_post_component_init(struct snd_soc_pcm_runtime *rtd, | |||
1325 | device_initialize(rtd->dev); | 1325 | device_initialize(rtd->dev); |
1326 | rtd->dev->parent = rtd->card->dev; | 1326 | rtd->dev->parent = rtd->card->dev; |
1327 | rtd->dev->release = rtd_release; | 1327 | rtd->dev->release = rtd_release; |
1328 | rtd->dev->init_name = name; | 1328 | dev_set_name(rtd->dev, "%s", name); |
1329 | dev_set_drvdata(rtd->dev, rtd); | 1329 | dev_set_drvdata(rtd->dev, rtd); |
1330 | mutex_init(&rtd->pcm_mutex); | 1330 | mutex_init(&rtd->pcm_mutex); |
1331 | INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_PLAYBACK].be_clients); | 1331 | INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_PLAYBACK].be_clients); |
diff --git a/sound/soc/tegra/tegra_asoc_utils.h b/sound/soc/tegra/tegra_asoc_utils.h index 9577121ce971..ca8037634100 100644 --- a/sound/soc/tegra/tegra_asoc_utils.h +++ b/sound/soc/tegra/tegra_asoc_utils.h | |||
@@ -21,7 +21,7 @@ | |||
21 | */ | 21 | */ |
22 | 22 | ||
23 | #ifndef __TEGRA_ASOC_UTILS_H__ | 23 | #ifndef __TEGRA_ASOC_UTILS_H__ |
24 | #define __TEGRA_ASOC_UTILS_H_ | 24 | #define __TEGRA_ASOC_UTILS_H__ |
25 | 25 | ||
26 | struct clk; | 26 | struct clk; |
27 | struct device; | 27 | struct device; |