mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
To: "Heiko Stübner" <heiko@sntech.de>, dri-devel@lists.freedesktop.org
Cc: Rob Herring <robh+dt@kernel.org>,
	Archit Taneja <architt@codeaurora.org>,
	Daniel Vetter <daniel.vetter@intel.com>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Sandy Huang <hjc@rock-chips.com>,
	linux-rockchip@lists.infradead.org,
	Jeffy Chen <jeffy.chen@rock-chips.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v8 4/8] drm/rockchip: dw-mipi-dsi: Fix error handling path
Date: Fri, 2 Mar 2018 13:09:02 +0100	[thread overview]
Message-ID: <68537204-0c41-5210-935a-0a7743ea847c@collabora.com> (raw)
In-Reply-To: <13219770.NOTAg9tncx@diego>

Hi Heiko,

On 01/03/18 16:50, Heiko Stübner wrote:
> Hi Jeffy, Thierry, Enric,
> 
> Am Mittwoch, 10. Januar 2018, 17:23:44 CET schrieb Thierry Escande:
>> From: Jeffy Chen <jeffy.chen@rock-chips.com>
>>
>> Add missing pm_runtime_disable() in bind()'s error handling path.
>>
>> Also cleanup encoder & connector in unbind().
> 
> Can you please split all these surprise "Also" sections into separate
> patches?
> 

I'll take a look.

> It looks like this is true for all following patch to some degree and
> the inno-hdmi patch even has a unbind reordering-change without
> mentioning it in the commit message.
> 

Actually, I think this patch is not correct against current mainline, see below.

> 
> Thanks
> Heiko
> 
>> Fixes: 80a9a059d4e4 ("drm/rockchip/dsi: add dw-mipi power domain support")
>> Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
>> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
>> ---
>>  drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 21 +++++++++++++--------
>>  1 file changed, 13 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
>> b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c index b1fe0639227e..78e6b7919bf7
>> 100644
>> --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
>> +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
>> @@ -1282,7 +1282,7 @@ static int dw_mipi_dsi_bind(struct device *dev, struct
>> device *master, ret = dw_mipi_dsi_register(drm, dsi);
>>  	if (ret) {
>>  		DRM_DEV_ERROR(dev, "Failed to register mipi_dsi: %d\n", ret);
>> -		goto err_pllref;
>> +		goto err_disable_pllref;
>>  	}
>>
>>  	dsi->dsi_host.ops = &dw_mipi_dsi_host_ops;
>> @@ -1290,24 +1290,25 @@ static int dw_mipi_dsi_bind(struct device *dev,
>> struct device *master, ret = mipi_dsi_host_register(&dsi->dsi_host);
>>  	if (ret) {
>>  		DRM_DEV_ERROR(dev, "Failed to register MIPI host: %d\n", ret);
>> -		goto err_cleanup;
>> +		goto err_disable_pm_runtime;
>>  	}
>>
>>  	if (!dsi->panel) {
>>  		ret = -EPROBE_DEFER;
>> -		goto err_mipi_dsi_host;
>> +		goto err_unreg_mipi_dsi_host;
>>  	}
>>
>>  	dev_set_drvdata(dev, dsi);
>>  	pm_runtime_enable(dev);
>>  	return 0;
>>
>> -err_mipi_dsi_host:
>> +err_unreg_mipi_dsi_host:
>>  	mipi_dsi_host_unregister(&dsi->dsi_host);
>> -err_cleanup:
>> -	drm_encoder_cleanup(&dsi->encoder);
>> -	drm_connector_cleanup(&dsi->connector);
>> -err_pllref:
>> +err_disable_pm_runtime:
>> +	pm_runtime_disable(dev);

I think that this is not required, 'pm_runtime_enable' is called just before the
'return 0' (see above). Commit 517f56839f58 'drm/rockchip: dw-mipi-dsi: fix
possible un-balanced runtime PM enable' moved the call to that place. So, now
the call to pm_runtime_disable is not needed.

>> +	dsi->connector.funcs->destroy(&dsi->connector);
>> +	dsi->encoder.funcs->destroy(&dsi->encoder);

Here, there is a reordering and also a function replacement. The reorder makes
sense to me, first cleanup the connector and then the encoder, but I'm not sure
about the function change and if is needed, anyway, in the case is needed,
shouldn't be

+	drm_connector_cleanup(&dsi->connector);
+	drm_encoder_cleanup(&dsi->encoder);

instead?

>> +err_disable_pllref:
>>  	clk_disable_unprepare(dsi->pllref_clk);
>>  	return ret;
>>  }
>> @@ -1319,6 +1320,10 @@ static void dw_mipi_dsi_unbind(struct device *dev,
>> struct device *master,
>>
>>  	mipi_dsi_host_unregister(&dsi->dsi_host);
>>  	pm_runtime_disable(dev);
>> +
>> +	dsi->connector.funcs->destroy(&dsi->connector);
>> +	dsi->encoder.funcs->destroy(&dsi->encoder);
>> +

Same here.

>>  	clk_disable_unprepare(dsi->pllref_clk);
>>  }
> 
> 

Best regards,
  Enric

  reply	other threads:[~2018-03-02 12:09 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-10 16:23 [PATCH v8 0/8] rockchip: kevin: Enable edp display Thierry Escande
2018-01-10 16:23 ` [PATCH v8 1/8] drm/bridge: analogix: Do not use device's drvdata Thierry Escande
2018-03-01 15:39   ` Heiko Stübner
2018-01-10 16:23 ` [PATCH v8 2/8] drm/bridge: analogix_dp: Fix connector and encoder cleanup Thierry Escande
2018-03-01 15:39   ` Heiko Stübner
2018-01-10 16:23 ` [PATCH v8 3/8] drm/rockchip: analogix_dp: Add a sanity check for rockchip_drm_psr_register() Thierry Escande
2018-03-01 15:25   ` [PATCH] drm/rockchip: analogix_dp: reorder psr_unregister call in unbind Heiko Stuebner
2018-03-01 15:41   ` [PATCH v8 3/8] drm/rockchip: analogix_dp: Add a sanity check for rockchip_drm_psr_register() Heiko Stübner
2018-01-10 16:23 ` [PATCH v8 4/8] drm/rockchip: dw-mipi-dsi: Fix error handling path Thierry Escande
2018-03-01 15:50   ` Heiko Stübner
2018-03-02 12:09     ` Enric Balletbo i Serra [this message]
2018-03-02 12:17       ` Heiko Stuebner
2018-03-02 12:22         ` Enric Balletbo i Serra
2018-01-10 16:23 ` [PATCH v8 5/8] drm/rockchip: inno_hdmi: " Thierry Escande
2018-01-10 16:23 ` [PATCH v8 6/8] drm/bridge/synopsys: dw-hdmi: Add missing bridge detach Thierry Escande
2018-01-10 16:23 ` [PATCH v8 7/8] drm/bridge/synopsys: dw-hdmi: Do not use device's drvdata Thierry Escande
2018-03-01 15:45   ` Heiko Stübner
2018-01-10 16:23 ` [PATCH v8 8/8] drm/rockchip: dw_hdmi: Fix error handling path Thierry Escande

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=68537204-0c41-5210-935a-0a7743ea847c@collabora.com \
    --to=enric.balletbo@collabora.com \
    --cc=architt@codeaurora.org \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=heiko@sntech.de \
    --cc=hjc@rock-chips.com \
    --cc=jeffy.chen@rock-chips.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=narmstrong@baylibre.com \
    --cc=robh+dt@kernel.org \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®