The exynos code claimed wp-gpio with devm_gpio_request() but never did
anything with it.  That meant that anyone using a write protect GPIO
would effectively be write protected all the time.

A future change will move the wp-gpio support to the core dw_mmc.c
file.  Now the exynos-specific code won't claim the GPIO but will
just set the DW_MCI_QUIRK_NO_WRITE_PROTECT quirk if write protect
won't be used.

Signed-off-by: Doug Anderson <diand...@chromium.org>

---
 drivers/mmc/host/dw_mmc-exynos.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/mmc/host/dw_mmc-exynos.c b/drivers/mmc/host/dw_mmc-exynos.c
index 4d50da6..58cc03e 100644
--- a/drivers/mmc/host/dw_mmc-exynos.c
+++ b/drivers/mmc/host/dw_mmc-exynos.c
@@ -175,12 +175,12 @@ static int dw_mci_exynos_setup_bus(struct dw_mci *host,
                }
        }
 
-       gpio = of_get_named_gpio(slot_np, "wp-gpios", 0);
-       if (gpio_is_valid(gpio)) {
-               if (devm_gpio_request(host->dev, gpio, "dw-mci-wp"))
-                       dev_info(host->dev, "gpio [%d] request failed\n",
-                                               gpio);
-       } else {
+       /*
+        * If there are no write-protect GPIOs present then we assume no write
+        * protect.  The mci_readl() in dw_mmc.c won't work since it's not
+        * hooked up on exynos.
+        */
+       if (!of_find_property(slot_np, "wp-gpios", NULL)) {
                dev_info(host->dev, "wp gpio not available");
                host->pdata->quirks |= DW_MCI_QUIRK_NO_WRITE_PROTECT;
        }
-- 
1.7.7.3

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to