|
@@ -429,8 +429,9 @@ static int atmel_abdac_probe(struct platform_device *pdev)
|
|
}
|
|
}
|
|
clk_enable(pclk);
|
|
clk_enable(pclk);
|
|
|
|
|
|
- retval = snd_card_create(SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1,
|
|
|
|
- THIS_MODULE, sizeof(struct atmel_abdac), &card);
|
|
|
|
|
|
+ retval = snd_card_new(&pdev->dev, SNDRV_DEFAULT_IDX1,
|
|
|
|
+ SNDRV_DEFAULT_STR1, THIS_MODULE,
|
|
|
|
+ sizeof(struct atmel_abdac), &card);
|
|
if (retval) {
|
|
if (retval) {
|
|
dev_dbg(&pdev->dev, "could not create sound card device\n");
|
|
dev_dbg(&pdev->dev, "could not create sound card device\n");
|
|
goto out_put_sample_clk;
|
|
goto out_put_sample_clk;
|
|
@@ -467,8 +468,6 @@ static int atmel_abdac_probe(struct platform_device *pdev)
|
|
goto out_unmap_regs;
|
|
goto out_unmap_regs;
|
|
}
|
|
}
|
|
|
|
|
|
- snd_card_set_dev(card, &pdev->dev);
|
|
|
|
-
|
|
|
|
if (pdata->dws.dma_dev) {
|
|
if (pdata->dws.dma_dev) {
|
|
dma_cap_mask_t mask;
|
|
dma_cap_mask_t mask;
|
|
|
|
|
|
@@ -492,7 +491,7 @@ static int atmel_abdac_probe(struct platform_device *pdev)
|
|
if (!pdata->dws.dma_dev || !dac->dma.chan) {
|
|
if (!pdata->dws.dma_dev || !dac->dma.chan) {
|
|
dev_dbg(&pdev->dev, "DMA not available\n");
|
|
dev_dbg(&pdev->dev, "DMA not available\n");
|
|
retval = -ENODEV;
|
|
retval = -ENODEV;
|
|
- goto out_unset_card_dev;
|
|
|
|
|
|
+ goto out_unmap_regs;
|
|
}
|
|
}
|
|
|
|
|
|
strcpy(card->driver, "Atmel ABDAC");
|
|
strcpy(card->driver, "Atmel ABDAC");
|
|
@@ -521,9 +520,6 @@ static int atmel_abdac_probe(struct platform_device *pdev)
|
|
out_release_dma:
|
|
out_release_dma:
|
|
dma_release_channel(dac->dma.chan);
|
|
dma_release_channel(dac->dma.chan);
|
|
dac->dma.chan = NULL;
|
|
dac->dma.chan = NULL;
|
|
-out_unset_card_dev:
|
|
|
|
- snd_card_set_dev(card, NULL);
|
|
|
|
- free_irq(irq, dac);
|
|
|
|
out_unmap_regs:
|
|
out_unmap_regs:
|
|
iounmap(dac->regs);
|
|
iounmap(dac->regs);
|
|
out_free_card:
|
|
out_free_card:
|
|
@@ -579,7 +575,6 @@ static int atmel_abdac_remove(struct platform_device *pdev)
|
|
|
|
|
|
dma_release_channel(dac->dma.chan);
|
|
dma_release_channel(dac->dma.chan);
|
|
dac->dma.chan = NULL;
|
|
dac->dma.chan = NULL;
|
|
- snd_card_set_dev(card, NULL);
|
|
|
|
iounmap(dac->regs);
|
|
iounmap(dac->regs);
|
|
free_irq(dac->irq, dac);
|
|
free_irq(dac->irq, dac);
|
|
snd_card_free(card);
|
|
snd_card_free(card);
|