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