{
        int r = 1;
 
-       if (host->pdata->slots[host->slot_id].get_cover_state)
-               r = host->pdata->slots[host->slot_id].get_cover_state(host->dev,
-                       host->slot_id);
+       if (mmc_slot(host).get_cover_state)
+               r = mmc_slot(host).get_cover_state(host->dev, host->slot_id);
        return r;
 }
 
 {
        struct mmc_host *mmc = container_of(dev, struct mmc_host, class_dev);
        struct mmc_omap_host *host = mmc_priv(mmc);
-       struct omap_mmc_slot_data slot = host->pdata->slots[host->slot_id];
 
-       return sprintf(buf, "%s\n", slot.name);
+       return sprintf(buf, "%s\n", mmc_slot(host).name);
 }
 
 static DEVICE_ATTR(slot_name, S_IRUGO, mmc_omap_show_slot_name, NULL);
                        (status & CMD_CRC)) {
                        if (host->cmd) {
                                if (status & CMD_TIMEOUT) {
-                                       mmc_omap_reset_controller_fsm(host, SRC);
+                                       mmc_omap_reset_controller_fsm(host,
+                                                                     SRC);
                                        host->cmd->error = -ETIMEDOUT;
                                } else {
                                        host->cmd->error = -EILSEQ;
 
        sysfs_notify(&host->mmc->class_dev.kobj, NULL, "cover_switch");
 
-       if (mmc_slot(host).card_detect)
+       if (slot->card_detect)
                carddetect = slot->card_detect(slot->card_detect_irq);
        else
                carddetect = -ENOSYS;
                        sg_dma_address(sgl), 0, 0);
        } else {
                omap_set_dma_src_params(dma_ch, 0, OMAP_DMA_AMODE_CONSTANT,
-                                       (host->mapbase + OMAP_HSMMC_DATA), 0, 0);
+                       (host->mapbase + OMAP_HSMMC_DATA), 0, 0);
                omap_set_dma_dest_params(dma_ch, 0, OMAP_DMA_AMODE_POST_INC,
                        sg_dma_address(sgl), 0, 0);
        }
        }
 
        ret = omap_request_dma(mmc_omap_get_dma_sync_dev(host, data), "MMC/SD",
-                              mmc_omap_dma_cb,host, &dma_ch);
+                              mmc_omap_dma_cb, host, &dma_ch);
        if (ret != 0) {
                dev_err(mmc_dev(host->mmc),
                        "%s: omap_request_dma() failed with %d\n",
 static int omap_hsmmc_get_cd(struct mmc_host *mmc)
 {
        struct mmc_omap_host *host = mmc_priv(mmc);
-       struct omap_mmc_platform_data *pdata = host->pdata;
 
-       if (!pdata->slots[0].card_detect)
+       if (!mmc_slot(host).card_detect)
                return -ENOSYS;
-       return pdata->slots[0].card_detect(pdata->slots[0].card_detect_irq);
+       return mmc_slot(host).card_detect(mmc_slot(host).card_detect_irq);
 }
 
 static int omap_hsmmc_get_ro(struct mmc_host *mmc)
 {
        struct mmc_omap_host *host = mmc_priv(mmc);
-       struct omap_mmc_platform_data *pdata = host->pdata;
 
-       if (!pdata->slots[0].get_ro)
+       if (!mmc_slot(host).get_ro)
                return -ENOSYS;
-       return pdata->slots[0].get_ro(host->dev, 0);
+       return mmc_slot(host).get_ro(host->dev, 0);
 }
 
 static void omap_hsmmc_init(struct mmc_omap_host *host)
        platform_set_drvdata(pdev, host);
        INIT_WORK(&host->mmc_carddetect_work, mmc_omap_detect);
 
-       if (pdata->slots[host->slot_id].power_saving)
+       if (mmc_slot(host).power_saving)
                mmc->ops        = &mmc_omap_ps_ops;
        else
                mmc->ops        = &mmc_omap_ops;
        mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
                     MMC_CAP_WAIT_WHILE_BUSY;
 
-       if (pdata->slots[host->slot_id].wires >= 8)
+       if (mmc_slot(host).wires >= 8)
                mmc->caps |= MMC_CAP_8_BIT_DATA;
-       else if (pdata->slots[host->slot_id].wires >= 4)
+       else if (mmc_slot(host).wires >= 4)
                mmc->caps |= MMC_CAP_4_BIT_DATA;
 
-       if (pdata->slots[host->slot_id].nonremovable)
+       if (mmc_slot(host).nonremovable)
                mmc->caps |= MMC_CAP_NONREMOVABLE;
 
        omap_hsmmc_init(host);
 
        mmc_add_host(mmc);
 
-       if (host->pdata->slots[host->slot_id].name != NULL) {
+       if (mmc_slot(host).name != NULL) {
                ret = device_create_file(&mmc->class_dev, &dev_attr_slot_name);
                if (ret < 0)
                        goto err_slot_name;
        }
-       if (mmc_slot(host).card_detect_irq &&
-           host->pdata->slots[host->slot_id].get_cover_state) {
+       if (mmc_slot(host).card_detect_irq && mmc_slot(host).get_cover_state) {
                ret = device_create_file(&mmc->class_dev,
                                        &dev_attr_cover_switch);
                if (ret < 0)
 
 
                        OMAP_HSMMC_WRITE(host->base, HCTL,
-                                        OMAP_HSMMC_READ(host->base, HCTL) & ~SDBP);
+                               OMAP_HSMMC_READ(host->base, HCTL) & ~SDBP);
                        mmc_host_disable(host->mmc);
                        clk_disable(host->iclk);
                        clk_disable(host->dbclk);