Hello Andy, On Tue, Jun 11, 2024 at 03:49:02PM +0300, Andy Shevchenko wrote: > On Thu, Jun 06, 2024 at 06:27:07AM -0700, Breno Leitao wrote: > > The problem arises because during __pm_runtime_resume(), the spinlock > > &dev->power.lock is acquired before rpm_resume() is called. Later, > > rpm_resume() invokes acpi_subsys_runtime_resume(), which relies on > > mutexes, triggering the error. > > > > To address this issue, devices on ACPI are now marked as not IRQ-safe, > > considering the dependency of acpi_subsys_runtime_resume() on mutexes. > > ... > > While it's a move in the right direction, the real fix is to get rid of > the IRQ safe PM hack completely. > Look at how OMAP code was modified for > the last few years and now it's pm_runtime_irq_safe()-free. The main > (ab)users are SH code followed by Tegra drivers. Thanks. I think these are two different goals here. This near term goal is just fix the driver so it can use the pm_runtime_irq_safe() in a saner way, avoiding calling mutexes inside spinlocks. Getting rid of the IRQ safe PM seems to me to be more a long term desirable goal, and unfortunately I cannot afford doing it now. Laxman, what is your view on this topic? --breno