lkml.org 
[lkml]   [2022]   [Jun]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.18 076/339] bus: ti-sysc: Fix warnings for unbind for serial
    Date
    From: Tony Lindgren <tony@atomide.com>

    [ Upstream commit c337125b8834f9719dfda0e40b25eaa266f1b8cf ]

    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.

    Fixes: 76f0f772e469 ("bus: ti-sysc: Improve handling for no-reset-on-init and no-idle-on-init")
    Cc: Romain Naour <romain.naour@smile.fr>
    Reviewed-by: Romain Naour <romain.naour@smile.fr>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Link: https://lore.kernel.org/r/20220512053021.61650-1-tony@atomide.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    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
    index 7a1b1f9e4933..70d00cea9d22 100644
    --- 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) {
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-13 15:38    [W:2.440 / U:0.300 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site