u-boot/drivers/mmc
Marek Vasut ed427dab2e mmc: tmio: Reorder TMIO clock handling
Reorder the tmio_sd_set_clk_rate() function such that it handles all
of the clock requiests correctly. Specifically, before this patch,
clock request with (mmc->clock == 0 && mmc->clk_disable) could leave
the clock enabled, as the function would exit on if (!mmc->clock)
condition on top and will not handle the mmc->clk_disable at all.

Rather than band-aid fixing just that particular problem, reorder
the entire function to make it easier to understand and verify that
all the cases are covered. The function has three sections now:

First, if mmc->clock != 0, we calculate divider for the SD block.
Second, if mmc->clock != 0 and SD block clock are enabled and
           current divider is not equal to the new divider, then
           stop the clock and update the divider.
Third, if mmc->clk_disable is set, disable the clock, otherwise
       enable the clock. This happens independently of divider
       update now.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-12-03 12:51:16 +01:00
..
arm_pl180_mmci.c mmc: arm_pl180_mmci: Remove cd_inverted host's struct field 2018-08-03 19:53:54 -04:00
arm_pl180_mmci.h mmc: arm_pl180_mmci: Remove cd_inverted host's struct field 2018-08-03 19:53:54 -04:00
atmel_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bcm2835_sdhci.c mmc: use core clock frequency in bcm2835 sdhost 2018-04-05 13:17:43 +02:00
bcm2835_sdhost.c mmc: Unirqify bcm2835_sdhost and fix writes 2018-05-23 22:31:42 +02:00
bcmstb_sdhci.c board: arm: Add support for Broadcom BCM7445 2018-07-10 16:55:57 -04:00
davinci_mmc.c MMC: davinici_mmc: Enable CD and WP with DM and OF_CONTROL 2018-09-11 21:49:02 -04:00
dw_mmc.c mmc: dw_mmc: Add RCRC handling 2018-11-10 08:16:30 -05:00
exynos_dw_mmc.c ARM: Odroid XU3: Modify exynos dw_mmc driver to support Odroid XU3 in DM MMC 2018-08-06 10:53:53 +09:00
fsl_esdhc.c mmc: fsl_esdhc: add uclass clk support 2018-10-22 13:00:09 +02:00
fsl_esdhc_spl.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ftsdc010_mci.c mmc: ftsdc010_mci: Sync compatible with DT mmc node 2018-05-29 14:45:03 +08:00
ftsdc010_mci.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gen_atmel_mci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
hi6220_dw_mmc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
k3_arsan_sdhci.c mmc: k3_arasan: Add sdhci driver support for K3 family SoCs 2018-09-11 08:32:55 -04:00
Kconfig mmc: mtk-sd: add SD/MMC host controller driver for MT7623 SoC 2018-11-28 23:04:54 -05:00
kona_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Makefile mmc: mtk-sd: add SD/MMC host controller driver for MT7623 SoC 2018-11-28 23:04:54 -05:00
meson_gx_mmc.c mmc: meson-gx: Add AXG compatible 2018-11-26 14:39:57 +01:00
mmc-uclass.c mmc: Parse HS400 DT properties 2018-12-03 12:51:16 +01:00
mmc.c blk: Call part_init() in the post_probe() method 2018-11-14 09:16:27 -08:00
mmc_boot.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mmc_legacy.c mmc: Improve tinification 2018-05-13 07:57:32 -04:00
mmc_private.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mmc_spi.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
mmc_write.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
msm_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mtk-sd.c mmc: mtk-sd: add SD/MMC host controller driver for MT7623 SoC 2018-11-28 23:04:54 -05:00
mv_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mvebu_mmc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mxcmmc.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
mxsmmc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
omap_hsmmc.c mmc: omap: Surround DM_FLAG_PRE_RELOC flag with OF_CONTROL check 2018-11-14 09:16:28 -08:00
pci_mmc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pic32_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pxa_mmc_gen.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
renesas-sdhi.c mmc: tmio: Switch to clock framework 2018-12-03 12:51:16 +01:00
rockchip_dw_mmc.c rockchip: dwmmc: add rk2928-dw-mshc compatible 2018-10-02 09:35:09 +02:00
rockchip_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rpmb.c mmc: rpmb: add mmc_rpmb_route_frames() 2018-10-07 10:47:38 -04:00
s5p_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sandbox_mmc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sdhci-cadence.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sdhci.c mmc: sdhci: Fix MMC HS200 tuning command failures 2018-06-15 08:54:04 +02:00
sh_mmcif.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sh_mmcif.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sh_sdhi.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
socfpga_dw_mmc.c mmc: socfpga: Add clock framework support 2018-08-13 22:35:42 +02:00
sti_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
stm32_sdmmc2.c mmc: stm32_sdmmc2: update pwron management 2018-07-19 16:31:35 -04:00
sunxi_mmc.c sunxi-mmc: use new mode on both controllers on A64 2018-11-22 13:20:16 +05:30
tangier_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
tegra_mmc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
tmio-common.c mmc: tmio: Reorder TMIO clock handling 2018-12-03 12:51:16 +01:00
tmio-common.h mmc: tmio: Switch to clock framework 2018-12-03 12:51:16 +01:00
uniphier-sd.c mmc: tmio: Switch to clock framework 2018-12-03 12:51:16 +01:00
xenon_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynq_sdhci.c mmc: zynq: Fix tuning_loop_counter type in arasan_sdhci_execute_tuning() 2018-06-15 08:54:04 +02:00