[U-Boot] [PATCH 1/2 V2] esdhc: memset mmc struct before putting into use

struct mmc should be clear to all '0' after malloc to avoid unexpect variable value.
Like mmc->has_init = xxx. In this case mmcinfo will believe the card had been initialized before and skip the initialization.
Test on P5040 and T4240, Error Log:
=> mmcinfo Device: FSL_SDHC Manufacturer ID: 0 OEM: 0 Name: Tran Speed: 0 Rd Block Len: 0 MMC version 0.0 High Capacity: No Capacity: 0 Bytes Bus Width: 0-bit =>
Signed-off-by: Haijun Zhang Haijun.Zhang@freescale.com Signed-off-by: Xie Shaohui-B21989 B21989@freescale.com --- drivers/mmc/fsl_esdhc.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c index a7170b4..d4c1eef 100644 --- a/drivers/mmc/fsl_esdhc.c +++ b/drivers/mmc/fsl_esdhc.c @@ -521,6 +521,7 @@ int fsl_esdhc_initialize(bd_t *bis, struct fsl_esdhc_cfg *cfg) if (!mmc) return -ENOMEM;
+ memset(mmc, 0, sizeof(struct mmc)); sprintf(mmc->name, "FSL_SDHC"); regs = (struct fsl_esdhc *)cfg->esdhc_base;

T4240QDS eSDHC host capabilities reigster should have VS33 bit define. Add quirk CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33 to deal with capacity missing
Signed-off-by: Roy Zang tie-fei.zang@freescale.com Signed-off-by: Haijun Zhang Haijun.Zhang@freescale.com --- changes for V2: - Limited the change to T4240QDS only
arch/powerpc/include/asm/config_mpc85xx.h | 3 +++ drivers/mmc/fsl_esdhc.c | 6 ++++++ 2 files changed, 9 insertions(+)
diff --git a/arch/powerpc/include/asm/config_mpc85xx.h b/arch/powerpc/include/asm/config_mpc85xx.h index 946ea97..2f54aeb 100644 --- a/arch/powerpc/include/asm/config_mpc85xx.h +++ b/arch/powerpc/include/asm/config_mpc85xx.h @@ -557,6 +557,9 @@ #define CONFIG_SYS_FSL_CORES_PER_CLUSTER 4 #define CONFIG_SYS_FSL_QMAN_V3 /* QMAN version 3 */ #ifdef CONFIG_PPC_T4240 +#ifdef CONFIG_T4240QDS +#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33 +#endif #define CONFIG_MAX_CPUS 12 #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 1, 4 } #define CONFIG_SYS_NUM_FM1_DTSEC 8 diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c index d4c1eef..b8b2907 100644 --- a/drivers/mmc/fsl_esdhc.c +++ b/drivers/mmc/fsl_esdhc.c @@ -545,6 +545,12 @@ int fsl_esdhc_initialize(bd_t *bis, struct fsl_esdhc_cfg *cfg) caps = caps & ~(ESDHC_HOSTCAPBLT_SRS | ESDHC_HOSTCAPBLT_VS18 | ESDHC_HOSTCAPBLT_VS30); #endif + +/* T4240 host controller capabilities register should have VS33 bit */ +#ifdef CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33 + caps = caps | ESDHC_HOSTCAPBLT_VS33; +#endif + if (caps & ESDHC_HOSTCAPBLT_VS18) voltage_caps |= MMC_VDD_165_195; if (caps & ESDHC_HOSTCAPBLT_VS30)

On Wed, 2013-10-30 at 11:36 +0800, Haijun Zhang wrote:
T4240QDS eSDHC host capabilities reigster should have VS33 bit define. Add quirk CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33 to deal with capacity missing
Signed-off-by: Roy Zang tie-fei.zang@freescale.com Signed-off-by: Haijun Zhang Haijun.Zhang@freescale.com
changes for V2:
- Limited the change to T4240QDS only
arch/powerpc/include/asm/config_mpc85xx.h | 3 +++ drivers/mmc/fsl_esdhc.c | 6 ++++++ 2 files changed, 9 insertions(+)
diff --git a/arch/powerpc/include/asm/config_mpc85xx.h b/arch/powerpc/include/asm/config_mpc85xx.h index 946ea97..2f54aeb 100644 --- a/arch/powerpc/include/asm/config_mpc85xx.h +++ b/arch/powerpc/include/asm/config_mpc85xx.h @@ -557,6 +557,9 @@ #define CONFIG_SYS_FSL_CORES_PER_CLUSTER 4 #define CONFIG_SYS_FSL_QMAN_V3 /* QMAN version 3 */ #ifdef CONFIG_PPC_T4240 +#ifdef CONFIG_T4240QDS +#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33 +#endif
This is not the place for board specific things.
-Scott

Hi Scott, Haijun,
On Oct 30, 2013, at 8:58 PM, Scott Wood wrote:
On Wed, 2013-10-30 at 11:36 +0800, Haijun Zhang wrote:
T4240QDS eSDHC host capabilities reigster should have VS33 bit define. Add quirk CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33 to deal with capacity missing
Signed-off-by: Roy Zang tie-fei.zang@freescale.com Signed-off-by: Haijun Zhang Haijun.Zhang@freescale.com
changes for V2:
- Limited the change to T4240QDS only
arch/powerpc/include/asm/config_mpc85xx.h | 3 +++ drivers/mmc/fsl_esdhc.c | 6 ++++++ 2 files changed, 9 insertions(+)
diff --git a/arch/powerpc/include/asm/config_mpc85xx.h b/arch/powerpc/include/asm/config_mpc85xx.h index 946ea97..2f54aeb 100644 --- a/arch/powerpc/include/asm/config_mpc85xx.h +++ b/arch/powerpc/include/asm/config_mpc85xx.h @@ -557,6 +557,9 @@ #define CONFIG_SYS_FSL_CORES_PER_CLUSTER 4 #define CONFIG_SYS_FSL_QMAN_V3 /* QMAN version 3 */ #ifdef CONFIG_PPC_T4240 +#ifdef CONFIG_T4240QDS +#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33 +#endif
This is not the place for board specific things.
-Scott
I concur.
Rejected; please find the proper place to put this.
Regards
-- Pantelis
participants (3)
-
Haijun Zhang
-
Pantelis Antoniou
-
Scott Wood