drm/tegra: Enable runtime PM during probe
authorMikko Perttunen <mperttunen@nvidia.com>
Tue, 13 Jun 2023 09:52:14 +0000 (12:52 +0300)
committerThierry Reding <treding@nvidia.com>
Thu, 27 Jul 2023 16:41:59 +0000 (18:41 +0200)
commit62fa0a985e2c99f716688e6bfbc37338a283a301
treea5524368d0b32e0b2df19f35563c2795962ac8f7
parent3c5a5df9c39bd0e408fdf60966b2c8dc2bb9a411
drm/tegra: Enable runtime PM during probe

Currently, engine drivers only enable runtime PM during the host1x
init callback. This can happen slightly later than the probe, which
can cause the power domain to intermittently not be turned off after
probe.

My hypothesis is that there is a race condition between the post-probe
power domain poweroff that is done from a queued work, and the
pm_runtime_enable call happening in the host1x init callback.
If the pm_runtime_enable call happens first, everything is OK and
the power off work can disable the power domain as PM runtime is
enabled and the device is runtime suspended. If power off work runs
first, PM runtime is still disabled for the device and the domain
must be kept powered.

Resolve the issue by moving the runtime PM enablement to the
probe function.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230613095215.2497004-1-cyndis@kapsi.fi
drivers/gpu/drm/tegra/gr2d.c
drivers/gpu/drm/tegra/gr3d.c
drivers/gpu/drm/tegra/nvdec.c
drivers/gpu/drm/tegra/vic.c