[Intel-gfx] [PATCH] drm/i915/psr: Force PSR probe only after full initialization

Ross Zwisler zwisler at google.com
Fri Feb 14 18:14:40 UTC 2020


On Thu, Feb 13, 2020 at 05:50:38PM -0800, José Roberto de Souza wrote:
> Commit 60c6a14b489b ("drm/i915/display: Force the state compute phase
> once to enable PSR") was forcing the state compute too earlier
> causing errors because not everything was initialized, so here
> moving to i915_driver_register() when everything is ready and driver
> is registering into the rest of the system.
> 
> Also fixing the place where it disarm the force probe as during the
> atomic check phase errors could happen like the ones due locking and
> it would cause PSR to never be enabled if that happens.
> Leaving the disarm to the atomic commit phase, intel_psr_enable() or
> intel_psr_update() will be called even if the current state do not
> allow PSR to be enabled.
> 
> Fixes: 60c6a14b489b ("drm/i915/display: Force the state compute phase once to enable PSR")
> Closes: https://gitlab.freedesktop.org/drm/intel/issues/1151
> Reported-by: Ross Zwisler <zwisler at google.com>

Tested-by: Ross Zwisler <zwisler at google.com>

> Cc: Gwan-gyeong Mun <gwan-gyeong.mun at intel.com>
> Cc: Jani Nikula <jani.nikula at intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza at intel.com>

Note that when applying to the current upstream/master from Linus you have one
small conflict:

$ cat drivers/gpu/drm/i915/i915_drv.h.rej
--- drivers/gpu/drm/i915/i915_drv.h
+++ drivers/gpu/drm/i915/i915_drv.h
@@ -505,7 +505,7 @@ struct i915_psr {
 	bool dc3co_enabled;
 	u32 dc3co_exit_delay;
 	struct delayed_work dc3co_work;
-	bool initially_probed;
+	bool force_mode_changed;
 };

In Linus's tree the end of that structure looks like:

	bool dc3co_enabled;
	u32 dc3co_exit_delay;
	struct delayed_work idle_work;
	bool initially_probed;
};

Where the 'struct delayed_work' element is named differently.


More information about the Intel-gfx mailing list