From 0ebafefcaa7a383b728d977a718e23e69ce84050 Mon Sep 17 00:00:00 2001 From: Richard Zhao Date: Tue, 15 Nov 2011 14:48:07 +0800 Subject: net: fec: add clk_prepare/clk_unprepare It's for migrating to generic clk framework API. Signed-off-by: Richard Zhao Signed-off-by: Sascha Hauer Signed-off-by: Shawn Guo Cc: David S. Miller Acked-by: Marek Vasut --- drivers/net/ethernet/freescale/fec.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'drivers') diff --git a/drivers/net/ethernet/freescale/fec.c b/drivers/net/ethernet/freescale/fec.c index c136230d50bb..112af9b056dc 100644 --- a/drivers/net/ethernet/freescale/fec.c +++ b/drivers/net/ethernet/freescale/fec.c @@ -1591,7 +1591,7 @@ fec_probe(struct platform_device *pdev) ret = PTR_ERR(fep->clk); goto failed_clk; } - clk_enable(fep->clk); + clk_prepare_enable(fep->clk); ret = fec_enet_init(ndev); if (ret) @@ -1614,7 +1614,7 @@ failed_register: fec_enet_mii_remove(fep); failed_mii_init: failed_init: - clk_disable(fep->clk); + clk_disable_unprepare(fep->clk); clk_put(fep->clk); failed_clk: for (i = 0; i < FEC_IRQ_NUM; i++) { @@ -1641,7 +1641,7 @@ fec_drv_remove(struct platform_device *pdev) fec_stop(ndev); fec_enet_mii_remove(fep); - clk_disable(fep->clk); + clk_disable_unprepare(fep->clk); clk_put(fep->clk); iounmap(fep->hwp); unregister_netdev(ndev); @@ -1667,7 +1667,7 @@ fec_suspend(struct device *dev) fec_stop(ndev); netif_device_detach(ndev); } - clk_disable(fep->clk); + clk_disable_unprepare(fep->clk); return 0; } @@ -1678,7 +1678,7 @@ fec_resume(struct device *dev) struct net_device *ndev = dev_get_drvdata(dev); struct fec_enet_private *fep = netdev_priv(ndev); - clk_enable(fep->clk); + clk_prepare_enable(fep->clk); if (netif_running(ndev)) { fec_restart(ndev, fep->full_duplex); netif_device_attach(ndev); -- cgit v1.2.3 From 759a2e30d288032130f1f77092e72d4ec87ad4d0 Mon Sep 17 00:00:00 2001 From: Shawn Guo Date: Tue, 20 Dec 2011 13:54:00 +0800 Subject: dma: mxs-dma: convert to clk_prepare/clk_unprepare The patch converts mxs-dma driver to clk_prepare/clk_unprepare by using helper functions clk_prepare_enable/clk_disable_unprepare. Signed-off-by: Shawn Guo Acked-by: Marek Vasut Acked-by: Vinod Koul --- drivers/dma/mxs-dma.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'drivers') diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c index b4588bdd98bb..fc903c0ed234 100644 --- a/drivers/dma/mxs-dma.c +++ b/drivers/dma/mxs-dma.c @@ -334,7 +334,7 @@ static int mxs_dma_alloc_chan_resources(struct dma_chan *chan) goto err_irq; } - ret = clk_enable(mxs_dma->clk); + ret = clk_prepare_enable(mxs_dma->clk); if (ret) goto err_clk; @@ -372,7 +372,7 @@ static void mxs_dma_free_chan_resources(struct dma_chan *chan) dma_free_coherent(mxs_dma->dma_device.dev, PAGE_SIZE, mxs_chan->ccw, mxs_chan->ccw_phys); - clk_disable(mxs_dma->clk); + clk_disable_unprepare(mxs_dma->clk); } static struct dma_async_tx_descriptor *mxs_dma_prep_slave_sg( @@ -578,7 +578,7 @@ static int __init mxs_dma_init(struct mxs_dma_engine *mxs_dma) { int ret; - ret = clk_enable(mxs_dma->clk); + ret = clk_prepare_enable(mxs_dma->clk); if (ret) goto err_out; @@ -604,7 +604,7 @@ static int __init mxs_dma_init(struct mxs_dma_engine *mxs_dma) writel(MXS_DMA_CHANNELS_MASK << MXS_DMA_CHANNELS, mxs_dma->base + HW_APBHX_CTRL1 + MXS_SET_ADDR); - clk_disable(mxs_dma->clk); + clk_disable_unprepare(mxs_dma->clk); return 0; -- cgit v1.2.3 From efdfc52c0470fb650cb2ee44cf030ec04e97b954 Mon Sep 17 00:00:00 2001 From: Shawn Guo Date: Tue, 20 Dec 2011 13:57:41 +0800 Subject: mmc: mxs-mmc: convert to clk_prepare/clk_unprepare The patch converts mxs-mmc driver to clk_prepare/clk_unprepare by using helper functions clk_prepare_enable/clk_disable_unprepare. Signed-off-by: Shawn Guo Cc: Chris Ball Acked-by: Marek Vasut --- drivers/mmc/host/mxs-mmc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'drivers') diff --git a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c index 99b449d26a4d..973011f9a298 100644 --- a/drivers/mmc/host/mxs-mmc.c +++ b/drivers/mmc/host/mxs-mmc.c @@ -713,7 +713,7 @@ static int mxs_mmc_probe(struct platform_device *pdev) ret = PTR_ERR(host->clk); goto out_iounmap; } - clk_enable(host->clk); + clk_prepare_enable(host->clk); mxs_mmc_reset(host); @@ -772,7 +772,7 @@ out_free_dma: if (host->dmach) dma_release_channel(host->dmach); out_clk_put: - clk_disable(host->clk); + clk_disable_unprepare(host->clk); clk_put(host->clk); out_iounmap: iounmap(host->base); @@ -798,7 +798,7 @@ static int mxs_mmc_remove(struct platform_device *pdev) if (host->dmach) dma_release_channel(host->dmach); - clk_disable(host->clk); + clk_disable_unprepare(host->clk); clk_put(host->clk); iounmap(host->base); @@ -819,7 +819,7 @@ static int mxs_mmc_suspend(struct device *dev) ret = mmc_suspend_host(mmc); - clk_disable(host->clk); + clk_disable_unprepare(host->clk); return ret; } @@ -830,7 +830,7 @@ static int mxs_mmc_resume(struct device *dev) struct mxs_mmc_host *host = mmc_priv(mmc); int ret = 0; - clk_enable(host->clk); + clk_prepare_enable(host->clk); ret = mmc_resume_host(mmc); -- cgit v1.2.3 From f1f802c9026da6774a72963178ff7435f539fb09 Mon Sep 17 00:00:00 2001 From: Shawn Guo Date: Tue, 20 Dec 2011 14:02:05 +0800 Subject: mtd: gpmi-lib: convert to clk_prepare/clk_unprepare The patch converts gpmi nand driver to clk_prepare/clk_unprepare by using helper functions clk_prepare_enable/clk_disable_unprepare. Signed-off-by: Shawn Guo Cc: Huang Shijie Cc: Artem Bityutskiy Acked-by: Marek Vasut --- drivers/mtd/nand/gpmi-nand/gpmi-lib.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'drivers') diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c index de4db7604a3f..2a56fc6f399a 100644 --- a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c +++ b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c @@ -126,7 +126,7 @@ int gpmi_init(struct gpmi_nand_data *this) struct resources *r = &this->resources; int ret; - ret = clk_enable(r->clock); + ret = clk_prepare_enable(r->clock); if (ret) goto err_out; ret = gpmi_reset_block(r->gpmi_regs, false); @@ -146,7 +146,7 @@ int gpmi_init(struct gpmi_nand_data *this) /* Select BCH ECC. */ writel(BM_GPMI_CTRL1_BCH_MODE, r->gpmi_regs + HW_GPMI_CTRL1_SET); - clk_disable(r->clock); + clk_disable_unprepare(r->clock); return 0; err_out: return ret; @@ -202,7 +202,7 @@ int bch_set_geometry(struct gpmi_nand_data *this) ecc_strength = bch_geo->ecc_strength >> 1; page_size = bch_geo->page_size; - ret = clk_enable(r->clock); + ret = clk_prepare_enable(r->clock); if (ret) goto err_out; @@ -229,7 +229,7 @@ int bch_set_geometry(struct gpmi_nand_data *this) writel(BM_BCH_CTRL_COMPLETE_IRQ_EN, r->bch_regs + HW_BCH_CTRL_SET); - clk_disable(r->clock); + clk_disable_unprepare(r->clock); return 0; err_out: return ret; @@ -704,7 +704,7 @@ void gpmi_begin(struct gpmi_nand_data *this) int ret; /* Enable the clock. */ - ret = clk_enable(r->clock); + ret = clk_prepare_enable(r->clock); if (ret) { pr_err("We failed in enable the clk\n"); goto err_out; @@ -773,7 +773,7 @@ err_out: void gpmi_end(struct gpmi_nand_data *this) { struct resources *r = &this->resources; - clk_disable(r->clock); + clk_disable_unprepare(r->clock); } /* Clears a BCH interrupt. */ -- cgit v1.2.3 From e735489976c356a189f7332e6ff4b0dee2ede434 Mon Sep 17 00:00:00 2001 From: Shawn Guo Date: Tue, 20 Dec 2011 14:05:52 +0800 Subject: net: flexcan: convert to clk_prepare/clk_unprepare The patch converts flexcan driver to clk_prepare/clk_unprepare by using helper functions clk_prepare_enable/clk_disable_unprepare. Signed-off-by: Shawn Guo Cc: Marc Kleine-Budde Cc: David S. Miller --- drivers/net/can/flexcan.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'drivers') diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c index e02337953f41..fdd0f3fbeabb 100644 --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c @@ -802,7 +802,7 @@ static int flexcan_open(struct net_device *dev) struct flexcan_priv *priv = netdev_priv(dev); int err; - clk_enable(priv->clk); + clk_prepare_enable(priv->clk); err = open_candev(dev); if (err) @@ -824,7 +824,7 @@ static int flexcan_open(struct net_device *dev) out_close: close_candev(dev); out: - clk_disable(priv->clk); + clk_disable_unprepare(priv->clk); return err; } @@ -838,7 +838,7 @@ static int flexcan_close(struct net_device *dev) flexcan_chip_stop(dev); free_irq(dev->irq, dev); - clk_disable(priv->clk); + clk_disable_unprepare(priv->clk); close_candev(dev); @@ -877,7 +877,7 @@ static int __devinit register_flexcandev(struct net_device *dev) struct flexcan_regs __iomem *regs = priv->base; u32 reg, err; - clk_enable(priv->clk); + clk_prepare_enable(priv->clk); /* select "bus clock", chip must be disabled */ flexcan_chip_disable(priv); @@ -911,7 +911,7 @@ static int __devinit register_flexcandev(struct net_device *dev) out: /* disable core and turn off clocks */ flexcan_chip_disable(priv); - clk_disable(priv->clk); + clk_disable_unprepare(priv->clk); return err; } -- cgit v1.2.3 From a481377013c1c07dac0421886db7a6b4c3081c49 Mon Sep 17 00:00:00 2001 From: Shawn Guo Date: Tue, 20 Dec 2011 14:10:29 +0800 Subject: serial: mxs-auart: convert to clk_prepare/clk_unprepare The patch converts mxs-auart driver to clk_prepare/clk_unprepare by using helper functions clk_prepare_enable/clk_disable_unprepare. Signed-off-by: Shawn Guo Cc: Sascha Hauer Cc: Alan Cox --- drivers/tty/serial/mxs-auart.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'drivers') diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c index 7e02c9c344fe..c33500a5e032 100644 --- a/drivers/tty/serial/mxs-auart.c +++ b/drivers/tty/serial/mxs-auart.c @@ -424,7 +424,7 @@ static int mxs_auart_startup(struct uart_port *u) { struct mxs_auart_port *s = to_auart_port(u); - clk_enable(s->clk); + clk_prepare_enable(s->clk); writel(AUART_CTRL0_CLKGATE, u->membase + AUART_CTRL0_CLR); @@ -453,7 +453,7 @@ static void mxs_auart_shutdown(struct uart_port *u) writel(AUART_INTR_RXIEN | AUART_INTR_RTIEN | AUART_INTR_CTSMIEN, u->membase + AUART_INTR_CLR); - clk_disable(s->clk); + clk_disable_unprepare(s->clk); } static unsigned int mxs_auart_tx_empty(struct uart_port *u) @@ -634,7 +634,7 @@ auart_console_setup(struct console *co, char *options) if (!s) return -ENODEV; - clk_enable(s->clk); + clk_prepare_enable(s->clk); if (options) uart_parse_options(options, &baud, &parity, &bits, &flow); @@ -643,7 +643,7 @@ auart_console_setup(struct console *co, char *options) ret = uart_set_options(&s->port, co, baud, parity, bits, flow); - clk_disable(s->clk); + clk_disable_unprepare(s->clk); return ret; } -- cgit v1.2.3 From ca4c22d391b8a5ac2b79135213ca68abc7aeb984 Mon Sep 17 00:00:00 2001 From: Shawn Guo Date: Tue, 20 Dec 2011 14:12:54 +0800 Subject: video: mxsfb: convert to clk_prepare/clk_unprepare The patch converts mxsfb driver to clk_prepare/clk_unprepare by using helper functions clk_prepare_enable/clk_disable_unprepare. Signed-off-by: Shawn Guo Cc: Sascha Hauer Acked-by: Marek Vasut Acked-by: Florian Tobias Schandinat --- drivers/video/mxsfb.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'drivers') diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c index d837d63c456f..eb3c5eea1a0f 100644 --- a/drivers/video/mxsfb.c +++ b/drivers/video/mxsfb.c @@ -328,7 +328,7 @@ static void mxsfb_enable_controller(struct fb_info *fb_info) dev_dbg(&host->pdev->dev, "%s\n", __func__); - clk_enable(host->clk); + clk_prepare_enable(host->clk); clk_set_rate(host->clk, PICOS2KHZ(fb_info->var.pixclock) * 1000U); /* if it was disabled, re-enable the mode again */ @@ -368,7 +368,7 @@ static void mxsfb_disable_controller(struct fb_info *fb_info) writel(VDCTRL4_SYNC_SIGNALS_ON, host->base + LCDC_VDCTRL4 + REG_CLR); - clk_disable(host->clk); + clk_disable_unprepare(host->clk); host->enabled = 0; } @@ -668,7 +668,7 @@ static int __devinit mxsfb_restore_mode(struct mxsfb_info *host) line_count = fb_info->fix.smem_len / fb_info->fix.line_length; fb_info->fix.ypanstep = 1; - clk_enable(host->clk); + clk_prepare_enable(host->clk); host->enabled = 1; return 0; @@ -841,7 +841,7 @@ static int __devinit mxsfb_probe(struct platform_device *pdev) error_register: if (host->enabled) - clk_disable(host->clk); + clk_disable_unprepare(host->clk); fb_destroy_modelist(&fb_info->modelist); error_init_fb: kfree(fb_info->pseudo_palette); -- cgit v1.2.3 From 5c77f5608a5081632b9530e5f3260f8b63247bd8 Mon Sep 17 00:00:00 2001 From: Shawn Guo Date: Tue, 20 Dec 2011 14:46:38 +0800 Subject: clk: add config option HAVE_CLK_PREPARE into Kconfig The commit 40d3e0f (clk: provide prepare/unprepare functions) provides the config option HAVE_CLK_PREPARE for platforms that have prepare/unprepare implementation to select. This patch adds the option into drivers/clk/Kconfig, so that it can be actually selected. Signed-off-by: Shawn Guo Cc: Russell King --- drivers/clk/Kconfig | 3 +++ 1 file changed, 3 insertions(+) (limited to 'drivers') diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig index 35309274ad68..9b3cd08cd0ed 100644 --- a/drivers/clk/Kconfig +++ b/drivers/clk/Kconfig @@ -3,5 +3,8 @@ config CLKDEV_LOOKUP bool select HAVE_CLK +config HAVE_CLK_PREPARE + bool + config HAVE_MACH_CLKDEV bool -- cgit v1.2.3