dmaengine: dw: check return code of dma_async_device_register()

dma_async_device_register() may return non-zero error code. In such case we
have to follow error path.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
This commit is contained in:
Andy Shevchenko 2014-05-08 12:01:50 +03:00 committed by Vinod Koul
parent 8be4f523b4
commit 1222934e54
1 changed files with 6 additions and 2 deletions

View File

@ -1659,13 +1659,17 @@ int dw_dma_probe(struct dw_dma_chip *chip, struct dw_dma_platform_data *pdata)
dma_writel(dw, CFG, DW_CFG_DMA_EN); dma_writel(dw, CFG, DW_CFG_DMA_EN);
err = dma_async_device_register(&dw->dma);
if (err)
goto err_dma_register;
dev_info(chip->dev, "DesignWare DMA Controller, %d channels\n", dev_info(chip->dev, "DesignWare DMA Controller, %d channels\n",
nr_channels); nr_channels);
dma_async_device_register(&dw->dma);
return 0; return 0;
err_dma_register:
free_irq(chip->irq, dw);
err_pdata: err_pdata:
clk_disable_unprepare(dw->clk); clk_disable_unprepare(dw->clk);
return err; return err;