* [Intel-gfx] [PATCH v2] drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc @ 2021-06-10 9:05 Jani Nikula 2021-06-10 10:02 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Jani Nikula @ 2021-06-10 9:05 UTC (permalink / raw) To: intel-gfx; +Cc: jani.nikula Add a single point of truth for figuring out the primary/secondary crtc for bigjoiner instead of duplicating the magic pipe +/- 1 in multiple places. Also fix the pipe validity checks to properly take non-contiguous pipes into account. The current checks may theoretically overflow i915->pipe_to_crtc_mapping[pipe], albeit with a warning, due to fused off pipes, as INTEL_NUM_PIPES() returns the actual number of pipes on the platform, and the check is for INTEL_NUM_PIPES() == pipe + 1. Prefer primary/secondary terminology going forward. v2: - Improved abstractions for pipe validity etc. Fixes: 8a029c113b17 ("drm/i915/dp: Modify VDSC helpers to configure DSC for Bigjoiner slave") Fixes: d961eb20adb6 ("drm/i915/bigjoiner: atomic commit changes for uncompressed joiner") Cc: Animesh Manna <animesh.manna@intel.com> Cc: Manasi Navare <manasi.d.navare@intel.com> Cc: Vandita Kulkarni <vandita.kulkarni@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- Dropped patch 2/2 [1], as the pipes need to be adjacent for big joiner, even if pipes have been fused off. [1] https://patchwork.freedesktop.org/patch/msgid/20210603122842.22496-2-jani.nikula@intel.com --- drivers/gpu/drm/i915/display/intel_display.c | 7 ++-- .../drm/i915/display/intel_display_types.h | 8 ++++ drivers/gpu/drm/i915/display/intel_vdsc.c | 40 +++++++++++++------ drivers/gpu/drm/i915/display/intel_vdsc.h | 1 + 4 files changed, 40 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 362bff9beb5c..3bad4e00f7be 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -9618,7 +9618,6 @@ static int intel_atomic_check_bigjoiner(struct intel_atomic_state *state, struct intel_crtc_state *old_crtc_state, struct intel_crtc_state *new_crtc_state) { - struct drm_i915_private *dev_priv = to_i915(state->base.dev); struct intel_crtc_state *slave_crtc_state, *master_crtc_state; struct intel_crtc *slave, *master; @@ -9634,15 +9633,15 @@ static int intel_atomic_check_bigjoiner(struct intel_atomic_state *state, if (!new_crtc_state->bigjoiner) return 0; - if (1 + crtc->pipe >= INTEL_NUM_PIPES(dev_priv)) { + slave = intel_dsc_get_bigjoiner_secondary(crtc); + if (!slave) { DRM_DEBUG_KMS("[CRTC:%d:%s] Big joiner configuration requires " "CRTC + 1 to be used, doesn't exist\n", crtc->base.base.id, crtc->base.name); return -EINVAL; } - slave = new_crtc_state->bigjoiner_linked_crtc = - intel_get_crtc_for_pipe(dev_priv, crtc->pipe + 1); + new_crtc_state->bigjoiner_linked_crtc = slave; slave_crtc_state = intel_atomic_get_crtc_state(&state->base, slave); master = crtc; if (IS_ERR(slave_crtc_state)) diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h index 15e91a99c8b9..7d64d8487fbe 100644 --- a/drivers/gpu/drm/i915/display/intel_display_types.h +++ b/drivers/gpu/drm/i915/display/intel_display_types.h @@ -1723,6 +1723,14 @@ vlv_pipe_to_channel(enum pipe pipe) } } +static inline bool intel_pipe_valid(struct drm_i915_private *i915, enum pipe pipe) +{ + return (pipe >= 0 && + pipe < ARRAY_SIZE(i915->pipe_to_crtc_mapping) && + INTEL_INFO(i915)->pipe_mask & BIT(pipe) && + i915->pipe_to_crtc_mapping[pipe]); +} + static inline struct intel_crtc * intel_get_first_crtc(struct drm_i915_private *dev_priv) { diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c index 7121b66bf96d..85749370508c 100644 --- a/drivers/gpu/drm/i915/display/intel_vdsc.c +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c @@ -1106,6 +1106,27 @@ static i915_reg_t dss_ctl2_reg(const struct intel_crtc_state *crtc_state) return is_pipe_dsc(crtc_state) ? ICL_PIPE_DSS_CTL2(pipe) : DSS_CTL2; } +static struct intel_crtc * +_get_crtc_for_pipe(struct drm_i915_private *i915, enum pipe pipe) +{ + if (!intel_pipe_valid(i915, pipe)) + return NULL; + + return intel_get_crtc_for_pipe(i915, pipe); +} + +struct intel_crtc * +intel_dsc_get_bigjoiner_secondary(const struct intel_crtc *primary_crtc) +{ + return _get_crtc_for_pipe(to_i915(primary_crtc->base.dev), primary_crtc->pipe + 1); +} + +static struct intel_crtc * +intel_dsc_get_bigjoiner_primary(const struct intel_crtc *secondary_crtc) +{ + return _get_crtc_for_pipe(to_i915(secondary_crtc->base.dev), secondary_crtc->pipe - 1); +} + void intel_uncompressed_joiner_enable(const struct intel_crtc_state *crtc_state) { struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); @@ -1178,15 +1199,13 @@ void intel_uncompressed_joiner_get_config(struct intel_crtc_state *crtc_state) dss_ctl1 = intel_de_read(dev_priv, dss_ctl1_reg(crtc_state)); if (dss_ctl1 & UNCOMPRESSED_JOINER_MASTER) { crtc_state->bigjoiner = true; - if (!WARN_ON(INTEL_NUM_PIPES(dev_priv) == crtc->pipe + 1)) - crtc_state->bigjoiner_linked_crtc = - intel_get_crtc_for_pipe(dev_priv, crtc->pipe + 1); + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_secondary(crtc); + drm_WARN_ON(&dev_priv->drm, !crtc_state->bigjoiner_linked_crtc); } else if (dss_ctl1 & UNCOMPRESSED_JOINER_SLAVE) { crtc_state->bigjoiner = true; crtc_state->bigjoiner_slave = true; - if (!WARN_ON(crtc->pipe == PIPE_A)) - crtc_state->bigjoiner_linked_crtc = - intel_get_crtc_for_pipe(dev_priv, crtc->pipe - 1); + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_primary(crtc); + drm_WARN_ON(&dev_priv->drm, !crtc_state->bigjoiner_linked_crtc); } } @@ -1224,14 +1243,11 @@ void intel_dsc_get_config(struct intel_crtc_state *crtc_state) if (!(dss_ctl1 & MASTER_BIG_JOINER_ENABLE)) { crtc_state->bigjoiner_slave = true; - if (!WARN_ON(crtc->pipe == PIPE_A)) - crtc_state->bigjoiner_linked_crtc = - intel_get_crtc_for_pipe(dev_priv, crtc->pipe - 1); + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_primary(crtc); } else { - if (!WARN_ON(INTEL_NUM_PIPES(dev_priv) == crtc->pipe + 1)) - crtc_state->bigjoiner_linked_crtc = - intel_get_crtc_for_pipe(dev_priv, crtc->pipe + 1); + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_secondary(crtc); } + drm_WARN_ON(&dev_priv->drm, !crtc_state->bigjoiner_linked_crtc); } /* FIXME: add more state readout as needed */ diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.h b/drivers/gpu/drm/i915/display/intel_vdsc.h index fe4d45561253..dfb1fd38deb4 100644 --- a/drivers/gpu/drm/i915/display/intel_vdsc.h +++ b/drivers/gpu/drm/i915/display/intel_vdsc.h @@ -22,5 +22,6 @@ void intel_uncompressed_joiner_get_config(struct intel_crtc_state *crtc_state); void intel_dsc_get_config(struct intel_crtc_state *crtc_state); enum intel_display_power_domain intel_dsc_power_domain(const struct intel_crtc_state *crtc_state); +struct intel_crtc *intel_dsc_get_bigjoiner_secondary(const struct intel_crtc *primary_crtc); #endif /* __INTEL_VDSC_H__ */ -- 2.20.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc 2021-06-10 9:05 [Intel-gfx] [PATCH v2] drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc Jani Nikula @ 2021-06-10 10:02 ` Patchwork 2021-06-10 11:16 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork 2021-06-11 23:18 ` [Intel-gfx] [PATCH v2] " Navare, Manasi 2 siblings, 0 replies; 7+ messages in thread From: Patchwork @ 2021-06-10 10:02 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx [-- Attachment #1.1: Type: text/plain, Size: 7443 bytes --] == Series Details == Series: drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc URL : https://patchwork.freedesktop.org/series/91320/ State : success == Summary == CI Bug Log - changes from CI_DRM_10202 -> Patchwork_20328 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/index.html Known issues ------------ Here are the changes found in Patchwork_20328 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@core_hotunplug@unbind-rebind: - fi-bdw-5557u: NOTRUN -> [WARN][1] ([i915#2283]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-bdw-5557u/igt@core_hotunplug@unbind-rebind.html * igt@i915_selftest@live@execlists: - fi-bdw-5557u: NOTRUN -> [DMESG-FAIL][2] ([i915#3462]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-bdw-5557u/igt@i915_selftest@live@execlists.html * igt@kms_chamelium@dp-crc-fast: - fi-bdw-5557u: NOTRUN -> [SKIP][3] ([fdo#109271] / [fdo#111827]) +8 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-bdw-5557u/igt@kms_chamelium@dp-crc-fast.html * igt@kms_psr@cursor_plane_move: - fi-bdw-5557u: NOTRUN -> [SKIP][4] ([fdo#109271]) +9 similar issues [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-bdw-5557u/igt@kms_psr@cursor_plane_move.html #### Possible fixes #### * igt@gem_exec_suspend@basic-s3: - {fi-tgl-1115g4}: [FAIL][5] ([i915#1888]) -> [PASS][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/fi-tgl-1115g4/igt@gem_exec_suspend@basic-s3.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-tgl-1115g4/igt@gem_exec_suspend@basic-s3.html * igt@i915_selftest@live@gt_mocs: - {fi-tgl-dsi}: [DMESG-WARN][7] ([i915#2867]) -> [PASS][8] +6 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/fi-tgl-dsi/igt@i915_selftest@live@gt_mocs.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-tgl-dsi/igt@i915_selftest@live@gt_mocs.html #### Warnings #### * igt@i915_selftest@live@execlists: - fi-icl-u2: [INCOMPLETE][9] ([i915#2782] / [i915#3462]) -> [DMESG-FAIL][10] ([i915#3462]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/fi-icl-u2/igt@i915_selftest@live@execlists.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-icl-u2/igt@i915_selftest@live@execlists.html - fi-cml-s: [INCOMPLETE][11] ([i915#3462]) -> [DMESG-FAIL][12] ([i915#3462]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/fi-cml-s/igt@i915_selftest@live@execlists.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-cml-s/igt@i915_selftest@live@execlists.html * igt@runner@aborted: - fi-cfl-8700k: [FAIL][13] ([i915#2426] / [i915#3363]) -> [FAIL][14] ([i915#3363]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/fi-cfl-8700k/igt@runner@aborted.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-cfl-8700k/igt@runner@aborted.html - fi-skl-6600u: [FAIL][15] ([i915#1436] / [i915#3363]) -> [FAIL][16] ([i915#1436] / [i915#2426] / [i915#3363]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/fi-skl-6600u/igt@runner@aborted.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-skl-6600u/igt@runner@aborted.html - fi-icl-u2: [FAIL][17] ([i915#2782] / [i915#3363]) -> [FAIL][18] ([i915#2426] / [i915#2782] / [i915#3363]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/fi-icl-u2/igt@runner@aborted.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-icl-u2/igt@runner@aborted.html - fi-bdw-5557u: [FAIL][19] ([i915#1602] / [i915#2029]) -> [FAIL][20] ([i915#3462]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/fi-bdw-5557u/igt@runner@aborted.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-bdw-5557u/igt@runner@aborted.html - fi-cml-s: [FAIL][21] ([i915#3363] / [i915#3462]) -> [FAIL][22] ([i915#2082] / [i915#2426] / [i915#3363] / [i915#3462]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/fi-cml-s/igt@runner@aborted.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-cml-s/igt@runner@aborted.html - fi-cfl-guc: [FAIL][23] ([i915#2426] / [i915#3363]) -> [FAIL][24] ([i915#3363]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/fi-cfl-guc/igt@runner@aborted.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-cfl-guc/igt@runner@aborted.html - fi-kbl-7567u: [FAIL][25] ([i915#1436] / [i915#2426] / [i915#3363]) -> [FAIL][26] ([i915#1436] / [i915#3363]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/fi-kbl-7567u/igt@runner@aborted.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-kbl-7567u/igt@runner@aborted.html - fi-skl-guc: [FAIL][27] ([i915#1436] / [i915#3363]) -> [FAIL][28] ([i915#1436] / [i915#2426] / [i915#3363]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/fi-skl-guc/igt@runner@aborted.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/fi-skl-guc/igt@runner@aborted.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 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436 [i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602 [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888 [i915#2029]: https://gitlab.freedesktop.org/drm/intel/issues/2029 [i915#2082]: https://gitlab.freedesktop.org/drm/intel/issues/2082 [i915#2283]: https://gitlab.freedesktop.org/drm/intel/issues/2283 [i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426 [i915#2782]: https://gitlab.freedesktop.org/drm/intel/issues/2782 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#2932]: https://gitlab.freedesktop.org/drm/intel/issues/2932 [i915#2966]: https://gitlab.freedesktop.org/drm/intel/issues/2966 [i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303 [i915#3363]: https://gitlab.freedesktop.org/drm/intel/issues/3363 [i915#3462]: https://gitlab.freedesktop.org/drm/intel/issues/3462 Participating hosts (43 -> 37) ------------------------------ Missing (6): fi-ilk-m540 fi-hsw-4200u fi-tgl-u2 bat-adlp-4 fi-bdw-samus bat-jsl-1 Build changes ------------- * Linux: CI_DRM_10202 -> Patchwork_20328 CI-20190529: 20190529 CI_DRM_10202: fd6558f89b99a9e2ce6e6f7bfe2c1ccff83064df @ git://anongit.freedesktop.org/gfx-ci/linux IGT_6103: 3aa79e55e73d4a49a5222e5dfde486b800a29fe7 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_20328: 009255ef433264ae4e68fb2ab67404f3e3222d21 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 009255ef4332 drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/index.html [-- Attachment #1.2: Type: text/html, Size: 10369 bytes --] [-- Attachment #2: Type: text/plain, Size: 160 bytes --] _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc 2021-06-10 9:05 [Intel-gfx] [PATCH v2] drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc Jani Nikula 2021-06-10 10:02 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork @ 2021-06-10 11:16 ` Patchwork 2021-06-11 23:18 ` [Intel-gfx] [PATCH v2] " Navare, Manasi 2 siblings, 0 replies; 7+ messages in thread From: Patchwork @ 2021-06-10 11:16 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx [-- Attachment #1.1: Type: text/plain, Size: 28829 bytes --] == Series Details == Series: drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc URL : https://patchwork.freedesktop.org/series/91320/ State : failure == Summary == CI Bug Log - changes from CI_DRM_10202_full -> Patchwork_20328_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_20328_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_20328_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_20328_full: ### IGT changes ### #### Possible regressions #### * igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-xtiled: - shard-skl: [PASS][1] -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-skl8/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-xtiled.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-skl9/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-xtiled.html Known issues ------------ Here are the changes found in Patchwork_20328_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_create@create-massive: - shard-apl: NOTRUN -> [DMESG-WARN][3] ([i915#3002]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl7/igt@gem_create@create-massive.html * igt@gem_ctx_persistence@engines-queued: - shard-snb: NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#1099]) +2 similar issues [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-snb2/igt@gem_ctx_persistence@engines-queued.html * igt@gem_ctx_ringsize@active@bcs0: - shard-skl: [PASS][5] -> [INCOMPLETE][6] ([i915#3316]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-skl9/igt@gem_ctx_ringsize@active@bcs0.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-skl4/igt@gem_ctx_ringsize@active@bcs0.html * igt@gem_exec_fair@basic-none@vcs1: - shard-iclb: NOTRUN -> [FAIL][7] ([i915#2842]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb4/igt@gem_exec_fair@basic-none@vcs1.html * igt@gem_exec_fair@basic-pace-solo@rcs0: - shard-kbl: NOTRUN -> [FAIL][8] ([i915#2842]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl2/igt@gem_exec_fair@basic-pace-solo@rcs0.html * igt@gem_exec_fair@basic-pace@vecs0: - shard-kbl: [PASS][9] -> [FAIL][10] ([i915#2842]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl4/igt@gem_exec_fair@basic-pace@vecs0.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl2/igt@gem_exec_fair@basic-pace@vecs0.html * igt@gem_huc_copy@huc-copy: - shard-apl: NOTRUN -> [SKIP][11] ([fdo#109271] / [i915#2190]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl1/igt@gem_huc_copy@huc-copy.html * igt@gem_mmap_gtt@big-copy-odd: - shard-skl: [PASS][12] -> [FAIL][13] ([i915#307]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-skl2/igt@gem_mmap_gtt@big-copy-odd.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-skl3/igt@gem_mmap_gtt@big-copy-odd.html - shard-glk: [PASS][14] -> [FAIL][15] ([i915#307]) +1 similar issue [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-glk6/igt@gem_mmap_gtt@big-copy-odd.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-glk7/igt@gem_mmap_gtt@big-copy-odd.html * igt@gem_mmap_gtt@cpuset-big-copy-odd: - shard-iclb: [PASS][16] -> [FAIL][17] ([i915#307]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb3/igt@gem_mmap_gtt@cpuset-big-copy-odd.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb5/igt@gem_mmap_gtt@cpuset-big-copy-odd.html * igt@gen9_exec_parse@allowed-single: - shard-skl: [PASS][18] -> [DMESG-WARN][19] ([i915#1436] / [i915#716]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-skl2/igt@gen9_exec_parse@allowed-single.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-skl1/igt@gen9_exec_parse@allowed-single.html * igt@i915_hangman@engine-error@vecs0: - shard-kbl: NOTRUN -> [SKIP][20] ([fdo#109271]) +119 similar issues [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl2/igt@i915_hangman@engine-error@vecs0.html * igt@i915_pm_dc@dc6-dpms: - shard-kbl: NOTRUN -> [FAIL][21] ([i915#454]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl4/igt@i915_pm_dc@dc6-dpms.html * igt@kms_color_chamelium@pipe-b-ctm-negative: - shard-snb: NOTRUN -> [SKIP][22] ([fdo#109271] / [fdo#111827]) +10 similar issues [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-snb5/igt@kms_color_chamelium@pipe-b-ctm-negative.html * igt@kms_color_chamelium@pipe-d-ctm-max: - shard-kbl: NOTRUN -> [SKIP][23] ([fdo#109271] / [fdo#111827]) +9 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl2/igt@kms_color_chamelium@pipe-d-ctm-max.html * igt@kms_color_chamelium@pipe-invalid-degamma-lut-sizes: - shard-apl: NOTRUN -> [SKIP][24] ([fdo#109271] / [fdo#111827]) +9 similar issues [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl2/igt@kms_color_chamelium@pipe-invalid-degamma-lut-sizes.html * igt@kms_content_protection@atomic-dpms: - shard-kbl: NOTRUN -> [TIMEOUT][25] ([i915#1319]) +1 similar issue [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl2/igt@kms_content_protection@atomic-dpms.html * igt@kms_content_protection@uevent: - shard-apl: NOTRUN -> [FAIL][26] ([i915#2105]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl2/igt@kms_content_protection@uevent.html * igt@kms_cursor_crc@pipe-c-cursor-suspend: - shard-skl: [PASS][27] -> [INCOMPLETE][28] ([i915#300]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-skl7/igt@kms_cursor_crc@pipe-c-cursor-suspend.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-skl7/igt@kms_cursor_crc@pipe-c-cursor-suspend.html * igt@kms_cursor_edge_walk@pipe-c-256x256-left-edge: - shard-glk: [PASS][29] -> [DMESG-WARN][30] ([i915#118] / [i915#95]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-glk8/igt@kms_cursor_edge_walk@pipe-c-256x256-left-edge.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-glk5/igt@kms_cursor_edge_walk@pipe-c-256x256-left-edge.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-skl: [PASS][31] -> [FAIL][32] ([i915#2346] / [i915#533]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-skl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-skl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_cursor_legacy@flip-vs-cursor-legacy: - shard-skl: [PASS][33] -> [FAIL][34] ([i915#2346]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-skl4/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-skl2/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-kbl: [PASS][35] -> [INCOMPLETE][36] ([i915#155] / [i915#180] / [i915#636]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl6/igt@kms_fbcon_fbt@fbc-suspend.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl4/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_flip@flip-vs-suspend-interruptible@c-dp1: - shard-apl: [PASS][37] -> [DMESG-WARN][38] ([i915#180]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-apl3/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs: - shard-kbl: NOTRUN -> [SKIP][39] ([fdo#109271] / [i915#2672]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs.html * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile: - shard-apl: NOTRUN -> [SKIP][40] ([fdo#109271] / [i915#2642]) [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl1/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs: - shard-apl: NOTRUN -> [SKIP][41] ([fdo#109271] / [i915#2672]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render: - shard-snb: NOTRUN -> [SKIP][42] ([fdo#109271]) +186 similar issues [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-snb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt: - shard-apl: NOTRUN -> [SKIP][43] ([fdo#109271]) +150 similar issues [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html * igt@kms_pipe_crc_basic@hang-read-crc-pipe-d: - shard-apl: NOTRUN -> [SKIP][44] ([fdo#109271] / [i915#533]) +1 similar issue [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl6/igt@kms_pipe_crc_basic@hang-read-crc-pipe-d.html * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes: - shard-kbl: [PASS][45] -> [DMESG-WARN][46] ([i915#180]) +1 similar issue [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl3/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl2/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes.html * igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb: - shard-apl: NOTRUN -> [FAIL][47] ([fdo#108145] / [i915#265]) +1 similar issue [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl1/igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb.html * igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb: - shard-apl: NOTRUN -> [FAIL][48] ([i915#265]) [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl6/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html * igt@kms_plane_alpha_blend@pipe-b-alpha-7efc: - shard-kbl: NOTRUN -> [FAIL][49] ([fdo#108145] / [i915#265]) +2 similar issues [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl2/igt@kms_plane_alpha_blend@pipe-b-alpha-7efc.html * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-3: - shard-kbl: NOTRUN -> [SKIP][50] ([fdo#109271] / [i915#658]) +2 similar issues [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl4/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-3.html * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5: - shard-apl: NOTRUN -> [SKIP][51] ([fdo#109271] / [i915#658]) +1 similar issue [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5.html * igt@kms_psr@psr2_cursor_blt: - shard-iclb: [PASS][52] -> [SKIP][53] ([fdo#109441]) +1 similar issue [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb1/igt@kms_psr@psr2_cursor_blt.html * igt@kms_vblank@pipe-a-ts-continuation-suspend: - shard-apl: NOTRUN -> [DMESG-WARN][54] ([i915#180] / [i915#295]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl1/igt@kms_vblank@pipe-a-ts-continuation-suspend.html * igt@kms_writeback@writeback-fb-id: - shard-apl: NOTRUN -> [SKIP][55] ([fdo#109271] / [i915#2437]) [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl8/igt@kms_writeback@writeback-fb-id.html * igt@sysfs_clients@sema-10: - shard-apl: NOTRUN -> [SKIP][56] ([fdo#109271] / [i915#2994]) [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl2/igt@sysfs_clients@sema-10.html * igt@sysfs_heartbeat_interval@precise@rcs0: - shard-tglb: [PASS][57] -> [INCOMPLETE][58] ([i915#2895]) [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-tglb5/igt@sysfs_heartbeat_interval@precise@rcs0.html [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-tglb5/igt@sysfs_heartbeat_interval@precise@rcs0.html #### Possible fixes #### * igt@gem_ctx_isolation@preservation-s3@vecs0: - shard-apl: [DMESG-WARN][59] ([i915#180]) -> [PASS][60] [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-apl7/igt@gem_ctx_isolation@preservation-s3@vecs0.html [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl1/igt@gem_ctx_isolation@preservation-s3@vecs0.html * igt@gem_ctx_persistence@many-contexts: - shard-tglb: [FAIL][61] ([i915#2410]) -> [PASS][62] [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-tglb3/igt@gem_ctx_persistence@many-contexts.html [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-tglb2/igt@gem_ctx_persistence@many-contexts.html * igt@gem_exec_fair@basic-flow@rcs0: - shard-tglb: [FAIL][63] ([i915#2842]) -> [PASS][64] +2 similar issues [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-tglb7/igt@gem_exec_fair@basic-flow@rcs0.html [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-tglb8/igt@gem_exec_fair@basic-flow@rcs0.html * igt@gem_exec_fair@basic-none-share@rcs0: - shard-iclb: [FAIL][65] ([i915#2842]) -> [PASS][66] [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb1/igt@gem_exec_fair@basic-none-share@rcs0.html [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb2/igt@gem_exec_fair@basic-none-share@rcs0.html * igt@gem_exec_fair@basic-none@vcs0: - shard-kbl: [FAIL][67] ([i915#2842]) -> [PASS][68] +2 similar issues [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl2/igt@gem_exec_fair@basic-none@vcs0.html [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl2/igt@gem_exec_fair@basic-none@vcs0.html * igt@gem_exec_fair@basic-throttle@rcs0: - shard-iclb: [FAIL][69] ([i915#2849]) -> [PASS][70] [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb7/igt@gem_exec_fair@basic-throttle@rcs0.html [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb4/igt@gem_exec_fair@basic-throttle@rcs0.html * igt@gem_mmap_gtt@cpuset-big-copy: - shard-iclb: [FAIL][71] ([i915#307]) -> [PASS][72] [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb3/igt@gem_mmap_gtt@cpuset-big-copy.html [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb8/igt@gem_mmap_gtt@cpuset-big-copy.html * igt@kms_cursor_crc@pipe-a-cursor-suspend: - shard-kbl: [DMESG-WARN][73] ([i915#180]) -> [PASS][74] +4 similar issues [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl2/igt@kms_cursor_crc@pipe-a-cursor-suspend.html [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl2/igt@kms_cursor_crc@pipe-a-cursor-suspend.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-apl: [INCOMPLETE][75] ([i915#180] / [i915#1982]) -> [PASS][76] [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-apl6/igt@kms_fbcon_fbt@fbc-suspend.html [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl8/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_flip@plain-flip-fb-recreate@c-edp1: - shard-skl: [FAIL][77] ([i915#2122]) -> [PASS][78] [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-skl5/igt@kms_flip@plain-flip-fb-recreate@c-edp1.html [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-skl9/igt@kms_flip@plain-flip-fb-recreate@c-edp1.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc: - shard-skl: [FAIL][79] ([i915#49]) -> [PASS][80] +1 similar issue [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-skl7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc.html [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-skl7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc.html * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc: - shard-skl: [FAIL][81] ([fdo#108145] / [i915#265]) -> [PASS][82] +1 similar issue [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-skl10/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-skl1/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html * igt@kms_psr2_su@frontbuffer: - shard-iclb: [SKIP][83] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [PASS][84] [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb7/igt@kms_psr2_su@frontbuffer.html [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb2/igt@kms_psr2_su@frontbuffer.html * igt@kms_psr@psr2_sprite_plane_move: - shard-iclb: [SKIP][85] ([fdo#109441]) -> [PASS][86] [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb1/igt@kms_psr@psr2_sprite_plane_move.html [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html * igt@kms_vblank@pipe-a-ts-continuation-suspend: - shard-kbl: [DMESG-WARN][87] ([i915#180] / [i915#295]) -> [PASS][88] [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl2/igt@kms_vblank@pipe-a-ts-continuation-suspend.html * igt@perf@polling-parameterized: - shard-skl: [FAIL][89] ([i915#1542]) -> [PASS][90] [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-skl2/igt@perf@polling-parameterized.html [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-skl1/igt@perf@polling-parameterized.html #### Warnings #### * igt@i915_pm_dc@dc3co-vpb-simulation: - shard-iclb: [SKIP][91] ([i915#588]) -> [SKIP][92] ([i915#658]) [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb8/igt@i915_pm_dc@dc3co-vpb-simulation.html * igt@i915_pm_rc6_residency@rc6-fence: - shard-iclb: [WARN][93] ([i915#2684]) -> [WARN][94] ([i915#1804] / [i915#2684]) [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb5/igt@i915_pm_rc6_residency@rc6-fence.html [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb6/igt@i915_pm_rc6_residency@rc6-fence.html * igt@i915_selftest@live@execlists: - shard-iclb: [INCOMPLETE][95] ([i915#2782] / [i915#3462]) -> [DMESG-FAIL][96] ([i915#3462]) [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb4/igt@i915_selftest@live@execlists.html [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb7/igt@i915_selftest@live@execlists.html * igt@kms_psr2_sf@cursor-plane-update-sf: - shard-iclb: [SKIP][97] ([i915#658]) -> [SKIP][98] ([i915#2920]) +2 similar issues [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb1/igt@kms_psr2_sf@cursor-plane-update-sf.html [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb2/igt@kms_psr2_sf@cursor-plane-update-sf.html * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2: - shard-iclb: [SKIP][99] ([i915#2920]) -> [SKIP][100] ([i915#658]) +1 similar issue [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2.html [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2.html * igt@runner@aborted: - shard-kbl: ([FAIL][101], [FAIL][102], [FAIL][103], [FAIL][104], [FAIL][105], [FAIL][106], [FAIL][107], [FAIL][108]) ([i915#1436] / [i915#180] / [i915#1814] / [i915#2505] / [i915#3002] / [i915#3363] / [i915#602]) -> ([FAIL][109], [FAIL][110], [FAIL][111], [FAIL][112], [FAIL][113], [FAIL][114]) ([i915#1436] / [i915#180] / [i915#1814] / [i915#2505] / [i915#3002] / [i915#3363] / [i915#92]) [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl4/igt@runner@aborted.html [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl3/igt@runner@aborted.html [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl3/igt@runner@aborted.html [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl2/igt@runner@aborted.html [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl4/igt@runner@aborted.html [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl2/igt@runner@aborted.html [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl6/igt@runner@aborted.html [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-kbl4/igt@runner@aborted.html [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl2/igt@runner@aborted.html [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl2/igt@runner@aborted.html [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl2/igt@runner@aborted.html [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl3/igt@runner@aborted.html [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl4/igt@runner@aborted.html [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-kbl6/igt@runner@aborted.html - shard-iclb: ([FAIL][115], [FAIL][116], [FAIL][117]) ([i915#2782] / [i915#3002]) -> ([FAIL][118], [FAIL][119], [FAIL][120]) ([i915#2426] / [i915#2782] / [i915#3002]) [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb4/igt@runner@aborted.html [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb8/igt@runner@aborted.html [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-iclb8/igt@runner@aborted.html [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb3/igt@runner@aborted.html [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb1/igt@runner@aborted.html [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-iclb7/igt@runner@aborted.html - shard-apl: ([FAIL][121], [FAIL][122], [FAIL][123]) ([i915#180] / [i915#3363]) -> ([FAIL][124], [FAIL][125], [FAIL][126]) ([i915#180] / [i915#1814] / [i915#3002] / [i915#3363]) [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-apl8/igt@runner@aborted.html [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-apl7/igt@runner@aborted.html [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10202/shard-apl6/igt@runner@aborted.html [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl1/igt@runner@aborted.html [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl1/igt@runner@aborted.html [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20328/shard-apl7/igt@runner@aborted.html [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642 [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099 [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118 [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319 [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436 [i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542 [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#1804]: https://gitlab.freedesktop.org/drm/intel/issues/1804 [i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2105]: https://gitlab.freedesktop.org/drm/intel/issues/2105 [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2410]: https://gitlab.freedesktop.org/drm/intel/issues/2410 [i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426 [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437 [i915#2505]: https://gitlab.freedesktop.org/drm/intel/issues/2505 [i915#2642]: https://gitlab.freedesktop.org/drm/intel/issues/2642 [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265 [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672 [i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684 [i915#2782]: https://gitlab.freedesktop.org/drm/intel/issues/2782 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2849]: https://gitlab.freedesktop.org/drm/intel/issues/2849 [i915#2895]: https://gitlab.freedesktop.org/drm/intel/issues/2895 [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920 [i915#295]: https://gitlab.freedesktop.org/drm/intel/issues/295 [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994 [i915#300]: https://gitlab.freedesktop.org/drm/intel/issues/300 [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002 [i915#307]: https://gitlab.freedesktop.org/drm/intel/issues/307 [i915#3316]: https://gitlab.freedesktop.org/drm/intel/issues/3316 [i915#3363]: https://gitlab.freedesktop.org/drm/intel/issues/3363 [i915#3462]: https://gitlab.freedesktop.org/drm/intel/issues/3462 [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454 [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 [i915#588]: https://gitlab.freedesktop.org/drm/intel/issues/588 [i915#602]: https://gitlab.freedesktop.org/drm/intel/issues/602 [i915#636]: https://gitlab.freedesktop.org/drm/intel/issues/636 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716 [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92 [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95 Participating hosts (11 -> 11) ------------------------------ No changes in participating hosts Build changes ------------- * Linux: CI_DRM_10202 -> Patchwork_20328 CI-20190529: 20190529 CI_DRM_10202: fd6558f89b99a9e2ce6e6f7bfe2c1ccff83064df @ git://anongit.freedesktop.org/gfx-ci/linux IGT_6103: 3aa79e55e73d4a49a5222e5dfde486b800a29fe7 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_20328: 009255ef433264ae4e68fb2ab67404f3e3222d21 @ 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_20328/index.html [-- Attachment #1.2: Type: text/html, Size: 35955 bytes --] [-- Attachment #2: Type: text/plain, Size: 160 bytes --] _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Intel-gfx] [PATCH v2] drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc 2021-06-10 9:05 [Intel-gfx] [PATCH v2] drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc Jani Nikula 2021-06-10 10:02 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork 2021-06-10 11:16 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork @ 2021-06-11 23:18 ` Navare, Manasi 2021-06-14 8:20 ` Jani Nikula 2 siblings, 1 reply; 7+ messages in thread From: Navare, Manasi @ 2021-06-11 23:18 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx On Thu, Jun 10, 2021 at 12:05:28PM +0300, Jani Nikula wrote: > Add a single point of truth for figuring out the primary/secondary crtc > for bigjoiner instead of duplicating the magic pipe +/- 1 in multiple > places. > > Also fix the pipe validity checks to properly take non-contiguous pipes > into account. The current checks may theoretically overflow > i915->pipe_to_crtc_mapping[pipe], albeit with a warning, due to fused > off pipes, as INTEL_NUM_PIPES() returns the actual number of pipes on > the platform, and the check is for INTEL_NUM_PIPES() == pipe + 1. > > Prefer primary/secondary terminology going forward. > > v2: > - Improved abstractions for pipe validity etc. > > Fixes: 8a029c113b17 ("drm/i915/dp: Modify VDSC helpers to configure DSC for Bigjoiner slave") > Fixes: d961eb20adb6 ("drm/i915/bigjoiner: atomic commit changes for uncompressed joiner") > Cc: Animesh Manna <animesh.manna@intel.com> > Cc: Manasi Navare <manasi.d.navare@intel.com> > Cc: Vandita Kulkarni <vandita.kulkarni@intel.com> > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > > --- > > Dropped patch 2/2 [1], as the pipes need to be adjacent for big joiner, > even if pipes have been fused off. > > [1] https://patchwork.freedesktop.org/patch/msgid/20210603122842.22496-2-jani.nikula@intel.com > --- > drivers/gpu/drm/i915/display/intel_display.c | 7 ++-- > .../drm/i915/display/intel_display_types.h | 8 ++++ > drivers/gpu/drm/i915/display/intel_vdsc.c | 40 +++++++++++++------ > drivers/gpu/drm/i915/display/intel_vdsc.h | 1 + > 4 files changed, 40 insertions(+), 16 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c > index 362bff9beb5c..3bad4e00f7be 100644 > --- a/drivers/gpu/drm/i915/display/intel_display.c > +++ b/drivers/gpu/drm/i915/display/intel_display.c > @@ -9618,7 +9618,6 @@ static int intel_atomic_check_bigjoiner(struct intel_atomic_state *state, > struct intel_crtc_state *old_crtc_state, > struct intel_crtc_state *new_crtc_state) > { > - struct drm_i915_private *dev_priv = to_i915(state->base.dev); > struct intel_crtc_state *slave_crtc_state, *master_crtc_state; > struct intel_crtc *slave, *master; > > @@ -9634,15 +9633,15 @@ static int intel_atomic_check_bigjoiner(struct intel_atomic_state *state, > if (!new_crtc_state->bigjoiner) > return 0; > > - if (1 + crtc->pipe >= INTEL_NUM_PIPES(dev_priv)) { > + slave = intel_dsc_get_bigjoiner_secondary(crtc); > + if (!slave) { > DRM_DEBUG_KMS("[CRTC:%d:%s] Big joiner configuration requires " > "CRTC + 1 to be used, doesn't exist\n", > crtc->base.base.id, crtc->base.name); > return -EINVAL; > } > > - slave = new_crtc_state->bigjoiner_linked_crtc = > - intel_get_crtc_for_pipe(dev_priv, crtc->pipe + 1); > + new_crtc_state->bigjoiner_linked_crtc = slave; > slave_crtc_state = intel_atomic_get_crtc_state(&state->base, slave); > master = crtc; > if (IS_ERR(slave_crtc_state)) > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h > index 15e91a99c8b9..7d64d8487fbe 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_types.h > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h > @@ -1723,6 +1723,14 @@ vlv_pipe_to_channel(enum pipe pipe) > } > } > > +static inline bool intel_pipe_valid(struct drm_i915_private *i915, enum pipe pipe) > +{ > + return (pipe >= 0 && > + pipe < ARRAY_SIZE(i915->pipe_to_crtc_mapping) && > + INTEL_INFO(i915)->pipe_mask & BIT(pipe) && > + i915->pipe_to_crtc_mapping[pipe]); So no need to check INTEL_NUM_PIPES as long as the index exists in pipe_to_crtc_mappings correct? > +} > + > static inline struct intel_crtc * > intel_get_first_crtc(struct drm_i915_private *dev_priv) > { > diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c > index 7121b66bf96d..85749370508c 100644 > --- a/drivers/gpu/drm/i915/display/intel_vdsc.c > +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c > @@ -1106,6 +1106,27 @@ static i915_reg_t dss_ctl2_reg(const struct intel_crtc_state *crtc_state) > return is_pipe_dsc(crtc_state) ? ICL_PIPE_DSS_CTL2(pipe) : DSS_CTL2; > } > > +static struct intel_crtc * > +_get_crtc_for_pipe(struct drm_i915_private *i915, enum pipe pipe) > +{ > + if (!intel_pipe_valid(i915, pipe)) > + return NULL; > + > + return intel_get_crtc_for_pipe(i915, pipe); > +} Can we not include intel_pipe_valid() check in intel_get_crtc_for_pipe() so that any other function that calls intel_get_crtc_for_pipe() also validates the pipe ? Manasi > + > +struct intel_crtc * > +intel_dsc_get_bigjoiner_secondary(const struct intel_crtc *primary_crtc) > +{ > + return _get_crtc_for_pipe(to_i915(primary_crtc->base.dev), primary_crtc->pipe + 1); > +} > + > +static struct intel_crtc * > +intel_dsc_get_bigjoiner_primary(const struct intel_crtc *secondary_crtc) > +{ > + return _get_crtc_for_pipe(to_i915(secondary_crtc->base.dev), secondary_crtc->pipe - 1); > +} > + > void intel_uncompressed_joiner_enable(const struct intel_crtc_state *crtc_state) > { > struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); > @@ -1178,15 +1199,13 @@ void intel_uncompressed_joiner_get_config(struct intel_crtc_state *crtc_state) > dss_ctl1 = intel_de_read(dev_priv, dss_ctl1_reg(crtc_state)); > if (dss_ctl1 & UNCOMPRESSED_JOINER_MASTER) { > crtc_state->bigjoiner = true; > - if (!WARN_ON(INTEL_NUM_PIPES(dev_priv) == crtc->pipe + 1)) > - crtc_state->bigjoiner_linked_crtc = > - intel_get_crtc_for_pipe(dev_priv, crtc->pipe + 1); > + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_secondary(crtc); > + drm_WARN_ON(&dev_priv->drm, !crtc_state->bigjoiner_linked_crtc); > } else if (dss_ctl1 & UNCOMPRESSED_JOINER_SLAVE) { > crtc_state->bigjoiner = true; > crtc_state->bigjoiner_slave = true; > - if (!WARN_ON(crtc->pipe == PIPE_A)) > - crtc_state->bigjoiner_linked_crtc = > - intel_get_crtc_for_pipe(dev_priv, crtc->pipe - 1); > + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_primary(crtc); > + drm_WARN_ON(&dev_priv->drm, !crtc_state->bigjoiner_linked_crtc); > } > } > > @@ -1224,14 +1243,11 @@ void intel_dsc_get_config(struct intel_crtc_state *crtc_state) > > if (!(dss_ctl1 & MASTER_BIG_JOINER_ENABLE)) { > crtc_state->bigjoiner_slave = true; > - if (!WARN_ON(crtc->pipe == PIPE_A)) > - crtc_state->bigjoiner_linked_crtc = > - intel_get_crtc_for_pipe(dev_priv, crtc->pipe - 1); > + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_primary(crtc); > } else { > - if (!WARN_ON(INTEL_NUM_PIPES(dev_priv) == crtc->pipe + 1)) > - crtc_state->bigjoiner_linked_crtc = > - intel_get_crtc_for_pipe(dev_priv, crtc->pipe + 1); > + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_secondary(crtc); > } > + drm_WARN_ON(&dev_priv->drm, !crtc_state->bigjoiner_linked_crtc); > } > > /* FIXME: add more state readout as needed */ > diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.h b/drivers/gpu/drm/i915/display/intel_vdsc.h > index fe4d45561253..dfb1fd38deb4 100644 > --- a/drivers/gpu/drm/i915/display/intel_vdsc.h > +++ b/drivers/gpu/drm/i915/display/intel_vdsc.h > @@ -22,5 +22,6 @@ void intel_uncompressed_joiner_get_config(struct intel_crtc_state *crtc_state); > void intel_dsc_get_config(struct intel_crtc_state *crtc_state); > enum intel_display_power_domain > intel_dsc_power_domain(const struct intel_crtc_state *crtc_state); > +struct intel_crtc *intel_dsc_get_bigjoiner_secondary(const struct intel_crtc *primary_crtc); > > #endif /* __INTEL_VDSC_H__ */ > -- > 2.20.1 > _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Intel-gfx] [PATCH v2] drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc 2021-06-11 23:18 ` [Intel-gfx] [PATCH v2] " Navare, Manasi @ 2021-06-14 8:20 ` Jani Nikula 2021-06-21 21:34 ` Navare, Manasi 0 siblings, 1 reply; 7+ messages in thread From: Jani Nikula @ 2021-06-14 8:20 UTC (permalink / raw) To: Navare, Manasi; +Cc: intel-gfx On Fri, 11 Jun 2021, "Navare, Manasi" <manasi.d.navare@intel.com> wrote: > On Thu, Jun 10, 2021 at 12:05:28PM +0300, Jani Nikula wrote: >> Add a single point of truth for figuring out the primary/secondary crtc >> for bigjoiner instead of duplicating the magic pipe +/- 1 in multiple >> places. >> >> Also fix the pipe validity checks to properly take non-contiguous pipes >> into account. The current checks may theoretically overflow >> i915->pipe_to_crtc_mapping[pipe], albeit with a warning, due to fused >> off pipes, as INTEL_NUM_PIPES() returns the actual number of pipes on >> the platform, and the check is for INTEL_NUM_PIPES() == pipe + 1. >> >> Prefer primary/secondary terminology going forward. >> >> v2: >> - Improved abstractions for pipe validity etc. >> >> Fixes: 8a029c113b17 ("drm/i915/dp: Modify VDSC helpers to configure DSC for Bigjoiner slave") >> Fixes: d961eb20adb6 ("drm/i915/bigjoiner: atomic commit changes for uncompressed joiner") >> Cc: Animesh Manna <animesh.manna@intel.com> >> Cc: Manasi Navare <manasi.d.navare@intel.com> >> Cc: Vandita Kulkarni <vandita.kulkarni@intel.com> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> >> >> --- >> >> Dropped patch 2/2 [1], as the pipes need to be adjacent for big joiner, >> even if pipes have been fused off. >> >> [1] https://patchwork.freedesktop.org/patch/msgid/20210603122842.22496-2-jani.nikula@intel.com >> --- >> drivers/gpu/drm/i915/display/intel_display.c | 7 ++-- >> .../drm/i915/display/intel_display_types.h | 8 ++++ >> drivers/gpu/drm/i915/display/intel_vdsc.c | 40 +++++++++++++------ >> drivers/gpu/drm/i915/display/intel_vdsc.h | 1 + >> 4 files changed, 40 insertions(+), 16 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c >> index 362bff9beb5c..3bad4e00f7be 100644 >> --- a/drivers/gpu/drm/i915/display/intel_display.c >> +++ b/drivers/gpu/drm/i915/display/intel_display.c >> @@ -9618,7 +9618,6 @@ static int intel_atomic_check_bigjoiner(struct intel_atomic_state *state, >> struct intel_crtc_state *old_crtc_state, >> struct intel_crtc_state *new_crtc_state) >> { >> - struct drm_i915_private *dev_priv = to_i915(state->base.dev); >> struct intel_crtc_state *slave_crtc_state, *master_crtc_state; >> struct intel_crtc *slave, *master; >> >> @@ -9634,15 +9633,15 @@ static int intel_atomic_check_bigjoiner(struct intel_atomic_state *state, >> if (!new_crtc_state->bigjoiner) >> return 0; >> >> - if (1 + crtc->pipe >= INTEL_NUM_PIPES(dev_priv)) { >> + slave = intel_dsc_get_bigjoiner_secondary(crtc); >> + if (!slave) { >> DRM_DEBUG_KMS("[CRTC:%d:%s] Big joiner configuration requires " >> "CRTC + 1 to be used, doesn't exist\n", >> crtc->base.base.id, crtc->base.name); >> return -EINVAL; >> } >> >> - slave = new_crtc_state->bigjoiner_linked_crtc = >> - intel_get_crtc_for_pipe(dev_priv, crtc->pipe + 1); >> + new_crtc_state->bigjoiner_linked_crtc = slave; >> slave_crtc_state = intel_atomic_get_crtc_state(&state->base, slave); >> master = crtc; >> if (IS_ERR(slave_crtc_state)) >> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h >> index 15e91a99c8b9..7d64d8487fbe 100644 >> --- a/drivers/gpu/drm/i915/display/intel_display_types.h >> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h >> @@ -1723,6 +1723,14 @@ vlv_pipe_to_channel(enum pipe pipe) >> } >> } >> >> +static inline bool intel_pipe_valid(struct drm_i915_private *i915, enum pipe pipe) >> +{ >> + return (pipe >= 0 && >> + pipe < ARRAY_SIZE(i915->pipe_to_crtc_mapping) && >> + INTEL_INFO(i915)->pipe_mask & BIT(pipe) && >> + i915->pipe_to_crtc_mapping[pipe]); > > So no need to check INTEL_NUM_PIPES as long as the index exists in pipe_to_crtc_mappings correct? Checking against INTEL_NUM_PIPES() is just plain wrong, because pipe may be >= INTEL_NUM_PIPES() if pipes have been fused off. > >> +} >> + >> static inline struct intel_crtc * >> intel_get_first_crtc(struct drm_i915_private *dev_priv) >> { >> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c >> index 7121b66bf96d..85749370508c 100644 >> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c >> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c >> @@ -1106,6 +1106,27 @@ static i915_reg_t dss_ctl2_reg(const struct intel_crtc_state *crtc_state) >> return is_pipe_dsc(crtc_state) ? ICL_PIPE_DSS_CTL2(pipe) : DSS_CTL2; >> } >> >> +static struct intel_crtc * >> +_get_crtc_for_pipe(struct drm_i915_private *i915, enum pipe pipe) >> +{ >> + if (!intel_pipe_valid(i915, pipe)) >> + return NULL; >> + >> + return intel_get_crtc_for_pipe(i915, pipe); >> +} > > Can we not include intel_pipe_valid() check in intel_get_crtc_for_pipe() so that any other function that calls intel_get_crtc_for_pipe() also > validates the pipe ? There's a use case for intel_dsc_get_bigjoiner_secondary() that requires graceful error handling withouth a WARN. intel_get_crtc_for_pipe() always WARNs on invalid pipe. We should probably use intel_pipe_valid() in intel_get_crtc_for_pipe() too, and WARN, but that's for another patch another time. BR, Jani. > > Manasi > > >> + >> +struct intel_crtc * >> +intel_dsc_get_bigjoiner_secondary(const struct intel_crtc *primary_crtc) >> +{ >> + return _get_crtc_for_pipe(to_i915(primary_crtc->base.dev), primary_crtc->pipe + 1); >> +} >> + >> +static struct intel_crtc * >> +intel_dsc_get_bigjoiner_primary(const struct intel_crtc *secondary_crtc) >> +{ >> + return _get_crtc_for_pipe(to_i915(secondary_crtc->base.dev), secondary_crtc->pipe - 1); >> +} >> + >> void intel_uncompressed_joiner_enable(const struct intel_crtc_state *crtc_state) >> { >> struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); >> @@ -1178,15 +1199,13 @@ void intel_uncompressed_joiner_get_config(struct intel_crtc_state *crtc_state) >> dss_ctl1 = intel_de_read(dev_priv, dss_ctl1_reg(crtc_state)); >> if (dss_ctl1 & UNCOMPRESSED_JOINER_MASTER) { >> crtc_state->bigjoiner = true; >> - if (!WARN_ON(INTEL_NUM_PIPES(dev_priv) == crtc->pipe + 1)) >> - crtc_state->bigjoiner_linked_crtc = >> - intel_get_crtc_for_pipe(dev_priv, crtc->pipe + 1); >> + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_secondary(crtc); >> + drm_WARN_ON(&dev_priv->drm, !crtc_state->bigjoiner_linked_crtc); >> } else if (dss_ctl1 & UNCOMPRESSED_JOINER_SLAVE) { >> crtc_state->bigjoiner = true; >> crtc_state->bigjoiner_slave = true; >> - if (!WARN_ON(crtc->pipe == PIPE_A)) >> - crtc_state->bigjoiner_linked_crtc = >> - intel_get_crtc_for_pipe(dev_priv, crtc->pipe - 1); >> + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_primary(crtc); >> + drm_WARN_ON(&dev_priv->drm, !crtc_state->bigjoiner_linked_crtc); >> } >> } >> >> @@ -1224,14 +1243,11 @@ void intel_dsc_get_config(struct intel_crtc_state *crtc_state) >> >> if (!(dss_ctl1 & MASTER_BIG_JOINER_ENABLE)) { >> crtc_state->bigjoiner_slave = true; >> - if (!WARN_ON(crtc->pipe == PIPE_A)) >> - crtc_state->bigjoiner_linked_crtc = >> - intel_get_crtc_for_pipe(dev_priv, crtc->pipe - 1); >> + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_primary(crtc); >> } else { >> - if (!WARN_ON(INTEL_NUM_PIPES(dev_priv) == crtc->pipe + 1)) >> - crtc_state->bigjoiner_linked_crtc = >> - intel_get_crtc_for_pipe(dev_priv, crtc->pipe + 1); >> + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_secondary(crtc); >> } >> + drm_WARN_ON(&dev_priv->drm, !crtc_state->bigjoiner_linked_crtc); >> } >> >> /* FIXME: add more state readout as needed */ >> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.h b/drivers/gpu/drm/i915/display/intel_vdsc.h >> index fe4d45561253..dfb1fd38deb4 100644 >> --- a/drivers/gpu/drm/i915/display/intel_vdsc.h >> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.h >> @@ -22,5 +22,6 @@ void intel_uncompressed_joiner_get_config(struct intel_crtc_state *crtc_state); >> void intel_dsc_get_config(struct intel_crtc_state *crtc_state); >> enum intel_display_power_domain >> intel_dsc_power_domain(const struct intel_crtc_state *crtc_state); >> +struct intel_crtc *intel_dsc_get_bigjoiner_secondary(const struct intel_crtc *primary_crtc); >> >> #endif /* __INTEL_VDSC_H__ */ >> -- >> 2.20.1 >> -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Intel-gfx] [PATCH v2] drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc 2021-06-14 8:20 ` Jani Nikula @ 2021-06-21 21:34 ` Navare, Manasi 2021-06-22 13:41 ` Jani Nikula 0 siblings, 1 reply; 7+ messages in thread From: Navare, Manasi @ 2021-06-21 21:34 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx On Mon, Jun 14, 2021 at 11:20:41AM +0300, Jani Nikula wrote: > On Fri, 11 Jun 2021, "Navare, Manasi" <manasi.d.navare@intel.com> wrote: > > On Thu, Jun 10, 2021 at 12:05:28PM +0300, Jani Nikula wrote: > >> Add a single point of truth for figuring out the primary/secondary crtc > >> for bigjoiner instead of duplicating the magic pipe +/- 1 in multiple > >> places. > >> > >> Also fix the pipe validity checks to properly take non-contiguous pipes > >> into account. The current checks may theoretically overflow > >> i915->pipe_to_crtc_mapping[pipe], albeit with a warning, due to fused > >> off pipes, as INTEL_NUM_PIPES() returns the actual number of pipes on > >> the platform, and the check is for INTEL_NUM_PIPES() == pipe + 1. > >> > >> Prefer primary/secondary terminology going forward. > >> > >> v2: > >> - Improved abstractions for pipe validity etc. > >> > >> Fixes: 8a029c113b17 ("drm/i915/dp: Modify VDSC helpers to configure DSC for Bigjoiner slave") > >> Fixes: d961eb20adb6 ("drm/i915/bigjoiner: atomic commit changes for uncompressed joiner") > >> Cc: Animesh Manna <animesh.manna@intel.com> > >> Cc: Manasi Navare <manasi.d.navare@intel.com> > >> Cc: Vandita Kulkarni <vandita.kulkarni@intel.com> > >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> > >> > >> --- > >> > >> Dropped patch 2/2 [1], as the pipes need to be adjacent for big joiner, > >> even if pipes have been fused off. > >> > >> [1] https://patchwork.freedesktop.org/patch/msgid/20210603122842.22496-2-jani.nikula@intel.com > >> --- > >> drivers/gpu/drm/i915/display/intel_display.c | 7 ++-- > >> .../drm/i915/display/intel_display_types.h | 8 ++++ > >> drivers/gpu/drm/i915/display/intel_vdsc.c | 40 +++++++++++++------ > >> drivers/gpu/drm/i915/display/intel_vdsc.h | 1 + > >> 4 files changed, 40 insertions(+), 16 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c > >> index 362bff9beb5c..3bad4e00f7be 100644 > >> --- a/drivers/gpu/drm/i915/display/intel_display.c > >> +++ b/drivers/gpu/drm/i915/display/intel_display.c > >> @@ -9618,7 +9618,6 @@ static int intel_atomic_check_bigjoiner(struct intel_atomic_state *state, > >> struct intel_crtc_state *old_crtc_state, > >> struct intel_crtc_state *new_crtc_state) > >> { > >> - struct drm_i915_private *dev_priv = to_i915(state->base.dev); > >> struct intel_crtc_state *slave_crtc_state, *master_crtc_state; > >> struct intel_crtc *slave, *master; > >> > >> @@ -9634,15 +9633,15 @@ static int intel_atomic_check_bigjoiner(struct intel_atomic_state *state, > >> if (!new_crtc_state->bigjoiner) > >> return 0; > >> > >> - if (1 + crtc->pipe >= INTEL_NUM_PIPES(dev_priv)) { > >> + slave = intel_dsc_get_bigjoiner_secondary(crtc); > >> + if (!slave) { > >> DRM_DEBUG_KMS("[CRTC:%d:%s] Big joiner configuration requires " > >> "CRTC + 1 to be used, doesn't exist\n", > >> crtc->base.base.id, crtc->base.name); > >> return -EINVAL; > >> } > >> > >> - slave = new_crtc_state->bigjoiner_linked_crtc = > >> - intel_get_crtc_for_pipe(dev_priv, crtc->pipe + 1); > >> + new_crtc_state->bigjoiner_linked_crtc = slave; > >> slave_crtc_state = intel_atomic_get_crtc_state(&state->base, slave); > >> master = crtc; > >> if (IS_ERR(slave_crtc_state)) > >> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h > >> index 15e91a99c8b9..7d64d8487fbe 100644 > >> --- a/drivers/gpu/drm/i915/display/intel_display_types.h > >> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h > >> @@ -1723,6 +1723,14 @@ vlv_pipe_to_channel(enum pipe pipe) > >> } > >> } > >> > >> +static inline bool intel_pipe_valid(struct drm_i915_private *i915, enum pipe pipe) > >> +{ > >> + return (pipe >= 0 && > >> + pipe < ARRAY_SIZE(i915->pipe_to_crtc_mapping) && > >> + INTEL_INFO(i915)->pipe_mask & BIT(pipe) && > >> + i915->pipe_to_crtc_mapping[pipe]); > > > > So no need to check INTEL_NUM_PIPES as long as the index exists in pipe_to_crtc_mappings correct? > > Checking against INTEL_NUM_PIPES() is just plain wrong, because pipe may > be >= INTEL_NUM_PIPES() if pipes have been fused off. Okay yes agree > > > > >> +} > >> + > >> static inline struct intel_crtc * > >> intel_get_first_crtc(struct drm_i915_private *dev_priv) > >> { > >> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c > >> index 7121b66bf96d..85749370508c 100644 > >> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c > >> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c > >> @@ -1106,6 +1106,27 @@ static i915_reg_t dss_ctl2_reg(const struct intel_crtc_state *crtc_state) > >> return is_pipe_dsc(crtc_state) ? ICL_PIPE_DSS_CTL2(pipe) : DSS_CTL2; > >> } > >> > >> +static struct intel_crtc * > >> +_get_crtc_for_pipe(struct drm_i915_private *i915, enum pipe pipe) > >> +{ > >> + if (!intel_pipe_valid(i915, pipe)) > >> + return NULL; > >> + > >> + return intel_get_crtc_for_pipe(i915, pipe); > >> +} > > > > Can we not include intel_pipe_valid() check in intel_get_crtc_for_pipe() so that any other function that calls intel_get_crtc_for_pipe() also > > validates the pipe ? > > There's a use case for intel_dsc_get_bigjoiner_secondary() that requires > graceful error handling withouth a WARN. intel_get_crtc_for_pipe() > always WARNs on invalid pipe. > > We should probably use intel_pipe_valid() in intel_get_crtc_for_pipe() > too, and WARN, but that's for another patch another time. Okay sure. With these clarifications: Reviewed-by: Manasi Navare <manasi.dl.navare@intel.com> Manasi > > BR, > Jani. > > > > > > Manasi > > > > > >> + > >> +struct intel_crtc * > >> +intel_dsc_get_bigjoiner_secondary(const struct intel_crtc *primary_crtc) > >> +{ > >> + return _get_crtc_for_pipe(to_i915(primary_crtc->base.dev), primary_crtc->pipe + 1); > >> +} > >> + > >> +static struct intel_crtc * > >> +intel_dsc_get_bigjoiner_primary(const struct intel_crtc *secondary_crtc) > >> +{ > >> + return _get_crtc_for_pipe(to_i915(secondary_crtc->base.dev), secondary_crtc->pipe - 1); > >> +} > >> + > >> void intel_uncompressed_joiner_enable(const struct intel_crtc_state *crtc_state) > >> { > >> struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); > >> @@ -1178,15 +1199,13 @@ void intel_uncompressed_joiner_get_config(struct intel_crtc_state *crtc_state) > >> dss_ctl1 = intel_de_read(dev_priv, dss_ctl1_reg(crtc_state)); > >> if (dss_ctl1 & UNCOMPRESSED_JOINER_MASTER) { > >> crtc_state->bigjoiner = true; > >> - if (!WARN_ON(INTEL_NUM_PIPES(dev_priv) == crtc->pipe + 1)) > >> - crtc_state->bigjoiner_linked_crtc = > >> - intel_get_crtc_for_pipe(dev_priv, crtc->pipe + 1); > >> + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_secondary(crtc); > >> + drm_WARN_ON(&dev_priv->drm, !crtc_state->bigjoiner_linked_crtc); > >> } else if (dss_ctl1 & UNCOMPRESSED_JOINER_SLAVE) { > >> crtc_state->bigjoiner = true; > >> crtc_state->bigjoiner_slave = true; > >> - if (!WARN_ON(crtc->pipe == PIPE_A)) > >> - crtc_state->bigjoiner_linked_crtc = > >> - intel_get_crtc_for_pipe(dev_priv, crtc->pipe - 1); > >> + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_primary(crtc); > >> + drm_WARN_ON(&dev_priv->drm, !crtc_state->bigjoiner_linked_crtc); > >> } > >> } > >> > >> @@ -1224,14 +1243,11 @@ void intel_dsc_get_config(struct intel_crtc_state *crtc_state) > >> > >> if (!(dss_ctl1 & MASTER_BIG_JOINER_ENABLE)) { > >> crtc_state->bigjoiner_slave = true; > >> - if (!WARN_ON(crtc->pipe == PIPE_A)) > >> - crtc_state->bigjoiner_linked_crtc = > >> - intel_get_crtc_for_pipe(dev_priv, crtc->pipe - 1); > >> + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_primary(crtc); > >> } else { > >> - if (!WARN_ON(INTEL_NUM_PIPES(dev_priv) == crtc->pipe + 1)) > >> - crtc_state->bigjoiner_linked_crtc = > >> - intel_get_crtc_for_pipe(dev_priv, crtc->pipe + 1); > >> + crtc_state->bigjoiner_linked_crtc = intel_dsc_get_bigjoiner_secondary(crtc); > >> } > >> + drm_WARN_ON(&dev_priv->drm, !crtc_state->bigjoiner_linked_crtc); > >> } > >> > >> /* FIXME: add more state readout as needed */ > >> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.h b/drivers/gpu/drm/i915/display/intel_vdsc.h > >> index fe4d45561253..dfb1fd38deb4 100644 > >> --- a/drivers/gpu/drm/i915/display/intel_vdsc.h > >> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.h > >> @@ -22,5 +22,6 @@ void intel_uncompressed_joiner_get_config(struct intel_crtc_state *crtc_state); > >> void intel_dsc_get_config(struct intel_crtc_state *crtc_state); > >> enum intel_display_power_domain > >> intel_dsc_power_domain(const struct intel_crtc_state *crtc_state); > >> +struct intel_crtc *intel_dsc_get_bigjoiner_secondary(const struct intel_crtc *primary_crtc); > >> > >> #endif /* __INTEL_VDSC_H__ */ > >> -- > >> 2.20.1 > >> > > -- > Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Intel-gfx] [PATCH v2] drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc 2021-06-21 21:34 ` Navare, Manasi @ 2021-06-22 13:41 ` Jani Nikula 0 siblings, 0 replies; 7+ messages in thread From: Jani Nikula @ 2021-06-22 13:41 UTC (permalink / raw) To: Navare, Manasi; +Cc: intel-gfx On Mon, 21 Jun 2021, "Navare, Manasi" <manasi.d.navare@intel.com> wrote: > Reviewed-by: Manasi Navare <manasi.dl.navare@intel.com> Thanks, pushed to drm-intel-next. BR, Jani -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-06-22 13:41 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-06-10 9:05 [Intel-gfx] [PATCH v2] drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc Jani Nikula 2021-06-10 10:02 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork 2021-06-10 11:16 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork 2021-06-11 23:18 ` [Intel-gfx] [PATCH v2] " Navare, Manasi 2021-06-14 8:20 ` Jani Nikula 2021-06-21 21:34 ` Navare, Manasi 2021-06-22 13:41 ` Jani Nikula
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.