{
struct intel_display *display = to_intel_display(intel_dp);
- if (DISPLAY_VER(display) < 20 && intel_dp->psr.psr2_sel_fetch_enabled) {
+ if (DISPLAY_VER(display) >= 20) {
+ /*
+ * We can use PSR exit on LunarLake onwards. Also
+ * using trans push mechanism to trigger Frame Change
+ * event requires using PSR exit.
+ */
+ intel_psr_exit(intel_dp);
+ } else if (intel_dp->psr.psr2_sel_fetch_enabled) {
/* Selective fetch prior LNL */
if (intel_dp->psr.psr2_sel_fetch_cff_enabled) {
/* can we turn CFF off? */
intel_psr_configure_full_frame_update(intel_dp);
intel_psr_force_update(intel_dp);
- } else if (!intel_dp->psr.psr2_sel_fetch_enabled) {
+ } else {
/*
- * PSR1 on all platforms
- * PSR2 HW tracking
- * Panel Replay Full frame update
+ * On older platforms using PSR exit was seen causing problems
*/
intel_psr_force_update(intel_dp);
- } else {
- /* Selective update LNL onwards */
- intel_psr_exit(intel_dp);
}
if (!intel_dp->psr.active && !intel_dp->psr.busy_frontbuffer_bits)