Commit 018334c0 authored by Wan ZongShun's avatar Wan ZongShun Committed by Mark Brown

ASoC: nuc900: patch for SUBSTREAM_TYPE', 'PCM_TX' and 'PCM_RX' removal

This patch is to remove the 'SUBSTREAM_TYPE','PCM_TX' and 'PCM_RX' definition.

There is no need to redefine SNDRV_PCM_STREAM_PLAYBACK as PCM_TX,
the SUBSTREAM_TYPE(substream) can be deleted too, the playback or record can be
judged by 'if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)' directly rather
than 'if (PCM_TX == stype)', which makes the codes easy to read.
Signed-off-by: default avatarWan ZongShun <mcuos.com@gmail.com>
Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 1fab79b8
...@@ -222,7 +222,7 @@ static int nuc900_ac97_trigger(struct snd_pcm_substream *substream, ...@@ -222,7 +222,7 @@ static int nuc900_ac97_trigger(struct snd_pcm_substream *substream,
int cmd, struct snd_soc_dai *dai) int cmd, struct snd_soc_dai *dai)
{ {
struct nuc900_audio *nuc900_audio = nuc900_ac97_data; struct nuc900_audio *nuc900_audio = nuc900_ac97_data;
int ret, stype = SUBSTREAM_TYPE(substream); int ret;
unsigned long val, tmp; unsigned long val, tmp;
ret = 0; ret = 0;
...@@ -231,7 +231,7 @@ static int nuc900_ac97_trigger(struct snd_pcm_substream *substream, ...@@ -231,7 +231,7 @@ static int nuc900_ac97_trigger(struct snd_pcm_substream *substream,
case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_START:
case SNDRV_PCM_TRIGGER_RESUME: case SNDRV_PCM_TRIGGER_RESUME:
val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET); val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET);
if (PCM_TX == stype) { if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
tmp = AUDIO_READ(nuc900_audio->mmio + ACTL_ACOS0); tmp = AUDIO_READ(nuc900_audio->mmio + ACTL_ACOS0);
tmp |= (SLOT3_VALID | SLOT4_VALID | VALID_FRAME); tmp |= (SLOT3_VALID | SLOT4_VALID | VALID_FRAME);
AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACOS0, tmp); AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACOS0, tmp);
...@@ -254,7 +254,7 @@ static int nuc900_ac97_trigger(struct snd_pcm_substream *substream, ...@@ -254,7 +254,7 @@ static int nuc900_ac97_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:
val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET); val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET);
if (PCM_TX == stype) { if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
tmp = AUDIO_READ(nuc900_audio->mmio + ACTL_ACOS0); tmp = AUDIO_READ(nuc900_audio->mmio + ACTL_ACOS0);
tmp &= ~(SLOT3_VALID | SLOT4_VALID); tmp &= ~(SLOT3_VALID | SLOT4_VALID);
AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACOS0, tmp); AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACOS0, tmp);
......
...@@ -96,10 +96,6 @@ ...@@ -96,10 +96,6 @@
#define RESET_PRSR 0x00 #define RESET_PRSR 0x00
#define AUDIO_WRITE(addr, val) __raw_writel(val, addr) #define AUDIO_WRITE(addr, val) __raw_writel(val, addr)
#define AUDIO_READ(addr) __raw_readl(addr) #define AUDIO_READ(addr) __raw_readl(addr)
#define PCM_TX 0
#define PCM_RX 1
#define SUBSTREAM_TYPE(substream) \
((substream)->stream == SNDRV_PCM_STREAM_PLAYBACK ? PCM_TX : PCM_RX)
struct nuc900_audio { struct nuc900_audio {
void __iomem *mmio; void __iomem *mmio;
......
...@@ -47,7 +47,7 @@ static int nuc900_dma_hw_params(struct snd_pcm_substream *substream, ...@@ -47,7 +47,7 @@ static int nuc900_dma_hw_params(struct snd_pcm_substream *substream,
{ {
struct snd_pcm_runtime *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
struct nuc900_audio *nuc900_audio = runtime->private_data; struct nuc900_audio *nuc900_audio = runtime->private_data;
unsigned long flags, stype = SUBSTREAM_TYPE(substream); unsigned long flags;
int ret = 0; int ret = 0;
spin_lock_irqsave(&nuc900_audio->lock, flags); spin_lock_irqsave(&nuc900_audio->lock, flags);
...@@ -57,8 +57,9 @@ static int nuc900_dma_hw_params(struct snd_pcm_substream *substream, ...@@ -57,8 +57,9 @@ static int nuc900_dma_hw_params(struct snd_pcm_substream *substream,
return ret; return ret;
nuc900_audio->substream = substream; nuc900_audio->substream = substream;
nuc900_audio->dma_addr[stype] = runtime->dma_addr; nuc900_audio->dma_addr[substream->stream] = runtime->dma_addr;
nuc900_audio->buffersize[stype] = params_buffer_bytes(params); nuc900_audio->buffersize[substream->stream] =
params_buffer_bytes(params);
spin_unlock_irqrestore(&nuc900_audio->lock, flags); spin_unlock_irqrestore(&nuc900_audio->lock, flags);
...@@ -72,7 +73,7 @@ static void nuc900_update_dma_register(struct snd_pcm_substream *substream, ...@@ -72,7 +73,7 @@ static void nuc900_update_dma_register(struct snd_pcm_substream *substream,
struct nuc900_audio *nuc900_audio = runtime->private_data; struct nuc900_audio *nuc900_audio = runtime->private_data;
void __iomem *mmio_addr, *mmio_len; void __iomem *mmio_addr, *mmio_len;
if (SUBSTREAM_TYPE(substream) == PCM_TX) { if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
mmio_addr = nuc900_audio->mmio + ACTL_PDSTB; mmio_addr = nuc900_audio->mmio + ACTL_PDSTB;
mmio_len = nuc900_audio->mmio + ACTL_PDST_LENGTH; mmio_len = nuc900_audio->mmio + ACTL_PDST_LENGTH;
} else { } else {
...@@ -167,18 +168,19 @@ static int nuc900_dma_prepare(struct snd_pcm_substream *substream) ...@@ -167,18 +168,19 @@ static int nuc900_dma_prepare(struct snd_pcm_substream *substream)
{ {
struct snd_pcm_runtime *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
struct nuc900_audio *nuc900_audio = runtime->private_data; struct nuc900_audio *nuc900_audio = runtime->private_data;
unsigned long flags, val, stype = SUBSTREAM_TYPE(substream);; unsigned long flags, val;
spin_lock_irqsave(&nuc900_audio->lock, flags); spin_lock_irqsave(&nuc900_audio->lock, flags);
nuc900_update_dma_register(substream, nuc900_update_dma_register(substream,
nuc900_audio->dma_addr[stype], nuc900_audio->buffersize[stype]); nuc900_audio->dma_addr[substream->stream],
nuc900_audio->buffersize[substream->stream]);
val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET); val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET);
switch (runtime->channels) { switch (runtime->channels) {
case 1: case 1:
if (PCM_TX == stype) { if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
val &= ~(PLAY_LEFT_CHNNEL | PLAY_RIGHT_CHNNEL); val &= ~(PLAY_LEFT_CHNNEL | PLAY_RIGHT_CHNNEL);
val |= PLAY_RIGHT_CHNNEL; val |= PLAY_RIGHT_CHNNEL;
} else { } else {
...@@ -188,7 +190,7 @@ static int nuc900_dma_prepare(struct snd_pcm_substream *substream) ...@@ -188,7 +190,7 @@ static int nuc900_dma_prepare(struct snd_pcm_substream *substream)
AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val);
break; break;
case 2: case 2:
if (PCM_TX == stype) if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
val |= (PLAY_LEFT_CHNNEL | PLAY_RIGHT_CHNNEL); val |= (PLAY_LEFT_CHNNEL | PLAY_RIGHT_CHNNEL);
else else
val |= (RECORD_LEFT_CHNNEL | RECORD_RIGHT_CHNNEL); val |= (RECORD_LEFT_CHNNEL | RECORD_RIGHT_CHNNEL);
......
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