aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq806x/patches/0134-spi-qup-Fix-order-of-spi_register_master.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ipq806x/patches/0134-spi-qup-Fix-order-of-spi_register_master.patch')
-rw-r--r--target/linux/ipq806x/patches/0134-spi-qup-Fix-order-of-spi_register_master.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/target/linux/ipq806x/patches/0134-spi-qup-Fix-order-of-spi_register_master.patch b/target/linux/ipq806x/patches/0134-spi-qup-Fix-order-of-spi_register_master.patch
new file mode 100644
index 0000000000..c8738ccac8
--- /dev/null
+++ b/target/linux/ipq806x/patches/0134-spi-qup-Fix-order-of-spi_register_master.patch
@@ -0,0 +1,46 @@
+From a7357be131e30fd1fb987b2cb343bc81db487f96 Mon Sep 17 00:00:00 2001
+From: Andy Gross <agross@codeaurora.org>
+Date: Thu, 12 Jun 2014 14:34:11 -0500
+Subject: [PATCH 134/182] spi: qup: Fix order of spi_register_master
+
+This patch moves the devm_spi_register_master below the initialization of the
+runtime_pm. If done in the wrong order, the spi_register_master fails if any
+probed slave devices issue SPI transactions.
+
+Signed-off-by: Andy Gross <agross@codeaurora.org>
+Acked-by: Ivan T. Ivanov <iivanov@mm-sol.com>
+---
+ drivers/spi/spi-qup.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/spi/spi-qup.c b/drivers/spi/spi-qup.c
+index dc128ac..a404298 100644
+--- a/drivers/spi/spi-qup.c
++++ b/drivers/spi/spi-qup.c
+@@ -619,16 +619,19 @@ static int spi_qup_probe(struct platform_device *pdev)
+ if (ret)
+ goto error;
+
+- ret = devm_spi_register_master(dev, master);
+- if (ret)
+- goto error;
+-
+ pm_runtime_set_autosuspend_delay(dev, MSEC_PER_SEC);
+ pm_runtime_use_autosuspend(dev);
+ pm_runtime_set_active(dev);
+ pm_runtime_enable(dev);
++
++ ret = devm_spi_register_master(dev, master);
++ if (ret)
++ goto disable_pm;
++
+ return 0;
+
++disable_pm:
++ pm_runtime_disable(&pdev->dev);
+ error:
+ clk_disable_unprepare(cclk);
+ clk_disable_unprepare(iclk);
+--
+1.7.10.4
+