From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933788AbcBDGFF (ORCPT ); Thu, 4 Feb 2016 01:05:05 -0500 Received: from mailout2.samsung.com ([203.254.224.25]:36099 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752396AbcBDGFA (ORCPT ); Thu, 4 Feb 2016 01:05:00 -0500 X-AuditID: cbfee68d-f79646d000001355-1d-56b2ea0a1f9e Message-id: <56B2EA0A.5020208@samsung.com> Date: Thu, 04 Feb 2016 15:04:58 +0900 From: Jaehoon Chung User-Agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-version: 1.0 To: Shawn Lin , Ulf Hansson Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/4] mmc: dw_mmc: add setup_clk for init hook References: <1453944616-16224-1-git-send-email-shawn.lin@rock-chips.com> <1453944664-16874-1-git-send-email-shawn.lin@rock-chips.com> In-reply-to: <1453944664-16874-1-git-send-email-shawn.lin@rock-chips.com> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpjkeLIzCtJLcpLzFFi42JZI2JSosv1alOYwaaryhaXd81hszjyv5/R 4s6T9awWx9eGO7B43Lm2h83j76z9LB6fN8kFMEdx2aSk5mSWpRbp2yVwZVzZ+ZOl4K14xayn fUwNjNuEuxg5OSQETCRWv5/JAmGLSVy4t56ti5GLQ0hgBaPEjgs7mbsYOcCKer+mQMRnMUqc +XOKHaRBSOABo8T6DjMQm1dAS6K7czoziM0ioCrxbWMzK4jNJqAjsf3bcSYQW1QgTOLBur2s EPWCEj8m3wNbLCLgJ7F1x1Y2EJtZwFri549WsBphAUeJCT2zmSEWtzNKfF19F2wxp4CnxMQt 18GOYxbQk7h/UQuiV15i85q3zBDPbGKXuLqND+IeAYlvkw+xQPwiK7HpAFSJpMTBFTdYJjCK zUJy0SyEobOQDF3AyLyKUTS1ILmgOCm9yFCvODG3uDQvXS85P3cTIzB6Tv971ruD8fYB60OM AhyMSjy8DZ6bwoRYE8uKK3MPMZoCHTGRWUo0OR8Yo3kl8YbGZkYWpiamxkbmlmZK4ryKUj+D hQTSE0tSs1NTC1KL4otKc1KLDzEycXBKNTB2eehM6n+6aekc14eHBGNEmPbJJU/V7PpVbyWo cGa3TbCwdGDK7ZziiavUPuy6ZB/ke44ne5emHotlq8MHGa67If88H5+71jW7WXWiLruO2HH+ i93/1Vb36GxPvPWiP+fGBd+er4d3NIQHL6+az2fCK3Im4YUP84rtWxfM4/0XGFjtcUxCd6kS S3FGoqEWc1FxIgDeLHH4mQIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrCIsWRmVeSWpSXmKPExsVy+t9jQV2uV5vCDD4tlLG4vGsOm8WR//2M FneerGe1OL423IHF4861PWwef2ftZ/H4vEkugDmqgdEmIzUxJbVIITUvOT8lMy/dVsk7ON45 3tTMwFDX0NLCXEkhLzE31VbJxSdA1y0zB2ibkkJZYk4pUCggsbhYSd8O04TQEDddC5jGCF3f kCC4HiMDNJCwhjHjys6fLAVvxStmPe1jamDcJtzFyMEhIWAi0fs1pYuRE8gUk7hwbz1bFyMX h5DALEaJM39OsYMkhAQeMEqs7zADsXkFtCS6O6czg9gsAqoS3zY2s4LYbAI6Etu/HWcCsUUF wiQerNvLClEvKPFj8j0WEFtEwE9i646tbCA2s4C1xM8frWA1wgKOEhN6ZjNDLG5nlPi6+i7Y Yk4BT4mJW64zgxzKLKAncf+iFkSvvMTmNW+ZJzACXYmwYhZC1SwkVQsYmVcxSqQWJBcUJ6Xn GuallusVJ+YWl+al6yXn525iBMfoM6kdjAd3uR9iFOBgVOLhveG9KUyINbGsuDL3EKMEB7OS CG/HXaAQb0piZVVqUX58UWlOavEhRlNgGExklhJNzgemj7ySeENjEzMjSyNzQwsjY3Mlcd7H /9eFCQmkJ5akZqemFqQWwfQxcXBKNTCK8cnNqixp5XofUD2ZXW+qgE7cbNFZd5/+PyZ3rvfy 4gOxqz5IT/4efLVzRui+75MqXtxVExbeHvR094njNVZX0k8wbv3PIVHaxf5kU74a87odJgsY c5NVDl/e+bNV8MiuZ4wXeUQL/nzyidVuuGFzJ75qMm/XGsle7TCrlaVeW8K28e11D/RWYinO SDTUYi4qTgQAJb2lxecCAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Shawn. On 01/28/2016 10:31 AM, Shawn Lin wrote: > We add this new argument into init hook for > variant drivers to decide whether to do clock > related stuff inside the hook. > > Signed-off-by: Shawn Lin > --- > > drivers/mmc/host/dw_mmc-exynos.c | 4 ++-- > drivers/mmc/host/dw_mmc-rockchip.c | 2 +- > drivers/mmc/host/dw_mmc.c | 2 +- > drivers/mmc/host/dw_mmc.h | 2 +- > 4 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/mmc/host/dw_mmc-exynos.c b/drivers/mmc/host/dw_mmc-exynos.c > index 3a7e835..edaa117 100644 > --- a/drivers/mmc/host/dw_mmc-exynos.c > +++ b/drivers/mmc/host/dw_mmc-exynos.c > @@ -91,7 +91,7 @@ static inline u8 dw_mci_exynos_get_ciu_div(struct dw_mci *host) > return SDMMC_CLKSEL_GET_DIV(mci_readl(host, CLKSEL)) + 1; > } > > -static int dw_mci_exynos_priv_init(struct dw_mci *host) > +static int dw_mci_exynos_priv_init(struct dw_mci *host, bool setup_clk) > { "bool setup_clk" is made because of exynos SoC, right? Hmm. I'm checking how we can control without "setup_clk". Waiting for this. Thanks for removing the hooks. :) Best Regards, Jaehoon Chung > struct dw_mci_exynos_priv_data *priv = host->priv; > > @@ -159,7 +159,7 @@ static int dw_mci_exynos_resume(struct device *dev) > { > struct dw_mci *host = dev_get_drvdata(dev); > > - dw_mci_exynos_priv_init(host); > + dw_mci_exynos_priv_init(host, false); > return dw_mci_resume(host); > } > > diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c > index 9934503..885c801 100644 > --- a/drivers/mmc/host/dw_mmc-rockchip.c > +++ b/drivers/mmc/host/dw_mmc-rockchip.c > @@ -221,7 +221,7 @@ static int dw_mci_rk3288_parse_dt(struct dw_mci *host) > return 0; > } > > -static int dw_mci_rockchip_init(struct dw_mci *host) > +static int dw_mci_rockchip_init(struct dw_mci *host, bool setup_clk) > { > /* It is slot 8 on Rockchip SoCs */ > host->sdio_id0 = 8; > diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c > index 7128351..1d27a2b 100644 > --- a/drivers/mmc/host/dw_mmc.c > +++ b/drivers/mmc/host/dw_mmc.c > @@ -2995,7 +2995,7 @@ int dw_mci_probe(struct dw_mci *host) > } > > if (drv_data && drv_data->init) { > - ret = drv_data->init(host); > + ret = drv_data->init(host, true); > if (ret) { > dev_err(host->dev, > "implementation specific init failed\n"); > diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h > index f695b58..1a9492e 100644 > --- a/drivers/mmc/host/dw_mmc.h > +++ b/drivers/mmc/host/dw_mmc.h > @@ -285,7 +285,7 @@ struct dw_mci_slot { > */ > struct dw_mci_drv_data { > unsigned long *caps; > - int (*init)(struct dw_mci *host); > + int (*init)(struct dw_mci *host, bool setup_clk); > int (*setup_clock)(struct dw_mci *host); > void (*prepare_command)(struct dw_mci *host, u32 *cmdr); > void (*set_ios)(struct dw_mci *host, struct mmc_ios *ios); >