Subject: [PATCH] mmc: dw_mmc: rockchip: Don't recalc the clock when it goes off

From: [email-masked] (Jaehoon Chung)
Date: Thu, 16 Oct 2014 11:21:47 +0900

Hi, Doug.

It looks good to me.

Acked-by: Jaehoon Chung <[email-masked]>

On 10/15/2014 01:39 AM, Doug Anderson wrote:
> 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 <[email-masked]>
> ---
>  drivers/mmc/host/dw_mmc-rockchip.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c
> index f0c2cb1..bbb4ec3 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
>