mmc: dw_mmc: remove parsing for each slot subnode
authorShawn Lin <shawn.lin@rock-chips.com>
Fri, 15 Jul 2016 01:47:34 +0000 (09:47 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 26 Sep 2016 19:31:18 +0000 (21:31 +0200)
The intention to remove it comes from the conflict of
what the mmc-core does with the way dw_mmc treats disable-wp.
We could see that 'disable-wp' is supported by core but
it's deprecated by dw_mmc as we don't expect it to be existed
for each slot subnode but should be in the parent node. Based
on searching for all the upstream dts using dw_mmc, we're
confident that none of them use the deprecated way. Maybe
we should take old dtb in consideration but it was a flag day
since the time we was considering to take it away. The fact is
that there are none of dts using the deprecated way since v3.18
or even earlier. So personally I don't believe the old dtb
would/could bootup current kernel(may not?). Let's remove it now.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/dw_mmc.c

index 767af2026f8b4660511d57d3cfce608c3f9d9bac..cea26ab4f97d2b1f933b16043f92d041e9f20989 100644 (file)
@@ -2527,47 +2527,6 @@ static irqreturn_t dw_mci_interrupt(int irq, void *dev_id)
        return IRQ_HANDLED;
 }
 
-#ifdef CONFIG_OF
-/* given a slot, find out the device node representing that slot */
-static struct device_node *dw_mci_of_find_slot_node(struct dw_mci_slot *slot)
-{
-       struct device *dev = slot->mmc->parent;
-       struct device_node *np;
-       const __be32 *addr;
-       int len;
-
-       if (!dev || !dev->of_node)
-               return NULL;
-
-       for_each_child_of_node(dev->of_node, np) {
-               addr = of_get_property(np, "reg", &len);
-               if (!addr || (len < sizeof(int)))
-                       continue;
-               if (be32_to_cpup(addr) == slot->id)
-                       return np;
-       }
-       return NULL;
-}
-
-static void dw_mci_slot_of_parse(struct dw_mci_slot *slot)
-{
-       struct device_node *np = dw_mci_of_find_slot_node(slot);
-
-       if (!np)
-               return;
-
-       if (of_property_read_bool(np, "disable-wp")) {
-               slot->mmc->caps2 |= MMC_CAP2_NO_WRITE_PROTECT;
-               dev_warn(slot->mmc->parent,
-                       "Slot quirk 'disable-wp' is deprecated\n");
-       }
-}
-#else /* CONFIG_OF */
-static void dw_mci_slot_of_parse(struct dw_mci_slot *slot)
-{
-}
-#endif /* CONFIG_OF */
-
 static int dw_mci_init_slot(struct dw_mci *host, unsigned int id)
 {
        struct mmc_host *mmc;
@@ -2630,8 +2589,6 @@ static int dw_mci_init_slot(struct dw_mci *host, unsigned int id)
        if (host->pdata->caps2)
                mmc->caps2 = host->pdata->caps2;
 
-       dw_mci_slot_of_parse(slot);
-
        ret = mmc_of_parse(mmc);
        if (ret)
                goto err_host_allocated;