Re: [RFC PATCH v11 4/5] PCI / PM: Add support for the PCIe WAKE# signal for OF
From: Tony Lindgren <hidden>
Date: 2018-01-03 20:08:43
Also in:
linux-pci, linux-pm, lkml
Hi, * Rafael J. Wysocki [off-list ref] [171228 17:33]:
So we are fine except for the race and we need the wakeirq field in wakeup sources to automatically arm the wakeup IRQs during suspend. If I'm not mistaken, we only need something like the patch below (untested).
Yeah for your patch below works just fine for my test cases so: Tested-by: Tony Lindgren <redacted>
quoted hunk ↗ jump to hunk
--- drivers/base/power/wakeirq.c | 9 ++++----- drivers/base/power/wakeup.c | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) Index: linux-pm/drivers/base/power/wakeirq.c ===================================================================--- linux-pm.orig/drivers/base/power/wakeirq.c +++ linux-pm/drivers/base/power/wakeirq.c@@ -33,7 +33,6 @@ static int dev_pm_attach_wake_irq(struct struct wake_irq *wirq) { unsigned long flags; - int err; if (!dev || !wirq) return -EINVAL;@@ -45,12 +44,12 @@ static int dev_pm_attach_wake_irq(struct return -EEXIST; } - err = device_wakeup_attach_irq(dev, wirq); - if (!err) - dev->power.wakeirq = wirq; + dev->power.wakeirq = wirq; + if (dev->power.wakeup) + device_wakeup_attach_irq(dev, wirq); spin_unlock_irqrestore(&dev->power.lock, flags); - return err; + return 0; } /**Index: linux-pm/drivers/base/power/wakeup.c ===================================================================--- linux-pm.orig/drivers/base/power/wakeup.c +++ linux-pm/drivers/base/power/wakeup.c@@ -303,7 +303,7 @@ int device_wakeup_attach_irq(struct devi } if (ws->wakeirq) - return -EEXIST; + dev_err(dev, "Leftover wakeup IRQ found, overriding\n"); ws->wakeirq = wakeirq; return 0;
-- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html