[RAMEN9610-11636][COMMON] mmc: dw_mmc: sdcard power off when to card detect
authordukhyun kwon <d_hyun.kwon@samsung.com>
Thu, 27 Dec 2018 05:59:20 +0000 (14:59 +0900)
committerCosmin Tanislav <demonsingur@gmail.com>
Mon, 22 Apr 2024 17:23:14 +0000 (20:23 +0300)
Change-Id: I9a53d9e51347d947d66d8648bc7f21d672d3e83c
Signed-off-by: dukhyun kwon <d_hyun.kwon@samsung.com>
drivers/mmc/host/dw_mmc.c

index a8c5640efce47a07dd34fcbde5b8971580c42d83..a5b097368de80a65cfc1c2573af0759033aba768 100644 (file)
@@ -3479,6 +3479,14 @@ static void dw_mci_slot_of_parse(struct dw_mci_slot *slot)
 static irqreturn_t dw_mci_detect_interrupt(int irq, void *dev_id)
 {
        struct dw_mci *host = dev_id;
+       struct mmc_host *mmc = host->slot->mmc;
+       struct dw_mci_slot *slot = host->slot;
+
+       if (!IS_ERR(mmc->supply.vmmc))
+               mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, 0);
+       if (!IS_ERR(mmc->supply.vqmmc) && slot->host->vqmmc_enabled)
+               regulator_disable(mmc->supply.vqmmc);
+       slot->host->vqmmc_enabled = false;
 
        queue_work(host->card_workqueue, &host->card_work);