From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934160AbcBDGKW (ORCPT ); Thu, 4 Feb 2016 01:10:22 -0500 Received: from mailout4.samsung.com ([203.254.224.34]:47829 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933504AbcBDGKT (ORCPT ); Thu, 4 Feb 2016 01:10:19 -0500 X-AuditID: cbfee68f-f793a6d000001364-f7-56b2eb49f918 Message-id: <56B2EB49.6010505@samsung.com> Date: Thu, 04 Feb 2016 15:10:17 +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 v2] mmc: dw_mmc: fix num_slots setting References: <1454393485-4770-1-git-send-email-shawn.lin@rock-chips.com> In-reply-to: <1454393485-4770-1-git-send-email-shawn.lin@rock-chips.com> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgkeLIzCtJLcpLzFFi42JZI2JSrOv5elOYwY7NchaXd81hszjyv5/R 4s6T9awWx9eGO7B43Lm2h83j76z9LB6fN8kFMEdx2aSk5mSWpRbp2yVwZbxac5mtYLFgxZG1 axgbGK/xdjFyckgImEi82f6HCcIWk7hwbz1bFyMXh5DACkaJjglvGGGK5rbcZoJIzGKU2HNi EpTzgFGi/dsJsHZeAS2JrxP2sIPYLAKqEi/bj7GB2GwCOhLbvx0HqxEVCJN4sG4vK0S9oMSP yfdYQGwRAT+JrTu2gtUzC1hL/PzRClYjLGAlMWXzXbAaIQF3iUfr74HFOQU8JF6+XghkcwDV 60ncv6gF0SovsXnNW2aQ2yQEVrFLbDrSxwpxj4DEt8mHWEDqJQRkJTYdYIZ4TFLi4IobLBMY xWYhuWgWwtRZSKYuYGRexSiaWpBcUJyUXmSsV5yYW1yal66XnJ+7iREYQaf/PevfwXj3gPUh RgEORiUe3gbPTWFCrIllxZW5hxhNgY6YyCwlmpwPjNO8knhDYzMjC1MTU2Mjc0szJXHehVI/ g4UE0hNLUrNTUwtSi+KLSnNSiw8xMnFwSjUwzg/ZLx/sveXAfZOX3kYOs12vnHUW3XLrUMX+ k/pWvwp2rWOfcOooK9Okf9w3/nukfC27VO1kWVoUG5W4KenJHq7v8kyLNx9+U/yTaflvtUNP nz3aq8gwd+XG6gVyFy8f3f1t8c2pz1z6nfmZ/a5MNjoZzHRa08mZ6dX19Qf//pk1V22V3IUZ Z2SUWIozEg21mIuKEwHLdPd5mwIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKIsWRmVeSWpSXmKPExsVy+t9jQV3P15vCDDY+k7S4vGsOm8WR//2M FneerGe1OL423IHF4861PWwef2ftZ/H4vEkugDmqgdEmIzUxJbVIITUvOT8lMy/dVsk7ON45 3tTMwFDX0NLCXEkhLzE31VbJxSdA1y0zB2ibkkJZYk4pUCggsbhYSd8O04TQEDddC5jGCF3f kCC4HiMDNJCwhjHj1ZrLbAWLBSuOrF3D2MB4jbeLkZNDQsBEYm7LbSYIW0ziwr31bF2MXBxC ArMYJfacmMQE4TxglGj/dgKsildAS+LrhD3sIDaLgKrEy/ZjbCA2m4COxPZvx8FqRAXCJB6s 28sKUS8o8WPyPRYQW0TAT2Lrjq1g9cwC1hI/f7SC1QgLWElM2XwXrEZIwF3i0fp7YHFOAQ+J l68XAtkcQPV6EvcvakG0yktsXvOWeQIj0JUIG2YhVM1CUrWAkXkVo0RqQXJBcVJ6rmFearle cWJucWleul5yfu4mRnCUPpPawXhwl/shRgEORiUe3hvem8KEWBPLiitzDzFKcDArifB6vQQK 8aYkVlalFuXHF5XmpBYfYjQFBsFEZinR5HxgAskriTc0NjEzsjQyN7QwMjZXEud9/H9dmJBA emJJanZqakFqEUwfEwenVANjzpu9fovCZhdvCnu8/KpAe1dsivKZh3ty+ne/kjLdKTfTbZGd /qrDExiOB3694Ks65RGzNPe0ns+vVEuXXpvkobnp7y+X6ZfOnAjQ/ag25daO6C8VlUues27K XCAz4Tu/9r+XDIm5zKJxPivnhEcY2aZ7SZt43TQ59oqv/Fi/g89ivrxHZkaTlViKMxINtZiL ihMBGu5hFegCAAA= 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 02/02/2016 03:11 PM, Shawn Lin wrote: > This patch make num_slots to 1 if pdata->num_slot is not > defined. Meanwhile, we need to make sure num_slots should > not larger that the supported slots Thanks! I will apply this. Best Regards, Jaehoon Chung > > Signed-off-by: Shawn Lin > > --- > > Changes in v2: > - remove default num-slots setting from dw_mci_parse_dt > > drivers/mmc/host/dw_mmc.c | 23 ++++++++++------------- > 1 file changed, 10 insertions(+), 13 deletions(-) > > diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c > index 7128351..9696b77 100644 > --- a/drivers/mmc/host/dw_mmc.c > +++ b/drivers/mmc/host/dw_mmc.c > @@ -2864,12 +2864,7 @@ static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host) > return ERR_PTR(-ENOMEM); > > /* find out number of slots supported */ > - if (of_property_read_u32(dev->of_node, "num-slots", > - &pdata->num_slots)) { > - dev_info(dev, > - "num-slots property not found, assuming 1 slot is available\n"); > - pdata->num_slots = 1; > - } > + of_property_read_u32(np, "num-slots", &pdata->num_slots); > > /* get quirks */ > for (idx = 0; idx < ARRAY_SIZE(of_quirks); idx++) > @@ -2949,12 +2944,6 @@ int dw_mci_probe(struct dw_mci *host) > } > } > > - if (host->pdata->num_slots < 1) { > - dev_err(host->dev, > - "Platform data must supply num_slots.\n"); > - return -ENODEV; > - } > - > host->biu_clk = devm_clk_get(host->dev, "biu"); > if (IS_ERR(host->biu_clk)) { > dev_dbg(host->dev, "biu clock not available\n"); > @@ -3111,7 +3100,15 @@ int dw_mci_probe(struct dw_mci *host) > if (host->pdata->num_slots) > host->num_slots = host->pdata->num_slots; > else > - host->num_slots = SDMMC_GET_SLOT_NUM(mci_readl(host, HCON)); > + host->num_slots = 1; > + > + if (host->num_slots < 1 || > + host->num_slots > SDMMC_GET_SLOT_NUM(mci_readl(host, HCON))) { > + dev_err(host->dev, > + "Platform data must supply correct num_slots.\n"); > + ret = -ENODEV; > + goto err_clk_ciu; > + } > > /* > * Enable interrupts for command done, data over, data empty, >