[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <3102213a-1b84-6559-9aa1-d35365be18b5@smile.fr>
Date: Fri, 13 May 2022 10:23:51 +0200
From: Romain Naour <romain.naour@...le.fr>
To: Tony Lindgren <tony@...mide.com>, linux-omap@...r.kernel.org
Cc: Dave Gerlach <d-gerlach@...com>, Faiz Abbas <faiz_abbas@...com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Grygorii Strashko <grygorii.strashko@...com>,
Keerthy <j-keerthy@...com>, Kevin Hilman <khilman@...libre.com>,
Nishanth Menon <nm@...com>, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH] bus: ti-sysc: Fix warnings for unbind for serial
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@...le.fr>
[1] https://marc.info/?l=linux-omap&m=164484408319083&w=2
Best regards,
Romain
>
> Cc: Romain Naour <romain.naour@...le.fr>
> Fixes: 76f0f772e469 ("bus: ti-sysc: Improve handling for no-reset-on-init and no-idle-on-init")
> Signed-off-by: Tony Lindgren <tony@...mide.com>
> ---
> 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) {
Powered by blists - more mailing lists