From: "Hogander, Jouni" <jouni.hogander@intel.com>
To: "intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
"Kahola, Mika" <mika.kahola@intel.com>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 4/4] drm/i915/psr: Allow changing Panel Replay mode without full modeset
Date: Tue, 21 Jan 2025 10:08:07 +0000 [thread overview]
Message-ID: <6db924674c5f0858a3c06ee2fbd49b16e68e52fd.camel@intel.com> (raw)
In-Reply-To: <MW4PR11MB7054D047097AFDEDCFCF9CFCEF1F2@MW4PR11MB7054.namprd11.prod.outlook.com>
On Mon, 2025-01-13 at 11:22 +0000, Kahola, Mika wrote:
> > -----Original Message-----
> > From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf
> > Of Jouni
> > Högander
> > Sent: Thursday, 9 January 2025 12.36
> > To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> > Cc: Hogander, Jouni <jouni.hogander@intel.com>
> > Subject: [PATCH 4/4] drm/i915/psr: Allow changing Panel Replay mode
> > without
> > full modeset
> >
> > Currently we are forcing full modeset if Panel Replay mode is
> > changed. This is not
> > necessary as long as we are not changing sink PANEL REPLAY ENABLE
> > bit in
> > PANEL REPLAY ENABLE AND CONFIGURATION 1 register. This can be
> > achieved by
> > entering Panel Replay inactive mode (Live Frame mode) when Panel
> > Replay is
> > disabled and keep PANEL REPLAY ENABLE bit in PANEL REPLAY ENABLE
> > AND
> > CONFIGURATION 1 enabled always if panel is just supporting Panel
> > Replay.
> >
>
> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
Thank you Mika for checking my patches. These are now pushed to drm-
intel-next.
BR,
Jouni Högander
>
> > Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_display.c | 14 -----------
> > drivers/gpu/drm/i915/display/intel_psr.c | 25 +++++++++++++---
> > ----
> > 2 files changed, 17 insertions(+), 22 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > b/drivers/gpu/drm/i915/display/intel_display.c
> > index 21319f753a34..35499eb296b3 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -5638,20 +5638,6 @@ intel_pipe_config_compare(const struct
> > intel_crtc_state *current_config,
> > PIPE_CONF_CHECK_CSC(output_csc);
> > }
> >
> > - /*
> > - * Panel replay has to be enabled before link training.
> > PSR doesn't have
> > - * this requirement -> check these only if using panel
> > replay
> > - */
> > - if (current_config->active_planes &&
> > - (current_config->has_panel_replay ||
> > - pipe_config->has_panel_replay)) {
> > - PIPE_CONF_CHECK_BOOL(has_psr);
> > - PIPE_CONF_CHECK_BOOL(has_sel_update);
> > - PIPE_CONF_CHECK_BOOL(enable_psr2_sel_fetch);
> > - PIPE_CONF_CHECK_BOOL(enable_psr2_su_region_et);
> > - PIPE_CONF_CHECK_BOOL(has_panel_replay);
> > - }
> > -
> > PIPE_CONF_CHECK_BOOL(double_wide);
> >
> > if (dev_priv->display.dpll.mgr)
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > b/drivers/gpu/drm/i915/display/intel_psr.c
> > index f969abc56256..3494620d1c44 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -1998,18 +1998,25 @@ static void intel_psr_enable_locked(struct
> > intel_dp
> > *intel_dp,
> > if (!psr_interrupt_error_check(intel_dp))
> > return;
> >
> > - if (intel_dp->psr.panel_replay_enabled) {
> > + if (intel_dp->psr.panel_replay_enabled)
> > drm_dbg_kms(display->drm, "Enabling Panel
> > Replay\n");
> > - } else {
> > + else
> > drm_dbg_kms(display->drm, "Enabling PSR%s\n",
> > intel_dp->psr.sel_update_enabled ? "2"
> > : "1");
> >
> > - /*
> > - * Panel replay has to be enabled before link
> > training: doing it
> > - * only for PSR here.
> > - */
> > - intel_psr_enable_sink(intel_dp, crtc_state);
> > - }
> > + /*
> > + * Enabling here only for PSR. Panel Replay enable bit is
> > already
> > + * written at this point. See
> > + * intel_psr_panel_replay_enable_sink. Modifiers/options:
> > + * - Selective Update
> > + * - Region Early Transport
> > + * - Selective Update Region Scanline Capture
> > + * - VSC_SDP_CRC
> > + * - HPD on different Errors
> > + * - CRC verification
> > + * are written for PSR and Panel Replay here.
> > + */
> > + intel_psr_enable_sink(intel_dp, crtc_state);
> >
> > if (intel_dp_is_edp(intel_dp))
> > intel_snps_phy_update_psr_power_state(&dig_port-
> > >base,
> > true); @@ -2815,6 +2822,8 @@ void intel_psr_pre_plane_update(struct
> > intel_atomic_state *state,
> > needs_to_disable |= new_crtc_state->has_sel_update
> > != psr-
> > > sel_update_enabled;
> > needs_to_disable |= new_crtc_state-
> > > enable_psr2_su_region_et !=
> > psr->su_region_et_enabled;
> > + needs_to_disable |= new_crtc_state-
> > >has_panel_replay !=
> > + psr->panel_replay_enabled;
> > needs_to_disable |= DISPLAY_VER(i915) < 11 &&
> > new_crtc_state->wm_level_disabled;
> >
> > --
> > 2.34.1
>
next prev parent reply other threads:[~2025-01-21 10:08 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-09 10:35 [PATCH 0/4] Panel Replay mode change without full modeset Jouni Högander
2025-01-09 10:35 ` [PATCH 1/4] drm/i915/psr: Add new function for writing sink panel replay enable bit Jouni Högander
2025-01-13 11:04 ` Kahola, Mika
2025-01-09 10:35 ` [PATCH 2/4] drm/i915/psr: Enable Panel Replay on sink always when it's supported Jouni Högander
2025-01-13 11:06 ` Kahola, Mika
2025-01-09 10:35 ` [PATCH 3/4] drm/i915/psr: Make intel_psr_enable_sink as local static function Jouni Högander
2025-01-13 11:06 ` Kahola, Mika
2025-01-09 10:35 ` [PATCH 4/4] drm/i915/psr: Allow changing Panel Replay mode without full modeset Jouni Högander
2025-01-13 11:22 ` Kahola, Mika
2025-01-21 10:08 ` Hogander, Jouni [this message]
2025-01-09 11:28 ` ✓ CI.Patch_applied: success for Panel Replay mode change " Patchwork
2025-01-09 11:28 ` ✓ CI.checkpatch: " Patchwork
2025-01-09 11:29 ` ✓ CI.KUnit: " Patchwork
2025-01-09 11:47 ` ✓ CI.Build: " Patchwork
2025-01-09 11:50 ` ✓ CI.Hooks: " Patchwork
2025-01-09 11:51 ` ✗ CI.checksparse: warning " Patchwork
2025-01-20 14:12 ` ✓ CI.Patch_applied: success for Panel Replay mode change without full modeset (rev2) Patchwork
2025-01-20 14:12 ` ✓ CI.checkpatch: " Patchwork
2025-01-20 14:13 ` ✓ CI.KUnit: " Patchwork
2025-01-20 14:29 ` ✓ CI.Build: " Patchwork
2025-01-20 14:32 ` ✓ CI.Hooks: " Patchwork
2025-01-20 14:33 ` ✗ CI.checksparse: warning " Patchwork
2025-01-20 15:20 ` ✓ Xe.CI.BAT: success " Patchwork
2025-01-20 18:12 ` ✗ Xe.CI.Full: failure " Patchwork
2025-01-21 8:13 ` Hogander, Jouni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6db924674c5f0858a3c06ee2fbd49b16e68e52fd.camel@intel.com \
--to=jouni.hogander@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=mika.kahola@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox