Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [High] Skipping PSR exit on LunarLake for legacy cursor updates leaves the panel in self-refresh, freezing the cursor visually. --
commit 04eaf4bdd079c2712c8f636ed5b61d70a97e245e Author: Aaron Ma <[email protected]> drm/i915/psr: Skip PSR exit for legacy cursor updates on LunarLake onwards This commit attempts to optimize PSR behavior for legacy cursor updates on LunarLake and newer platforms by skipping the PSR exit and matching the ORIGIN_FLIP behavior. > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c > b/drivers/gpu/drm/i915/display/intel_psr.c > --- a/drivers/gpu/drm/i915/display/intel_psr.c > +++ b/drivers/gpu/drm/i915/display/intel_psr.c [ ... ] > @@ -3772,7 +3772,7 @@ void intel_psr_flush(struct intel_display *display, > > if (origin == ORIGIN_FLIP || > (origin == ORIGIN_CURSOR_UPDATE && > - !intel_dp->psr.psr2_sel_fetch_enabled)) { > + (DISPLAY_VER(display) >= 20 || > !intel_dp->psr.psr2_sel_fetch_enabled))) { > tgl_dc3co_flush_locked(intel_dp, frontbuffer_bits, > origin); > goto unlock; > } [Severity: High] Will this cause the cursor to freeze on the screen during legacy cursor updates while the panel is in Panel Self-Refresh (PSR) mode? LunarLake lacks hardware PSR tracking. When userspace uses drmModeMoveCursor, the fast-path cursor update writes directly to cursor MMIO registers and triggers a frontbuffer flush with ORIGIN_CURSOR_UPDATE. Since this fast-path does not use the atomic commit flow, it never calls intel_vrr_send_push() to send a TRANS_PUSH frame change event. By returning early here on DISPLAY_VER >= 20, the driver skips _psr_flush_handle() and intel_psr_exit(). Without a PSR exit or a TRANS_PUSH event, won't the panel remain asleep and ignore the newly written cursor MMIO registers? -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=1
