Hi, Andy, There is not any feedback for very long time, Could it be applied to the u-boot?
Best Regards Jerry Huang > -----Original Message----- > From: Huang Changming-R66093 > Sent: Friday, May 18, 2012 5:57 PM > To: u-boot@lists.denx.de > Cc: Huang Changming-R66093; Andy Fleming; Marek Vasut > Subject: [PATCH 1/2 v2] SDHC/MMC: fix the wrong infomation after change > SD card > > From: Jerry Huang <chang-ming.hu...@freescale.com> > > When first inserting the SD card to slot, the command "mmcinfo" can > display the card information correctly. > But, then removing the SD card or inserting another SD card to slot, > the command "mmcinfo" can't display the information correctly. > > when we use command "mmcinfo" every time, the driver must initialize the > SD card again, instead of assuming the card has been initialized. > > Therefore remove the detect codes from mmc_init function. > And add the codes to check the mmc_init, only when mmc_init return > the right value, driver will print the information. > > Below is the error log (SD card removed): > => mmcinfo > MMC: no card present > Device: FSL_SDHC > Manufacturer ID: 3 > OEM: 5344 > Name: SD02G > Tran Speed: 25000000 > Rd Block Len: 512 > SD version 2.0 > High Capacity: No > Capacity: 1.8 GiB > Bus Width: 4-bit > > Signed-off-by: Jerry Huang <chang-ming.hu...@freescale.com> > CC: Andy Fleming <aflem...@gmail.com> > CC: Marek Vasut <ma...@denx.de> > --- > changes for v2: > - keep the member has_init > - only remove the detect code > > common/cmd_mmc.c | 5 ++--- > drivers/mmc/mmc.c | 3 --- > 2 files changed, 2 insertions(+), 6 deletions(-) > > diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c > index 750509d..e73ce03 100644 > --- a/common/cmd_mmc.c > +++ b/common/cmd_mmc.c > @@ -131,9 +131,8 @@ int do_mmcinfo (cmd_tbl_t *cmdtp, int flag, int argc, > char * const argv[]) > mmc = find_mmc_device(curr_device); > > if (mmc) { > - mmc_init(mmc); > - > - print_mmcinfo(mmc); > + if (!mmc_init(mmc)) > + print_mmcinfo(mmc); > return 0; > } else { > printf("no mmc device at slot %x\n", curr_device); > diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c > index f92b662..af644bb 100644 > --- a/drivers/mmc/mmc.c > +++ b/drivers/mmc/mmc.c > @@ -1323,9 +1323,6 @@ int mmc_init(struct mmc *mmc) > return NO_CARD_ERR; > } > > - if (mmc->has_init) > - return 0; > - > err = mmc->init(mmc); > > if (err) > -- > 1.7.5.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot