aboutsummaryrefslogtreecommitdiffstats
path: root/sound/atmel/ac97c.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/atmel/ac97c.c')
-rw-r--r--sound/atmel/ac97c.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/sound/atmel/ac97c.c b/sound/atmel/ac97c.c
index 6e5addeb236b..61dade698358 100644
--- a/sound/atmel/ac97c.c
+++ b/sound/atmel/ac97c.c
@@ -102,7 +102,7 @@ static void atmel_ac97c_dma_capture_period_done(void *arg)
102 102
103static int atmel_ac97c_prepare_dma(struct atmel_ac97c *chip, 103static int atmel_ac97c_prepare_dma(struct atmel_ac97c *chip,
104 struct snd_pcm_substream *substream, 104 struct snd_pcm_substream *substream,
105 enum dma_data_direction direction) 105 enum dma_transfer_direction direction)
106{ 106{
107 struct dma_chan *chan; 107 struct dma_chan *chan;
108 struct dw_cyclic_desc *cdesc; 108 struct dw_cyclic_desc *cdesc;
@@ -118,7 +118,7 @@ static int atmel_ac97c_prepare_dma(struct atmel_ac97c *chip,
118 return -EINVAL; 118 return -EINVAL;
119 } 119 }
120 120
121 if (direction == DMA_TO_DEVICE) 121 if (direction == DMA_MEM_TO_DEV)
122 chan = chip->dma.tx_chan; 122 chan = chip->dma.tx_chan;
123 else 123 else
124 chan = chip->dma.rx_chan; 124 chan = chip->dma.rx_chan;
@@ -133,7 +133,7 @@ static int atmel_ac97c_prepare_dma(struct atmel_ac97c *chip,
133 return PTR_ERR(cdesc); 133 return PTR_ERR(cdesc);
134 } 134 }
135 135
136 if (direction == DMA_TO_DEVICE) { 136 if (direction == DMA_MEM_TO_DEV) {
137 cdesc->period_callback = atmel_ac97c_dma_playback_period_done; 137 cdesc->period_callback = atmel_ac97c_dma_playback_period_done;
138 set_bit(DMA_TX_READY, &chip->flags); 138 set_bit(DMA_TX_READY, &chip->flags);
139 } else { 139 } else {
@@ -393,7 +393,7 @@ static int atmel_ac97c_playback_prepare(struct snd_pcm_substream *substream)
393 if (cpu_is_at32ap7000()) { 393 if (cpu_is_at32ap7000()) {
394 if (!test_bit(DMA_TX_READY, &chip->flags)) 394 if (!test_bit(DMA_TX_READY, &chip->flags))
395 retval = atmel_ac97c_prepare_dma(chip, substream, 395 retval = atmel_ac97c_prepare_dma(chip, substream,
396 DMA_TO_DEVICE); 396 DMA_MEM_TO_DEV);
397 } else { 397 } else {
398 /* Initialize and start the PDC */ 398 /* Initialize and start the PDC */
399 writel(runtime->dma_addr, chip->regs + ATMEL_PDC_TPR); 399 writel(runtime->dma_addr, chip->regs + ATMEL_PDC_TPR);
@@ -484,7 +484,7 @@ static int atmel_ac97c_capture_prepare(struct snd_pcm_substream *substream)
484 if (cpu_is_at32ap7000()) { 484 if (cpu_is_at32ap7000()) {
485 if (!test_bit(DMA_RX_READY, &chip->flags)) 485 if (!test_bit(DMA_RX_READY, &chip->flags))
486 retval = atmel_ac97c_prepare_dma(chip, substream, 486 retval = atmel_ac97c_prepare_dma(chip, substream,
487 DMA_FROM_DEVICE); 487 DMA_DEV_TO_MEM);
488 } else { 488 } else {
489 /* Initialize and start the PDC */ 489 /* Initialize and start the PDC */
490 writel(runtime->dma_addr, chip->regs + ATMEL_PDC_RPR); 490 writel(runtime->dma_addr, chip->regs + ATMEL_PDC_RPR);
@@ -899,6 +899,10 @@ static void atmel_ac97c_reset(struct atmel_ac97c *chip)
899 /* AC97 v2.2 specifications says minimum 1 us. */ 899 /* AC97 v2.2 specifications says minimum 1 us. */
900 udelay(2); 900 udelay(2);
901 gpio_set_value(chip->reset_pin, 1); 901 gpio_set_value(chip->reset_pin, 1);
902 } else {
903 ac97c_writel(chip, MR, AC97C_MR_WRST | AC97C_MR_ENA);
904 udelay(2);
905 ac97c_writel(chip, MR, AC97C_MR_ENA);
902 } 906 }
903} 907}
904 908