This is a note to let you know that I've just added the patch titled phy: qcom-qmp-combo: fix runtime suspend to the 5.15-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: phy-qcom-qmp-combo-fix-runtime-suspend.patch and it can be found in the queue-5.15 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From stable-owner@xxxxxxxxxxxxxxx Fri Feb 3 23:27:28 2023 From: Stephen Boyd <swboyd@xxxxxxxxxxxx> Date: Fri, 3 Feb 2023 14:26:16 -0800 Subject: phy: qcom-qmp-combo: fix runtime suspend To: stable@xxxxxxxxxxxxxxx Cc: Johan Hovold <johan+linaro@xxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, patches@xxxxxxxxxxxxxxx, Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>, Vinod Koul <vkoul@xxxxxxxxxx> Message-ID: <20230203222616.2935268-6-swboyd@xxxxxxxxxxxx> From: Johan Hovold <johan+linaro@xxxxxxxxxx> commit c7b98de745cffdceefc077ad5cf9cda032ef8959 upstream. Drop the confused runtime-suspend type check which effectively broke runtime PM if the DP child node happens to be parsed before the USB child node during probe (e.g. due to order of child nodes in the devicetree). Instead use the new driver data USB PHY pointer to access the USB configuration and resources. Fixes: 52e013d0bffa ("phy: qcom-qmp: Add support for DP in USB3+DP combo phy") Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> Signed-off-by: Johan Hovold <johan+linaro@xxxxxxxxxx> Link: https://lore.kernel.org/r/20221114081346.5116-6-johan+linaro@xxxxxxxxxx Signed-off-by: Vinod Koul <vkoul@xxxxxxxxxx> [swboyd@xxxxxxxxxxxx: Backport to pre-split driver. Note that the condition is kept so that ufs and pcie don't do anything as before] Signed-off-by: Stephen Boyd <swboyd@xxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/phy/qualcomm/phy-qcom-qmp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/drivers/phy/qualcomm/phy-qcom-qmp.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp.c @@ -4985,7 +4985,7 @@ static void qcom_qmp_phy_disable_autonom static int __maybe_unused qcom_qmp_phy_runtime_suspend(struct device *dev) { struct qcom_qmp *qmp = dev_get_drvdata(dev); - struct qmp_phy *qphy = qmp->phys[0]; + struct qmp_phy *qphy = qmp->usb_phy; const struct qmp_phy_cfg *cfg = qphy->cfg; dev_vdbg(dev, "Suspending QMP phy, mode:%d\n", qphy->mode); @@ -5010,7 +5010,7 @@ static int __maybe_unused qcom_qmp_phy_r static int __maybe_unused qcom_qmp_phy_runtime_resume(struct device *dev) { struct qcom_qmp *qmp = dev_get_drvdata(dev); - struct qmp_phy *qphy = qmp->phys[0]; + struct qmp_phy *qphy = qmp->usb_phy; const struct qmp_phy_cfg *cfg = qphy->cfg; int ret = 0; Patches currently in stable-queue which might be from stable-owner@xxxxxxxxxxxxxxx are queue-5.15/phy-qcom-qmp-combo-fix-broken-power-on.patch queue-5.15/phy-qcom-qmp-combo-fix-runtime-suspend.patch queue-5.15/phy-qcom-qmp-combo-disable-runtime-pm-on-unbind.patch queue-5.15/phy-qcom-qmp-usb-fix-memleak-on-probe-deferral.patch queue-5.15/phy-qcom-qmp-combo-fix-memleak-on-probe-deferral.patch