From: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>,
Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Subject: [PATCH v18 2/9] drm: Add Adaptive Sync SDP logging
Date: Thu, 21 Mar 2024 21:08:16 +0530 [thread overview]
Message-ID: <20240321153828.3815870-3-mitulkumar.ajitkumar.golani@intel.com> (raw)
In-Reply-To: <20240311094238.3320888-2-mitulkumar.ajitkumar.golani@intel.com>
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.
--v7:
- Add drm/i915/display in subject line.
Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
drivers/gpu/drm/display/drm_dp_helper.c | 12 ++++++++++
include/drm/display/drm_dp.h | 11 ++++++++++
include/drm/display/drm_dp_helper.h | 29 +++++++++++++++++++++++++
3 files changed, 52 insertions(+)
diff --git a/drivers/gpu/drm/display/drm_dp_helper.c b/drivers/gpu/drm/display/drm_dp_helper.c
index 5d7c6bab8e33..d67ebe433447 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..0b032faa8cf2 100644
--- a/include/drm/display/drm_dp.h
+++ b/include/drm/display/drm_dp.h
@@ -1150,6 +1150,8 @@
#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)
+# define DP_ADAPTIVE_SYNC_SDP_LENGTH GENMASK(5, 0)
# 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 +1641,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 +1802,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]);
--
2.25.1
next prev parent reply other threads:[~2024-03-21 15:45 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-11 9:42 [PATCH v17 0/9] Enable Adaptive Sync SDP Support for DP Mitul Golani
2024-03-11 9:42 ` [PATCH v17 1/9] drm/dp: Add support to indicate if sink supports AS SDP Mitul Golani
2024-03-21 15:38 ` [v17,1/9] " Mitul Golani
2024-03-21 15:38 ` [PATCH v18 0/9] Enable Adaptive Sync SDP Support for DP Mitul Golani
2024-03-21 15:38 ` [PATCH v18 1/9] drm/dp: Add support to indicate if sink supports AS SDP Mitul Golani
2024-03-21 15:38 ` Mitul Golani [this message]
2024-03-21 15:38 ` [PATCH v18 3/9] drm/i915/display: Add crtc state dump for Adaptive Sync SDP Mitul Golani
2024-03-21 15:38 ` [PATCH v18 4/9] drm/i915/dp: Add Read/Write support " Mitul Golani
2024-03-21 15:38 ` [PATCH v18 5/9] drm/i915/dp: Add wrapper function to check AS SDP Mitul Golani
2024-03-21 15:38 ` [PATCH v18 6/9] drm/i915/display: Compute AS SDP parameters Mitul Golani
2024-03-21 15:38 ` [PATCH v18 7/9] drm/i915/display: Add state checker for Adaptive Sync SDP Mitul Golani
2024-03-21 15:38 ` [PATCH v18 8/9] drm/i915/display: Compute vrr_vsync params Mitul Golani
2024-03-21 15:38 ` [PATCH v18 9/9] drm/i915/display: Read/Write Adaptive Sync SDP Mitul Golani
2024-03-11 9:42 ` [PATCH v17 2/9] drm: Add Adaptive Sync SDP logging Mitul Golani
2024-03-11 9:42 ` [PATCH v17 3/9] drm/i915/display: Add crtc state dump for Adaptive Sync SDP Mitul Golani
2024-03-19 6:53 ` [PATCH v18 " Mitul Golani
2024-03-11 9:42 ` [PATCH v17 4/9] drm/i915/dp: Add Read/Write support " Mitul Golani
2024-03-11 9:42 ` [PATCH v17 5/9] drm/i915/dp: Add wrapper function to check AS SDP Mitul Golani
2024-03-11 9:42 ` [PATCH v17 6/9] drm/i915/display: Compute AS SDP parameters Mitul Golani
2024-03-11 9:42 ` [PATCH v17 7/9] drm/i915/display: Add state checker for Adaptive Sync SDP Mitul Golani
2024-03-11 9:42 ` [PATCH v17 8/9] drm/i915/display: Compute vrr_vsync params Mitul Golani
2024-03-13 3:56 ` [PATCH v18 " Mitul Golani
2024-03-14 9:04 ` Nautiyal, Ankit K
2024-03-18 11:12 ` [PATCH v19 " Mitul Golani
2024-03-20 4:29 ` Murthy, Arun R
2024-03-20 5:00 ` [PATCH v20 " Mitul Golani
2024-03-21 4:08 ` Nautiyal, Ankit K
2024-03-11 9:42 ` [PATCH v17 9/9] drm/i915/display: Read/Write Adaptive Sync SDP Mitul Golani
2024-03-12 1:01 ` ✗ Fi.CI.CHECKPATCH: warning for Enable Adaptive Sync SDP Support for DP (rev17) Patchwork
2024-03-12 1:01 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-03-12 1:18 ` ✗ Fi.CI.BAT: failure " Patchwork
2024-03-13 4:51 ` ✗ Fi.CI.CHECKPATCH: warning for Enable Adaptive Sync SDP Support for DP (rev18) Patchwork
2024-03-13 4:51 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-03-13 5:06 ` ✗ Fi.CI.BAT: failure " Patchwork
2024-03-18 14:37 ` [PATCH v17 0/9] Enable Adaptive Sync SDP Support for DP Jani Nikula
2024-03-19 9:46 ` Maxime Ripard
2024-04-04 14:59 ` Nautiyal, Ankit K
2024-04-19 12:35 ` Jani Nikula
2024-04-19 12:51 ` Maxime Ripard
2024-04-19 14:09 ` Jani Nikula
2024-04-19 14:33 ` Maxime Ripard
2024-04-21 4:11 ` Nautiyal, Ankit K
2024-03-18 21:12 ` ✗ Fi.CI.BUILD: failure for Enable Adaptive Sync SDP Support for DP (rev19) Patchwork
2024-03-19 7:28 ` ✗ Fi.CI.CHECKPATCH: warning for Enable Adaptive Sync SDP Support for DP (rev20) Patchwork
2024-03-19 7:28 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-03-19 7:46 ` ✗ Fi.CI.BAT: failure " Patchwork
2024-03-19 10:17 ` ✓ Fi.CI.BAT: success " Patchwork
2024-03-19 14:27 ` ✗ Fi.CI.IGT: failure " Patchwork
2024-03-20 5:44 ` ✗ Fi.CI.CHECKPATCH: warning for Enable Adaptive Sync SDP Support for DP (rev21) Patchwork
2024-03-20 5:44 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-03-20 5:57 ` ✓ Fi.CI.BAT: success " Patchwork
2024-03-20 17:08 ` ✗ Fi.CI.IGT: failure " Patchwork
2024-03-21 9:35 ` Patchwork
2024-03-21 10:42 ` ✓ Fi.CI.IGT: success " Patchwork
2024-03-21 21:36 ` ✗ Fi.CI.BUILD: failure for Enable Adaptive Sync SDP Support for DP (rev30) Patchwork
-- strict thread matches above, loose matches on Subject: below --
2024-03-22 3:11 [PATCH v18 0/9] Enable Adaptive Sync SDP Support for DP Mitul Golani
2024-03-22 3:11 ` [PATCH v18 2/9] drm: Add Adaptive Sync SDP logging Mitul Golani
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=20240321153828.3815870-3-mitulkumar.ajitkumar.golani@intel.com \
--to=mitulkumar.ajitkumar.golani@intel.com \
--cc=ankit.k.nautiyal@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/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