From: Abhinav Kumar <quic_abhinavk@quicinc.com> To: Douglas Anderson <dianders@chromium.org>, Rob Clark <robdclark@gmail.com>, Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Cc: dri-devel@lists.freedesktop.org, "Mark Brown" <broonie@kernel.org>, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, "Daniel Vetter" <daniel@ffwll.ch>, "David Airlie" <airlied@linux.ie>, "Jonathan Marek" <jonathan@marek.ca>, "José Expósito" <jose.exposito89@gmail.com>, "Rajeev Nandan" <quic_rajeevny@quicinc.com>, "Sean Paul" <sean@poorly.run>, "Stephen Boyd" <swboyd@chromium.org>, "Vladimir Lypak" <vladimir.lypak@gmail.com>, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 6/6] drm/msm/dsi: Improve dsi_phy_driver_probe() probe error handling Date: Wed, 3 Aug 2022 19:13:15 -0700 [thread overview] Message-ID: <45695061-8a8c-8d49-7728-93aa4323a60b@quicinc.com> (raw) In-Reply-To: <20220802153434.v3.6.I969118a35934a0e5007fe4f80e3e28e9c0b7602a@changeid> On 8/2/2022 3:37 PM, Douglas Anderson wrote: > The dsi_phy_driver_probe() function has a "goto fail" for no > reason. Change it to just always return directly when it sees an > error. Make this simpler by leveraging dev_err_probe() which is > designed to make code like this shorter / simpler. > > Signed-off-by: Douglas Anderson <dianders@chromium.org> Yes, apart from Dmitry's suggestion of updating the commit text about the return value change, this is: Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> > --- > > Changes in v3: > - ("Improve dsi_phy_driver_probe() probe error handling") new for v3. > > drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 74 ++++++++++----------------- > 1 file changed, 27 insertions(+), 47 deletions(-) > > diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c > index 0a00f9b73fc5..57cd525de7a1 100644 > --- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c > +++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c > @@ -621,12 +621,9 @@ static int dsi_phy_driver_probe(struct platform_device *pdev) > phy->pdev = pdev; > > phy->id = dsi_phy_get_id(phy); > - if (phy->id < 0) { > - ret = phy->id; > - DRM_DEV_ERROR(dev, "%s: couldn't identify PHY index, %d\n", > - __func__, ret); > - goto fail; > - } > + if (phy->id < 0) > + return dev_err_probe(dev, phy->id, > + "Couldn't identify PHY index\n"); > > phy->regulator_ldo_mode = of_property_read_bool(dev->of_node, > "qcom,dsi-phy-regulator-ldo-mode"); > @@ -634,88 +631,71 @@ static int dsi_phy_driver_probe(struct platform_device *pdev) > phy->cphy_mode = (phy_type == PHY_TYPE_CPHY); > > phy->base = msm_ioremap_size(pdev, "dsi_phy", &phy->base_size); > - if (IS_ERR(phy->base)) { > - DRM_DEV_ERROR(dev, "%s: failed to map phy base\n", __func__); > - ret = -ENOMEM; > - goto fail; > - } > + if (IS_ERR(phy->base)) > + return dev_err_probe(dev, PTR_ERR(phy->base), > + "Failed to map phy base\n"); > > phy->pll_base = msm_ioremap_size(pdev, "dsi_pll", &phy->pll_size); > - if (IS_ERR(phy->pll_base)) { > - DRM_DEV_ERROR(&pdev->dev, "%s: failed to map pll base\n", __func__); > - ret = -ENOMEM; > - goto fail; > - } > + if (IS_ERR(phy->pll_base)) > + return dev_err_probe(dev, PTR_ERR(phy->pll_base), > + "Failed to map pll base\n"); > > if (phy->cfg->has_phy_lane) { > phy->lane_base = msm_ioremap_size(pdev, "dsi_phy_lane", &phy->lane_size); > - if (IS_ERR(phy->lane_base)) { > - DRM_DEV_ERROR(&pdev->dev, "%s: failed to map phy lane base\n", __func__); > - ret = -ENOMEM; > - goto fail; > - } > + if (IS_ERR(phy->lane_base)) > + return dev_err_probe(dev, PTR_ERR(phy->lane_base), > + "Failed to map phy lane base\n"); > } > > if (phy->cfg->has_phy_regulator) { > phy->reg_base = msm_ioremap_size(pdev, "dsi_phy_regulator", &phy->reg_size); > - if (IS_ERR(phy->reg_base)) { > - DRM_DEV_ERROR(&pdev->dev, "%s: failed to map phy regulator base\n", __func__); > - ret = -ENOMEM; > - goto fail; > - } > + if (IS_ERR(phy->reg_base)) > + return dev_err_probe(dev, PTR_ERR(phy->reg_base), > + "Failed to map phy regulator base\n"); > } > > if (phy->cfg->ops.parse_dt_properties) { > ret = phy->cfg->ops.parse_dt_properties(phy); > if (ret) > - goto fail; > + return ret; > } > > ret = devm_regulator_bulk_get_const(dev, phy->cfg->num_regulators, > phy->cfg->regulator_data, > &phy->supplies); > if (ret) > - goto fail; > + return ret; > > phy->ahb_clk = msm_clk_get(pdev, "iface"); > - if (IS_ERR(phy->ahb_clk)) { > - DRM_DEV_ERROR(dev, "%s: Unable to get ahb clk\n", __func__); > - ret = PTR_ERR(phy->ahb_clk); > - goto fail; > - } > + if (IS_ERR(phy->ahb_clk)) > + return dev_err_probe(dev, PTR_ERR(phy->ahb_clk), > + "Unable to get ahb clk\n"); > > /* PLL init will call into clk_register which requires > * register access, so we need to enable power and ahb clock. > */ > ret = dsi_phy_enable_resource(phy); > if (ret) > - goto fail; > + return ret; > > if (phy->cfg->ops.pll_init) { > ret = phy->cfg->ops.pll_init(phy); > - if (ret) { > - DRM_DEV_INFO(dev, > - "%s: pll init failed: %d, need separate pll clk driver\n", > - __func__, ret); > - goto fail; > - } > + if (ret) > + return dev_err_probe(dev, ret, > + "PLL init failed; need separate clk driver\n"); > } > > ret = devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, > phy->provided_clocks); > - if (ret) { > - DRM_DEV_ERROR(dev, "%s: failed to register clk provider: %d\n", __func__, ret); > - goto fail; > - } > + if (ret) > + return dev_err_probe(dev, ret, > + "Failed to register clk provider\n"); > > dsi_phy_disable_resource(phy); > > platform_set_drvdata(pdev, phy); > > return 0; > - > -fail: > - return ret; > } > > static struct platform_driver dsi_phy_platform_driver = {
WARNING: multiple messages have this Message-ID (diff)
From: Abhinav Kumar <quic_abhinavk@quicinc.com> To: Douglas Anderson <dianders@chromium.org>, Rob Clark <robdclark@gmail.com>, Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Cc: "Sean Paul" <sean@poorly.run>, "Jonathan Marek" <jonathan@marek.ca>, "David Airlie" <airlied@linux.ie>, linux-arm-msm@vger.kernel.org, "Vladimir Lypak" <vladimir.lypak@gmail.com>, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, "Stephen Boyd" <swboyd@chromium.org>, "Mark Brown" <broonie@kernel.org>, "Rajeev Nandan" <quic_rajeevny@quicinc.com>, "José Expósito" <jose.exposito89@gmail.com>, freedreno@lists.freedesktop.org Subject: Re: [PATCH v3 6/6] drm/msm/dsi: Improve dsi_phy_driver_probe() probe error handling Date: Wed, 3 Aug 2022 19:13:15 -0700 [thread overview] Message-ID: <45695061-8a8c-8d49-7728-93aa4323a60b@quicinc.com> (raw) In-Reply-To: <20220802153434.v3.6.I969118a35934a0e5007fe4f80e3e28e9c0b7602a@changeid> On 8/2/2022 3:37 PM, Douglas Anderson wrote: > The dsi_phy_driver_probe() function has a "goto fail" for no > reason. Change it to just always return directly when it sees an > error. Make this simpler by leveraging dev_err_probe() which is > designed to make code like this shorter / simpler. > > Signed-off-by: Douglas Anderson <dianders@chromium.org> Yes, apart from Dmitry's suggestion of updating the commit text about the return value change, this is: Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> > --- > > Changes in v3: > - ("Improve dsi_phy_driver_probe() probe error handling") new for v3. > > drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 74 ++++++++++----------------- > 1 file changed, 27 insertions(+), 47 deletions(-) > > diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c > index 0a00f9b73fc5..57cd525de7a1 100644 > --- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c > +++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c > @@ -621,12 +621,9 @@ static int dsi_phy_driver_probe(struct platform_device *pdev) > phy->pdev = pdev; > > phy->id = dsi_phy_get_id(phy); > - if (phy->id < 0) { > - ret = phy->id; > - DRM_DEV_ERROR(dev, "%s: couldn't identify PHY index, %d\n", > - __func__, ret); > - goto fail; > - } > + if (phy->id < 0) > + return dev_err_probe(dev, phy->id, > + "Couldn't identify PHY index\n"); > > phy->regulator_ldo_mode = of_property_read_bool(dev->of_node, > "qcom,dsi-phy-regulator-ldo-mode"); > @@ -634,88 +631,71 @@ static int dsi_phy_driver_probe(struct platform_device *pdev) > phy->cphy_mode = (phy_type == PHY_TYPE_CPHY); > > phy->base = msm_ioremap_size(pdev, "dsi_phy", &phy->base_size); > - if (IS_ERR(phy->base)) { > - DRM_DEV_ERROR(dev, "%s: failed to map phy base\n", __func__); > - ret = -ENOMEM; > - goto fail; > - } > + if (IS_ERR(phy->base)) > + return dev_err_probe(dev, PTR_ERR(phy->base), > + "Failed to map phy base\n"); > > phy->pll_base = msm_ioremap_size(pdev, "dsi_pll", &phy->pll_size); > - if (IS_ERR(phy->pll_base)) { > - DRM_DEV_ERROR(&pdev->dev, "%s: failed to map pll base\n", __func__); > - ret = -ENOMEM; > - goto fail; > - } > + if (IS_ERR(phy->pll_base)) > + return dev_err_probe(dev, PTR_ERR(phy->pll_base), > + "Failed to map pll base\n"); > > if (phy->cfg->has_phy_lane) { > phy->lane_base = msm_ioremap_size(pdev, "dsi_phy_lane", &phy->lane_size); > - if (IS_ERR(phy->lane_base)) { > - DRM_DEV_ERROR(&pdev->dev, "%s: failed to map phy lane base\n", __func__); > - ret = -ENOMEM; > - goto fail; > - } > + if (IS_ERR(phy->lane_base)) > + return dev_err_probe(dev, PTR_ERR(phy->lane_base), > + "Failed to map phy lane base\n"); > } > > if (phy->cfg->has_phy_regulator) { > phy->reg_base = msm_ioremap_size(pdev, "dsi_phy_regulator", &phy->reg_size); > - if (IS_ERR(phy->reg_base)) { > - DRM_DEV_ERROR(&pdev->dev, "%s: failed to map phy regulator base\n", __func__); > - ret = -ENOMEM; > - goto fail; > - } > + if (IS_ERR(phy->reg_base)) > + return dev_err_probe(dev, PTR_ERR(phy->reg_base), > + "Failed to map phy regulator base\n"); > } > > if (phy->cfg->ops.parse_dt_properties) { > ret = phy->cfg->ops.parse_dt_properties(phy); > if (ret) > - goto fail; > + return ret; > } > > ret = devm_regulator_bulk_get_const(dev, phy->cfg->num_regulators, > phy->cfg->regulator_data, > &phy->supplies); > if (ret) > - goto fail; > + return ret; > > phy->ahb_clk = msm_clk_get(pdev, "iface"); > - if (IS_ERR(phy->ahb_clk)) { > - DRM_DEV_ERROR(dev, "%s: Unable to get ahb clk\n", __func__); > - ret = PTR_ERR(phy->ahb_clk); > - goto fail; > - } > + if (IS_ERR(phy->ahb_clk)) > + return dev_err_probe(dev, PTR_ERR(phy->ahb_clk), > + "Unable to get ahb clk\n"); > > /* PLL init will call into clk_register which requires > * register access, so we need to enable power and ahb clock. > */ > ret = dsi_phy_enable_resource(phy); > if (ret) > - goto fail; > + return ret; > > if (phy->cfg->ops.pll_init) { > ret = phy->cfg->ops.pll_init(phy); > - if (ret) { > - DRM_DEV_INFO(dev, > - "%s: pll init failed: %d, need separate pll clk driver\n", > - __func__, ret); > - goto fail; > - } > + if (ret) > + return dev_err_probe(dev, ret, > + "PLL init failed; need separate clk driver\n"); > } > > ret = devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, > phy->provided_clocks); > - if (ret) { > - DRM_DEV_ERROR(dev, "%s: failed to register clk provider: %d\n", __func__, ret); > - goto fail; > - } > + if (ret) > + return dev_err_probe(dev, ret, > + "Failed to register clk provider\n"); > > dsi_phy_disable_resource(phy); > > platform_set_drvdata(pdev, phy); > > return 0; > - > -fail: > - return ret; > } > > static struct platform_driver dsi_phy_platform_driver = {
next prev parent reply other threads:[~2022-08-04 2:13 UTC|newest] Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-08-02 22:37 [PATCH v3 0/6] drm/msm/dsi regulator improvements Douglas Anderson 2022-08-02 22:37 ` Douglas Anderson 2022-08-02 22:37 ` [PATCH v3 1/6] drm/msm/dsi: Fix number of regulators for msm8996_dsi_cfg Douglas Anderson 2022-08-02 22:37 ` Douglas Anderson 2022-08-03 7:01 ` Dmitry Baryshkov 2022-08-03 7:01 ` Dmitry Baryshkov 2022-08-04 0:12 ` Abhinav Kumar 2022-08-04 0:12 ` Abhinav Kumar 2022-08-02 22:37 ` [PATCH v3 2/6] drm/msm/dsi: Fix number of regulators for SDM660 Douglas Anderson 2022-08-02 22:37 ` Douglas Anderson 2022-08-03 7:02 ` Dmitry Baryshkov 2022-08-03 7:02 ` Dmitry Baryshkov 2022-08-03 14:25 ` Marijn Suijten 2022-08-03 14:25 ` Marijn Suijten 2022-08-04 0:14 ` Abhinav Kumar 2022-08-04 0:14 ` Abhinav Kumar 2022-08-02 22:37 ` [PATCH v3 3/6] drm/msm/dsi: Don't set a load before disabling a regulator Douglas Anderson 2022-08-02 22:37 ` Douglas Anderson 2022-08-03 7:07 ` Dmitry Baryshkov 2022-08-03 7:07 ` Dmitry Baryshkov 2022-08-04 0:16 ` Abhinav Kumar 2022-08-04 0:16 ` Abhinav Kumar 2022-08-02 22:37 ` [PATCH v3 4/6] drm/msm/dsi: Use the new regulator bulk feature to specify the load Douglas Anderson 2022-08-02 22:37 ` Douglas Anderson 2022-08-03 7:12 ` Dmitry Baryshkov 2022-08-03 7:12 ` Dmitry Baryshkov 2022-08-03 13:50 ` Doug Anderson 2022-08-03 13:50 ` Doug Anderson 2022-08-04 0:18 ` Abhinav Kumar 2022-08-04 0:18 ` Abhinav Kumar 2022-08-02 22:37 ` [PATCH v3 5/6] drm/msm/dsi: Take advantage of devm_regulator_bulk_get_const() Douglas Anderson 2022-08-02 22:37 ` Douglas Anderson 2022-08-03 7:18 ` Dmitry Baryshkov 2022-08-03 7:18 ` Dmitry Baryshkov 2022-08-03 13:53 ` Doug Anderson 2022-08-03 13:53 ` Doug Anderson 2022-08-04 2:00 ` Abhinav Kumar 2022-08-04 2:00 ` Abhinav Kumar 2022-08-02 22:37 ` [PATCH v3 6/6] drm/msm/dsi: Improve dsi_phy_driver_probe() probe error handling Douglas Anderson 2022-08-02 22:37 ` Douglas Anderson 2022-08-03 7:32 ` Dmitry Baryshkov 2022-08-03 7:32 ` Dmitry Baryshkov 2022-08-03 13:54 ` Doug Anderson 2022-08-03 13:54 ` Doug Anderson 2022-08-04 2:13 ` Abhinav Kumar [this message] 2022-08-04 2:13 ` Abhinav Kumar 2022-08-03 7:37 ` [PATCH v3 0/6] drm/msm/dsi regulator improvements Dmitry Baryshkov 2022-08-03 7:37 ` Dmitry Baryshkov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=45695061-8a8c-8d49-7728-93aa4323a60b@quicinc.com \ --to=quic_abhinavk@quicinc.com \ --cc=airlied@linux.ie \ --cc=broonie@kernel.org \ --cc=daniel@ffwll.ch \ --cc=dianders@chromium.org \ --cc=dmitry.baryshkov@linaro.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=freedreno@lists.freedesktop.org \ --cc=jonathan@marek.ca \ --cc=jose.exposito89@gmail.com \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=quic_rajeevny@quicinc.com \ --cc=robdclark@gmail.com \ --cc=sean@poorly.run \ --cc=swboyd@chromium.org \ --cc=vladimir.lypak@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.