[PATCH 2/2] drm/tegra: Do not implement runtime PM

Dmitry Osipenko digetx at gmail.com
Wed Dec 4 15:22:19 UTC 2019


03.12.2019 19:27, Thierry Reding пишет:
> From: Thierry Reding <treding at nvidia.com>
> 
> The Tegra DRM driver heavily relies on the implementations for runtime
> suspend/resume to be called at specific times. Unfortunately, there are
> some cases where that doesn't work. One example is if the user disables
> runtime PM for a given subdevice. Another example is that the PM core
> acquires a reference to runtime PM during system sleep, effectively
> preventing devices from going into low power modes. This is intentional
> to avoid nasty race conditions, but it also causes system sleep to not
> function properly on all Tegra systems.
> 
> Fix this by not implementing runtime PM at all. Instead, a minimal,
> reference-counted suspend/resume infrastructure is added to the host1x
> bus. This has the benefit that it can be used regardless of the system
> power state (or any transitions we might be in), or whether or not the
> user allows runtime PM.
> 
> Atomic modesetting guarantees that these functions will end up being
> called at the right point in time, so the pitfalls for the more generic
> runtime PM do not apply here.
> 
> Signed-off-by: Thierry Reding <treding at nvidia.com>
> ---

Couldn't we just use pm_runtime_force_suspend/resume whenever it is
necessary to enforce the suspend/resume?

I briefly looked through the previous discussion and don't see why the
forced suspend/resume isn't suitable. Please excuse me if I'm missing
the point.

Why planes/outputs need to care about resuming DC controller at all?
Doesn't DRM core take care of enabling DC for us by enabling CRTC before
planes/outputs are enabled?


More information about the dri-devel mailing list