From: "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
To: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>,
<intel-gfx@lists.freedesktop.org>
Cc: <dri-devel@lists.freedesktop.org>, <jani.nikula@intel.com>
Subject: Re: [PATCH v15 2/9] drm: Add Adaptive Sync SDP logging
Date: Mon, 4 Mar 2024 14:17:41 +0530 [thread overview]
Message-ID: <b665d533-a62c-4617-9c7c-1d2d43367eb9@intel.com> (raw)
In-Reply-To: <20240301084503.2971826-3-mitulkumar.ajitkumar.golani@intel.com>
On 3/1/2024 2:14 PM, Mitul Golani wrote:
> Add structure representing Adaptive Sync Secondary Data Packet (AS SDP).
> Also, add Adaptive Sync SDP logging in drm_dp_helper.c to facilitate
> debugging.
>
> --v2:
> - Update logging. [Jani, Ankit]
> - Use 'as_sdp' instead of 'async' [Ankit]
> - Correct define placeholders to where they are actually used. [Jani]
> - Update members in 'as_sdp' structure to make it uniform. [Jani]
>
> --v3:
> - Added changes to dri-devel mailing list. No code changes.
>
> --v4:
> - Instead of directly using operation mode, use an enum to accommodate
> all operation modes (Ankit).
>
> --v5:
> Nit-pick changes to commit message.
>
> --v6:
> - Add correct place holder and name change for AS_SDP_OP_MODE.
> - Separate i915 changes from drm changes.
> - Remove extra lines.
>
> Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> ---
> drivers/gpu/drm/display/drm_dp_helper.c | 12 ++++++++++
> include/drm/display/drm_dp.h | 10 +++++++++
> include/drm/display/drm_dp_helper.h | 29 +++++++++++++++++++++++++
> 3 files changed, 51 insertions(+)
>
> diff --git a/drivers/gpu/drm/display/drm_dp_helper.c b/drivers/gpu/drm/display/drm_dp_helper.c
> index f2fabb673aa4..f880bc7b2153 100644
> --- a/drivers/gpu/drm/display/drm_dp_helper.c
> +++ b/drivers/gpu/drm/display/drm_dp_helper.c
> @@ -2948,6 +2948,18 @@ void drm_dp_vsc_sdp_log(struct drm_printer *p, const struct drm_dp_vsc_sdp *vsc)
> }
> EXPORT_SYMBOL(drm_dp_vsc_sdp_log);
>
> +void drm_dp_as_sdp_log(struct drm_printer *p, const struct drm_dp_as_sdp *as_sdp)
> +{
> + drm_printf(p, "DP SDP: AS_SDP, revision %u, length %u\n",
> + as_sdp->revision, as_sdp->length);
> + drm_printf(p, " vtotal: %d\n", as_sdp->vtotal);
> + drm_printf(p, " target_rr: %d\n", as_sdp->target_rr);
> + drm_printf(p, " duration_incr_ms: %d\n", as_sdp->duration_incr_ms);
> + drm_printf(p, " duration_decr_ms: %d\n", as_sdp->duration_decr_ms);
> + drm_printf(p, " operation_mode: %d\n", as_sdp->mode);
> +}
> +EXPORT_SYMBOL(drm_dp_as_sdp_log);
> +
> /**
> * drm_dp_as_sdp_supported() - check if adaptive sync sdp is supported
> * @aux: DisplayPort AUX channel
> diff --git a/include/drm/display/drm_dp.h b/include/drm/display/drm_dp.h
> index 4891bd916d26..e39a22a714e2 100644
> --- a/include/drm/display/drm_dp.h
> +++ b/include/drm/display/drm_dp.h
> @@ -1150,6 +1150,7 @@
>
> #define DP_DPRX_FEATURE_ENUMERATION_LIST_CONT_1 0x2214 /* 2.0 E11 */
> # define DP_ADAPTIVE_SYNC_SDP_SUPPORTED (1 << 0)
> +# define DP_ADAPTIVE_SYNC_SDP_OPERATION_MODE GENMASK(1, 0)
I am wondering if GENMASK can be used here, without including linux/bits.h
I might be wrong though.
Other than patch looks good to me.
Regards,
Ankit
> # define DP_AS_SDP_FIRST_HALF_LINE_OR_3840_PIXEL_CYCLE_WINDOW_NOT_SUPPORTED (1 << 1)
> # define DP_VSC_EXT_SDP_FRAMEWORK_VERSION_1_SUPPORTED (1 << 4)
>
> @@ -1639,10 +1640,12 @@ enum drm_dp_phy {
> #define DP_SDP_AUDIO_COPYMANAGEMENT 0x05 /* DP 1.2 */
> #define DP_SDP_ISRC 0x06 /* DP 1.2 */
> #define DP_SDP_VSC 0x07 /* DP 1.2 */
> +#define DP_SDP_ADAPTIVE_SYNC 0x22 /* DP 1.4 */
> #define DP_SDP_CAMERA_GENERIC(i) (0x08 + (i)) /* 0-7, DP 1.3 */
> #define DP_SDP_PPS 0x10 /* DP 1.4 */
> #define DP_SDP_VSC_EXT_VESA 0x20 /* DP 1.4 */
> #define DP_SDP_VSC_EXT_CEA 0x21 /* DP 1.4 */
> +
> /* 0x80+ CEA-861 infoframe types */
>
> #define DP_SDP_AUDIO_INFOFRAME_HB2 0x1b
> @@ -1798,4 +1801,11 @@ enum dp_content_type {
> DP_CONTENT_TYPE_GAME = 0x04,
> };
>
> +enum operation_mode {
> + DP_AS_SDP_AVT_DYNAMIC_VTOTAL = 0x00,
> + DP_AS_SDP_AVT_FIXED_VTOTAL = 0x01,
> + DP_AS_SDP_FAVT_TRR_NOT_REACHED = 0x02,
> + DP_AS_SDP_FAVT_TRR_REACHED = 0x03
> +};
> +
> #endif /* _DRM_DP_H_ */
> diff --git a/include/drm/display/drm_dp_helper.h b/include/drm/display/drm_dp_helper.h
> index 7df19acdc790..10147ae96326 100644
> --- a/include/drm/display/drm_dp_helper.h
> +++ b/include/drm/display/drm_dp_helper.h
> @@ -98,6 +98,35 @@ struct drm_dp_vsc_sdp {
> enum dp_content_type content_type;
> };
>
> +/**
> + * struct drm_dp_as_sdp - drm DP Adaptive Sync SDP
> + *
> + * This structure represents a DP AS SDP of drm
> + * It is based on DP 2.1 spec [Table 2-126: Adaptive-Sync SDP Header Bytes] and
> + * [Table 2-127: Adaptive-Sync SDP Payload for DB0 through DB8]
> + *
> + * @sdp_type: Secondary-data packet type
> + * @revision: Revision Number
> + * @length: Number of valid data bytes
> + * @vtotal: Minimum Vertical Vtotal
> + * @target_rr: Target Refresh
> + * @duration_incr_ms: Successive frame duration increase
> + * @duration_decr_ms: Successive frame duration decrease
> + * @operation_mode: Adaptive Sync Operation Mode
> + */
> +struct drm_dp_as_sdp {
> + unsigned char sdp_type;
> + unsigned char revision;
> + unsigned char length;
> + int vtotal;
> + int target_rr;
> + int duration_incr_ms;
> + int duration_decr_ms;
> + enum operation_mode mode;
> +};
> +
> +void drm_dp_as_sdp_log(struct drm_printer *p,
> + const struct drm_dp_as_sdp *as_sdp);
> void drm_dp_vsc_sdp_log(struct drm_printer *p, const struct drm_dp_vsc_sdp *vsc);
>
> bool drm_dp_vsc_sdp_supported(struct drm_dp_aux *aux, const u8 dpcd[DP_RECEIVER_CAP_SIZE]);
next prev parent reply other threads:[~2024-03-04 8:48 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-01 8:44 [PATCH v15 0/9] Enable Adaptive Sync SDP Support for DP Mitul Golani
2024-03-01 8:44 ` [PATCH v15 1/9] drm/dp: Add support to indicate if sink supports AS SDP Mitul Golani
2024-03-04 8:44 ` Nautiyal, Ankit K
2024-03-01 8:44 ` [PATCH v15 2/9] drm: Add Adaptive Sync SDP logging Mitul Golani
2024-03-04 8:47 ` Nautiyal, Ankit K [this message]
2024-03-01 8:44 ` [PATCH v15 3/9] drm: Add crtc state dump for Adaptive Sync SDP Mitul Golani
2024-03-04 9:47 ` Nautiyal, Ankit K
2024-03-01 8:44 ` [PATCH v15 4/9] drm/i915/dp: Add Read/Write support " Mitul Golani
2024-03-04 10:07 ` Nautiyal, Ankit K
2024-03-01 8:44 ` [PATCH v15 5/9] drm/i915/dp: Add wrapper function to check AS SDP Mitul Golani
2024-03-04 10:09 ` Nautiyal, Ankit K
2024-03-01 8:45 ` [PATCH v15 6/9] drm/i915/display: Compute AS SDP parameters Mitul Golani
2024-03-04 10:12 ` Nautiyal, Ankit K
2024-03-01 8:45 ` [PATCH v15 7/9] drm/i915/display: Add state checker for Adaptive Sync SDP Mitul Golani
2024-03-04 10:16 ` Nautiyal, Ankit K
2024-03-01 8:45 ` [PATCH v15 8/9] drm/i915/display: Compute vrr_vsync params Mitul Golani
2024-03-04 10:52 ` Nautiyal, Ankit K
2024-03-01 8:45 ` [PATCH v15 9/9] drm/i915/display: Read/Write AS sdp only when sink/source has enabled Mitul Golani
2024-03-04 10:57 ` Nautiyal, Ankit K
2024-03-01 9:28 ` [PATCH v15 0/9] Enable Adaptive Sync SDP Support for DP Jani Nikula
2024-03-01 17:03 ` ✗ Fi.CI.BUILD: failure for Enable Adaptive Sync SDP Support for DP (rev15) Patchwork
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=b665d533-a62c-4617-9c7c-1d2d43367eb9@intel.com \
--to=ankit.k.nautiyal@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=mitulkumar.ajitkumar.golani@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