summaryrefslogtreecommitdiff
path: root/recipes-kernel/linux/linux-toradex-mainline-4.14/0016-Revert-mmc-core-simplify-ida-handling.patch
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2018-04-20 11:34:14 +0200
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2018-06-18 15:59:16 +0200
commit19d270b8a11457da3b2f8c049517d0ddf2bd7426 (patch)
tree2a4c67e6bc6b8d8cd97de594ec6e55054552185d /recipes-kernel/linux/linux-toradex-mainline-4.14/0016-Revert-mmc-core-simplify-ida-handling.patch
parentd777e812beda3c6e42bf440f5561ed2d8786e74e (diff)
linux-toradex-mainline: more patches also for apalis t30
Move the USB device aka gadget fix from Tezi to here. Add patches to force fixed IDs for SDMMC controllers. Add patch to fix for PLL_U rate configuration (T30). Add Apalis T30 specific patch for PCIe fix hacks. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com> (cherry picked from commit 7da6da579b7d90b7ca6560c880bd3f58ecb73df2)
Diffstat (limited to 'recipes-kernel/linux/linux-toradex-mainline-4.14/0016-Revert-mmc-core-simplify-ida-handling.patch')
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline-4.14/0016-Revert-mmc-core-simplify-ida-handling.patch64
1 files changed, 64 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-toradex-mainline-4.14/0016-Revert-mmc-core-simplify-ida-handling.patch b/recipes-kernel/linux/linux-toradex-mainline-4.14/0016-Revert-mmc-core-simplify-ida-handling.patch
new file mode 100644
index 0000000..4a8ba85
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-mainline-4.14/0016-Revert-mmc-core-simplify-ida-handling.patch
@@ -0,0 +1,64 @@
+From 50a063a5271868aaf17ee86741e6452a6c405a50 Mon Sep 17 00:00:00 2001
+Message-Id: <50a063a5271868aaf17ee86741e6452a6c405a50.1529072479.git.marcel.ziswiler@toradex.com>
+In-Reply-To: <fb4764e8eb658d35e8fc62ae79c77e1f6e2b0ef3.1529072479.git.marcel.ziswiler@toradex.com>
+References: <fb4764e8eb658d35e8fc62ae79c77e1f6e2b0ef3.1529072479.git.marcel.ziswiler@toradex.com>
+From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
+Date: Thu, 19 Apr 2018 13:49:30 +0200
+Subject: [PATCH 16/27] Revert "mmc: core: simplify ida handling"
+
+This reverts commit 7413d1f509eb0ee605973c1a6da9911700c80012.
+
+Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
+---
+ drivers/mmc/core/host.c | 20 ++++++++++++++++----
+ 1 file changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c
+index 3740fb0052a4..841b9ce01a8e 100644
+--- a/drivers/mmc/core/host.c
++++ b/drivers/mmc/core/host.c
+@@ -35,11 +35,14 @@
+ #define cls_dev_to_mmc_host(d) container_of(d, struct mmc_host, class_dev)
+
+ static DEFINE_IDA(mmc_host_ida);
++static DEFINE_SPINLOCK(mmc_host_lock);
+
+ static void mmc_host_classdev_release(struct device *dev)
+ {
+ struct mmc_host *host = cls_dev_to_mmc_host(dev);
+- ida_simple_remove(&mmc_host_ida, host->index);
++ spin_lock(&mmc_host_lock);
++ ida_remove(&mmc_host_ida, host->index);
++ spin_unlock(&mmc_host_lock);
+ kfree(host);
+ }
+
+@@ -358,13 +361,22 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev)
+ /* scanning will be enabled when we're ready */
+ host->rescan_disable = 1;
+
+- err = ida_simple_get(&mmc_host_ida, 0, 0, GFP_KERNEL);
+- if (err < 0) {
++again:
++ if (!ida_pre_get(&mmc_host_ida, GFP_KERNEL)) {
+ kfree(host);
+ return NULL;
+ }
+
+- host->index = err;
++ spin_lock(&mmc_host_lock);
++ err = ida_get_new(&mmc_host_ida, &host->index);
++ spin_unlock(&mmc_host_lock);
++
++ if (err == -EAGAIN) {
++ goto again;
++ } else if (err) {
++ kfree(host);
++ return NULL;
++ }
+
+ dev_set_name(&host->class_dev, "mmc%d", host->index);
+
+--
+2.14.4
+