intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH] drm/scdc-helper: Pimp SCDC debugs
@ 2023-03-29 17:14 Ville Syrjala
  2023-03-29 21:13 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for " Patchwork
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Ville Syrjala @ 2023-03-29 17:14 UTC (permalink / raw)
  To: dri-devel
  Cc: Maxime Ripard, Neil Armstrong, Robert Foss, Emma Anholt,
	Jonas Karlman, intel-gfx, Jernej Skrabec, Laurent Pinchart,
	Andrzej Hajda, linux-tegra

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Include the device and connector information in the SCDC
debugs. Makes it easier to figure out who did what.

Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Cc: Robert Foss <rfoss@kernel.org>
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: Jonas Karlman <jonas@kwiboo.se>
Cc: Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Emma Anholt <emma@anholt.net>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: intel-gfx@lists.freedesktop.org
Cc: linux-tegra@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c |  8 ++---
 drivers/gpu/drm/display/drm_scdc_helper.c | 36 ++++++++++++++++++-----
 drivers/gpu/drm/i915/display/intel_ddi.c  |  4 +--
 drivers/gpu/drm/i915/display/intel_hdmi.c |  4 +--
 drivers/gpu/drm/tegra/sor.c               | 10 +++----
 drivers/gpu/drm/vc4/vc4_hdmi.c            | 21 +++++++------
 include/drm/display/drm_scdc_helper.h     | 12 ++++++--
 7 files changed, 62 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index aa51c61a78c7..7f57ca168ab6 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -1426,9 +1426,9 @@ void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi,
 	/* Control for TMDS Bit Period/TMDS Clock-Period Ratio */
 	if (dw_hdmi_support_scdc(hdmi, display)) {
 		if (mtmdsclock > HDMI14_MAX_TMDSCLK)
-			drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 1);
+			drm_scdc_set_high_tmds_clock_ratio(&hdmi->connector, hdmi->ddc, 1);
 		else
-			drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 0);
+			drm_scdc_set_high_tmds_clock_ratio(&hdmi->connector, hdmi->ddc, 0);
 	}
 }
 EXPORT_SYMBOL_GPL(dw_hdmi_set_high_tmds_clock_ratio);
@@ -2116,7 +2116,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
 				min_t(u8, bytes, SCDC_MIN_SOURCE_VERSION));
 
 			/* Enabled Scrambling in the Sink */
-			drm_scdc_set_scrambling(hdmi->ddc, 1);
+			drm_scdc_set_scrambling(&hdmi->connector, hdmi->ddc, 1);
 
 			/*
 			 * To activate the scrambler feature, you must ensure
@@ -2132,7 +2132,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
 			hdmi_writeb(hdmi, 0, HDMI_FC_SCRAMBLER_CTRL);
 			hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ,
 				    HDMI_MC_SWRSTZ);
-			drm_scdc_set_scrambling(hdmi->ddc, 0);
+			drm_scdc_set_scrambling(&hdmi->connector, hdmi->ddc, 0);
 		}
 	}
 
diff --git a/drivers/gpu/drm/display/drm_scdc_helper.c b/drivers/gpu/drm/display/drm_scdc_helper.c
index c3ad4ab2b456..2b124152384c 100644
--- a/drivers/gpu/drm/display/drm_scdc_helper.c
+++ b/drivers/gpu/drm/display/drm_scdc_helper.c
@@ -26,6 +26,8 @@
 #include <linux/delay.h>
 
 #include <drm/display/drm_scdc_helper.h>
+#include <drm/drm_connector.h>
+#include <drm/drm_device.h>
 #include <drm/drm_print.h>
 
 /**
@@ -140,6 +142,7 @@ EXPORT_SYMBOL(drm_scdc_write);
 
 /**
  * drm_scdc_get_scrambling_status - what is status of scrambling?
+ * @connector: connector
  * @adapter: I2C adapter for DDC channel
  *
  * Reads the scrambler status over SCDC, and checks the
@@ -148,14 +151,17 @@ EXPORT_SYMBOL(drm_scdc_write);
  * Returns:
  * True if the scrambling is enabled, false otherwise.
  */
-bool drm_scdc_get_scrambling_status(struct i2c_adapter *adapter)
+bool drm_scdc_get_scrambling_status(struct drm_connector *connector,
+				    struct i2c_adapter *adapter)
 {
 	u8 status;
 	int ret;
 
 	ret = drm_scdc_readb(adapter, SCDC_SCRAMBLER_STATUS, &status);
 	if (ret < 0) {
-		DRM_DEBUG_KMS("Failed to read scrambling status: %d\n", ret);
+		drm_dbg_kms(connector->dev,
+			    "[CONNECTOR:%d:%s] Failed to read scrambling status: %d\n",
+			    connector->base.id, connector->name, ret);
 		return false;
 	}
 
@@ -165,6 +171,7 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status);
 
 /**
  * drm_scdc_set_scrambling - enable scrambling
+ * @connector: connector
  * @adapter: I2C adapter for DDC channel
  * @enable: bool to indicate if scrambling is to be enabled/disabled
  *
@@ -175,14 +182,18 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status);
  * Returns:
  * True if scrambling is set/reset successfully, false otherwise.
  */
-bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable)
+bool drm_scdc_set_scrambling(struct drm_connector *connector,
+			     struct i2c_adapter *adapter,
+			     bool enable)
 {
 	u8 config;
 	int ret;
 
 	ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, &config);
 	if (ret < 0) {
-		DRM_DEBUG_KMS("Failed to read TMDS config: %d\n", ret);
+		drm_dbg_kms(connector->dev,
+			    "[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
+			    connector->base.id, connector->name, ret);
 		return false;
 	}
 
@@ -193,7 +204,9 @@ bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable)
 
 	ret = drm_scdc_writeb(adapter, SCDC_TMDS_CONFIG, config);
 	if (ret < 0) {
-		DRM_DEBUG_KMS("Failed to enable scrambling: %d\n", ret);
+		drm_dbg_kms(connector->dev,
+			    "[CONNECTOR:%d:%s] Failed to enable scrambling: %d\n",
+			    connector->base.id, connector->name, ret);
 		return false;
 	}
 
@@ -203,6 +216,7 @@ EXPORT_SYMBOL(drm_scdc_set_scrambling);
 
 /**
  * drm_scdc_set_high_tmds_clock_ratio - set TMDS clock ratio
+ * @connector: connector
  * @adapter: I2C adapter for DDC channel
  * @set: ret or reset the high clock ratio
  *
@@ -230,14 +244,18 @@ EXPORT_SYMBOL(drm_scdc_set_scrambling);
  * Returns:
  * True if write is successful, false otherwise.
  */
-bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set)
+bool drm_scdc_set_high_tmds_clock_ratio(struct drm_connector *connector,
+					struct i2c_adapter *adapter,
+					bool set)
 {
 	u8 config;
 	int ret;
 
 	ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, &config);
 	if (ret < 0) {
-		DRM_DEBUG_KMS("Failed to read TMDS config: %d\n", ret);
+		drm_dbg_kms(connector->dev,
+			    "[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
+			    connector->base.id, connector->name, ret);
 		return false;
 	}
 
@@ -248,7 +266,9 @@ bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set)
 
 	ret = drm_scdc_writeb(adapter, SCDC_TMDS_CONFIG, config);
 	if (ret < 0) {
-		DRM_DEBUG_KMS("Failed to set TMDS clock ratio: %d\n", ret);
+		drm_dbg_kms(connector->dev,
+			    "[CONNECTOR:%d:%s] Failed to set TMDS clock ratio: %d\n",
+			    connector->base.id, connector->name, ret);
 		return false;
 	}
 
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 73240cf78c8b..d8a9790f9d36 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3988,8 +3988,8 @@ static int intel_hdmi_reset_link(struct intel_encoder *encoder,
 
 	ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, &config);
 	if (ret < 0) {
-		drm_err(&dev_priv->drm, "Failed to read TMDS config: %d\n",
-			ret);
+		drm_err(&dev_priv->drm, "[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
+			connector->base.base.id, connector->base.name, ret);
 		return 0;
 	}
 
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index c7e9e1fbed37..1835df94616a 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -2661,9 +2661,9 @@ bool intel_hdmi_handle_sink_scrambling(struct intel_encoder *encoder,
 		    str_yes_no(scrambling), high_tmds_clock_ratio ? 40 : 10);
 
 	/* Set TMDS bit clock ratio to 1/40 or 1/10, and enable/disable scrambling */
-	return drm_scdc_set_high_tmds_clock_ratio(adapter,
+	return drm_scdc_set_high_tmds_clock_ratio(connector, adapter,
 						  high_tmds_clock_ratio) &&
-		drm_scdc_set_scrambling(adapter, scrambling);
+		drm_scdc_set_scrambling(connector, adapter, scrambling);
 }
 
 static u8 chv_port_to_ddc_pin(struct drm_i915_private *dev_priv, enum port port)
diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index 8af632740673..6cfdb2dec561 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -2142,8 +2142,8 @@ static void tegra_sor_hdmi_scdc_disable(struct tegra_sor *sor)
 {
 	struct i2c_adapter *ddc = sor->output.ddc;
 
-	drm_scdc_set_high_tmds_clock_ratio(ddc, false);
-	drm_scdc_set_scrambling(ddc, false);
+	drm_scdc_set_high_tmds_clock_ratio(&sor->output.connector, ddc, false);
+	drm_scdc_set_scrambling(&sor->output.connector, ddc, false);
 
 	tegra_sor_hdmi_disable_scrambling(sor);
 }
@@ -2170,8 +2170,8 @@ static void tegra_sor_hdmi_scdc_enable(struct tegra_sor *sor)
 {
 	struct i2c_adapter *ddc = sor->output.ddc;
 
-	drm_scdc_set_high_tmds_clock_ratio(ddc, true);
-	drm_scdc_set_scrambling(ddc, true);
+	drm_scdc_set_high_tmds_clock_ratio(&sor->output.connector, ddc, true);
+	drm_scdc_set_scrambling(&sor->output.connector, ddc, true);
 
 	tegra_sor_hdmi_enable_scrambling(sor);
 }
@@ -2181,7 +2181,7 @@ static void tegra_sor_hdmi_scdc_work(struct work_struct *work)
 	struct tegra_sor *sor = container_of(work, struct tegra_sor, scdc.work);
 	struct i2c_adapter *ddc = sor->output.ddc;
 
-	if (!drm_scdc_get_scrambling_status(ddc)) {
+	if (!drm_scdc_get_scrambling_status(&sor->output.connector, ddc)) {
 		DRM_DEBUG_KMS("SCDC not scrambled\n");
 		tegra_sor_hdmi_scdc_enable(sor);
 	}
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index 464c3cc8e6fb..ca27fe092679 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -885,7 +885,8 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder)
 static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder)
 {
 	struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
-	struct drm_device *drm = vc4_hdmi->connector.dev;
+	struct drm_connector *connector = &vc4_hdmi->connector;
+	struct drm_device *drm = connector->dev;
 	const struct drm_display_mode *mode = &vc4_hdmi->saved_adjusted_mode;
 	unsigned long flags;
 	int idx;
@@ -903,8 +904,8 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder)
 	if (!drm_dev_enter(drm, &idx))
 		return;
 
-	drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true);
-	drm_scdc_set_scrambling(vc4_hdmi->ddc, true);
+	drm_scdc_set_high_tmds_clock_ratio(connector, vc4_hdmi->ddc, true);
+	drm_scdc_set_scrambling(connector, vc4_hdmi->ddc, true);
 
 	spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
 	HDMI_WRITE(HDMI_SCRAMBLER_CTL, HDMI_READ(HDMI_SCRAMBLER_CTL) |
@@ -922,7 +923,8 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder)
 static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder)
 {
 	struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
-	struct drm_device *drm = vc4_hdmi->connector.dev;
+	struct drm_connector *connector = &vc4_hdmi->connector;
+	struct drm_device *drm = connector->dev;
 	unsigned long flags;
 	int idx;
 
@@ -944,8 +946,8 @@ static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder)
 		   ~VC5_HDMI_SCRAMBLER_CTL_ENABLE);
 	spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags);
 
-	drm_scdc_set_scrambling(vc4_hdmi->ddc, false);
-	drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, false);
+	drm_scdc_set_scrambling(connector, vc4_hdmi->ddc, false);
+	drm_scdc_set_high_tmds_clock_ratio(connector, vc4_hdmi->ddc, false);
 
 	drm_dev_exit(idx);
 }
@@ -955,12 +957,13 @@ static void vc4_hdmi_scrambling_wq(struct work_struct *work)
 	struct vc4_hdmi *vc4_hdmi = container_of(to_delayed_work(work),
 						 struct vc4_hdmi,
 						 scrambling_work);
+	struct drm_connector *connector = &vc4_hdmi->connector;
 
-	if (drm_scdc_get_scrambling_status(vc4_hdmi->ddc))
+	if (drm_scdc_get_scrambling_status(connector, vc4_hdmi->ddc))
 		return;
 
-	drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true);
-	drm_scdc_set_scrambling(vc4_hdmi->ddc, true);
+	drm_scdc_set_high_tmds_clock_ratio(connector, vc4_hdmi->ddc, true);
+	drm_scdc_set_scrambling(connector, vc4_hdmi->ddc, true);
 
 	queue_delayed_work(system_wq, &vc4_hdmi->scrambling_work,
 			   msecs_to_jiffies(SCRAMBLING_POLLING_DELAY_MS));
diff --git a/include/drm/display/drm_scdc_helper.h b/include/drm/display/drm_scdc_helper.h
index ded01fd948b4..9ad523b45454 100644
--- a/include/drm/display/drm_scdc_helper.h
+++ b/include/drm/display/drm_scdc_helper.h
@@ -28,6 +28,7 @@
 
 #include <drm/display/drm_scdc.h>
 
+struct drm_connector;
 struct i2c_adapter;
 
 ssize_t drm_scdc_read(struct i2c_adapter *adapter, u8 offset, void *buffer,
@@ -71,9 +72,14 @@ static inline int drm_scdc_writeb(struct i2c_adapter *adapter, u8 offset,
 	return drm_scdc_write(adapter, offset, &value, sizeof(value));
 }
 
-bool drm_scdc_get_scrambling_status(struct i2c_adapter *adapter);
+bool drm_scdc_get_scrambling_status(struct drm_connector *connector,
+				    struct i2c_adapter *adapter);
 
-bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable);
-bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set);
+bool drm_scdc_set_scrambling(struct drm_connector *connector,
+			     struct i2c_adapter *adapter,
+			     bool enable);
+bool drm_scdc_set_high_tmds_clock_ratio(struct drm_connector *connector,
+					struct i2c_adapter *adapter,
+					bool set);
 
 #endif
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/scdc-helper: Pimp SCDC debugs
  2023-03-29 17:14 [Intel-gfx] [PATCH] drm/scdc-helper: Pimp SCDC debugs Ville Syrjala
@ 2023-03-29 21:13 ` Patchwork
  2023-03-30  8:44 ` [Intel-gfx] [PATCH] " Maxime Ripard
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-03-29 21:13 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 5446 bytes --]

== Series Details ==

Series: drm/scdc-helper: Pimp SCDC debugs
URL   : https://patchwork.freedesktop.org/series/115807/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_12937 -> Patchwork_115807v1
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_115807v1 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_115807v1, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v1/index.html

Participating hosts (36 -> 35)
------------------------------

  Additional (1): fi-pnv-d510 
  Missing    (2): fi-kbl-soraka fi-snb-2520m 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_115807v1:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-a-vga-1:
    - fi-hsw-4770:        [PASS][1] -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12937/fi-hsw-4770/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-a-vga-1.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v1/fi-hsw-4770/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-a-vga-1.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-b-vga-1:
    - fi-hsw-4770:        [PASS][3] -> [DMESG-WARN][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12937/fi-hsw-4770/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-b-vga-1.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v1/fi-hsw-4770/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-b-vga-1.html

  
Known issues
------------

  Here are the changes found in Patchwork_115807v1 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s3@smem:
    - bat-rpls-1:         [PASS][5] -> [ABORT][6] ([i915#6687] / [i915#7978])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12937/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v1/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html

  * igt@i915_selftest@live@migrate:
    - bat-adlp-9:         [PASS][7] -> [DMESG-FAIL][8] ([i915#7699])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12937/bat-adlp-9/igt@i915_selftest@live@migrate.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v1/bat-adlp-9/igt@i915_selftest@live@migrate.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - bat-dg2-11:         NOTRUN -> [SKIP][9] ([i915#7828])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v1/bat-dg2-11/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1:
    - bat-dg2-8:          [PASS][10] -> [FAIL][11] ([i915#7932])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12937/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v1/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html

  * igt@kms_psr@primary_page_flip:
    - fi-pnv-d510:        NOTRUN -> [SKIP][12] ([fdo#109271]) +38 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v1/fi-pnv-d510/igt@kms_psr@primary_page_flip.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-glk-j4005:       [DMESG-FAIL][13] ([i915#5334]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12937/fi-glk-j4005/igt@i915_selftest@live@gt_heartbeat.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v1/fi-glk-j4005/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@hangcheck:
    - bat-dg2-11:         [ABORT][15] ([i915#7913]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12937/bat-dg2-11/igt@i915_selftest@live@hangcheck.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v1/bat-dg2-11/igt@i915_selftest@live@hangcheck.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
  [i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
  [i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978


Build changes
-------------

  * Linux: CI_DRM_12937 -> Patchwork_115807v1

  CI-20190529: 20190529
  CI_DRM_12937: 6848d3613c0a63382d00ff550c41394902bda903 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7226: 41be8b4ab86f9e11388c10366dfd71e5032589c1 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_115807v1: 6848d3613c0a63382d00ff550c41394902bda903 @ git://anongit.freedesktop.org/gfx-ci/linux


### Linux commits

bde38acf3d4a drm/scdc-helper: Pimp SCDC debugs

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v1/index.html

[-- Attachment #2: Type: text/html, Size: 6298 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/scdc-helper: Pimp SCDC debugs
  2023-03-29 17:14 [Intel-gfx] [PATCH] drm/scdc-helper: Pimp SCDC debugs Ville Syrjala
  2023-03-29 21:13 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for " Patchwork
@ 2023-03-30  8:44 ` Maxime Ripard
  2023-03-30 11:45   ` Ville Syrjälä
  2023-04-03 22:36 ` [Intel-gfx] [PATCH v2] " Ville Syrjala
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Maxime Ripard @ 2023-03-30  8:44 UTC (permalink / raw)
  To: Ville Syrjala
  Cc: Neil Armstrong, Jernej Skrabec, Robert Foss, Emma Anholt,
	Jonas Karlman, intel-gfx, dri-devel, Laurent Pinchart,
	Andrzej Hajda, linux-tegra

Hi,

On Wed, Mar 29, 2023 at 08:14:02PM +0300, Ville Syrjala wrote:
> diff --git a/drivers/gpu/drm/display/drm_scdc_helper.c b/drivers/gpu/drm/display/drm_scdc_helper.c
> index c3ad4ab2b456..2b124152384c 100644
> --- a/drivers/gpu/drm/display/drm_scdc_helper.c
> +++ b/drivers/gpu/drm/display/drm_scdc_helper.c
> @@ -26,6 +26,8 @@
>  #include <linux/delay.h>
>  
>  #include <drm/display/drm_scdc_helper.h>
> +#include <drm/drm_connector.h>
> +#include <drm/drm_device.h>
>  #include <drm/drm_print.h>
>  
>  /**
> @@ -140,6 +142,7 @@ EXPORT_SYMBOL(drm_scdc_write);
>  
>  /**
>   * drm_scdc_get_scrambling_status - what is status of scrambling?
> + * @connector: connector
>   * @adapter: I2C adapter for DDC channel
>   *
>   * Reads the scrambler status over SCDC, and checks the
> @@ -148,14 +151,17 @@ EXPORT_SYMBOL(drm_scdc_write);
>   * Returns:
>   * True if the scrambling is enabled, false otherwise.
>   */
> -bool drm_scdc_get_scrambling_status(struct i2c_adapter *adapter)
> +bool drm_scdc_get_scrambling_status(struct drm_connector *connector,
> +				    struct i2c_adapter *adapter)

Is there any driver where adapter isn't equal to connector->ddc?

If not, there's no reason to pass both

Maxime

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/scdc-helper: Pimp SCDC debugs
  2023-03-30  8:44 ` [Intel-gfx] [PATCH] " Maxime Ripard
@ 2023-03-30 11:45   ` Ville Syrjälä
  0 siblings, 0 replies; 11+ messages in thread
From: Ville Syrjälä @ 2023-03-30 11:45 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: Neil Armstrong, Jernej Skrabec, Robert Foss, Emma Anholt,
	Jonas Karlman, intel-gfx, dri-devel, Laurent Pinchart,
	Andrzej Hajda, linux-tegra

On Thu, Mar 30, 2023 at 10:44:04AM +0200, Maxime Ripard wrote:
> Hi,
> 
> On Wed, Mar 29, 2023 at 08:14:02PM +0300, Ville Syrjala wrote:
> > diff --git a/drivers/gpu/drm/display/drm_scdc_helper.c b/drivers/gpu/drm/display/drm_scdc_helper.c
> > index c3ad4ab2b456..2b124152384c 100644
> > --- a/drivers/gpu/drm/display/drm_scdc_helper.c
> > +++ b/drivers/gpu/drm/display/drm_scdc_helper.c
> > @@ -26,6 +26,8 @@
> >  #include <linux/delay.h>
> >  
> >  #include <drm/display/drm_scdc_helper.h>
> > +#include <drm/drm_connector.h>
> > +#include <drm/drm_device.h>
> >  #include <drm/drm_print.h>
> >  
> >  /**
> > @@ -140,6 +142,7 @@ EXPORT_SYMBOL(drm_scdc_write);
> >  
> >  /**
> >   * drm_scdc_get_scrambling_status - what is status of scrambling?
> > + * @connector: connector
> >   * @adapter: I2C adapter for DDC channel
> >   *
> >   * Reads the scrambler status over SCDC, and checks the
> > @@ -148,14 +151,17 @@ EXPORT_SYMBOL(drm_scdc_write);
> >   * Returns:
> >   * True if the scrambling is enabled, false otherwise.
> >   */
> > -bool drm_scdc_get_scrambling_status(struct i2c_adapter *adapter)
> > +bool drm_scdc_get_scrambling_status(struct drm_connector *connector,
> > +				    struct i2c_adapter *adapter)
> 
> Is there any driver where adapter isn't equal to connector->ddc?

I figured most of them since they all maintain their own ddc
pointer elsewhere. But looks like the drivers using the scdc
helper might all be setting connector->ddc for their HDMI
connectors despite that.

Even i915 does that apparently. My recollection was otherwise
since I have a branch waiting somewhere that changes the whole
driver to use connector->ddc.

I guess someone took a bunch of shortcuts to get connector->ddc
populated but then didn't finish the job by clearing out the
old pointers.

> 
> If not, there's no reason to pass both

Yeah, that did cross my mind. But left it out with in
the belief that it can't be done yet.

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Intel-gfx] [PATCH v2] drm/scdc-helper: Pimp SCDC debugs
  2023-03-29 17:14 [Intel-gfx] [PATCH] drm/scdc-helper: Pimp SCDC debugs Ville Syrjala
  2023-03-29 21:13 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for " Patchwork
  2023-03-30  8:44 ` [Intel-gfx] [PATCH] " Maxime Ripard
@ 2023-04-03 22:36 ` Ville Syrjala
  2023-04-04  2:21   ` Laurent Pinchart
                     ` (3 more replies)
  2023-04-04  0:28 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/scdc-helper: Pimp SCDC debugs (rev2) Patchwork
  2023-04-04  9:17 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
  4 siblings, 4 replies; 11+ messages in thread
From: Ville Syrjala @ 2023-04-03 22:36 UTC (permalink / raw)
  To: dri-devel
  Cc: Maxime Ripard, Neil Armstrong, Robert Foss, Emma Anholt,
	Jonas Karlman, intel-gfx, Jernej Skrabec, Laurent Pinchart,
	Andrzej Hajda, linux-tegra

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Include the device and connector information in the SCDC
debugs. Makes it easier to figure out who did what.

v2: Rely on connector->ddc (Maxime)

Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Cc: Robert Foss <rfoss@kernel.org>
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: Jonas Karlman <jonas@kwiboo.se>
Cc: Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Emma Anholt <emma@anholt.net>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: intel-gfx@lists.freedesktop.org
Cc: linux-tegra@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c |  8 ++--
 drivers/gpu/drm/display/drm_scdc_helper.c | 46 +++++++++++++++--------
 drivers/gpu/drm/i915/display/intel_ddi.c  |  4 +-
 drivers/gpu/drm/i915/display/intel_hdmi.c |  8 +---
 drivers/gpu/drm/tegra/sor.c               | 15 +++-----
 drivers/gpu/drm/vc4/vc4_hdmi.c            | 21 ++++++-----
 include/drm/display/drm_scdc_helper.h     |  7 ++--
 7 files changed, 59 insertions(+), 50 deletions(-)

diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index aa51c61a78c7..603bb3c51027 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -1426,9 +1426,9 @@ void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi,
 	/* Control for TMDS Bit Period/TMDS Clock-Period Ratio */
 	if (dw_hdmi_support_scdc(hdmi, display)) {
 		if (mtmdsclock > HDMI14_MAX_TMDSCLK)
-			drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 1);
+			drm_scdc_set_high_tmds_clock_ratio(&hdmi->connector, 1);
 		else
-			drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 0);
+			drm_scdc_set_high_tmds_clock_ratio(&hdmi->connector, 0);
 	}
 }
 EXPORT_SYMBOL_GPL(dw_hdmi_set_high_tmds_clock_ratio);
@@ -2116,7 +2116,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
 				min_t(u8, bytes, SCDC_MIN_SOURCE_VERSION));
 
 			/* Enabled Scrambling in the Sink */
-			drm_scdc_set_scrambling(hdmi->ddc, 1);
+			drm_scdc_set_scrambling(&hdmi->connector, 1);
 
 			/*
 			 * To activate the scrambler feature, you must ensure
@@ -2132,7 +2132,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
 			hdmi_writeb(hdmi, 0, HDMI_FC_SCRAMBLER_CTRL);
 			hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ,
 				    HDMI_MC_SWRSTZ);
-			drm_scdc_set_scrambling(hdmi->ddc, 0);
+			drm_scdc_set_scrambling(&hdmi->connector, 0);
 		}
 	}
 
diff --git a/drivers/gpu/drm/display/drm_scdc_helper.c b/drivers/gpu/drm/display/drm_scdc_helper.c
index c3ad4ab2b456..6d2f244e5830 100644
--- a/drivers/gpu/drm/display/drm_scdc_helper.c
+++ b/drivers/gpu/drm/display/drm_scdc_helper.c
@@ -26,6 +26,8 @@
 #include <linux/delay.h>
 
 #include <drm/display/drm_scdc_helper.h>
+#include <drm/drm_connector.h>
+#include <drm/drm_device.h>
 #include <drm/drm_print.h>
 
 /**
@@ -140,7 +142,7 @@ EXPORT_SYMBOL(drm_scdc_write);
 
 /**
  * drm_scdc_get_scrambling_status - what is status of scrambling?
- * @adapter: I2C adapter for DDC channel
+ * @connector: connector
  *
  * Reads the scrambler status over SCDC, and checks the
  * scrambling status.
@@ -148,14 +150,16 @@ EXPORT_SYMBOL(drm_scdc_write);
  * Returns:
  * True if the scrambling is enabled, false otherwise.
  */
-bool drm_scdc_get_scrambling_status(struct i2c_adapter *adapter)
+bool drm_scdc_get_scrambling_status(struct drm_connector *connector)
 {
 	u8 status;
 	int ret;
 
-	ret = drm_scdc_readb(adapter, SCDC_SCRAMBLER_STATUS, &status);
+	ret = drm_scdc_readb(connector->ddc, SCDC_SCRAMBLER_STATUS, &status);
 	if (ret < 0) {
-		DRM_DEBUG_KMS("Failed to read scrambling status: %d\n", ret);
+		drm_dbg_kms(connector->dev,
+			    "[CONNECTOR:%d:%s] Failed to read scrambling status: %d\n",
+			    connector->base.id, connector->name, ret);
 		return false;
 	}
 
@@ -165,7 +169,7 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status);
 
 /**
  * drm_scdc_set_scrambling - enable scrambling
- * @adapter: I2C adapter for DDC channel
+ * @connector: connector
  * @enable: bool to indicate if scrambling is to be enabled/disabled
  *
  * Writes the TMDS config register over SCDC channel, and:
@@ -175,14 +179,17 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status);
  * Returns:
  * True if scrambling is set/reset successfully, false otherwise.
  */
-bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable)
+bool drm_scdc_set_scrambling(struct drm_connector *connector,
+			     bool enable)
 {
 	u8 config;
 	int ret;
 
-	ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, &config);
+	ret = drm_scdc_readb(connector->ddc, SCDC_TMDS_CONFIG, &config);
 	if (ret < 0) {
-		DRM_DEBUG_KMS("Failed to read TMDS config: %d\n", ret);
+		drm_dbg_kms(connector->dev,
+			    "[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
+			    connector->base.id, connector->name, ret);
 		return false;
 	}
 
@@ -191,9 +198,11 @@ bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable)
 	else
 		config &= ~SCDC_SCRAMBLING_ENABLE;
 
-	ret = drm_scdc_writeb(adapter, SCDC_TMDS_CONFIG, config);
+	ret = drm_scdc_writeb(connector->ddc, SCDC_TMDS_CONFIG, config);
 	if (ret < 0) {
-		DRM_DEBUG_KMS("Failed to enable scrambling: %d\n", ret);
+		drm_dbg_kms(connector->dev,
+			    "[CONNECTOR:%d:%s] Failed to enable scrambling: %d\n",
+			    connector->base.id, connector->name, ret);
 		return false;
 	}
 
@@ -203,7 +212,7 @@ EXPORT_SYMBOL(drm_scdc_set_scrambling);
 
 /**
  * drm_scdc_set_high_tmds_clock_ratio - set TMDS clock ratio
- * @adapter: I2C adapter for DDC channel
+ * @connector: connector
  * @set: ret or reset the high clock ratio
  *
  *
@@ -230,14 +239,17 @@ EXPORT_SYMBOL(drm_scdc_set_scrambling);
  * Returns:
  * True if write is successful, false otherwise.
  */
-bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set)
+bool drm_scdc_set_high_tmds_clock_ratio(struct drm_connector *connector,
+					bool set)
 {
 	u8 config;
 	int ret;
 
-	ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, &config);
+	ret = drm_scdc_readb(connector->ddc, SCDC_TMDS_CONFIG, &config);
 	if (ret < 0) {
-		DRM_DEBUG_KMS("Failed to read TMDS config: %d\n", ret);
+		drm_dbg_kms(connector->dev,
+			    "[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
+			    connector->base.id, connector->name, ret);
 		return false;
 	}
 
@@ -246,9 +258,11 @@ bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set)
 	else
 		config &= ~SCDC_TMDS_BIT_CLOCK_RATIO_BY_40;
 
-	ret = drm_scdc_writeb(adapter, SCDC_TMDS_CONFIG, config);
+	ret = drm_scdc_writeb(connector->ddc, SCDC_TMDS_CONFIG, config);
 	if (ret < 0) {
-		DRM_DEBUG_KMS("Failed to set TMDS clock ratio: %d\n", ret);
+		drm_dbg_kms(connector->dev,
+			    "[CONNECTOR:%d:%s] Failed to set TMDS clock ratio: %d\n",
+			    connector->base.id, connector->name, ret);
 		return false;
 	}
 
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index dc294717bcdf..d0bb3a52ae5c 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3974,8 +3974,8 @@ static int intel_hdmi_reset_link(struct intel_encoder *encoder,
 
 	ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, &config);
 	if (ret < 0) {
-		drm_err(&dev_priv->drm, "Failed to read TMDS config: %d\n",
-			ret);
+		drm_err(&dev_priv->drm, "[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
+			connector->base.base.id, connector->base.name, ret);
 		return 0;
 	}
 
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index c7e9e1fbed37..a690a5616506 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -2646,11 +2646,8 @@ bool intel_hdmi_handle_sink_scrambling(struct intel_encoder *encoder,
 				       bool scrambling)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	struct drm_scrambling *sink_scrambling =
 		&connector->display_info.hdmi.scdc.scrambling;
-	struct i2c_adapter *adapter =
-		intel_gmbus_get_adapter(dev_priv, intel_hdmi->ddc_bus);
 
 	if (!sink_scrambling->supported)
 		return true;
@@ -2661,9 +2658,8 @@ bool intel_hdmi_handle_sink_scrambling(struct intel_encoder *encoder,
 		    str_yes_no(scrambling), high_tmds_clock_ratio ? 40 : 10);
 
 	/* Set TMDS bit clock ratio to 1/40 or 1/10, and enable/disable scrambling */
-	return drm_scdc_set_high_tmds_clock_ratio(adapter,
-						  high_tmds_clock_ratio) &&
-		drm_scdc_set_scrambling(adapter, scrambling);
+	return drm_scdc_set_high_tmds_clock_ratio(connector, high_tmds_clock_ratio) &&
+		drm_scdc_set_scrambling(connector, scrambling);
 }
 
 static u8 chv_port_to_ddc_pin(struct drm_i915_private *dev_priv, enum port port)
diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index 8af632740673..34af6724914f 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -2140,10 +2140,8 @@ static void tegra_sor_hdmi_disable_scrambling(struct tegra_sor *sor)
 
 static void tegra_sor_hdmi_scdc_disable(struct tegra_sor *sor)
 {
-	struct i2c_adapter *ddc = sor->output.ddc;
-
-	drm_scdc_set_high_tmds_clock_ratio(ddc, false);
-	drm_scdc_set_scrambling(ddc, false);
+	drm_scdc_set_high_tmds_clock_ratio(&sor->output.connector, false);
+	drm_scdc_set_scrambling(&sor->output.connector, false);
 
 	tegra_sor_hdmi_disable_scrambling(sor);
 }
@@ -2168,10 +2166,8 @@ static void tegra_sor_hdmi_enable_scrambling(struct tegra_sor *sor)
 
 static void tegra_sor_hdmi_scdc_enable(struct tegra_sor *sor)
 {
-	struct i2c_adapter *ddc = sor->output.ddc;
-
-	drm_scdc_set_high_tmds_clock_ratio(ddc, true);
-	drm_scdc_set_scrambling(ddc, true);
+	drm_scdc_set_high_tmds_clock_ratio(&sor->output.connector, true);
+	drm_scdc_set_scrambling(&sor->output.connector, true);
 
 	tegra_sor_hdmi_enable_scrambling(sor);
 }
@@ -2179,9 +2175,8 @@ static void tegra_sor_hdmi_scdc_enable(struct tegra_sor *sor)
 static void tegra_sor_hdmi_scdc_work(struct work_struct *work)
 {
 	struct tegra_sor *sor = container_of(work, struct tegra_sor, scdc.work);
-	struct i2c_adapter *ddc = sor->output.ddc;
 
-	if (!drm_scdc_get_scrambling_status(ddc)) {
+	if (!drm_scdc_get_scrambling_status(&sor->output.connector)) {
 		DRM_DEBUG_KMS("SCDC not scrambled\n");
 		tegra_sor_hdmi_scdc_enable(sor);
 	}
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index 464c3cc8e6fb..06713d8b82b5 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -885,7 +885,8 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder)
 static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder)
 {
 	struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
-	struct drm_device *drm = vc4_hdmi->connector.dev;
+	struct drm_connector *connector = &vc4_hdmi->connector;
+	struct drm_device *drm = connector->dev;
 	const struct drm_display_mode *mode = &vc4_hdmi->saved_adjusted_mode;
 	unsigned long flags;
 	int idx;
@@ -903,8 +904,8 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder)
 	if (!drm_dev_enter(drm, &idx))
 		return;
 
-	drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true);
-	drm_scdc_set_scrambling(vc4_hdmi->ddc, true);
+	drm_scdc_set_high_tmds_clock_ratio(connector, true);
+	drm_scdc_set_scrambling(connector, true);
 
 	spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
 	HDMI_WRITE(HDMI_SCRAMBLER_CTL, HDMI_READ(HDMI_SCRAMBLER_CTL) |
@@ -922,7 +923,8 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder)
 static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder)
 {
 	struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
-	struct drm_device *drm = vc4_hdmi->connector.dev;
+	struct drm_connector *connector = &vc4_hdmi->connector;
+	struct drm_device *drm = connector->dev;
 	unsigned long flags;
 	int idx;
 
@@ -944,8 +946,8 @@ static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder)
 		   ~VC5_HDMI_SCRAMBLER_CTL_ENABLE);
 	spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags);
 
-	drm_scdc_set_scrambling(vc4_hdmi->ddc, false);
-	drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, false);
+	drm_scdc_set_scrambling(connector, false);
+	drm_scdc_set_high_tmds_clock_ratio(connector, false);
 
 	drm_dev_exit(idx);
 }
@@ -955,12 +957,13 @@ static void vc4_hdmi_scrambling_wq(struct work_struct *work)
 	struct vc4_hdmi *vc4_hdmi = container_of(to_delayed_work(work),
 						 struct vc4_hdmi,
 						 scrambling_work);
+	struct drm_connector *connector = &vc4_hdmi->connector;
 
-	if (drm_scdc_get_scrambling_status(vc4_hdmi->ddc))
+	if (drm_scdc_get_scrambling_status(connector))
 		return;
 
-	drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true);
-	drm_scdc_set_scrambling(vc4_hdmi->ddc, true);
+	drm_scdc_set_high_tmds_clock_ratio(connector, true);
+	drm_scdc_set_scrambling(connector, true);
 
 	queue_delayed_work(system_wq, &vc4_hdmi->scrambling_work,
 			   msecs_to_jiffies(SCRAMBLING_POLLING_DELAY_MS));
diff --git a/include/drm/display/drm_scdc_helper.h b/include/drm/display/drm_scdc_helper.h
index ded01fd948b4..34600476a1b9 100644
--- a/include/drm/display/drm_scdc_helper.h
+++ b/include/drm/display/drm_scdc_helper.h
@@ -28,6 +28,7 @@
 
 #include <drm/display/drm_scdc.h>
 
+struct drm_connector;
 struct i2c_adapter;
 
 ssize_t drm_scdc_read(struct i2c_adapter *adapter, u8 offset, void *buffer,
@@ -71,9 +72,9 @@ static inline int drm_scdc_writeb(struct i2c_adapter *adapter, u8 offset,
 	return drm_scdc_write(adapter, offset, &value, sizeof(value));
 }
 
-bool drm_scdc_get_scrambling_status(struct i2c_adapter *adapter);
+bool drm_scdc_get_scrambling_status(struct drm_connector *connector);
 
-bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable);
-bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set);
+bool drm_scdc_set_scrambling(struct drm_connector *connector, bool enable);
+bool drm_scdc_set_high_tmds_clock_ratio(struct drm_connector *connector, bool set);
 
 #endif
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/scdc-helper: Pimp SCDC debugs (rev2)
  2023-03-29 17:14 [Intel-gfx] [PATCH] drm/scdc-helper: Pimp SCDC debugs Ville Syrjala
                   ` (2 preceding siblings ...)
  2023-04-03 22:36 ` [Intel-gfx] [PATCH v2] " Ville Syrjala
@ 2023-04-04  0:28 ` Patchwork
  2023-04-04  9:17 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
  4 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-04-04  0:28 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 4117 bytes --]

== Series Details ==

Series: drm/scdc-helper: Pimp SCDC debugs (rev2)
URL   : https://patchwork.freedesktop.org/series/115807/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12962 -> Patchwork_115807v2
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/index.html

Participating hosts (38 -> 36)
------------------------------

  Missing    (2): fi-kbl-soraka fi-snb-2520m 

Known issues
------------

  Here are the changes found in Patchwork_115807v2 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s3@smem:
    - bat-rpls-1:         NOTRUN -> [ABORT][1] ([i915#6687] / [i915#7978])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html

  * igt@i915_pm_rps@basic-api:
    - bat-dg2-11:         [PASS][2] -> [FAIL][3] ([i915#8308])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/bat-dg2-11/igt@i915_pm_rps@basic-api.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/bat-dg2-11/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live@reset:
    - bat-rpls-2:         [PASS][4] -> [ABORT][5] ([i915#4983] / [i915#7913] / [i915#7981])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/bat-rpls-2/igt@i915_selftest@live@reset.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/bat-rpls-2/igt@i915_selftest@live@reset.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1:
    - bat-dg2-8:          [PASS][6] -> [FAIL][7] ([i915#7932]) +1 similar issue
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1.html

  * igt@kms_pipe_crc_basic@read-crc:
    - bat-dg2-11:         NOTRUN -> [SKIP][8] ([i915#5354])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/bat-dg2-11/igt@kms_pipe_crc_basic@read-crc.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@gt_pm:
    - bat-rpls-2:         [DMESG-FAIL][9] ([i915#4258]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/bat-rpls-2/igt@i915_selftest@live@gt_pm.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/bat-rpls-2/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@reset:
    - bat-rpls-1:         [ABORT][11] ([i915#4983]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/bat-rpls-1/igt@i915_selftest@live@reset.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/bat-rpls-1/igt@i915_selftest@live@reset.html

  
  [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
  [i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978
  [i915#7981]: https://gitlab.freedesktop.org/drm/intel/issues/7981
  [i915#8308]: https://gitlab.freedesktop.org/drm/intel/issues/8308


Build changes
-------------

  * Linux: CI_DRM_12962 -> Patchwork_115807v2

  CI-20190529: 20190529
  CI_DRM_12962: f8d28584fac01e6f5ab9de716fc0aadd8cf63464 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7233: 716520b469a2745e1882780f2aabbc88eb19332c @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_115807v2: f8d28584fac01e6f5ab9de716fc0aadd8cf63464 @ git://anongit.freedesktop.org/gfx-ci/linux


### Linux commits

1d92ebe35c9b drm/scdc-helper: Pimp SCDC debugs

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/index.html

[-- Attachment #2: Type: text/html, Size: 4952 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Intel-gfx] [PATCH v2] drm/scdc-helper: Pimp SCDC debugs
  2023-04-03 22:36 ` [Intel-gfx] [PATCH v2] " Ville Syrjala
@ 2023-04-04  2:21   ` Laurent Pinchart
  2023-04-04  8:06   ` Maxime Ripard
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 11+ messages in thread
From: Laurent Pinchart @ 2023-04-04  2:21 UTC (permalink / raw)
  To: Ville Syrjala
  Cc: Maxime Ripard, Neil Armstrong, Robert Foss, Emma Anholt,
	Jonas Karlman, intel-gfx, Jernej Skrabec, dri-devel,
	Andrzej Hajda, linux-tegra

Hi Ville,

Thank you for the patch.

On Tue, Apr 04, 2023 at 01:36:52AM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Include the device and connector information in the SCDC
> debugs. Makes it easier to figure out who did what.
> 
> v2: Rely on connector->ddc (Maxime)
> 
> Cc: Andrzej Hajda <andrzej.hajda@intel.com>
> Cc: Neil Armstrong <neil.armstrong@linaro.org>
> Cc: Robert Foss <rfoss@kernel.org>
> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
> Cc: Jonas Karlman <jonas@kwiboo.se>
> Cc: Jernej Skrabec <jernej.skrabec@gmail.com>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Emma Anholt <emma@anholt.net>
> Cc: Maxime Ripard <mripard@kernel.org>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: linux-tegra@vger.kernel.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

> ---
>  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c |  8 ++--
>  drivers/gpu/drm/display/drm_scdc_helper.c | 46 +++++++++++++++--------
>  drivers/gpu/drm/i915/display/intel_ddi.c  |  4 +-
>  drivers/gpu/drm/i915/display/intel_hdmi.c |  8 +---
>  drivers/gpu/drm/tegra/sor.c               | 15 +++-----
>  drivers/gpu/drm/vc4/vc4_hdmi.c            | 21 ++++++-----
>  include/drm/display/drm_scdc_helper.h     |  7 ++--
>  7 files changed, 59 insertions(+), 50 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> index aa51c61a78c7..603bb3c51027 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> @@ -1426,9 +1426,9 @@ void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi,
>  	/* Control for TMDS Bit Period/TMDS Clock-Period Ratio */
>  	if (dw_hdmi_support_scdc(hdmi, display)) {
>  		if (mtmdsclock > HDMI14_MAX_TMDSCLK)
> -			drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 1);
> +			drm_scdc_set_high_tmds_clock_ratio(&hdmi->connector, 1);
>  		else
> -			drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 0);
> +			drm_scdc_set_high_tmds_clock_ratio(&hdmi->connector, 0);
>  	}
>  }
>  EXPORT_SYMBOL_GPL(dw_hdmi_set_high_tmds_clock_ratio);
> @@ -2116,7 +2116,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
>  				min_t(u8, bytes, SCDC_MIN_SOURCE_VERSION));
>  
>  			/* Enabled Scrambling in the Sink */
> -			drm_scdc_set_scrambling(hdmi->ddc, 1);
> +			drm_scdc_set_scrambling(&hdmi->connector, 1);
>  
>  			/*
>  			 * To activate the scrambler feature, you must ensure
> @@ -2132,7 +2132,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
>  			hdmi_writeb(hdmi, 0, HDMI_FC_SCRAMBLER_CTRL);
>  			hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ,
>  				    HDMI_MC_SWRSTZ);
> -			drm_scdc_set_scrambling(hdmi->ddc, 0);
> +			drm_scdc_set_scrambling(&hdmi->connector, 0);
>  		}
>  	}
>  
> diff --git a/drivers/gpu/drm/display/drm_scdc_helper.c b/drivers/gpu/drm/display/drm_scdc_helper.c
> index c3ad4ab2b456..6d2f244e5830 100644
> --- a/drivers/gpu/drm/display/drm_scdc_helper.c
> +++ b/drivers/gpu/drm/display/drm_scdc_helper.c
> @@ -26,6 +26,8 @@
>  #include <linux/delay.h>
>  
>  #include <drm/display/drm_scdc_helper.h>
> +#include <drm/drm_connector.h>
> +#include <drm/drm_device.h>
>  #include <drm/drm_print.h>
>  
>  /**
> @@ -140,7 +142,7 @@ EXPORT_SYMBOL(drm_scdc_write);
>  
>  /**
>   * drm_scdc_get_scrambling_status - what is status of scrambling?
> - * @adapter: I2C adapter for DDC channel
> + * @connector: connector
>   *
>   * Reads the scrambler status over SCDC, and checks the
>   * scrambling status.
> @@ -148,14 +150,16 @@ EXPORT_SYMBOL(drm_scdc_write);
>   * Returns:
>   * True if the scrambling is enabled, false otherwise.
>   */
> -bool drm_scdc_get_scrambling_status(struct i2c_adapter *adapter)
> +bool drm_scdc_get_scrambling_status(struct drm_connector *connector)
>  {
>  	u8 status;
>  	int ret;
>  
> -	ret = drm_scdc_readb(adapter, SCDC_SCRAMBLER_STATUS, &status);
> +	ret = drm_scdc_readb(connector->ddc, SCDC_SCRAMBLER_STATUS, &status);
>  	if (ret < 0) {
> -		DRM_DEBUG_KMS("Failed to read scrambling status: %d\n", ret);
> +		drm_dbg_kms(connector->dev,
> +			    "[CONNECTOR:%d:%s] Failed to read scrambling status: %d\n",
> +			    connector->base.id, connector->name, ret);
>  		return false;
>  	}
>  
> @@ -165,7 +169,7 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status);
>  
>  /**
>   * drm_scdc_set_scrambling - enable scrambling
> - * @adapter: I2C adapter for DDC channel
> + * @connector: connector
>   * @enable: bool to indicate if scrambling is to be enabled/disabled
>   *
>   * Writes the TMDS config register over SCDC channel, and:
> @@ -175,14 +179,17 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status);
>   * Returns:
>   * True if scrambling is set/reset successfully, false otherwise.
>   */
> -bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable)
> +bool drm_scdc_set_scrambling(struct drm_connector *connector,
> +			     bool enable)
>  {
>  	u8 config;
>  	int ret;
>  
> -	ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, &config);
> +	ret = drm_scdc_readb(connector->ddc, SCDC_TMDS_CONFIG, &config);
>  	if (ret < 0) {
> -		DRM_DEBUG_KMS("Failed to read TMDS config: %d\n", ret);
> +		drm_dbg_kms(connector->dev,
> +			    "[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
> +			    connector->base.id, connector->name, ret);
>  		return false;
>  	}
>  
> @@ -191,9 +198,11 @@ bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable)
>  	else
>  		config &= ~SCDC_SCRAMBLING_ENABLE;
>  
> -	ret = drm_scdc_writeb(adapter, SCDC_TMDS_CONFIG, config);
> +	ret = drm_scdc_writeb(connector->ddc, SCDC_TMDS_CONFIG, config);
>  	if (ret < 0) {
> -		DRM_DEBUG_KMS("Failed to enable scrambling: %d\n", ret);
> +		drm_dbg_kms(connector->dev,
> +			    "[CONNECTOR:%d:%s] Failed to enable scrambling: %d\n",
> +			    connector->base.id, connector->name, ret);
>  		return false;
>  	}
>  
> @@ -203,7 +212,7 @@ EXPORT_SYMBOL(drm_scdc_set_scrambling);
>  
>  /**
>   * drm_scdc_set_high_tmds_clock_ratio - set TMDS clock ratio
> - * @adapter: I2C adapter for DDC channel
> + * @connector: connector
>   * @set: ret or reset the high clock ratio
>   *
>   *
> @@ -230,14 +239,17 @@ EXPORT_SYMBOL(drm_scdc_set_scrambling);
>   * Returns:
>   * True if write is successful, false otherwise.
>   */
> -bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set)
> +bool drm_scdc_set_high_tmds_clock_ratio(struct drm_connector *connector,
> +					bool set)
>  {
>  	u8 config;
>  	int ret;
>  
> -	ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, &config);
> +	ret = drm_scdc_readb(connector->ddc, SCDC_TMDS_CONFIG, &config);
>  	if (ret < 0) {
> -		DRM_DEBUG_KMS("Failed to read TMDS config: %d\n", ret);
> +		drm_dbg_kms(connector->dev,
> +			    "[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
> +			    connector->base.id, connector->name, ret);
>  		return false;
>  	}
>  
> @@ -246,9 +258,11 @@ bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set)
>  	else
>  		config &= ~SCDC_TMDS_BIT_CLOCK_RATIO_BY_40;
>  
> -	ret = drm_scdc_writeb(adapter, SCDC_TMDS_CONFIG, config);
> +	ret = drm_scdc_writeb(connector->ddc, SCDC_TMDS_CONFIG, config);
>  	if (ret < 0) {
> -		DRM_DEBUG_KMS("Failed to set TMDS clock ratio: %d\n", ret);
> +		drm_dbg_kms(connector->dev,
> +			    "[CONNECTOR:%d:%s] Failed to set TMDS clock ratio: %d\n",
> +			    connector->base.id, connector->name, ret);
>  		return false;
>  	}
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index dc294717bcdf..d0bb3a52ae5c 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -3974,8 +3974,8 @@ static int intel_hdmi_reset_link(struct intel_encoder *encoder,
>  
>  	ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, &config);
>  	if (ret < 0) {
> -		drm_err(&dev_priv->drm, "Failed to read TMDS config: %d\n",
> -			ret);
> +		drm_err(&dev_priv->drm, "[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
> +			connector->base.base.id, connector->base.name, ret);
>  		return 0;
>  	}
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index c7e9e1fbed37..a690a5616506 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -2646,11 +2646,8 @@ bool intel_hdmi_handle_sink_scrambling(struct intel_encoder *encoder,
>  				       bool scrambling)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>  	struct drm_scrambling *sink_scrambling =
>  		&connector->display_info.hdmi.scdc.scrambling;
> -	struct i2c_adapter *adapter =
> -		intel_gmbus_get_adapter(dev_priv, intel_hdmi->ddc_bus);
>  
>  	if (!sink_scrambling->supported)
>  		return true;
> @@ -2661,9 +2658,8 @@ bool intel_hdmi_handle_sink_scrambling(struct intel_encoder *encoder,
>  		    str_yes_no(scrambling), high_tmds_clock_ratio ? 40 : 10);
>  
>  	/* Set TMDS bit clock ratio to 1/40 or 1/10, and enable/disable scrambling */
> -	return drm_scdc_set_high_tmds_clock_ratio(adapter,
> -						  high_tmds_clock_ratio) &&
> -		drm_scdc_set_scrambling(adapter, scrambling);
> +	return drm_scdc_set_high_tmds_clock_ratio(connector, high_tmds_clock_ratio) &&
> +		drm_scdc_set_scrambling(connector, scrambling);
>  }
>  
>  static u8 chv_port_to_ddc_pin(struct drm_i915_private *dev_priv, enum port port)
> diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
> index 8af632740673..34af6724914f 100644
> --- a/drivers/gpu/drm/tegra/sor.c
> +++ b/drivers/gpu/drm/tegra/sor.c
> @@ -2140,10 +2140,8 @@ static void tegra_sor_hdmi_disable_scrambling(struct tegra_sor *sor)
>  
>  static void tegra_sor_hdmi_scdc_disable(struct tegra_sor *sor)
>  {
> -	struct i2c_adapter *ddc = sor->output.ddc;
> -
> -	drm_scdc_set_high_tmds_clock_ratio(ddc, false);
> -	drm_scdc_set_scrambling(ddc, false);
> +	drm_scdc_set_high_tmds_clock_ratio(&sor->output.connector, false);
> +	drm_scdc_set_scrambling(&sor->output.connector, false);
>  
>  	tegra_sor_hdmi_disable_scrambling(sor);
>  }
> @@ -2168,10 +2166,8 @@ static void tegra_sor_hdmi_enable_scrambling(struct tegra_sor *sor)
>  
>  static void tegra_sor_hdmi_scdc_enable(struct tegra_sor *sor)
>  {
> -	struct i2c_adapter *ddc = sor->output.ddc;
> -
> -	drm_scdc_set_high_tmds_clock_ratio(ddc, true);
> -	drm_scdc_set_scrambling(ddc, true);
> +	drm_scdc_set_high_tmds_clock_ratio(&sor->output.connector, true);
> +	drm_scdc_set_scrambling(&sor->output.connector, true);
>  
>  	tegra_sor_hdmi_enable_scrambling(sor);
>  }
> @@ -2179,9 +2175,8 @@ static void tegra_sor_hdmi_scdc_enable(struct tegra_sor *sor)
>  static void tegra_sor_hdmi_scdc_work(struct work_struct *work)
>  {
>  	struct tegra_sor *sor = container_of(work, struct tegra_sor, scdc.work);
> -	struct i2c_adapter *ddc = sor->output.ddc;
>  
> -	if (!drm_scdc_get_scrambling_status(ddc)) {
> +	if (!drm_scdc_get_scrambling_status(&sor->output.connector)) {
>  		DRM_DEBUG_KMS("SCDC not scrambled\n");
>  		tegra_sor_hdmi_scdc_enable(sor);
>  	}
> diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
> index 464c3cc8e6fb..06713d8b82b5 100644
> --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
> +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
> @@ -885,7 +885,8 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder)
>  static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder)
>  {
>  	struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
> -	struct drm_device *drm = vc4_hdmi->connector.dev;
> +	struct drm_connector *connector = &vc4_hdmi->connector;
> +	struct drm_device *drm = connector->dev;
>  	const struct drm_display_mode *mode = &vc4_hdmi->saved_adjusted_mode;
>  	unsigned long flags;
>  	int idx;
> @@ -903,8 +904,8 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder)
>  	if (!drm_dev_enter(drm, &idx))
>  		return;
>  
> -	drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true);
> -	drm_scdc_set_scrambling(vc4_hdmi->ddc, true);
> +	drm_scdc_set_high_tmds_clock_ratio(connector, true);
> +	drm_scdc_set_scrambling(connector, true);
>  
>  	spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
>  	HDMI_WRITE(HDMI_SCRAMBLER_CTL, HDMI_READ(HDMI_SCRAMBLER_CTL) |
> @@ -922,7 +923,8 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder)
>  static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder)
>  {
>  	struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
> -	struct drm_device *drm = vc4_hdmi->connector.dev;
> +	struct drm_connector *connector = &vc4_hdmi->connector;
> +	struct drm_device *drm = connector->dev;
>  	unsigned long flags;
>  	int idx;
>  
> @@ -944,8 +946,8 @@ static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder)
>  		   ~VC5_HDMI_SCRAMBLER_CTL_ENABLE);
>  	spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags);
>  
> -	drm_scdc_set_scrambling(vc4_hdmi->ddc, false);
> -	drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, false);
> +	drm_scdc_set_scrambling(connector, false);
> +	drm_scdc_set_high_tmds_clock_ratio(connector, false);
>  
>  	drm_dev_exit(idx);
>  }
> @@ -955,12 +957,13 @@ static void vc4_hdmi_scrambling_wq(struct work_struct *work)
>  	struct vc4_hdmi *vc4_hdmi = container_of(to_delayed_work(work),
>  						 struct vc4_hdmi,
>  						 scrambling_work);
> +	struct drm_connector *connector = &vc4_hdmi->connector;
>  
> -	if (drm_scdc_get_scrambling_status(vc4_hdmi->ddc))
> +	if (drm_scdc_get_scrambling_status(connector))
>  		return;
>  
> -	drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true);
> -	drm_scdc_set_scrambling(vc4_hdmi->ddc, true);
> +	drm_scdc_set_high_tmds_clock_ratio(connector, true);
> +	drm_scdc_set_scrambling(connector, true);
>  
>  	queue_delayed_work(system_wq, &vc4_hdmi->scrambling_work,
>  			   msecs_to_jiffies(SCRAMBLING_POLLING_DELAY_MS));
> diff --git a/include/drm/display/drm_scdc_helper.h b/include/drm/display/drm_scdc_helper.h
> index ded01fd948b4..34600476a1b9 100644
> --- a/include/drm/display/drm_scdc_helper.h
> +++ b/include/drm/display/drm_scdc_helper.h
> @@ -28,6 +28,7 @@
>  
>  #include <drm/display/drm_scdc.h>
>  
> +struct drm_connector;
>  struct i2c_adapter;
>  
>  ssize_t drm_scdc_read(struct i2c_adapter *adapter, u8 offset, void *buffer,
> @@ -71,9 +72,9 @@ static inline int drm_scdc_writeb(struct i2c_adapter *adapter, u8 offset,
>  	return drm_scdc_write(adapter, offset, &value, sizeof(value));
>  }
>  
> -bool drm_scdc_get_scrambling_status(struct i2c_adapter *adapter);
> +bool drm_scdc_get_scrambling_status(struct drm_connector *connector);
>  
> -bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable);
> -bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set);
> +bool drm_scdc_set_scrambling(struct drm_connector *connector, bool enable);
> +bool drm_scdc_set_high_tmds_clock_ratio(struct drm_connector *connector, bool set);
>  
>  #endif

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Intel-gfx] [PATCH v2] drm/scdc-helper: Pimp SCDC debugs
  2023-04-03 22:36 ` [Intel-gfx] [PATCH v2] " Ville Syrjala
  2023-04-04  2:21   ` Laurent Pinchart
@ 2023-04-04  8:06   ` Maxime Ripard
  2023-04-04  8:13   ` Andrzej Hajda
  2023-04-04 11:28   ` Thierry Reding
  3 siblings, 0 replies; 11+ messages in thread
From: Maxime Ripard @ 2023-04-04  8:06 UTC (permalink / raw)
  To: Ville Syrjala
  Cc: Neil Armstrong, Jernej Skrabec, Robert Foss, Emma Anholt,
	Jonas Karlman, intel-gfx, dri-devel, Laurent Pinchart,
	Andrzej Hajda, linux-tegra

On Tue, Apr 04, 2023 at 01:36:52AM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Include the device and connector information in the SCDC
> debugs. Makes it easier to figure out who did what.
> 
> v2: Rely on connector->ddc (Maxime)
> 
> Cc: Andrzej Hajda <andrzej.hajda@intel.com>
> Cc: Neil Armstrong <neil.armstrong@linaro.org>
> Cc: Robert Foss <rfoss@kernel.org>
> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
> Cc: Jonas Karlman <jonas@kwiboo.se>
> Cc: Jernej Skrabec <jernej.skrabec@gmail.com>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Emma Anholt <emma@anholt.net>
> Cc: Maxime Ripard <mripard@kernel.org>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: linux-tegra@vger.kernel.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Acked-by: Maxime Ripard <maxime@cerno.tech>

Thanks!
Maxime

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Intel-gfx] [PATCH v2] drm/scdc-helper: Pimp SCDC debugs
  2023-04-03 22:36 ` [Intel-gfx] [PATCH v2] " Ville Syrjala
  2023-04-04  2:21   ` Laurent Pinchart
  2023-04-04  8:06   ` Maxime Ripard
@ 2023-04-04  8:13   ` Andrzej Hajda
  2023-04-04 11:28   ` Thierry Reding
  3 siblings, 0 replies; 11+ messages in thread
From: Andrzej Hajda @ 2023-04-04  8:13 UTC (permalink / raw)
  To: Ville Syrjala, dri-devel
  Cc: Maxime Ripard, Neil Armstrong, Robert Foss, Emma Anholt,
	Jonas Karlman, intel-gfx, Jernej Skrabec, Laurent Pinchart,
	linux-tegra



On 04.04.2023 00:36, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Include the device and connector information in the SCDC
> debugs. Makes it easier to figure out who did what.
>
> v2: Rely on connector->ddc (Maxime)
>
> Cc: Andrzej Hajda <andrzej.hajda@intel.com>
> Cc: Neil Armstrong <neil.armstrong@linaro.org>
> Cc: Robert Foss <rfoss@kernel.org>
> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
> Cc: Jonas Karlman <jonas@kwiboo.se>
> Cc: Jernej Skrabec <jernej.skrabec@gmail.com>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Emma Anholt <emma@anholt.net>
> Cc: Maxime Ripard <mripard@kernel.org>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: linux-tegra@vger.kernel.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>

Regards
Andrzej
> ---
>   drivers/gpu/drm/bridge/synopsys/dw-hdmi.c |  8 ++--
>   drivers/gpu/drm/display/drm_scdc_helper.c | 46 +++++++++++++++--------
>   drivers/gpu/drm/i915/display/intel_ddi.c  |  4 +-
>   drivers/gpu/drm/i915/display/intel_hdmi.c |  8 +---
>   drivers/gpu/drm/tegra/sor.c               | 15 +++-----
>   drivers/gpu/drm/vc4/vc4_hdmi.c            | 21 ++++++-----
>   include/drm/display/drm_scdc_helper.h     |  7 ++--
>   7 files changed, 59 insertions(+), 50 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> index aa51c61a78c7..603bb3c51027 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> @@ -1426,9 +1426,9 @@ void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi,
>   	/* Control for TMDS Bit Period/TMDS Clock-Period Ratio */
>   	if (dw_hdmi_support_scdc(hdmi, display)) {
>   		if (mtmdsclock > HDMI14_MAX_TMDSCLK)
> -			drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 1);
> +			drm_scdc_set_high_tmds_clock_ratio(&hdmi->connector, 1);
>   		else
> -			drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 0);
> +			drm_scdc_set_high_tmds_clock_ratio(&hdmi->connector, 0);
>   	}
>   }
>   EXPORT_SYMBOL_GPL(dw_hdmi_set_high_tmds_clock_ratio);
> @@ -2116,7 +2116,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
>   				min_t(u8, bytes, SCDC_MIN_SOURCE_VERSION));
>   
>   			/* Enabled Scrambling in the Sink */
> -			drm_scdc_set_scrambling(hdmi->ddc, 1);
> +			drm_scdc_set_scrambling(&hdmi->connector, 1);
>   
>   			/*
>   			 * To activate the scrambler feature, you must ensure
> @@ -2132,7 +2132,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
>   			hdmi_writeb(hdmi, 0, HDMI_FC_SCRAMBLER_CTRL);
>   			hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ,
>   				    HDMI_MC_SWRSTZ);
> -			drm_scdc_set_scrambling(hdmi->ddc, 0);
> +			drm_scdc_set_scrambling(&hdmi->connector, 0);
>   		}
>   	}
>   
> diff --git a/drivers/gpu/drm/display/drm_scdc_helper.c b/drivers/gpu/drm/display/drm_scdc_helper.c
> index c3ad4ab2b456..6d2f244e5830 100644
> --- a/drivers/gpu/drm/display/drm_scdc_helper.c
> +++ b/drivers/gpu/drm/display/drm_scdc_helper.c
> @@ -26,6 +26,8 @@
>   #include <linux/delay.h>
>   
>   #include <drm/display/drm_scdc_helper.h>
> +#include <drm/drm_connector.h>
> +#include <drm/drm_device.h>
>   #include <drm/drm_print.h>
>   
>   /**
> @@ -140,7 +142,7 @@ EXPORT_SYMBOL(drm_scdc_write);
>   
>   /**
>    * drm_scdc_get_scrambling_status - what is status of scrambling?
> - * @adapter: I2C adapter for DDC channel
> + * @connector: connector
>    *
>    * Reads the scrambler status over SCDC, and checks the
>    * scrambling status.
> @@ -148,14 +150,16 @@ EXPORT_SYMBOL(drm_scdc_write);
>    * Returns:
>    * True if the scrambling is enabled, false otherwise.
>    */
> -bool drm_scdc_get_scrambling_status(struct i2c_adapter *adapter)
> +bool drm_scdc_get_scrambling_status(struct drm_connector *connector)
>   {
>   	u8 status;
>   	int ret;
>   
> -	ret = drm_scdc_readb(adapter, SCDC_SCRAMBLER_STATUS, &status);
> +	ret = drm_scdc_readb(connector->ddc, SCDC_SCRAMBLER_STATUS, &status);
>   	if (ret < 0) {
> -		DRM_DEBUG_KMS("Failed to read scrambling status: %d\n", ret);
> +		drm_dbg_kms(connector->dev,
> +			    "[CONNECTOR:%d:%s] Failed to read scrambling status: %d\n",
> +			    connector->base.id, connector->name, ret);
>   		return false;
>   	}
>   
> @@ -165,7 +169,7 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status);
>   
>   /**
>    * drm_scdc_set_scrambling - enable scrambling
> - * @adapter: I2C adapter for DDC channel
> + * @connector: connector
>    * @enable: bool to indicate if scrambling is to be enabled/disabled
>    *
>    * Writes the TMDS config register over SCDC channel, and:
> @@ -175,14 +179,17 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status);
>    * Returns:
>    * True if scrambling is set/reset successfully, false otherwise.
>    */
> -bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable)
> +bool drm_scdc_set_scrambling(struct drm_connector *connector,
> +			     bool enable)
>   {
>   	u8 config;
>   	int ret;
>   
> -	ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, &config);
> +	ret = drm_scdc_readb(connector->ddc, SCDC_TMDS_CONFIG, &config);
>   	if (ret < 0) {
> -		DRM_DEBUG_KMS("Failed to read TMDS config: %d\n", ret);
> +		drm_dbg_kms(connector->dev,
> +			    "[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
> +			    connector->base.id, connector->name, ret);
>   		return false;
>   	}
>   
> @@ -191,9 +198,11 @@ bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable)
>   	else
>   		config &= ~SCDC_SCRAMBLING_ENABLE;
>   
> -	ret = drm_scdc_writeb(adapter, SCDC_TMDS_CONFIG, config);
> +	ret = drm_scdc_writeb(connector->ddc, SCDC_TMDS_CONFIG, config);
>   	if (ret < 0) {
> -		DRM_DEBUG_KMS("Failed to enable scrambling: %d\n", ret);
> +		drm_dbg_kms(connector->dev,
> +			    "[CONNECTOR:%d:%s] Failed to enable scrambling: %d\n",
> +			    connector->base.id, connector->name, ret);
>   		return false;
>   	}
>   
> @@ -203,7 +212,7 @@ EXPORT_SYMBOL(drm_scdc_set_scrambling);
>   
>   /**
>    * drm_scdc_set_high_tmds_clock_ratio - set TMDS clock ratio
> - * @adapter: I2C adapter for DDC channel
> + * @connector: connector
>    * @set: ret or reset the high clock ratio
>    *
>    *
> @@ -230,14 +239,17 @@ EXPORT_SYMBOL(drm_scdc_set_scrambling);
>    * Returns:
>    * True if write is successful, false otherwise.
>    */
> -bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set)
> +bool drm_scdc_set_high_tmds_clock_ratio(struct drm_connector *connector,
> +					bool set)
>   {
>   	u8 config;
>   	int ret;
>   
> -	ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, &config);
> +	ret = drm_scdc_readb(connector->ddc, SCDC_TMDS_CONFIG, &config);
>   	if (ret < 0) {
> -		DRM_DEBUG_KMS("Failed to read TMDS config: %d\n", ret);
> +		drm_dbg_kms(connector->dev,
> +			    "[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
> +			    connector->base.id, connector->name, ret);
>   		return false;
>   	}
>   
> @@ -246,9 +258,11 @@ bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set)
>   	else
>   		config &= ~SCDC_TMDS_BIT_CLOCK_RATIO_BY_40;
>   
> -	ret = drm_scdc_writeb(adapter, SCDC_TMDS_CONFIG, config);
> +	ret = drm_scdc_writeb(connector->ddc, SCDC_TMDS_CONFIG, config);
>   	if (ret < 0) {
> -		DRM_DEBUG_KMS("Failed to set TMDS clock ratio: %d\n", ret);
> +		drm_dbg_kms(connector->dev,
> +			    "[CONNECTOR:%d:%s] Failed to set TMDS clock ratio: %d\n",
> +			    connector->base.id, connector->name, ret);
>   		return false;
>   	}
>   
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index dc294717bcdf..d0bb3a52ae5c 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -3974,8 +3974,8 @@ static int intel_hdmi_reset_link(struct intel_encoder *encoder,
>   
>   	ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, &config);
>   	if (ret < 0) {
> -		drm_err(&dev_priv->drm, "Failed to read TMDS config: %d\n",
> -			ret);
> +		drm_err(&dev_priv->drm, "[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
> +			connector->base.base.id, connector->base.name, ret);
>   		return 0;
>   	}
>   
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index c7e9e1fbed37..a690a5616506 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -2646,11 +2646,8 @@ bool intel_hdmi_handle_sink_scrambling(struct intel_encoder *encoder,
>   				       bool scrambling)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	struct drm_scrambling *sink_scrambling =
>   		&connector->display_info.hdmi.scdc.scrambling;
> -	struct i2c_adapter *adapter =
> -		intel_gmbus_get_adapter(dev_priv, intel_hdmi->ddc_bus);
>   
>   	if (!sink_scrambling->supported)
>   		return true;
> @@ -2661,9 +2658,8 @@ bool intel_hdmi_handle_sink_scrambling(struct intel_encoder *encoder,
>   		    str_yes_no(scrambling), high_tmds_clock_ratio ? 40 : 10);
>   
>   	/* Set TMDS bit clock ratio to 1/40 or 1/10, and enable/disable scrambling */
> -	return drm_scdc_set_high_tmds_clock_ratio(adapter,
> -						  high_tmds_clock_ratio) &&
> -		drm_scdc_set_scrambling(adapter, scrambling);
> +	return drm_scdc_set_high_tmds_clock_ratio(connector, high_tmds_clock_ratio) &&
> +		drm_scdc_set_scrambling(connector, scrambling);
>   }
>   
>   static u8 chv_port_to_ddc_pin(struct drm_i915_private *dev_priv, enum port port)
> diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
> index 8af632740673..34af6724914f 100644
> --- a/drivers/gpu/drm/tegra/sor.c
> +++ b/drivers/gpu/drm/tegra/sor.c
> @@ -2140,10 +2140,8 @@ static void tegra_sor_hdmi_disable_scrambling(struct tegra_sor *sor)
>   
>   static void tegra_sor_hdmi_scdc_disable(struct tegra_sor *sor)
>   {
> -	struct i2c_adapter *ddc = sor->output.ddc;
> -
> -	drm_scdc_set_high_tmds_clock_ratio(ddc, false);
> -	drm_scdc_set_scrambling(ddc, false);
> +	drm_scdc_set_high_tmds_clock_ratio(&sor->output.connector, false);
> +	drm_scdc_set_scrambling(&sor->output.connector, false);
>   
>   	tegra_sor_hdmi_disable_scrambling(sor);
>   }
> @@ -2168,10 +2166,8 @@ static void tegra_sor_hdmi_enable_scrambling(struct tegra_sor *sor)
>   
>   static void tegra_sor_hdmi_scdc_enable(struct tegra_sor *sor)
>   {
> -	struct i2c_adapter *ddc = sor->output.ddc;
> -
> -	drm_scdc_set_high_tmds_clock_ratio(ddc, true);
> -	drm_scdc_set_scrambling(ddc, true);
> +	drm_scdc_set_high_tmds_clock_ratio(&sor->output.connector, true);
> +	drm_scdc_set_scrambling(&sor->output.connector, true);
>   
>   	tegra_sor_hdmi_enable_scrambling(sor);
>   }
> @@ -2179,9 +2175,8 @@ static void tegra_sor_hdmi_scdc_enable(struct tegra_sor *sor)
>   static void tegra_sor_hdmi_scdc_work(struct work_struct *work)
>   {
>   	struct tegra_sor *sor = container_of(work, struct tegra_sor, scdc.work);
> -	struct i2c_adapter *ddc = sor->output.ddc;
>   
> -	if (!drm_scdc_get_scrambling_status(ddc)) {
> +	if (!drm_scdc_get_scrambling_status(&sor->output.connector)) {
>   		DRM_DEBUG_KMS("SCDC not scrambled\n");
>   		tegra_sor_hdmi_scdc_enable(sor);
>   	}
> diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
> index 464c3cc8e6fb..06713d8b82b5 100644
> --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
> +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
> @@ -885,7 +885,8 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder)
>   static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder)
>   {
>   	struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
> -	struct drm_device *drm = vc4_hdmi->connector.dev;
> +	struct drm_connector *connector = &vc4_hdmi->connector;
> +	struct drm_device *drm = connector->dev;
>   	const struct drm_display_mode *mode = &vc4_hdmi->saved_adjusted_mode;
>   	unsigned long flags;
>   	int idx;
> @@ -903,8 +904,8 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder)
>   	if (!drm_dev_enter(drm, &idx))
>   		return;
>   
> -	drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true);
> -	drm_scdc_set_scrambling(vc4_hdmi->ddc, true);
> +	drm_scdc_set_high_tmds_clock_ratio(connector, true);
> +	drm_scdc_set_scrambling(connector, true);
>   
>   	spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
>   	HDMI_WRITE(HDMI_SCRAMBLER_CTL, HDMI_READ(HDMI_SCRAMBLER_CTL) |
> @@ -922,7 +923,8 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder)
>   static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder)
>   {
>   	struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
> -	struct drm_device *drm = vc4_hdmi->connector.dev;
> +	struct drm_connector *connector = &vc4_hdmi->connector;
> +	struct drm_device *drm = connector->dev;
>   	unsigned long flags;
>   	int idx;
>   
> @@ -944,8 +946,8 @@ static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder)
>   		   ~VC5_HDMI_SCRAMBLER_CTL_ENABLE);
>   	spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags);
>   
> -	drm_scdc_set_scrambling(vc4_hdmi->ddc, false);
> -	drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, false);
> +	drm_scdc_set_scrambling(connector, false);
> +	drm_scdc_set_high_tmds_clock_ratio(connector, false);
>   
>   	drm_dev_exit(idx);
>   }
> @@ -955,12 +957,13 @@ static void vc4_hdmi_scrambling_wq(struct work_struct *work)
>   	struct vc4_hdmi *vc4_hdmi = container_of(to_delayed_work(work),
>   						 struct vc4_hdmi,
>   						 scrambling_work);
> +	struct drm_connector *connector = &vc4_hdmi->connector;
>   
> -	if (drm_scdc_get_scrambling_status(vc4_hdmi->ddc))
> +	if (drm_scdc_get_scrambling_status(connector))
>   		return;
>   
> -	drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true);
> -	drm_scdc_set_scrambling(vc4_hdmi->ddc, true);
> +	drm_scdc_set_high_tmds_clock_ratio(connector, true);
> +	drm_scdc_set_scrambling(connector, true);
>   
>   	queue_delayed_work(system_wq, &vc4_hdmi->scrambling_work,
>   			   msecs_to_jiffies(SCRAMBLING_POLLING_DELAY_MS));
> diff --git a/include/drm/display/drm_scdc_helper.h b/include/drm/display/drm_scdc_helper.h
> index ded01fd948b4..34600476a1b9 100644
> --- a/include/drm/display/drm_scdc_helper.h
> +++ b/include/drm/display/drm_scdc_helper.h
> @@ -28,6 +28,7 @@
>   
>   #include <drm/display/drm_scdc.h>
>   
> +struct drm_connector;
>   struct i2c_adapter;
>   
>   ssize_t drm_scdc_read(struct i2c_adapter *adapter, u8 offset, void *buffer,
> @@ -71,9 +72,9 @@ static inline int drm_scdc_writeb(struct i2c_adapter *adapter, u8 offset,
>   	return drm_scdc_write(adapter, offset, &value, sizeof(value));
>   }
>   
> -bool drm_scdc_get_scrambling_status(struct i2c_adapter *adapter);
> +bool drm_scdc_get_scrambling_status(struct drm_connector *connector);
>   
> -bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable);
> -bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set);
> +bool drm_scdc_set_scrambling(struct drm_connector *connector, bool enable);
> +bool drm_scdc_set_high_tmds_clock_ratio(struct drm_connector *connector, bool set);
>   
>   #endif


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Intel-gfx] ✓ Fi.CI.IGT: success for drm/scdc-helper: Pimp SCDC debugs (rev2)
  2023-03-29 17:14 [Intel-gfx] [PATCH] drm/scdc-helper: Pimp SCDC debugs Ville Syrjala
                   ` (3 preceding siblings ...)
  2023-04-04  0:28 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/scdc-helper: Pimp SCDC debugs (rev2) Patchwork
@ 2023-04-04  9:17 ` Patchwork
  4 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-04-04  9:17 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 11708 bytes --]

== Series Details ==

Series: drm/scdc-helper: Pimp SCDC debugs (rev2)
URL   : https://patchwork.freedesktop.org/series/115807/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12962_full -> Patchwork_115807v2_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (7 -> 7)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_115807v2_full:

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@kms_plane_scaling@i915-max-src-size@pipe-a-hdmi-a-1:
    - {shard-rkl}:        NOTRUN -> [FAIL][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/shard-rkl-7/igt@kms_plane_scaling@i915-max-src-size@pipe-a-hdmi-a-1.html

  
Known issues
------------

  Here are the changes found in Patchwork_115807v2_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-apl:          [PASS][2] -> [FAIL][3] ([i915#2842]) +1 similar issue
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/shard-apl7/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/shard-apl4/igt@gem_exec_fair@basic-pace-solo@rcs0.html
    - shard-glk:          [PASS][4] -> [FAIL][5] ([i915#2842])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/shard-glk8/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/shard-glk1/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  
#### Possible fixes ####

  * igt@gem_barrier_race@remote-request@rcs0:
    - {shard-tglu}:       [ABORT][6] ([i915#8211]) -> [PASS][7]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/shard-tglu-10/igt@gem_barrier_race@remote-request@rcs0.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/shard-tglu-10/igt@gem_barrier_race@remote-request@rcs0.html

  * igt@gem_ctx_exec@basic-nohangcheck:
    - {shard-tglu}:       [FAIL][8] ([i915#6268]) -> [PASS][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/shard-tglu-2/igt@gem_ctx_exec@basic-nohangcheck.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/shard-tglu-8/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_exec_fair@basic-pace@rcs0:
    - {shard-rkl}:        [FAIL][10] ([i915#2842]) -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/shard-rkl-4/igt@gem_exec_fair@basic-pace@rcs0.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/shard-rkl-7/igt@gem_exec_fair@basic-pace@rcs0.html

  * igt@gem_mmap_gtt@fault-concurrent-x:
    - shard-snb:          [ABORT][12] ([i915#5161]) -> [PASS][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/shard-snb5/igt@gem_mmap_gtt@fault-concurrent-x.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/shard-snb2/igt@gem_mmap_gtt@fault-concurrent-x.html

  * igt@gem_userptr_blits@huge-split:
    - shard-apl:          [FAIL][14] ([i915#3318]) -> [PASS][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/shard-apl2/igt@gem_userptr_blits@huge-split.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/shard-apl1/igt@gem_userptr_blits@huge-split.html

  * igt@i915_pm_rpm@modeset-lpsp-stress-no-wait:
    - {shard-rkl}:        [SKIP][16] ([i915#1397]) -> [PASS][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/shard-rkl-4/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/shard-rkl-7/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - {shard-tglu}:       [FAIL][18] ([i915#3743]) -> [PASS][19]
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/shard-tglu-9/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/shard-tglu-2/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-glk:          [FAIL][20] ([i915#2346]) -> [PASS][21]
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@single-move@pipe-b:
    - {shard-rkl}:        [INCOMPLETE][22] ([i915#8011]) -> [PASS][23]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12962/shard-rkl-7/igt@kms_cursor_legacy@single-move@pipe-b.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/shard-rkl-6/igt@kms_cursor_legacy@single-move@pipe-b.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
  [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
  [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743
  [i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
  [i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#5161]: https://gitlab.freedesktop.org/drm/intel/issues/5161
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5431]: https://gitlab.freedesktop.org/drm/intel/issues/5431
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
  [i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211
  [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
  [i915#8308]: https://gitlab.freedesktop.org/drm/intel/issues/8308


Build changes
-------------

  * Linux: CI_DRM_12962 -> Patchwork_115807v2

  CI-20190529: 20190529
  CI_DRM_12962: f8d28584fac01e6f5ab9de716fc0aadd8cf63464 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7233: 716520b469a2745e1882780f2aabbc88eb19332c @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_115807v2: f8d28584fac01e6f5ab9de716fc0aadd8cf63464 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_115807v2/index.html

[-- Attachment #2: Type: text/html, Size: 7579 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Intel-gfx] [PATCH v2] drm/scdc-helper: Pimp SCDC debugs
  2023-04-03 22:36 ` [Intel-gfx] [PATCH v2] " Ville Syrjala
                     ` (2 preceding siblings ...)
  2023-04-04  8:13   ` Andrzej Hajda
@ 2023-04-04 11:28   ` Thierry Reding
  3 siblings, 0 replies; 11+ messages in thread
From: Thierry Reding @ 2023-04-04 11:28 UTC (permalink / raw)
  To: Ville Syrjala
  Cc: Maxime Ripard, Neil Armstrong, Jernej Skrabec, Robert Foss,
	Emma Anholt, Jonas Karlman, intel-gfx, dri-devel,
	Laurent Pinchart, Andrzej Hajda, linux-tegra

[-- Attachment #1: Type: text/plain, Size: 1369 bytes --]

On Tue, Apr 04, 2023 at 01:36:52AM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Include the device and connector information in the SCDC
> debugs. Makes it easier to figure out who did what.
> 
> v2: Rely on connector->ddc (Maxime)
> 
> Cc: Andrzej Hajda <andrzej.hajda@intel.com>
> Cc: Neil Armstrong <neil.armstrong@linaro.org>
> Cc: Robert Foss <rfoss@kernel.org>
> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
> Cc: Jonas Karlman <jonas@kwiboo.se>
> Cc: Jernej Skrabec <jernej.skrabec@gmail.com>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Emma Anholt <emma@anholt.net>
> Cc: Maxime Ripard <mripard@kernel.org>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: linux-tegra@vger.kernel.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c |  8 ++--
>  drivers/gpu/drm/display/drm_scdc_helper.c | 46 +++++++++++++++--------
>  drivers/gpu/drm/i915/display/intel_ddi.c  |  4 +-
>  drivers/gpu/drm/i915/display/intel_hdmi.c |  8 +---
>  drivers/gpu/drm/tegra/sor.c               | 15 +++-----
>  drivers/gpu/drm/vc4/vc4_hdmi.c            | 21 ++++++-----
>  include/drm/display/drm_scdc_helper.h     |  7 ++--
>  7 files changed, 59 insertions(+), 50 deletions(-)

Acked-by: Thierry Reding <treding@nvidia.com>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-04-04 11:28 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-29 17:14 [Intel-gfx] [PATCH] drm/scdc-helper: Pimp SCDC debugs Ville Syrjala
2023-03-29 21:13 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for " Patchwork
2023-03-30  8:44 ` [Intel-gfx] [PATCH] " Maxime Ripard
2023-03-30 11:45   ` Ville Syrjälä
2023-04-03 22:36 ` [Intel-gfx] [PATCH v2] " Ville Syrjala
2023-04-04  2:21   ` Laurent Pinchart
2023-04-04  8:06   ` Maxime Ripard
2023-04-04  8:13   ` Andrzej Hajda
2023-04-04 11:28   ` Thierry Reding
2023-04-04  0:28 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/scdc-helper: Pimp SCDC debugs (rev2) Patchwork
2023-04-04  9:17 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

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).