diff options
Diffstat (limited to 'target/linux/brcm63xx/patches-3.9/005-spi-bcm63xx-properly-prepare-clocks-before-enabling-.patch')
-rw-r--r-- | target/linux/brcm63xx/patches-3.9/005-spi-bcm63xx-properly-prepare-clocks-before-enabling-.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/target/linux/brcm63xx/patches-3.9/005-spi-bcm63xx-properly-prepare-clocks-before-enabling-.patch b/target/linux/brcm63xx/patches-3.9/005-spi-bcm63xx-properly-prepare-clocks-before-enabling-.patch new file mode 100644 index 000000000..b75a57c0f --- /dev/null +++ b/target/linux/brcm63xx/patches-3.9/005-spi-bcm63xx-properly-prepare-clocks-before-enabling-.patch @@ -0,0 +1,61 @@ +From e504d3ed9b35f43e61cf239b103667d87cd7bf3c Mon Sep 17 00:00:00 2001 +From: Jonas Gorski <jogo@openwrt.org> +Date: Mon, 10 Sep 2012 01:26:55 +0200 +Subject: [PATCH 03/12] spi/bcm63xx: properly prepare clocks before enabling + them + +Use proper clk_prepare/unprepare calls in preparation for switching +to the generic clock framework. + +Signed-off-by: Jonas Gorski <jogo@openwrt.org> +--- + drivers/spi/spi-bcm63xx.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/drivers/spi/spi-bcm63xx.c ++++ b/drivers/spi/spi-bcm63xx.c +@@ -493,7 +493,7 @@ static int bcm63xx_spi_probe(struct plat + } + + /* Initialize hardware */ +- clk_enable(bs->clk); ++ clk_prepare_enable(bs->clk); + bcm_spi_writeb(bs, SPI_INTR_CLEAR_ALL, SPI_INT_STATUS); + + /* register and we are done */ +@@ -509,7 +509,7 @@ static int bcm63xx_spi_probe(struct plat + return 0; + + out_clk_disable: +- clk_disable(clk); ++ clk_disable_unprepare(clk); + out_err: + platform_set_drvdata(pdev, NULL); + spi_master_put(master); +@@ -530,7 +530,7 @@ static int bcm63xx_spi_remove(struct pla + bcm_spi_writeb(bs, 0, SPI_INT_MASK); + + /* HW shutdown */ +- clk_disable(bs->clk); ++ clk_disable_unprepare(bs->clk); + clk_put(bs->clk); + + platform_set_drvdata(pdev, 0); +@@ -549,7 +549,7 @@ static int bcm63xx_spi_suspend(struct de + + spi_master_suspend(master); + +- clk_disable(bs->clk); ++ clk_disable_unprepare(bs->clk); + + return 0; + } +@@ -560,7 +560,7 @@ static int bcm63xx_spi_resume(struct dev + platform_get_drvdata(to_platform_device(dev)); + struct bcm63xx_spi *bs = spi_master_get_devdata(master); + +- clk_enable(bs->clk); ++ clk_prepare_enable(bs->clk); + + spi_master_resume(master); + |