From: Greg Kroah-Hartman Date: Wed, 15 Jan 2025 10:02:40 +0000 (+0100) Subject: 5.15-stable patches X-Git-Tag: v6.1.125~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=71038c7cd1db69639c3a56ab4858a650500b8baa;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: phy-usb-fix-clock-imbalance-for-suspend-resume.patch phy-usb-use-slow-clock-for-wake-enabled-suspend.patch --- diff --git a/queue-5.15/phy-usb-fix-clock-imbalance-for-suspend-resume.patch b/queue-5.15/phy-usb-fix-clock-imbalance-for-suspend-resume.patch new file mode 100644 index 0000000000..a9ebae6b93 --- /dev/null +++ b/queue-5.15/phy-usb-fix-clock-imbalance-for-suspend-resume.patch @@ -0,0 +1,76 @@ +From 8484199c09347bdd5d81ee8a2bc530850f900797 Mon Sep 17 00:00:00 2001 +From: Justin Chen +Date: Wed, 5 Oct 2022 14:30:18 -0700 +Subject: phy: usb: Fix clock imbalance for suspend/resume + +From: Justin Chen + +commit 8484199c09347bdd5d81ee8a2bc530850f900797 upstream. + +We should be disabling clocks when wake from USB is not needed. Since +this wasn't done, we had a clock imbalance since clocks were always +being enabled on resume. + +Fixes: ae532b2b7aa5 ("phy: usb: Add "wake on" functionality for newer Synopsis XHCI controllers") +Fixes: b0c0b66c0b43 ("phy: usb: Add support for wake and USB low power mode for 7211 S2/S5") +Signed-off-by: Justin Chen +Acked-by: Florian Fainelli +Link: https://lore.kernel.org/r/1665005418-15807-7-git-send-email-justinpopo6@gmail.com +Signed-off-by: Vinod Koul +Signed-off-by: Greg Kroah-Hartman +--- + drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c | 2 -- + drivers/phy/broadcom/phy-brcm-usb-init.h | 1 - + drivers/phy/broadcom/phy-brcm-usb.c | 8 +++++--- + 3 files changed, 5 insertions(+), 6 deletions(-) + +--- a/drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c ++++ b/drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c +@@ -430,7 +430,6 @@ void brcm_usb_dvr_init_7216(struct brcm_ + + params->family_name = "7216"; + params->ops = &bcm7216_ops; +- params->suspend_with_clocks = true; + } + + void brcm_usb_dvr_init_7211b0(struct brcm_usb_init_params *params) +@@ -440,5 +439,4 @@ void brcm_usb_dvr_init_7211b0(struct brc + + params->family_name = "7211"; + params->ops = &bcm7211b0_ops; +- params->suspend_with_clocks = true; + } +--- a/drivers/phy/broadcom/phy-brcm-usb-init.h ++++ b/drivers/phy/broadcom/phy-brcm-usb-init.h +@@ -61,7 +61,6 @@ struct brcm_usb_init_params { + const struct brcm_usb_init_ops *ops; + struct regmap *syscon_piarbctl; + bool wake_enabled; +- bool suspend_with_clocks; + }; + + void brcm_usb_dvr_init_4908(struct brcm_usb_init_params *params); +--- a/drivers/phy/broadcom/phy-brcm-usb.c ++++ b/drivers/phy/broadcom/phy-brcm-usb.c +@@ -598,7 +598,7 @@ static int brcm_usb_phy_suspend(struct d + * and newer XHCI->2.0-clks/3.0-clks. + */ + +- if (!priv->ini.suspend_with_clocks) { ++ if (!priv->ini.wake_enabled) { + if (priv->phys[BRCM_USB_PHY_3_0].inited) + clk_disable_unprepare(priv->usb_30_clk); + if (priv->phys[BRCM_USB_PHY_2_0].inited || +@@ -615,8 +615,10 @@ static int brcm_usb_phy_resume(struct de + { + struct brcm_usb_phy_data *priv = dev_get_drvdata(dev); + +- clk_prepare_enable(priv->usb_20_clk); +- clk_prepare_enable(priv->usb_30_clk); ++ if (!priv->ini.wake_enabled) { ++ clk_prepare_enable(priv->usb_20_clk); ++ clk_prepare_enable(priv->usb_30_clk); ++ } + brcm_usb_init_ipp(&priv->ini); + + /* diff --git a/queue-5.15/phy-usb-use-slow-clock-for-wake-enabled-suspend.patch b/queue-5.15/phy-usb-use-slow-clock-for-wake-enabled-suspend.patch new file mode 100644 index 0000000000..5c9511b25a --- /dev/null +++ b/queue-5.15/phy-usb-use-slow-clock-for-wake-enabled-suspend.patch @@ -0,0 +1,41 @@ +From 700c44b508020a3ea29d297c677f8d4ab14b7e6a Mon Sep 17 00:00:00 2001 +From: Justin Chen +Date: Wed, 5 Oct 2022 14:30:17 -0700 +Subject: phy: usb: Use slow clock for wake enabled suspend + +From: Justin Chen + +commit 700c44b508020a3ea29d297c677f8d4ab14b7e6a upstream. + +The logic was incorrect when switching to slow clock. We want the slow +clock if wake_enabled is set. + +Fixes: ae532b2b7aa5 ("phy: usb: Add "wake on" functionality for newer Synopsis XHCI controllers") +Signed-off-by: Justin Chen +Acked-by: Florian Fainelli +Link: https://lore.kernel.org/r/1665005418-15807-6-git-send-email-justinpopo6@gmail.com +Signed-off-by: Vinod Koul +Signed-off-by: Greg Kroah-Hartman +--- + drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +--- a/drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c ++++ b/drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c +@@ -337,13 +337,12 @@ static void usb_uninit_common_7216(struc + + pr_debug("%s\n", __func__); + +- if (!params->wake_enabled) { +- USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN); +- ++ if (params->wake_enabled) { + /* Switch to using slower clock during suspend to save power */ + USB_CTRL_SET(ctrl, USB_PM, XHC_S2_CLK_SWITCH_EN); +- } else { + usb_wake_enable_7216(params, true); ++ } else { ++ USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN); + } + } + diff --git a/queue-5.15/series b/queue-5.15/series index 09b0c881a2..9e24821636 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -74,3 +74,5 @@ ocfs2-correct-return-value-of-ocfs2_local_free_info.patch ocfs2-fix-slab-use-after-free-due-to-dangling-pointe.patch mptcp-drop-port-parameter-of-mptcp_pm_add_addr_signa.patch mptcp-fix-tcp-options-overflow.patch +phy-usb-use-slow-clock-for-wake-enabled-suspend.patch +phy-usb-fix-clock-imbalance-for-suspend-resume.patch