[U-Boot] [U-BOOT][PATCH]mmc: modify setting tran_speed and change csd's instead of response value

This patch do the following 1. we need not use cmd.response, because we assinged cmd.response value to mmc->csd. 2. mmc_set_clock() is hard setting, that is not good solution and if mmc is not MMC_MODE_HS, mmc will set card's tran_speed.
Signed-off-by: Jaehoon Chung jh80.chung@samsung.com
--- drivers/mmc/mmc.c | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index cf4ea16..fd80a27 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -666,7 +666,7 @@ int mmc_startup(struct mmc *mmc) mmc->csd[3] = cmd.response[3];
if (mmc->version == MMC_VERSION_UNKNOWN) { - int version = (cmd.response[0] >> 26) & 0xf; + int version = (mmc->csd[0] >> 26) & 0xf;
switch (version) { case 0: @@ -691,17 +691,17 @@ int mmc_startup(struct mmc *mmc) }
/* divide frequency by 10, since the mults are 10x bigger */ - freq = fbase[(cmd.response[0] & 0x7)]; - mult = multipliers[((cmd.response[0] >> 3) & 0xf)]; + freq = fbase[(mmc->csd[0] & 0x7)]; + mult = multipliers[((mmc->csd[0] >> 3) & 0xf)];
mmc->tran_speed = freq * mult;
- mmc->read_bl_len = 1 << ((cmd.response[1] >> 16) & 0xf); + mmc->read_bl_len = 1 << ((mmc->csd[1] >> 16) & 0xf);
if (IS_SD(mmc)) mmc->write_bl_len = mmc->read_bl_len; else - mmc->write_bl_len = 1 << ((cmd.response[3] >> 22) & 0xf); + mmc->write_bl_len = 1 << ((mmc->csd[3] >> 22) & 0xf);
if (mmc->high_capacity) { csize = (mmc->csd[1] & 0x3f) << 16 @@ -794,11 +794,12 @@ 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 */

On 18 June 2010 15:13, Jaehoon Chung jh80.chung@samsung.com wrote:
This patch do the following
- we need not use cmd.response, because we assinged cmd.response value to mmc->csd.
- mmc_set_clock() is hard setting, that is not good solution
and if mmc is not MMC_MODE_HS, mmc will set card's tran_speed.
Signed-off-by: Jaehoon Chung jh80.chung@samsung.com
drivers/mmc/mmc.c | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-)
Acked-by: Minkyu Kang mk7.kang@samsung.com
Thanks. Minkyu Kang

Dear Andy,
On 18 June 2010 15:59, Minkyu Kang promsoft@gmail.com wrote:
On 18 June 2010 15:13, Jaehoon Chung jh80.chung@samsung.com wrote:
This patch do the following
- we need not use cmd.response, because we assinged cmd.response value to mmc->csd.
- mmc_set_clock() is hard setting, that is not good solution
and if mmc is not MMC_MODE_HS, mmc will set card's tran_speed.
Signed-off-by: Jaehoon Chung jh80.chung@samsung.com
drivers/mmc/mmc.c | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-)
Acked-by: Minkyu Kang mk7.kang@samsung.com
Please let me know your opinion.
Thanks. Minkyu Kang

Dear Andy
In message 4C1B0E85.5030108@samsung.com Jaehoon Chung wrote:
This patch do the following
- we need not use cmd.response, because we assinged cmd.response value to mmc->csd.
- mmc_set_clock() is hard setting, that is not good solution and if mmc is not MMC_MODE_HS, mmc will set card's tran_speed.
Signed-off-by: Jaehoon Chung jh80.chung@samsung.com
drivers/mmc/mmc.c | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-)
See http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/80067
Is this patch in your queue?
Best regards,
Wolfgang Denk
participants (3)
-
Jaehoon Chung
-
Minkyu Kang
-
Wolfgang Denk