mmc: sunxi: Fix clock frequency change sequence
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Fri, 27 Jan 2017 21:38:33 +0000 (22:38 +0100)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 13 Feb 2017 12:20:48 +0000 (13:20 +0100)
commit39cc281fb79e3d40e945577363a55f5c922353ad
treedfaee0afe993105e8efc24a4978fc8cecf8c388f
parent1ed2171944888cf6787990a0f6387b717ba72e24
mmc: sunxi: Fix clock frequency change sequence

The SD specification documents that the clock frequency should only be
changed once gated (Section 3.2.3 - SD Clock Frequency Change Sequence).

The current code first modifies the parent clock, gates it and then
modifies the internal divider. This means that since the parent clock rate
might be changed, the bus clock might be changed as well before it is
gated, which breaks the specification.

Move the gating before the parent rate modification.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Tested-by: Florian Vaussard <florian.vaussard@heig-vd.ch>
Acked-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sunxi-mmc.c