revert android-tegra-2.6.36-honeycomb-mr1-9001adc to v2.6.36
[firefly-linux-kernel-4.4.55.git] / drivers / mmc / core / sdio.c
index d3ec4dc18d14fd7eca04cba98f1a0c4c12feca25..f332c52968b75d7528ee8c5f21eaf561a76d373d 100755 (executable)
 #include "sdio_ops.h"
 #include "sdio_cis.h"
 
-#ifdef CONFIG_MMC_EMBEDDED_SDIO
-#include <linux/mmc/sdio_ids.h>
-#endif
-
 static int sdio_read_fbr(struct sdio_func *func)
 {
        int ret;
@@ -262,13 +258,11 @@ static int mmc_sdio_switch_hs(struct mmc_card *card, int enable)
        int ret;
        u8 speed;
 
-       if (!(card->host->caps & MMC_CAP_FORCE_HS)) {
-               if (!(card->host->caps & MMC_CAP_SD_HIGHSPEED))
-                       return 0;
+       if (!(card->host->caps & MMC_CAP_SD_HIGHSPEED))
+               return 0;
 
-               if (!card->cccr.high_speed)
-                       return 0;
-       }
+       if (!card->cccr.high_speed)
+               return 0;
 
        ret = mmc_io_rw_direct(card, 0, 0, SDIO_CCCR_SPEED, 0, &speed);
        if (ret)
@@ -440,35 +434,19 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
                goto finish;
        }
 
-#ifdef CONFIG_MMC_EMBEDDED_SDIO
-       if (host->embedded_sdio_data.cccr)
-               memcpy(&card->cccr, host->embedded_sdio_data.cccr, sizeof(struct sdio_cccr));
-       else {
-#endif
-               /*
-                * Read the common registers.
-                */
-               err = sdio_read_cccr(card);
-               if (err)
-                       goto remove;
-#ifdef CONFIG_MMC_EMBEDDED_SDIO
-       }
-#endif
+       /*
+        * Read the common registers.
+        */
+       err = sdio_read_cccr(card);
+       if (err)
+               goto remove;
 
-#ifdef CONFIG_MMC_EMBEDDED_SDIO
-       if (host->embedded_sdio_data.cis)
-               memcpy(&card->cis, host->embedded_sdio_data.cis, sizeof(struct sdio_cis));
-       else {
-#endif
-               /*
-                * Read the common CIS tuples.
-                */
-               err = sdio_read_common_cis(card);
-               if (err)
-                       goto remove;
-#ifdef CONFIG_MMC_EMBEDDED_SDIO
-       }
-#endif
+       /*
+        * Read the common CIS tuples.
+        */
+       err = sdio_read_common_cis(card);
+       if (err)
+               goto remove;
 
        if (oldcard) {
                int same = (card->cis.vendor == oldcard->cis.vendor &&
@@ -480,7 +458,6 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
                card = oldcard;
                return 0;
        }
-       mmc_fixup_device(card, NULL);
 
        if (card->type == MMC_TYPE_SD_COMBO) {
                err = mmc_sd_setup_card(host, card, oldcard != NULL);
@@ -728,36 +705,13 @@ int mmc_attach_sdio(struct mmc_host *host, u32 ocr)
        funcs = (ocr & 0x70000000) >> 28;
        card->sdio_funcs = 0;
 
-#ifdef CONFIG_MMC_EMBEDDED_SDIO
-       if (host->embedded_sdio_data.funcs)
-               card->sdio_funcs = funcs = host->embedded_sdio_data.num_funcs;
-#endif
-
        /*
         * Initialize (but don't add) all present functions.
         */
        for (i = 0; i < funcs; i++, card->sdio_funcs++) {
-#ifdef CONFIG_MMC_EMBEDDED_SDIO
-               if (host->embedded_sdio_data.funcs) {
-                       struct sdio_func *tmp;
-
-                       tmp = sdio_alloc_func(host->card);
-                       if (IS_ERR(tmp))
-                               goto remove;
-                       tmp->num = (i + 1);
-                       card->sdio_func[i] = tmp;
-                       tmp->class = host->embedded_sdio_data.funcs[i].f_class;
-                       tmp->max_blksize = host->embedded_sdio_data.funcs[i].f_maxblksize;
-                       tmp->vendor = card->cis.vendor;
-                       tmp->device = card->cis.device;
-               } else {
-#endif
-                       err = sdio_init_func(host->card, i + 1);
-                       if (err)
-                               goto remove;
-#ifdef CONFIG_MMC_EMBEDDED_SDIO
-               }
-#endif
+               err = sdio_init_func(host->card, i + 1);
+               if (err)
+                       goto remove;
        }
 
        mmc_release_host(host);
@@ -799,77 +753,3 @@ err:
        return err;
 }
 
-int sdio_reset_comm(struct mmc_card *card)
-{
-       struct mmc_host *host = card->host;
-       u32 ocr;
-       int err;
-
-       printk("%s():\n", __func__);
-       mmc_claim_host(host);
-
-       mmc_go_idle(host);
-
-       mmc_set_clock(host, host->f_min);
-
-       err = mmc_send_io_op_cond(host, 0, &ocr);
-       if (err)
-               goto err;
-
-       host->ocr = mmc_select_voltage(host, ocr);
-       if (!host->ocr) {
-               err = -EINVAL;
-               goto err;
-       }
-
-       err = mmc_send_io_op_cond(host, host->ocr, &ocr);
-       if (err)
-               goto err;
-
-       if (mmc_host_is_spi(host)) {
-               err = mmc_spi_set_crc(host, use_spi_crc);
-               if (err)
-                       goto err;
-       }
-
-       if (!mmc_host_is_spi(host)) {
-               err = mmc_send_relative_addr(host, &card->rca);
-               if (err)
-                       goto err;
-               mmc_set_bus_mode(host, MMC_BUSMODE_PUSHPULL);
-       }
-       if (!mmc_host_is_spi(host)) {
-               err = mmc_select_card(card);
-               if (err)
-                       goto err;
-       }
-
-       /*
-        * Switch to high-speed (if supported).
-        */
-       err = sdio_enable_hs(card);
-       if (err > 0)
-               mmc_sd_go_highspeed(card);
-       else if (err)
-               goto err;
-
-       /*
-        * Change to the card's maximum speed.
-        */
-       mmc_set_clock(host, mmc_sdio_get_max_clock(card));
-
-       err = sdio_enable_4bit_bus(card);
-       if (err > 0)
-               mmc_set_bus_width(host, MMC_BUS_WIDTH_4);
-       else if (err)
-               goto err;
-
-       mmc_release_host(host);
-       return 0;
-err:
-       printk("%s: Error resetting SDIO communications (%d)\n",
-              mmc_hostname(host), err);
-       mmc_release_host(host);
-       return err;
-}
-EXPORT_SYMBOL(sdio_reset_comm);