dmaengine: dw: enable clock before access
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 8 May 2014 09:01:48 +0000 (12:01 +0300)
committerVinod Koul <vinod.koul@intel.com>
Thu, 22 May 2014 10:07:24 +0000 (15:37 +0530)
hclk signal is a bus clock. So, it means we have to have it enabled during
access to the DMA controller. This patch makes sure that we enable clock before
access to the device, though it currently works on Intel hardware.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/dw/core.c

index 7a740769c2fa592a0cbf7a73cdf2166e655e63d2..009dc62f94377ce5956e8cbdc60841b029016116 100644 (file)
@@ -1493,6 +1493,11 @@ int dw_dma_probe(struct dw_dma_chip *chip, struct dw_dma_platform_data *pdata)
        dw->regs = chip->regs;
        chip->dw = dw;
 
+       dw->clk = devm_clk_get(chip->dev, "hclk");
+       if (IS_ERR(dw->clk))
+               return PTR_ERR(dw->clk);
+       clk_prepare_enable(dw->clk);
+
        dw_params = dma_read_byaddr(chip->regs, DW_PARAMS);
        autocfg = dw_params >> DW_PARAMS_EN & 0x1;
 
@@ -1520,11 +1525,6 @@ int dw_dma_probe(struct dw_dma_chip *chip, struct dw_dma_platform_data *pdata)
        if (!dw->chan)
                return -ENOMEM;
 
-       dw->clk = devm_clk_get(chip->dev, "hclk");
-       if (IS_ERR(dw->clk))
-               return PTR_ERR(dw->clk);
-       clk_prepare_enable(dw->clk);
-
        /* Get hardware configuration parameters */
        if (autocfg) {
                max_blk_size = dma_readl(dw, MAX_BLK_SIZE);
This page took 0.025842 seconds and 5 git commands to generate.