OSDN Git Service

dmaengine: at_hdmac: Use devm_clk_get()
authorTudor Ambarus <tudor.ambarus@microchip.com>
Tue, 25 Oct 2022 09:02:58 +0000 (12:02 +0300)
committerVinod Koul <vkoul@kernel.org>
Fri, 11 Nov 2022 06:45:08 +0000 (12:15 +0530)
Clocks that are get with this method will be automatically put on driver
detach. Use devm_clk_get() and simplify the error handling.

Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20221025090306.297886-1-tudor.ambarus@microchip.com
Link: https://lore.kernel.org/r/20221025090306.297886-25-tudor.ambarus@microchip.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/at_hdmac.c

index 10c2506..444aa7d 100644 (file)
@@ -1803,13 +1803,13 @@ static int __init at_dma_probe(struct platform_device *pdev)
        atdma->dma_common.cap_mask = plat_dat->cap_mask;
        atdma->all_chan_mask = (1 << plat_dat->nr_channels) - 1;
 
-       atdma->clk = clk_get(&pdev->dev, "dma_clk");
+       atdma->clk = devm_clk_get(&pdev->dev, "dma_clk");
        if (IS_ERR(atdma->clk))
                return PTR_ERR(atdma->clk);
 
        err = clk_prepare_enable(atdma->clk);
        if (err)
-               goto err_clk_prepare;
+               return err;
 
        /* force dma off, just in case */
        at_dma_off(atdma);
@@ -1942,8 +1942,6 @@ err_desc_pool_create:
        free_irq(platform_get_irq(pdev, 0), atdma);
 err_irq:
        clk_disable_unprepare(atdma->clk);
-err_clk_prepare:
-       clk_put(atdma->clk);
        return err;
 }
 
@@ -1973,7 +1971,6 @@ static int at_dma_remove(struct platform_device *pdev)
        }
 
        clk_disable_unprepare(atdma->clk);
-       clk_put(atdma->clk);
 
        return 0;
 }