]> www.infradead.org Git - users/jedix/linux-maple.git/commit
i2c: omap: wakeup the controller during suspend() callback
authorThomas Richard <thomas.richard@bootlin.com>
Thu, 13 Jun 2024 13:13:28 +0000 (15:13 +0200)
committerAndi Shyti <andi.shyti@kernel.org>
Mon, 8 Jul 2024 22:46:07 +0000 (00:46 +0200)
commit7da7fd7e66ac9b0d4287aefba516795145f3c722
tree78b10527339df2fe00b67fb2b74193834a3880b2
parent2cb21a62bacc53587095b2050e92ce3e7a3574d7
i2c: omap: wakeup the controller during suspend() callback

A device may need the controller up during suspend_noirq() or
resume_noirq().
But if the controller is autosuspended, there is no way to wakeup it during
suspend_noirq() or resume_noirq() because runtime pm is disabled at this
time.

The suspend() callback wakes up the controller, so it is available until
its suspend_noirq() callback (pm_runtime_force_suspend()).
During the resume, it's restored by resume_noirq() callback
(pm_runtime_force_resume()). Then resume() callback enables autosuspend.

So the controller is up during a little time slot in suspend and resume
sequences even if it's not used.

Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
Acked-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
drivers/i2c/busses/i2c-omap.c