From e3e12f52b214121840b44c91de5b3e5af5d3eb84 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Mon, 06 Nov 2023 03:04:41 +0000 Subject: [PATCH] rk3568 rt init --- kernel/drivers/mmc/core/mmc.c | 27 +++++++++++++++------------ 1 files changed, 15 insertions(+), 12 deletions(-) diff --git a/kernel/drivers/mmc/core/mmc.c b/kernel/drivers/mmc/core/mmc.c index 1315805..0d96658 100644 --- a/kernel/drivers/mmc/core/mmc.c +++ b/kernel/drivers/mmc/core/mmc.c @@ -70,7 +70,7 @@ /* * Given the decoded CSD structure, decode the raw CID to our CID structure. */ -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC static int mmc_decode_cid(struct mmc_card *card) { u32 *resp = card->raw_cid; @@ -666,7 +666,7 @@ return err; } -#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT +#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC static void *mmc_tb_map_ecsd(phys_addr_t start, size_t len) { int i; @@ -696,7 +696,7 @@ { u8 *ext_csd; int err; -#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT +#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC void *ecsd = NULL; bool valid_ecsd = false; bool valid_reserved = false; @@ -707,7 +707,7 @@ if (!mmc_can_ext_csd(card)) return 0; -#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT +#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC mem = of_parse_phandle(dev->of_node, "memory-region-ecsd", 0); if (mem) { err = of_address_to_resource(mem, 0, ®); @@ -758,11 +758,11 @@ return err; } -#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT +#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC decode: #endif err = mmc_decode_ext_csd(card, ext_csd); -#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT +#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC if (!valid_ecsd) kfree(ext_csd); else @@ -777,7 +777,7 @@ return err; } -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC static int mmc_compare_ext_csds(struct mmc_card *card, unsigned bus_width) { u8 *bw_ext_csd; @@ -1117,7 +1117,7 @@ * compare ext_csd previously read in 1 bit mode * against ext_csd at new bus width */ -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC if (!(host->caps & MMC_CAP_BUS_WIDTH_TEST)) err = mmc_compare_ext_csds(card, bus_width); else @@ -1495,6 +1495,9 @@ if (host->ops->hs400_enhanced_strobe) host->ops->hs400_enhanced_strobe(host, &host->ios); + /* some emmc device need a delay before read status */ + usleep_range(100, 200); + err = mmc_switch_status(card); if (err) goto out_err; @@ -1653,7 +1656,7 @@ * respond. * mmc_go_idle is needed for eMMC that are asleep */ -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC mmc_go_idle(host); #endif @@ -1698,7 +1701,7 @@ card->ocr = ocr; card->type = MMC_TYPE_MMC; card->rca = 1; -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC memcpy(card->raw_cid, cid, sizeof(card->raw_cid)); #endif } @@ -1731,7 +1734,7 @@ err = mmc_decode_csd(card); if (err) goto free_card; -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC err = mmc_decode_cid(card); if (err) goto free_card; @@ -1866,7 +1869,7 @@ /* * Enable HPI feature (if supported) */ -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC if (card->ext_csd.hpi) { err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_HPI_MGMT, 1, -- Gitblit v1.6.2