From: Greg Kroah-Hartman Date: Wed, 21 Feb 2024 10:38:36 +0000 (+0100) Subject: 5.15-stable patches X-Git-Tag: v4.19.307~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3e883f6cef42f88f04d7f174ec32dacaae115a7e;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: drm-msm-dsi-enable-runtime-pm.patch pm-runtime-have-devm_pm_runtime_enable-handle-pm_runtime_dont_use_autosuspend.patch --- diff --git a/queue-5.15/drm-msm-dsi-enable-runtime-pm.patch b/queue-5.15/drm-msm-dsi-enable-runtime-pm.patch new file mode 100644 index 00000000000..954a01cb099 --- /dev/null +++ b/queue-5.15/drm-msm-dsi-enable-runtime-pm.patch @@ -0,0 +1,41 @@ +From stable+bounces-17406-greg=kroah.com@vger.kernel.org Tue Jan 30 13:59:32 2024 +From: Amit Pundir +Date: Tue, 30 Jan 2024 18:28:47 +0530 +Subject: drm/msm/dsi: Enable runtime PM +To: Greg KH , Sasha Levin , Konrad Dybcio , Dmitry Baryshkov , Douglas Anderson +Cc: Stable +Message-ID: <20240130125847.3915432-3-amit.pundir@linaro.org> + +From: Konrad Dybcio + +[ Upstream commit 6ab502bc1cf3147ea1d8540d04b83a7a4cb6d1f1 ] + +Some devices power the DSI PHY/PLL through a power rail that we model +as a GENPD. Enable runtime PM to make it suspendable. + +Change-Id: I70b04b7fbf75ccf508ab2dcbe393dbb2be6e4eaa +Signed-off-by: Konrad Dybcio +Reviewed-by: Dmitry Baryshkov +Patchwork: https://patchwork.freedesktop.org/patch/543352/ +Link: https://lore.kernel.org/r/20230620-topic-dsiphy_rpm-v2-2-a11a751f34f0@linaro.org +Signed-off-by: Dmitry Baryshkov +Stable-dep-of: 3d07a411b4fa ("drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks") +Signed-off-by: Amit Pundir +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c ++++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c +@@ -752,6 +752,10 @@ static int dsi_phy_driver_probe(struct p + goto fail; + } + ++ ret = devm_pm_runtime_enable(&pdev->dev); ++ if (ret) ++ return ret; ++ + /* PLL init will call into clk_register which requires + * register access, so we need to enable power and ahb clock. + */ diff --git a/queue-5.15/pm-runtime-have-devm_pm_runtime_enable-handle-pm_runtime_dont_use_autosuspend.patch b/queue-5.15/pm-runtime-have-devm_pm_runtime_enable-handle-pm_runtime_dont_use_autosuspend.patch new file mode 100644 index 00000000000..0fa3b52255f --- /dev/null +++ b/queue-5.15/pm-runtime-have-devm_pm_runtime_enable-handle-pm_runtime_dont_use_autosuspend.patch @@ -0,0 +1,74 @@ +From stable+bounces-17405-greg=kroah.com@vger.kernel.org Tue Jan 30 13:59:31 2024 +From: Amit Pundir +Date: Tue, 30 Jan 2024 18:28:46 +0530 +Subject: PM: runtime: Have devm_pm_runtime_enable() handle pm_runtime_dont_use_autosuspend() +To: Greg KH , Sasha Levin , Konrad Dybcio , Dmitry Baryshkov , Douglas Anderson +Cc: Stable , Laurent Pinchart , Ulf Hansson , "Rafael J . Wysocki" +Message-ID: <20240130125847.3915432-2-amit.pundir@linaro.org> + +From: Douglas Anderson + +[ Upstream commit b4060db9251f919506e4d672737c6b8ab9a84701 ] + +The PM Runtime docs say: + + Drivers in ->remove() callback should undo the runtime PM changes done + in ->probe(). Usually this means calling pm_runtime_disable(), + pm_runtime_dont_use_autosuspend() etc. + +>From grepping code, it's clear that many people aren't aware of the +need to call pm_runtime_dont_use_autosuspend(). + +When brainstorming solutions, one idea that came up was to leverage +the new-ish devm_pm_runtime_enable() function. The idea here is that: + + * When the devm action is called we know that the driver is being + removed. It's the perfect time to undo the use_autosuspend. + + * The code of pm_runtime_dont_use_autosuspend() already handles the + case of being called when autosuspend wasn't enabled. + +Suggested-by: Laurent Pinchart +Signed-off-by: Douglas Anderson +Reviewed-by: Ulf Hansson +Signed-off-by: Rafael J. Wysocki +Stable-dep-of: 3d07a411b4fa ("drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks") +Signed-off-by: Amit Pundir +Signed-off-by: Greg Kroah-Hartman +--- + drivers/base/power/runtime.c | 5 +++++ + include/linux/pm_runtime.h | 4 ++++ + 2 files changed, 9 insertions(+) + +--- a/drivers/base/power/runtime.c ++++ b/drivers/base/power/runtime.c +@@ -1479,11 +1479,16 @@ EXPORT_SYMBOL_GPL(pm_runtime_enable); + + static void pm_runtime_disable_action(void *data) + { ++ pm_runtime_dont_use_autosuspend(data); + pm_runtime_disable(data); + } + + /** + * devm_pm_runtime_enable - devres-enabled version of pm_runtime_enable. ++ * ++ * NOTE: this will also handle calling pm_runtime_dont_use_autosuspend() for ++ * you at driver exit time if needed. ++ * + * @dev: Device to handle. + */ + int devm_pm_runtime_enable(struct device *dev) +--- a/include/linux/pm_runtime.h ++++ b/include/linux/pm_runtime.h +@@ -542,6 +542,10 @@ static inline void pm_runtime_disable(st + * Allow the runtime PM autosuspend mechanism to be used for @dev whenever + * requested (or "autosuspend" will be handled as direct runtime-suspend for + * it). ++ * ++ * NOTE: It's important to undo this with pm_runtime_dont_use_autosuspend() ++ * at driver exit time unless your driver initially enabled pm_runtime ++ * with devm_pm_runtime_enable() (which handles it for you). + */ + static inline void pm_runtime_use_autosuspend(struct device *dev) + { diff --git a/queue-5.15/series b/queue-5.15/series index d57a11ed601..79d1f734746 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -465,3 +465,5 @@ nilfs2-fix-potential-bug-in-end_buffer_async_write.patch nilfs2-replace-warn_ons-for-invalid-dat-metadata-block-requests.patch dm-limit-the-number-of-targets-and-parameter-size-area.patch arm64-subscribe-microsoft-azure-cobalt-100-to-arm-neoverse-n2-errata.patch +pm-runtime-have-devm_pm_runtime_enable-handle-pm_runtime_dont_use_autosuspend.patch +drm-msm-dsi-enable-runtime-pm.patch