Message ID | 4F716933.4080006@samsung.com |
---|---|
State | Accepted, archived |
Delegated to: | Andy Fleming |
Headers | show |
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 <jh80.chung@samsung.com>: > mmc_set_clock is set to the hard-coding. > But i think good that use the tran_speed value. > > Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > --- > drivers/mmc/mmc.c | 13 +++++++------ > 1 files changed, 7 insertions(+), 6 deletions(-) > > diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c > index e035012..cba96cf 100644 > --- a/drivers/mmc/mmc.c > +++ b/drivers/mmc/mmc.c > @@ -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; > -- > 1.7.4.1 > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot
On Mon, Apr 2, 2012 at 1:31 PM, Jae hoon Chung <jh80.chung@gmail.com> wrote: >> 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)?
Hi Andy. On 05/08/2012 06:50 AM, Andy Fleming wrote: > On Mon, Apr 2, 2012 at 1:31 PM, Jae hoon Chung <jh80.chung@gmail.com> wrote: > >>> 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)? > 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
On Mon, May 7, 2012 at 9:51 PM, Jaehoon Chung <jh80.chung@samsung.com> wrote: > Hi Andy. > > On 05/08/2012 06:50 AM, Andy Fleming wrote: > >> On Mon, Apr 2, 2012 at 1:31 PM, Jae hoon Chung <jh80.chung@gmail.com> wrote: >> >>>> 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)? >> > > 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.
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index e035012..cba96cf 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -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;