From: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org
Subject: [PATCH v2 14/18] drm/i915: Add state readout for DP VSC SDP
Date: Sun, 02 Feb 2020 15:49:34 +0000 [thread overview]
Message-ID: <20200202154938.1129610-15-gwan-gyeong.mun@intel.com> (raw)
In-Reply-To: <20200202154938.1129610-1-gwan-gyeong.mun@intel.com>
Added state readout for DP VSC SDP and enabled state validation
for DP VSC SDP.
v2: Minor style fix
Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
---
drivers/gpu/drm/i915/display/intel_ddi.c | 1 +
drivers/gpu/drm/i915/display/intel_display.c | 42 ++++++++++++++++++++
2 files changed, 43 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index a9eaf7a6bc15..64e4edefa998 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -4391,6 +4391,7 @@ void intel_ddi_get_config(struct intel_encoder *encoder,
&pipe_config->infoframes.drm);
intel_read_dp_sdp(encoder, pipe_config, HDMI_PACKET_TYPE_GAMUT_METADATA);
+ intel_read_dp_sdp(encoder, pipe_config, DP_SDP_VSC);
}
static enum intel_output_type
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 7d298f14799d..be42ed3106ca 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -13503,6 +13503,13 @@ intel_compare_infoframe(const union hdmi_infoframe *a,
return memcmp(a, b, sizeof(*a)) = 0;
}
+static bool
+intel_compare_dp_vsc_sdp(const struct intel_dp_vsc_sdp *a,
+ const struct intel_dp_vsc_sdp *b)
+{
+ return memcmp(a, b, sizeof(*a)) = 0;
+}
+
static void
pipe_config_infoframe_mismatch(struct drm_i915_private *dev_priv,
bool fastset, const char *name,
@@ -13528,6 +13535,30 @@ pipe_config_infoframe_mismatch(struct drm_i915_private *dev_priv,
}
}
+static void
+pipe_config_dp_vsc_sdp_mismatch(struct drm_i915_private *dev_priv,
+ bool fastset, const char *name,
+ const struct intel_dp_vsc_sdp *a,
+ const struct intel_dp_vsc_sdp *b)
+{
+ if (fastset) {
+ if (!drm_debug_enabled(DRM_UT_KMS))
+ return;
+
+ DRM_DEBUG_KMS("fastset mismatch in %s dp sdp\n", name);
+ DRM_DEBUG_KMS("expected:\n");
+ intel_dp_vsc_sdp_log(KERN_DEBUG, dev_priv->drm.dev, a);
+ DRM_DEBUG_KMS("found:\n");
+ intel_dp_vsc_sdp_log(KERN_DEBUG, dev_priv->drm.dev, b);
+ } else {
+ DRM_ERROR("mismatch in %s dp sdp\n", name);
+ DRM_ERROR("expected:\n");
+ intel_dp_vsc_sdp_log(KERN_ERR, dev_priv->drm.dev, a);
+ DRM_ERROR("found:\n");
+ intel_dp_vsc_sdp_log(KERN_ERR, dev_priv->drm.dev, b);
+ }
+}
+
static void __printf(4, 5)
pipe_config_mismatch(bool fastset, const struct intel_crtc *crtc,
const char *name, const char *format, ...)
@@ -13729,6 +13760,16 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
} \
} while (0)
+#define PIPE_CONF_CHECK_DP_VSC_SDP(name) do { \
+ if (!intel_compare_dp_vsc_sdp(¤t_config->infoframes.name, \
+ &pipe_config->infoframes.name)) { \
+ pipe_config_dp_vsc_sdp_mismatch(dev_priv, fastset, __stringify(name), \
+ ¤t_config->infoframes.name, \
+ &pipe_config->infoframes.name); \
+ ret = false; \
+ } \
+} while (0)
+
#define PIPE_CONF_CHECK_COLOR_LUT(name1, name2, bit_precision) do { \
if (current_config->name1 != pipe_config->name1) { \
pipe_config_mismatch(fastset, crtc, __stringify(name1), \
@@ -13902,6 +13943,7 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
PIPE_CONF_CHECK_INFOFRAME(spd);
PIPE_CONF_CHECK_INFOFRAME(hdmi);
PIPE_CONF_CHECK_INFOFRAME(drm);
+ PIPE_CONF_CHECK_DP_VSC_SDP(vsc);
PIPE_CONF_CHECK_X(sync_mode_slaves_mask);
PIPE_CONF_CHECK_I(master_transcoder);
--
2.24.1
next prev parent reply other threads:[~2020-02-02 15:49 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-02 15:49 [PATCH v2 00/18] In order to readout DP SDPs, refactors the handling of DP SDPs Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 01/18] drm: add DP 1.4 VSC SDP Payload related enums Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 02/18] drm/i915: Add DP VSC SDP payload data to intel_crtc_state.infoframes Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 03/18] drm/i915/dp: Add compute routine for DP VSC SDP Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 04/18] drm/i915/dp: Add compute routine for DP HDR Metadata Infoframe SDP Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 05/18] drm/i915/dp: Add writing of DP SDPs (Secondary Data Packet) Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 06/18] video/hdmi: Add Unpack only function for DRM infoframe Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 07/18] drm/i915/dp: Read out DP SDPs (Secondary Data Packet) Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 08/18] drm/i915/dp: Add logging function for DP VSC SDP Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 09/18] drm/i915: Include HDMI DRM infoframe in the crtc state dump Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 10/18] drm/i915: Include DP HDR Metadata Infoframe SDP " Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 11/18] drm/i915: Include DP VSC " Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 12/18] drm/i915: Program DP SDPs with computed configs Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 13/18] drm/i915: Add state readout for DP HDR Metadata Infoframe SDP Gwan-gyeong Mun
2020-02-02 15:49 ` Gwan-gyeong Mun [this message]
2020-02-02 15:49 ` [PATCH v2 15/18] drm/i915: Program DP SDPs on pipe updates Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 16/18] drm/i915: Stop sending DP SDPs on intel_ddi_post_disable_dp() Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 17/18] drm/i915/dp: Add compute routine for DP PSR VSC SDP Gwan-gyeong Mun
2020-02-02 15:49 ` [PATCH v2 18/18] drm/i915/psr: Use new DP VSC SDP compute routine on PSR Gwan-gyeong Mun
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=20200202154938.1129610-15-gwan-gyeong.mun@intel.com \
--to=gwan-gyeong.mun@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=linux-fbdev@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).