Lines Matching refs:chip

89 #define ac97c_writel(chip, reg, val)			\  argument
90 __raw_writel((val), (chip)->regs + AC97C_##reg)
91 #define ac97c_readl(chip, reg) \ argument
92 __raw_readl((chip)->regs + AC97C_##reg)
97 struct atmel_ac97c *chip = arg; in atmel_ac97c_dma_playback_period_done() local
98 snd_pcm_period_elapsed(chip->playback_substream); in atmel_ac97c_dma_playback_period_done()
103 struct atmel_ac97c *chip = arg; in atmel_ac97c_dma_capture_period_done() local
104 snd_pcm_period_elapsed(chip->capture_substream); in atmel_ac97c_dma_capture_period_done()
107 static int atmel_ac97c_prepare_dma(struct atmel_ac97c *chip, in atmel_ac97c_prepare_dma() argument
121 dev_dbg(&chip->pdev->dev, "too complex transfer\n"); in atmel_ac97c_prepare_dma()
126 chan = chip->dma.tx_chan; in atmel_ac97c_prepare_dma()
128 chan = chip->dma.rx_chan; in atmel_ac97c_prepare_dma()
136 dev_dbg(&chip->pdev->dev, "could not prepare cyclic DMA\n"); in atmel_ac97c_prepare_dma()
142 set_bit(DMA_TX_READY, &chip->flags); in atmel_ac97c_prepare_dma()
145 set_bit(DMA_RX_READY, &chip->flags); in atmel_ac97c_prepare_dma()
148 cdesc->period_callback_param = chip; in atmel_ac97c_prepare_dma()
177 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_playback_open() local
181 chip->opened++; in atmel_ac97c_playback_open()
183 if (chip->cur_rate) { in atmel_ac97c_playback_open()
184 runtime->hw.rate_min = chip->cur_rate; in atmel_ac97c_playback_open()
185 runtime->hw.rate_max = chip->cur_rate; in atmel_ac97c_playback_open()
187 if (chip->cur_format) in atmel_ac97c_playback_open()
188 runtime->hw.formats = pcm_format_to_bits(chip->cur_format); in atmel_ac97c_playback_open()
190 chip->playback_substream = substream; in atmel_ac97c_playback_open()
196 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_capture_open() local
200 chip->opened++; in atmel_ac97c_capture_open()
202 if (chip->cur_rate) { in atmel_ac97c_capture_open()
203 runtime->hw.rate_min = chip->cur_rate; in atmel_ac97c_capture_open()
204 runtime->hw.rate_max = chip->cur_rate; in atmel_ac97c_capture_open()
206 if (chip->cur_format) in atmel_ac97c_capture_open()
207 runtime->hw.formats = pcm_format_to_bits(chip->cur_format); in atmel_ac97c_capture_open()
209 chip->capture_substream = substream; in atmel_ac97c_capture_open()
215 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_playback_close() local
218 chip->opened--; in atmel_ac97c_playback_close()
219 if (!chip->opened) { in atmel_ac97c_playback_close()
220 chip->cur_rate = 0; in atmel_ac97c_playback_close()
221 chip->cur_format = 0; in atmel_ac97c_playback_close()
225 chip->playback_substream = NULL; in atmel_ac97c_playback_close()
232 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_capture_close() local
235 chip->opened--; in atmel_ac97c_capture_close()
236 if (!chip->opened) { in atmel_ac97c_capture_close()
237 chip->cur_rate = 0; in atmel_ac97c_capture_close()
238 chip->cur_format = 0; in atmel_ac97c_capture_close()
242 chip->capture_substream = NULL; in atmel_ac97c_capture_close()
250 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_playback_hw_params() local
261 if (test_and_clear_bit(DMA_TX_READY, &chip->flags)) in atmel_ac97c_playback_hw_params()
262 dw_dma_cyclic_free(chip->dma.tx_chan); in atmel_ac97c_playback_hw_params()
266 chip->cur_rate = params_rate(hw_params); in atmel_ac97c_playback_hw_params()
267 chip->cur_format = params_format(hw_params); in atmel_ac97c_playback_hw_params()
276 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_capture_hw_params() local
285 if (test_and_clear_bit(DMA_RX_READY, &chip->flags)) in atmel_ac97c_capture_hw_params()
286 dw_dma_cyclic_free(chip->dma.rx_chan); in atmel_ac97c_capture_hw_params()
290 chip->cur_rate = params_rate(hw_params); in atmel_ac97c_capture_hw_params()
291 chip->cur_format = params_format(hw_params); in atmel_ac97c_capture_hw_params()
299 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_playback_hw_free() local
301 if (test_and_clear_bit(DMA_TX_READY, &chip->flags)) in atmel_ac97c_playback_hw_free()
302 dw_dma_cyclic_free(chip->dma.tx_chan); in atmel_ac97c_playback_hw_free()
309 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_capture_hw_free() local
311 if (test_and_clear_bit(DMA_RX_READY, &chip->flags)) in atmel_ac97c_capture_hw_free()
312 dw_dma_cyclic_free(chip->dma.rx_chan); in atmel_ac97c_capture_hw_free()
319 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_playback_prepare() local
322 unsigned long word = ac97c_readl(chip, OCA); in atmel_ac97c_playback_prepare()
325 chip->playback_period = 0; in atmel_ac97c_playback_prepare()
341 ac97c_writel(chip, OCA, word); in atmel_ac97c_playback_prepare()
344 word = ac97c_readl(chip, CAMR); in atmel_ac97c_playback_prepare()
345 if (chip->opened <= 1) in atmel_ac97c_playback_prepare()
359 word = ac97c_readl(chip, OCA); in atmel_ac97c_playback_prepare()
361 ac97c_writel(chip, OCA, word); in atmel_ac97c_playback_prepare()
368 ac97c_writel(chip, CAMR, word); in atmel_ac97c_playback_prepare()
371 word = ac97c_readl(chip, IMR); in atmel_ac97c_playback_prepare()
373 ac97c_writel(chip, IER, word); in atmel_ac97c_playback_prepare()
377 word = ac97c_readl(chip, MR); in atmel_ac97c_playback_prepare()
379 ac97c_writel(chip, MR, word); in atmel_ac97c_playback_prepare()
381 word = ac97c_readl(chip, MR); in atmel_ac97c_playback_prepare()
383 ac97c_writel(chip, MR, word); in atmel_ac97c_playback_prepare()
386 retval = snd_ac97_set_rate(chip->ac97, AC97_PCM_FRONT_DAC_RATE, in atmel_ac97c_playback_prepare()
389 dev_dbg(&chip->pdev->dev, "could not set rate %d Hz\n", in atmel_ac97c_playback_prepare()
393 if (!test_bit(DMA_TX_READY, &chip->flags)) in atmel_ac97c_playback_prepare()
394 retval = atmel_ac97c_prepare_dma(chip, substream, in atmel_ac97c_playback_prepare()
398 writel(runtime->dma_addr, chip->regs + ATMEL_PDC_TPR); in atmel_ac97c_playback_prepare()
399 writel(block_size / 2, chip->regs + ATMEL_PDC_TCR); in atmel_ac97c_playback_prepare()
401 chip->regs + ATMEL_PDC_TNPR); in atmel_ac97c_playback_prepare()
402 writel(block_size / 2, chip->regs + ATMEL_PDC_TNCR); in atmel_ac97c_playback_prepare()
410 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_capture_prepare() local
413 unsigned long word = ac97c_readl(chip, ICA); in atmel_ac97c_capture_prepare()
416 chip->capture_period = 0; in atmel_ac97c_capture_prepare()
432 ac97c_writel(chip, ICA, word); in atmel_ac97c_capture_prepare()
435 word = ac97c_readl(chip, CAMR); in atmel_ac97c_capture_prepare()
436 if (chip->opened <= 1) in atmel_ac97c_capture_prepare()
450 word = ac97c_readl(chip, ICA); in atmel_ac97c_capture_prepare()
452 ac97c_writel(chip, ICA, word); in atmel_ac97c_capture_prepare()
459 ac97c_writel(chip, CAMR, word); in atmel_ac97c_capture_prepare()
462 word = ac97c_readl(chip, IMR); in atmel_ac97c_capture_prepare()
464 ac97c_writel(chip, IER, word); in atmel_ac97c_capture_prepare()
468 word = ac97c_readl(chip, MR); in atmel_ac97c_capture_prepare()
470 ac97c_writel(chip, MR, word); in atmel_ac97c_capture_prepare()
472 word = ac97c_readl(chip, MR); in atmel_ac97c_capture_prepare()
474 ac97c_writel(chip, MR, word); in atmel_ac97c_capture_prepare()
477 retval = snd_ac97_set_rate(chip->ac97, AC97_PCM_LR_ADC_RATE, in atmel_ac97c_capture_prepare()
480 dev_dbg(&chip->pdev->dev, "could not set rate %d Hz\n", in atmel_ac97c_capture_prepare()
484 if (!test_bit(DMA_RX_READY, &chip->flags)) in atmel_ac97c_capture_prepare()
485 retval = atmel_ac97c_prepare_dma(chip, substream, in atmel_ac97c_capture_prepare()
489 writel(runtime->dma_addr, chip->regs + ATMEL_PDC_RPR); in atmel_ac97c_capture_prepare()
490 writel(block_size / 2, chip->regs + ATMEL_PDC_RCR); in atmel_ac97c_capture_prepare()
492 chip->regs + ATMEL_PDC_RNPR); in atmel_ac97c_capture_prepare()
493 writel(block_size / 2, chip->regs + ATMEL_PDC_RNCR); in atmel_ac97c_capture_prepare()
502 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_playback_trigger() local
506 camr = ac97c_readl(chip, CAMR); in atmel_ac97c_playback_trigger()
513 retval = dw_dma_cyclic_start(chip->dma.tx_chan); in atmel_ac97c_playback_trigger()
525 dw_dma_cyclic_stop(chip->dma.tx_chan); in atmel_ac97c_playback_trigger()
528 if (chip->opened <= 1) in atmel_ac97c_playback_trigger()
536 ac97c_writel(chip, CAMR, camr); in atmel_ac97c_playback_trigger()
538 writel(ptcr, chip->regs + ATMEL_PDC_PTCR); in atmel_ac97c_playback_trigger()
546 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_capture_trigger() local
550 camr = ac97c_readl(chip, CAMR); in atmel_ac97c_capture_trigger()
551 ptcr = readl(chip->regs + ATMEL_PDC_PTSR); in atmel_ac97c_capture_trigger()
558 retval = dw_dma_cyclic_start(chip->dma.rx_chan); in atmel_ac97c_capture_trigger()
570 dw_dma_cyclic_stop(chip->dma.rx_chan); in atmel_ac97c_capture_trigger()
573 if (chip->opened <= 1) in atmel_ac97c_capture_trigger()
581 ac97c_writel(chip, CAMR, camr); in atmel_ac97c_capture_trigger()
583 writel(ptcr, chip->regs + ATMEL_PDC_PTCR); in atmel_ac97c_capture_trigger()
591 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_playback_pointer() local
597 bytes = dw_dma_get_src_addr(chip->dma.tx_chan); in atmel_ac97c_playback_pointer()
599 bytes = readl(chip->regs + ATMEL_PDC_TPR); in atmel_ac97c_playback_pointer()
611 struct atmel_ac97c *chip = snd_pcm_substream_chip(substream); in atmel_ac97c_capture_pointer() local
617 bytes = dw_dma_get_dst_addr(chip->dma.rx_chan); in atmel_ac97c_capture_pointer()
619 bytes = readl(chip->regs + ATMEL_PDC_RPR); in atmel_ac97c_capture_pointer()
652 struct atmel_ac97c *chip = (struct atmel_ac97c *)dev; in atmel_ac97c_interrupt() local
654 u32 sr = ac97c_readl(chip, SR); in atmel_ac97c_interrupt()
655 u32 casr = ac97c_readl(chip, CASR); in atmel_ac97c_interrupt()
656 u32 cosr = ac97c_readl(chip, COSR); in atmel_ac97c_interrupt()
657 u32 camr = ac97c_readl(chip, CAMR); in atmel_ac97c_interrupt()
662 dev_dbg(&chip->pdev->dev, "channel A event%s%s%s%s%s%s\n", in atmel_ac97c_interrupt()
671 runtime = chip->playback_substream->runtime; in atmel_ac97c_interrupt()
674 chip->playback_period++; in atmel_ac97c_interrupt()
676 if (chip->playback_period == runtime->periods) in atmel_ac97c_interrupt()
677 chip->playback_period = 0; in atmel_ac97c_interrupt()
678 next_period = chip->playback_period + 1; in atmel_ac97c_interrupt()
685 chip->regs + ATMEL_PDC_TNPR); in atmel_ac97c_interrupt()
687 chip->regs + ATMEL_PDC_TNCR); in atmel_ac97c_interrupt()
690 chip->playback_substream); in atmel_ac97c_interrupt()
693 runtime = chip->capture_substream->runtime; in atmel_ac97c_interrupt()
696 chip->capture_period++; in atmel_ac97c_interrupt()
698 if (chip->capture_period == runtime->periods) in atmel_ac97c_interrupt()
699 chip->capture_period = 0; in atmel_ac97c_interrupt()
700 next_period = chip->capture_period + 1; in atmel_ac97c_interrupt()
707 chip->regs + ATMEL_PDC_RNPR); in atmel_ac97c_interrupt()
709 chip->regs + ATMEL_PDC_RNCR); in atmel_ac97c_interrupt()
710 snd_pcm_period_elapsed(chip->capture_substream); in atmel_ac97c_interrupt()
717 dev_info(&chip->pdev->dev, "codec channel event%s%s%s%s%s\n", in atmel_ac97c_interrupt()
727 dev_err(&chip->pdev->dev, "spurious interrupt sr 0x%08x " in atmel_ac97c_interrupt()
762 static int atmel_ac97c_pcm_new(struct atmel_ac97c *chip) in atmel_ac97c_pcm_new() argument
768 capture = test_bit(DMA_RX_CHAN_PRESENT, &chip->flags); in atmel_ac97c_pcm_new()
769 playback = test_bit(DMA_TX_CHAN_PRESENT, &chip->flags); in atmel_ac97c_pcm_new()
772 err = snd_ac97_pcm_assign(chip->ac97_bus, in atmel_ac97c_pcm_new()
778 retval = snd_pcm_new(chip->card, chip->card->shortname, in atmel_ac97c_pcm_new()
791 &chip->pdev->dev, hw.periods_min * hw.period_bytes_min, in atmel_ac97c_pcm_new()
796 pcm->private_data = chip; in atmel_ac97c_pcm_new()
798 strcpy(pcm->name, chip->card->shortname); in atmel_ac97c_pcm_new()
799 chip->pcm = pcm; in atmel_ac97c_pcm_new()
804 static int atmel_ac97c_mixer_new(struct atmel_ac97c *chip) in atmel_ac97c_mixer_new() argument
808 template.private_data = chip; in atmel_ac97c_mixer_new()
809 return snd_ac97_mixer(chip->ac97_bus, &template, &chip->ac97); in atmel_ac97c_mixer_new()
815 struct atmel_ac97c *chip = get_chip(ac97); in atmel_ac97c_write() local
822 if (ac97c_readl(chip, COSR) & AC97C_CSR_TXRDY) { in atmel_ac97c_write()
823 ac97c_writel(chip, COTHR, word); in atmel_ac97c_write()
829 dev_dbg(&chip->pdev->dev, "codec write timeout\n"); in atmel_ac97c_write()
835 struct atmel_ac97c *chip = get_chip(ac97); in atmel_ac97c_read() local
842 if ((ac97c_readl(chip, COSR) & AC97C_CSR_RXRDY) != 0) in atmel_ac97c_read()
843 ac97c_readl(chip, CORHR); in atmel_ac97c_read()
849 if ((ac97c_readl(chip, COSR) & AC97C_CSR_TXRDY) != 0) { in atmel_ac97c_read()
850 ac97c_writel(chip, COTHR, word); in atmel_ac97c_read()
862 if ((ac97c_readl(chip, COSR) & AC97C_CSR_RXRDY) != 0) { in atmel_ac97c_read()
863 unsigned short val = ac97c_readl(chip, CORHR); in atmel_ac97c_read()
874 dev_dbg(&chip->pdev->dev, "codec read timeout\n"); in atmel_ac97c_read()
889 static void atmel_ac97c_reset(struct atmel_ac97c *chip) in atmel_ac97c_reset() argument
891 ac97c_writel(chip, MR, 0); in atmel_ac97c_reset()
892 ac97c_writel(chip, MR, AC97C_MR_ENA); in atmel_ac97c_reset()
893 ac97c_writel(chip, CAMR, 0); in atmel_ac97c_reset()
894 ac97c_writel(chip, COMR, 0); in atmel_ac97c_reset()
896 if (gpio_is_valid(chip->reset_pin)) { in atmel_ac97c_reset()
897 gpio_set_value(chip->reset_pin, 0); in atmel_ac97c_reset()
900 gpio_set_value(chip->reset_pin, 1); in atmel_ac97c_reset()
902 ac97c_writel(chip, MR, AC97C_MR_WRST | AC97C_MR_ENA); in atmel_ac97c_reset()
904 ac97c_writel(chip, MR, AC97C_MR_ENA); in atmel_ac97c_reset()
944 struct atmel_ac97c *chip; in atmel_ac97c_probe() local
994 chip = get_chip(card); in atmel_ac97c_probe()
996 retval = request_irq(irq, atmel_ac97c_interrupt, 0, "AC97C", chip); in atmel_ac97c_probe()
1001 chip->irq = irq; in atmel_ac97c_probe()
1003 spin_lock_init(&chip->lock); in atmel_ac97c_probe()
1009 chip->card = card; in atmel_ac97c_probe()
1010 chip->pclk = pclk; in atmel_ac97c_probe()
1011 chip->pdev = pdev; in atmel_ac97c_probe()
1012 chip->regs = ioremap(regs->start, resource_size(regs)); in atmel_ac97c_probe()
1014 if (!chip->regs) { in atmel_ac97c_probe()
1023 chip->reset_pin = -ENODEV; in atmel_ac97c_probe()
1026 chip->reset_pin = pdata->reset_pin; in atmel_ac97c_probe()
1029 chip->reset_pin = -EINVAL; in atmel_ac97c_probe()
1032 atmel_ac97c_reset(chip); in atmel_ac97c_probe()
1035 ac97c_writel(chip, COMR, AC97C_CSR_OVRUN); in atmel_ac97c_probe()
1036 ac97c_writel(chip, IER, ac97c_readl(chip, IMR) | AC97C_SR_COEVT); in atmel_ac97c_probe()
1038 retval = snd_ac97_bus(card, 0, &ops, chip, &chip->ac97_bus); in atmel_ac97c_probe()
1044 retval = atmel_ac97c_mixer_new(chip); in atmel_ac97c_probe()
1057 chip->dma.rx_chan = dma_request_channel(mask, filter, in atmel_ac97c_probe()
1059 if (chip->dma.rx_chan) { in atmel_ac97c_probe()
1071 dmaengine_slave_config(chip->dma.rx_chan, in atmel_ac97c_probe()
1075 dev_info(&chip->pdev->dev, "using %s for DMA RX\n", in atmel_ac97c_probe()
1076 dev_name(&chip->dma.rx_chan->dev->device)); in atmel_ac97c_probe()
1077 set_bit(DMA_RX_CHAN_PRESENT, &chip->flags); in atmel_ac97c_probe()
1086 chip->dma.tx_chan = dma_request_channel(mask, filter, in atmel_ac97c_probe()
1088 if (chip->dma.tx_chan) { in atmel_ac97c_probe()
1100 dmaengine_slave_config(chip->dma.tx_chan, in atmel_ac97c_probe()
1104 dev_info(&chip->pdev->dev, "using %s for DMA TX\n", in atmel_ac97c_probe()
1105 dev_name(&chip->dma.tx_chan->dev->device)); in atmel_ac97c_probe()
1106 set_bit(DMA_TX_CHAN_PRESENT, &chip->flags); in atmel_ac97c_probe()
1109 if (!test_bit(DMA_RX_CHAN_PRESENT, &chip->flags) && in atmel_ac97c_probe()
1110 !test_bit(DMA_TX_CHAN_PRESENT, &chip->flags)) { in atmel_ac97c_probe()
1118 set_bit(DMA_RX_CHAN_PRESENT, &chip->flags); in atmel_ac97c_probe()
1119 set_bit(DMA_TX_CHAN_PRESENT, &chip->flags); in atmel_ac97c_probe()
1122 retval = atmel_ac97c_pcm_new(chip); in atmel_ac97c_probe()
1137 chip->regs, irq); in atmel_ac97c_probe()
1143 if (test_bit(DMA_RX_CHAN_PRESENT, &chip->flags)) in atmel_ac97c_probe()
1144 dma_release_channel(chip->dma.rx_chan); in atmel_ac97c_probe()
1145 if (test_bit(DMA_TX_CHAN_PRESENT, &chip->flags)) in atmel_ac97c_probe()
1146 dma_release_channel(chip->dma.tx_chan); in atmel_ac97c_probe()
1147 clear_bit(DMA_RX_CHAN_PRESENT, &chip->flags); in atmel_ac97c_probe()
1148 clear_bit(DMA_TX_CHAN_PRESENT, &chip->flags); in atmel_ac97c_probe()
1149 chip->dma.rx_chan = NULL; in atmel_ac97c_probe()
1150 chip->dma.tx_chan = NULL; in atmel_ac97c_probe()
1153 if (gpio_is_valid(chip->reset_pin)) in atmel_ac97c_probe()
1154 gpio_free(chip->reset_pin); in atmel_ac97c_probe()
1156 iounmap(chip->regs); in atmel_ac97c_probe()
1158 free_irq(irq, chip); in atmel_ac97c_probe()
1171 struct atmel_ac97c *chip = card->private_data; in atmel_ac97c_suspend() local
1174 if (test_bit(DMA_RX_READY, &chip->flags)) in atmel_ac97c_suspend()
1175 dw_dma_cyclic_stop(chip->dma.rx_chan); in atmel_ac97c_suspend()
1176 if (test_bit(DMA_TX_READY, &chip->flags)) in atmel_ac97c_suspend()
1177 dw_dma_cyclic_stop(chip->dma.tx_chan); in atmel_ac97c_suspend()
1179 clk_disable_unprepare(chip->pclk); in atmel_ac97c_suspend()
1187 struct atmel_ac97c *chip = card->private_data; in atmel_ac97c_resume() local
1189 clk_prepare_enable(chip->pclk); in atmel_ac97c_resume()
1191 if (test_bit(DMA_RX_READY, &chip->flags)) in atmel_ac97c_resume()
1192 dw_dma_cyclic_start(chip->dma.rx_chan); in atmel_ac97c_resume()
1193 if (test_bit(DMA_TX_READY, &chip->flags)) in atmel_ac97c_resume()
1194 dw_dma_cyclic_start(chip->dma.tx_chan); in atmel_ac97c_resume()
1208 struct atmel_ac97c *chip = get_chip(card); in atmel_ac97c_remove() local
1210 if (gpio_is_valid(chip->reset_pin)) in atmel_ac97c_remove()
1211 gpio_free(chip->reset_pin); in atmel_ac97c_remove()
1213 ac97c_writel(chip, CAMR, 0); in atmel_ac97c_remove()
1214 ac97c_writel(chip, COMR, 0); in atmel_ac97c_remove()
1215 ac97c_writel(chip, MR, 0); in atmel_ac97c_remove()
1217 clk_disable_unprepare(chip->pclk); in atmel_ac97c_remove()
1218 clk_put(chip->pclk); in atmel_ac97c_remove()
1219 iounmap(chip->regs); in atmel_ac97c_remove()
1220 free_irq(chip->irq, chip); in atmel_ac97c_remove()
1223 if (test_bit(DMA_RX_CHAN_PRESENT, &chip->flags)) in atmel_ac97c_remove()
1224 dma_release_channel(chip->dma.rx_chan); in atmel_ac97c_remove()
1225 if (test_bit(DMA_TX_CHAN_PRESENT, &chip->flags)) in atmel_ac97c_remove()
1226 dma_release_channel(chip->dma.tx_chan); in atmel_ac97c_remove()
1227 clear_bit(DMA_RX_CHAN_PRESENT, &chip->flags); in atmel_ac97c_remove()
1228 clear_bit(DMA_TX_CHAN_PRESENT, &chip->flags); in atmel_ac97c_remove()
1229 chip->dma.rx_chan = NULL; in atmel_ac97c_remove()
1230 chip->dma.tx_chan = NULL; in atmel_ac97c_remove()