Messages in this thread |  | | Subject | Re: [PATCH v16 08/40] gpu: host1x: Add initial runtime PM and OPP support | From | Jon Hunter <> | Date | Wed, 22 Dec 2021 09:47:35 +0000 |
| |
On 21/12/2021 20:58, Dmitry Osipenko wrote: > Hi, > > Thank you for testing it all. > > 21.12.2021 21:55, Jon Hunter пишет: >> Hi Dmitry, Thierry, >> >> On 30/11/2021 23:23, Dmitry Osipenko wrote: >>> Add runtime PM and OPP support to the Host1x driver. For the starter we >>> will keep host1x always-on because dynamic power management require a >>> major >>> refactoring of the driver code since lot's of code paths are missing the >>> RPM handling and we're going to remove some of these paths in the future. >> >> >> Unfortunately, this change is breaking boot on Tegra186. Bisect points >> to this and reverting on top of -next gets the board booting again. >> Sadly, there is no panic or error reported, it is just a hard hang. I >> will not have time to look at this this week and so we may need to >> revert for the moment. > > Only T186 broken? What about T194?
Yes interestingly only Tegra186 and no other board.
> Which board model fails to boot? Is it running in hypervisor mode?
This is Jetson TX2. No hypervisor.
> Do you use any additional patches?
No just plain -next. The tests run every day on top of tree.
> Could you please test the below diff? I suspect that > host1x_syncpt_save/restore may be entirely broken for T186 since we > never used these funcs before. > > --- >8 --- > > diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c > index f5b4dcded088..fd5dfb875422 100644 > --- a/drivers/gpu/host1x/dev.c > +++ b/drivers/gpu/host1x/dev.c > @@ -580,7 +580,6 @@ static int __maybe_unused > host1x_runtime_suspend(struct device *dev) > int err; > > host1x_intr_stop(host); > - host1x_syncpt_save(host); > > err = reset_control_bulk_assert(host->nresets, host->resets); > if (err) { > @@ -596,9 +595,8 @@ static int __maybe_unused > host1x_runtime_suspend(struct device *dev) > return 0; > > resume_host1x: > - host1x_setup_sid_table(host); > - host1x_syncpt_restore(host); > host1x_intr_start(host); > + host1x_setup_sid_table(host); > > return err; > } > @@ -626,9 +624,8 @@ static int __maybe_unused > host1x_runtime_resume(struct device *dev) > goto disable_clk; > } > > - host1x_setup_sid_table(host); > - host1x_syncpt_restore(host); > host1x_intr_start(host); > + host1x_setup_sid_table(host);
Thanks! Will try this later, once the next bisect is finished :-)
Jon
-- nvpublic
|  |