mmc: core: Collect common code for card ocr validation
authorUlf Hansson <ulf.hansson@linaro.org>
Mon, 16 Sep 2013 10:06:15 +0000 (12:06 +0200)
committerlintao <lintao@rock-chips.com>
Fri, 7 Mar 2014 09:36:24 +0000 (17:36 +0800)
Since mmc_select_voltage now only gets called from the attach sequence,
it makes sense to move the out of spec validations of the card ocr into
this function.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/core/core.c
drivers/mmc/core/mmc.c
drivers/mmc/core/sd.c
drivers/mmc/core/sdio.c

index 2fea94cef71f2fba882e766231f6a9e99c2039c1..e72067bc953d39fb9b086382c0835a6bbcc283c0 100644 (file)
@@ -1358,6 +1358,16 @@ u32 mmc_select_voltage(struct mmc_host *host, u32 ocr)
 {
        int bit;
 
+       /*
+        * Sanity check the voltages that the card claims to
+        * support.
+        */
+       if (ocr & 0x7F) {
+               dev_warn(mmc_dev(host),
+               "card claims to support voltages below defined range\n");
+               ocr &= ~0x7F;
+       }
+
        ocr &= host->ocr_avail;
        if (!ocr) {
                dev_warn(mmc_dev(host), "no support for card's volts\n");
index 18ce81a85c9b8422a150a2bfd9c34c29c0acb9d4..0d060227cfc1bab543f32fdc78f5d6809f4b5315 100644 (file)
@@ -1666,17 +1666,6 @@ int mmc_attach_mmc(struct mmc_host *host)
                        goto err;
        }
 
-       /*
-        * Sanity check the voltages that the card claims to
-        * support.
-        */
-       if (ocr & 0x7F) {
-               pr_warning("%s: card claims to support voltages "
-                      "below the defined range. These will be ignored.\n",
-                      mmc_hostname(host));
-               ocr &= ~0x7F;
-       }
-
        rocr = mmc_select_voltage(host, ocr);
 
        /*
index a83debc735342cbc0319d92b381820c3066b2043..2d4c280641cc1f5856824af1e115bc31fd3ae2b1 100644 (file)
@@ -1272,25 +1272,6 @@ int mmc_attach_sd(struct mmc_host *host)
                        goto err;
        }
 
-       /*
-        * Sanity check the voltages that the card claims to
-        * support.
-        */
-       if (ocr & 0x7F) {
-               pr_warning("%s: card claims to support voltages "
-                      "below the defined range. These will be ignored.\n",
-                      mmc_hostname(host));
-               ocr &= ~0x7F;
-       }
-
-       if ((ocr & MMC_VDD_165_195) &&
-           !(host->ocr_avail_sd & MMC_VDD_165_195)) {
-               pr_warning("%s: SD card claims to support the "
-                      "incompletely defined 'low voltage range'. This "
-                      "will be ignored.\n", mmc_hostname(host));
-               ocr &= ~MMC_VDD_165_195;
-       }
-
        rocr = mmc_select_voltage(host, ocr);
 
        /*
index 2b5d71a24fcc68e7582fdb3799b96ec5a0e89a36..413989e9d533e4eebc386a1d88507c85d58e6fff 100644 (file)
@@ -1154,16 +1154,6 @@ int mmc_attach_sdio(struct mmc_host *host)
        if (host->ocr_avail_sdio)
                host->ocr_avail = host->ocr_avail_sdio;
 
-       /*
-        * Sanity check the voltages that the card claims to
-        * support.
-        */
-       if (ocr & 0x7F) {
-               pr_warning("%s: card claims to support voltages "
-                      "below the defined range. These will be ignored.\n",
-                      mmc_hostname(host));
-               ocr &= ~0x7F;
-       }
 
        rocr = mmc_select_voltage(host, ocr);