From: Doug Anderson Date: Tue, 14 Oct 2014 16:39:12 +0000 (-0700) Subject: mmc: dw_mmc: rockchip: Don't recalc the clock when it goes off X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=e7791079ae89d91024019e11a1f430d38c491246;p=openwrt%2Fstaging%2Fblogic.git mmc: dw_mmc: rockchip: Don't recalc the clock when it goes off The "set_ios" function is called with a clock of 0 when the clock is turning off. There's no reason to go through all the extra Rockchip logic (whose goal is to make sure DIV is 0 or 1) in that case. The Rockchip logic happened to work because the CCF will pick the lowest possible rate when you ask it for a clock of 0, but it's silly to go through all the remuxing and adjusting for no reason. Signed-off-by: Doug Anderson Acked-by: Jaehoon Chung Signed-off-by: Ulf Hansson --- diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c index f0c2cb1a210d..bbb4ec386e56 100644 --- a/drivers/mmc/host/dw_mmc-rockchip.c +++ b/drivers/mmc/host/dw_mmc-rockchip.c @@ -37,6 +37,9 @@ static void dw_mci_rk3288_set_ios(struct dw_mci *host, struct mmc_ios *ios) unsigned int cclkin; u32 bus_hz; + if (ios->clock == 0) + return; + /* * cclkin: source clock of mmc controller * bus_hz: card interface clock generated by CLKGEN