* Tony Lindgren <tony@xxxxxxxxxxx> [220214 07:43]: > Looks like the following script to just toggle the module state locks > up things for me on beagle-x15 very fast. So yeah now I'm able to > reproduce the issue. Seems like the module is not ready right after > enabling it live we've seen for dra7 iva for example. Looks like the following patch is also needed for uarts to avoid unbind clock_unprepare warnings. But even with this patch dra7 uarts won't behave. On unbind, there will be a clock "l4per-clkctrl:0128:0: failed to disable" warning. Looks like after that any following clock enable does not seem to work and that will cause the register access errors. Looks like this is a dra7 specific issue as a similar test script on omap4 duovero keeps on going instead. Regards, Tony 8< -------------- 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 @@ -3381,7 +3381,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) {