Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754187AbdCPOq7 (ORCPT ); Thu, 16 Mar 2017 10:46:59 -0400 Received: from mail-ua0-f179.google.com ([209.85.217.179]:32987 "EHLO mail-ua0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753373AbdCPOqz (ORCPT ); Thu, 16 Mar 2017 10:46:55 -0400 MIME-Version: 1.0 In-Reply-To: <20170315113139.17989-1-p.zabel@pengutronix.de> References: <20170315113139.17989-1-p.zabel@pengutronix.de> From: Ulf Hansson Date: Thu, 16 Mar 2017 15:46:53 +0100 Message-ID: Subject: Re: [PATCH v2 06/14] mmc: dw_mmc: simplify optional reset handling To: Philipp Zabel Cc: "linux-mmc@vger.kernel.org" , Jaehoon Chung , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2501 Lines: 68 On 15 March 2017 at 12:31, Philipp Zabel wrote: > As of commit bb475230b8e5 ("reset: make optional functions really > optional"), the reset framework API calls use NULL pointers to describe > optional, non-present reset controls. > > This allows to return errors from devm_reset_control_get_optional and to > call reset_control_(de)assert unconditionally. > > Signed-off-by: Philipp Zabel Thanks, applied for next! Kind regards Uffe > --- > drivers/mmc/host/dw_mmc.c | 14 +++++--------- > 1 file changed, 5 insertions(+), 9 deletions(-) > > diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c > index a9ac0b4573131..3d62b0a1f81cb 100644 > --- a/drivers/mmc/host/dw_mmc.c > +++ b/drivers/mmc/host/dw_mmc.c > @@ -2968,10 +2968,8 @@ static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host) > > /* find reset controller when exist */ > pdata->rstc = devm_reset_control_get_optional(dev, "reset"); > - if (IS_ERR(pdata->rstc)) { > - if (PTR_ERR(pdata->rstc) == -EPROBE_DEFER) > - return ERR_PTR(-EPROBE_DEFER); > - } > + if (IS_ERR(pdata->rstc)) > + return ERR_CAST(pdata->rstc); > > /* find out number of slots supported */ > of_property_read_u32(np, "num-slots", &pdata->num_slots); > @@ -3100,7 +3098,7 @@ int dw_mci_probe(struct dw_mci *host) > } > } > > - if (!IS_ERR(host->pdata->rstc)) { > + if (host->pdata->rstc) { > reset_control_assert(host->pdata->rstc); > usleep_range(10, 50); > reset_control_deassert(host->pdata->rstc); > @@ -3257,8 +3255,7 @@ int dw_mci_probe(struct dw_mci *host) > if (host->use_dma && host->dma_ops->exit) > host->dma_ops->exit(host); > > - if (!IS_ERR(host->pdata->rstc)) > - reset_control_assert(host->pdata->rstc); > + reset_control_assert(host->pdata->rstc); > > err_clk_ciu: > clk_disable_unprepare(host->ciu_clk); > @@ -3290,8 +3287,7 @@ void dw_mci_remove(struct dw_mci *host) > if (host->use_dma && host->dma_ops->exit) > host->dma_ops->exit(host); > > - if (!IS_ERR(host->pdata->rstc)) > - reset_control_assert(host->pdata->rstc); > + reset_control_assert(host->pdata->rstc); > > clk_disable_unprepare(host->ciu_clk); > clk_disable_unprepare(host->biu_clk); > -- > 2.11.0 >