On Wed, Oct 04, 2023 at 09:26:48AM +0300, Tony Lindgren wrote: > Let's drop the use of pm_runtime_irq_safe() for 8250_omap. The use of > pm_runtime_irq_safe() is not nice as it takes a permanent usage count on > the parent device. > > We can finally drop pm_runtime_irq_safe() safely as the kernel now knows > when the uart port tx is active. This changed with commit 84a9582fd203 > ("serial: core: Start managing serial controllers to enable runtime PM"). > > For serial port rx, we already use Linux generic wakeirqs for 8250_omap. > > To drop pm_runtime_irq_safe(), we need to add handling for shallow idle > state where the port hardware may already be awake and an IO interrupt > happens. We also need to replace the serial8250_rpm sync calls in the > interrupt handlers with async runtime PM calls. > > Note that omap8250_irq() calls omap_8250_dma_handle_irq(), so we don't > need separate runtime PM calls in omap_8250_dma_handle_irq(). > > While at it, let's also add the missing line break to the end of > omap8250_runtime_resume() to group the calls. Yoo-hoo! A few years only to get to the point :-) Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> -- With Best Regards, Andy Shevchenko