From 072de836f53be56a70cecf70b43ae43b7ce17376 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 11 Dec 2023 10:08:36 +0000
Subject: [PATCH] mk-rootfs.sh
---
kernel/drivers/mmc/host/dw_mmc.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/kernel/drivers/mmc/host/dw_mmc.c b/kernel/drivers/mmc/host/dw_mmc.c
index fde4946..a88d9b9 100644
--- a/kernel/drivers/mmc/host/dw_mmc.c
+++ b/kernel/drivers/mmc/host/dw_mmc.c
@@ -1468,7 +1468,7 @@
{
struct dw_mci_slot *slot = mmc_priv(mmc);
const struct dw_mci_drv_data *drv_data = slot->host->drv_data;
- u32 regs;
+ u32 regs, power_off_delay;
int ret;
switch (ios->bus_width) {
@@ -1507,8 +1507,14 @@
switch (ios->power_mode) {
case MMC_POWER_UP:
- if (!IS_ERR_OR_NULL(slot->host->pinctrl))
- pinctrl_select_state(slot->host->pinctrl, slot->host->idle_state);
+ if (dw_mci_get_cd(mmc) && !IS_ERR_OR_NULL(slot->host->pinctrl)) {
+ if (!pinctrl_select_state(slot->host->pinctrl, slot->host->idle_state)) {
+ if (device_property_read_u32(slot->host->dev, "power-off-delay-ms",
+ &power_off_delay))
+ power_off_delay = 200;
+ msleep(power_off_delay);
+ }
+ }
if (!IS_ERR(mmc->supply.vmmc)) {
ret = mmc_regulator_set_ocr(mmc, mmc->supply.vmmc,
--
Gitblit v1.6.2