From mboxrd@z Thu Jan 1 00:00:00 1970 From: Doug Anderson Subject: [PATCH] mmc: dw_mmc: rockchip: Don't recalc the clock when it goes off Date: Tue, 14 Oct 2014 09:39:12 -0700 Message-ID: <1413304752-7823-1-git-send-email-dianders@chromium.org> Return-path: Received: from mail-pd0-f173.google.com ([209.85.192.173]:55252 "EHLO mail-pd0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752909AbaJNQjT (ORCPT ); Tue, 14 Oct 2014 12:39:19 -0400 Received: by mail-pd0-f173.google.com with SMTP id g10so7829528pdj.32 for ; Tue, 14 Oct 2014 09:39:19 -0700 (PDT) Sender: linux-mmc-owner@vger.kernel.org List-Id: linux-mmc@vger.kernel.org To: Ulf Hansson , Seungwon Jeon , Jaehoon Chung Cc: Addy Ke , Sonny Rao , Alim Akhtar , Andrew Bresticker , Doug Anderson , heiko@sntech.de, chris@printf.net, linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org 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 --- 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 -- 2.1.0.rc2.206.gedb03e5