Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/i915/psr: Reject async flips when selective fetch is enabled

The selective fetch code doesn't handle asycn flips correctly.
There is a nonsense check for async flips in
intel_psr2_sel_fetch_config_valid() but that only gets called
for modesets/fastsets and thus does nothing for async flips.

Currently intel_async_flip_check_hw() is very unhappy as the
selective fetch code pulls in planes that are not even async
flips capable.

Reject async flips when selective fetch is enabled, until
someone fixes this properly (ie. disable selective fetch while
async flips are being issued).

Cc: stable@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patch.msgid.link/20251105171015.22234-1-ville.syrjala@linux.intel.com
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>

+8 -6
+8
drivers/gpu/drm/i915/display/intel_display.c
··· 6002 6002 return -EINVAL; 6003 6003 } 6004 6004 6005 + /* FIXME: selective fetch should be disabled for async flips */ 6006 + if (new_crtc_state->enable_psr2_sel_fetch) { 6007 + drm_dbg_kms(display->drm, 6008 + "[CRTC:%d:%s] async flip disallowed with PSR2 selective fetch\n", 6009 + crtc->base.base.id, crtc->base.name); 6010 + return -EINVAL; 6011 + } 6012 + 6005 6013 for_each_oldnew_intel_plane_in_state(state, plane, old_plane_state, 6006 6014 new_plane_state, i) { 6007 6015 if (plane->pipe != crtc->pipe)
-6
drivers/gpu/drm/i915/display/intel_psr.c
··· 1301 1301 return false; 1302 1302 } 1303 1303 1304 - if (crtc_state->uapi.async_flip) { 1305 - drm_dbg_kms(display->drm, 1306 - "PSR2 sel fetch not enabled, async flip enabled\n"); 1307 - return false; 1308 - } 1309 - 1310 1304 return crtc_state->enable_psr2_sel_fetch = true; 1311 1305 } 1312 1306