Re: [PATCH v6 1/9] drm/i915/vrr: Return from PSR2 compute config in case of CMRR enabled
"Borah, Chaitanya Kumar" <[email protected]> Fri, 24 Jul 2026 16:03:58 +0530
| Newsgroups | org.freedesktop.lists.intel-gfx,org.freedesktop.lists.intel-xe |
|---|---|
| Message-ID | <[email protected]> |
On 7/24/2026 3:52 PM, Golani, Mitulkumar Ajitkumar wrote: > > >> -----Original Message----- >> From: Borah, Chaitanya Kumar <[email protected]> >> Sent: 23 July 2026 21:45 >> To: Golani, Mitulkumar Ajitkumar <[email protected]>; >> [email protected] >> Cc: [email protected]; Shankar, Uma <[email protected]>; >> Nautiyal, Ankit K <[email protected]> >> Subject: Re: [PATCH v6 1/9] drm/i915/vrr: Return from PSR2 compute config in >> case of CMRR enabled >> >> >> >> On 7/22/2026 10:09 AM, Mitul Golani wrote: >>> CMRR is mutually exclusive to PSR2, do not enable PSR2 when CMRR is >>> enabled. >>> >>> --v2: >>> - Restrict selective update config check (Ankit) >>> - Commit message change >>> >>> --v3: >>> - Commit changes >>> >>> Signed-off-by: Mitul Golani <[email protected]> >>> --- >>> drivers/gpu/drm/i915/display/intel_psr.c | 6 ++++++ >>> 1 file changed, 6 insertions(+) >>> >>> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c >>> b/drivers/gpu/drm/i915/display/intel_psr.c >>> index 40e3d7095996..6a90ded5d1fa 100644 >>> --- a/drivers/gpu/drm/i915/display/intel_psr.c >>> +++ b/drivers/gpu/drm/i915/display/intel_psr.c >>> @@ -1587,6 +1587,12 @@ static bool intel_sel_update_config_valid(struct >> intel_crtc_state *crtc_state, >>> struct intel_dp *intel_dp = intel_attached_dp(connector); >>> struct intel_display *display = to_intel_display(intel_dp); >>> >>> + if (crtc_state->cmrr.enable) { >>> + drm_dbg_kms(display->drm, >>> + "Selective update cannot be enabled when CMRR is >> enabled\n"); >>> + goto unsupported; >>> + } >> >> This also disables panel replay, please make sure that this is desired. >> If so, add it in commit message. > > Thanks for the review, > > The check is placed in intel_sel_update_config_valid(), whose return value only feeds has_sel_update. has_panel_replay is computed independently beforehand, so Panel Replay is not disabled, only Selective Update (PSR2 and Panel Replay Selective Update) is. > > * has_psr (alone): PSR1 > * has_psr + has_sel_update: PSR2 > * has_psr + has_panel_replay: Panel Replay > * has_psr + has_panel_replay + has_sel_update: Panel Replay Selective Update > > > Per the mode table in intel_psr.c at start, disabling has_sel_update when CMRR is enabled turns off case 2 (PSR2) and case 4 (Panel Replay SU), while PSR1 and Panel Replay remain functional. > This is the desired behaviour since CMRR is incompatible with selective update. Are we sure? Bspec only ever calls out PSR2 as incompatible. It never calls out selective update. > > Although this is explicitly called out as part of code comment at start of this file. > > Regards, > Mitul > >> >>> + >>> if (HAS_PSR2_SEL_FETCH(display) && >>> !intel_psr2_sel_fetch_config_valid(intel_dp, crtc_state) && >>> !HAS_PSR_HW_TRACKING(display)) { >