All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: ankit.k.nautiyal@intel.com, dri-devel@lists.freedesktop.org,
	jani.nikula@intel.com,
	Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
Subject: [PATCH v17 2/9] drm: Add Adaptive Sync SDP logging
Date: Mon, 11 Mar 2024 15:12:31 +0530	[thread overview]
Message-ID: <20240311094238.3320888-3-mitulkumar.ajitkumar.golani@intel.com> (raw)
In-Reply-To: <20240311094238.3320888-1-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 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..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


  parent reply	other threads:[~2024-03-11  9:49 UTC|newest]

Thread overview: 55+ 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   ` [PATCH v18 2/9] drm: Add Adaptive Sync SDP logging Mitul Golani
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 ` Mitul Golani [this message]
2024-03-11  9:42 ` [PATCH v17 3/9] drm/i915/display: Add crtc state dump for " 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

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=20240311094238.3320888-3-mitulkumar.ajitkumar.golani@intel.com \
    --to=mitulkumar.ajitkumar.golani@intel.com \
    --cc=ankit.k.nautiyal@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@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.