diff mbox series

[v3] drm/i915/display: Reset message bus after each read/write operation

Message ID 20231016125544.719963-1-mika.kahola@intel.com (mailing list archive)
State New, archived
Headers show
Series [v3] drm/i915/display: Reset message bus after each read/write operation | expand

Commit Message

Mika Kahola Oct. 16, 2023, 12:55 p.m. UTC
Every know and then we receive the following error when running
for example IGT test kms_flip.

[drm] *ERROR* PHY G Read 0d80 failed after 3 retries.
[drm] *ERROR* PHY G Write 0d81 failed after 3 retries.

Since the error is sporadic in nature, the patch proposes
to reset the message bus after every successful or unsuccessful
read or write operation.

v2: Add FIXME's to indicate the experimental nature of
    this workaround (Rodrigo)
v3: Dropping the additional delay as moving reset to *_read_once()
    and *_write_once() functions seem unnecessary delay

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 drivers/gpu/drm/i915/display/intel_cx0_phy.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

Comments

Rodrigo Vivi Oct. 16, 2023, 6:10 p.m. UTC | #1
On Mon, Oct 16, 2023 at 03:55:44PM +0300, Mika Kahola wrote:
> Every know and then we receive the following error when running
> for example IGT test kms_flip.
> 
> [drm] *ERROR* PHY G Read 0d80 failed after 3 retries.
> [drm] *ERROR* PHY G Write 0d81 failed after 3 retries.
> 
> Since the error is sporadic in nature, the patch proposes
> to reset the message bus after every successful or unsuccessful
> read or write operation.
> 
> v2: Add FIXME's to indicate the experimental nature of
>     this workaround (Rodrigo)
> v3: Dropping the additional delay as moving reset to *_read_once()
>     and *_write_once() functions seem unnecessary delay
> 
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_cx0_phy.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> index 6e6a1818071e..9e24f820d4cf 100644
> --- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> @@ -206,6 +206,13 @@ static int __intel_cx0_read_once(struct drm_i915_private *i915, enum port port,
>  
>  	intel_clear_response_ready_flag(i915, port, lane);
>  
> +	/*
> +	 * FIXME: Workaround to let HW to settle
> +	 * down and let the message bus to end up
> +	 * in a known state
> +	 */
> +	intel_cx0_bus_reset(i915, port, lane);
> +
>  	return REG_FIELD_GET(XELPDP_PORT_P2M_DATA_MASK, val);
>  }
>  
> @@ -285,6 +292,13 @@ static int __intel_cx0_write_once(struct drm_i915_private *i915, enum port port,
>  
>  	intel_clear_response_ready_flag(i915, port, lane);
>  
> +	/*
> +	 * FIXME: Workaround to let HW to settle
> +	 * down and let the message bus to end up
> +	 * in a known state
> +	 */
> +	intel_cx0_bus_reset(i915, port, lane);
> +
>  	return 0;
>  }
>  
> -- 
> 2.34.1
>
Mika Kahola Oct. 17, 2023, 6:53 a.m. UTC | #2
From: Patchwork <patchwork@emeril.freedesktop.org>
Sent: Tuesday, October 17, 2023 5:28 AM
To: Kahola, Mika <mika.kahola@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: ✗ Fi.CI.BAT: failure for drm/i915/display: Reset message bus after each read/write operation (rev4)

Patch Details
Series:
drm/i915/display: Reset message bus after each read/write operation (rev4)
URL:
https://patchwork.freedesktop.org/series/124602/
State:
failure
Details:
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/index.html
CI Bug Log - changes from CI_DRM_13763 -> Patchwork_124602v4
Summary

FAILURE

Serious unknown changes coming with Patchwork_124602v4 absolutely need to be
verified manually.

If you think the reported changes have nothing to do with the changes
introduced in Patchwork_124602v4, please notify your bug team (lgci.bug.filing@intel.com<mailto:lgci.bug.filing@intel.com>) 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_124602v4/index.html

Participating hosts (33 -> 31)

Additional (1): fi-kbl-guc
Missing (3): fi-kbl-7567u bat-jsl-1 bat-jsl-3

Possible new issues

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

IGT changes
Possible regressions

  *   igt@i915_module_load@load:

     *   bat-kbl-2: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13763/bat-kbl-2/igt@i915_module_load@load.html> -> INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/bat-kbl-2/igt@i915_module_load@load.html>
Unrelated as the patch touches only mtl not kbl.
Known issues

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

IGT changes
Issues hit

  *   igt@fbdev@info:

     *   fi-kbl-guc: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/fi-kbl-guc/igt@fbdev@info.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / i915#1849<https://gitlab.freedesktop.org/drm/intel/issues/1849>)

  *   igt@gem_exec_suspend@basic-s3@lmem0:

     *   bat-atsm-1: NOTRUN -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/bat-atsm-1/igt@gem_exec_suspend@basic-s3@lmem0.html> (i915#8841<https://gitlab.freedesktop.org/drm/intel/issues/8841>) +4 other tests dmesg-warn

  *   igt@gem_exec_suspend@basic-s3@smem:

     *   fi-rkl-11600: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13763/fi-rkl-11600/igt@gem_exec_suspend@basic-s3@smem.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/fi-rkl-11600/igt@gem_exec_suspend@basic-s3@smem.html> (fdo#103375<https://bugs.freedesktop.org/show_bug.cgi?id=103375>)

  *   igt@gem_lmem_swapping@basic:

     *   fi-kbl-soraka: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / i915#4613<https://gitlab.freedesktop.org/drm/intel/issues/4613>) +3 other tests skip

  *   igt@gem_lmem_swapping@verify-random:

     *   fi-kbl-guc: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/fi-kbl-guc/igt@gem_lmem_swapping@verify-random.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / i915#4613<https://gitlab.freedesktop.org/drm/intel/issues/4613>) +3 other tests skip

  *   igt@i915_selftest@live@gt_pm:

     *   fi-kbl-soraka: NOTRUN -> DMESG-FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html> (i915#1886<https://gitlab.freedesktop.org/drm/intel/issues/1886>)

  *   igt@i915_selftest@live@mman:

     *   bat-rpls-1: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13763/bat-rpls-1/igt@i915_selftest@live@mman.html> -> TIMEOUT<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/bat-rpls-1/igt@i915_selftest@live@mman.html> (i915#6794<https://gitlab.freedesktop.org/drm/intel/issues/6794> / i915#7392<https://gitlab.freedesktop.org/drm/intel/issues/7392>)

  *   igt@i915_suspend@basic-s2idle-without-i915:

     *   bat-rpls-1: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13763/bat-rpls-1/igt@i915_suspend@basic-s2idle-without-i915.html> -> WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/bat-rpls-1/igt@i915_suspend@basic-s2idle-without-i915.html> (i915#8747<https://gitlab.freedesktop.org/drm/intel/issues/8747>)

  *   igt@i915_suspend@basic-s3-without-i915:

     *   bat-atsm-1: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/bat-atsm-1/igt@i915_suspend@basic-s3-without-i915.html> (i915#6645<https://gitlab.freedesktop.org/drm/intel/issues/6645>)

  *   igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size:

     *   fi-kbl-guc: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/fi-kbl-guc/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271> / i915#1845<https://gitlab.freedesktop.org/drm/intel/issues/1845>) +8 other tests skip

  *   igt@kms_dsc@dsc-basic:

     *   fi-kbl-soraka: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/fi-kbl-soraka/igt@kms_dsc@dsc-basic.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271>) +5 other tests skip

  *   igt@kms_hdmi_inject@inject-audio:

     *   fi-kbl-guc: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/fi-kbl-guc/igt@kms_hdmi_inject@inject-audio.html> (IGT#3<https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/3>)

  *   igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-c-dp-5:

     *   bat-adlp-11: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13763/bat-adlp-11/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-c-dp-5.html> -> ABORT<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/bat-adlp-11/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-c-dp-5.html> (i915#8668<https://gitlab.freedesktop.org/drm/intel/issues/8668> / i915#9451<https://gitlab.freedesktop.org/drm/intel/issues/9451>)

  *   igt@kms_pipe_crc_basic@suspend-read-crc:

     *   fi-kbl-guc: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/fi-kbl-guc/igt@kms_pipe_crc_basic@suspend-read-crc.html> (fdo#109271<https://bugs.freedesktop.org/show_bug.cgi?id=109271>) +25 other tests skip
     *   bat-atsm-1: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/bat-atsm-1/igt@kms_pipe_crc_basic@suspend-read-crc.html> (i915#1836<https://gitlab.freedesktop.org/drm/intel/issues/1836>)

Possible fixes

  *   igt@i915_selftest@live@gt_heartbeat:

     *   fi-apl-guc: DMESG-FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13763/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html> (i915#5334<https://gitlab.freedesktop.org/drm/intel/issues/5334>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html>

  *   igt@i915_selftest@live@gt_lrc:

     *   bat-atsm-1: INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13763/bat-atsm-1/igt@i915_selftest@live@gt_lrc.html> -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/bat-atsm-1/igt@i915_selftest@live@gt_lrc.html>

  *   igt@kms_busy@basic@modeset:

     *   fi-kbl-soraka: INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13763/fi-kbl-soraka/igt@kms_busy@basic@modeset.html> -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/fi-kbl-soraka/igt@kms_busy@basic@modeset.html>

  *   igt@kms_frontbuffer_tracking@basic:

     *   fi-bsw-nick: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13763/fi-bsw-nick/igt@kms_frontbuffer_tracking@basic.html> (i915#9276<https://gitlab.freedesktop.org/drm/intel/issues/9276>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/fi-bsw-nick/igt@kms_frontbuffer_tracking@basic.html>

  *   igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-dp-5:

     *   bat-adlp-11: ABORT<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13763/bat-adlp-11/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-dp-5.html> (i915#8668<https://gitlab.freedesktop.org/drm/intel/issues/8668>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_124602v4/bat-adlp-11/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-dp-5.html>

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

Build changes

  *   Linux: CI_DRM_13763 -> Patchwork_124602v4

CI-20190529: 20190529
CI_DRM_13763: 67bce9faa651e4e14107ac8cc29e690d780685f6 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7541: fcddb77c3f8a77020f7f3b2660a66cae27cfaa2b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_124602v4: 67bce9faa651e4e14107ac8cc29e690d780685f6 @ git://anongit.freedesktop.org/gfx-ci/linux

Linux commits

d3f9804fc146 drm/i915/display: Reset message bus after each read/write operation
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
index 6e6a1818071e..9e24f820d4cf 100644
--- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
@@ -206,6 +206,13 @@  static int __intel_cx0_read_once(struct drm_i915_private *i915, enum port port,
 
 	intel_clear_response_ready_flag(i915, port, lane);
 
+	/*
+	 * FIXME: Workaround to let HW to settle
+	 * down and let the message bus to end up
+	 * in a known state
+	 */
+	intel_cx0_bus_reset(i915, port, lane);
+
 	return REG_FIELD_GET(XELPDP_PORT_P2M_DATA_MASK, val);
 }
 
@@ -285,6 +292,13 @@  static int __intel_cx0_write_once(struct drm_i915_private *i915, enum port port,
 
 	intel_clear_response_ready_flag(i915, port, lane);
 
+	/*
+	 * FIXME: Workaround to let HW to settle
+	 * down and let the message bus to end up
+	 * in a known state
+	 */
+	intel_cx0_bus_reset(i915, port, lane);
+
 	return 0;
 }