From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shawn Lin Subject: [RESEND PATCH 4/9] mmc: dw_mmc-rockchip: disable biu clk if possible Date: Sun, 9 Oct 2016 21:58:21 +0800 Message-ID: <1476021506-869-5-git-send-email-shawn.lin@rock-chips.com> References: <1476021506-869-1-git-send-email-shawn.lin@rock-chips.com> Return-path: Received: from lucky1.263xmail.com ([211.157.147.132]:57611 "EHLO lucky1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750979AbcJINzA (ORCPT ); Sun, 9 Oct 2016 09:55:00 -0400 In-Reply-To: <1476021506-869-1-git-send-email-shawn.lin@rock-chips.com> Sender: linux-mmc-owner@vger.kernel.org List-Id: linux-mmc@vger.kernel.org To: Jaehoon Chung , Ulf Hansson Cc: linux-mmc@vger.kernel.org, Doug Anderson , linux-rockchip@lists.infradead.org, Shawn Lin We could disable biu clk and power-off genpd if gpio card detect available. Signed-off-by: Shawn Lin --- drivers/mmc/host/dw_mmc-rockchip.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c index 28e0220..7528720 100644 --- a/drivers/mmc/host/dw_mmc-rockchip.c +++ b/drivers/mmc/host/dw_mmc-rockchip.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -366,14 +367,29 @@ static int dw_mci_rockchip_remove(struct platform_device *pdev) static int dw_mci_rockchip_runtime_suspend(struct device *dev) { struct dw_mci *host = dev_get_drvdata(dev); + int ret; + + ret = dw_mci_runtime_suspend(host); + if (ret) + return ret; - return dw_mci_runtime_suspend(host); + if (host->cur_slot && + (mmc_can_gpio_cd(host->cur_slot->mmc) || + !mmc_card_is_removable(host->cur_slot->mmc))) + clk_disable_unprepare(host->biu_clk); + + return 0; } static int dw_mci_rockchip_runtime_resume(struct device *dev) { struct dw_mci *host = dev_get_drvdata(dev); + if (host->cur_slot && + (mmc_can_gpio_cd(host->cur_slot->mmc) || + !mmc_card_is_removable(host->cur_slot->mmc))) + clk_prepare_enable(host->biu_clk); + return dw_mci_runtime_resume(host); } #endif /* CONFIG_PM */ -- 2.3.7