22.12.2021 22:30, Jon Hunter пишет: > > On 22/12/2021 19:01, Dmitry Osipenko wrote: > > ... > >> diff --git a/drivers/gpu/host1x/syncpt.c b/drivers/gpu/host1x/syncpt.c >> index e08e331e46ae..8194826c9ce3 100644 >> --- a/drivers/gpu/host1x/syncpt.c >> +++ b/drivers/gpu/host1x/syncpt.c >> @@ -137,6 +137,15 @@ void host1x_syncpt_restore(struct host1x *host) >> struct host1x_syncpt *sp_base = host->syncpt; >> unsigned int i; >> >> + for (i = 0; i < host->info->nb_pts; i++) { >> + /* >> + * Unassign syncpt from channels for purposes of Tegra186 >> + * syncpoint protection. This prevents any channel from >> + * accessing it until it is reassigned. >> + */ >> + host1x_hw_syncpt_assign_to_channel(host, sp_base + i, NULL); >> + } >> + >> for (i = 0; i < host1x_syncpt_nb_pts(host); i++) >> host1x_hw_syncpt_restore(host, sp_base + i); >> >> @@ -352,13 +361,6 @@ int host1x_syncpt_init(struct host1x *host) >> for (i = 0; i < host->info->nb_pts; i++) { >> syncpt[i].id = i; >> syncpt[i].host = host; >> - >> - /* >> - * Unassign syncpt from channels for purposes of Tegra186 >> - * syncpoint protection. This prevents any channel from >> - * accessing it until it is reassigned. >> - */ >> - host1x_hw_syncpt_assign_to_channel(host, &syncpt[i], NULL); >> } >> >> for (i = 0; i < host->info->nb_bases; i++) >> > > > Thanks! This fixed it! I'll prepare proper patch with yours t-b, thank you.