From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
dri-devel@lists.freedesktop.org, jouni.hogander@intel.com,
animesh.manna@intel.com
Subject: Re: [PATCH 13/19] drm/i915/psr: Write the PR config DPCDs in burst mode
Date: Mon, 30 Mar 2026 21:44:26 +0300 [thread overview]
Message-ID: <acrEiglyKjnRZA0Q@intel.com> (raw)
In-Reply-To: <20260330040656.4116502-14-ankit.k.nautiyal@intel.com>
On Mon, Mar 30, 2026 at 09:36:50AM +0530, Ankit Nautiyal wrote:
> Replace the consecutive single-byte writes to PANEL_REPLAY_CONFIG and
> CONFIG2 with one drm_dp_dpcd_write() burst starting at PANEL_REPLAY_CONFIG,
> reducing AUX transactions.
>
> v2: Drop extra conditions, and optimize variables. (Ville)
>
> Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_psr.c | 29 ++++++++++++++----------
> 1 file changed, 17 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> index 2f1b48cd8efd..ca054135ca30 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -782,27 +782,32 @@ static bool psr2_su_region_et_valid(struct intel_connector *connector, bool pane
> static void _panel_replay_enable_sink(struct intel_dp *intel_dp,
> const struct intel_crtc_state *crtc_state)
> {
> - u8 val = DP_PANEL_REPLAY_ENABLE |
> - DP_PANEL_REPLAY_VSC_SDP_CRC_EN |
> - DP_PANEL_REPLAY_UNRECOVERABLE_ERROR_EN |
> - DP_PANEL_REPLAY_RFB_STORAGE_ERROR_EN |
> - DP_PANEL_REPLAY_ACTIVE_FRAME_CRC_ERROR_EN;
> - u8 panel_replay_config2 = DP_PANEL_REPLAY_CRC_VERIFICATION;
> + struct intel_display *display = to_intel_display(intel_dp);
> + u8 panel_replay_config[2];
> + int ret;
> +
> + panel_replay_config[0] = DP_PANEL_REPLAY_ENABLE |
> + DP_PANEL_REPLAY_VSC_SDP_CRC_EN |
> + DP_PANEL_REPLAY_UNRECOVERABLE_ERROR_EN |
> + DP_PANEL_REPLAY_RFB_STORAGE_ERROR_EN |
> + DP_PANEL_REPLAY_ACTIVE_FRAME_CRC_ERROR_EN;
> + panel_replay_config[1] = DP_PANEL_REPLAY_CRC_VERIFICATION;
>
> if (crtc_state->has_sel_update)
> - val |= DP_PANEL_REPLAY_SU_ENABLE;
> + panel_replay_config[0] |= DP_PANEL_REPLAY_SU_ENABLE;
>
> if (crtc_state->enable_psr2_su_region_et)
> - val |= DP_PANEL_REPLAY_ENABLE_SU_REGION_ET;
> + panel_replay_config[0] |= DP_PANEL_REPLAY_ENABLE_SU_REGION_ET;
>
> if (crtc_state->req_psr2_sdp_prior_scanline)
> - panel_replay_config2 |=
> + panel_replay_config[1] |=
> DP_PANEL_REPLAY_SU_REGION_SCANLINE_CAPTURE;
>
> - drm_dp_dpcd_writeb(&intel_dp->aux, PANEL_REPLAY_CONFIG, val);
> + ret = drm_dp_dpcd_write(&intel_dp->aux, PANEL_REPLAY_CONFIG,
> + panel_replay_config, sizeof(panel_replay_config));
>
> - drm_dp_dpcd_writeb(&intel_dp->aux, PANEL_REPLAY_CONFIG2,
> - panel_replay_config2);
> + if (ret != sizeof(panel_replay_config))
> + drm_dbg_kms(display->drm, "Failed to write Panel Replay Configs\n");
Looks like we don't actually check for errors on any of the
other DPCD accesses here. So I'd probably drop it here as well.
Either way
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> }
>
> static void _psr_enable_sink(struct intel_dp *intel_dp,
> --
> 2.45.2
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2026-03-30 18:44 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-30 4:06 [PATCH 00/19] Fix Adaptive Sync SDP for PR with Link ON + Auxless ALPM Ankit Nautiyal
2026-03-30 4:06 ` [PATCH 01/19] drm/dp: Rename and relocate AS SDP payload field masks Ankit Nautiyal
2026-03-30 4:06 ` [PATCH 02/19] drm/dp: Clean up DPRX feature enumeration macros Ankit Nautiyal
2026-03-30 4:06 ` [PATCH 03/19] drm/dp: Add bits for AS SDP FAVT Payload Fields Parsing support Ankit Nautiyal
2026-03-30 4:06 ` [PATCH 04/19] drm/dp: Add DPCD for configuring AS SDP for PR + VRR Ankit Nautiyal
2026-03-30 18:19 ` Ville Syrjälä
2026-03-31 11:41 ` Nautiyal, Ankit K
2026-03-30 4:06 ` [PATCH 05/19] drm/i915/dp: Fix readback for target_rr in Adaptive Sync SDP Ankit Nautiyal
2026-03-30 4:06 ` [PATCH 06/19] drm/i915/vrr: Avoid vrr for PCON with HDMI2.1 sink Ankit Nautiyal
2026-03-30 4:06 ` [PATCH 07/19] drm/i915/dp: Account for AS_SDP guardband only when enabled Ankit Nautiyal
2026-03-30 18:20 ` Ville Syrjälä
2026-03-30 4:06 ` [PATCH 08/19] drm/i915/dp: Add a helper to decide if AS SDP can be used Ankit Nautiyal
2026-03-30 18:21 ` Ville Syrjälä
2026-03-30 19:40 ` Ville Syrjälä
2026-03-31 11:44 ` Nautiyal, Ankit K
2026-03-31 11:42 ` Nautiyal, Ankit K
2026-03-31 12:00 ` Ville Syrjälä
2026-03-30 4:06 ` [PATCH 09/19] drm/i915/dp: Skip AS SDP for DP branch devices Ankit Nautiyal
2026-03-30 18:22 ` Ville Syrjälä
2026-03-30 4:06 ` [PATCH 10/19] drm/i915/dp: Use revision field of AS SDP data structure Ankit Nautiyal
2026-03-30 4:06 ` [PATCH 11/19] drm/i915/dp: Include all relevant AS SDP fields in comparison Ankit Nautiyal
2026-03-30 18:26 ` Ville Syrjälä
2026-03-31 11:47 ` Nautiyal, Ankit K
2026-03-30 4:06 ` [PATCH 12/19] drm/i915/dp: Add member to intel_dp to store AS SDP v2 support Ankit Nautiyal
2026-03-30 18:29 ` Ville Syrjälä
2026-03-31 11:49 ` Nautiyal, Ankit K
2026-03-30 4:06 ` [PATCH 13/19] drm/i915/psr: Write the PR config DPCDs in burst mode Ankit Nautiyal
2026-03-30 18:44 ` Ville Syrjälä [this message]
2026-03-31 11:51 ` Nautiyal, Ankit K
2026-03-30 4:06 ` [PATCH 14/19] drm/i915/display: Add helper for AS SDP transmission time selection Ankit Nautiyal
2026-03-30 18:47 ` Ville Syrjälä
2026-03-30 4:06 ` [PATCH 15/19] drm/i915/psr: Program Panel Replay CONFIG3 using AS SDP transmission time Ankit Nautiyal
2026-03-30 18:54 ` Ville Syrjälä
2026-03-31 11:58 ` Nautiyal, Ankit K
2026-03-31 12:04 ` Ville Syrjälä
2026-03-30 4:06 ` [PATCH 16/19] drm/i915/dp: Set relevant Downspread Ctrl DPCD bits for PR + Auxless ALPM Ankit Nautiyal
2026-03-30 19:22 ` Ville Syrjälä
2026-03-31 12:01 ` Nautiyal, Ankit K
2026-03-30 4:06 ` [PATCH 17/19] drm/i915/dp: Program AS SDP DB[1:0] for PR with Link off Ankit Nautiyal
2026-03-30 4:06 ` [PATCH 18/19] drm/i915/dp: Split AS SDP computation between compute_config and compute_config_late Ankit Nautiyal
2026-03-30 19:38 ` Ville Syrjälä
2026-03-31 12:05 ` Nautiyal, Ankit K
2026-03-30 4:06 ` [PATCH 19/19] drm/i915/dp: Always enable AS SDP if supported by source + sink Ankit Nautiyal
2026-03-30 19:50 ` Ville Syrjälä
2026-03-31 12:06 ` Nautiyal, Ankit K
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=acrEiglyKjnRZA0Q@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=animesh.manna@intel.com \
--cc=ankit.k.nautiyal@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jouni.hogander@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.