mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-03 09:59:44 +00:00
7798f6dbd5
At some point, a confusion arose about the use of the bit definitions in host_caps for bus widths, and the value in ext_csd. By coincidence, a simple shift could convert between one and the other: MMC_MODE_1BIT = 0, EXT_CSD_BUS_WIDTH_1 = 0 MMC_MODE_4BIT = 0x100, EXT_CSD_BUS_WIDTH_4 = 1 MMC_MODE_8BIT = 0x200, EXT_CSD_BUS_WIDTH_8 = 2 However, as host_caps is a bitmask of supported things, there is not, in fact, a one-to-one correspondence. host_caps is capable of containing MODE_4BIT | MODE_8BIT, so nonsensical things were happening where we would try to set the bus width to 12. The new code clarifies the very different namespaces: host_caps/card_caps = bitmask (MMC_MODE_*) ext CSD fields are just an index (EXT_CSD_BUS_WIDTH_*) mmc->bus_width integer number of bits (1, 4, 8) We create arrays to map between the namespaces, like in Linux. Signed-off-by: Andy Fleming <afleming@freescale.com> Tested-by: Jaehoon Chung <jh80.chung@samsung.com> Tested-by: Stephen Warren <swarren@nvidia.com> |
||
---|---|---|
.. | ||
arm_pl180_mmci.c | ||
arm_pl180_mmci.h | ||
bfin_sdh.c | ||
davinci_mmc.c | ||
dw_mmc.c | ||
exynos_dw_mmc.c | ||
fsl_esdhc.c | ||
ftsdc010_esdhc.c | ||
gen_atmel_mci.c | ||
Makefile | ||
mmc.c | ||
mmc_spi.c | ||
mv_sdhci.c | ||
mxcmmc.c | ||
mxsmmc.c | ||
omap_hsmmc.c | ||
pxa_mmc.h | ||
pxa_mmc_gen.c | ||
s5p_sdhci.c | ||
sdhci.c | ||
sh_mmcif.c | ||
sh_mmcif.h | ||
spl_mmc.c | ||
tegra_mmc.c |