Re: [PATCH] bus: ti-sysc: Fix warnings for unbind for serial

From: Romain Naour
Date: Fri May 13 2022 - 04:24:00 EST


Hello,

Le 12/05/2022 à 07:30, Tony Lindgren a écrit :
> We can get "failed to disable" clock_unprepare warnings on unbind at least
> for the serial console device if the unbind is done before the device has
> been idled.
>
> As some devices are using deferred idle, we must check the status for
> pending idle work to idle the device.

I didn't noticed the "failed to disable" warning so far (kernel 5.10.106 from
ti-linux-kernel repository) but I applied this patch as suggested [1] while
investigating another issue "tty serial 8250 omap driver crash".

Reviewed-by: Romain Naour <romain.naour@xxxxxxxx>

[1] https://marc.info/?l=linux-omap&m=164484408319083&w=2

Best regards,
Romain


>
> Cc: Romain Naour <romain.naour@xxxxxxxx>
> Fixes: 76f0f772e469 ("bus: ti-sysc: Improve handling for no-reset-on-init and no-idle-on-init")
> Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
> ---
> drivers/bus/ti-sysc.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
> --- a/drivers/bus/ti-sysc.c
> +++ b/drivers/bus/ti-sysc.c
> @@ -3395,7 +3395,9 @@ static int sysc_remove(struct platform_device *pdev)
> struct sysc *ddata = platform_get_drvdata(pdev);
> int error;
>
> - cancel_delayed_work_sync(&ddata->idle_work);
> + /* Device can still be enabled, see deferred idle quirk in probe */
> + if (cancel_delayed_work_sync(&ddata->idle_work))
> + ti_sysc_idle(&ddata->idle_work.work);
>
> error = pm_runtime_resume_and_get(ddata->dev);
> if (error < 0) {