* [Intel-gfx] [PATCHv5] drm/i915/display/dp: On AUX xfer timeout restart freshly
@ 2023-06-20 3:09 Arun R Murthy
2023-06-20 4:38 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/display/dp: On AUX xfer timeout restart freshly (rev5) Patchwork
0 siblings, 1 reply; 2+ messages in thread
From: Arun R Murthy @ 2023-06-20 3:09 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
At the beginning of the aux transfer a check for aux control busy bit is
done. Then as per the spec on aux transfer timeout, need to retry
freshly for 3 times with a delay which is taken care by the control
register.
On each of these 3 trials a check for busy has to be done so as to start
freshly.
v2: updated the commit message
v4: check for SEND_BUSY after write (Imre)
v5: reverted the send_ctl to the while loop (Jani)
Signed-off-by: Arun R Murthy <arun.r.murthy@intel.com>
---
drivers/gpu/drm/i915/display/intel_dp_aux.c | 56 ++++++++++-----------
1 file changed, 26 insertions(+), 30 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux.c b/drivers/gpu/drm/i915/display/intel_dp_aux.c
index 21b50a5c8a85..495e7b91db58 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_aux.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_aux.c
@@ -226,6 +226,7 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
int i, ret, recv_bytes;
int try, clock = 0;
u32 status;
+ u32 send_ctl;
bool vdd;
ch_ctl = intel_dp->aux_ch_ctl_reg(intel_dp);
@@ -273,30 +274,6 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
* it using the same AUX CH simultaneously
*/
- /* Try to wait for any previous AUX channel activity */
- for (try = 0; try < 3; try++) {
- status = intel_de_read_notrace(i915, ch_ctl);
- if ((status & DP_AUX_CH_CTL_SEND_BUSY) == 0)
- break;
- msleep(1);
- }
- /* just trace the final value */
- trace_i915_reg_rw(false, ch_ctl, status, sizeof(status), true);
-
- if (try == 3) {
- const u32 status = intel_de_read(i915, ch_ctl);
-
- if (status != intel_dp->aux_busy_last_status) {
- drm_WARN(&i915->drm, 1,
- "%s: not started (status 0x%08x)\n",
- intel_dp->aux.name, status);
- intel_dp->aux_busy_last_status = status;
- }
-
- ret = -EBUSY;
- goto out;
- }
-
/* Only 5 data registers! */
if (drm_WARN_ON(&i915->drm, send_bytes > 20 || recv_size > 20)) {
ret = -E2BIG;
@@ -304,14 +281,31 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
}
while ((aux_clock_divider = intel_dp->get_aux_clock_divider(intel_dp, clock++))) {
- u32 send_ctl = intel_dp->get_aux_send_ctl(intel_dp,
- send_bytes,
- aux_clock_divider);
-
+ send_ctl = intel_dp->get_aux_send_ctl(intel_dp,
+ send_bytes,
+ aux_clock_divider);
send_ctl |= aux_send_ctl_flags;
- /* Must try at least 3 times according to DP spec */
+ /* FIXME: Must try at least 3 times according to DP spec */
for (try = 0; try < 5; try++) {
+ /* Try to wait for any previous AUX channel activity */
+ status = intel_dp_aux_wait_done(intel_dp);
+ /* just trace the final value */
+ trace_i915_reg_rw(false, ch_ctl, status, sizeof(status), true);
+
+ if (status & DP_AUX_CH_CTL_SEND_BUSY) {
+ drm_WARN(&i915->drm, 1,
+ "%s: not started, previous Tx still in process (status 0x%08x)\n",
+ intel_dp->aux.name, status);
+ intel_dp->aux_busy_last_status = status;
+ if (try > 3) {
+ ret = -EBUSY;
+ goto out;
+ } else {
+ continue;
+ }
+ }
+
/* Load the send data into the aux channel data registers */
for (i = 0; i < send_bytes; i += 4)
intel_de_write(i915, ch_data[i >> 2],
@@ -321,6 +315,7 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
/* Send the command and wait for it to complete */
intel_de_write(i915, ch_ctl, send_ctl);
+ /* TODO: if typeC then 4.2ms else 800us. For DG2 add 1.5ms for both cases */
status = intel_dp_aux_wait_done(intel_dp);
/* Clear done status and any errors */
@@ -335,7 +330,8 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
* Timeout errors from the HW already meet this
* requirement so skip to next iteration
*/
- if (status & DP_AUX_CH_CTL_TIME_OUT_ERROR)
+ if (status & (DP_AUX_CH_CTL_TIME_OUT_ERROR |
+ DP_AUX_CH_CTL_SEND_BUSY))
continue;
if (status & DP_AUX_CH_CTL_RECEIVE_ERROR) {
--
2.25.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/display/dp: On AUX xfer timeout restart freshly (rev5)
2023-06-20 3:09 [Intel-gfx] [PATCHv5] drm/i915/display/dp: On AUX xfer timeout restart freshly Arun R Murthy
@ 2023-06-20 4:38 ` Patchwork
0 siblings, 0 replies; 2+ messages in thread
From: Patchwork @ 2023-06-20 4:38 UTC (permalink / raw)
To: Arun R Murthy; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 8422 bytes --]
== Series Details ==
Series: drm/i915/display/dp: On AUX xfer timeout restart freshly (rev5)
URL : https://patchwork.freedesktop.org/series/119055/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_13290 -> Patchwork_119055v5
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_119055v5 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_119055v5, 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_119055v5/index.html
Participating hosts (42 -> 42)
------------------------------
Additional (1): fi-kbl-soraka
Missing (1): fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_119055v5:
### IGT changes ###
#### Possible regressions ####
* igt@prime_self_import@basic-llseek-size:
- fi-kbl-soraka: NOTRUN -> [INCOMPLETE][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/fi-kbl-soraka/igt@prime_self_import@basic-llseek-size.html
Known issues
------------
Here are the changes found in Patchwork_119055v5 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_huc_copy@huc-copy:
- fi-kbl-soraka: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@basic:
- fi-kbl-soraka: NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#4613]) +3 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html
* igt@i915_selftest@live@gt_heartbeat:
- fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][4] ([i915#5334] / [i915#7872])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_selftest@live@gt_pm:
- fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][5] ([i915#1886] / [i915#7913])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html
* igt@i915_selftest@live@guc:
- bat-rpls-1: NOTRUN -> [DMESG-WARN][6] ([i915#7852])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/bat-rpls-1/igt@i915_selftest@live@guc.html
* igt@i915_selftest@live@requests:
- bat-mtlp-8: [PASS][7] -> [DMESG-FAIL][8] ([i915#8497])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13290/bat-mtlp-8/igt@i915_selftest@live@requests.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/bat-mtlp-8/igt@i915_selftest@live@requests.html
* igt@i915_selftest@live@slpc:
- bat-rpls-2: NOTRUN -> [DMESG-WARN][9] ([i915#6367])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/bat-rpls-2/igt@i915_selftest@live@slpc.html
- bat-rpls-1: NOTRUN -> [DMESG-WARN][10] ([i915#6367])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/bat-rpls-1/igt@i915_selftest@live@slpc.html
* igt@i915_suspend@basic-s2idle-without-i915:
- bat-rpls-2: NOTRUN -> [ABORT][11] ([i915#6687] / [i915#8668])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/bat-rpls-2/igt@i915_suspend@basic-s2idle-without-i915.html
* igt@i915_suspend@basic-s3-without-i915:
- bat-rpls-1: NOTRUN -> [ABORT][12] ([i915#6687] / [i915#7978])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/bat-rpls-1/igt@i915_suspend@basic-s3-without-i915.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-kbl-soraka: NOTRUN -> [SKIP][13] ([fdo#109271]) +14 similar issues
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/fi-kbl-soraka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_setmode@basic-clone-single-crtc:
- fi-kbl-soraka: NOTRUN -> [SKIP][14] ([fdo#109271] / [i915#4579])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/fi-kbl-soraka/igt@kms_setmode@basic-clone-single-crtc.html
#### Possible fixes ####
* igt@i915_selftest@live@migrate:
- bat-atsm-1: [DMESG-FAIL][15] ([i915#7699] / [i915#7913]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13290/bat-atsm-1/igt@i915_selftest@live@migrate.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/bat-atsm-1/igt@i915_selftest@live@migrate.html
* igt@i915_selftest@live@reset:
- bat-rpls-1: [ABORT][17] ([i915#4983] / [i915#7461] / [i915#7981] / [i915#8347] / [i915#8384]) -> [PASS][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13290/bat-rpls-1/igt@i915_selftest@live@reset.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/bat-rpls-1/igt@i915_selftest@live@reset.html
- bat-rpls-2: [ABORT][19] ([i915#4983] / [i915#7461] / [i915#7913] / [i915#7981] / [i915#8347]) -> [PASS][20]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13290/bat-rpls-2/igt@i915_selftest@live@reset.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/bat-rpls-2/igt@i915_selftest@live@reset.html
* igt@i915_selftest@live@workarounds:
- bat-mtlp-6: [DMESG-FAIL][21] ([i915#6763]) -> [PASS][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13290/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
#### Warnings ####
* igt@i915_module_load@load:
- bat-adlp-11: [DMESG-WARN][23] ([i915#4423]) -> [ABORT][24] ([i915#4423])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13290/bat-adlp-11/igt@i915_module_load@load.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/bat-adlp-11/igt@i915_module_load@load.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
[i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
[i915#6763]: https://gitlab.freedesktop.org/drm/intel/issues/6763
[i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461
[i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699
[i915#7852]: https://gitlab.freedesktop.org/drm/intel/issues/7852
[i915#7872]: https://gitlab.freedesktop.org/drm/intel/issues/7872
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978
[i915#7981]: https://gitlab.freedesktop.org/drm/intel/issues/7981
[i915#8347]: https://gitlab.freedesktop.org/drm/intel/issues/8347
[i915#8384]: https://gitlab.freedesktop.org/drm/intel/issues/8384
[i915#8497]: https://gitlab.freedesktop.org/drm/intel/issues/8497
[i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
Build changes
-------------
* Linux: CI_DRM_13290 -> Patchwork_119055v5
CI-20190529: 20190529
CI_DRM_13290: d8109039969700315ed327adfab8732c3c882bd6 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7338: 4f2f4b61eafc613ec58fd07bb11be7072b41c6bf @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_119055v5: d8109039969700315ed327adfab8732c3c882bd6 @ git://anongit.freedesktop.org/gfx-ci/linux
### Linux commits
55a26a074c4f drm/i915/display/dp: On AUX xfer timeout restart freshly
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_119055v5/index.html
[-- Attachment #2: Type: text/html, Size: 10257 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-06-20 4:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-20 3:09 [Intel-gfx] [PATCHv5] drm/i915/display/dp: On AUX xfer timeout restart freshly Arun R Murthy
2023-06-20 4:38 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/display/dp: On AUX xfer timeout restart freshly (rev5) Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox