* [PATCH 0/2] drm/msm/dp: fix runtime PM leaks on hotplug
@ 2024-03-13 16:43 Johan Hovold
2024-03-13 16:43 ` [PATCH 1/2] drm/msm/dp: fix runtime PM leak on disconnect Johan Hovold
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Johan Hovold @ 2024-03-13 16:43 UTC (permalink / raw)
To: Rob Clark, Abhinav Kumar, Dmitry Baryshkov
Cc: Sean Paul, Marijn Suijten, David Airlie, Daniel Vetter,
Kuogee Hsieh, Bjorn Andersson, linux-arm-msm, dri-devel,
freedreno, linux-kernel, Johan Hovold
As I've reported elsewhere, I've been hitting runtime PM usage count
leaks when investigated a DisplayPort hotplug regression on the Lenovo
ThinkPad X13s. [1]
This series addresses two obvious leaks on disconnect and on connect
failures, respectively.
Johan
[1] https://lore.kernel.org/lkml/Ze8Ke_M2xHyPYCu-@hovoldconsulting.com/
Johan Hovold (2):
drm/msm/dp: fix runtime PM leak on disconnect
drm/msm/dp: fix runtime PM leak on connect failure
drivers/gpu/drm/msm/dp/dp_display.c | 2 ++
1 file changed, 2 insertions(+)
--
2.43.2
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] drm/msm/dp: fix runtime PM leak on disconnect
2024-03-13 16:43 [PATCH 0/2] drm/msm/dp: fix runtime PM leaks on hotplug Johan Hovold
@ 2024-03-13 16:43 ` Johan Hovold
2024-03-13 19:48 ` Abhinav Kumar
2024-03-13 16:43 ` [PATCH 2/2] drm/msm/dp: fix runtime PM leak on connect failure Johan Hovold
2024-04-05 19:01 ` [PATCH 0/2] drm/msm/dp: fix runtime PM leaks on hotplug Abhinav Kumar
2 siblings, 1 reply; 6+ messages in thread
From: Johan Hovold @ 2024-03-13 16:43 UTC (permalink / raw)
To: Rob Clark, Abhinav Kumar, Dmitry Baryshkov
Cc: Sean Paul, Marijn Suijten, David Airlie, Daniel Vetter,
Kuogee Hsieh, Bjorn Andersson, linux-arm-msm, dri-devel,
freedreno, linux-kernel, Johan Hovold, stable
Make sure to put the runtime PM usage count (and suspend) also when
receiving a disconnect event while in the ST_MAINLINK_READY state.
This specifically avoids leaking a runtime PM usage count on every
disconnect with display servers that do not automatically enable
external displays when receiving a hotplug notification.
Fixes: 5814b8bf086a ("drm/msm/dp: incorporate pm_runtime framework into DP driver")
Cc: stable@vger.kernel.org # 6.8
Cc: Kuogee Hsieh <quic_khsieh@quicinc.com>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/gpu/drm/msm/dp/dp_display.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
index 4c72124ffb5d..8e8cf531da45 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.c
+++ b/drivers/gpu/drm/msm/dp/dp_display.c
@@ -655,6 +655,7 @@ static int dp_hpd_unplug_handle(struct dp_display_private *dp, u32 data)
dp_display_host_phy_exit(dp);
dp->hpd_state = ST_DISCONNECTED;
dp_display_notify_disconnect(&dp->dp_display.pdev->dev);
+ pm_runtime_put_sync(&pdev->dev);
mutex_unlock(&dp->event_mutex);
return 0;
}
--
2.43.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] drm/msm/dp: fix runtime PM leak on connect failure
2024-03-13 16:43 [PATCH 0/2] drm/msm/dp: fix runtime PM leaks on hotplug Johan Hovold
2024-03-13 16:43 ` [PATCH 1/2] drm/msm/dp: fix runtime PM leak on disconnect Johan Hovold
@ 2024-03-13 16:43 ` Johan Hovold
2024-03-13 18:16 ` Abhinav Kumar
2024-04-05 19:01 ` [PATCH 0/2] drm/msm/dp: fix runtime PM leaks on hotplug Abhinav Kumar
2 siblings, 1 reply; 6+ messages in thread
From: Johan Hovold @ 2024-03-13 16:43 UTC (permalink / raw)
To: Rob Clark, Abhinav Kumar, Dmitry Baryshkov
Cc: Sean Paul, Marijn Suijten, David Airlie, Daniel Vetter,
Kuogee Hsieh, Bjorn Andersson, linux-arm-msm, dri-devel,
freedreno, linux-kernel, Johan Hovold, stable
Make sure to balance the runtime PM usage counter (and suspend) before
returning on connect failures (e.g. DPCD read failures after a spurious
connect event or if link training fails).
Fixes: 5814b8bf086a ("drm/msm/dp: incorporate pm_runtime framework into DP driver")
Cc: stable@vger.kernel.org # 6.8
Cc: Kuogee Hsieh <quic_khsieh@quicinc.com>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/gpu/drm/msm/dp/dp_display.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
index 8e8cf531da45..78464c395c3d 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.c
+++ b/drivers/gpu/drm/msm/dp/dp_display.c
@@ -598,6 +598,7 @@ static int dp_hpd_plug_handle(struct dp_display_private *dp, u32 data)
ret = dp_display_usbpd_configure_cb(&pdev->dev);
if (ret) { /* link train failed */
dp->hpd_state = ST_DISCONNECTED;
+ pm_runtime_put_sync(&pdev->dev);
} else {
dp->hpd_state = ST_MAINLINK_READY;
}
--
2.43.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] drm/msm/dp: fix runtime PM leak on connect failure
2024-03-13 16:43 ` [PATCH 2/2] drm/msm/dp: fix runtime PM leak on connect failure Johan Hovold
@ 2024-03-13 18:16 ` Abhinav Kumar
0 siblings, 0 replies; 6+ messages in thread
From: Abhinav Kumar @ 2024-03-13 18:16 UTC (permalink / raw)
To: Johan Hovold, Rob Clark, Dmitry Baryshkov
Cc: Sean Paul, Marijn Suijten, David Airlie, Daniel Vetter,
Kuogee Hsieh, Bjorn Andersson, linux-arm-msm, dri-devel,
freedreno, linux-kernel, stable
On 3/13/2024 9:43 AM, Johan Hovold wrote:
> Make sure to balance the runtime PM usage counter (and suspend) before
> returning on connect failures (e.g. DPCD read failures after a spurious
> connect event or if link training fails).
>
> Fixes: 5814b8bf086a ("drm/msm/dp: incorporate pm_runtime framework into DP driver")
> Cc: stable@vger.kernel.org # 6.8
> Cc: Kuogee Hsieh <quic_khsieh@quicinc.com>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] drm/msm/dp: fix runtime PM leak on disconnect
2024-03-13 16:43 ` [PATCH 1/2] drm/msm/dp: fix runtime PM leak on disconnect Johan Hovold
@ 2024-03-13 19:48 ` Abhinav Kumar
0 siblings, 0 replies; 6+ messages in thread
From: Abhinav Kumar @ 2024-03-13 19:48 UTC (permalink / raw)
To: Johan Hovold, Rob Clark, Dmitry Baryshkov
Cc: Sean Paul, Marijn Suijten, David Airlie, Daniel Vetter,
Kuogee Hsieh, Bjorn Andersson, linux-arm-msm, dri-devel,
freedreno, linux-kernel, stable
On 3/13/2024 9:43 AM, Johan Hovold wrote:
> Make sure to put the runtime PM usage count (and suspend) also when
> receiving a disconnect event while in the ST_MAINLINK_READY state.
>
> This specifically avoids leaking a runtime PM usage count on every
> disconnect with display servers that do not automatically enable
> external displays when receiving a hotplug notification.
>
Thanks for the fixes. Both look right to me.
I will pick up both of them for -fixes
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
> Fixes: 5814b8bf086a ("drm/msm/dp: incorporate pm_runtime framework into DP driver")
> Cc: stable@vger.kernel.org # 6.8
> Cc: Kuogee Hsieh <quic_khsieh@quicinc.com>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---
> drivers/gpu/drm/msm/dp/dp_display.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
> index 4c72124ffb5d..8e8cf531da45 100644
> --- a/drivers/gpu/drm/msm/dp/dp_display.c
> +++ b/drivers/gpu/drm/msm/dp/dp_display.c
> @@ -655,6 +655,7 @@ static int dp_hpd_unplug_handle(struct dp_display_private *dp, u32 data)
> dp_display_host_phy_exit(dp);
> dp->hpd_state = ST_DISCONNECTED;
> dp_display_notify_disconnect(&dp->dp_display.pdev->dev);
> + pm_runtime_put_sync(&pdev->dev);
> mutex_unlock(&dp->event_mutex);
> return 0;
> }
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] drm/msm/dp: fix runtime PM leaks on hotplug
2024-03-13 16:43 [PATCH 0/2] drm/msm/dp: fix runtime PM leaks on hotplug Johan Hovold
2024-03-13 16:43 ` [PATCH 1/2] drm/msm/dp: fix runtime PM leak on disconnect Johan Hovold
2024-03-13 16:43 ` [PATCH 2/2] drm/msm/dp: fix runtime PM leak on connect failure Johan Hovold
@ 2024-04-05 19:01 ` Abhinav Kumar
2 siblings, 0 replies; 6+ messages in thread
From: Abhinav Kumar @ 2024-04-05 19:01 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Johan Hovold
Cc: Abhinav Kumar, Sean Paul, Marijn Suijten, David Airlie,
Daniel Vetter, Kuogee Hsieh, Bjorn Andersson, linux-arm-msm,
dri-devel, freedreno, linux-kernel
On Wed, 13 Mar 2024 17:43:04 +0100, Johan Hovold wrote:
> As I've reported elsewhere, I've been hitting runtime PM usage count
> leaks when investigated a DisplayPort hotplug regression on the Lenovo
> ThinkPad X13s. [1]
>
> This series addresses two obvious leaks on disconnect and on connect
> failures, respectively.
>
> [...]
Applied, thanks!
[1/2] drm/msm/dp: fix runtime PM leak on disconnect
https://gitlab.freedesktop.org/drm/msm/-/commit/0640f47b7426
[2/2] drm/msm/dp: fix runtime PM leak on connect failure
https://gitlab.freedesktop.org/drm/msm/-/commit/e86750b01a15
Best regards,
--
Abhinav Kumar <quic_abhinavk@quicinc.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-04-05 19:02 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-13 16:43 [PATCH 0/2] drm/msm/dp: fix runtime PM leaks on hotplug Johan Hovold
2024-03-13 16:43 ` [PATCH 1/2] drm/msm/dp: fix runtime PM leak on disconnect Johan Hovold
2024-03-13 19:48 ` Abhinav Kumar
2024-03-13 16:43 ` [PATCH 2/2] drm/msm/dp: fix runtime PM leak on connect failure Johan Hovold
2024-03-13 18:16 ` Abhinav Kumar
2024-04-05 19:01 ` [PATCH 0/2] drm/msm/dp: fix runtime PM leaks on hotplug Abhinav Kumar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox