Thread (74 messages) 74 messages, 10 authors, 2016-04-19

Re: [PATCH 08/15] genirq: Add runtime power management support for IRQ chips

From: Grygorii Strashko <hidden>
Date: 2016-03-18 17:52:56
Also in: linux-devicetree, linux-omap, lkml

On 03/18/2016 04:56 PM, Jon Hunter wrote:
On 18/03/16 14:40, Jon Hunter wrote:
quoted
On 18/03/16 14:23, Grygorii Strashko wrote:
quoted
On 03/18/2016 02:27 PM, Jon Hunter wrote:
quoted
On 18/03/16 11:11, Grygorii Strashko wrote:
[snip]
quoted
quoted
oh :( That will require updating of all drivers (and if it will be taken into account that
wakeup can be configured from sysfs + devm_ - it will be painful).
Will it? I know that there are a few gpio chips that have some hacked
ways to get around the PM issue, but I wonder how many drivers this
really impacts. What sysfs entries are you referring too?
echo enabled > /sys/devices/platform/44000000.ocp/48020000.serial/tty/ttyS2/power/wakeup
Thinking about this some more, yes I guess it would impact all drivers
that use a gpio but don't use it for a wake-up. I could see that could
be a few drivers indeed.
yep. I've just tested it
- gpio was requested through sysfs and configured as IRQ
- do suspend

the same is if GPIO is requested as IRQ only and not configured as wakeup source 

[  319.669760] PM: late suspend of devices complete after 0.213 msecs
[  319.671195] irq 191 has no wakeup set and has not been freed!
[  319.673453] PM: noirq suspend of devices complete after 2.258 msecs

this is very minimal configuration - the regular one is at ~30-50 devices
most of them will use IRQ and only ~10% are used as wakeup sources.

quoted
quoted
quoted
but it would avoid every irqchip having to
handle this themselves and having a custom handler.
irqchip like TI OMAP GPIO will need custom handling any way even if it's not expected
to be Powered off during Suspend or deep CPUIdle states, simply because its state
in suspend is unknown - PM state managed automatically (and depends on many factors)
and wakeup can be handled by special HW in case if GPIO bank was really switched off.
quoted
quoted
I propose do not touch common/generic suspend code now. Any common code can be always
refactored later once there will be real drivers updated to use irqchip RPM
and which will support Suspend.
If this is strongly opposed, I would concede to making this a pr_debug()
as I think it could be useful.
Probably yes, because most of the drivers now and IRQ PM core are not ready
for this approach.
May be this calls for a new flag to not WARN if non-wakeup IRQs are not
freed when entering suspend.
Flag or pr_debug()?
Honestly, I don't know how to proceed - minimum is pr_debug.
My personal opinion is still the same - don't touch suspend core code now, within this series.


-- 
regards,
-grygorii
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help