u-boot-brain/drivers/mmc
Stephen Warren 873cc1d777 mmc: store hwpart in the block device
This will allow us to have multiple block device structs each referring
to the same eMMC device, yet different HW partitions.

For now, there is still a single block device per eMMC device. As before,
this block device always accesses whichever HW partition was most recently
selected. Clients wishing to make use of multiple block devices referring
to different HW partitions can simply take a copy of this block device
once it points at the correct HW partition, and use each one as they wish.
This feature will be used by the next patch.

In the future, perhaps get_device() could be enhanced to return a
dynamically allocated block device struct, to avoid the client needing to
copy it in order to maintain multiple block devices. However, this would
require all users to be updated to free those block device structs at some
point, which is rather a large change.

Most callers of mmc_switch_part() wish to permanently switch the default
MMC block device's HW partition. Enhance mmc_switch_part() so that it does
this. This removes the need for callers to do this. However,
common/env_mmc.c needs to save and restore the current HW partition. Make
it do this more explicitly.

Replace use of mmc_switch_part() with mmc_select_hwpart() in order to
remove duplicate code that skips the call if that HW partition is already
selected.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2016-01-13 21:05:19 -05:00
..
arm_pl180_mmci.c mmc: Split mmc struct, rework mmc initialization (v2) 2014-03-24 12:58:56 +02:00
arm_pl180_mmci.h mmc: Split mmc struct, rework mmc initialization (v2) 2014-03-24 12:58:56 +02:00
atmel_sdhci.c mmc: atmel: Add atmel sdhci support 2015-11-03 14:21:31 +01:00
bcm2835_sdhci.c mmc: bcm2835_sdhci: Restore original delay behavior 2015-06-25 17:04:37 -04:00
bfin_sdh.c mmc: set correct block size value in bfin sdh driver 2014-10-03 17:26:49 +03:00
davinci_mmc.c mmc: Split mmc struct, rework mmc initialization (v2) 2014-03-24 12:58:56 +02:00
dw_mmc.c mmc: dw_mmc: support fifo mode in dwc mmc driver 2015-12-01 08:07:22 -07:00
exynos_dw_mmc.c mmc: Support bypass mode with the get_mmc_clk() method 2015-09-02 21:28:23 -06:00
fsl_esdhc_spl.c block: pass block dev not num to read/write/erase() 2016-01-13 21:05:18 -05:00
fsl_esdhc.c ARM: imx: fsl_esdhc: fix usage of low 4 bits of sysctl register 2016-01-03 15:21:21 +01:00
ftsdc010_mci.c mmc: Split mmc struct, rework mmc initialization (v2) 2014-03-24 12:58:56 +02:00
ftsdc021_sdhci.c mmc: add Faraday FTSDC021 SDHCI controller support 2013-12-08 14:23:05 +02:00
gen_atmel_mci.c mmc: atmel: Zap global 'initialized' variable 2015-11-01 22:02:15 +01:00
hi6220_dw_mmc.c driver: dwmmc: Fix pointer conversion warnings for hikey 2015-11-12 15:59:00 -05:00
Kconfig sunxi: Use Kconfig CONFIG_MMC 2015-10-20 22:48:28 +02:00
kona_sdhci.c mmc: remove the MMC_MODE_HC flag 2015-05-05 12:29:36 +03:00
Makefile mmc: atmel: Add atmel sdhci support 2015-11-03 14:21:31 +01:00
mmc_private.h block: pass block dev not num to read/write/erase() 2016-01-13 21:05:18 -05:00
mmc_spi.c mmc_spi: Big-endian support 2015-08-13 11:24:26 +03:00
mmc_write.c mmc: store hwpart in the block device 2016-01-13 21:05:19 -05:00
mmc-uclass.c dm: mmc: Add an MMC uclass 2015-07-21 17:39:25 -06:00
mmc.c mmc: store hwpart in the block device 2016-01-13 21:05:19 -05:00
mv_sdhci.c mmc: mv_sdhci: Configure the SDHCI MBUS bridge windows 2015-10-21 02:25:02 +02:00
mvebu_mmc.c mmc: remove the MMC_MODE_HC flag 2015-05-05 12:29:36 +03:00
mxcmmc.c mmc: Split mmc struct, rework mmc initialization (v2) 2014-03-24 12:58:56 +02:00
mxsmmc.c mmc: remove the MMC_MODE_HC flag 2015-05-05 12:29:36 +03:00
omap_hsmmc.c drivers: mmc: omap_hsmmc: convert driver to adopt device driver model 2015-10-22 14:43:57 -04:00
pci_mmc.c dm: Convert PCI MMC over to use DM PCI API 2016-01-12 10:19:09 -07:00
pxa_mmc_gen.c arm: pxa: mmc: clean-up include file order 2015-08-24 20:30:37 +02:00
rockchip_dw_mmc.c rockchip: mmc: get the fifo mode and fifo depth property from dts 2015-12-01 08:07:22 -07:00
rpmb.c Move ALLOC_CACHE_ALIGN_BUFFER() to the new memalign.h header 2015-09-11 17:15:20 -04:00
s3c_sdi.c mmc: remove the MMC_MODE_HC flag 2015-05-05 12:29:36 +03:00
s5p_sdhci.c s5p sdhci: call pinmux for card's gpio pins before use them 2015-11-02 10:38:14 +09:00
sandbox_mmc.c dm: test: Add a test for the mmc uclass 2015-07-21 17:39:32 -06:00
sdhci.c mmc: sdhci: Fix the SD clock stop sequence 2015-11-03 14:21:30 +01:00
sh_mmcif.c mmc: remove the MMC_MODE_HC flag 2015-05-05 12:29:36 +03:00
sh_mmcif.h mmc: sh_mmcif: Add support rmobile 2014-12-05 11:16:22 +09:00
sh_sdhi.c mmc: rmobile: Add SDHC support for Renesas rmobile ARM SoC 2015-01-19 16:24:25 +02:00
socfpga_dw_mmc.c arm: socfpga: fix up a questionable macro for SDMMC 2015-12-20 03:44:56 +01:00
spear_sdhci.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
sunxi_mmc.c block: pass block dev not num to read/write/erase() 2016-01-13 21:05:18 -05:00
tegra_mmc.c of: clean up OF_CONTROL ifdef conditionals 2015-08-18 13:46:05 -04:00
zynq_sdhci.c zynq: sdhci: Move driver to DM 2015-12-07 10:14:29 +01:00