Message ID | 1347900122-25101-2-git-send-email-m-karicheri2@ti.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Headers | show |
>> -----Original Message----- >> From: Karicheri, Muralidharan >> Sent: Monday, September 17, 2012 12:42 PM >> To: spi-devel-general@lists.sourceforge.net; linux-kernel@vger.kernel.org; davinci-linux- >> open-source@linux.davincidsp.com; grant.likely@secretlab.ca; linux-arm- >> kernel@lists.infradead.org >> Cc: Chemparathy, Cyril; Karicheri, Muralidharan >> Subject: [PATCH 1/1] spi:clk: preparation for switch to common clock framework >> >> As a first step towards migrating davinci platforms to use common clock >> framework, replace all instances of clk_enable() with clk_prepare_enable() >> and clk_disable() with clk_disable_unprepare(). Until the platform is >> switched to use the CONFIG_HAVE_CLK_PREPARE Kconfig variable, this just >> adds a might_sleep() call and would work without any issues. >> >> This will make it easy later to switch to common clk based implementation >> of clk driver from DaVinci specific driver. >> >> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com> >> Reviewed-by: Mike Turquette <mturquette@linaro.org> >> >> diff --git a/drivers/spi/spi-davinci.c b/drivers/spi/spi-davinci.c >> index c1ec52d..3f54f9e 100644 >> --- a/drivers/spi/spi-davinci.c >> +++ b/drivers/spi/spi-davinci.c >> @@ -843,7 +843,7 @@ static int __devinit davinci_spi_probe(struct platform_device >> *pdev) >> ret = -ENODEV; >> goto put_master; >> } >> - clk_enable(dspi->clk); >> + clk_prepare_enable(dspi->clk); >> >> master->bus_num = pdev->id; >> master->num_chipselect = pdata->num_chipselect; >> @@ -927,7 +927,7 @@ free_dma: >> dma_release_channel(dspi->dma_rx); >> dma_release_channel(dspi->dma_tx); >> free_clk: >> - clk_disable(dspi->clk); >> + clk_disable_unprepare(dspi->clk); >> clk_put(dspi->clk); >> put_master: >> spi_master_put(master); >> @@ -963,7 +963,7 @@ static int __devexit davinci_spi_remove(struct platform_device >> *pdev) >> >> spi_bitbang_stop(&dspi->bitbang); >> >> - clk_disable(dspi->clk); >> + clk_disable_unprepare(dspi->clk); >> clk_put(dspi->clk); >> spi_master_put(master); >> free_irq(dspi->irq, dspi); >> -- >> 1.7.9.5 Could you please review and apply this patch to linux-next? Murali Karicheri Software Design Engineer
On 9/17/2012 10:12 PM, Murali Karicheri wrote: > As a first step towards migrating davinci platforms to use common clock > framework, replace all instances of clk_enable() with clk_prepare_enable() > and clk_disable() with clk_disable_unprepare(). Until the platform is > switched to use the CONFIG_HAVE_CLK_PREPARE Kconfig variable, this just > adds a might_sleep() call and would work without any issues. > > This will make it easy later to switch to common clk based implementation > of clk driver from DaVinci specific driver. > > Signed-off-by: Murali Karicheri <m-karicheri2@ti.com> > Reviewed-by: Mike Turquette <mturquette@linaro.org> This patch had to be applied manually and with some fuzz when I applied it to latest linus/master. There were no conflicts though and once I applied it, I was able to test SPI flash on DA850 EVM successfully using it. Acked-by: Sekhar Nori <nsekhar@ti.com> I am hoping this patch can still go in v3.7. I realize we are in the middle of the merge window though. Thanks, Sekhar
diff --git a/drivers/spi/spi-davinci.c b/drivers/spi/spi-davinci.c index c1ec52d..3f54f9e 100644 --- a/drivers/spi/spi-davinci.c +++ b/drivers/spi/spi-davinci.c @@ -843,7 +843,7 @@ static int __devinit davinci_spi_probe(struct platform_device *pdev) ret = -ENODEV; goto put_master; } - clk_enable(dspi->clk); + clk_prepare_enable(dspi->clk); master->bus_num = pdev->id; master->num_chipselect = pdata->num_chipselect; @@ -927,7 +927,7 @@ free_dma: dma_release_channel(dspi->dma_rx); dma_release_channel(dspi->dma_tx); free_clk: - clk_disable(dspi->clk); + clk_disable_unprepare(dspi->clk); clk_put(dspi->clk); put_master: spi_master_put(master); @@ -963,7 +963,7 @@ static int __devexit davinci_spi_remove(struct platform_device *pdev) spi_bitbang_stop(&dspi->bitbang); - clk_disable(dspi->clk); + clk_disable_unprepare(dspi->clk); clk_put(dspi->clk); spi_master_put(master); free_irq(dspi->irq, dspi);