Hi all,
This series (re)adds Runtime PM support which was reverted by:
commit 42c25013ca95ce79 ('Revert "gpio: rcar: Add Runtime PM handling for
interrupts"')
commit ce0e2c60e69e5f87 ('Revert "gpio: rcar: Fine-grained Runtime PM support"')
The reason it was reverted was that 'Runtime PM handling for interrupts'
could triggering a BUG() in linux/drivers/base/power/runtime.c 'BUG:
sleeping function called from invalid context', see [1]. Since then Jon
Hunter have solved this in a generic way in:
commit be45beb2df6909d4 ("genirq: Add runtime power management support for IRQ
chips")
Patch 1/2 make use of Jons work to make sure proper PM handling when an
GPIO is requested as an interrupt and patch 2/2 is just a resurrection
of Geerts original patch with small fixups to catch up with changes to
the driver.
I have tested the series on Koelsch and Salvator-X H3 and can in in
sysfs observe that only GPIO blocks which are used are powered on.
Requesting a GPIO from a powered down block will power it on and
releasing it will power it off.
To test that patch 1/2 works as expected I have done tests on Salvator-X
where the EtherAVB will not work with patch 2/2 applied, which moves
pm_runtime_get_sync() from probe time to gpio_rcar_request(). Whit that
move the GPIO block used by EtherAVB will not be powered on unless done
so when the interrupt is requested, which we add support for in 1/2.
I'm not sure on how to best resurrect a patch which have been reverted,
I dropped all Signed-off-by lines except Geerts as he is the author and
added my own Signed-off-by since I'm resending it. Hope this is OK, if
not please let me know.
1. https://www.spinics.net/lists/linux-renesas-soc/msg02710.html
Geert Uytterhoeven (1):
gpio: rcar: Fine-grained Runtime PM support
Niklas Söderlund (1):
gpio: rcar: set IRQ chip parent_device
drivers/gpio/gpio-rcar.c | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
--
2.10.2