hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
kernel/drivers/mmc/core/mmc.c
....@@ -70,7 +70,7 @@
7070 /*
7171 * Given the decoded CSD structure, decode the raw CID to our CID structure.
7272 */
73
-#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT
73
+#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
7474 static int mmc_decode_cid(struct mmc_card *card)
7575 {
7676 u32 *resp = card->raw_cid;
....@@ -666,7 +666,7 @@
666666 return err;
667667 }
668668
669
-#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT
669
+#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
670670 static void *mmc_tb_map_ecsd(phys_addr_t start, size_t len)
671671 {
672672 int i;
....@@ -696,7 +696,7 @@
696696 {
697697 u8 *ext_csd;
698698 int err;
699
-#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT
699
+#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
700700 void *ecsd = NULL;
701701 bool valid_ecsd = false;
702702 bool valid_reserved = false;
....@@ -707,7 +707,7 @@
707707 if (!mmc_can_ext_csd(card))
708708 return 0;
709709
710
-#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT
710
+#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
711711 mem = of_parse_phandle(dev->of_node, "memory-region-ecsd", 0);
712712 if (mem) {
713713 err = of_address_to_resource(mem, 0, &reg);
....@@ -758,11 +758,11 @@
758758
759759 return err;
760760 }
761
-#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT
761
+#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
762762 decode:
763763 #endif
764764 err = mmc_decode_ext_csd(card, ext_csd);
765
-#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT
765
+#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
766766 if (!valid_ecsd)
767767 kfree(ext_csd);
768768 else
....@@ -777,7 +777,7 @@
777777 return err;
778778 }
779779
780
-#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT
780
+#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
781781 static int mmc_compare_ext_csds(struct mmc_card *card, unsigned bus_width)
782782 {
783783 u8 *bw_ext_csd;
....@@ -1117,7 +1117,7 @@
11171117 * compare ext_csd previously read in 1 bit mode
11181118 * against ext_csd at new bus width
11191119 */
1120
-#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT
1120
+#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
11211121 if (!(host->caps & MMC_CAP_BUS_WIDTH_TEST))
11221122 err = mmc_compare_ext_csds(card, bus_width);
11231123 else
....@@ -1495,6 +1495,9 @@
14951495 if (host->ops->hs400_enhanced_strobe)
14961496 host->ops->hs400_enhanced_strobe(host, &host->ios);
14971497
1498
+ /* some emmc device need a delay before read status */
1499
+ usleep_range(100, 200);
1500
+
14981501 err = mmc_switch_status(card);
14991502 if (err)
15001503 goto out_err;
....@@ -1653,7 +1656,7 @@
16531656 * respond.
16541657 * mmc_go_idle is needed for eMMC that are asleep
16551658 */
1656
-#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT
1659
+#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
16571660 mmc_go_idle(host);
16581661 #endif
16591662
....@@ -1698,7 +1701,7 @@
16981701 card->ocr = ocr;
16991702 card->type = MMC_TYPE_MMC;
17001703 card->rca = 1;
1701
-#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT
1704
+#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
17021705 memcpy(card->raw_cid, cid, sizeof(card->raw_cid));
17031706 #endif
17041707 }
....@@ -1731,7 +1734,7 @@
17311734 err = mmc_decode_csd(card);
17321735 if (err)
17331736 goto free_card;
1734
-#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT
1737
+#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
17351738 err = mmc_decode_cid(card);
17361739 if (err)
17371740 goto free_card;
....@@ -1866,7 +1869,7 @@
18661869 /*
18671870 * Enable HPI feature (if supported)
18681871 */
1869
-#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT
1872
+#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
18701873 if (card->ext_csd.hpi) {
18711874 err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
18721875 EXT_CSD_HPI_MGMT, 1,