diff options
Diffstat (limited to 'sound/atmel/ac97c.c')
-rw-r--r-- | sound/atmel/ac97c.c | 14 |
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 | ||
103 | static int atmel_ac97c_prepare_dma(struct atmel_ac97c *chip, | 103 | static 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 | ||