summaryrefslogtreecommitdiff
path: root/target/linux/brcm2708/patches-3.18/0047-spi-bcm2708-Prepare-for-Common-Clock-Framework-migra.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-3.18/0047-spi-bcm2708-Prepare-for-Common-Clock-Framework-migra.patch')
-rwxr-xr-xtarget/linux/brcm2708/patches-3.18/0047-spi-bcm2708-Prepare-for-Common-Clock-Framework-migra.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-3.18/0047-spi-bcm2708-Prepare-for-Common-Clock-Framework-migra.patch b/target/linux/brcm2708/patches-3.18/0047-spi-bcm2708-Prepare-for-Common-Clock-Framework-migra.patch
new file mode 100755
index 0000000..b6dc556
--- /dev/null
+++ b/target/linux/brcm2708/patches-3.18/0047-spi-bcm2708-Prepare-for-Common-Clock-Framework-migra.patch
@@ -0,0 +1,50 @@
+From d828fe6d765939e457e87d7f348adfe69cfd4175 Mon Sep 17 00:00:00 2001
+From: notro <notro@tronnes.org>
+Date: Sun, 6 Jul 2014 12:07:25 +0200
+Subject: [PATCH 047/114] spi-bcm2708: Prepare for Common Clock Framework
+ migration
+
+As part of migrating to use the Common Clock Framework, replace clk_enable()
+with clk_prepare_enable() and clk_disable() with clk_disable_unprepare().
+This does not affect behaviour under the current clock implementation.
+
+Also add a missing clk_disable_unprepare() in the probe error path.
+
+Signed-off-by: Noralf Tronnes <notro@tronnes.org>
+---
+ drivers/spi/spi-bcm2708.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/spi/spi-bcm2708.c b/drivers/spi/spi-bcm2708.c
+index b04a57d..349d21f 100644
+--- a/drivers/spi/spi-bcm2708.c
++++ b/drivers/spi/spi-bcm2708.c
+@@ -545,7 +545,7 @@ static int bcm2708_spi_probe(struct platform_device *pdev)
+ }
+
+ /* initialise the hardware */
+- clk_enable(clk);
++ clk_prepare_enable(clk);
+ bcm2708_wr(bs, SPI_CS, SPI_CS_REN | SPI_CS_CLEAR_RX | SPI_CS_CLEAR_TX);
+
+ err = spi_register_master(master);
+@@ -561,6 +561,7 @@ static int bcm2708_spi_probe(struct platform_device *pdev)
+
+ out_free_irq:
+ free_irq(bs->irq, master);
++ clk_disable_unprepare(bs->clk);
+ out_workqueue:
+ destroy_workqueue(bs->workq);
+ out_iounmap:
+@@ -585,7 +586,7 @@ static int bcm2708_spi_remove(struct platform_device *pdev)
+
+ flush_work(&bs->work);
+
+- clk_disable(bs->clk);
++ clk_disable_unprepare(bs->clk);
+ clk_put(bs->clk);
+ free_irq(bs->irq, master);
+ iounmap(bs->base);
+--
+1.8.3.2
+