aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Mandarino <fmandarino@endrelia.com>2007-02-12 08:06:22 -0500
committerJaroslav Kysela <perex@suse.cz>2007-02-14 02:38:34 -0500
commitfa8f878701888666c124e21d77bf7f3ba2dd2359 (patch)
tree8c7bdfc5d6132acfcc84bc451bea90d99edd7e9b
parent2a40534348987346dae1c68c225eff7bc19ff529 (diff)
[ALSA] Change AT91 PDC register defines for 2.6.20 kernel
Use the new PDC register name defines that were updated in Linux 2.6.20. Signed-off-by: Frank Mandarino <fmandarino@endrelia.com> Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
-rw-r--r--sound/soc/at91/at91-i2s.c43
-rw-r--r--sound/soc/at91/at91-pcm.c20
2 files changed, 32 insertions, 31 deletions
diff --git a/sound/soc/at91/at91-i2s.c b/sound/soc/at91/at91-i2s.c
index fcc544a96ba3..9fc0c0388881 100644
--- a/sound/soc/at91/at91-i2s.c
+++ b/sound/soc/at91/at91-i2s.c
@@ -20,6 +20,8 @@
20#include <linux/device.h> 20#include <linux/device.h>
21#include <linux/delay.h> 21#include <linux/delay.h>
22#include <linux/clk.h> 22#include <linux/clk.h>
23#include <linux/atmel_pdc.h>
24
23#include <sound/driver.h> 25#include <sound/driver.h>
24#include <sound/core.h> 26#include <sound/core.h>
25#include <sound/pcm.h> 27#include <sound/pcm.h>
@@ -29,7 +31,6 @@
29#include <asm/arch/hardware.h> 31#include <asm/arch/hardware.h>
30#include <asm/arch/at91_pmc.h> 32#include <asm/arch/at91_pmc.h>
31#include <asm/arch/at91_ssc.h> 33#include <asm/arch/at91_ssc.h>
32#include <asm/arch/at91_pdc.h>
33 34
34#include "at91-pcm.h" 35#include "at91-pcm.h"
35#include "at91-i2s.h" 36#include "at91-i2s.h"
@@ -51,17 +52,17 @@
51 * SSC PDC registers required by the PCM DMA engine. 52 * SSC PDC registers required by the PCM DMA engine.
52 */ 53 */
53static struct at91_pdc_regs pdc_tx_reg = { 54static struct at91_pdc_regs pdc_tx_reg = {
54 .xpr = AT91_PDC_TPR, 55 .xpr = ATMEL_PDC_TPR,
55 .xcr = AT91_PDC_TCR, 56 .xcr = ATMEL_PDC_TCR,
56 .xnpr = AT91_PDC_TNPR, 57 .xnpr = ATMEL_PDC_TNPR,
57 .xncr = AT91_PDC_TNCR, 58 .xncr = ATMEL_PDC_TNCR,
58}; 59};
59 60
60static struct at91_pdc_regs pdc_rx_reg = { 61static struct at91_pdc_regs pdc_rx_reg = {
61 .xpr = AT91_PDC_RPR, 62 .xpr = ATMEL_PDC_RPR,
62 .xcr = AT91_PDC_RCR, 63 .xcr = ATMEL_PDC_RCR,
63 .xnpr = AT91_PDC_RNPR, 64 .xnpr = ATMEL_PDC_RNPR,
64 .xncr = AT91_PDC_RNCR, 65 .xncr = ATMEL_PDC_RNCR,
65}; 66};
66 67
67/* 68/*
@@ -72,8 +73,8 @@ static struct at91_ssc_mask ssc_tx_mask = {
72 .ssc_disable = AT91_SSC_TXDIS, 73 .ssc_disable = AT91_SSC_TXDIS,
73 .ssc_endx = AT91_SSC_ENDTX, 74 .ssc_endx = AT91_SSC_ENDTX,
74 .ssc_endbuf = AT91_SSC_TXBUFE, 75 .ssc_endbuf = AT91_SSC_TXBUFE,
75 .pdc_enable = AT91_PDC_TXTEN, 76 .pdc_enable = ATMEL_PDC_TXTEN,
76 .pdc_disable = AT91_PDC_TXTDIS, 77 .pdc_disable = ATMEL_PDC_TXTDIS,
77}; 78};
78 79
79static struct at91_ssc_mask ssc_rx_mask = { 80static struct at91_ssc_mask ssc_rx_mask = {
@@ -81,8 +82,8 @@ static struct at91_ssc_mask ssc_rx_mask = {
81 .ssc_disable = AT91_SSC_RXDIS, 82 .ssc_disable = AT91_SSC_RXDIS,
82 .ssc_endx = AT91_SSC_ENDRX, 83 .ssc_endx = AT91_SSC_ENDRX,
83 .ssc_endbuf = AT91_SSC_RXBUFF, 84 .ssc_endbuf = AT91_SSC_RXBUFF,
84 .pdc_enable = AT91_PDC_RXTEN, 85 .pdc_enable = ATMEL_PDC_RXTEN,
85 .pdc_disable = AT91_PDC_RXTDIS, 86 .pdc_disable = ATMEL_PDC_RXTDIS,
86}; 87};
87 88
88 89
@@ -508,14 +509,14 @@ static int at91_i2s_hw_params(struct snd_pcm_substream *substream,
508 /* Reset the SSC and its PDC registers */ 509 /* Reset the SSC and its PDC registers */
509 at91_ssc_write(ssc_p->ssc.base + AT91_SSC_CR, AT91_SSC_SWRST); 510 at91_ssc_write(ssc_p->ssc.base + AT91_SSC_CR, AT91_SSC_SWRST);
510 511
511 at91_ssc_write(ssc_p->ssc.base + AT91_PDC_RPR, 0); 512 at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_RPR, 0);
512 at91_ssc_write(ssc_p->ssc.base + AT91_PDC_RCR, 0); 513 at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_RCR, 0);
513 at91_ssc_write(ssc_p->ssc.base + AT91_PDC_RNPR, 0); 514 at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_RNPR, 0);
514 at91_ssc_write(ssc_p->ssc.base + AT91_PDC_RNCR, 0); 515 at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_RNCR, 0);
515 at91_ssc_write(ssc_p->ssc.base + AT91_PDC_TPR, 0); 516 at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_TPR, 0);
516 at91_ssc_write(ssc_p->ssc.base + AT91_PDC_TCR, 0); 517 at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_TCR, 0);
517 at91_ssc_write(ssc_p->ssc.base + AT91_PDC_TNPR, 0); 518 at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_TNPR, 0);
518 at91_ssc_write(ssc_p->ssc.base + AT91_PDC_TNCR, 0); 519 at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_TNCR, 0);
519 520
520 if ((ret = request_irq(ssc_p->ssc.pid, at91_i2s_interrupt, 521 if ((ret = request_irq(ssc_p->ssc.pid, at91_i2s_interrupt,
521 0, ssc_p->name, ssc_p)) < 0) { 522 0, ssc_p->name, ssc_p)) < 0) {
diff --git a/sound/soc/at91/at91-pcm.c b/sound/soc/at91/at91-pcm.c
index e88b12e7cc40..b39b95a47040 100644
--- a/sound/soc/at91/at91-pcm.c
+++ b/sound/soc/at91/at91-pcm.c
@@ -21,6 +21,7 @@
21#include <linux/platform_device.h> 21#include <linux/platform_device.h>
22#include <linux/slab.h> 22#include <linux/slab.h>
23#include <linux/dma-mapping.h> 23#include <linux/dma-mapping.h>
24#include <linux/atmel_pdc.h>
24 25
25#include <sound/driver.h> 26#include <sound/driver.h>
26#include <sound/core.h> 27#include <sound/core.h>
@@ -30,7 +31,6 @@
30 31
31#include <asm/arch/hardware.h> 32#include <asm/arch/hardware.h>
32#include <asm/arch/at91_ssc.h> 33#include <asm/arch/at91_ssc.h>
33#include <asm/arch/at91_pdc.h>
34 34
35#include "at91-pcm.h" 35#include "at91-pcm.h"
36 36
@@ -83,7 +83,7 @@ static void at91_pcm_dma_irq(u32 ssc_sr,
83 params->name, ssc_sr, count); 83 params->name, ssc_sr, count);
84 84
85 /* re-start the PDC */ 85 /* re-start the PDC */
86 at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_disable); 86 at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_disable);
87 87
88 prtd->period_ptr += prtd->period_size; 88 prtd->period_ptr += prtd->period_size;
89 if (prtd->period_ptr >= prtd->dma_buffer_end) { 89 if (prtd->period_ptr >= prtd->dma_buffer_end) {
@@ -94,7 +94,7 @@ static void at91_pcm_dma_irq(u32 ssc_sr,
94 at91_ssc_write(params->ssc_base + params->pdc->xcr, 94 at91_ssc_write(params->ssc_base + params->pdc->xcr,
95 prtd->period_size / params->pdc_xfer_size); 95 prtd->period_size / params->pdc_xfer_size);
96 96
97 at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_enable); 97 at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_enable);
98 } 98 }
99 99
100 if (ssc_sr & params->mask->ssc_endx) { 100 if (ssc_sr & params->mask->ssc_endx) {
@@ -143,7 +143,7 @@ static int at91_pcm_hw_free(struct snd_pcm_substream *substream)
143 struct at91_pcm_dma_params *params = prtd->params; 143 struct at91_pcm_dma_params *params = prtd->params;
144 144
145 if (params != NULL) { 145 if (params != NULL) {
146 at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_disable); 146 at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_disable);
147 prtd->params->dma_intr_handler = NULL; 147 prtd->params->dma_intr_handler = NULL;
148 } 148 }
149 149
@@ -158,7 +158,7 @@ static int at91_pcm_prepare(struct snd_pcm_substream *substream)
158 at91_ssc_write(params->ssc_base + AT91_SSC_IDR, 158 at91_ssc_write(params->ssc_base + AT91_SSC_IDR,
159 params->mask->ssc_endx | params->mask->ssc_endbuf); 159 params->mask->ssc_endx | params->mask->ssc_endbuf);
160 160
161 at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_disable); 161 at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_disable);
162 return 0; 162 return 0;
163} 163}
164 164
@@ -192,7 +192,7 @@ static int at91_pcm_trigger(struct snd_pcm_substream *substream,
192 at91_ssc_write(params->ssc_base + AT91_SSC_IER, 192 at91_ssc_write(params->ssc_base + AT91_SSC_IER,
193 params->mask->ssc_endx | params->mask->ssc_endbuf); 193 params->mask->ssc_endx | params->mask->ssc_endbuf);
194 194
195 at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_enable); 195 at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_enable);
196 196
197 DBG("sr=%lx imr=%lx\n", at91_ssc_read(params->ssc_base + AT91_SSC_SR), 197 DBG("sr=%lx imr=%lx\n", at91_ssc_read(params->ssc_base + AT91_SSC_SR),
198 at91_ssc_read(params->ssc_base + AT91_SSC_IER)); 198 at91_ssc_read(params->ssc_base + AT91_SSC_IER));
@@ -201,12 +201,12 @@ static int at91_pcm_trigger(struct snd_pcm_substream *substream,
201 case SNDRV_PCM_TRIGGER_STOP: 201 case SNDRV_PCM_TRIGGER_STOP:
202 case SNDRV_PCM_TRIGGER_SUSPEND: 202 case SNDRV_PCM_TRIGGER_SUSPEND:
203 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 203 case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
204 at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_disable); 204 at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_disable);
205 break; 205 break;
206 206
207 case SNDRV_PCM_TRIGGER_RESUME: 207 case SNDRV_PCM_TRIGGER_RESUME:
208 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: 208 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
209 at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_enable); 209 at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_enable);
210 break; 210 break;
211 211
212 default: 212 default:
@@ -379,7 +379,7 @@ static int at91_pcm_suspend(struct platform_device *pdev,
379 379
380 /* disable the PDC and save the PDC registers */ 380 /* disable the PDC and save the PDC registers */
381 381
382 at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_disable); 382 at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_disable);
383 383
384 prtd->pdc_xpr_save = at91_ssc_read(params->ssc_base + params->pdc->xpr); 384 prtd->pdc_xpr_save = at91_ssc_read(params->ssc_base + params->pdc->xpr);
385 prtd->pdc_xcr_save = at91_ssc_read(params->ssc_base + params->pdc->xcr); 385 prtd->pdc_xcr_save = at91_ssc_read(params->ssc_base + params->pdc->xcr);
@@ -408,7 +408,7 @@ static int at91_pcm_resume(struct platform_device *pdev,
408 at91_ssc_write(params->ssc_base + params->pdc->xnpr, prtd->pdc_xnpr_save); 408 at91_ssc_write(params->ssc_base + params->pdc->xnpr, prtd->pdc_xnpr_save);
409 at91_ssc_write(params->ssc_base + params->pdc->xncr, prtd->pdc_xncr_save); 409 at91_ssc_write(params->ssc_base + params->pdc->xncr, prtd->pdc_xncr_save);
410 410
411 at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_enable); 411 at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_enable);
412 return 0; 412 return 0;
413} 413}
414#else 414#else