✓ Fi.CI.BAT: success for Extend Wa14019159160 and enable for ARL and DG2

2024-06-21 Thread Patchwork
== Series Details ==

Series: Extend Wa14019159160 and enable for ARL and DG2
URL   : https://patchwork.freedesktop.org/series/135208/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_14987 -> Patchwork_135208v1


Summary
---

  **SUCCESS**

  No regressions found.

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

Participating hosts (42 -> 40)
--

  Additional (1): bat-arls-1 
  Missing(3): fi-kbl-8809g fi-snb-2520m fi-bsw-n3050 

Possible new issues
---

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

### IGT changes ###

 Suppressed 

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

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-c-dp-8:
- {bat-mtlp-9}:   NOTRUN -> [FAIL][1] +1 other test fail
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-mtlp-9/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-n...@pipe-c-dp-8.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@debugfs_test@basic-hwmon:
- bat-arls-1: NOTRUN -> [SKIP][2] ([i915#9318])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-arls-1/igt@debugfs_t...@basic-hwmon.html

  * igt@gem_lmem_swapping@basic:
- bat-arls-1: NOTRUN -> [SKIP][3] ([i915#10213]) +3 other tests skip
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-arls-1/igt@gem_lmem_swapp...@basic.html

  * igt@gem_mmap@basic:
- bat-arls-1: NOTRUN -> [SKIP][4] ([i915#11343] / [i915#4083])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-arls-1/igt@gem_m...@basic.html

  * igt@gem_render_tiled_blits@basic:
- bat-arls-1: NOTRUN -> [SKIP][5] ([i915#10197] / [i915#10211] / 
[i915#4079])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-arls-1/igt@gem_render_tiled_bl...@basic.html

  * igt@gem_tiled_blits@basic:
- bat-arls-1: NOTRUN -> [SKIP][6] ([i915#10196] / [i915#4077]) +2 
other tests skip
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-arls-1/igt@gem_tiled_bl...@basic.html

  * igt@gem_tiled_pread_basic:
- bat-arls-1: NOTRUN -> [SKIP][7] ([i915#10206] / [i915#4079])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-arls-1/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_rps@basic-api:
- bat-arls-1: NOTRUN -> [SKIP][8] ([i915#10209])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-arls-1/igt@i915_pm_...@basic-api.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
- bat-arls-1: NOTRUN -> [SKIP][9] ([i915#10200]) +9 other tests skip
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-arls-1/igt@kms_addfb_ba...@basic-y-tiled-legacy.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-arls-1: NOTRUN -> [SKIP][10] ([i915#10202] / [i915#11346]) +1 
other test skip
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-arls-1/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_dsc@dsc-basic:
- bat-arls-1: NOTRUN -> [SKIP][11] ([i915#11346] / [i915#9886])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-arls-1/igt@kms_...@dsc-basic.html

  * igt@kms_force_connector_basic@force-load-detect:
- bat-arls-1: NOTRUN -> [SKIP][12] ([i915#10207] / [i915#11346])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-arls-1/igt@kms_force_connector_ba...@force-load-detect.html

  * igt@kms_pipe_crc_basic@hang-read-crc@pipe-c-dp-1:
- bat-dg2-8:  [PASS][13] -> [FAIL][14] ([i915#11359])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14987/bat-dg2-8/igt@kms_pipe_crc_basic@hang-read-...@pipe-c-dp-1.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-dg2-8/igt@kms_pipe_crc_basic@hang-read-...@pipe-c-dp-1.html

  * igt@kms_pm_backlight@basic-brightness:
- bat-arls-1: NOTRUN -> [SKIP][15] ([i915#11346] / [i915#9812])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-arls-1/igt@kms_pm_backli...@basic-brightness.html

  * igt@kms_psr@psr-primary-mmap-gtt:
- bat-arls-1: NOTRUN -> [SKIP][16] ([i915#11346] / [i915#9732]) +3 
other tests skip
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135208v1/bat-arls-1/igt@kms_...@psr-primary-mmap-gtt.html

  * igt@kms_psr@psr-primary-page-flip@edp-1:
- bat-jsl-3:  [PASS][17] -> [SKIP][18] ([i915#9688]) +3 other tests 
skip
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14987/bat-jsl-3/igt@kms_psr@psr-prim

✗ Fi.CI.SPARSE: warning for Extend Wa14019159160 and enable for ARL and DG2

2024-06-21 Thread Patchwork
== Series Details ==

Series: Extend Wa14019159160 and enable for ARL and DG2
URL   : https://patchwork.freedesktop.org/series/135208/
State : warning

== Summary ==

Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.




✓ Fi.CI.BAT: success for Extend Wa14019159160 and enable for ARL

2024-06-21 Thread Patchwork
== Series Details ==

Series: Extend Wa14019159160 and enable for ARL
URL   : https://patchwork.freedesktop.org/series/135205/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_14987 -> Patchwork_135205v1


Summary
---

  **SUCCESS**

  No regressions found.

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

Participating hosts (42 -> 42)
--

  Additional (3): bat-kbl-2 bat-arls-1 bat-mtlp-6 
  Missing(3): bat-mtlp-8 fi-snb-2520m fi-bsw-n3050 

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@debugfs_test@basic-hwmon:
- bat-arls-1: NOTRUN -> [SKIP][1] ([i915#9318])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-arls-1/igt@debugfs_t...@basic-hwmon.html
- bat-mtlp-6: NOTRUN -> [SKIP][2] ([i915#9318])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-mtlp-6/igt@debugfs_t...@basic-hwmon.html

  * igt@fbdev@info:
- bat-kbl-2:  NOTRUN -> [SKIP][3] ([i915#1849])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-kbl-2/igt@fb...@info.html
- bat-mtlp-6: NOTRUN -> [SKIP][4] ([i915#1849] / [i915#2582])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-mtlp-6/igt@fb...@info.html

  * igt@fbdev@write:
- bat-mtlp-6: NOTRUN -> [SKIP][5] ([i915#2582]) +3 other tests skip
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-mtlp-6/igt@fb...@write.html

  * igt@gem_lmem_swapping@basic:
- bat-arls-1: NOTRUN -> [SKIP][6] ([i915#10213]) +3 other tests skip
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-arls-1/igt@gem_lmem_swapp...@basic.html

  * igt@gem_lmem_swapping@parallel-random-engines:
- bat-kbl-2:  NOTRUN -> [SKIP][7] +39 other tests skip
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-kbl-2/igt@gem_lmem_swapp...@parallel-random-engines.html

  * igt@gem_lmem_swapping@verify-random:
- bat-mtlp-6: NOTRUN -> [SKIP][8] ([i915#4613]) +3 other tests skip
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-mtlp-6/igt@gem_lmem_swapp...@verify-random.html

  * igt@gem_mmap@basic:
- bat-arls-1: NOTRUN -> [SKIP][9] ([i915#11343] / [i915#4083])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-arls-1/igt@gem_m...@basic.html
- bat-mtlp-6: NOTRUN -> [SKIP][10] ([i915#4083])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-mtlp-6/igt@gem_m...@basic.html

  * igt@gem_render_tiled_blits@basic:
- bat-arls-1: NOTRUN -> [SKIP][11] ([i915#10197] / [i915#10211] / 
[i915#4079])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-arls-1/igt@gem_render_tiled_bl...@basic.html

  * igt@gem_tiled_blits@basic:
- bat-arls-1: NOTRUN -> [SKIP][12] ([i915#10196] / [i915#4077]) +2 
other tests skip
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-arls-1/igt@gem_tiled_bl...@basic.html
- bat-mtlp-6: NOTRUN -> [SKIP][13] ([i915#4077]) +2 other tests skip
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-mtlp-6/igt@gem_tiled_bl...@basic.html

  * igt@gem_tiled_pread_basic:
- bat-mtlp-6: NOTRUN -> [SKIP][14] ([i915#4079]) +1 other test skip
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-mtlp-6/igt@gem_tiled_pread_basic.html
- bat-arls-1: NOTRUN -> [SKIP][15] ([i915#10206] / [i915#4079])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-arls-1/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_rps@basic-api:
- bat-arls-1: NOTRUN -> [SKIP][16] ([i915#10209])
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-arls-1/igt@i915_pm_...@basic-api.html
- bat-mtlp-6: NOTRUN -> [SKIP][17] ([i915#6621])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-mtlp-6/igt@i915_pm_...@basic-api.html

  * igt@kms_addfb_basic@addfb25-x-tiled-legacy:
- bat-mtlp-6: NOTRUN -> [SKIP][18] ([i915#4212] / [i915#9792]) +8 
other tests skip
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-mtlp-6/igt@kms_addfb_ba...@addfb25-x-tiled-legacy.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-mtlp-6: NOTRUN -> [SKIP][19] ([i915#5190] / [i915#9792])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-mtlp-6/igt@kms_addfb_ba...@addfb25-y-tiled-small-legacy.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
- bat-arls-1: NOTRUN -> [SKIP][20] ([i915#10200]) +9 other tests 
skip
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135205v1/bat-arls-1/igt

✗ Fi.CI.SPARSE: warning for Extend Wa14019159160 and enable for ARL

2024-06-21 Thread Patchwork
== Series Details ==

Series: Extend Wa14019159160 and enable for ARL
URL   : https://patchwork.freedesktop.org/series/135205/
State : warning

== Summary ==

Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.




[PATCH 0/3] [CI] Extend Wa14019159160 and enable for ARL and DG2

2024-06-21 Thread John . C . Harrison
From: John Harrison 

The context switch out workaround requires an extra piece on top.
Also, it applies to more platforms.

Signed-off-by: John Harrison 


John Harrison (3):
  drm/i915/arl: Enable Wa_14019159160 for ARL
  drm/i915/guc: Extend w/a 14019159160
  drm/i915/dg2: Enable Wa_14019159160 for DG2

 drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h |  1 +
 drivers/gpu/drm/i915/gt/uc/intel_guc.c|  3 ++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c| 19 ++-
 3 files changed, 13 insertions(+), 10 deletions(-)

-- 
2.43.2



[PATCH 3/3] drm/i915/dg2: Enable Wa_14019159160 for DG2

2024-06-21 Thread John . C . Harrison
From: John Harrison 

The context switch hold out workaround also applies to DG2.

Signed-off-by: John Harrison 
---
 drivers/gpu/drm/i915/gt/uc/intel_guc.c | 3 ++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
index 097fc6bd1285e..2a27bc625abe1 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
@@ -296,7 +296,8 @@ static u32 guc_ctl_wa_flags(struct intel_guc *guc)
 
/* Wa_16019325821 */
/* Wa_14019159160 */
-   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)))
+   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)) ||
+   IS_DG2(gt->i915))
flags |= GUC_WA_RCS_CCS_SWITCHOUT;
 
/*
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
index 46fabbfc775e0..2378e3c59def9 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
@@ -849,7 +849,8 @@ static void guc_waklv_init(struct intel_guc *guc)
remain = guc_ads_waklv_size(guc);
 
/* Wa_14019159160 */
-   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74))) {
+   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)) ||
+   IS_DG2(gt->i915)) {
guc_waklv_enable_simple(guc, &offset, &remain,
GUC_WORKAROUND_KLV_SERIALIZED_RA_MODE);
guc_waklv_enable_simple(guc, &offset, &remain,
-- 
2.43.2



[PATCH 1/3] drm/i915/arl: Enable Wa_14019159160 for ARL

2024-06-21 Thread John . C . Harrison
From: John Harrison 

The context switch out workaround also applies to ARL.

Signed-off-by: John Harrison 
---
 drivers/gpu/drm/i915/gt/uc/intel_guc.c | 2 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
index 5e60a34692af8..097fc6bd1285e 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
@@ -296,7 +296,7 @@ static u32 guc_ctl_wa_flags(struct intel_guc *guc)
 
/* Wa_16019325821 */
/* Wa_14019159160 */
-   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 71)))
+   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)))
flags |= GUC_WA_RCS_CCS_SWITCHOUT;
 
/*
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
index 7995f059f30df..f1fe5f9054538 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
@@ -850,7 +850,7 @@ static void guc_waklv_init(struct intel_guc *guc)
remain = guc_ads_waklv_size(guc);
 
/* Wa_14019159160 */
-   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 71)))
+   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)))
guc_waklv_enable_simple(guc,
GUC_WORKAROUND_KLV_SERIALIZED_RA_MODE,
&offset, &remain);
-- 
2.43.2



[PATCH 2/3] drm/i915/guc: Extend w/a 14019159160

2024-06-21 Thread John . C . Harrison
From: John Harrison 

There is a new part to an existing workaround, so enable that piece as
well.

v2: Extend even further.
v3: Drop DG2 as there are CI failures still to resolve. Also re-order
the parameters to a function to reduce excessive line wrapping.

Signed-off-by: John Harrison 
---
 drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h |  1 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c| 18 +-
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h 
b/drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
index 37ff539a6963d..0c709e6c15be7 100644
--- a/drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
+++ b/drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
@@ -107,6 +107,7 @@ enum {
 enum {
GUC_WORKAROUND_KLV_SERIALIZED_RA_MODE   = 
0x9001,
GUC_WORKAROUND_KLV_BLOCK_INTERRUPTS_WHEN_MGSR_BLOCKED   = 
0x9002,
+   GUC_WORKAROUND_KLV_AVOID_GFX_CLEAR_WHILE_ACTIVE = 
0x9006,
 };
 
 #endif /* _ABI_GUC_KLVS_ABI_H */
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
index f1fe5f9054538..46fabbfc775e0 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
@@ -815,8 +815,7 @@ guc_capture_prep_lists(struct intel_guc *guc)
return PAGE_ALIGN(total_size);
 }
 
-static void guc_waklv_enable_simple(struct intel_guc *guc,
-   u32 klv_id, u32 *offset, u32 *remain)
+static void guc_waklv_enable_simple(struct intel_guc *guc, u32 *offset, u32 
*remain, u32 klv_id)
 {
u32 size;
u32 klv_entry[] = {
@@ -850,19 +849,20 @@ static void guc_waklv_init(struct intel_guc *guc)
remain = guc_ads_waklv_size(guc);
 
/* Wa_14019159160 */
-   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)))
-   guc_waklv_enable_simple(guc,
-   GUC_WORKAROUND_KLV_SERIALIZED_RA_MODE,
-   &offset, &remain);
+   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74))) {
+   guc_waklv_enable_simple(guc, &offset, &remain,
+   GUC_WORKAROUND_KLV_SERIALIZED_RA_MODE);
+   guc_waklv_enable_simple(guc, &offset, &remain,
+   
GUC_WORKAROUND_KLV_AVOID_GFX_CLEAR_WHILE_ACTIVE);
+   }
 
/* Wa_16021333562 */
if ((GUC_FIRMWARE_VER(guc) >= MAKE_GUC_VER(70, 21, 1)) &&
(IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)) ||
 IS_MEDIA_GT_IP_RANGE(gt, IP_VER(13, 0), IP_VER(13, 0)) ||
 IS_DG2(gt->i915)))
-   guc_waklv_enable_simple(guc,
-   
GUC_WORKAROUND_KLV_BLOCK_INTERRUPTS_WHEN_MGSR_BLOCKED,
-   &offset, &remain);
+   guc_waklv_enable_simple(guc, &offset, &remain,
+   
GUC_WORKAROUND_KLV_BLOCK_INTERRUPTS_WHEN_MGSR_BLOCKED);
 
size = guc_ads_waklv_size(guc) - remain;
if (!size)
-- 
2.43.2



[PATCH 2/2] drm/i915/guc: Extend w/a 14019159160

2024-06-21 Thread John . C . Harrison
From: John Harrison 

There is a new part to an existing workaround, so enable that piece as
well.

v2: Extend even further.
v3: Drop DG2 as there are CI failures still to resolve. Also re-order
the parameters to a function to reduce excessive line wrapping.

Signed-off-by: John Harrison 
---
 drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h |  1 +
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c| 18 +-
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h 
b/drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
index 37ff539a6963d..0c709e6c15be7 100644
--- a/drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
+++ b/drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
@@ -107,6 +107,7 @@ enum {
 enum {
GUC_WORKAROUND_KLV_SERIALIZED_RA_MODE   = 
0x9001,
GUC_WORKAROUND_KLV_BLOCK_INTERRUPTS_WHEN_MGSR_BLOCKED   = 
0x9002,
+   GUC_WORKAROUND_KLV_AVOID_GFX_CLEAR_WHILE_ACTIVE = 
0x9006,
 };
 
 #endif /* _ABI_GUC_KLVS_ABI_H */
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
index f1fe5f9054538..46fabbfc775e0 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
@@ -815,8 +815,7 @@ guc_capture_prep_lists(struct intel_guc *guc)
return PAGE_ALIGN(total_size);
 }
 
-static void guc_waklv_enable_simple(struct intel_guc *guc,
-   u32 klv_id, u32 *offset, u32 *remain)
+static void guc_waklv_enable_simple(struct intel_guc *guc, u32 *offset, u32 
*remain, u32 klv_id)
 {
u32 size;
u32 klv_entry[] = {
@@ -850,19 +849,20 @@ static void guc_waklv_init(struct intel_guc *guc)
remain = guc_ads_waklv_size(guc);
 
/* Wa_14019159160 */
-   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)))
-   guc_waklv_enable_simple(guc,
-   GUC_WORKAROUND_KLV_SERIALIZED_RA_MODE,
-   &offset, &remain);
+   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74))) {
+   guc_waklv_enable_simple(guc, &offset, &remain,
+   GUC_WORKAROUND_KLV_SERIALIZED_RA_MODE);
+   guc_waklv_enable_simple(guc, &offset, &remain,
+   
GUC_WORKAROUND_KLV_AVOID_GFX_CLEAR_WHILE_ACTIVE);
+   }
 
/* Wa_16021333562 */
if ((GUC_FIRMWARE_VER(guc) >= MAKE_GUC_VER(70, 21, 1)) &&
(IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)) ||
 IS_MEDIA_GT_IP_RANGE(gt, IP_VER(13, 0), IP_VER(13, 0)) ||
 IS_DG2(gt->i915)))
-   guc_waklv_enable_simple(guc,
-   
GUC_WORKAROUND_KLV_BLOCK_INTERRUPTS_WHEN_MGSR_BLOCKED,
-   &offset, &remain);
+   guc_waklv_enable_simple(guc, &offset, &remain,
+   
GUC_WORKAROUND_KLV_BLOCK_INTERRUPTS_WHEN_MGSR_BLOCKED);
 
size = guc_ads_waklv_size(guc) - remain;
if (!size)
-- 
2.43.2



[PATCH 0/2] Extend Wa14019159160 and enable for ARL

2024-06-21 Thread John . C . Harrison
From: John Harrison 

The context switch out workaround requires an extra piece on top.
Also, it applies to more platforms.

Signed-off-by: John Harrison 


John Harrison (2):
  drm/i915/arl: Enable Wa_14019159160 for ARL
  drm/i915/guc: Extend w/a 14019159160

 drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h |  1 +
 drivers/gpu/drm/i915/gt/uc/intel_guc.c|  2 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c| 18 +-
 3 files changed, 11 insertions(+), 10 deletions(-)

-- 
2.43.2



[PATCH 1/2] drm/i915/arl: Enable Wa_14019159160 for ARL

2024-06-21 Thread John . C . Harrison
From: John Harrison 

The context switch out workaround also applies to ARL.

Signed-off-by: John Harrison 
---
 drivers/gpu/drm/i915/gt/uc/intel_guc.c | 2 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
index 5e60a34692af8..097fc6bd1285e 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
@@ -296,7 +296,7 @@ static u32 guc_ctl_wa_flags(struct intel_guc *guc)
 
/* Wa_16019325821 */
/* Wa_14019159160 */
-   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 71)))
+   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)))
flags |= GUC_WA_RCS_CCS_SWITCHOUT;
 
/*
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
index 7995f059f30df..f1fe5f9054538 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
@@ -850,7 +850,7 @@ static void guc_waklv_init(struct intel_guc *guc)
remain = guc_ads_waklv_size(guc);
 
/* Wa_14019159160 */
-   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 71)))
+   if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)))
guc_waklv_enable_simple(guc,
GUC_WORKAROUND_KLV_SERIALIZED_RA_MODE,
&offset, &remain);
-- 
2.43.2



[PATCH i-g-t] test/xe_gt_freq: Add helper to read RPe freq

2024-06-21 Thread Vinay Belgaumkar
We are seeing a possible switch in RPe right after RC6 wakeup.
Ensure we obtain the latest RPe by reading it every time.

Fixes: adcc68266b8e ("tests/intel/xe_gt_freq: Check for RPe freq updates")
Signed-off-by: Vinay Belgaumkar 
---
 tests/intel/xe_gt_freq.c | 43 ++--
 1 file changed, 19 insertions(+), 24 deletions(-)

diff --git a/tests/intel/xe_gt_freq.c b/tests/intel/xe_gt_freq.c
index d2e4d1a09..65ec3b0c4 100644
--- a/tests/intel/xe_gt_freq.c
+++ b/tests/intel/xe_gt_freq.c
@@ -70,6 +70,11 @@ static uint32_t get_freq(int fd, int gt_id, const char 
*freq_name)
return freq;
 }
 
+static uint32_t rpe(int fd, int gt_id)
+{
+   return get_freq(fd, gt_id, "rpe");
+}
+
 static uint32_t get_throttle(int fd, int gt_id, const char *throttle_file)
 {
uint32_t val;
@@ -122,7 +127,6 @@ static void test_throttle_basic_api(int fd, int gt_id)
 static void test_freq_basic_api(int fd, int gt_id)
 {
uint32_t rpn = get_freq(fd, gt_id, "rpn");
-   uint32_t rpe = get_freq(fd, gt_id, "rpe");
uint32_t rp0 = get_freq(fd, gt_id, "rp0");
 
/*
@@ -138,16 +142,16 @@ static void test_freq_basic_api(int fd, int gt_id)
/* Assert min requests are respected from rp0 to rpn */
igt_assert(set_freq(fd, gt_id, "min", rp0) > 0);
igt_assert(get_freq(fd, gt_id, "min") == rp0);
-   igt_assert(set_freq(fd, gt_id, "min", rpe) > 0);
-   igt_assert(get_freq(fd, gt_id, "min") == rpe);
+   igt_assert(set_freq(fd, gt_id, "min", rpe(fd, gt_id)) > 0);
+   igt_assert(get_freq(fd, gt_id, "min") == rpe(fd, gt_id));
igt_assert(set_freq(fd, gt_id, "min", rpn) > 0);
igt_assert(get_freq(fd, gt_id, "min") == rpn);
 
/* Assert max requests are respected from rpn to rp0 */
igt_assert(set_freq(fd, gt_id, "max", rpn) > 0);
igt_assert(get_freq(fd, gt_id, "max") == rpn);
-   igt_assert(set_freq(fd, gt_id, "max", rpe) > 0);
-   igt_assert(get_freq(fd, gt_id, "max") == rpe);
+   igt_assert(set_freq(fd, gt_id, "max", rpe(fd, gt_id)) > 0);
+   igt_assert(get_freq(fd, gt_id, "max") == rpe(fd, gt_id));
igt_assert(set_freq(fd, gt_id, "max", rp0) > 0);
igt_assert(get_freq(fd, gt_id, "max") == rp0);
 }
@@ -163,7 +167,6 @@ static void test_freq_basic_api(int fd, int gt_id)
 static void test_freq_fixed(int fd, int gt_id, bool gt_idle)
 {
uint32_t rpn = get_freq(fd, gt_id, "rpn");
-   uint32_t rpe = get_freq(fd, gt_id, "rpe");
uint32_t rp0 = get_freq(fd, gt_id, "rp0");
 
igt_debug("Starting testing fixed request\n");
@@ -187,20 +190,17 @@ static void test_freq_fixed(int fd, int gt_id, bool 
gt_idle)
igt_assert(get_freq(fd, gt_id, "act") == rpn);
}
 
-   /* Refresh value of rpe, pcode could have adjusted it */
-   rpe = get_freq(fd, gt_id, "rpe");
-
-   igt_assert(set_freq(fd, gt_id, "min", rpe) > 0);
-   igt_assert(set_freq(fd, gt_id, "max", rpe) > 0);
+   igt_assert(set_freq(fd, gt_id, "min", rpe(fd, gt_id)) > 0);
+   igt_assert(set_freq(fd, gt_id, "max", rpe(fd, gt_id)) > 0);
usleep(ACT_FREQ_LATENCY_US);
-   igt_assert(get_freq(fd, gt_id, "cur") == rpe);
+   igt_assert(get_freq(fd, gt_id, "cur") == rpe(fd, gt_id));
 
if (gt_idle) {
igt_assert_f(igt_wait(xe_is_gt_in_c6(fd, gt_id), 1000, 10),
 "GT %d should be in C6\n", gt_id);
igt_assert(get_freq(fd, gt_id, "act") == 0);
} else {
-   igt_assert(get_freq(fd, gt_id, "act") == rpe);
+   igt_assert(get_freq(fd, gt_id, "act") == rpe(fd, gt_id));
}
 
igt_assert(set_freq(fd, gt_id, "min", rp0) > 0);
@@ -232,16 +232,15 @@ static void test_freq_fixed(int fd, int gt_id, bool 
gt_idle)
 static void test_freq_range(int fd, int gt_id, bool gt_idle)
 {
uint32_t rpn = get_freq(fd, gt_id, "rpn");
-   uint32_t rpe = get_freq(fd, gt_id, "rpe");
uint32_t cur, act;
 
igt_debug("Starting testing range request\n");
 
igt_assert(set_freq(fd, gt_id, "min", rpn) > 0);
-   igt_assert(set_freq(fd, gt_id, "max", rpe) > 0);
+   igt_assert(set_freq(fd, gt_id, "max", rpe(fd, gt_id)) > 0);
usleep(ACT_FREQ_LATENCY_US);
cur = get_freq(fd, gt_id, "cur");
-   igt_assert(rpn <= cur && cur <= rpe);
+   igt_assert(rpn <= cur && cur <= rpe(fd, gt_id));
 
if (gt_idle) {
igt_assert_f(igt_wait(xe_is_gt_in_c6(fd, gt_id), 1000, 10),
@@ -249,7 +248,7 @@ static void test_freq_range(int fd, int gt_id, bool gt_idle)
igt_assert(get_freq(fd, gt_id, "act") == 0);
} else {
act = get_freq(fd, gt_id, "act");
-   igt_assert(rpn <= act && act <= rpe);
+   igt_assert(rpn <= act && act <= rpe(fd, gt_id));
}
 
igt_debug("Finished testing range request\n");
@@ -263,23 +262,19 @@ static void test_freq_range(int fd, int gt_

Re: [PATCH] drm/i915/display: Consider adjusted_pixel_rate to be u64

2024-06-21 Thread Rodrigo Vivi
On Fri, Jun 21, 2024 at 01:04:54PM +0530, Mitul Golani wrote:
> Consider adjusted_pixel_rate to be a u64 to match the return
> type of mul_u32_u32() and avoid any compiler dependency for
> do_div.

Reviewed-by: Rodrigo Vivi 

> 
> Fixes: 1676ecd303ac ("drm/i915: Compute CMRR and calculate vtotal")
> Cc: Mitul Golani 
> Cc: Ankit Nautiyal 
> Cc: Suraj Kandpal 
> Cc: Jani Nikula 
> Cc: Rodrigo Vivi 
> Cc: Nathan Chancellor 
> Cc: intel...@lists.freedesktop.org
> Signed-off-by: Mitul Golani 
> ---
>  drivers/gpu/drm/i915/display/intel_vrr.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c 
> b/drivers/gpu/drm/i915/display/intel_vrr.c
> index 6430da25957d..5a0da64c7db3 100644
> --- a/drivers/gpu/drm/i915/display/intel_vrr.c
> +++ b/drivers/gpu/drm/i915/display/intel_vrr.c
> @@ -137,7 +137,7 @@ static unsigned int
>  cmrr_get_vtotal(struct intel_crtc_state *crtc_state, bool 
> video_mode_required)
>  {
>   int multiplier_m = 1, multiplier_n = 1, vtotal, desired_refresh_rate;
> - long long adjusted_pixel_rate;
> + u64 adjusted_pixel_rate;
>   struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
>  
>   desired_refresh_rate = drm_mode_vrefresh(adjusted_mode);
> -- 
> 2.45.2
> 


✓ Fi.CI.BAT: success for drm/i915/display: Consider adjusted_pixel_rate to be u64

2024-06-21 Thread Patchwork
== Series Details ==

Series: drm/i915/display: Consider adjusted_pixel_rate to be u64
URL   : https://patchwork.freedesktop.org/series/135163/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_14985 -> Patchwork_135163v1


Summary
---

  **SUCCESS**

  No regressions found.

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

Participating hosts (42 -> 38)
--

  Additional (2): fi-kbl-8809g fi-bsw-n3050 
  Missing(6): fi-snb-2520m fi-glk-j4005 fi-cfl-8109u fi-elk-e7500 
bat-mtlp-8 bat-mtlp-6 

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_huc_copy@huc-copy:
- fi-kbl-8809g:   NOTRUN -> [SKIP][1] ([i915#2190])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135163v1/fi-kbl-8809g/igt@gem_huc_c...@huc-copy.html

  * igt@gem_lmem_swapping@basic:
- fi-kbl-8809g:   NOTRUN -> [SKIP][2] ([i915#4613]) +3 other tests skip
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135163v1/fi-kbl-8809g/igt@gem_lmem_swapp...@basic.html

  * igt@gem_lmem_swapping@random-engines:
- fi-bsw-n3050:   NOTRUN -> [SKIP][3] +19 other tests skip
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135163v1/fi-bsw-n3050/igt@gem_lmem_swapp...@random-engines.html

  * igt@kms_force_connector_basic@force-load-detect:
- fi-kbl-8809g:   NOTRUN -> [SKIP][4] +30 other tests skip
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135163v1/fi-kbl-8809g/igt@kms_force_connector_ba...@force-load-detect.html

  * igt@kms_pipe_crc_basic@hang-read-crc@pipe-b-dp-1:
- bat-dg2-8:  [PASS][5] -> [FAIL][6] ([i915#11379])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14985/bat-dg2-8/igt@kms_pipe_crc_basic@hang-read-...@pipe-b-dp-1.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135163v1/bat-dg2-8/igt@kms_pipe_crc_basic@hang-read-...@pipe-b-dp-1.html

  
 Possible fixes 

  * igt@kms_pipe_crc_basic@hang-read-crc@pipe-c-dp-6:
- {bat-mtlp-9}:   [FAIL][7] ([i915#10979]) -> [PASS][8] +2 other tests 
pass
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14985/bat-mtlp-9/igt@kms_pipe_crc_basic@hang-read-...@pipe-c-dp-6.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135163v1/bat-mtlp-9/igt@kms_pipe_crc_basic@hang-read-...@pipe-c-dp-6.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-dp-6:
- {bat-mtlp-9}:   [DMESG-FAIL][9] ([i915#11009]) -> [PASS][10] +1 other 
test pass
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14985/bat-mtlp-9/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-d-dp-6.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_135163v1/bat-mtlp-9/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-d-dp-6.html

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

  [i915#10580]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10580
  [i915#10979]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10979
  [i915#11009]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11009
  [i915#11060]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11060
  [i915#11379]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11379
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#6121]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6121
  [i915#9159]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9159


Build changes
-

  * Linux: CI_DRM_14985 -> Patchwork_135163v1

  CI-20190529: 20190529
  CI_DRM_14985: 40deb379b103746ee4c9df5f0f1919bd4703c9cc @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7894: 7894
  Patchwork_135163v1: 40deb379b103746ee4c9df5f0f1919bd4703c9cc @ 
git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

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


[PATCH] drm/i915/display: Consider adjusted_pixel_rate to be u64

2024-06-21 Thread Mitul Golani
Consider adjusted_pixel_rate to be a u64 to match the return
type of mul_u32_u32() and avoid any compiler dependency for
do_div.

Fixes: 1676ecd303ac ("drm/i915: Compute CMRR and calculate vtotal")
Cc: Mitul Golani 
Cc: Ankit Nautiyal 
Cc: Suraj Kandpal 
Cc: Jani Nikula 
Cc: Rodrigo Vivi 
Cc: Nathan Chancellor 
Cc: intel...@lists.freedesktop.org
Signed-off-by: Mitul Golani 
---
 drivers/gpu/drm/i915/display/intel_vrr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c 
b/drivers/gpu/drm/i915/display/intel_vrr.c
index 6430da25957d..5a0da64c7db3 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -137,7 +137,7 @@ static unsigned int
 cmrr_get_vtotal(struct intel_crtc_state *crtc_state, bool video_mode_required)
 {
int multiplier_m = 1, multiplier_n = 1, vtotal, desired_refresh_rate;
-   long long adjusted_pixel_rate;
+   u64 adjusted_pixel_rate;
struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
 
desired_refresh_rate = drm_mode_vrefresh(adjusted_mode);
-- 
2.45.2