Merge branch 'android-4.4'
[firefly-linux-kernel-4.4.55.git] / drivers / mmc / card / block.c
index 21aa3244029b277b2287307d16929e78b5383bf9..fa0a6db436a2d3fb3cbc8bb4fc94981054397062 100644 (file)
@@ -2549,6 +2549,7 @@ static const struct mmc_fixup blk_fixups[] =
        END_FIXUP
 };
 
+extern struct mmc_card *this_card;
 static int mmc_blk_probe(struct mmc_card *card)
 {
        struct mmc_blk_data *md, *part_md;
@@ -2577,6 +2578,15 @@ static int mmc_blk_probe(struct mmc_card *card)
 
        dev_set_drvdata(&card->dev, md);
 
+       #if defined(CONFIG_MMC_DW_ROCKCHIP)
+       if (card->host->restrict_caps & RESTRICT_CARD_TYPE_EMMC) {
+               this_card = card;
+               md->disk->emmc_disk = 1;
+       } else {
+               md->disk->emmc_disk = 0;
+       }
+       #endif
+
        if (mmc_add_disk(md))
                goto out;
 
@@ -2609,6 +2619,11 @@ static void mmc_blk_remove(struct mmc_card *card)
 {
        struct mmc_blk_data *md = dev_get_drvdata(&card->dev);
 
+       #if defined(CONFIG_MMC_DW_ROCKCHIP)
+       if (card->host->restrict_caps & RESTRICT_CARD_TYPE_EMMC)
+               this_card = NULL;
+       #endif
+
        mmc_blk_remove_parts(card, md);
        pm_runtime_get_sync(&card->dev);
        mmc_claim_host(card->host);