diff mbox series

[2/6] phy: usb: s2 WoL wakeup_count not incremented for USB->Eth devices

Message ID 1665005418-15807-3-git-send-email-justinpopo6@gmail.com
State Accepted
Commit 3ef54ad3004ae57d6c9eed200696cc50d2e80d97
Headers show
Series Various bug fixes/improvements for phy-brcm-usb driver | expand

Commit Message

Justin Chen Oct. 5, 2022, 9:30 p.m. UTC
From: Al Cooper <alcooperx@gmail.com>

The PHY's "wakeup_count" is not incrementing when waking from
WoL. The wakeup count can be found in sysfs at:
/sys/bus/platform/devices/rdb/*.usb-phy/power/wakeup_count.
The problem is that the system wakup event handler was being passed
the wrong "device" by the PHY driver.

Fixes: f1c0db40a3ad ("usb: Add "wake on" functionality")
Signed-off-by: Al Cooper <alcooperx@gmail.com>
Signed-off-by: Justin Chen <justinpopo6@gmail.com>
---
 drivers/phy/broadcom/phy-brcm-usb.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Florian Fainelli Oct. 6, 2022, 10:05 p.m. UTC | #1
On 10/5/2022 2:30 PM, justinpopo6@gmail.com wrote:
> From: Al Cooper <alcooperx@gmail.com>
> 
> The PHY's "wakeup_count" is not incrementing when waking from
> WoL. The wakeup count can be found in sysfs at:
> /sys/bus/platform/devices/rdb/*.usb-phy/power/wakeup_count.
> The problem is that the system wakup event handler was being passed
> the wrong "device" by the PHY driver.
> 
> Fixes: f1c0db40a3ad ("usb: Add "wake on" functionality")
> Signed-off-by: Al Cooper <alcooperx@gmail.com>
> Signed-off-by: Justin Chen <justinpopo6@gmail.com>

Acked-by: Florian Fainelli <f.fainelli@gmail.com>
diff mbox series

Patch

diff --git a/drivers/phy/broadcom/phy-brcm-usb.c b/drivers/phy/broadcom/phy-brcm-usb.c
index 99d4dea..d97fa58 100644
--- a/drivers/phy/broadcom/phy-brcm-usb.c
+++ b/drivers/phy/broadcom/phy-brcm-usb.c
@@ -102,9 +102,9 @@  static int brcm_pm_notifier(struct notifier_block *notifier,
 
 static irqreturn_t brcm_usb_phy_wake_isr(int irq, void *dev_id)
 {
-	struct phy *gphy = dev_id;
+	struct device *dev = dev_id;
 
-	pm_wakeup_event(&gphy->dev, 0);
+	pm_wakeup_event(dev, 0);
 
 	return IRQ_HANDLED;
 }
@@ -452,7 +452,7 @@  static int brcm_usb_phy_dvr_init(struct platform_device *pdev,
 	if (priv->wake_irq >= 0) {
 		err = devm_request_irq(dev, priv->wake_irq,
 				       brcm_usb_phy_wake_isr, 0,
-				       dev_name(dev), gphy);
+				       dev_name(dev), dev);
 		if (err < 0)
 			return err;
 		device_set_wakeup_capable(dev, 1);