Thread (17 messages) 17 messages, 5 authors, 2014-08-27

[PATCHv10 1/5] mmc: dw_mmc: Slot quirk "disable-wp" is deprecated.

From: Ulf Hansson <hidden>
Date: 2014-08-11 09:45:33
Also in: linux-devicetree, linux-mmc, linux-samsung-soc

On 7 August 2014 09:37, Jaehoon Chung [off-list ref] wrote:
Slot quirks "disable-wp" is deprecated.
Instead, use the host quirk "disable-wp".
(Because the slot-node is removed in dt-file.)

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Tested-by: Sachin Kamat <redacted>
Acked-by: Seungwon Jeon <redacted>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Tested-by: Doug Anderson <dianders@chromium.org>
Thanks! Applied for next!

Kind regards
Uffe
quoted hunk ↗ jump to hunk
---
 drivers/mmc/host/dw_mmc.c  |   11 +++++++++--
 include/linux/mmc/dw_mmc.h |    2 ++
 2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index 1ac227c..47b52cc 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -997,7 +997,8 @@ static int dw_mci_get_ro(struct mmc_host *mmc)
        int gpio_ro = mmc_gpio_get_ro(mmc);

        /* Use platform get_ro function, else try on board write protect */
-       if (slot->quirks & DW_MCI_SLOT_QUIRK_NO_WRITE_PROTECT)
+       if ((slot->quirks & DW_MCI_SLOT_QUIRK_NO_WRITE_PROTECT) ||
+                       (slot->host->quirks & DW_MCI_QUIRK_NO_WRITE_PROTECT))
                read_only = 0;
        else if (!IS_ERR_VALUE(gpio_ro))
                read_only = gpio_ro;
@@ -2021,8 +2022,11 @@ static int dw_mci_of_get_slot_quirks(struct device *dev, u8 slot)

        /* get quirks */
        for (idx = 0; idx < ARRAY_SIZE(of_slot_quirks); idx++)
-               if (of_get_property(np, of_slot_quirks[idx].quirk, NULL))
+               if (of_get_property(np, of_slot_quirks[idx].quirk, NULL)) {
+                       dev_warn(dev, "Slot quirk %s is deprecated\n",
+                                       of_slot_quirks[idx].quirk);
                        quirks |= of_slot_quirks[idx].id;
+               }

        return quirks;
 }
@@ -2238,6 +2242,9 @@ static struct dw_mci_of_quirks {
        {
                .quirk  = "broken-cd",
                .id     = DW_MCI_QUIRK_BROKEN_CARD_DETECTION,
+       }, {
+               .quirk  = "disable-wp",
+               .id     = DW_MCI_QUIRK_NO_WRITE_PROTECT,
        },
 };
diff --git a/include/linux/mmc/dw_mmc.h b/include/linux/mmc/dw_mmc.h
index babaea9..29ce014 100644
--- a/include/linux/mmc/dw_mmc.h
+++ b/include/linux/mmc/dw_mmc.h
@@ -213,6 +213,8 @@ struct dw_mci_dma_ops {
 #define DW_MCI_QUIRK_HIGHSPEED                 BIT(2)
 /* Unreliable card detection */
 #define DW_MCI_QUIRK_BROKEN_CARD_DETECTION     BIT(3)
+/* No write protect */
+#define DW_MCI_QUIRK_NO_WRITE_PROTECT          BIT(4)

 /* Slot level quirks */
 /* This slot has no write protect */
--
1.7.9.5
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help