Skip to contentSkip to conversation

mmc: remove the hard setting for tran_speed

PATCH New Jaehoon Chung 3 participants 5 messages Mar 27, 2012 – May 8, 2012 MMC, SD and SDIO

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mmc: remove the hard setting for tran_speed

mmc_set_clock is set to the hard-coding.
But i think good that use the tran_speed value.

---
 drivers/mmc/mmc.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)
drivers/mmc/mmc.c +7 -6
index e035012..cba96cf 100644
@@ -1124,9 +1124,9 @@ int mmc_startup(struct mmc *mmc)
 		}
 
 		if (mmc->card_caps & MMC_MODE_HS)
-			mmc_set_clock(mmc, 50000000);
+			mmc->tran_speed = 50000000;
 		else
-			mmc_set_clock(mmc, 25000000);
+			mmc->tran_speed = 25000000;
 	} else {
 		for (width = EXT_CSD_BUS_WIDTH_8; width >= 0; width--) {
 			/* Set the card to use 4 bit*/
@@ -1161,13 +1161,14 @@ int mmc_startup(struct mmc *mmc)
 
 		if (mmc->card_caps & MMC_MODE_HS) {
 			if (mmc->card_caps & MMC_MODE_HS_52MHz)
-				mmc_set_clock(mmc, 52000000);
+				mmc->tran_speed = 52000000;
 			else
-				mmc_set_clock(mmc, 26000000);
-		} else
-			mmc_set_clock(mmc, 20000000);
+				mmc->tran_speed = 26000000;
+		}
 	}
 
+	mmc_set_clock(mmc, mmc->tran_speed);
+
 	/* fill in device description */
 	mmc->block_dev.lun = 0;
 	mmc->block_dev.type = 0;
Signature · 1 line
1.7.4.1
#1 lore raw

PATCH 1/1 mmc: remove the hard setting for tran_speed

Hi Andy.

How do you about this patch?
I want to know your thinking.
In my case, clock is set to 50MHz, but mmcinfo is produced the "25MHz". Because tran_speed is 25MHz.
But mmc->card_caps is set to MMC_MODE_HS and MMC_MODE_HS_52MHZ. So we should be see the wrong information with mmcinfo.

Best Regards,
Jaehoon Chung

2012/3/27 Jaehoon Chung <[email protected]>:

Quoted 50 lines

mmc_set_clock is set to the hard-coding.
But i think good that use the tran_speed value.

---
?drivers/mmc/mmc.c | ? 13 +++++++------
?1 files changed, 7 insertions(+), 6 deletions(-)

drivers/mmc/mmc.c +1 -1
index e035012..cba96cf 100644
@@ -1124,9 +1124,9 @@ int mmc_startup(struct mmc *mmc)
 ? ? ? ? ? ? ? ?}
 
 ? ? ? ? ? ? ? ?if (mmc->card_caps & MMC_MODE_HS)
- ? ? ? ? ? ? ? ? ? ? ? mmc_set_clock(mmc, 50000000);
+ ? ? ? ? ? ? ? ? ? ? ? mmc->tran_speed = 50000000;

? ? ? ? ? ? ? ?else
- ? ? ? ? ? ? ? ? ? ? ? mmc_set_clock(mmc, 25000000);
+ ? ? ? ? ? ? ? ? ? ? ? mmc->tran_speed = 25000000;
? ? ? ?} else {
? ? ? ? ? ? ? ?for (width = EXT_CSD_BUS_WIDTH_8; width >= 0; width--) { ? ? ? ? ? ? ? ? ? ? ? ?/* Set the card to use 4 bit*/

drivers/mmc/mmc.c +1 -1
@@ -1161,13 +1161,14 @@ int mmc_startup(struct mmc *mmc)
 
 ? ? ? ? ? ? ? ?if (mmc->card_caps & MMC_MODE_HS) {
 ? ? ? ? ? ? ? ? ? ? ? ?if (mmc->card_caps & MMC_MODE_HS_52MHz)
- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mmc_set_clock(mmc, 52000000);
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mmc->tran_speed = 52000000;

? ? ? ? ? ? ? ? ? ? ? ?else
- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mmc_set_clock(mmc, 26000000);
- ? ? ? ? ? ? ? } else
- ? ? ? ? ? ? ? ? ? ? ? mmc_set_clock(mmc, 20000000);
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mmc->tran_speed = 26000000;
+ ? ? ? ? ? ? ? }
? ? ? ?}

+ ? ? ? mmc_set_clock(mmc, mmc->tran_speed);
+
? ? ? ?/* fill in device description */
? ? ? ?mmc->block_dev.lun = 0;
? ? ? ?mmc->block_dev.type = 0;
--
1.7.4.1
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

#2 lore raw

PATCH 1/1 mmc: remove the hard setting for tran_speed

Quoted 10 lines · Jae hoon Chung
Quoted 10 lines

? ? ? ? ? ? ? ?if (mmc->card_caps & MMC_MODE_HS) {
? ? ? ? ? ? ? ? ? ? ? ?if (mmc->card_caps & MMC_MODE_HS_52MHz)
- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mmc_set_clock(mmc, 52000000);
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mmc->tran_speed = 52000000; ? ? ? ? ? ? ? ? ? ? ? ?else
- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mmc_set_clock(mmc, 26000000);
- ? ? ? ? ? ? ? } else
- ? ? ? ? ? ? ? ? ? ? ? mmc_set_clock(mmc, 20000000);
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mmc->tran_speed = 26000000;
+ ? ? ? ? ? ? ? }

Why did you remove the outer else clause, here (the one that set the speed to 20000000)?

#3 lore raw

PATCH 1/1 mmc: remove the hard setting for tran_speed

Hi Andy.

Quoted 14 lines · Andy Fleming
Quoted 10 lines · Jae hoon Chung

drivers/mmc/mmc.c int mmc_startup(struct mmc *mmc) · line 1167

Quoted 10 lines
               if (mmc->card_caps & MMC_MODE_HS) {
                       if (mmc->card_caps & MMC_MODE_HS_52MHz)
drivers/mmc/mmc.c +3 -4
-                               mmc_set_clock(mmc, 52000000);
+                               mmc->tran_speed = 52000000;
                       else
-                               mmc_set_clock(mmc, 26000000);
-               } else
-                       mmc_set_clock(mmc, 20000000);
+                               mmc->tran_speed = 26000000;
+               }
Quoted 3 lines

Why did you remove the outer else clause, here (the one that set the speed to 20000000)?

If card->caps didn't set MMC_MODE_HS, then it's set to mmc->tran_speed. That value is assigned from freq * mult.

I think that is reasonable..if set to 20000000 here, then why need freq & mult?

Best Regards,
Jaehoon Chung

#4 lore raw

PATCH 1/1 mmc: remove the hard setting for tran_speed

Quoted 18 lines · Jaehoon Chung

Hi Andy.

Quoted 14 lines · Andy Fleming
Quoted 10 lines · Jae hoon Chung
Quoted 10 lines

? ? ? ? ? ? ? ?if (mmc->card_caps & MMC_MODE_HS) {
? ? ? ? ? ? ? ? ? ? ? ?if (mmc->card_caps & MMC_MODE_HS_52MHz)
- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mmc_set_clock(mmc, 52000000);
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mmc->tran_speed = 52000000; ? ? ? ? ? ? ? ? ? ? ? ?else
- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mmc_set_clock(mmc, 26000000);
- ? ? ? ? ? ? ? } else
- ? ? ? ? ? ? ? ? ? ? ? mmc_set_clock(mmc, 20000000);
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mmc->tran_speed = 26000000;
+ ? ? ? ? ? ? ? }

Quoted 8 lines
Quoted 3 lines

Why did you remove the outer else clause, here (the one that set the speed to 20000000)?

If card->caps didn't set MMC_MODE_HS, then it's set to mmc->tran_speed. That value is assigned from freq * mult.

I think that is reasonable..if set to 20000000 here, then why need freq & mult?

Ok, that's probably fine, then.