[PATCH 04/15] dma: imx-sdma: Use clk_prepare_enable/clk_disable_unprepare

From: Fabio Estevam
Date: Fri May 25 2012 - 19:15:19 EST


From: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>

Prepare the clock before enabling it.

Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: <linux-kernel@xxxxxxxxxxxxxxx>
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
---
drivers/dma/imx-sdma.c | 28 ++++++++++++++--------------
1 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index fb4f499..b6174e6 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -868,8 +868,8 @@ static int sdma_alloc_chan_resources(struct dma_chan *chan)
sdmac->peripheral_type = data->peripheral_type;
sdmac->event_id0 = data->dma_request;

- clk_enable(sdmac->sdma->clk_ipg);
- clk_enable(sdmac->sdma->clk_ahb);
+ clk_prepare_enable(sdmac->sdma->clk_ipg);
+ clk_prepare_enable(sdmac->sdma->clk_ahb);

ret = sdma_request_channel(sdmac);
if (ret)
@@ -906,8 +906,8 @@ static void sdma_free_chan_resources(struct dma_chan *chan)

dma_free_coherent(NULL, PAGE_SIZE, sdmac->bd, sdmac->bd_phys);

- clk_disable(sdma->clk_ipg);
- clk_disable(sdma->clk_ahb);
+ clk_disable_unprepare(sdma->clk_ipg);
+ clk_disable_unprepare(sdma->clk_ahb);
}

static struct dma_async_tx_descriptor *sdma_prep_slave_sg(
@@ -1180,14 +1180,14 @@ static void sdma_load_firmware(const struct firmware *fw, void *context)
addr = (void *)header + header->script_addrs_start;
ram_code = (void *)header + header->ram_code_start;

- clk_enable(sdma->clk_ipg);
- clk_enable(sdma->clk_ahb);
+ clk_prepare_enable(sdma->clk_ipg);
+ clk_prepare_enable(sdma->clk_ahb);
/* download the RAM image for SDMA */
sdma_load_script(sdma, ram_code,
header->ram_code_size,
addr->ram_code_start_addr);
- clk_disable(sdma->clk_ipg);
- clk_disable(sdma->clk_ahb);
+ clk_disable_unprepare(sdma->clk_ipg);
+ clk_disable_unprepare(sdma->clk_ahb);

sdma_add_scripts(sdma, addr);

@@ -1229,8 +1229,8 @@ static int __init sdma_init(struct sdma_engine *sdma)
return -ENODEV;
}

- clk_enable(sdma->clk_ipg);
- clk_enable(sdma->clk_ahb);
+ clk_prepare_enable(sdma->clk_ipg);
+ clk_prepare_enable(sdma->clk_ahb);

/* Be sure SDMA has not started yet */
writel_relaxed(0, sdma->regs + SDMA_H_C0PTR);
@@ -1283,14 +1283,14 @@ static int __init sdma_init(struct sdma_engine *sdma)
/* Initializes channel's priorities */
sdma_set_channel_priority(&sdma->channel[0], 7);

- clk_disable(sdma->clk_ipg);
- clk_disable(sdma->clk_ahb);
+ clk_disable_unprepare(sdma->clk_ipg);
+ clk_disable_unprepare(sdma->clk_ahb);

return 0;

err_dma_alloc:
- clk_disable(sdma->clk_ipg);
- clk_disable(sdma->clk_ahb);
+ clk_disable_unprepare(sdma->clk_ipg);
+ clk_disable_unprepare(sdma->clk_ahb);
dev_err(sdma->dev, "initialisation failed with %d\n", ret);
return ret;
}
--
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/