diff options
Diffstat (limited to 'drivers/dma/mv_xor.c')
-rw-r--r-- | drivers/dma/mv_xor.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c index ac71f555dd72..e17fad03cb80 100644 --- a/drivers/dma/mv_xor.c +++ b/drivers/dma/mv_xor.c | |||
@@ -1361,13 +1361,16 @@ static int mv_xor_probe(struct platform_device *pdev) | |||
1361 | err_channel_add: | 1361 | err_channel_add: |
1362 | for (i = 0; i < MV_XOR_MAX_CHANNELS; i++) | 1362 | for (i = 0; i < MV_XOR_MAX_CHANNELS; i++) |
1363 | if (xordev->channels[i]) { | 1363 | if (xordev->channels[i]) { |
1364 | mv_xor_channel_remove(xordev->channels[i]); | ||
1364 | if (pdev->dev.of_node) | 1365 | if (pdev->dev.of_node) |
1365 | irq_dispose_mapping(xordev->channels[i]->irq); | 1366 | irq_dispose_mapping(xordev->channels[i]->irq); |
1366 | mv_xor_channel_remove(xordev->channels[i]); | ||
1367 | } | 1367 | } |
1368 | 1368 | ||
1369 | clk_disable_unprepare(xordev->clk); | 1369 | if (!IS_ERR(xordev->clk)) { |
1370 | clk_put(xordev->clk); | 1370 | clk_disable_unprepare(xordev->clk); |
1371 | clk_put(xordev->clk); | ||
1372 | } | ||
1373 | |||
1371 | return ret; | 1374 | return ret; |
1372 | } | 1375 | } |
1373 | 1376 | ||