From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751881AbdHBFJ6 (ORCPT ); Wed, 2 Aug 2017 01:09:58 -0400 Received: from lelnx194.ext.ti.com ([198.47.27.80]:37460 "EHLO lelnx194.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751088AbdHBFJ4 (ORCPT ); Wed, 2 Aug 2017 01:09:56 -0400 Subject: Re: [PATCH] phy: qcom-qmp: Fix failure path in phy_init functions To: Vivek Gautam , "linux-kernel@vger.kernel.org" References: <1497938238-19101-1-git-send-email-vivek.gautam@codeaurora.org> CC: linux-arm-msm , Linux USB Mailing List , Greg KH From: Kishon Vijay Abraham I Message-ID: Date: Wed, 2 Aug 2017 10:39:51 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Vivek, On Monday 31 July 2017 10:58 AM, Vivek Gautam wrote: > Hi Kishon, > > > On Tue, Jun 20, 2017 at 11:27 AM, Vivek Gautam > wrote: >> Fixing the clk enable failure path in qcom_qmp_phy_init() >> and cleanup the reset control deassertion failure path in >> qcom_qmp_phy_com_init(). >> >> Fixes: e78f3d15e115 ("phy: qcom-qmp: new qmp phy driver for qcom-chipsets") >> >> Cc: Kishon Vijay Abraham I >> Signed-off-by: Vivek Gautam > > This patch got missed. Can you please pull this in? merged now, thanks! -Kishon > > regards > Vivek > >> --- >> drivers/phy/qualcomm/phy-qcom-qmp.c | 15 ++++++--------- >> 1 file changed, 6 insertions(+), 9 deletions(-) >> >> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp.c b/drivers/phy/qualcomm/phy-qcom-qmp.c >> index 78ca62897784..7b739571b301 100644 >> --- a/drivers/phy/qualcomm/phy-qcom-qmp.c >> +++ b/drivers/phy/qualcomm/phy-qcom-qmp.c >> @@ -654,8 +654,6 @@ static int qcom_qmp_phy_com_init(struct qcom_qmp *qmp) >> if (ret) { >> dev_err(qmp->dev, "%s reset deassert failed\n", >> qmp->cfg->reset_list[i]); >> - while (--i >= 0) >> - reset_control_assert(qmp->resets[i]); >> goto err_rst; >> } >> } >> @@ -684,7 +682,7 @@ static int qcom_qmp_phy_com_init(struct qcom_qmp *qmp) >> if (ret) { >> dev_err(qmp->dev, >> "phy common block init timed-out\n"); >> - goto err_com_init; >> + goto err_rst; >> } >> } >> >> @@ -692,11 +690,11 @@ static int qcom_qmp_phy_com_init(struct qcom_qmp *qmp) >> >> return 0; >> >> -err_com_init: >> +err_rst: >> while (--i >= 0) >> reset_control_assert(qmp->resets[i]); >> -err_rst: >> mutex_unlock(&qmp->phy_mutex); >> + >> return ret; >> } >> >> @@ -749,14 +747,13 @@ static int qcom_qmp_phy_init(struct phy *phy) >> if (ret) { >> dev_err(qmp->dev, "failed to enable %s clk, err=%d\n", >> qmp->cfg->clk_list[i], ret); >> - while (--i >= 0) >> - clk_disable_unprepare(qmp->clks[i]); >> + goto err_clk; >> } >> } >> >> ret = qcom_qmp_phy_com_init(qmp); >> if (ret) >> - goto err_com_init; >> + goto err_clk; >> >> if (cfg->has_lane_rst) { >> ret = reset_control_deassert(qphy->lane_rst); >> @@ -804,7 +801,7 @@ static int qcom_qmp_phy_init(struct phy *phy) >> reset_control_assert(qphy->lane_rst); >> err_lane_rst: >> qcom_qmp_phy_com_exit(qmp); >> -err_com_init: >> +err_clk: >> while (--i >= 0) >> clk_disable_unprepare(qmp->clks[i]); >> >> -- >> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, >> a Linux Foundation Collaborative Project >> > > >