Re: [PATCH v2 1/1] serial: 8250_omap: Drop pm_runtime_irq_safe()

From: Andy Shevchenko
Date: Thu Oct 05 2023 - 10:25:25 EST


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