Commit fa8f8787 authored by Frank Mandarino's avatar Frank Mandarino Committed by Jaroslav Kysela

[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: default avatarFrank Mandarino <fmandarino@endrelia.com>
Signed-off-by: default avatarLiam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarJaroslav Kysela <perex@suse.cz>
parent 2a405343
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
#include <linux/device.h> #include <linux/device.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/atmel_pdc.h>
#include <sound/driver.h> #include <sound/driver.h>
#include <sound/core.h> #include <sound/core.h>
#include <sound/pcm.h> #include <sound/pcm.h>
...@@ -29,7 +31,6 @@ ...@@ -29,7 +31,6 @@
#include <asm/arch/hardware.h> #include <asm/arch/hardware.h>
#include <asm/arch/at91_pmc.h> #include <asm/arch/at91_pmc.h>
#include <asm/arch/at91_ssc.h> #include <asm/arch/at91_ssc.h>
#include <asm/arch/at91_pdc.h>
#include "at91-pcm.h" #include "at91-pcm.h"
#include "at91-i2s.h" #include "at91-i2s.h"
...@@ -51,17 +52,17 @@ ...@@ -51,17 +52,17 @@
* SSC PDC registers required by the PCM DMA engine. * SSC PDC registers required by the PCM DMA engine.
*/ */
static struct at91_pdc_regs pdc_tx_reg = { static struct at91_pdc_regs pdc_tx_reg = {
.xpr = AT91_PDC_TPR, .xpr = ATMEL_PDC_TPR,
.xcr = AT91_PDC_TCR, .xcr = ATMEL_PDC_TCR,
.xnpr = AT91_PDC_TNPR, .xnpr = ATMEL_PDC_TNPR,
.xncr = AT91_PDC_TNCR, .xncr = ATMEL_PDC_TNCR,
}; };
static struct at91_pdc_regs pdc_rx_reg = { static struct at91_pdc_regs pdc_rx_reg = {
.xpr = AT91_PDC_RPR, .xpr = ATMEL_PDC_RPR,
.xcr = AT91_PDC_RCR, .xcr = ATMEL_PDC_RCR,
.xnpr = AT91_PDC_RNPR, .xnpr = ATMEL_PDC_RNPR,
.xncr = AT91_PDC_RNCR, .xncr = ATMEL_PDC_RNCR,
}; };
/* /*
...@@ -72,8 +73,8 @@ static struct at91_ssc_mask ssc_tx_mask = { ...@@ -72,8 +73,8 @@ static struct at91_ssc_mask ssc_tx_mask = {
.ssc_disable = AT91_SSC_TXDIS, .ssc_disable = AT91_SSC_TXDIS,
.ssc_endx = AT91_SSC_ENDTX, .ssc_endx = AT91_SSC_ENDTX,
.ssc_endbuf = AT91_SSC_TXBUFE, .ssc_endbuf = AT91_SSC_TXBUFE,
.pdc_enable = AT91_PDC_TXTEN, .pdc_enable = ATMEL_PDC_TXTEN,
.pdc_disable = AT91_PDC_TXTDIS, .pdc_disable = ATMEL_PDC_TXTDIS,
}; };
static struct at91_ssc_mask ssc_rx_mask = { static struct at91_ssc_mask ssc_rx_mask = {
...@@ -81,8 +82,8 @@ static struct at91_ssc_mask ssc_rx_mask = { ...@@ -81,8 +82,8 @@ static struct at91_ssc_mask ssc_rx_mask = {
.ssc_disable = AT91_SSC_RXDIS, .ssc_disable = AT91_SSC_RXDIS,
.ssc_endx = AT91_SSC_ENDRX, .ssc_endx = AT91_SSC_ENDRX,
.ssc_endbuf = AT91_SSC_RXBUFF, .ssc_endbuf = AT91_SSC_RXBUFF,
.pdc_enable = AT91_PDC_RXTEN, .pdc_enable = ATMEL_PDC_RXTEN,
.pdc_disable = AT91_PDC_RXTDIS, .pdc_disable = ATMEL_PDC_RXTDIS,
}; };
...@@ -508,14 +509,14 @@ static int at91_i2s_hw_params(struct snd_pcm_substream *substream, ...@@ -508,14 +509,14 @@ static int at91_i2s_hw_params(struct snd_pcm_substream *substream,
/* Reset the SSC and its PDC registers */ /* Reset the SSC and its PDC registers */
at91_ssc_write(ssc_p->ssc.base + AT91_SSC_CR, AT91_SSC_SWRST); at91_ssc_write(ssc_p->ssc.base + AT91_SSC_CR, AT91_SSC_SWRST);
at91_ssc_write(ssc_p->ssc.base + AT91_PDC_RPR, 0); at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_RPR, 0);
at91_ssc_write(ssc_p->ssc.base + AT91_PDC_RCR, 0); at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_RCR, 0);
at91_ssc_write(ssc_p->ssc.base + AT91_PDC_RNPR, 0); at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_RNPR, 0);
at91_ssc_write(ssc_p->ssc.base + AT91_PDC_RNCR, 0); at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_RNCR, 0);
at91_ssc_write(ssc_p->ssc.base + AT91_PDC_TPR, 0); at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_TPR, 0);
at91_ssc_write(ssc_p->ssc.base + AT91_PDC_TCR, 0); at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_TCR, 0);
at91_ssc_write(ssc_p->ssc.base + AT91_PDC_TNPR, 0); at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_TNPR, 0);
at91_ssc_write(ssc_p->ssc.base + AT91_PDC_TNCR, 0); at91_ssc_write(ssc_p->ssc.base + ATMEL_PDC_TNCR, 0);
if ((ret = request_irq(ssc_p->ssc.pid, at91_i2s_interrupt, if ((ret = request_irq(ssc_p->ssc.pid, at91_i2s_interrupt,
0, ssc_p->name, ssc_p)) < 0) { 0, ssc_p->name, ssc_p)) < 0) {
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/atmel_pdc.h>
#include <sound/driver.h> #include <sound/driver.h>
#include <sound/core.h> #include <sound/core.h>
...@@ -30,7 +31,6 @@ ...@@ -30,7 +31,6 @@
#include <asm/arch/hardware.h> #include <asm/arch/hardware.h>
#include <asm/arch/at91_ssc.h> #include <asm/arch/at91_ssc.h>
#include <asm/arch/at91_pdc.h>
#include "at91-pcm.h" #include "at91-pcm.h"
...@@ -83,7 +83,7 @@ static void at91_pcm_dma_irq(u32 ssc_sr, ...@@ -83,7 +83,7 @@ static void at91_pcm_dma_irq(u32 ssc_sr,
params->name, ssc_sr, count); params->name, ssc_sr, count);
/* re-start the PDC */ /* re-start the PDC */
at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_disable); at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_disable);
prtd->period_ptr += prtd->period_size; prtd->period_ptr += prtd->period_size;
if (prtd->period_ptr >= prtd->dma_buffer_end) { if (prtd->period_ptr >= prtd->dma_buffer_end) {
...@@ -94,7 +94,7 @@ static void at91_pcm_dma_irq(u32 ssc_sr, ...@@ -94,7 +94,7 @@ static void at91_pcm_dma_irq(u32 ssc_sr,
at91_ssc_write(params->ssc_base + params->pdc->xcr, at91_ssc_write(params->ssc_base + params->pdc->xcr,
prtd->period_size / params->pdc_xfer_size); prtd->period_size / params->pdc_xfer_size);
at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_enable); at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_enable);
} }
if (ssc_sr & params->mask->ssc_endx) { if (ssc_sr & params->mask->ssc_endx) {
...@@ -143,7 +143,7 @@ static int at91_pcm_hw_free(struct snd_pcm_substream *substream) ...@@ -143,7 +143,7 @@ static int at91_pcm_hw_free(struct snd_pcm_substream *substream)
struct at91_pcm_dma_params *params = prtd->params; struct at91_pcm_dma_params *params = prtd->params;
if (params != NULL) { if (params != NULL) {
at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_disable); at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_disable);
prtd->params->dma_intr_handler = NULL; prtd->params->dma_intr_handler = NULL;
} }
...@@ -158,7 +158,7 @@ static int at91_pcm_prepare(struct snd_pcm_substream *substream) ...@@ -158,7 +158,7 @@ static int at91_pcm_prepare(struct snd_pcm_substream *substream)
at91_ssc_write(params->ssc_base + AT91_SSC_IDR, at91_ssc_write(params->ssc_base + AT91_SSC_IDR,
params->mask->ssc_endx | params->mask->ssc_endbuf); params->mask->ssc_endx | params->mask->ssc_endbuf);
at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_disable); at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_disable);
return 0; return 0;
} }
...@@ -192,7 +192,7 @@ static int at91_pcm_trigger(struct snd_pcm_substream *substream, ...@@ -192,7 +192,7 @@ static int at91_pcm_trigger(struct snd_pcm_substream *substream,
at91_ssc_write(params->ssc_base + AT91_SSC_IER, at91_ssc_write(params->ssc_base + AT91_SSC_IER,
params->mask->ssc_endx | params->mask->ssc_endbuf); params->mask->ssc_endx | params->mask->ssc_endbuf);
at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_enable); at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_enable);
DBG("sr=%lx imr=%lx\n", at91_ssc_read(params->ssc_base + AT91_SSC_SR), DBG("sr=%lx imr=%lx\n", at91_ssc_read(params->ssc_base + AT91_SSC_SR),
at91_ssc_read(params->ssc_base + AT91_SSC_IER)); at91_ssc_read(params->ssc_base + AT91_SSC_IER));
...@@ -201,12 +201,12 @@ static int at91_pcm_trigger(struct snd_pcm_substream *substream, ...@@ -201,12 +201,12 @@ static int at91_pcm_trigger(struct snd_pcm_substream *substream,
case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_STOP:
case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_SUSPEND:
case SNDRV_PCM_TRIGGER_PAUSE_PUSH: case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_disable); at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_disable);
break; break;
case SNDRV_PCM_TRIGGER_RESUME: case SNDRV_PCM_TRIGGER_RESUME:
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_enable); at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_enable);
break; break;
default: default:
...@@ -379,7 +379,7 @@ static int at91_pcm_suspend(struct platform_device *pdev, ...@@ -379,7 +379,7 @@ static int at91_pcm_suspend(struct platform_device *pdev,
/* disable the PDC and save the PDC registers */ /* disable the PDC and save the PDC registers */
at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_disable); at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_disable);
prtd->pdc_xpr_save = at91_ssc_read(params->ssc_base + params->pdc->xpr); prtd->pdc_xpr_save = at91_ssc_read(params->ssc_base + params->pdc->xpr);
prtd->pdc_xcr_save = at91_ssc_read(params->ssc_base + params->pdc->xcr); 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,7 +408,7 @@ static int at91_pcm_resume(struct platform_device *pdev,
at91_ssc_write(params->ssc_base + params->pdc->xnpr, prtd->pdc_xnpr_save); at91_ssc_write(params->ssc_base + params->pdc->xnpr, prtd->pdc_xnpr_save);
at91_ssc_write(params->ssc_base + params->pdc->xncr, prtd->pdc_xncr_save); at91_ssc_write(params->ssc_base + params->pdc->xncr, prtd->pdc_xncr_save);
at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_enable); at91_ssc_write(params->ssc_base + ATMEL_PDC_PTCR, params->mask->pdc_enable);
return 0; return 0;
} }
#else #else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment