[Intel-gfx] [PULL] gvt-gt-next

2021-02-04 Thread Zhenyu Wang

Hi,

Here's more gvt next changes including ww locking fix from Zhi, and
replace to use i915 engine default state for GVT cmd parser init.
Those have all been verified without regression. Details below.

Thanks.
--
The following changes since commit 69b4b99842201bc24c98ba66b922d8879e190483:

  drm/i915/gvt: Add missing forward decl of intel_vgpu for HDRTEST (2021-01-21 
15:51:21 +0200)

are available in the Git repository at:

  https://github.com/intel/gvt-linux tags/gvt-gt-next-2020-02-05

for you to fetch changes up to e156285b120feaac6207e6bd3fa31d9ae8ffd80d:

  drm/i915/gvt: Purge dev_priv->gt (2021-02-05 15:28:36 +0800)


gvt-gt-next-2020-02-05

- GVT object ww locking fix (Zhi)
- One smatch fix for uninitialized return value (Dan)
- Use i915 engine's default state for GVT cmd parser init (Chris)
- Purge dev_priv->gt (Chris)


Chris Wilson (2):
  drm/i915/gvt: Parse default state to update reg whitelist
  drm/i915/gvt: Purge dev_priv->gt

Dan Carpenter (1):
  drm/i915/gvt: fix uninitialized return in intel_gvt_update_reg_whitelist()

Zhenyu Wang (1):
  Merge tag 'drm-intel-gt-next-2021-01-21-1' into gvt-gt-next

Zhi Wang (1):
  drm/i915/gvt: Introduce per object locking in GVT scheduler.

 drivers/gpu/drm/i915/gvt/cmd_parser.c | 92 ---
 drivers/gpu/drm/i915/gvt/execlist.c   |  8 ++-
 drivers/gpu/drm/i915/gvt/scheduler.c  | 52 +++-
 3 files changed, 64 insertions(+), 88 deletions(-)


signature.asc
Description: PGP signature
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/display: support ddr5 mem types

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915/display: support ddr5 mem types
URL   : https://patchwork.freedesktop.org/series/86726/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9732_full -> Patchwork_19595_full


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19595_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19595_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_19595_full:

### IGT changes ###

 Possible regressions 

  * igt@kms_flip_tiling@flip-yf-tiled@edp-1-pipe-c:
- shard-skl:  [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-skl4/igt@kms_flip_tiling@flip-yf-ti...@edp-1-pipe-c.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/shard-skl7/igt@kms_flip_tiling@flip-yf-ti...@edp-1-pipe-c.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_create@create-massive:
- shard-tglb: NOTRUN -> [DMESG-WARN][3] ([i915#3002])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/shard-tglb2/igt@gem_cre...@create-massive.html

  * igt@gem_ctx_persistence@replace@vecs0:
- shard-iclb: [PASS][4] -> [FAIL][5] ([i915#2410])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-iclb7/igt@gem_ctx_persistence@repl...@vecs0.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/shard-iclb7/igt@gem_ctx_persistence@repl...@vecs0.html

  * igt@gem_exec_balancer@hang:
- shard-iclb: [PASS][6] -> [INCOMPLETE][7] ([i915#1895] / 
[i915#2295])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-iclb8/igt@gem_exec_balan...@hang.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/shard-iclb1/igt@gem_exec_balan...@hang.html

  * igt@gem_exec_fair@basic-none@vcs1:
- shard-iclb: NOTRUN -> [FAIL][8] ([i915#2842])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/shard-iclb1/igt@gem_exec_fair@basic-n...@vcs1.html

  * igt@gem_exec_fair@basic-none@vecs0:
- shard-apl:  [PASS][9] -> [FAIL][10] ([i915#2842])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-apl1/igt@gem_exec_fair@basic-n...@vecs0.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/shard-apl8/igt@gem_exec_fair@basic-n...@vecs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk:  [PASS][11] -> [FAIL][12] ([i915#2842])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-glk8/igt@gem_exec_fair@basic-pace-sh...@rcs0.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/shard-glk7/igt@gem_exec_fair@basic-pace-sh...@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
- shard-kbl:  [PASS][13] -> [FAIL][14] ([i915#2842]) +1 similar 
issue
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-kbl7/igt@gem_exec_fair@basic-pace-s...@rcs0.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/shard-kbl4/igt@gem_exec_fair@basic-pace-s...@rcs0.html

  * igt@gem_exec_params@secure-non-root:
- shard-tglb: NOTRUN -> [SKIP][15] ([fdo#112283])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/shard-tglb3/igt@gem_exec_par...@secure-non-root.html

  * igt@gem_exec_reloc@basic-parallel:
- shard-tglb: NOTRUN -> [TIMEOUT][16] ([i915#1729])
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/shard-tglb3/igt@gem_exec_re...@basic-parallel.html

  * igt@gem_exec_schedule@u-fairslice@rcs0:
- shard-glk:  [PASS][17] -> [DMESG-WARN][18] ([i915#1610] / 
[i915#2803])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-glk9/igt@gem_exec_schedule@u-fairsl...@rcs0.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/shard-glk4/igt@gem_exec_schedule@u-fairsl...@rcs0.html
- shard-skl:  [PASS][19] -> [DMESG-WARN][20] ([i915#1610] / 
[i915#2803])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-skl6/igt@gem_exec_schedule@u-fairsl...@rcs0.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/shard-skl2/igt@gem_exec_schedule@u-fairsl...@rcs0.html

  * igt@gem_exec_schedule@u-semaphore-codependency:
- shard-skl:  [PASS][21] -> [DMESG-WARN][22] ([i915#1610])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-skl8/igt@gem_exec_sched...@u-semaphore-codependency.html
   [22]: 

[Intel-gfx] [PATCH] drm/i915/hdcp: Show connector hdcp capability

2021-02-04 Thread Anshuman Gupta
Show only connector hdcp capability in i915_display_info
instead of platform and sink.

There are some platforms which don't support HDCP 2.2
yet, those are not HDCP 2.2 capable but those platform
should show up the connector capability in i915_display_info.

Signed-off-by: Anshuman Gupta 
---
 drivers/gpu/drm/i915/display/intel_display_debugfs.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c 
b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
index d62b18d5ecd8..8a028f943da5 100644
--- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
+++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
@@ -605,6 +605,7 @@ static void intel_panel_info(struct seq_file *m, struct 
intel_panel *panel)
 static void intel_hdcp_info(struct seq_file *m,
struct intel_connector *intel_connector)
 {
+   struct intel_digital_port *dig_port = 
intel_attached_dig_port(intel_connector);
bool hdcp_cap, hdcp2_cap;
 
if (!intel_connector->hdcp.shim) {
@@ -613,7 +614,8 @@ static void intel_hdcp_info(struct seq_file *m,
}
 
hdcp_cap = intel_hdcp_capable(intel_connector);
-   hdcp2_cap = intel_hdcp2_capable(intel_connector);
+   /* Sink's capability for HDCP2.2 */
+   intel_connector->hdcp.shim->hdcp_2_2_capable(dig_port, _cap);
 
if (hdcp_cap)
seq_puts(m, "HDCP1.4 ");
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Add link rate and lane count to i915_display_info

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915: Add link rate and lane count to i915_display_info
URL   : https://patchwork.freedesktop.org/series/86738/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9735 -> Patchwork_19600


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_selftest@live@sanitycheck:
- fi-kbl-7500u:   [PASS][1] -> [DMESG-WARN][2] ([i915#2605])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-kbl-7500u/igt@i915_selftest@l...@sanitycheck.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19600/fi-kbl-7500u/igt@i915_selftest@l...@sanitycheck.html

  * igt@prime_self_import@basic-with_one_bo_two_files:
- fi-tgl-y:   [PASS][3] -> [DMESG-WARN][4] ([i915#402]) +1 similar 
issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-tgl-y/igt@prime_self_import@basic-with_one_bo_two_files.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19600/fi-tgl-y/igt@prime_self_import@basic-with_one_bo_two_files.html

  
 Possible fixes 

  * igt@fbdev@write:
- fi-tgl-y:   [DMESG-WARN][5] ([i915#402]) -> [PASS][6] +2 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-tgl-y/igt@fb...@write.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19600/fi-tgl-y/igt@fb...@write.html

  * igt@i915_selftest@live@gt_heartbeat:
- fi-cfl-8700k:   [DMESG-FAIL][7] ([i915#2291] / [i915#541]) -> 
[PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-cfl-8700k/igt@i915_selftest@live@gt_heartbeat.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19600/fi-cfl-8700k/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@late_gt_pm:
- {fi-ehl-1}: [DMESG-FAIL][9] -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-ehl-1/igt@i915_selftest@live@late_gt_pm.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19600/fi-ehl-1/igt@i915_selftest@live@late_gt_pm.html

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

  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [i915#2291]: https://gitlab.freedesktop.org/drm/intel/issues/2291
  [i915#2605]: https://gitlab.freedesktop.org/drm/intel/issues/2605
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#541]: https://gitlab.freedesktop.org/drm/intel/issues/541


Participating hosts (42 -> 38)
--

  Missing(4): fi-jsl-1 fi-ilk-m540 fi-bsw-cyan fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9735 -> Patchwork_19600

  CI-20190529: 20190529
  CI_DRM_9735: 186ea69ad1d026d004fbd64457fb576ab86556eb @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5991: a2d9c45fca85918ecf4776120aade64b9220 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19600: affe26105adb63ca89125b501edad1ec70ea43a2 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

affe26105adb drm/i915: Add link rate and lane count to i915_display_info

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19600/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Add link rate and lane count to i915_display_info

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915: Add link rate and lane count to i915_display_info
URL   : https://patchwork.freedesktop.org/series/86738/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
affe26105adb drm/i915: Add link rate and lane count to i915_display_info
-:9: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#9: 
Link rate and lane count information are more easier and faster to check in 
i915_display_info

total: 0 errors, 1 warnings, 0 checks, 12 lines checked


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: refactor intel_display.c + a bit more

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915: refactor intel_display.c + a bit more
URL   : https://patchwork.freedesktop.org/series/86723/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9732_full -> Patchwork_19594_full


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19594_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19594_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_19594_full:

### IGT changes ###

 Possible regressions 

  * igt@sysfs_clients@fair-1@vcs:
- shard-kbl:  [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-kbl2/igt@sysfs_clients@fai...@vcs.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-kbl6/igt@sysfs_clients@fai...@vcs.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_create@create-massive:
- shard-tglb: NOTRUN -> [DMESG-WARN][3] ([i915#3002])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-tglb1/igt@gem_cre...@create-massive.html

  * igt@gem_exec_balancer@hang:
- shard-iclb: [PASS][4] -> [INCOMPLETE][5] ([i915#1895] / 
[i915#2295])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-iclb8/igt@gem_exec_balan...@hang.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-iclb2/igt@gem_exec_balan...@hang.html

  * igt@gem_exec_fair@basic-none@vcs1:
- shard-iclb: NOTRUN -> [FAIL][6] ([i915#2842])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-iclb2/igt@gem_exec_fair@basic-n...@vcs1.html

  * igt@gem_exec_fair@basic-none@vecs0:
- shard-apl:  [PASS][7] -> [FAIL][8] ([i915#2842])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-apl1/igt@gem_exec_fair@basic-n...@vecs0.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-apl8/igt@gem_exec_fair@basic-n...@vecs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk:  [PASS][9] -> [FAIL][10] ([i915#2842])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-glk8/igt@gem_exec_fair@basic-pace-sh...@rcs0.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-glk2/igt@gem_exec_fair@basic-pace-sh...@rcs0.html

  * igt@gem_exec_params@secure-non-root:
- shard-tglb: NOTRUN -> [SKIP][11] ([fdo#112283])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-tglb5/igt@gem_exec_par...@secure-non-root.html

  * igt@gem_exec_reloc@basic-many-active@rcs0:
- shard-glk:  [PASS][12] -> [FAIL][13] ([i915#2389])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-glk9/igt@gem_exec_reloc@basic-many-act...@rcs0.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-glk4/igt@gem_exec_reloc@basic-many-act...@rcs0.html

  * igt@gem_exec_reloc@basic-parallel:
- shard-tglb: NOTRUN -> [TIMEOUT][14] ([i915#1729])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-tglb5/igt@gem_exec_re...@basic-parallel.html

  * igt@gem_exec_schedule@u-fairslice@bcs0:
- shard-tglb: [PASS][15] -> [DMESG-WARN][16] ([i915#2803])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-tglb5/igt@gem_exec_schedule@u-fairsl...@bcs0.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-tglb7/igt@gem_exec_schedule@u-fairsl...@bcs0.html

  * igt@gem_exec_schedule@u-fairslice@rcs0:
- shard-apl:  [PASS][17] -> [DMESG-WARN][18] ([i915#1610])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-apl4/igt@gem_exec_schedule@u-fairsl...@rcs0.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-apl8/igt@gem_exec_schedule@u-fairsl...@rcs0.html

  * igt@gem_userptr_blits@readonly-mmap-unsync@wb:
- shard-tglb: NOTRUN -> [SKIP][19] ([i915#1704]) +3 similar issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-tglb1/igt@gem_userptr_blits@readonly-mmap-uns...@wb.html

  * igt@gem_userptr_blits@readonly-unsync:
- shard-tglb: NOTRUN -> [SKIP][20] ([fdo#110426] / [i915#1704])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-tglb5/igt@gem_userptr_bl...@readonly-unsync.html

  * igt@gen3_render_mixed_blits:
- shard-tglb: NOTRUN -> [SKIP][21] ([fdo#109289])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/shard-tglb5/igt@gen3_render_mixed_blits.html

  * 

[Intel-gfx] [PATCH] drm/i915: Add link rate and lane count to i915_display_info

2021-02-04 Thread Khaled Almahallawy
Link rate and lane count information are more easier and faster to check in 
i915_display_info
than checking kernel logs for people not familiar with i915 in the following 
scenarios:
* Debugging DP tunnel bandwidth usage in Thunderbolt driver.
* In USB4 certification, it is a requirement to know which link rate used by
  monitor to prove that DP tunnel handle up to HBR3
* In PHY Compliance, when the connector propes are not mounted correctly,
  some display lanes will not show up in the DP Oscilloscope and will fail CTS.
  Just give the tester an easy way to identify where the problem is.

Cc: Imre Deak 
Cc: Ville Syrjälä 
CC: José Roberto de Souza 
Signed-off-by: Khaled Almahallawy 
---
 drivers/gpu/drm/i915/display/intel_display_debugfs.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c 
b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
index d62b18d5ecd8..c6161c1e87e9 100644
--- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
+++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
@@ -990,9 +990,10 @@ static void intel_crtc_info(struct seq_file *m, struct 
intel_crtc *crtc)
   yesno(crtc_state->hw.active),
   DRM_MODE_ARG(_state->hw.adjusted_mode));
 
-   seq_printf(m, "\tpipe src size=%dx%d, dither=%s, bpp=%d\n",
+   seq_printf(m, "\tpipe src size=%dx%d, dither=%s, bpp=%d, link 
rate = %d, lane count = %d\n",
   crtc_state->pipe_src_w, crtc_state->pipe_src_h,
-  yesno(crtc_state->dither), crtc_state->pipe_bpp);
+  yesno(crtc_state->dither), crtc_state->pipe_bpp,
+  crtc_state->port_clock, crtc_state->lane_count);
 
intel_scaler_info(m, crtc);
}
-- 
2.25.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Reject 446-480MHz HDMI clock on GLK

2021-02-04 Thread Kahola, Mika
> -Original Message-
> From: Intel-gfx  On Behalf Of Ville
> Syrjala
> Sent: Wednesday, February 3, 2021 11:31 AM
> To: intel-gfx@lists.freedesktop.org
> Cc: sta...@vger.kernel.org
> Subject: [Intel-gfx] [PATCH] drm/i915: Reject 446-480MHz HDMI clock on GLK
> 
> From: Ville Syrjälä 
> 
> The BXT/GLK DPLL can't generate certain frequencies. We already reject the
> 233-240MHz range on both. But on GLK the DPLL max frequency was
> bumped from 300MHz to 594MHz, so now we get to also worry about the
> 446-480MHz range (double the original problem range). Reject any frequency
> within the higher problematic range as well.
> 
> Cc: sta...@vger.kernel.org
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3000
> Signed-off-by: Ville Syrjälä 

Reviewed-by: Mika Kahola 

> ---
>  drivers/gpu/drm/i915/display/intel_hdmi.c | 6 +-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c
> b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index 66e1ac3887c6..b593a71e6517 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -2218,7 +2218,11 @@ hdmi_port_clock_valid(struct intel_hdmi *hdmi,
> has_hdmi_sink))
>   return MODE_CLOCK_HIGH;
> 
> - /* BXT DPLL can't generate 223-240 MHz */
> + /* GLK DPLL can't generate 446-480 MHz */
> + if (IS_GEMINILAKE(dev_priv) && clock > 44 && clock < 48)
> + return MODE_CLOCK_RANGE;
> +
> + /* BXT/GLK DPLL can't generate 223-240 MHz */
>   if (IS_GEN9_LP(dev_priv) && clock > 22 && clock < 24)
>   return MODE_CLOCK_RANGE;
> 
> --
> 2.26.2
> 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: Clean up the DDI clock routing mess (rev2)

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915: Clean up the DDI clock routing mess (rev2)
URL   : https://patchwork.freedesktop.org/series/86544/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9732_full -> Patchwork_19593_full


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19593_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19593_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_19593_full:

### IGT changes ###

 Possible regressions 

  * igt@kms_flip_tiling@flip-yf-tiled@edp-1-pipe-c:
- shard-skl:  [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-skl4/igt@kms_flip_tiling@flip-yf-ti...@edp-1-pipe-c.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-skl2/igt@kms_flip_tiling@flip-yf-ti...@edp-1-pipe-c.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
- shard-apl:  [PASS][3] -> [DMESG-WARN][4] ([i915#180]) +4 similar 
issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-apl7/igt@gem_ctx_isolation@preservation...@rcs0.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-apl4/igt@gem_ctx_isolation@preservation...@rcs0.html

  * igt@gem_exec_fair@basic-none@vcs1:
- shard-iclb: NOTRUN -> [FAIL][5] ([i915#2842])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-iclb2/igt@gem_exec_fair@basic-n...@vcs1.html

  * igt@gem_exec_params@secure-non-root:
- shard-tglb: NOTRUN -> [SKIP][6] ([fdo#112283])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-tglb8/igt@gem_exec_par...@secure-non-root.html

  * igt@gem_exec_reloc@basic-many-active@rcs0:
- shard-glk:  [PASS][7] -> [FAIL][8] ([i915#2389])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-glk9/igt@gem_exec_reloc@basic-many-act...@rcs0.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-glk4/igt@gem_exec_reloc@basic-many-act...@rcs0.html

  * igt@gem_exec_reloc@basic-parallel:
- shard-tglb: NOTRUN -> [TIMEOUT][9] ([i915#1729])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-tglb8/igt@gem_exec_re...@basic-parallel.html

  * igt@gem_exec_schedule@u-fairslice@rcs0:
- shard-apl:  [PASS][10] -> [DMESG-WARN][11] ([i915#1610])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-apl4/igt@gem_exec_schedule@u-fairsl...@rcs0.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-apl3/igt@gem_exec_schedule@u-fairsl...@rcs0.html

  * igt@gem_userptr_blits@readonly-unsync:
- shard-tglb: NOTRUN -> [SKIP][12] ([fdo#110426] / [i915#1704])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-tglb8/igt@gem_userptr_bl...@readonly-unsync.html

  * igt@gen3_render_mixed_blits:
- shard-tglb: NOTRUN -> [SKIP][13] ([fdo#109289])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-tglb8/igt@gen3_render_mixed_blits.html

  * igt@gen9_exec_parse@allowed-single:
- shard-skl:  [PASS][14] -> [DMESG-WARN][15] ([i915#1436] / 
[i915#716])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-skl2/igt@gen9_exec_pa...@allowed-single.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-skl9/igt@gen9_exec_pa...@allowed-single.html

  * igt@gen9_exec_parse@bb-chained:
- shard-tglb: NOTRUN -> [SKIP][16] ([fdo#112306])
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-tglb8/igt@gen9_exec_pa...@bb-chained.html

  * igt@i915_pm_backlight@bad-brightness:
- shard-glk:  NOTRUN -> [SKIP][17] ([fdo#109271]) +50 similar issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-glk6/igt@i915_pm_backli...@bad-brightness.html

  * igt@kms_async_flips@alternate-sync-async-flip:
- shard-skl:  [PASS][18] -> [FAIL][19] ([i915#2521])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-skl1/igt@kms_async_fl...@alternate-sync-async-flip.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-skl2/igt@kms_async_fl...@alternate-sync-async-flip.html

  * igt@kms_async_flips@test-time-stamp:
- shard-tglb: NOTRUN -> [FAIL][20] ([i915#2597])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/shard-tglb8/igt@kms_async_fl...@test-time-stamp.html

  * 

Re: [Intel-gfx] [PATCH] drm/i915: Make psr_safest_params and enable_psr2_sel_fetch parameters read only

2021-02-04 Thread Mun, Gwan-gyeong
Reviewed-by: Gwan-gyeong Mun 
On Thu, 2021-02-04 at 07:33 -0800, José Roberto de Souza wrote:
> By mistake those 2 parameters were defined as read and write in the
> .h file while in the .c file it is read only.
> The intention here was to be read only to avoid the need of
> additional
> handling.
> 
> Cc: Gwan-gyeong Mun 
> Cc: Petri Latvala 
> Signed-off-by: José Roberto de Souza 
> ---
>  drivers/gpu/drm/i915/i915_params.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_params.h
> b/drivers/gpu/drm/i915/i915_params.h
> index f031966af5b7..48f47e44e848 100644
> --- a/drivers/gpu/drm/i915/i915_params.h
> +++ b/drivers/gpu/drm/i915/i915_params.h
> @@ -54,8 +54,8 @@ struct drm_printer;
> param(int, enable_dc, -1, 0400) \
> param(int, enable_fbc, -1, 0600) \
> param(int, enable_psr, -1, 0600) \
> -   param(bool, psr_safest_params, false, 0600) \
> -   param(bool, enable_psr2_sel_fetch, false, 0600) \
> +   param(bool, psr_safest_params, false, 0400) \
> +   param(bool, enable_psr2_sel_fetch, false, 0400) \
> param(int, disable_power_well, -1, 0400) \
> param(int, enable_ips, 1, 0600) \
> param(int, invert_brightness, 0, 0600) \

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/display: Remove PSR2 on JSL and EHL

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915/display: Remove PSR2 on JSL and EHL
URL   : https://patchwork.freedesktop.org/series/86714/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9732_full -> Patchwork_19592_full


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19592_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19592_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_19592_full:

### IGT changes ###

 Possible regressions 

  * igt@kms_flip@2x-flip-vs-suspend@bc-vga1-hdmi-a1:
- shard-hsw:  [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-hsw7/igt@kms_flip@2x-flip-vs-susp...@bc-vga1-hdmi-a1.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/shard-hsw2/igt@kms_flip@2x-flip-vs-susp...@bc-vga1-hdmi-a1.html

  * igt@kms_flip_tiling@flip-yf-tiled@edp-1-pipe-c:
- shard-skl:  [PASS][3] -> [FAIL][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-skl4/igt@kms_flip_tiling@flip-yf-ti...@edp-1-pipe-c.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/shard-skl4/igt@kms_flip_tiling@flip-yf-ti...@edp-1-pipe-c.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_create@create-massive:
- shard-tglb: NOTRUN -> [DMESG-WARN][5] ([i915#3002])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/shard-tglb2/igt@gem_cre...@create-massive.html

  * igt@gem_exec_fair@basic-none@rcs0:
- shard-kbl:  [PASS][6] -> [FAIL][7] ([i915#2842]) +1 similar issue
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-kbl7/igt@gem_exec_fair@basic-n...@rcs0.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/shard-kbl6/igt@gem_exec_fair@basic-n...@rcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-tglb: [PASS][8] -> [FAIL][9] ([i915#2842])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-tglb3/igt@gem_exec_fair@basic-pace-sh...@rcs0.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/shard-tglb3/igt@gem_exec_fair@basic-pace-sh...@rcs0.html

  * igt@gem_exec_params@secure-non-root:
- shard-tglb: NOTRUN -> [SKIP][10] ([fdo#112283])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/shard-tglb3/igt@gem_exec_par...@secure-non-root.html

  * igt@gem_exec_reloc@basic-parallel:
- shard-tglb: NOTRUN -> [TIMEOUT][11] ([i915#1729])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/shard-tglb3/igt@gem_exec_re...@basic-parallel.html

  * igt@gem_exec_reloc@basic-wide-active@vcs1:
- shard-iclb: NOTRUN -> [FAIL][12] ([i915#2389])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/shard-iclb1/igt@gem_exec_reloc@basic-wide-act...@vcs1.html

  * igt@gem_exec_schedule@u-fairslice@rcs0:
- shard-kbl:  [PASS][13] -> [DMESG-WARN][14] ([i915#1610] / 
[i915#2803])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-kbl1/igt@gem_exec_schedule@u-fairsl...@rcs0.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/shard-kbl2/igt@gem_exec_schedule@u-fairsl...@rcs0.html
- shard-glk:  [PASS][15] -> [DMESG-WARN][16] ([i915#1610] / 
[i915#2803])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-glk9/igt@gem_exec_schedule@u-fairsl...@rcs0.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/shard-glk3/igt@gem_exec_schedule@u-fairsl...@rcs0.html
- shard-iclb: [PASS][17] -> [DMESG-WARN][18] ([i915#2803])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-iclb8/igt@gem_exec_schedule@u-fairsl...@rcs0.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/shard-iclb6/igt@gem_exec_schedule@u-fairsl...@rcs0.html

  * igt@gem_userptr_blits@readonly-mmap-unsync@wb:
- shard-tglb: NOTRUN -> [SKIP][19] ([i915#1704]) +3 similar issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/shard-tglb2/igt@gem_userptr_blits@readonly-mmap-uns...@wb.html

  * igt@gem_userptr_blits@readonly-unsync:
- shard-tglb: NOTRUN -> [SKIP][20] ([fdo#110426] / [i915#1704])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/shard-tglb3/igt@gem_userptr_bl...@readonly-unsync.html

  * igt@gen3_render_mixed_blits:
- shard-tglb: NOTRUN -> [SKIP][21] ([fdo#109289])
   [21]: 

[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/gt: Ratelimit heartbeat completion probing (rev3)

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915/gt: Ratelimit heartbeat completion probing (rev3)
URL   : https://patchwork.freedesktop.org/series/86665/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9735 -> Patchwork_19599


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19599 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19599, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

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

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@gt_heartbeat:
- fi-hsw-4770:[PASS][1] -> [DMESG-FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-hsw-4770/igt@i915_selftest@live@gt_heartbeat.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19599/fi-hsw-4770/igt@i915_selftest@live@gt_heartbeat.html
- fi-snb-2600:[PASS][3] -> [DMESG-FAIL][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-snb-2600/igt@i915_selftest@live@gt_heartbeat.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19599/fi-snb-2600/igt@i915_selftest@live@gt_heartbeat.html
- fi-ivb-3770:[PASS][5] -> [DMESG-FAIL][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-ivb-3770/igt@i915_selftest@live@gt_heartbeat.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19599/fi-ivb-3770/igt@i915_selftest@live@gt_heartbeat.html
- fi-snb-2520m:   [PASS][7] -> [DMESG-FAIL][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-snb-2520m/igt@i915_selftest@live@gt_heartbeat.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19599/fi-snb-2520m/igt@i915_selftest@live@gt_heartbeat.html

  
 Suppressed 

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

  * igt@i915_selftest@live@execlists:
- {fi-rkl-11500t}:[PASS][9] -> [INCOMPLETE][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-rkl-11500t/igt@i915_selftest@l...@execlists.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19599/fi-rkl-11500t/igt@i915_selftest@l...@execlists.html
- {fi-ehl-1}: [PASS][11] -> [INCOMPLETE][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-ehl-1/igt@i915_selftest@l...@execlists.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19599/fi-ehl-1/igt@i915_selftest@l...@execlists.html

  * igt@i915_selftest@live@gt_heartbeat:
- {fi-hsw-gt1}:   [PASS][13] -> [DMESG-FAIL][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-hsw-gt1/igt@i915_selftest@live@gt_heartbeat.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19599/fi-hsw-gt1/igt@i915_selftest@live@gt_heartbeat.html
- {fi-ehl-1}: [PASS][15] -> [DMESG-FAIL][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-ehl-1/igt@i915_selftest@live@gt_heartbeat.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19599/fi-ehl-1/igt@i915_selftest@live@gt_heartbeat.html
- {fi-rkl-11500t}:[PASS][17] -> [DMESG-FAIL][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-rkl-11500t/igt@i915_selftest@live@gt_heartbeat.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19599/fi-rkl-11500t/igt@i915_selftest@live@gt_heartbeat.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_huc_copy@huc-copy:
- fi-byt-j1900:   NOTRUN -> [SKIP][19] ([fdo#109271]) +27 similar issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19599/fi-byt-j1900/igt@gem_huc_c...@huc-copy.html

  * igt@i915_pm_rpm@module-reload:
- fi-kbl-guc: [PASS][20] -> [FAIL][21] ([i915#2203] / [i915#579])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-kbl-guc/igt@i915_pm_...@module-reload.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19599/fi-kbl-guc/igt@i915_pm_...@module-reload.html

  * igt@i915_selftest@live@execlists:
- fi-kbl-r:   [PASS][22] -> [INCOMPLETE][23] ([i915#1037] / 
[i915#794])
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-kbl-r/igt@i915_selftest@l...@execlists.html
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19599/fi-kbl-r/igt@i915_selftest@l...@execlists.html
- fi-cfl-8109u:   [PASS][24] -> [INCOMPLETE][25] ([i915#1037])
   [24]: 

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Make psr_safest_params and enable_psr2_sel_fetch parameters read only

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915: Make psr_safest_params and enable_psr2_sel_fetch parameters 
read only
URL   : https://patchwork.freedesktop.org/series/86710/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9732_full -> Patchwork_19591_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_create@create-massive:
- shard-tglb: NOTRUN -> [DMESG-WARN][1] ([i915#3002])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-tglb3/igt@gem_cre...@create-massive.html

  * igt@gem_ctx_isolation@preservation-s3@bcs0:
- shard-apl:  [PASS][2] -> [DMESG-WARN][3] ([i915#180]) +1 similar 
issue
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-apl7/igt@gem_ctx_isolation@preservation...@bcs0.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-apl8/igt@gem_ctx_isolation@preservation...@bcs0.html

  * igt@gem_exec_balancer@hang:
- shard-iclb: [PASS][4] -> [INCOMPLETE][5] ([i915#1895] / 
[i915#2295])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-iclb8/igt@gem_exec_balan...@hang.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-iclb4/igt@gem_exec_balan...@hang.html

  * igt@gem_exec_fair@basic-none@vcs1:
- shard-iclb: NOTRUN -> [FAIL][6] ([i915#2842])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-iclb4/igt@gem_exec_fair@basic-n...@vcs1.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-tglb: [PASS][7] -> [FAIL][8] ([i915#2842])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-tglb3/igt@gem_exec_fair@basic-pace-sh...@rcs0.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-tglb6/igt@gem_exec_fair@basic-pace-sh...@rcs0.html
- shard-glk:  [PASS][9] -> [FAIL][10] ([i915#2842])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-glk8/igt@gem_exec_fair@basic-pace-sh...@rcs0.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-glk7/igt@gem_exec_fair@basic-pace-sh...@rcs0.html

  * igt@gem_exec_params@secure-non-root:
- shard-tglb: NOTRUN -> [SKIP][11] ([fdo#112283])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-tglb5/igt@gem_exec_par...@secure-non-root.html

  * igt@gem_exec_reloc@basic-parallel:
- shard-tglb: NOTRUN -> [TIMEOUT][12] ([i915#1729])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-tglb5/igt@gem_exec_re...@basic-parallel.html

  * igt@gem_exec_whisper@basic-fds:
- shard-glk:  [PASS][13] -> [DMESG-WARN][14] ([i915#118] / 
[i915#95]) +1 similar issue
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-glk6/igt@gem_exec_whis...@basic-fds.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-glk6/igt@gem_exec_whis...@basic-fds.html

  * igt@gem_userptr_blits@readonly-mmap-unsync@wb:
- shard-tglb: NOTRUN -> [SKIP][15] ([i915#1704]) +3 similar issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-tglb3/igt@gem_userptr_blits@readonly-mmap-uns...@wb.html

  * igt@gem_userptr_blits@readonly-unsync:
- shard-tglb: NOTRUN -> [SKIP][16] ([fdo#110426] / [i915#1704])
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-tglb5/igt@gem_userptr_bl...@readonly-unsync.html

  * igt@gen3_render_mixed_blits:
- shard-tglb: NOTRUN -> [SKIP][17] ([fdo#109289])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-tglb5/igt@gen3_render_mixed_blits.html

  * igt@gen9_exec_parse@allowed-all:
- shard-skl:  [PASS][18] -> [DMESG-WARN][19] ([i915#1436] / 
[i915#716])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-skl7/igt@gen9_exec_pa...@allowed-all.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-skl6/igt@gen9_exec_pa...@allowed-all.html

  * igt@gen9_exec_parse@bb-chained:
- shard-tglb: NOTRUN -> [SKIP][20] ([fdo#112306])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-tglb5/igt@gen9_exec_pa...@bb-chained.html

  * igt@i915_pm_rc6_residency@rc6-fence:
- shard-hsw:  [PASS][21] -> [WARN][22] ([i915#1519])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-hsw7/igt@i915_pm_rc6_reside...@rc6-fence.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/shard-hsw8/igt@i915_pm_rc6_reside...@rc6-fence.html

  * igt@i915_selftest@live@hangcheck:
- shard-hsw:  [PASS][23] -> [INCOMPLETE][24] ([i915#2782])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-hsw8/igt@i915_selftest@l...@hangcheck.html
   [24]: 

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/icl, tgl: whitelist COMMON_SLICE_CHICKEN3 register

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915/icl, tgl: whitelist COMMON_SLICE_CHICKEN3 register
URL   : https://patchwork.freedesktop.org/series/86733/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9735 -> Patchwork_19598


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s3:
- fi-tgl-y:   [PASS][1] -> [DMESG-WARN][2] ([i915#2411] / 
[i915#402])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19598/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html

  * igt@gem_mmap_gtt@basic:
- fi-tgl-y:   [PASS][3] -> [DMESG-WARN][4] ([i915#402]) +1 similar 
issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-tgl-y/igt@gem_mmap_...@basic.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19598/fi-tgl-y/igt@gem_mmap_...@basic.html

  
 Possible fixes 

  * igt@fbdev@write:
- fi-tgl-y:   [DMESG-WARN][5] ([i915#402]) -> [PASS][6] +2 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-tgl-y/igt@fb...@write.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19598/fi-tgl-y/igt@fb...@write.html

  * igt@i915_selftest@live@gt_heartbeat:
- fi-cfl-8700k:   [DMESG-FAIL][7] ([i915#2291] / [i915#541]) -> 
[PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-cfl-8700k/igt@i915_selftest@live@gt_heartbeat.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19598/fi-cfl-8700k/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@late_gt_pm:
- {fi-ehl-1}: [DMESG-FAIL][9] -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-ehl-1/igt@i915_selftest@live@late_gt_pm.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19598/fi-ehl-1/igt@i915_selftest@live@late_gt_pm.html

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

  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [i915#2291]: https://gitlab.freedesktop.org/drm/intel/issues/2291
  [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#541]: https://gitlab.freedesktop.org/drm/intel/issues/541


Participating hosts (42 -> 38)
--

  Missing(4): fi-jsl-1 fi-ilk-m540 fi-bsw-cyan fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9735 -> Patchwork_19598

  CI-20190529: 20190529
  CI_DRM_9735: 186ea69ad1d026d004fbd64457fb576ab86556eb @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5991: a2d9c45fca85918ecf4776120aade64b9220 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19598: d11d4136e3d72e8f2fa870186d33a966996ac863 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

d11d4136e3d7 drm/i915/icl, tgl: whitelist COMMON_SLICE_CHICKEN3 register

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19598/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/selftest: Synchronise with the GPU timestamp

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915/selftest: Synchronise with the GPU timestamp
URL   : https://patchwork.freedesktop.org/series/86731/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9735 -> Patchwork_19597


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19597 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19597, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

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

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@gt_engines:
- fi-bsw-nick:[PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-bsw-nick/igt@i915_selftest@live@gt_engines.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19597/fi-bsw-nick/igt@i915_selftest@live@gt_engines.html

  * igt@i915_selftest@live@gt_lrc:
- fi-bsw-n3050:   [PASS][3] -> [INCOMPLETE][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-bsw-n3050/igt@i915_selftest@live@gt_lrc.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19597/fi-bsw-n3050/igt@i915_selftest@live@gt_lrc.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@debugfs_test@read_all_entries:
- fi-tgl-y:   [PASS][5] -> [DMESG-WARN][6] ([i915#402]) +2 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-tgl-y/igt@debugfs_test@read_all_entries.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19597/fi-tgl-y/igt@debugfs_test@read_all_entries.html

  * igt@gem_exec_suspend@basic-s3:
- fi-tgl-u2:  [PASS][7] -> [FAIL][8] ([i915#1888])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-tgl-u2/igt@gem_exec_susp...@basic-s3.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19597/fi-tgl-u2/igt@gem_exec_susp...@basic-s3.html

  * igt@gem_huc_copy@huc-copy:
- fi-byt-j1900:   NOTRUN -> [SKIP][9] ([fdo#109271]) +9 similar issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19597/fi-byt-j1900/igt@gem_huc_c...@huc-copy.html

  * igt@i915_pm_rpm@module-reload:
- fi-byt-j1900:   NOTRUN -> [INCOMPLETE][10] ([i915#142] / [i915#2405])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19597/fi-byt-j1900/igt@i915_pm_...@module-reload.html

  * igt@kms_chamelium@hdmi-crc-fast:
- fi-byt-j1900:   NOTRUN -> [SKIP][11] ([fdo#109271] / [fdo#111827]) +8 
similar issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19597/fi-byt-j1900/igt@kms_chamel...@hdmi-crc-fast.html

  * igt@runner@aborted:
- fi-kbl-guc: NOTRUN -> [FAIL][12] ([i915#2426])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19597/fi-kbl-guc/igt@run...@aborted.html
- fi-byt-j1900:   NOTRUN -> [FAIL][13] ([i915#1814] / [i915#2505])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19597/fi-byt-j1900/igt@run...@aborted.html
- fi-bsw-n3050:   NOTRUN -> [FAIL][14] ([i915#1436])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19597/fi-bsw-n3050/igt@run...@aborted.html

  
 Possible fixes 

  * igt@fbdev@write:
- fi-tgl-y:   [DMESG-WARN][15] ([i915#402]) -> [PASS][16] +2 
similar issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-tgl-y/igt@fb...@write.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19597/fi-tgl-y/igt@fb...@write.html

  * igt@i915_selftest@live@gt_heartbeat:
- fi-cfl-8700k:   [DMESG-FAIL][17] ([i915#2291] / [i915#541]) -> 
[PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-cfl-8700k/igt@i915_selftest@live@gt_heartbeat.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19597/fi-cfl-8700k/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@late_gt_pm:
- {fi-ehl-1}: [DMESG-FAIL][19] -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9735/fi-ehl-1/igt@i915_selftest@live@late_gt_pm.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19597/fi-ehl-1/igt@i915_selftest@live@late_gt_pm.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#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#142]: 

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [v15,1/2] drm/i915/display: Support PSR Multiple Instances

2021-02-04 Thread Patchwork
== Series Details ==

Series: series starting with [v15,1/2] drm/i915/display: Support PSR Multiple 
Instances
URL   : https://patchwork.freedesktop.org/series/86701/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9732_full -> Patchwork_19590_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Possible new issues
---

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

### Piglit changes ###

 Possible regressions 

  * spec@arb_tessellation_shader@execution@tcs-input@tcs-input-mat4x2_2 (NEW):
- {pig-icl-1065g7}:   NOTRUN -> [CRASH][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/pig-icl-1065g7/spec@arb_tessellation_shader@execution@tcs-input@tcs-input-mat4x2_2.html

  * spec@arb_tessellation_shader@execution@tcs-input@tcs-input-mat4x3 (NEW):
- {pig-icl-1065g7}:   NOTRUN -> [INCOMPLETE][2] +7 similar issues
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/pig-icl-1065g7/spec@arb_tessellation_shader@execution@tcs-in...@tcs-input-mat4x3.html

  
New tests
-

  New tests have been introduced between CI_DRM_9732_full and 
Patchwork_19590_full:

### New Piglit tests (9) ###

  * spec@arb_tessellation_shader@execution@tcs-input@tcs-input-ivec4:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * spec@arb_tessellation_shader@execution@tcs-input@tcs-input-mat2x4:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * spec@arb_tessellation_shader@execution@tcs-input@tcs-input-mat3_2:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * spec@arb_tessellation_shader@execution@tcs-input@tcs-input-mat4x2_2:
- Statuses : 1 crash(s)
- Exec time: [0.53] s

  * spec@arb_tessellation_shader@execution@tcs-input@tcs-input-mat4x3:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * spec@arb_tessellation_shader@execution@tcs-input@tcs-input-uint:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * spec@arb_tessellation_shader@execution@tcs-input@tcs-input-uvec4:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * spec@arb_tessellation_shader@execution@tcs-input@tcs-input-uvec4_2:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * spec@arb_tessellation_shader@execution@tcs-input@tcs-input-vec2:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_create@create-massive:
- shard-tglb: NOTRUN -> [DMESG-WARN][3] ([i915#3002])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/shard-tglb1/igt@gem_cre...@create-massive.html

  * igt@gem_exec_balancer@hang:
- shard-iclb: [PASS][4] -> [INCOMPLETE][5] ([i915#1895] / 
[i915#2295] / [i915#3031])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-iclb8/igt@gem_exec_balan...@hang.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/shard-iclb2/igt@gem_exec_balan...@hang.html

  * igt@gem_exec_fair@basic-none@vcs1:
- shard-iclb: NOTRUN -> [FAIL][6] ([i915#2842])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/shard-iclb2/igt@gem_exec_fair@basic-n...@vcs1.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk:  [PASS][7] -> [FAIL][8] ([i915#2842])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-glk8/igt@gem_exec_fair@basic-pace-sh...@rcs0.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/shard-glk2/igt@gem_exec_fair@basic-pace-sh...@rcs0.html

  * igt@gem_exec_params@secure-non-root:
- shard-tglb: NOTRUN -> [SKIP][9] ([fdo#112283])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/shard-tglb7/igt@gem_exec_par...@secure-non-root.html

  * igt@gem_exec_reloc@basic-parallel:
- shard-tglb: NOTRUN -> [TIMEOUT][10] ([i915#1729])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/shard-tglb7/igt@gem_exec_re...@basic-parallel.html

  * igt@gem_exec_schedule@u-fairslice@rcs0:
- shard-glk:  [PASS][11] -> [DMESG-WARN][12] ([i915#1610] / 
[i915#2803])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-glk9/igt@gem_exec_schedule@u-fairsl...@rcs0.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/shard-glk4/igt@gem_exec_schedule@u-fairsl...@rcs0.html

  * igt@gem_pipe_control_store_loop@reused-buffer:
- shard-glk:  [PASS][13] -> [DMESG-WARN][14] ([i915#118] / 
[i915#95])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-glk7/igt@gem_pipe_control_store_l...@reused-buffer.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/shard-glk2/igt@gem_pipe_control_store_l...@reused-buffer.html

  * igt@gem_userptr_blits@readonly-mmap-unsync@wb:
- 

[Intel-gfx] ✗ Fi.CI.IGT: failure for swiotlb: 64-bit DMA buffer

2021-02-04 Thread Patchwork
== Series Details ==

Series: swiotlb: 64-bit DMA buffer
URL   : https://patchwork.freedesktop.org/series/86700/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9732_full -> Patchwork_19589_full


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19589_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19589_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_19589_full:

### IGT changes ###

 Possible regressions 

  * igt@kms_flip@2x-flip-vs-suspend@bc-vga1-hdmi-a1:
- shard-hsw:  [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-hsw7/igt@kms_flip@2x-flip-vs-susp...@bc-vga1-hdmi-a1.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/shard-hsw4/igt@kms_flip@2x-flip-vs-susp...@bc-vga1-hdmi-a1.html

  

### Piglit changes ###

 Possible regressions 

  * spec@glsl-4.30@execution@built-in-functions@cs-op-lshift-uvec4-int (NEW):
- {pig-icl-1065g7}:   NOTRUN -> [INCOMPLETE][3] +7 similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/pig-icl-1065g7/spec@glsl-4.30@execution@built-in-functi...@cs-op-lshift-uvec4-int.html

  
New tests
-

  New tests have been introduced between CI_DRM_9732_full and 
Patchwork_19589_full:

### New Piglit tests (8) ###

  * spec@glsl-4.30@execution@built-in-functions@cs-mix-vec3-vec3-bvec3:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * spec@glsl-4.30@execution@built-in-functions@cs-op-bitor-not-int-ivec4:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * spec@glsl-4.30@execution@built-in-functions@cs-op-bitxor-neg-ivec3-ivec3:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * spec@glsl-4.30@execution@built-in-functions@cs-op-div-mat4-mat4:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * spec@glsl-4.30@execution@built-in-functions@cs-op-lshift-uvec4-int:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * spec@glsl-4.30@execution@built-in-functions@cs-op-mult-vec4-float:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * 
spec@glsl-4.30@execution@built-in-functions@cs-op-selection-bool-float-float:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  * spec@glsl-4.30@execution@built-in-functions@cs-op-selection-bool-vec4-vec4:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_create@create-massive:
- shard-tglb: NOTRUN -> [DMESG-WARN][4] ([i915#3002])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/shard-tglb3/igt@gem_cre...@create-massive.html

  * igt@gem_exec_fair@basic-flow@rcs0:
- shard-kbl:  [PASS][5] -> [SKIP][6] ([fdo#109271])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-kbl1/igt@gem_exec_fair@basic-f...@rcs0.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/shard-kbl6/igt@gem_exec_fair@basic-f...@rcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-tglb: [PASS][7] -> [FAIL][8] ([i915#2842])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-tglb3/igt@gem_exec_fair@basic-pace-sh...@rcs0.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/shard-tglb1/igt@gem_exec_fair@basic-pace-sh...@rcs0.html

  * igt@gem_exec_params@secure-non-root:
- shard-tglb: NOTRUN -> [SKIP][9] ([fdo#112283])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/shard-tglb7/igt@gem_exec_par...@secure-non-root.html

  * igt@gem_exec_reloc@basic-many-active@rcs0:
- shard-glk:  [PASS][10] -> [FAIL][11] ([i915#2389])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/shard-glk9/igt@gem_exec_reloc@basic-many-act...@rcs0.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/shard-glk2/igt@gem_exec_reloc@basic-many-act...@rcs0.html

  * igt@gem_exec_reloc@basic-parallel:
- shard-tglb: NOTRUN -> [TIMEOUT][12] ([i915#1729])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/shard-tglb7/igt@gem_exec_re...@basic-parallel.html

  * igt@gem_exec_reloc@basic-wide-active@vcs1:
- shard-iclb: NOTRUN -> [FAIL][13] ([i915#2389])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/shard-iclb1/igt@gem_exec_reloc@basic-wide-act...@vcs1.html

  * igt@gem_exec_schedule@u-fairslice@rcs0:
- shard-tglb: [PASS][14] -> [DMESG-WARN][15] ([i915#2803])
   [14]: 

[Intel-gfx] [PATCH] drm/i915/gt: Ratelimit heartbeat completion probing

2021-02-04 Thread Chris Wilson
The heartbeat runs through a few phases that we expect to complete
within a certain number of heartbeat intervals. First we must submit the
heartbeat to the queue, and if the queue is occupied it may take a
couple of intervals before the heartbeat preempts the workload and is
submitted to HW. Once running on HW, completion is not instantaneous as
it may have to first reset the current workload before it itself runs
through the empty request and signals completion. As such, we know that
the heartbeat must take at least the preempt reset timeout and before we
have had a chance to reset the engine, we do not want to issue a global
reset ourselves (simply so that we only try to do one reset at a time
and not confuse ourselves by resetting twice and hitting an innocent.)

So by taking into consideration that once running the request must take
a finite amount of time, we can delay the final completion check to
accommodate that and avoid checking too early (before we've had a chance
to handle any engine resets required).

v2: Attach a callback to flush the work immediately upon the heartbeat
completion and insert the delay before the next.

Suggested-by: CQ Tang 
Signed-off-by: Chris Wilson 
---
 .../gpu/drm/i915/gt/intel_engine_heartbeat.c  | 85 +--
 drivers/gpu/drm/i915/gt/intel_engine_types.h  |  1 +
 .../drm/i915/gt/selftest_engine_heartbeat.c   | 30 +--
 3 files changed, 99 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c 
b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
index 93741a65924a..3df10bfafb3b 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
@@ -20,6 +20,18 @@
  * issue a reset -- in the hope that restores progress.
  */
 
+#define HEARTBEAT_COMPLETION 50u /* milliseconds */
+
+static long completion_timeout(const struct intel_engine_cs *engine)
+{
+   long timeout = HEARTBEAT_COMPLETION;
+
+   if (intel_engine_has_preempt_reset(engine))
+   timeout += READ_ONCE(engine->props.preempt_timeout_ms);
+
+   return msecs_to_jiffies(timeout);
+}
+
 static bool next_heartbeat(struct intel_engine_cs *engine)
 {
long delay;
@@ -29,6 +41,28 @@ static bool next_heartbeat(struct intel_engine_cs *engine)
return false;
 
delay = msecs_to_jiffies_timeout(delay);
+
+   /*
+* Once we submit a heartbeat to the HW, we know that it will take
+* at least a certain amount of time to complete. On a hanging system
+* it will first have to wait for the preempt reset timeout, and
+* then it will take some time for the reset to resume with the
+* heartbeat and for it to complete. So once we have submitted the
+* heartbeat to HW, we can wait a while longer before declaring the
+* engine stuck and forcing a reset ourselves. If we do a reset
+* and the engine is also doing a reset, it is possible that we
+* reset the engine twice, harming an innocent.
+*
+* Before we have sumitted the heartbeat, we do not want to change
+* the interval as we to promote the heartbeat and trigger preemption
+* in a deterministic time frame.
+*/
+   if (engine->heartbeat.systole) {
+   intel_engine_flush_submission(engine);
+   if (i915_request_is_active(engine->heartbeat.systole))
+   delay = max(delay, completion_timeout(engine));
+   }
+
if (delay >= HZ)
delay = round_jiffies_up_relative(delay);
mod_delayed_work(system_highpri_wq, >heartbeat.work, delay + 1);
@@ -48,12 +82,44 @@ heartbeat_create(struct intel_context *ce, gfp_t gfp)
return rq;
 }
 
+static void defibrillator(struct dma_fence *f, struct dma_fence_cb *cb)
+{
+   struct intel_engine_cs *engine =
+   container_of(cb, typeof(*engine), heartbeat.cb);
+
+   if (READ_ONCE(engine->heartbeat.systole))
+   mod_delayed_work(system_highpri_wq, >heartbeat.work, 0);
+}
+
+static void
+track_heartbeat(struct intel_engine_cs *engine, struct i915_request *rq)
+{
+   engine->heartbeat.systole = i915_request_get(rq);
+   if (dma_fence_add_callback(>fence,
+  >heartbeat.cb,
+  defibrillator))
+   mod_delayed_work(system_highpri_wq, >heartbeat.work, 0);
+}
+
+static void
+untrack_heartbeat(struct intel_engine_cs *engine)
+{
+   struct i915_request *rq;
+
+   rq = fetch_and_zero(>heartbeat.systole);
+   if (!rq)
+   return;
+
+   dma_fence_remove_callback(>fence, >heartbeat.cb);
+   i915_request_put(rq);
+}
+
 static void idle_pulse(struct intel_engine_cs *engine, struct i915_request *rq)
 {
engine->wakeref_serial = READ_ONCE(engine->serial) + 1;
i915_request_add_active_barriers(rq);
if (!engine->heartbeat.systole && 

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [CI,1/2] drm/i915/selftests: Restore previous heartbeat interval

2021-02-04 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915/selftests: Restore previous 
heartbeat interval
URL   : https://patchwork.freedesktop.org/series/86727/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9733 -> Patchwork_19596


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@prime_self_import@basic-with_two_bos:
- fi-tgl-y:   [PASS][1] -> [DMESG-WARN][2] ([i915#402]) +1 similar 
issue
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9733/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19596/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html

  
 Possible fixes 

  * igt@debugfs_test@read_all_entries:
- fi-tgl-y:   [DMESG-WARN][3] ([i915#402]) -> [PASS][4] +2 similar 
issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9733/fi-tgl-y/igt@debugfs_test@read_all_entries.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19596/fi-tgl-y/igt@debugfs_test@read_all_entries.html

  
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (43 -> 39)
--

  Missing(4): fi-jsl-1 fi-ilk-m540 fi-bsw-cyan fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9733 -> Patchwork_19596

  CI-20190529: 20190529
  CI_DRM_9733: 0f9f63f17287af66109d2a765ec810989b4ebe16 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5991: a2d9c45fca85918ecf4776120aade64b9220 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19596: a8f6d642536b2362f21f0dad075449fbb3c573b7 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

a8f6d642536b drm/i915/gt: Double check heartbeat timeout before resetting
9b100da03974 drm/i915/selftests: Restore previous heartbeat interval

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19596/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915/selftest: Synchronise with the GPU timestamp

2021-02-04 Thread Chang, Yu bruce
> Wait for the GPU to wake up from the semaphore before measuring the
>time, so that we coordinate the sampling on both the CPU and GPU for
> more accurate comparisons.
>
>Reported-by: Bruce Chang 
> Signed-off-by: Chris Wilson 
> Cc: CQ Tang 
> ---
>  drivers/gpu/drm/i915/gt/selftest_engine_pm.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/selftest_engine_pm.c 
> b/drivers/gpu/drm/i915/gt/selftest_engine_pm.c
>index 3ce8cb3329f3..007a7c790778 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_engine_pm.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_engine_pm.c
> @@ -111,8 +111,10 @@ static int __measure_timestamps(struct intel_context *ce,
>
> /* Run the request for a 100us, sampling timestamps before/after */
>  preempt_disable();
> -   *dt = local_clock();
> write_semaphore([2], 0);
> +   while (READ_ONCE(sema[1]) == 0) /* wait for the gpu to catch up */
> +   cpu_relax();
> +   *dt = local_clock();
>  udelay(100);
> *dt = local_clock() - *dt;
>  write_semaphore([2], 1);
> --
>2.20.1
>

This trick should work!
Thanks!

Reviewed-by: Bruce Chang 

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915/icl, tgl: whitelist COMMON_SLICE_CHICKEN3 register

2021-02-04 Thread Sagar Ghuge
Adding this register to whitelist will allow UMD to toggle State Cache
Perf fix disable chicken bit.

   "If this bit is enabled, RCC uses BTP+BTI as address tag in its state
   cache instead of BTI only"

which will lead to dropping unnecessary render target flushes and stall
on scoreboard.

Bspec: 11333
Bspec: 45829

Signed-off-by: Sagar Ghuge 
---
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c 
b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 53f7838bd3c4..318302475c28 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -1473,6 +1473,9 @@ static void icl_whitelist_build(struct intel_engine_cs 
*engine)
/* WaEnableStateCacheRedirectToCS:icl */
whitelist_reg(w, GEN9_SLICE_COMMON_ECO_CHICKEN1);
 
+   /* WaAllowToDisableStateCachePerfFixFromUMD:icl */
+   whitelist_reg(w, GEN11_COMMON_SLICE_CHICKEN3);
+
/*
 * WaAllowPMDepthAndInvocationCountAccessFromUMD:icl
 *
@@ -1533,6 +1536,9 @@ static void tgl_whitelist_build(struct intel_engine_cs 
*engine)
/* Wa_1808121037:tgl */
whitelist_reg(w, GEN7_COMMON_SLICE_CHICKEN1);
 
+   /* WaAllowToDisableStateCachePerfFixFromUMD:tgl */
+   whitelist_reg(w, GEN11_COMMON_SLICE_CHICKEN3);
+
/* Wa_1806527549:tgl */
whitelist_reg(w, HIZ_CHICKEN);
break;
-- 
2.29.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915/selftest: Synchronise with the GPU timestamp

2021-02-04 Thread Chris Wilson
Wait for the GPU to wake up from the semaphore before measuring the
time, so that we coordinate the sampling on both the CPU and GPU for
more accurate comparisons.

Reported-by: Bruce Chang 
Signed-off-by: Chris Wilson 
Cc: CQ Tang 
---
 drivers/gpu/drm/i915/gt/selftest_engine_pm.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/selftest_engine_pm.c 
b/drivers/gpu/drm/i915/gt/selftest_engine_pm.c
index 3ce8cb3329f3..007a7c790778 100644
--- a/drivers/gpu/drm/i915/gt/selftest_engine_pm.c
+++ b/drivers/gpu/drm/i915/gt/selftest_engine_pm.c
@@ -111,8 +111,10 @@ static int __measure_timestamps(struct intel_context *ce,
 
/* Run the request for a 100us, sampling timestamps before/after */
preempt_disable();
-   *dt = local_clock();
write_semaphore([2], 0);
+   while (READ_ONCE(sema[1]) == 0) /* wait for the gpu to catch up */
+   cpu_relax();
+   *dt = local_clock();
udelay(100);
*dt = local_clock() - *dt;
write_semaphore([2], 1);
-- 
2.20.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/display: support ddr5 mem types

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915/display: support ddr5 mem types
URL   : https://patchwork.freedesktop.org/series/86726/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9732 -> Patchwork_19595


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_basic@semaphore:
- fi-bsw-nick:NOTRUN -> [SKIP][1] ([fdo#109271]) +17 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/fi-bsw-nick/igt@amdgpu/amd_ba...@semaphore.html

  * igt@gem_flink_basic@bad-flink:
- fi-tgl-y:   [PASS][2] -> [DMESG-WARN][3] ([i915#402]) +1 similar 
issue
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@gem_flink_ba...@bad-flink.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/fi-tgl-y/igt@gem_flink_ba...@bad-flink.html

  
 Possible fixes 

  * igt@i915_selftest@live@execlists:
- fi-bsw-nick:[INCOMPLETE][4] ([i915#2940]) -> [PASS][5]
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-bsw-nick/igt@i915_selftest@l...@execlists.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/fi-bsw-nick/igt@i915_selftest@l...@execlists.html

  * igt@prime_vgem@basic-read:
- fi-tgl-y:   [DMESG-WARN][6] ([i915#402]) -> [PASS][7] +2 similar 
issues
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@prime_v...@basic-read.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/fi-tgl-y/igt@prime_v...@basic-read.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (43 -> 39)
--

  Missing(4): fi-jsl-1 fi-ilk-m540 fi-bsw-cyan fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9732 -> Patchwork_19595

  CI-20190529: 20190529
  CI_DRM_9732: adb75f6f105d29ef75c1c8547db6259cad2092df @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5991: a2d9c45fca85918ecf4776120aade64b9220 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19595: a83ab36bcc5af2cf1ddfd181707b0e6815473ed5 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

a83ab36bcc5a drm/i915/display: support ddr5 mem types

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19595/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: refactor intel_display.c + a bit more

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915: refactor intel_display.c + a bit more
URL   : https://patchwork.freedesktop.org/series/86723/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9732 -> Patchwork_19594


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_basic@semaphore:
- fi-bsw-nick:NOTRUN -> [SKIP][1] ([fdo#109271]) +17 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/fi-bsw-nick/igt@amdgpu/amd_ba...@semaphore.html

  * igt@gem_mmap_gtt@basic:
- fi-tgl-y:   [PASS][2] -> [DMESG-WARN][3] ([i915#402]) +1 similar 
issue
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@gem_mmap_...@basic.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/fi-tgl-y/igt@gem_mmap_...@basic.html

  
 Possible fixes 

  * igt@i915_selftest@live@execlists:
- fi-bsw-nick:[INCOMPLETE][4] ([i915#2940]) -> [PASS][5]
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-bsw-nick/igt@i915_selftest@l...@execlists.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/fi-bsw-nick/igt@i915_selftest@l...@execlists.html

  * igt@prime_vgem@basic-read:
- fi-tgl-y:   [DMESG-WARN][6] ([i915#402]) -> [PASS][7] +2 similar 
issues
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@prime_v...@basic-read.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/fi-tgl-y/igt@prime_v...@basic-read.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (43 -> 39)
--

  Missing(4): fi-jsl-1 fi-ilk-m540 fi-bsw-cyan fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9732 -> Patchwork_19594

  CI-20190529: 20190529
  CI_DRM_9732: adb75f6f105d29ef75c1c8547db6259cad2092df @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5991: a2d9c45fca85918ecf4776120aade64b9220 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19594: b222155f3f4eaeb6586e0ac52419cfd59fa2265a @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

b222155f3f4e drm/i915: move ddi pll state get to dpll mgr
c29fac301e62 drm/i915: refactor skylake scaler code into new file.
44f33f127d85 drm/i915: migrate i9xx plane get config
95df1ee5c668 drm/i915: migrate pll enable/disable code to intel_dpll.[ch]
10dd41f58e61 drm/i915: move is_ccs_modifier to an inline
ed9e74d3ed1e drm/i915: split fb scalable checks into g4x and skl versions
d60dcb2389b8 drm/i915: move pipe update code into crtc. (v2)
73371d0509a6 drm/i915: migrate skl planes code new file (v5)
dac5399f8947 drm/i915: migrate hsw fdi code to new file.
124144996ca6 drm/i915: refactor ddi translations into a separate file (v2)

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19594/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: refactor intel_display.c + a bit more

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915: refactor intel_display.c + a bit more
URL   : https://patchwork.freedesktop.org/series/86723/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
+drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:742:28: warning: symbol 
'bdw_get_buf_trans_edp' was not declared. Should it be static?
+drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:756:28: warning: symbol 
'skl_get_buf_trans_dp' was not declared. Should it be static?
+drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:773:28: warning: symbol 
'kbl_get_buf_trans_dp' was not declared. Should it be static?
+drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:794:28: warning: symbol 
'skl_get_buf_trans_edp' was not declared. Should it be static?
+drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:826:28: warning: symbol 
'skl_get_buf_trans_hdmi' was not declared. Should it be static?
+drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:841:5: warning: symbol 
'skl_buf_trans_num_entries' was not declared. Should it be static?
+drivers/gpu/drm/i915/intel_wakeref.c:137:19: warning: context imbalance in 
'wakeref_auto_timeout' - unexpected unlock


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: refactor intel_display.c + a bit more

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915: refactor intel_display.c + a bit more
URL   : https://patchwork.freedesktop.org/series/86723/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
124144996ca6 drm/i915: refactor ddi translations into a separate file (v2)
-:1525: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#1525: 
new file mode 100644

-:1793: CHECK:LINE_SPACING: Please don't use multiple blank lines
#1793: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:264:
+
+

-:2279: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#2279: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:750:
+   return bdw_ddi_translations_edp;
+   } else {

-:2296: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#2296: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:767:
+   return skl_u_ddi_translations_dp;
+   } else {

-:2317: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#2317: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:788:
+   return kbl_u_ddi_translations_dp;
+   } else {

-:2341: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#2341: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:812:
+   return skl_u_ddi_translations_edp;
+   } else {

-:2364: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#2364: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:835:
+   return skl_y_ddi_translations_hdmi;
+   } else {

-:2519: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#2519: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:990:
+   return cnl_ddi_translations_hdmi_1_05V;
+   } else {

-:2541: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#2541: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1012:
+   return cnl_ddi_translations_dp_1_05V;
+   } else {

-:2564: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#2564: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1035:
+   return cnl_ddi_translations_edp_1_05V;
+   } else {

-:2658: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#2658: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1129:
+   return icl_mg_phy_ddi_translations_hbr2_hbr3;
+   } else {

-:2750: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#2750: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1221:
+   return jsl_combo_phy_ddi_translations_edp_hbr2;
+   } else {

-:2795: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#2795: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1266:
+   return tgl_uy_combo_phy_ddi_translations_dp_hbr2;
+   } else {

-:2803: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#2803: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1274:
+   return rkl_combo_phy_ddi_translations_dp_hbr;
+   } else {

-:2862: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#2862: FILE: drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c:1333:
+   return tgl_dkl_phy_dp_ddi_trans_hbr2;
+   } else {

total: 0 errors, 14 warnings, 1 checks, 2980 lines checked
dac5399f8947 drm/i915: migrate hsw fdi code to new file.
-:293: WARNING:LONG_LINE: line length of 123 exceeds 100 columns
#293: FILE: drivers/gpu/drm/i915/display/intel_fdi.c:583:
+  FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2) | 
FDI_RX_TP1_TO_TP2_48 | FDI_RX_FDI_DELAY_90);

-:301: CHECK:USLEEP_RANGE: usleep_range is preferred over udelay; see 
Documentation/timers/timers-howto.rst
#301: FILE: drivers/gpu/drm/i915/display/intel_fdi.c:591:
+   udelay(220);

-:313: WARNING:BLOCK_COMMENT_STYLE: Block comments use a trailing */ on a 
separate line
#313: FILE: drivers/gpu/drm/i915/display/intel_fdi.c:603:
+* testing each value twice. */

-:325: WARNING:BLOCK_COMMENT_STYLE: Block comments use a trailing */ on a 
separate line
#325: FILE: drivers/gpu/drm/i915/display/intel_fdi.c:615:
+* port reversal bit */

-:327: WARNING:LONG_LINE: line length of 118 exceeds 100 columns
#327: FILE: drivers/gpu/drm/i915/display/intel_fdi.c:617:
+  DDI_BUF_CTL_ENABLE | ((crtc_state->fdi_lanes - 
1) << 1) | DDI_BUF_TRANS_SELECT(i / 2));

-:330: CHECK:USLEEP_RANGE: usleep_range is preferred over udelay; see 
Documentation/timers/timers-howto.rst
#330: FILE: drivers/gpu/drm/i915/display/intel_fdi.c:620:
+   

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Clean up the DDI clock routing mess (rev2)

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915: Clean up the DDI clock routing mess (rev2)
URL   : https://patchwork.freedesktop.org/series/86544/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9732 -> Patchwork_19593


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_basic@semaphore:
- fi-bsw-nick:NOTRUN -> [SKIP][1] ([fdo#109271]) +17 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/fi-bsw-nick/igt@amdgpu/amd_ba...@semaphore.html

  * igt@i915_selftest@live@execlists:
- fi-bsw-n3050:   [PASS][2] -> [INCOMPLETE][3] ([i915#2940])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-bsw-n3050/igt@i915_selftest@l...@execlists.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/fi-bsw-n3050/igt@i915_selftest@l...@execlists.html

  * igt@prime_self_import@basic-with_two_bos:
- fi-tgl-y:   [PASS][4] -> [DMESG-WARN][5] ([i915#402])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html

  * igt@runner@aborted:
- fi-bsw-n3050:   NOTRUN -> [FAIL][6] ([i915#1436] / [i915#2722])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/fi-bsw-n3050/igt@run...@aborted.html

  
 Possible fixes 

  * igt@i915_selftest@live@execlists:
- fi-bsw-nick:[INCOMPLETE][7] ([i915#2940]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-bsw-nick/igt@i915_selftest@l...@execlists.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/fi-bsw-nick/igt@i915_selftest@l...@execlists.html

  * igt@prime_vgem@basic-read:
- fi-tgl-y:   [DMESG-WARN][9] ([i915#402]) -> [PASS][10] +1 similar 
issue
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@prime_v...@basic-read.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/fi-tgl-y/igt@prime_v...@basic-read.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
  [i915#2722]: https://gitlab.freedesktop.org/drm/intel/issues/2722
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (43 -> 38)
--

  Missing(5): fi-jsl-1 fi-ilk-m540 fi-byt-j1900 fi-bsw-cyan fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9732 -> Patchwork_19593

  CI-20190529: 20190529
  CI_DRM_9732: adb75f6f105d29ef75c1c8547db6259cad2092df @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5991: a2d9c45fca85918ecf4776120aade64b9220 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19593: 3042cc386f808b0fbaab79f4a1dc54f0f03d947b @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

3042cc386f80 drm/i915: s/dev_priv/i915/ for the remainder of DDI clock routing
68c071acd87d drm/i915: Relocate icl_sanitize_encoder_pll_mapping()
43bdf3bff434 drm/i915: Use .disable_clock() for pll sanitation
ad2ff2024cda drm/i915: Split adl-s/rkl from icl_ddi_combo_{enable, 
disable}_clock()
2c2cbb342e26 drm/i915: Extract _cnl_ddi_{enable, disable}_clock()
da8fa7f178d4 drm/i915: Sprinkle WARN(!pll) into icl/dg1 .clock_enable()
955b034d57a3 drm/i915: Sprinkle a few missing locks around shared DDI clock 
registers
05feedf13562 drm/i915: Use intel_de_rmw() for DDI clock routing
6556f08b6691 drm/i915: Extract icl+ .{enable, disable}_clock() vfuncs
818ed01c5517 drm/i915: Convert DG1 over to .{enable, disable}_clock()
ff375afcdf02 drm/i195: Extract cnl_ddi_{enable, disable}_clock()
370fdbea29e2 drm/i915: Extract skl_ddi_{enable, disable}_clock()
104612889762 drm/i915: Extract hsw_ddi_{enable, disable}_clock()
7a9a433648ec drm/i915: Introduce .{enable, disable}_clock() encoder vfuncs

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19593/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [RFC,1/3] proc: Show GPU runtimes

2021-02-04 Thread Patchwork
== Series Details ==

Series: series starting with [RFC,1/3] proc: Show GPU runtimes
URL   : https://patchwork.freedesktop.org/series/86693/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9730_full -> Patchwork_19587_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_create@create-massive:
- shard-glk:  NOTRUN -> [DMESG-WARN][1] ([i915#3002])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-glk8/igt@gem_cre...@create-massive.html
- shard-apl:  NOTRUN -> [DMESG-WARN][2] ([i915#3002])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-apl7/igt@gem_cre...@create-massive.html

  * igt@gem_exec_fair@basic-none@rcs0:
- shard-kbl:  [PASS][3] -> [FAIL][4] ([i915#2842]) +1 similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/shard-kbl7/igt@gem_exec_fair@basic-n...@rcs0.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-kbl1/igt@gem_exec_fair@basic-n...@rcs0.html

  * igt@gem_exec_fair@basic-pace@rcs0:
- shard-kbl:  [PASS][5] -> [SKIP][6] ([fdo#109271])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/shard-kbl7/igt@gem_exec_fair@basic-p...@rcs0.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-kbl6/igt@gem_exec_fair@basic-p...@rcs0.html

  * igt@gem_exec_reloc@basic-many-active@vcs0:
- shard-kbl:  NOTRUN -> [FAIL][7] ([i915#2389]) +4 similar issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-kbl7/igt@gem_exec_reloc@basic-many-act...@vcs0.html

  * igt@gem_exec_reloc@basic-many-active@vcs1:
- shard-iclb: NOTRUN -> [FAIL][8] ([i915#2389])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-iclb4/igt@gem_exec_reloc@basic-many-act...@vcs1.html

  * igt@gem_exec_schedule@u-fairslice@rcs0:
- shard-tglb: [PASS][9] -> [DMESG-WARN][10] ([i915#2803])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/shard-tglb1/igt@gem_exec_schedule@u-fairsl...@rcs0.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-tglb6/igt@gem_exec_schedule@u-fairsl...@rcs0.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_19587/shard-apl3/igt@gem_huc_c...@huc-copy.html

  * igt@gem_pread@exhaustion:
- shard-skl:  NOTRUN -> [WARN][12] ([i915#2658])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-skl9/igt@gem_pr...@exhaustion.html

  * igt@gem_render_copy@yf-tiled-to-vebox-x-tiled:
- shard-iclb: NOTRUN -> [SKIP][13] ([i915#768])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-iclb3/igt@gem_render_c...@yf-tiled-to-vebox-x-tiled.html

  * igt@i915_pm_rc6_residency@rc6-fence:
- shard-iclb: [PASS][14] -> [WARN][15] ([i915#1804] / [i915#2684])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/shard-iclb8/igt@i915_pm_rc6_reside...@rc6-fence.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-iclb3/igt@i915_pm_rc6_reside...@rc6-fence.html

  * igt@kms_async_flips@test-time-stamp:
- shard-tglb: [PASS][16] -> [FAIL][17] ([i915#2574])
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/shard-tglb6/igt@kms_async_fl...@test-time-stamp.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-tglb7/igt@kms_async_fl...@test-time-stamp.html

  * igt@kms_big_fb@x-tiled-8bpp-rotate-270:
- shard-iclb: NOTRUN -> [SKIP][18] ([fdo#110725] / [fdo#111614])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-iclb3/igt@kms_big...@x-tiled-8bpp-rotate-270.html

  * igt@kms_big_joiner@basic:
- shard-kbl:  NOTRUN -> [SKIP][19] ([fdo#109271] / [i915#2705])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-kbl6/igt@kms_big_joi...@basic.html

  * igt@kms_big_joiner@invalid-modeset:
- shard-apl:  NOTRUN -> [SKIP][20] ([fdo#109271] / [i915#2705])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-apl3/igt@kms_big_joi...@invalid-modeset.html

  * igt@kms_chamelium@dp-mode-timings:
- shard-glk:  NOTRUN -> [SKIP][21] ([fdo#109271] / [fdo#111827]) +3 
similar issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/shard-glk8/igt@kms_chamel...@dp-mode-timings.html

  * igt@kms_chamelium@hdmi-hpd-with-enabled-mode:
- shard-kbl:  NOTRUN -> [SKIP][22] ([fdo#109271] / [fdo#111827]) +5 
similar issues
   [22]: 

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Clean up the DDI clock routing mess (rev2)

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915: Clean up the DDI clock routing mess (rev2)
URL   : https://patchwork.freedesktop.org/series/86544/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/i915/gt/intel_reset.c:1323:5: warning: context imbalance in 
'intel_gt_reset_trylock' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read16' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read32' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read64' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read8' - 
different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write16' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write32' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write8' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write16' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write32' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write8' 
- different lock contexts for basic block


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Clean up the DDI clock routing mess (rev2)

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915: Clean up the DDI clock routing mess (rev2)
URL   : https://patchwork.freedesktop.org/series/86544/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
7a9a433648ec drm/i915: Introduce .{enable, disable}_clock() encoder vfuncs
104612889762 drm/i915: Extract hsw_ddi_{enable, disable}_clock()
370fdbea29e2 drm/i915: Extract skl_ddi_{enable, disable}_clock()
ff375afcdf02 drm/i195: Extract cnl_ddi_{enable, disable}_clock()
818ed01c5517 drm/i915: Convert DG1 over to .{enable, disable}_clock()
6556f08b6691 drm/i915: Extract icl+ .{enable, disable}_clock() vfuncs
-:12: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#12: 
   and ICL_DPCLKA_CFGCR0_TC_CLK_OFF part form icl_{map,unmap}_plls_to_ports()

total: 0 errors, 1 warnings, 0 checks, 232 lines checked
05feedf13562 drm/i915: Use intel_de_rmw() for DDI clock routing
955b034d57a3 drm/i915: Sprinkle a few missing locks around shared DDI clock 
registers
da8fa7f178d4 drm/i915: Sprinkle WARN(!pll) into icl/dg1 .clock_enable()
2c2cbb342e26 drm/i915: Extract _cnl_ddi_{enable, disable}_clock()
ad2ff2024cda drm/i915: Split adl-s/rkl from icl_ddi_combo_{enable, 
disable}_clock()
43bdf3bff434 drm/i915: Use .disable_clock() for pll sanitation
68c071acd87d drm/i915: Relocate icl_sanitize_encoder_pll_mapping()
3042cc386f80 drm/i915: s/dev_priv/i915/ for the remainder of DDI clock routing


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/display: Remove PSR2 on JSL and EHL

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915/display: Remove PSR2 on JSL and EHL
URL   : https://patchwork.freedesktop.org/series/86714/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9732 -> Patchwork_19592


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_basic@semaphore:
- fi-bsw-nick:NOTRUN -> [SKIP][1] ([fdo#109271]) +17 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/fi-bsw-nick/igt@amdgpu/amd_ba...@semaphore.html

  * igt@gem_exec_suspend@basic-s3:
- fi-skl-6700k2:  [PASS][2] -> [INCOMPLETE][3] ([i915#198])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-skl-6700k2/igt@gem_exec_susp...@basic-s3.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/fi-skl-6700k2/igt@gem_exec_susp...@basic-s3.html
- fi-tgl-y:   [PASS][4] -> [DMESG-WARN][5] ([i915#2411] / 
[i915#402])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_pm_rpm@module-reload:
- fi-byt-j1900:   [PASS][6] -> [INCOMPLETE][7] ([i915#142] / 
[i915#2405])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-byt-j1900/igt@i915_pm_...@module-reload.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/fi-byt-j1900/igt@i915_pm_...@module-reload.html

  * igt@i915_selftest@live@sanitycheck:
- fi-kbl-7500u:   [PASS][8] -> [DMESG-WARN][9] ([i915#2605])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-kbl-7500u/igt@i915_selftest@l...@sanitycheck.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/fi-kbl-7500u/igt@i915_selftest@l...@sanitycheck.html

  * igt@prime_self_import@basic-with_two_bos:
- fi-tgl-y:   [PASS][10] -> [DMESG-WARN][11] ([i915#402]) +2 
similar issues
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html

  * igt@runner@aborted:
- fi-byt-j1900:   NOTRUN -> [FAIL][12] ([i915#1814] / [i915#2505])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/fi-byt-j1900/igt@run...@aborted.html

  
 Possible fixes 

  * igt@i915_selftest@live@execlists:
- fi-bsw-nick:[INCOMPLETE][13] ([i915#2940]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-bsw-nick/igt@i915_selftest@l...@execlists.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/fi-bsw-nick/igt@i915_selftest@l...@execlists.html

  * igt@prime_vgem@basic-read:
- fi-tgl-y:   [DMESG-WARN][15] ([i915#402]) -> [PASS][16] +2 
similar issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@prime_v...@basic-read.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/fi-tgl-y/igt@prime_v...@basic-read.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#142]: https://gitlab.freedesktop.org/drm/intel/issues/142
  [i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814
  [i915#198]: https://gitlab.freedesktop.org/drm/intel/issues/198
  [i915#2405]: https://gitlab.freedesktop.org/drm/intel/issues/2405
  [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
  [i915#2505]: https://gitlab.freedesktop.org/drm/intel/issues/2505
  [i915#2605]: https://gitlab.freedesktop.org/drm/intel/issues/2605
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (43 -> 38)
--

  Missing(5): fi-jsl-1 fi-ilk-m540 fi-bsw-cyan fi-bsw-kefka fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9732 -> Patchwork_19592

  CI-20190529: 20190529
  CI_DRM_9732: adb75f6f105d29ef75c1c8547db6259cad2092df @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5991: a2d9c45fca85918ecf4776120aade64b9220 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19592: 26994f547e3ad326b6303505e14e35a3120839cf @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

26994f547e3a drm/i915/display: Remove PSR2 on JSL and EHL

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19592/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Make psr_safest_params and enable_psr2_sel_fetch parameters read only

2021-02-04 Thread Patchwork
== Series Details ==

Series: drm/i915: Make psr_safest_params and enable_psr2_sel_fetch parameters 
read only
URL   : https://patchwork.freedesktop.org/series/86710/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9732 -> Patchwork_19591


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_basic@semaphore:
- fi-bsw-nick:NOTRUN -> [SKIP][1] ([fdo#109271]) +17 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/fi-bsw-nick/igt@amdgpu/amd_ba...@semaphore.html

  * igt@gem_exec_suspend@basic-s3:
- fi-tgl-y:   [PASS][2] -> [DMESG-WARN][3] ([i915#2411] / 
[i915#402])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_selftest@live@execlists:
- fi-bsw-kefka:   [PASS][4] -> [INCOMPLETE][5] ([i915#2940])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-bsw-kefka/igt@i915_selftest@l...@execlists.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/fi-bsw-kefka/igt@i915_selftest@l...@execlists.html

  * igt@kms_chamelium@dp-crc-fast:
- fi-kbl-7500u:   [PASS][6] -> [FAIL][7] ([i915#1372])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-kbl-7500u/igt@kms_chamel...@dp-crc-fast.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/fi-kbl-7500u/igt@kms_chamel...@dp-crc-fast.html

  * igt@prime_self_import@basic-with_two_bos:
- fi-tgl-y:   [PASS][8] -> [DMESG-WARN][9] ([i915#402]) +1 similar 
issue
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html

  * igt@runner@aborted:
- fi-bsw-kefka:   NOTRUN -> [FAIL][10] ([i915#1436])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/fi-bsw-kefka/igt@run...@aborted.html

  
 Possible fixes 

  * igt@i915_selftest@live@execlists:
- fi-bsw-nick:[INCOMPLETE][11] ([i915#2940]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-bsw-nick/igt@i915_selftest@l...@execlists.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/fi-bsw-nick/igt@i915_selftest@l...@execlists.html

  * igt@prime_vgem@basic-read:
- fi-tgl-y:   [DMESG-WARN][13] ([i915#402]) -> [PASS][14] +2 
similar issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@prime_v...@basic-read.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/fi-tgl-y/igt@prime_v...@basic-read.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1372]: https://gitlab.freedesktop.org/drm/intel/issues/1372
  [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
  [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (43 -> 39)
--

  Missing(4): fi-jsl-1 fi-ilk-m540 fi-bsw-cyan fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9732 -> Patchwork_19591

  CI-20190529: 20190529
  CI_DRM_9732: adb75f6f105d29ef75c1c8547db6259cad2092df @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5991: a2d9c45fca85918ecf4776120aade64b9220 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19591: 40c071ccaac156b523d1435aac5faf05b715d143 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

40c071ccaac1 drm/i915: Make psr_safest_params and enable_psr2_sel_fetch 
parameters read only

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19591/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [CI 2/2] drm/i915/gt: Double check heartbeat timeout before resetting

2021-02-04 Thread Chris Wilson
Check that we have actually passed the heartbeat interval since last
checking the request before resetting the device.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2780
Signed-off-by: Chris Wilson 
Reviewed-by: Mika Kuoppala 
---
 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c 
b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
index 48a91c0dbad6..93741a65924a 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
@@ -31,7 +31,7 @@ static bool next_heartbeat(struct intel_engine_cs *engine)
delay = msecs_to_jiffies_timeout(delay);
if (delay >= HZ)
delay = round_jiffies_up_relative(delay);
-   mod_delayed_work(system_highpri_wq, >heartbeat.work, delay);
+   mod_delayed_work(system_highpri_wq, >heartbeat.work, delay + 1);
 
return true;
 }
@@ -103,6 +103,13 @@ static void heartbeat(struct work_struct *wrk)
goto out;
 
if (engine->heartbeat.systole) {
+   long delay = READ_ONCE(engine->props.heartbeat_interval_ms);
+
+   /* Safeguard against too-fast worker invocations */
+   if (!time_after(jiffies,
+   rq->emitted_jiffies + msecs_to_jiffies(delay)))
+   goto out;
+
if (!i915_sw_fence_signaled(>submit)) {
/*
 * Not yet submitted, system is stalled.
@@ -139,6 +146,8 @@ static void heartbeat(struct work_struct *wrk)
  "stopped heartbeat on %s",
  engine->name);
}
+
+   rq->emitted_jiffies = jiffies;
goto out;
}
 
-- 
2.20.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [CI 1/2] drm/i915/selftests: Restore previous heartbeat interval

2021-02-04 Thread Chris Wilson
Use the defaults we store on the engine when resetting the heartbeat as
we may have had to adjust it from the config value during initialisation.

Signed-off-by: Chris Wilson 
Reviewed-by: Mika Kuoppala 
---
 .../gpu/drm/i915/gt/selftest_engine_heartbeat.c| 14 ++
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c 
b/drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c
index b0bae6676140..b2c369317bf1 100644
--- a/drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c
+++ b/drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c
@@ -11,6 +11,12 @@
 #include "i915_selftest.h"
 #include "selftest_engine_heartbeat.h"
 
+static void reset_heartbeat(struct intel_engine_cs *engine)
+{
+   intel_engine_set_heartbeat(engine,
+  engine->defaults.heartbeat_interval_ms);
+}
+
 static int timeline_sync(struct intel_timeline *tl)
 {
struct dma_fence *fence;
@@ -269,7 +275,7 @@ static int __live_heartbeat_fast(struct intel_engine_cs 
*engine)
err = -EINVAL;
}
 
-   intel_engine_set_heartbeat(engine, CONFIG_DRM_I915_HEARTBEAT_INTERVAL);
+   reset_heartbeat(engine);
 err_pm:
intel_engine_pm_put(engine);
intel_context_put(ce);
@@ -284,7 +290,7 @@ static int live_heartbeat_fast(void *arg)
int err = 0;
 
/* Check that the heartbeat ticks at the desired rate. */
-   if (!CONFIG_DRM_I915_HEARTBEAT_INTERVAL)
+   if (!IS_ACTIVE(CONFIG_DRM_I915_HEARTBEAT_INTERVAL))
return 0;
 
for_each_engine(engine, gt, id) {
@@ -332,7 +338,7 @@ static int __live_heartbeat_off(struct intel_engine_cs 
*engine)
}
 
 err_beat:
-   intel_engine_set_heartbeat(engine, CONFIG_DRM_I915_HEARTBEAT_INTERVAL);
+   reset_heartbeat(engine);
 err_pm:
intel_engine_pm_put(engine);
return err;
@@ -346,7 +352,7 @@ static int live_heartbeat_off(void *arg)
int err = 0;
 
/* Check that we can turn off heartbeat and not interrupt VIP */
-   if (!CONFIG_DRM_I915_HEARTBEAT_INTERVAL)
+   if (!IS_ACTIVE(CONFIG_DRM_I915_HEARTBEAT_INTERVAL))
return 0;
 
for_each_engine(engine, gt, id) {
-- 
2.20.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v15,1/2] drm/i915/display: Support PSR Multiple Instances

2021-02-04 Thread Patchwork
== Series Details ==

Series: series starting with [v15,1/2] drm/i915/display: Support PSR Multiple 
Instances
URL   : https://patchwork.freedesktop.org/series/86701/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9732 -> Patchwork_19590


Summary
---

  **WARNING**

  Minor unknown changes coming with Patchwork_19590 need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19590, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

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

Possible new issues
---

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

### IGT changes ###

 Warnings 

  * igt@kms_psr@primary_mmap_gtt:
- fi-icl-y:   [SKIP][1] ([fdo#110189]) -> [SKIP][2] +3 similar 
issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-icl-y/igt@kms_psr@primary_mmap_gtt.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/fi-icl-y/igt@kms_psr@primary_mmap_gtt.html

  
 Suppressed 

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

  * igt@kms_psr@cursor_plane_move:
- {fi-rkl-11500t}:[SKIP][3] ([i915#1072]) -> [SKIP][4] +3 similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-rkl-11500t/igt@kms_psr@cursor_plane_move.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/fi-rkl-11500t/igt@kms_psr@cursor_plane_move.html

  * igt@kms_psr@primary_mmap_gtt:
- {fi-tgl-dsi}:   [SKIP][5] ([fdo#110189]) -> [SKIP][6] +3 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-dsi/igt@kms_psr@primary_mmap_gtt.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/fi-tgl-dsi/igt@kms_psr@primary_mmap_gtt.html

  * igt@kms_psr@sprite_plane_onoff:
- {fi-ehl-1}: [SKIP][7] ([i915#1072]) -> [SKIP][8] +3 similar issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-ehl-1/igt@kms_psr@sprite_plane_onoff.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/fi-ehl-1/igt@kms_psr@sprite_plane_onoff.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_basic@semaphore:
- fi-bsw-nick:NOTRUN -> [SKIP][9] ([fdo#109271]) +17 similar issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/fi-bsw-nick/igt@amdgpu/amd_ba...@semaphore.html

  * igt@i915_getparams_basic@basic-subslice-total:
- fi-tgl-y:   [PASS][10] -> [DMESG-WARN][11] ([i915#402]) +1 
similar issue
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@i915_getparams_ba...@basic-subslice-total.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/fi-tgl-y/igt@i915_getparams_ba...@basic-subslice-total.html

  * igt@i915_selftest@live@blt:
- fi-hsw-4770:[PASS][12] -> [DMESG-FAIL][13] ([i915#1409])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-hsw-4770/igt@i915_selftest@l...@blt.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/fi-hsw-4770/igt@i915_selftest@l...@blt.html

  
 Possible fixes 

  * igt@i915_selftest@live@execlists:
- fi-bsw-nick:[INCOMPLETE][14] ([i915#2940]) -> [PASS][15]
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-bsw-nick/igt@i915_selftest@l...@execlists.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/fi-bsw-nick/igt@i915_selftest@l...@execlists.html

  * igt@prime_vgem@basic-read:
- fi-tgl-y:   [DMESG-WARN][16] ([i915#402]) -> [PASS][17] +2 
similar issues
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@prime_v...@basic-read.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/fi-tgl-y/igt@prime_v...@basic-read.html

  
 Warnings 

  * igt@kms_psr@primary_mmap_gtt:
- fi-hsw-4770:[SKIP][18] ([fdo#109271] / [i915#1072]) -> [SKIP][19] 
([fdo#109271]) +3 similar issues
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-hsw-4770/igt@kms_psr@primary_mmap_gtt.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19590/fi-hsw-4770/igt@kms_psr@primary_mmap_gtt.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#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1409]: 

Re: [Intel-gfx] [PATCH v11 03/10] drm/i915: migrate skl planes code new file (v5)

2021-02-04 Thread Jani Nikula
On Thu, 04 Feb 2021, Ville Syrjälä  wrote:
> On Thu, Feb 04, 2021 at 09:43:20PM +0200, Jani Nikula wrote:
>> -unsigned int
>> -intel_plane_fence_y_offset(const struct intel_plane_state *plane_state)
>> -{
>> -int x = 0, y = 0;
>> -
>> -intel_plane_adjust_aligned_offset(, , plane_state, 0,
>> -  plane_state->color_plane[0].offset, 
>> 0);
>> -
>> -return y;
>> -}
>
> This unrelated code motion is still here, messing up the diff.

Right. I wasn't looking to improve anything, I just wanted to rebase and
get test results.

BR,
Jani.

>
> 
>>  }
>>  
>> -void skl_scaler_disable(const struct intel_crtc_state *old_crtc_state)
>> -{
>> -struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
>> -int i;
>> -
>> -for (i = 0; i < crtc->num_scalers; i++)
>> -skl_detach_scaler(crtc, i);
>> -}
>
> ditto

-- 
Jani Nikula, Intel Open Source Graphics Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v11 09/10] drm/i915: refactor skylake scaler code into new file.

2021-02-04 Thread Ville Syrjälä
On Thu, Feb 04, 2021 at 09:43:26PM +0200, Jani Nikula wrote:
>  static void skl_pfit_enable(const struct intel_crtc_state *crtc_state)
>  {
>   struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);

Missed all the skl_pfit*().

> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c 
> b/drivers/gpu/drm/i915/display/intel_sprite.c
> index 46fcb5b9983f..4cbdb8fd4bb1 100644
> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> @@ -138,68 +138,6 @@ int intel_plane_check_src_coordinates(struct 
> intel_plane_state *plane_state)
>   return 0;
>  }
>  
> -void
> -skl_program_scaler(struct intel_plane *plane,
> -const struct intel_crtc_state *crtc_state,
> -const struct intel_plane_state *plane_state)

If we move this we should rename it to skl_program_plane_scaler() or
something along those lines. Ideally I'd like to have a single
function that works for both pipe and plane scaling but that might
require some actual thought so not going to be a trivial rename/move.

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915/display: support ddr5 mem types

2021-02-04 Thread Souza, Jose
On Thu, 2021-02-04 at 12:04 -0800, clinton.a.tay...@intel.com wrote:
> From: Clint Taylor 
> 
> Add DDR5 and LPDDR5 return values from punit fw.
> 

Reviewed-by: José Roberto de Souza 

> BSPEC: 54023
> Cc: Matt Roper 
> Cc: José Roberto de Souza 
> Signed-off-by: Clint Taylor 
> ---
>  drivers/gpu/drm/i915/display/intel_bw.c | 12 +++-
>  drivers/gpu/drm/i915/i915_drv.h |  4 +++-
>  drivers/gpu/drm/i915/intel_dram.c   |  6 ++
>  3 files changed, 20 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_bw.c 
> b/drivers/gpu/drm/i915/display/intel_bw.c
> index ba9e713585e7..d122b9965532 100644
> --- a/drivers/gpu/drm/i915/display/intel_bw.c
> +++ b/drivers/gpu/drm/i915/display/intel_bw.c
> @@ -78,7 +78,17 @@ static int icl_get_qgv_points(struct drm_i915_private 
> *dev_priv,
>   qi->num_points = dram_info->num_qgv_points;
>  
> 
> 
> 
>   if (IS_GEN(dev_priv, 12))
> - qi->t_bl = dev_priv->dram_info.type == INTEL_DRAM_DDR4 ? 4 : 16;
> + switch (dram_info->type) {
> + case INTEL_DRAM_DDR4:
> + qi->t_bl = 4;
> + break;
> + case INTEL_DRAM_DDR5:
> + qi->t_bl = 8;
> + break;
> + default:
> + qi->t_bl = 16;
> + break;
> + }
>   else if (IS_GEN(dev_priv, 11))
>   qi->t_bl = dev_priv->dram_info.type == INTEL_DRAM_DDR4 ? 4 : 8;
>  
> 
> 
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index a2fd7e5039b3..8083a50908bf 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1136,7 +1136,9 @@ struct drm_i915_private {
>   INTEL_DRAM_DDR3,
>   INTEL_DRAM_DDR4,
>   INTEL_DRAM_LPDDR3,
> - INTEL_DRAM_LPDDR4
> + INTEL_DRAM_LPDDR4,
> + INTEL_DRAM_DDR5,
> + INTEL_DRAM_LPDDR5,
>   } type;
>   u8 num_qgv_points;
>   } dram_info;
> diff --git a/drivers/gpu/drm/i915/intel_dram.c 
> b/drivers/gpu/drm/i915/intel_dram.c
> index 73d256fc6830..1e53c017c30d 100644
> --- a/drivers/gpu/drm/i915/intel_dram.c
> +++ b/drivers/gpu/drm/i915/intel_dram.c
> @@ -427,6 +427,12 @@ static int icl_pcode_read_mem_global_info(struct 
> drm_i915_private *dev_priv)
>   case 0:
>   dram_info->type = INTEL_DRAM_DDR4;
>   break;
> + case 1:
> + dram_info->type = INTEL_DRAM_DDR5;
> + break;
> + case 2:
> + dram_info->type = INTEL_DRAM_LPDDR5;
> + break;
>   case 3:
>   dram_info->type = INTEL_DRAM_LPDDR4;
>   break;

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [v15,1/2] drm/i915/display: Support PSR Multiple Instances

2021-02-04 Thread Patchwork
== Series Details ==

Series: series starting with [v15,1/2] drm/i915/display: Support PSR Multiple 
Instances
URL   : https://patchwork.freedesktop.org/series/86701/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/i915/gt/intel_reset.c:1323:5: warning: context imbalance in 
'intel_gt_reset_trylock' - different lock contexts for basic block
+drivers/gpu/drm/i915/gvt/mmio.c:295:23: warning: memcpy with byte count of 
279040
+drivers/gpu/drm/i915/i915_perf.c:1450:15: warning: memset with byte count of 
16777216
+drivers/gpu/drm/i915/i915_perf.c:1504:15: warning: memset with byte count of 
16777216
+drivers/gpu/drm/i915/intel_wakeref.c:137:19: warning: context imbalance in 
'wakeref_auto_timeout' - unexpected unlock
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read16' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read32' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read64' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read8' - 
different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write16' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write32' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write8' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write16' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write32' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write8' 
- different lock contexts for basic block


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v11 03/10] drm/i915: migrate skl planes code new file (v5)

2021-02-04 Thread Ville Syrjälä
On Thu, Feb 04, 2021 at 09:43:20PM +0200, Jani Nikula wrote:
> -unsigned int
> -intel_plane_fence_y_offset(const struct intel_plane_state *plane_state)
> -{
> - int x = 0, y = 0;
> -
> - intel_plane_adjust_aligned_offset(, , plane_state, 0,
> -   plane_state->color_plane[0].offset, 
> 0);
> -
> - return y;
> -}

This unrelated code motion is still here, messing up the diff.


>  }
>  
> -void skl_scaler_disable(const struct intel_crtc_state *old_crtc_state)
> -{
> - struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
> - int i;
> -
> - for (i = 0; i < crtc->num_scalers; i++)
> - skl_detach_scaler(crtc, i);
> -}

ditto

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v15,1/2] drm/i915/display: Support PSR Multiple Instances

2021-02-04 Thread Patchwork
== Series Details ==

Series: series starting with [v15,1/2] drm/i915/display: Support PSR Multiple 
Instances
URL   : https://patchwork.freedesktop.org/series/86701/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
f7ac9079531d drm/i915/display: Support PSR Multiple Instances
-:90: ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in 
parentheses
#90: FILE: drivers/gpu/drm/i915/display/intel_display.h:420:
+#define for_each_intel_encoder_mask_can_psr(dev, intel_encoder, encoder_mask) \
+   list_for_each_entry((intel_encoder), &(dev)->mode_config.encoder_list, 
base.head) \
+   for_each_if(((encoder_mask) & 
drm_encoder_mask(&(intel_encoder)->base)) && \
+   intel_encoder_can_psr(intel_encoder))

-:90: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'intel_encoder' - possible 
side-effects?
#90: FILE: drivers/gpu/drm/i915/display/intel_display.h:420:
+#define for_each_intel_encoder_mask_can_psr(dev, intel_encoder, encoder_mask) \
+   list_for_each_entry((intel_encoder), &(dev)->mode_config.encoder_list, 
base.head) \
+   for_each_if(((encoder_mask) & 
drm_encoder_mask(&(intel_encoder)->base)) && \
+   intel_encoder_can_psr(intel_encoder))

-:99: ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in 
parentheses
#99: FILE: drivers/gpu/drm/i915/display/intel_display.h:429:
+#define for_each_intel_encoder_can_psr(dev, intel_encoder) \
+   for_each_intel_encoder((dev), (intel_encoder)) \
+   for_each_if(intel_encoder_can_psr(intel_encoder))

-:99: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'intel_encoder' - possible 
side-effects?
#99: FILE: drivers/gpu/drm/i915/display/intel_display.h:429:
+#define for_each_intel_encoder_can_psr(dev, intel_encoder) \
+   for_each_intel_encoder((dev), (intel_encoder)) \
+   for_each_if(intel_encoder_can_psr(intel_encoder))

-:377: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'intel_dp' - possible 
side-effects?
#377: FILE: drivers/gpu/drm/i915/display/intel_display_types.h:1795:
+#define CAN_PSR(intel_dp)  (HAS_PSR(dp_to_i915(intel_dp)) && \
+(intel_dp)->psr.sink_support && \
+(intel_dp)->psr.source_support)

total: 2 errors, 0 warnings, 3 checks, 1726 lines checked
7a9ed6999675 drm/i915/display: Support Multiple Transcoders' PSR status on 
debugfs


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for swiotlb: 64-bit DMA buffer

2021-02-04 Thread Patchwork
== Series Details ==

Series: swiotlb: 64-bit DMA buffer
URL   : https://patchwork.freedesktop.org/series/86700/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9732 -> Patchwork_19589


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_basic@semaphore:
- fi-bsw-nick:NOTRUN -> [SKIP][1] ([fdo#109271]) +17 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/fi-bsw-nick/igt@amdgpu/amd_ba...@semaphore.html

  * igt@prime_self_import@basic-with_one_bo_two_files:
- fi-tgl-y:   [PASS][2] -> [DMESG-WARN][3] ([i915#402]) +1 similar 
issue
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@prime_self_import@basic-with_one_bo_two_files.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/fi-tgl-y/igt@prime_self_import@basic-with_one_bo_two_files.html

  
 Possible fixes 

  * igt@i915_selftest@live@execlists:
- fi-bsw-nick:[INCOMPLETE][4] ([i915#2940]) -> [PASS][5]
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-bsw-nick/igt@i915_selftest@l...@execlists.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/fi-bsw-nick/igt@i915_selftest@l...@execlists.html

  * igt@prime_vgem@basic-read:
- fi-tgl-y:   [DMESG-WARN][6] ([i915#402]) -> [PASS][7] +2 similar 
issues
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9732/fi-tgl-y/igt@prime_v...@basic-read.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/fi-tgl-y/igt@prime_v...@basic-read.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (43 -> 39)
--

  Missing(4): fi-jsl-1 fi-ilk-m540 fi-bsw-cyan fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9732 -> Patchwork_19589

  CI-20190529: 20190529
  CI_DRM_9732: adb75f6f105d29ef75c1c8547db6259cad2092df @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5991: a2d9c45fca85918ecf4776120aade64b9220 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19589: 3a347e83afb9bd9f979e0b457114cbfaa2399154 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

3a347e83afb9 xen-swiotlb: enable 64-bit xen-swiotlb
30d8a3cce117 xen-swiotlb: convert variables to arrays
eb9848ac2c6c swiotlb: enable 64-bit swiotlb
7fe9ad150961 swiotlb: introduce swiotlb_get_type() to calculate swiotlb buffer 
type
50f74bc8af02 swiotlb: convert variables to arrays
e188296818db swiotlb: define new enumerated type

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19589/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915/display: Remove PSR2 on JSL and EHL

2021-02-04 Thread Souza, Jose
On Thu, 2021-02-04 at 09:58 -0800, José Roberto de Souza wrote:
> From: Edmund Dea 
> 
> While JSL and EHL eDP transcoder supports PSR2, the phy of this
> platforms only supports eDP 1.3, so removing PSR2 support as this
> feature was added in eDP 1.4.

Just sent a patch from Edmund with a minor commit message tweaks, so I guess my 
rvb is valid if not please let me know.

Reviewed-by: José Roberto de Souza 

> 
> Signed-off-by: Edmund Dea 
> Signed-off-by: José Roberto de Souza 
> ---
>  drivers/gpu/drm/i915/display/intel_psr.c | 6 ++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
> b/drivers/gpu/drm/i915/display/intel_psr.c
> index 2c365b778f74..cccb8aff4336 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -718,6 +718,12 @@ static bool intel_psr2_config_valid(struct intel_dp 
> *intel_dp,
>   if (!dev_priv->psr.sink_psr2_support)
>   return false;
>  
> 
> 
> 
> + /* JSL and EHL only supports eDP 1.3 */
> + if (IS_JSL_EHL(dev_priv)) {
> + drm_dbg_kms(_priv->drm, "PSR2 not supported by phy\n");
> + return false;
> + }
> +
>   if (!transcoder_has_psr2(dev_priv, crtc_state->cpu_transcoder)) {
>   drm_dbg_kms(_priv->drm,
>   "PSR2 not supported in transcoder %s\n",

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] RFC: dma-buf: Require VM_SPECIAL vma for mmap

2021-02-04 Thread Daniel Vetter
On Thu, Feb 4, 2021 at 9:09 PM Jason Gunthorpe  wrote:
>
> On Thu, Feb 04, 2021 at 08:59:59PM +0100, Daniel Vetter wrote:
>
> > So I think just checking for VM_PFNMAP after the vma is set up should
> > be enough to guarantee we'll only have pte_special ptes in there,
> > ever. But I'm not sure, this stuff all isn't really documented much
> > and the code is sometimes a maze (to me at least).
>
> Yes, that makes sense. VM_PFNMAP and !VM_MIXEDMAP seems like the right
> check after the VMA is populated
>
> But how do you stuff special pfns into a VMA outside the fault
> handler?

Many drivers we have don't have dynamic buffer management (kinda
overkill for a few framebuffers on a display-only IP block), so the
just remap_pfn_range on ->mmap, and don't have a fault handler at all.

Or I'm not understanding what you're asking?
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915/display: support ddr5 mem types

2021-02-04 Thread clinton . a . taylor
From: Clint Taylor 

Add DDR5 and LPDDR5 return values from punit fw.

BSPEC: 54023
Cc: Matt Roper 
Cc: José Roberto de Souza 
Signed-off-by: Clint Taylor 
---
 drivers/gpu/drm/i915/display/intel_bw.c | 12 +++-
 drivers/gpu/drm/i915/i915_drv.h |  4 +++-
 drivers/gpu/drm/i915/intel_dram.c   |  6 ++
 3 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_bw.c 
b/drivers/gpu/drm/i915/display/intel_bw.c
index ba9e713585e7..d122b9965532 100644
--- a/drivers/gpu/drm/i915/display/intel_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_bw.c
@@ -78,7 +78,17 @@ static int icl_get_qgv_points(struct drm_i915_private 
*dev_priv,
qi->num_points = dram_info->num_qgv_points;
 
if (IS_GEN(dev_priv, 12))
-   qi->t_bl = dev_priv->dram_info.type == INTEL_DRAM_DDR4 ? 4 : 16;
+   switch (dram_info->type) {
+   case INTEL_DRAM_DDR4:
+   qi->t_bl = 4;
+   break;
+   case INTEL_DRAM_DDR5:
+   qi->t_bl = 8;
+   break;
+   default:
+   qi->t_bl = 16;
+   break;
+   }
else if (IS_GEN(dev_priv, 11))
qi->t_bl = dev_priv->dram_info.type == INTEL_DRAM_DDR4 ? 4 : 8;
 
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index a2fd7e5039b3..8083a50908bf 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1136,7 +1136,9 @@ struct drm_i915_private {
INTEL_DRAM_DDR3,
INTEL_DRAM_DDR4,
INTEL_DRAM_LPDDR3,
-   INTEL_DRAM_LPDDR4
+   INTEL_DRAM_LPDDR4,
+   INTEL_DRAM_DDR5,
+   INTEL_DRAM_LPDDR5,
} type;
u8 num_qgv_points;
} dram_info;
diff --git a/drivers/gpu/drm/i915/intel_dram.c 
b/drivers/gpu/drm/i915/intel_dram.c
index 73d256fc6830..1e53c017c30d 100644
--- a/drivers/gpu/drm/i915/intel_dram.c
+++ b/drivers/gpu/drm/i915/intel_dram.c
@@ -427,6 +427,12 @@ static int icl_pcode_read_mem_global_info(struct 
drm_i915_private *dev_priv)
case 0:
dram_info->type = INTEL_DRAM_DDR4;
break;
+   case 1:
+   dram_info->type = INTEL_DRAM_DDR5;
+   break;
+   case 2:
+   dram_info->type = INTEL_DRAM_LPDDR5;
+   break;
case 3:
dram_info->type = INTEL_DRAM_LPDDR4;
break;
-- 
2.29.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] RFC: dma-buf: Require VM_SPECIAL vma for mmap

2021-02-04 Thread Daniel Vetter
On Thu, Feb 4, 2021 at 7:38 PM Jason Gunthorpe  wrote:
>
> On Thu, Feb 04, 2021 at 06:16:27PM +0100, Daniel Vetter wrote:
> > On Thu, Feb 4, 2021 at 5:13 PM Jason Gunthorpe  wrote:
> > > On Wed, Feb 03, 2021 at 10:19:48PM +0100, Daniel Vetter wrote:
> > > > tldr; DMA buffers aren't normal memory, expecting that you can use
> > > > them like that (like calling get_user_pages works, or that they're
> > > > accounting like any other normal memory) cannot be guaranteed.
> > > >
> > > > Since some userspace only runs on integrated devices, where all
> > > > buffers are actually all resident system memory, there's a huge
> > > > temptation to assume that a struct page is always present and useable
> > > > like for any more pagecache backed mmap. This has the potential to
> > > > result in a uapi nightmare.
> > > >
> > > > To stop this gap require that DMA buffer mmaps are VM_SPECIAL, which
> > > > blocks get_user_pages and all the other struct page based
> > > > infrastructure for everyone. In spirit this is the uapi counterpart to
> > > > the kernel-internal CONFIG_DMABUF_DEBUG.
> > >
> > > Fast gup needs the special flag set on the PTE as well.. Feels weird
> > > to have a special VMA without also having special PTEs?
> >
> > There's kinda no convenient & cheap way to check for the pte_special
> > flag. This here should at least catch accidental misuse, people
> > building their own ptes we can't stop. Maybe we should exclude
> > VM_MIXEDMAP to catch vm_insert_page in one of these.
> >
> > Hm looking at code I think we need to require VM_PFNMAP here to stop
> > vm_insert_page. And looking at the various functions, that seems to be
> > required (and I guess VM_IO is more for really funky architectures
> > where io-space is somewhere else?). I guess I should check for
> > VM_PFNMAP instead of VM_SPECIAL?
>
> Well, you said the goal was to block GUP usage, that won't happen
> without the PTE special flag, at least on x86
>
> So, really, what you are saying is all dmabuf users should always use
> vmf_insert_pfn_prot() or something similar - and never insert_page/etc?
>
> It might make sense to check the vma flags in all the insert paths, eg
> vm_insert_page() can't work with VMAs that should not have struct
> pages in them (eg VM_SPECIAl, VM_PFNMAP, !VM_MIXEMAP if I understand
> it right)

Well that's what I've done, and it /looks/ like all the checks are
there already, as long as we use VM_PFNMAP. vm_insert_page tries to
auto-add VM_MIXEDMAP, but bails out with a BUG_ON if VM_PFNMAP is set.
And all the vm_insert_pfn_prot/remap_pfn_range functions require (or
set) VM_PFNMAP.

So I think just checking for VM_PFNMAP after the vma is set up should
be enough to guarantee we'll only have pte_special ptes in there,
ever. But I'm not sure, this stuff all isn't really documented much
and the code is sometimes a maze (to me at least).

> At least as some VM debug option

Seems to be there already unconditionally.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for swiotlb: 64-bit DMA buffer

2021-02-04 Thread Patchwork
== Series Details ==

Series: swiotlb: 64-bit DMA buffer
URL   : https://patchwork.freedesktop.org/series/86700/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:257:49: error: static assertion 
failed: "amd_sriov_msg_vf2pf_info must be 1 KB"
+drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:261:49: error: static assertion 
failed: "amd_sriov_msg_pf2vf_info must be 1 KB"
+drivers/gpu/drm/i915/gt/intel_reset.c:1323:5: warning: context imbalance in 
'intel_gt_reset_trylock' - different lock contexts for basic block
+drivers/gpu/drm/i915/gvt/mmio.c:295:23: warning: memcpy with byte count of 
279040
+drivers/gpu/drm/i915/i915_perf.c:1450:15: warning: memset with byte count of 
16777216
+drivers/gpu/drm/i915/i915_perf.c:1504:15: warning: memset with byte count of 
16777216
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen11_fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 
'gen12_fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read16' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read32' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read64' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read8' - 
different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write16' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write32' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write8' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write16' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write32' 
- different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write8' 
- different lock contexts for basic block


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for swiotlb: 64-bit DMA buffer

2021-02-04 Thread Patchwork
== Series Details ==

Series: swiotlb: 64-bit DMA buffer
URL   : https://patchwork.freedesktop.org/series/86700/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
e188296818db swiotlb: define new enumerated type
50f74bc8af02 swiotlb: convert variables to arrays
-:130: WARNING:CONSIDER_KSTRTO: simple_strtoul is obsolete, use kstrtoul instead
#130: FILE: kernel/dma/swiotlb.c:116:
+   io_tlb_nslabs[SWIOTLB_LO] = simple_strtoul(str, , 0);

-:591: CHECK:SPACING: spaces preferred around that '+' (ctx:VxV)
#591: FILE: kernel/dma/swiotlb.c:589:
+   io_tlb_orig_addr[SWIOTLB_LO][index+i] = orig_addr + (i << 
IO_TLB_SHIFT);
  ^

total: 0 errors, 1 warnings, 1 checks, 602 lines checked
7fe9ad150961 swiotlb: introduce swiotlb_get_type() to calculate swiotlb buffer 
type
eb9848ac2c6c swiotlb: enable 64-bit swiotlb
-:227: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files
#227: FILE: include/linux/swiotlb.h:48:
+extern unsigned long swiotlb_nr_tbl(enum swiotlb_t type);

-:231: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files
#231: FILE: include/linux/swiotlb.h:50:
+extern int swiotlb_late_init_with_tbl(char *tlb, unsigned long nslabs,

-:233: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files
#233: FILE: include/linux/swiotlb.h:52:
+extern int swiotlb_late_init_with_default_size(size_t default_size,

-:268: CHECK:LINE_SPACING: Please use a blank line after 
function/struct/union/enum declarations
#268: FILE: include/linux/swiotlb.h:123:
 }
+static inline unsigned int swiotlb_max_segment(enum swiotlb_t type)

-:278: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files
#278: FILE: include/linux/swiotlb.h:142:
+extern void swiotlb_print_info(enum swiotlb_t type);

-:279: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files
#279: FILE: include/linux/swiotlb.h:143:
+extern void swiotlb_set_max_segment(unsigned int val, enum swiotlb_t type);

-:304: WARNING:CONSIDER_KSTRTO: simple_strtoul is obsolete, use kstrtoul instead
#304: FILE: kernel/dma/swiotlb.c:131:
+   io_tlb_nslabs[SWIOTLB_HI] = simple_strtoul(str, , 0);

-:840: CHECK:SPACING: spaces preferred around that '+' (ctx:VxV)
#840: FILE: kernel/dma/swiotlb.c:641:
+   io_tlb_orig_addr[type][index+i] = orig_addr + (i << 
IO_TLB_SHIFT);
^

total: 0 errors, 1 warnings, 7 checks, 790 lines checked
30d8a3cce117 xen-swiotlb: convert variables to arrays
-:110: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#110: FILE: drivers/xen/swiotlb-xen.c:208:
+   xen_io_tlb_start[SWIOTLB_LO] = memblock_alloc(PAGE_ALIGN(bytes),
  PAGE_SIZE);

total: 0 errors, 0 warnings, 1 checks, 181 lines checked
3a347e83afb9 xen-swiotlb: enable 64-bit xen-swiotlb
-:83: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#83: FILE: drivers/xen/swiotlb-xen.c:165:
+   xen_io_tlb_nslabs[type] = ALIGN(xen_io_tlb_nslabs[type],
  IO_TLB_SEGSIZE);

-:130: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#130: FILE: drivers/xen/swiotlb-xen.c:219:
+   xen_io_tlb_start[type] = memblock_alloc(PAGE_ALIGN(bytes),
  PAGE_SIZE);

total: 0 errors, 0 warnings, 2 checks, 235 lines checked


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [rfc v10] refactor intel_display.c + a bit more

2021-02-04 Thread Jani Nikula
On Wed, 27 Jan 2021, Dave Airlie  wrote:
> This is a repost of the last series, rebased to include the VRR
> and GEN12 CCS changes.
>
> It also has to scaler and ddi pll state movement patches that need
> review, I think the rest should be pretty good to push sooner so
> I don't fall into any more rebase traps.

It started conflicting on day 1. :(

Rebased and resent -> [1].

BR,
Jani.


[1] http://lore.kernel.org/r/cover.1612467466.git.jani.nik...@intel.com

-- 
Jani Nikula, Intel Open Source Graphics Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v11 10/10] drm/i915: move ddi pll state get to dpll mgr

2021-02-04 Thread Jani Nikula
From: Dave Airlie 

This just migrates the hsw+ code to a better place.

Signed-off-by: Dave Airlie 
Signed-off-by: Jani Nikula 
---
 drivers/gpu/drm/i915/display/intel_display.c  | 219 +
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 223 ++
 drivers/gpu/drm/i915/display/intel_dpll_mgr.h |   2 +
 3 files changed, 226 insertions(+), 218 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index d6046f2ab42e..7b7f4af701ac 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -6579,212 +6579,6 @@ static bool ilk_get_pipe_config(struct intel_crtc *crtc,
return ret;
 }
 
-static void dg1_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port,
-   struct intel_crtc_state *pipe_config)
-{
-   enum icl_port_dpll_id port_dpll_id = ICL_PORT_DPLL_DEFAULT;
-   enum phy phy = intel_port_to_phy(dev_priv, port);
-   struct icl_port_dpll *port_dpll;
-   struct intel_shared_dpll *pll;
-   enum intel_dpll_id id;
-   bool pll_active;
-   u32 clk_sel;
-
-   clk_sel = intel_de_read(dev_priv, DG1_DPCLKA_CFGCR0(phy)) & 
DG1_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy);
-   id = DG1_DPCLKA_CFGCR0_DDI_CLK_SEL_DPLL_MAP(clk_sel, phy);
-
-   if (WARN_ON(id > DPLL_ID_DG1_DPLL3))
-   return;
-
-   pll = intel_get_shared_dpll_by_id(dev_priv, id);
-   port_dpll = _config->icl_port_dplls[port_dpll_id];
-
-   port_dpll->pll = pll;
-   pll_active = intel_dpll_get_hw_state(dev_priv, pll,
-_dpll->hw_state);
-   drm_WARN_ON(_priv->drm, !pll_active);
-
-   icl_set_active_port_dpll(pipe_config, port_dpll_id);
-}
-
-static void icl_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port,
-   struct intel_crtc_state *pipe_config)
-{
-   enum phy phy = intel_port_to_phy(dev_priv, port);
-   enum icl_port_dpll_id port_dpll_id;
-   struct icl_port_dpll *port_dpll;
-   struct intel_shared_dpll *pll;
-   enum intel_dpll_id id;
-   bool pll_active;
-   i915_reg_t reg;
-   u32 temp;
-
-   if (intel_phy_is_combo(dev_priv, phy)) {
-   u32 mask, shift;
-
-   if (IS_ALDERLAKE_S(dev_priv)) {
-   reg = ADLS_DPCLKA_CFGCR(phy);
-   mask = ADLS_DPCLKA_CFGCR_DDI_CLK_SEL_MASK(phy);
-   shift = ADLS_DPCLKA_CFGCR_DDI_SHIFT(phy);
-   } else if (IS_ROCKETLAKE(dev_priv)) {
-   reg = ICL_DPCLKA_CFGCR0;
-   mask = RKL_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy);
-   shift = RKL_DPCLKA_CFGCR0_DDI_CLK_SEL_SHIFT(phy);
-   } else {
-   reg = ICL_DPCLKA_CFGCR0;
-   mask = ICL_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy);
-   shift = ICL_DPCLKA_CFGCR0_DDI_CLK_SEL_SHIFT(phy);
-   }
-
-   temp = intel_de_read(dev_priv, reg) & mask;
-   id = temp >> shift;
-   port_dpll_id = ICL_PORT_DPLL_DEFAULT;
-   } else if (intel_phy_is_tc(dev_priv, phy)) {
-   u32 clk_sel = intel_de_read(dev_priv, DDI_CLK_SEL(port)) & 
DDI_CLK_SEL_MASK;
-
-   if (clk_sel == DDI_CLK_SEL_MG) {
-   id = icl_tc_port_to_pll_id(intel_port_to_tc(dev_priv,
-   port));
-   port_dpll_id = ICL_PORT_DPLL_MG_PHY;
-   } else {
-   drm_WARN_ON(_priv->drm,
-   clk_sel < DDI_CLK_SEL_TBT_162);
-   id = DPLL_ID_ICL_TBTPLL;
-   port_dpll_id = ICL_PORT_DPLL_DEFAULT;
-   }
-   } else {
-   drm_WARN(_priv->drm, 1, "Invalid port %x\n", port);
-   return;
-   }
-
-   pll = intel_get_shared_dpll_by_id(dev_priv, id);
-   port_dpll = _config->icl_port_dplls[port_dpll_id];
-
-   port_dpll->pll = pll;
-   pll_active = intel_dpll_get_hw_state(dev_priv, pll,
-_dpll->hw_state);
-   drm_WARN_ON(_priv->drm, !pll_active);
-
-   icl_set_active_port_dpll(pipe_config, port_dpll_id);
-}
-
-static void cnl_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port,
-   struct intel_crtc_state *pipe_config)
-{
-   struct intel_shared_dpll *pll;
-   enum intel_dpll_id id;
-   bool pll_active;
-   u32 temp;
-
-   temp = intel_de_read(dev_priv, DPCLKA_CFGCR0) & 
DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(port);
-   id = temp >> DPCLKA_CFGCR0_DDI_CLK_SEL_SHIFT(port);
-
-   if (drm_WARN_ON(_priv->drm, id < SKL_DPLL0 || id > SKL_DPLL2))
-   return;
-
-   pll = intel_get_shared_dpll_by_id(dev_priv, id);
-
-   

[Intel-gfx] [PATCH v11 09/10] drm/i915: refactor skylake scaler code into new file.

2021-02-04 Thread Jani Nikula
From: Dave Airlie 

This moves the code from various places and consolidates it
into one new file.

Signed-off-by: Dave Airlie 
Signed-off-by: Jani Nikula 
---
 drivers/gpu/drm/i915/Makefile |   1 +
 drivers/gpu/drm/i915/display/icl_dsi.c|   1 +
 drivers/gpu/drm/i915/display/intel_atomic.c   |   2 +-
 drivers/gpu/drm/i915/display/intel_ddi.c  |   1 +
 drivers/gpu/drm/i915/display/intel_display.c  | 429 +--
 drivers/gpu/drm/i915/display/intel_display.h  |   6 -
 drivers/gpu/drm/i915/display/intel_dp_mst.c   |   1 +
 drivers/gpu/drm/i915/display/intel_sprite.c   |  62 ---
 drivers/gpu/drm/i915/display/intel_sprite.h   |   7 -
 drivers/gpu/drm/i915/display/skl_scaler.c | 497 ++
 drivers/gpu/drm/i915/display/skl_scaler.h |  32 ++
 .../drm/i915/display/skl_universal_plane.c|   1 +
 .../drm/i915/display/skl_universal_plane.h|   4 +
 drivers/gpu/drm/i915/display/vlv_dsi.c|   1 +
 14 files changed, 541 insertions(+), 504 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/display/skl_scaler.c
 create mode 100644 drivers/gpu/drm/i915/display/skl_scaler.h

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 9388e09184fe..235679637d1c 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -226,6 +226,7 @@ i915-y += \
display/intel_tc.o \
display/intel_vga.o \
display/i9xx_plane.o \
+   display/skl_scaler.o \
display/skl_universal_plane.o
 i915-$(CONFIG_ACPI) += \
display/intel_acpi.o \
diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c 
b/drivers/gpu/drm/i915/display/icl_dsi.c
index 9eeec6fadec7..7ef6b89c79d9 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -35,6 +35,7 @@
 #include "intel_dsi.h"
 #include "intel_panel.h"
 #include "intel_vdsc.h"
+#include "skl_scaler.h"
 #include "skl_universal_plane.h"
 
 static int header_credits_available(struct drm_i915_private *dev_priv,
diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c 
b/drivers/gpu/drm/i915/display/intel_atomic.c
index e00fdc47c0eb..27f7d7109ca3 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic.c
@@ -40,7 +40,7 @@
 #include "intel_global_state.h"
 #include "intel_hdcp.h"
 #include "intel_psr.h"
-#include "intel_sprite.h"
+#include "skl_universal_plane.h"
 
 /**
  * intel_digital_connector_atomic_get_property - hook for 
connector->atomic_get_property.
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index f4746c1edabe..3c4003605f93 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -54,6 +54,7 @@
 #include "intel_tc.h"
 #include "intel_vdsc.h"
 #include "intel_vrr.h"
+#include "skl_scaler.h"
 #include "skl_universal_plane.h"
 
 static const u8 index_to_dp_signal_levels[] = {
diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index ef1e0f072d8f..d6046f2ab42e 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -94,6 +94,7 @@
 #include "intel_tc.h"
 #include "intel_vga.h"
 #include "i9xx_plane.h"
+#include "skl_scaler.h"
 #include "skl_universal_plane.h"
 
 static void i9xx_crtc_clock_get(struct intel_crtc *crtc,
@@ -2510,47 +2511,6 @@ intel_find_initial_plane_obj(struct intel_crtc 
*intel_crtc,
  _intel_frontbuffer(fb)->bits);
 }
 
-static void skl_detach_scaler(struct intel_crtc *intel_crtc, int id)
-{
-   struct drm_device *dev = intel_crtc->base.dev;
-   struct drm_i915_private *dev_priv = to_i915(dev);
-   unsigned long irqflags;
-
-   spin_lock_irqsave(_priv->uncore.lock, irqflags);
-
-   intel_de_write_fw(dev_priv, SKL_PS_CTRL(intel_crtc->pipe, id), 0);
-   intel_de_write_fw(dev_priv, SKL_PS_WIN_POS(intel_crtc->pipe, id), 0);
-   intel_de_write_fw(dev_priv, SKL_PS_WIN_SZ(intel_crtc->pipe, id), 0);
-
-   spin_unlock_irqrestore(_priv->uncore.lock, irqflags);
-}
-
-/*
- * This function detaches (aka. unbinds) unused scalers in hardware
- */
-static void skl_detach_scalers(const struct intel_crtc_state *crtc_state)
-{
-   struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
-   const struct intel_crtc_scaler_state *scaler_state =
-   _state->scaler_state;
-   int i;
-
-   /* loop through and disable scalers that aren't in use */
-   for (i = 0; i < intel_crtc->num_scalers; i++) {
-   if (!scaler_state->scalers[i].in_use)
-   skl_detach_scaler(intel_crtc, i);
-   }
-}
-
-void skl_scaler_disable(const struct intel_crtc_state *old_crtc_state)
-{
-   struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
-   int i;
-
-   for (i = 0; i < crtc->num_scalers; i++)
-   skl_detach_scaler(crtc, i);

[Intel-gfx] [PATCH v11 08/10] drm/i915: migrate i9xx plane get config

2021-02-04 Thread Jani Nikula
From: Dave Airlie 

Migrate this code out like the skylake code.

Signed-off-by: Dave Airlie 
Reviewed-by: Ville Syrjälä 
Signed-off-by: Jani Nikula 
---
 drivers/gpu/drm/i915/display/i9xx_plane.c| 119 +++
 drivers/gpu/drm/i915/display/i9xx_plane.h|   4 +
 drivers/gpu/drm/i915/display/intel_display.c | 119 ---
 3 files changed, 123 insertions(+), 119 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c 
b/drivers/gpu/drm/i915/display/i9xx_plane.c
index d116dee201aa..0523e2c79d16 100644
--- a/drivers/gpu/drm/i915/display/i9xx_plane.c
+++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
@@ -893,3 +893,122 @@ intel_primary_plane_create(struct drm_i915_private 
*dev_priv, enum pipe pipe)
return ERR_PTR(ret);
 }
 
+static int i9xx_format_to_fourcc(int format)
+{
+   switch (format) {
+   case DISPPLANE_8BPP:
+   return DRM_FORMAT_C8;
+   case DISPPLANE_BGRA555:
+   return DRM_FORMAT_ARGB1555;
+   case DISPPLANE_BGRX555:
+   return DRM_FORMAT_XRGB1555;
+   case DISPPLANE_BGRX565:
+   return DRM_FORMAT_RGB565;
+   default:
+   case DISPPLANE_BGRX888:
+   return DRM_FORMAT_XRGB;
+   case DISPPLANE_RGBX888:
+   return DRM_FORMAT_XBGR;
+   case DISPPLANE_BGRA888:
+   return DRM_FORMAT_ARGB;
+   case DISPPLANE_RGBA888:
+   return DRM_FORMAT_ABGR;
+   case DISPPLANE_BGRX101010:
+   return DRM_FORMAT_XRGB2101010;
+   case DISPPLANE_RGBX101010:
+   return DRM_FORMAT_XBGR2101010;
+   case DISPPLANE_BGRA101010:
+   return DRM_FORMAT_ARGB2101010;
+   case DISPPLANE_RGBA101010:
+   return DRM_FORMAT_ABGR2101010;
+   case DISPPLANE_RGBX161616:
+   return DRM_FORMAT_XBGR16161616F;
+   }
+}
+
+void
+i9xx_get_initial_plane_config(struct intel_crtc *crtc,
+ struct intel_initial_plane_config *plane_config)
+{
+   struct drm_device *dev = crtc->base.dev;
+   struct drm_i915_private *dev_priv = to_i915(dev);
+   struct intel_plane *plane = to_intel_plane(crtc->base.primary);
+   enum i9xx_plane_id i9xx_plane = plane->i9xx_plane;
+   enum pipe pipe;
+   u32 val, base, offset;
+   int fourcc, pixel_format;
+   unsigned int aligned_height;
+   struct drm_framebuffer *fb;
+   struct intel_framebuffer *intel_fb;
+
+   if (!plane->get_hw_state(plane, ))
+   return;
+
+   drm_WARN_ON(dev, pipe != crtc->pipe);
+
+   intel_fb = kzalloc(sizeof(*intel_fb), GFP_KERNEL);
+   if (!intel_fb) {
+   drm_dbg_kms(_priv->drm, "failed to alloc fb\n");
+   return;
+   }
+
+   fb = _fb->base;
+
+   fb->dev = dev;
+
+   val = intel_de_read(dev_priv, DSPCNTR(i9xx_plane));
+
+   if (INTEL_GEN(dev_priv) >= 4) {
+   if (val & DISPPLANE_TILED) {
+   plane_config->tiling = I915_TILING_X;
+   fb->modifier = I915_FORMAT_MOD_X_TILED;
+   }
+
+   if (val & DISPPLANE_ROTATE_180)
+   plane_config->rotation = DRM_MODE_ROTATE_180;
+   }
+
+   if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B &&
+   val & DISPPLANE_MIRROR)
+   plane_config->rotation |= DRM_MODE_REFLECT_X;
+
+   pixel_format = val & DISPPLANE_PIXFORMAT_MASK;
+   fourcc = i9xx_format_to_fourcc(pixel_format);
+   fb->format = drm_format_info(fourcc);
+
+   if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) {
+   offset = intel_de_read(dev_priv, DSPOFFSET(i9xx_plane));
+   base = intel_de_read(dev_priv, DSPSURF(i9xx_plane)) & 
0xf000;
+   } else if (INTEL_GEN(dev_priv) >= 4) {
+   if (plane_config->tiling)
+   offset = intel_de_read(dev_priv,
+  DSPTILEOFF(i9xx_plane));
+   else
+   offset = intel_de_read(dev_priv,
+  DSPLINOFF(i9xx_plane));
+   base = intel_de_read(dev_priv, DSPSURF(i9xx_plane)) & 
0xf000;
+   } else {
+   base = intel_de_read(dev_priv, DSPADDR(i9xx_plane));
+   }
+   plane_config->base = base;
+
+   val = intel_de_read(dev_priv, PIPESRC(pipe));
+   fb->width = ((val >> 16) & 0xfff) + 1;
+   fb->height = ((val >> 0) & 0xfff) + 1;
+
+   val = intel_de_read(dev_priv, DSPSTRIDE(i9xx_plane));
+   fb->pitches[0] = val & 0xffc0;
+
+   aligned_height = intel_fb_align_height(fb, 0, fb->height);
+
+   plane_config->size = fb->pitches[0] * aligned_height;
+
+   drm_dbg_kms(_priv->drm,
+   "%s/%s with fb: size=%dx%d@%d, offset=%x, pitch %d, size 
0x%x\n",
+   crtc->base.name, plane->base.name, fb->width, fb->height,
+   

[Intel-gfx] [PATCH v11 06/10] drm/i915: move is_ccs_modifier to an inline

2021-02-04 Thread Jani Nikula
From: Dave Airlie 

There is no need for this to be out of line.

Reviewed-by: Ville Syrjälä 
Signed-off-by: Dave Airlie 
Signed-off-by: Jani Nikula 
---
 drivers/gpu/drm/i915/display/intel_display.c   | 9 -
 drivers/gpu/drm/i915/display/intel_display.h   | 1 -
 drivers/gpu/drm/i915/display/intel_display_types.h | 9 +
 3 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 8211cb40b5c6..3758627f0f7d 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -1823,15 +1823,6 @@ intel_get_format_info(const struct drm_mode_fb_cmd2 *cmd)
}
 }
 
-bool is_ccs_modifier(u64 modifier)
-{
-   return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS ||
-  modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC ||
-  modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS ||
-  modifier == I915_FORMAT_MOD_Y_TILED_CCS ||
-  modifier == I915_FORMAT_MOD_Yf_TILED_CCS;
-}
-
 static int gen12_ccs_aux_stride(struct drm_framebuffer *fb, int ccs_plane)
 {
return DIV_ROUND_UP(fb->pitches[skl_ccs_to_main_plane(fb, ccs_plane)],
diff --git a/drivers/gpu/drm/i915/display/intel_display.h 
b/drivers/gpu/drm/i915/display/intel_display.h
index 251398128349..c176c31c3ec2 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -508,7 +508,6 @@ void intel_link_compute_m_n(u16 bpp, int nlanes,
int pixel_clock, int link_clock,
struct intel_link_m_n *m_n,
bool constant_n, bool fec_enable);
-bool is_ccs_modifier(u64 modifier);
 void lpt_disable_clkout_dp(struct drm_i915_private *dev_priv);
 u32 intel_plane_fb_max_stride(struct drm_i915_private *dev_priv,
  u32 pixel_format, u64 modifier);
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
b/drivers/gpu/drm/i915/display/intel_display_types.h
index 23a74496c172..9222e4f9348f 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1895,6 +1895,15 @@ static inline u32 intel_fdi_link_freq(struct 
drm_i915_private *dev_priv,
return dev_priv->fdi_pll_freq;
 }
 
+static inline bool is_ccs_modifier(u64 modifier)
+{
+   return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS ||
+  modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC ||
+  modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS ||
+  modifier == I915_FORMAT_MOD_Y_TILED_CCS ||
+  modifier == I915_FORMAT_MOD_Yf_TILED_CCS;
+}
+
 static inline bool is_ccs_plane(const struct drm_framebuffer *fb, int plane)
 {
if (!is_ccs_modifier(fb->modifier))
-- 
2.20.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v11 07/10] drm/i915: migrate pll enable/disable code to intel_dpll.[ch]

2021-02-04 Thread Jani Nikula
From: Dave Airlie 

This moves the older i9xx/vlv/chv enable/disable to dpll file.

Signed-off-by: Dave Airlie 
Reviewed-by: Ville Syrjälä 
Signed-off-by: Jani Nikula 
---
 drivers/gpu/drm/i915/display/intel_display.c | 512 ---
 drivers/gpu/drm/i915/display/intel_display.h |   3 -
 drivers/gpu/drm/i915/display/intel_dp.c  |   1 +
 drivers/gpu/drm/i915/display/intel_dpll.c| 509 ++
 drivers/gpu/drm/i915/display/intel_dpll.h|  18 +
 drivers/gpu/drm/i915/display/intel_pps.c |   1 +
 6 files changed, 529 insertions(+), 515 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 3758627f0f7d..009f38cbd3c5 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -113,10 +113,6 @@ static void i9xx_set_pipeconf(const struct 
intel_crtc_state *crtc_state);
 static void ilk_set_pipeconf(const struct intel_crtc_state *crtc_state);
 static void hsw_set_pipeconf(const struct intel_crtc_state *crtc_state);
 static void bdw_set_pipemisc(const struct intel_crtc_state *crtc_state);
-static void vlv_prepare_pll(struct intel_crtc *crtc,
-   const struct intel_crtc_state *pipe_config);
-static void chv_prepare_pll(struct intel_crtc *crtc,
-   const struct intel_crtc_state *pipe_config);
 static void ilk_pfit_enable(const struct intel_crtc_state *crtc_state);
 static void intel_modeset_setup_hw_state(struct drm_device *dev,
 struct drm_modeset_acquire_ctx *ctx);
@@ -569,224 +565,6 @@ static void assert_pch_ports_disabled(struct 
drm_i915_private *dev_priv,
assert_pch_hdmi_disabled(dev_priv, pipe, PORT_D, PCH_HDMID);
 }
 
-static void _vlv_enable_pll(struct intel_crtc *crtc,
-   const struct intel_crtc_state *pipe_config)
-{
-   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-   enum pipe pipe = crtc->pipe;
-
-   intel_de_write(dev_priv, DPLL(pipe), pipe_config->dpll_hw_state.dpll);
-   intel_de_posting_read(dev_priv, DPLL(pipe));
-   udelay(150);
-
-   if (intel_de_wait_for_set(dev_priv, DPLL(pipe), DPLL_LOCK_VLV, 1))
-   drm_err(_priv->drm, "DPLL %d failed to lock\n", pipe);
-}
-
-static void vlv_enable_pll(struct intel_crtc *crtc,
-  const struct intel_crtc_state *pipe_config)
-{
-   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-   enum pipe pipe = crtc->pipe;
-
-   assert_pipe_disabled(dev_priv, pipe_config->cpu_transcoder);
-
-   /* PLL is protected by panel, make sure we can write it */
-   assert_panel_unlocked(dev_priv, pipe);
-
-   if (pipe_config->dpll_hw_state.dpll & DPLL_VCO_ENABLE)
-   _vlv_enable_pll(crtc, pipe_config);
-
-   intel_de_write(dev_priv, DPLL_MD(pipe),
-  pipe_config->dpll_hw_state.dpll_md);
-   intel_de_posting_read(dev_priv, DPLL_MD(pipe));
-}
-
-
-static void _chv_enable_pll(struct intel_crtc *crtc,
-   const struct intel_crtc_state *pipe_config)
-{
-   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-   enum pipe pipe = crtc->pipe;
-   enum dpio_channel port = vlv_pipe_to_channel(pipe);
-   u32 tmp;
-
-   vlv_dpio_get(dev_priv);
-
-   /* Enable back the 10bit clock to display controller */
-   tmp = vlv_dpio_read(dev_priv, pipe, CHV_CMN_DW14(port));
-   tmp |= DPIO_DCLKP_EN;
-   vlv_dpio_write(dev_priv, pipe, CHV_CMN_DW14(port), tmp);
-
-   vlv_dpio_put(dev_priv);
-
-   /*
-* Need to wait > 100ns between dclkp clock enable bit and PLL enable.
-*/
-   udelay(1);
-
-   /* Enable PLL */
-   intel_de_write(dev_priv, DPLL(pipe), pipe_config->dpll_hw_state.dpll);
-
-   /* Check PLL is locked */
-   if (intel_de_wait_for_set(dev_priv, DPLL(pipe), DPLL_LOCK_VLV, 1))
-   drm_err(_priv->drm, "PLL %d failed to lock\n", pipe);
-}
-
-static void chv_enable_pll(struct intel_crtc *crtc,
-  const struct intel_crtc_state *pipe_config)
-{
-   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-   enum pipe pipe = crtc->pipe;
-
-   assert_pipe_disabled(dev_priv, pipe_config->cpu_transcoder);
-
-   /* PLL is protected by panel, make sure we can write it */
-   assert_panel_unlocked(dev_priv, pipe);
-
-   if (pipe_config->dpll_hw_state.dpll & DPLL_VCO_ENABLE)
-   _chv_enable_pll(crtc, pipe_config);
-
-   if (pipe != PIPE_A) {
-   /*
-* WaPixelRepeatModeFixForC0:chv
-*
-* DPLLCMD is AWOL. Use chicken bits to propagate
-* the value from DPLLBMD to either pipe B or C.
-*/
-   intel_de_write(dev_priv, CBR4_VLV, CBR_DPLLBMD_PIPE(pipe));
-   intel_de_write(dev_priv, 

[Intel-gfx] [PATCH v11 05/10] drm/i915: split fb scalable checks into g4x and skl versions

2021-02-04 Thread Jani Nikula
From: Dave Airlie 

This just cleans these up a bit.

Signed-off-by: Dave Airlie 
Signed-off-by: Jani Nikula 
Reviewed-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_sprite.c| 7 +++
 drivers/gpu/drm/i915/display/skl_universal_plane.c | 4 ++--
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c 
b/drivers/gpu/drm/i915/display/intel_sprite.c
index b8288330dbc9..46fcb5b9983f 100644
--- a/drivers/gpu/drm/i915/display/intel_sprite.c
+++ b/drivers/gpu/drm/i915/display/intel_sprite.c
@@ -1365,19 +1365,18 @@ g4x_plane_get_hw_state(struct intel_plane *plane,
return ret;
 }
 
-static bool intel_fb_scalable(const struct drm_framebuffer *fb)
+static bool g4x_fb_scalable(const struct drm_framebuffer *fb)
 {
if (!fb)
return false;
 
switch (fb->format->format) {
case DRM_FORMAT_C8:
-   return false;
case DRM_FORMAT_XRGB16161616F:
case DRM_FORMAT_ARGB16161616F:
case DRM_FORMAT_XBGR16161616F:
case DRM_FORMAT_ABGR16161616F:
-   return INTEL_GEN(to_i915(fb->dev)) >= 11;
+   return false;
default:
return true;
}
@@ -1454,7 +1453,7 @@ g4x_sprite_check(struct intel_crtc_state *crtc_state,
int max_scale = DRM_PLANE_HELPER_NO_SCALING;
int ret;
 
-   if (intel_fb_scalable(plane_state->hw.fb)) {
+   if (g4x_fb_scalable(plane_state->hw.fb)) {
if (INTEL_GEN(dev_priv) < 7) {
min_scale = 1;
max_scale = 16 << 16;
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c 
b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index 29c2e3693e8b..4ae1a2ef29ec 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -1618,7 +1618,7 @@ static int skl_check_plane_surface(struct 
intel_plane_state *plane_state)
return 0;
 }
 
-static bool intel_fb_scalable(const struct drm_framebuffer *fb)
+static bool skl_fb_scalable(const struct drm_framebuffer *fb)
 {
if (!fb)
return false;
@@ -1651,7 +1651,7 @@ static int skl_plane_check(struct intel_crtc_state 
*crtc_state,
return ret;
 
/* use scaler when colorkey is not required */
-   if (!plane_state->ckey.flags && intel_fb_scalable(fb)) {
+   if (!plane_state->ckey.flags && skl_fb_scalable(fb)) {
min_scale = 1;
max_scale = skl_plane_max_scale(dev_priv, fb);
}
-- 
2.20.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v11 04/10] drm/i915: move pipe update code into crtc. (v2)

2021-02-04 Thread Jani Nikula
From: Dave Airlie 

Daniel suggested this should move here.

v2: move vrr code.

Signed-off-by: Dave Airlie 
Signed-off-by: Jani Nikula 
Reviewed-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_crtc.c   | 245 
 drivers/gpu/drm/i915/display/intel_sprite.c | 242 ---
 2 files changed, 245 insertions(+), 242 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c 
b/drivers/gpu/drm/i915/display/intel_crtc.c
index eb478712c381..fdc896c55179 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
@@ -10,6 +10,9 @@
 #include 
 #include 
 
+#include "i915_trace.h"
+#include "i915_vgpu.h"
+
 #include "intel_atomic.h"
 #include "intel_atomic_plane.h"
 #include "intel_color.h"
@@ -17,8 +20,11 @@
 #include "intel_cursor.h"
 #include "intel_display_debugfs.h"
 #include "intel_display_types.h"
+#include "intel_dsi.h"
 #include "intel_pipe_crc.h"
+#include "intel_psr.h"
 #include "intel_sprite.h"
+#include "intel_vrr.h"
 #include "i9xx_plane.h"
 #include "skl_universal_plane.h"
 
@@ -332,3 +338,242 @@ int intel_crtc_init(struct drm_i915_private *dev_priv, 
enum pipe pipe)
 
return ret;
 }
+
+int intel_usecs_to_scanlines(const struct drm_display_mode *adjusted_mode,
+int usecs)
+{
+   /* paranoia */
+   if (!adjusted_mode->crtc_htotal)
+   return 1;
+
+   return DIV_ROUND_UP(usecs * adjusted_mode->crtc_clock,
+   1000 * adjusted_mode->crtc_htotal);
+}
+
+static int intel_mode_vblank_start(const struct drm_display_mode *mode)
+{
+   int vblank_start = mode->crtc_vblank_start;
+
+   if (mode->flags & DRM_MODE_FLAG_INTERLACE)
+   vblank_start = DIV_ROUND_UP(vblank_start, 2);
+
+   return vblank_start;
+}
+
+/**
+ * intel_pipe_update_start() - start update of a set of display registers
+ * @new_crtc_state: the new crtc state
+ *
+ * Mark the start of an update to pipe registers that should be updated
+ * atomically regarding vblank. If the next vblank will happens within
+ * the next 100 us, this function waits until the vblank passes.
+ *
+ * After a successful call to this function, interrupts will be disabled
+ * until a subsequent call to intel_pipe_update_end(). That is done to
+ * avoid random delays.
+ */
+void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state)
+{
+   struct intel_crtc *crtc = to_intel_crtc(new_crtc_state->uapi.crtc);
+   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+   const struct drm_display_mode *adjusted_mode = 
_crtc_state->hw.adjusted_mode;
+   long timeout = msecs_to_jiffies_timeout(1);
+   int scanline, min, max, vblank_start;
+   wait_queue_head_t *wq = drm_crtc_vblank_waitqueue(>base);
+   bool need_vlv_dsi_wa = (IS_VALLEYVIEW(dev_priv) || 
IS_CHERRYVIEW(dev_priv)) &&
+   intel_crtc_has_type(new_crtc_state, INTEL_OUTPUT_DSI);
+   DEFINE_WAIT(wait);
+   u32 psr_status;
+
+   if (new_crtc_state->uapi.async_flip)
+   return;
+
+   if (new_crtc_state->vrr.enable)
+   vblank_start = intel_vrr_vmax_vblank_start(new_crtc_state);
+   else
+   vblank_start = intel_mode_vblank_start(adjusted_mode);
+
+   /* FIXME needs to be calibrated sensibly */
+   min = vblank_start - intel_usecs_to_scanlines(adjusted_mode,
+ VBLANK_EVASION_TIME_US);
+   max = vblank_start - 1;
+
+   if (min <= 0 || max <= 0)
+   goto irq_disable;
+
+   if (drm_WARN_ON(_priv->drm, drm_crtc_vblank_get(>base)))
+   goto irq_disable;
+
+   /*
+* Wait for psr to idle out after enabling the VBL interrupts
+* VBL interrupts will start the PSR exit and prevent a PSR
+* re-entry as well.
+*/
+   if (intel_psr_wait_for_idle(new_crtc_state, _status))
+   drm_err(_priv->drm,
+   "PSR idle timed out 0x%x, atomic update may fail\n",
+   psr_status);
+
+   local_irq_disable();
+
+   crtc->debug.min_vbl = min;
+   crtc->debug.max_vbl = max;
+   trace_intel_pipe_update_start(crtc);
+
+   for (;;) {
+   /*
+* prepare_to_wait() has a memory barrier, which guarantees
+* other CPUs can see the task state update by the time we
+* read the scanline.
+*/
+   prepare_to_wait(wq, , TASK_UNINTERRUPTIBLE);
+
+   scanline = intel_get_crtc_scanline(crtc);
+   if (scanline < min || scanline > max)
+   break;
+
+   if (!timeout) {
+   drm_err(_priv->drm,
+   "Potential atomic update failure on pipe %c\n",
+   pipe_name(crtc->pipe));
+   break;
+   }
+
+   

[Intel-gfx] [PATCH v11 02/10] drm/i915: migrate hsw fdi code to new file.

2021-02-04 Thread Jani Nikula
From: Dave Airlie 

Daniel asked for this, but it's a bit messy and I'm not sure
how best to clean it up yet.

Signed-off-by: Dave Airlie 
[Jani: also moved fdi buf trans to intel_fdi.c.]
Reviewed-by: Ville Syrjälä 
Signed-off-by: Jani Nikula 
---
 drivers/gpu/drm/i915/display/intel_crt.c |   1 +
 drivers/gpu/drm/i915/display/intel_ddi.c | 151 ++-
 drivers/gpu/drm/i915/display/intel_ddi.h |   8 +-
 drivers/gpu/drm/i915/display/intel_fdi.c | 139 +
 drivers/gpu/drm/i915/display/intel_fdi.h |   3 +
 5 files changed, 156 insertions(+), 146 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_crt.c 
b/drivers/gpu/drm/i915/display/intel_crt.c
index 4934edd51cb0..077ebc7e6396 100644
--- a/drivers/gpu/drm/i915/display/intel_crt.c
+++ b/drivers/gpu/drm/i915/display/intel_crt.c
@@ -38,6 +38,7 @@
 #include "intel_crt.h"
 #include "intel_ddi.h"
 #include "intel_display_types.h"
+#include "intel_fdi.h"
 #include "intel_fifo_underrun.h"
 #include "intel_gmbus.h"
 #include "intel_hotplug.h"
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index e2b82e0557e7..28877a31adc0 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -36,10 +36,11 @@
 #include "intel_ddi_buf_trans.h"
 #include "intel_display_types.h"
 #include "intel_dp.h"
-#include "intel_dp_mst.h"
 #include "intel_dp_link_training.h"
+#include "intel_dp_mst.h"
 #include "intel_dpio_phy.h"
 #include "intel_dsi.h"
+#include "intel_fdi.h"
 #include "intel_fifo_underrun.h"
 #include "intel_gmbus.h"
 #include "intel_hdcp.h"
@@ -91,8 +92,8 @@ static int intel_ddi_hdmi_level(struct intel_encoder *encoder,
  * values in advance. This function programs the correct values for
  * DP/eDP/FDI use cases.
  */
-static void intel_prepare_dp_ddi_buffers(struct intel_encoder *encoder,
-const struct intel_crtc_state 
*crtc_state)
+void intel_prepare_dp_ddi_buffers(struct intel_encoder *encoder,
+ const struct intel_crtc_state *crtc_state)
 {
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
u32 iboost_bit = 0;
@@ -154,8 +155,8 @@ static void intel_prepare_hdmi_ddi_buffers(struct 
intel_encoder *encoder,
   ddi_translations[level].trans2);
 }
 
-static void intel_wait_ddi_buf_idle(struct drm_i915_private *dev_priv,
-   enum port port)
+void intel_wait_ddi_buf_idle(struct drm_i915_private *dev_priv,
+enum port port)
 {
if (IS_BROXTON(dev_priv)) {
udelay(16);
@@ -183,7 +184,7 @@ static void intel_wait_ddi_buf_active(struct 
drm_i915_private *dev_priv,
port_name(port));
 }
 
-static u32 hsw_pll_to_ddi_pll_sel(const struct intel_shared_dpll *pll)
+u32 hsw_pll_to_ddi_pll_sel(const struct intel_shared_dpll *pll)
 {
switch (pll->info->id) {
case DPLL_ID_WRPLL1:
@@ -243,144 +244,6 @@ static u32 icl_pll_to_ddi_clk_sel(struct intel_encoder 
*encoder,
}
 }
 
-/* Starting with Haswell, different DDI ports can work in FDI mode for
- * connection to the PCH-located connectors. For this, it is necessary to train
- * both the DDI port and PCH receiver for the desired DDI buffer settings.
- *
- * The recommended port to work in FDI mode is DDI E, which we use here. Also,
- * please note that when FDI mode is active on DDI E, it shares 2 lines with
- * DDI A (which is used for eDP)
- */
-
-void hsw_fdi_link_train(struct intel_encoder *encoder,
-   const struct intel_crtc_state *crtc_state)
-{
-   struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
-   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-   u32 temp, i, rx_ctl_val, ddi_pll_sel;
-   int n_entries;
-
-   intel_ddi_get_buf_trans_fdi(dev_priv, _entries);
-
-   intel_prepare_dp_ddi_buffers(encoder, crtc_state);
-
-   /* Set the FDI_RX_MISC pwrdn lanes and the 2 workarounds listed at the
-* mode set "sequence for CRT port" document:
-* - TP1 to TP2 time with the default value
-* - FDI delay to 90h
-*
-* WaFDIAutoLinkSetTimingOverrride:hsw
-*/
-   intel_de_write(dev_priv, FDI_RX_MISC(PIPE_A),
-  FDI_RX_PWRDN_LANE1_VAL(2) | FDI_RX_PWRDN_LANE0_VAL(2) | 
FDI_RX_TP1_TO_TP2_48 | FDI_RX_FDI_DELAY_90);
-
-   /* Enable the PCH Receiver FDI PLL */
-   rx_ctl_val = dev_priv->fdi_rx_config | FDI_RX_ENHANCE_FRAME_ENABLE |
-FDI_RX_PLL_ENABLE |
-FDI_DP_PORT_WIDTH(crtc_state->fdi_lanes);
-   intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), rx_ctl_val);
-   intel_de_posting_read(dev_priv, FDI_RX_CTL(PIPE_A));
-   udelay(220);
-
-   /* Switch from Rawclk to PCDclk */
-   rx_ctl_val |= FDI_PCDCLK;
-   intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), 

[Intel-gfx] [PATCH v11 00/10] drm/i915: refactor intel_display.c + a bit more

2021-02-04 Thread Jani Nikula
Rebase of [1]. Please let's try to double check the rebase and review the
patches and get this merged ASAP. Part of the reason we've always put this
refactoring off in the first place has been that it's a PITA with the constant
conflicts. Dave's last posting of the series started conflicting before CI even
tried to build it...

BR,
Jani.

[1] https://patchwork.freedesktop.org/series/86321/


Dave Airlie (10):
  drm/i915: refactor ddi translations into a separate file (v2)
  drm/i915: migrate hsw fdi code to new file.
  drm/i915: migrate skl planes code new file (v5)
  drm/i915: move pipe update code into crtc. (v2)
  drm/i915: split fb scalable checks into g4x and skl versions
  drm/i915: move is_ccs_modifier to an inline
  drm/i915: migrate pll enable/disable code to intel_dpll.[ch]
  drm/i915: migrate i9xx plane get config
  drm/i915: refactor skylake scaler code into new file.
  drm/i915: move ddi pll state get to dpll mgr

 drivers/gpu/drm/i915/Makefile |5 +-
 drivers/gpu/drm/i915/display/i9xx_plane.c |  123 +-
 drivers/gpu/drm/i915/display/i9xx_plane.h |4 +
 drivers/gpu/drm/i915/display/icl_dsi.c|2 +
 drivers/gpu/drm/i915/display/intel_atomic.c   |2 +-
 drivers/gpu/drm/i915/display/intel_crt.c  |1 +
 drivers/gpu/drm/i915/display/intel_crtc.c |  258 +-
 drivers/gpu/drm/i915/display/intel_ddi.c  | 1560 +--
 drivers/gpu/drm/i915/display/intel_ddi.h  |8 +-
 .../drm/i915/display/intel_ddi_buf_trans.c| 1394 ++
 .../drm/i915/display/intel_ddi_buf_trans.h|  100 +
 drivers/gpu/drm/i915/display/intel_display.c  | 2372 +
 drivers/gpu/drm/i915/display/intel_display.h  |   37 +-
 .../drm/i915/display/intel_display_types.h|   36 +
 drivers/gpu/drm/i915/display/intel_dp.c   |1 +
 drivers/gpu/drm/i915/display/intel_dp_mst.c   |1 +
 drivers/gpu/drm/i915/display/intel_dpll.c |  509 
 drivers/gpu/drm/i915/display/intel_dpll.h |   18 +
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c |  223 ++
 drivers/gpu/drm/i915/display/intel_dpll_mgr.h |2 +
 drivers/gpu/drm/i915/display/intel_fdi.c  |  139 +
 drivers/gpu/drm/i915/display/intel_fdi.h  |3 +
 drivers/gpu/drm/i915/display/intel_pps.c  |1 +
 drivers/gpu/drm/i915/display/intel_psr.c  |1 +
 drivers/gpu/drm/i915/display/intel_sprite.c   | 1718 +---
 drivers/gpu/drm/i915/display/intel_sprite.h   |7 -
 drivers/gpu/drm/i915/display/skl_scaler.c |  497 
 drivers/gpu/drm/i915/display/skl_scaler.h |   32 +
 .../drm/i915/display/skl_universal_plane.c| 2266 
 .../drm/i915/display/skl_universal_plane.h|   37 +
 drivers/gpu/drm/i915/display/vlv_dsi.c|1 +
 drivers/gpu/drm/i915/intel_pm.c   |1 +
 32 files changed, 5811 insertions(+), 5548 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
 create mode 100644 drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
 create mode 100644 drivers/gpu/drm/i915/display/skl_scaler.c
 create mode 100644 drivers/gpu/drm/i915/display/skl_scaler.h
 create mode 100644 drivers/gpu/drm/i915/display/skl_universal_plane.c
 create mode 100644 drivers/gpu/drm/i915/display/skl_universal_plane.h

-- 
2.20.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH RFC v1 2/6] swiotlb: convert variables to arrays

2021-02-04 Thread Konrad Rzeszutek Wilk
On Thu, Feb 04, 2021 at 11:49:23AM +, Robin Murphy wrote:
> On 2021-02-04 07:29, Christoph Hellwig wrote:
> > On Wed, Feb 03, 2021 at 03:37:05PM -0800, Dongli Zhang wrote:
> > > This patch converts several swiotlb related variables to arrays, in
> > > order to maintain stat/status for different swiotlb buffers. Here are
> > > variables involved:
> > > 
> > > - io_tlb_start and io_tlb_end
> > > - io_tlb_nslabs and io_tlb_used
> > > - io_tlb_list
> > > - io_tlb_index
> > > - max_segment
> > > - io_tlb_orig_addr
> > > - no_iotlb_memory
> > > 
> > > There is no functional change and this is to prepare to enable 64-bit
> > > swiotlb.
> > 
> > Claire Chang (on Cc) already posted a patch like this a month ago,
> > which looks much better because it actually uses a struct instead
> > of all the random variables.
> 
> Indeed, I skimmed the cover letter and immediately thought that this whole
> thing is just the restricted DMA pool concept[1] again, only from a slightly
> different angle.


Kind of. Let me lay out how some of these pieces are right now:

+---+  +--+
|   |  |  |
|   |  |  |
|   a)Xen-SWIOTLB   |  | b)SWIOTLB (for !Xen) |
|   |  |  |
+---XX--+  +---X--+
   X
  XX XXX
X   XX

 +--XX---+
 |   |
 |   |
 |   c) SWIOTLB generic  |
 |   |
 +---+

Dongli's patches modify the SWIOTLB generic c), and Xen-SWIOTLB a)
parts.

Also see the IOMMU_INIT logic which lays this a bit more deepth
(for example how to enable SWIOTLB on AMD boxes, or IBM with Calgary
IOMMU, etc - see iommu_table.h).

Furtheremore it lays the groundwork to allocate AMD SEV SWIOTLB buffers
later after boot (so that you can stich different pools together).
All the bits are kind of inside of the SWIOTLB code. And also it changes
the Xen-SWIOTLB to do something similar.

The mempool did it similarly by taking the internal parts (aka the
various io_tlb) of SWIOTLB and exposing them out and having
other code:

+---+  +--+
|   |  |  |
|   |  |  |
| a)Xen-SWIOTLB |  | b)SWIOTLB (for !Xen) |
|   |  |  |
+---XX--+  +---X--+
   X
  XX XXX
X   XX

 +--XX---+ +--+
 |   | | Device tree  |
 |   +<+ enabling SWIOTLB |
 |c) SWIOTLB generic | |  |
 |   | | mempool  |
 +---+ +--+

What I was suggesting to Clarie to follow Xen model, that is
do something like this:

+---+  +--+   ++
|   |  |  |   ||
|   |  |  |   ||
| a)Xen-SWIOTLB |  | b)SWIOTLB (for !Xen) |   | e) DT-SWIOTLB  |
|   |  |  |   ||
+---XX--+  +---X--+   +XX-X+
   XXXX X X XX X XX
  XX XXX
X   XX X

 +--XXX--+
 |   |
 |   |
 |c) SWIOTLB generic |
 |   |
 +---+


so using the SWIOTLB generic parts, and then bolt on top
of the device-tree logic, along with the mempool logic.



But Christopher has an interesting suggestion which is
to squash the all the existing code (a, b, c) all together
and pepper it with various jump-tables.


So:


-+
| SWIOTLB:   |
||
|  a) SWIOTLB (for non-Xen)  |
|  b) Xen-SWIOTLB|
|  c) DT-SWIOTLB |
||
||
-+


with all the various bits (M2P/P2M for Xen, mempool for ARM,
and normal allocation for BM) in one big file.

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org

Re: [Intel-gfx] [PATCH] drm/i915/debugfs: HDCP capability enc NULL check

2021-02-04 Thread Imre Deak
On Fri, Jan 29, 2021 at 01:30:43PM +0530, Anshuman Gupta wrote:
> DP-MST connector encoder initializes at modeset
> Adding a connector->encoder NULL check in order to
> avoid any NULL pointer dereference.
> intel_hdcp_enable() already handle this but debugfs
> can also invoke the intel_{hdcp,hdcp2_capable}.
> Handling it gracefully.
> 
> Signed-off-by: Anshuman Gupta 
> ---
>  drivers/gpu/drm/i915/display/intel_hdcp.c | 14 --
>  1 file changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c 
> b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index ae1371c36a32..58af323d189a 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -135,11 +135,16 @@ int intel_hdcp_read_valid_bksv(struct 
> intel_digital_port *dig_port,
>  /* Is HDCP1.4 capable on Platform and Sink */
>  bool intel_hdcp_capable(struct intel_connector *connector)
>  {
> - struct intel_digital_port *dig_port = 
> intel_attached_dig_port(connector);
> + struct intel_digital_port *dig_port;
>   const struct intel_hdcp_shim *shim = connector->hdcp.shim;
>   bool capable = false;
>   u8 bksv[5];
>  
> + if (!connector->encoder)
> + return -ENODEV;

I assume this is needed when called from i915_hdcp_sink_capability
debugfs entry. That one is lacking the locking for the connector, but is
that entry really needed? We print the same info already from the
i915_display_info entry which has the proper locking and encoder check.

> +
> + dig_port = intel_attached_dig_port(connector);
> +
>   if (!shim)
>   return capable;
>  
> @@ -156,11 +161,16 @@ bool intel_hdcp_capable(struct intel_connector 
> *connector)
>  /* Is HDCP2.2 capable on Platform and Sink */
>  bool intel_hdcp2_capable(struct intel_connector *connector)
>  {
> - struct intel_digital_port *dig_port = 
> intel_attached_dig_port(connector);
> + struct intel_digital_port *dig_port;
>   struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>   struct intel_hdcp *hdcp = >hdcp;
>   bool capable = false;
>  
> + if (!connector->encoder)
> + return -ENODEV;
> +
> + dig_port = intel_attached_dig_port(connector);
> +
>   /* I915 support for HDCP2.2 */
>   if (!hdcp->hdcp2_supported)
>   return false;
> -- 
> 2.26.2
> 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Disable runtime power management during shutdown

2021-02-04 Thread Imre Deak
On Thu, Jan 28, 2021 at 12:31:38AM +, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915: Disable runtime power management during shutdown
> URL   : https://patchwork.freedesktop.org/series/86362/
> State : success

Thanks for the review, pushed to -din with a code comment addition.

> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_9688_full -> Patchwork_19524_full
> 
> 
> Summary
> ---
> 
>   **SUCCESS**
> 
>   No regressions found.
> 
>   
> 
> Known issues
> 
> 
>   Here are the changes found in Patchwork_19524_full that come from known 
> issues:
> 
> ### IGT changes ###
> 
>  Issues hit 
> 
>   * igt@gem_ctx_persistence@close-replace-race:
> - shard-glk:  [PASS][1] -> [TIMEOUT][2] ([i915#2918])
>[1]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9688/shard-glk6/igt@gem_ctx_persiste...@close-replace-race.html
>[2]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19524/shard-glk7/igt@gem_ctx_persiste...@close-replace-race.html
> 
>   * igt@gem_exec_fair@basic-deadline:
> - shard-tglb: [PASS][3] -> [FAIL][4] ([i915#2846])
>[3]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9688/shard-tglb5/igt@gem_exec_f...@basic-deadline.html
>[4]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19524/shard-tglb6/igt@gem_exec_f...@basic-deadline.html
> - shard-glk:  [PASS][5] -> [FAIL][6] ([i915#2846])
>[5]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9688/shard-glk7/igt@gem_exec_f...@basic-deadline.html
>[6]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19524/shard-glk1/igt@gem_exec_f...@basic-deadline.html
> 
>   * igt@gem_exec_fair@basic-none-solo@rcs0:
> - shard-apl:  [PASS][7] -> [FAIL][8] ([i915#2842])
>[7]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9688/shard-apl7/igt@gem_exec_fair@basic-none-s...@rcs0.html
>[8]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19524/shard-apl4/igt@gem_exec_fair@basic-none-s...@rcs0.html
> 
>   * igt@gem_exec_fair@basic-pace-share@rcs0:
> - shard-tglb: [PASS][9] -> [FAIL][10] ([i915#2842]) +1 similar 
> issue
>[9]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9688/shard-tglb8/igt@gem_exec_fair@basic-pace-sh...@rcs0.html
>[10]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19524/shard-tglb2/igt@gem_exec_fair@basic-pace-sh...@rcs0.html
> 
>   * igt@gem_exec_fair@basic-throttle@rcs0:
> - shard-glk:  [PASS][11] -> [FAIL][12] ([i915#2842])
>[11]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9688/shard-glk6/igt@gem_exec_fair@basic-throt...@rcs0.html
>[12]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19524/shard-glk7/igt@gem_exec_fair@basic-throt...@rcs0.html
> - shard-iclb: [PASS][13] -> [FAIL][14] ([i915#2849])
>[13]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9688/shard-iclb4/igt@gem_exec_fair@basic-throt...@rcs0.html
>[14]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19524/shard-iclb2/igt@gem_exec_fair@basic-throt...@rcs0.html
> 
>   * igt@gem_exec_params@no-vebox:
> - shard-iclb: NOTRUN -> [SKIP][15] ([fdo#109283])
>[15]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19524/shard-iclb7/igt@gem_exec_par...@no-vebox.html
> 
>   * igt@gen7_exec_parse@basic-allowed:
> - shard-skl:  NOTRUN -> [SKIP][16] ([fdo#109271]) +9 similar 
> issues
>[16]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19524/shard-skl8/igt@gen7_exec_pa...@basic-allowed.html
> 
>   * igt@i915_pm_dc@dc6-psr:
> - shard-iclb: [PASS][17] -> [FAIL][18] ([i915#454])
>[17]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9688/shard-iclb5/igt@i915_pm...@dc6-psr.html
>[18]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19524/shard-iclb2/igt@i915_pm...@dc6-psr.html
> 
>   * igt@i915_pm_rpm@system-suspend-modeset:
> - shard-kbl:  [PASS][19] -> [INCOMPLETE][20] ([i915#151])
>[19]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9688/shard-kbl7/igt@i915_pm_...@system-suspend-modeset.html
>[20]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19524/shard-kbl3/igt@i915_pm_...@system-suspend-modeset.html
> 
>   * igt@kms_chamelium@hdmi-cmp-planar-formats:
> - shard-glk:  NOTRUN -> [SKIP][21] ([fdo#109271] / [fdo#111827]) 
> +1 similar issue
>[21]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19524/shard-glk1/igt@kms_chamel...@hdmi-cmp-planar-formats.html
> 
>   * igt@kms_color_chamelium@pipe-invalid-ctm-matrix-sizes:
> - shard-skl:  NOTRUN -> [SKIP][22] ([fdo#109271] / [fdo#111827]) 
> +2 similar issues
>[22]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19524/shard-skl8/igt@kms_color_chamel...@pipe-invalid-ctm-matrix-sizes.html
> 
>   * igt@kms_cursor_crc@pipe-a-cursor-256x85-onscreen:
> - shard-skl:  [PASS][23] -> [FAIL][24] 

[Intel-gfx] [PATCH v2 12/14] drm/i915: Use .disable_clock() for pll sanitation

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

Instead of every new platform having yet another masive
copy of the whole PLL sanitation code, let's just reuse the
.disable_clock() hook for this purpose. We do need to plug
this into the ICL+ DSI code for that, but fortunately it
already has a suitable function we can use.

We do lose the debug message though on account of not bothering
to check if the clock is actually enabled or not before turning
it off. We could introduce yet another vfunc to query the current
state, but not sure it's worth the hassle?

Reviewed-by: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/icl_dsi.c   |  1 +
 drivers/gpu/drm/i915/display/intel_ddi.c | 92 +---
 2 files changed, 3 insertions(+), 90 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c 
b/drivers/gpu/drm/i915/display/icl_dsi.c
index 9d245a689323..a7edfaa09035 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -1940,6 +1940,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
encoder->pipe_mask = ~0;
encoder->power_domain = POWER_DOMAIN_PORT_DSI;
encoder->get_power_domains = gen11_dsi_get_power_domains;
+   encoder->disable_clock = gen11_dsi_gate_clocks;
 
/* register DSI connector with DRM subsystem */
drm_connector_init(dev, connector, _dsi_connector_funcs,
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 41287a496e38..f68ccde2bc7a 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3110,23 +3110,6 @@ hsw_set_signal_levels(struct intel_dp *intel_dp,
intel_de_posting_read(dev_priv, DDI_BUF_CTL(port));
 }
 
-static u32 icl_dpclka_cfgcr0_clk_off(struct drm_i915_private *dev_priv,
-enum phy phy)
-{
-   if (IS_ROCKETLAKE(dev_priv)) {
-   return RKL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy);
-   } else if (intel_phy_is_combo(dev_priv, phy)) {
-   return ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy);
-   } else if (intel_phy_is_tc(dev_priv, phy)) {
-   enum tc_port tc_port = intel_port_to_tc(dev_priv,
-   (enum port)phy);
-
-   return ICL_DPCLKA_CFGCR0_TC_CLK_OFF(tc_port);
-   }
-
-   return 0;
-}
-
 static void _cnl_ddi_enable_clock(struct drm_i915_private *i915, i915_reg_t 
reg,
  u32 clk_sel_mask, u32 clk_sel, u32 clk_off)
 {
@@ -3262,75 +3245,6 @@ static void icl_ddi_combo_disable_clock(struct 
intel_encoder *encoder)
   ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
 }
 
-static void dg1_sanitize_port_clk_off(struct drm_i915_private *dev_priv,
- u32 port_mask, bool ddi_clk_needed)
-{
-   enum port port;
-   u32 val;
-
-   for_each_port_masked(port, port_mask) {
-   enum phy phy = intel_port_to_phy(dev_priv, port);
-   bool ddi_clk_off;
-
-   val = intel_de_read(dev_priv, DG1_DPCLKA_CFGCR0(phy));
-   ddi_clk_off = val & DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy);
-
-   if (ddi_clk_needed == !ddi_clk_off)
-   continue;
-
-   /*
-* Punt on the case now where clock is gated, but it would
-* be needed by the port. Something else is really broken then.
-*/
-   if (drm_WARN_ON(_priv->drm, ddi_clk_needed))
-   continue;
-
-   drm_notice(_priv->drm,
-  "PHY %c is disabled with an ungated DDI clock, gate 
it\n",
-  phy_name(phy));
-   val |= DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy);
-   intel_de_write(dev_priv, DG1_DPCLKA_CFGCR0(phy), val);
-   }
-}
-
-static void icl_sanitize_port_clk_off(struct drm_i915_private *dev_priv,
- u32 port_mask, bool ddi_clk_needed)
-{
-   enum port port;
-   bool ddi_clk_off;
-   u32 val;
-   i915_reg_t reg;
-
-   for_each_port_masked(port, port_mask) {
-   enum phy phy = intel_port_to_phy(dev_priv, port);
-
-   if (IS_ALDERLAKE_S(dev_priv))
-   reg = ADLS_DPCLKA_CFGCR(phy);
-   else
-   reg = ICL_DPCLKA_CFGCR0;
-
-   val = intel_de_read(dev_priv, reg);
-   ddi_clk_off = val & icl_dpclka_cfgcr0_clk_off(dev_priv,
- phy);
-
-   if (ddi_clk_needed == !ddi_clk_off)
-   continue;
-
-   /*
-* Punt on the case now where clock is gated, but it would
-* be needed by the port. Something else is really broken then.
-*/
-   if (drm_WARN_ON(_priv->drm, ddi_clk_needed))
- 

[Intel-gfx] [PATCH v2 11/14] drm/i915: Split adl-s/rkl from icl_ddi_combo_{enable, disable}_clock()

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

Since .{enable,disable}_clock() are already vfuncs it's a bit silly to
have if-ladders inside them. Just provide specialized version for adl-s
and rkl so we don't need any of that.

v2: s/dev_priv/i915/ (Lucas)
Fix typos in platform names (Lucas)

Reviewed-by: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 91 
 1 file changed, 62 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index d195837f0a9f..41287a496e38 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3153,6 +3153,56 @@ static void _cnl_ddi_disable_clock(struct 
drm_i915_private *i915, i915_reg_t reg
mutex_unlock(>dpll.lock);
 }
 
+static void adls_ddi_enable_clock(struct intel_encoder *encoder,
+ const struct intel_crtc_state *crtc_state)
+{
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+   const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
+   enum phy phy = intel_port_to_phy(i915, encoder->port);
+
+   if (drm_WARN_ON(>drm, !pll))
+   return;
+
+   _cnl_ddi_enable_clock(i915, ADLS_DPCLKA_CFGCR(phy),
+ ADLS_DPCLKA_CFGCR_DDI_CLK_SEL_MASK(phy),
+ pll->info->id << ADLS_DPCLKA_CFGCR_DDI_SHIFT(phy),
+ ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
+}
+
+static void adls_ddi_disable_clock(struct intel_encoder *encoder)
+{
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+   enum phy phy = intel_port_to_phy(i915, encoder->port);
+
+   _cnl_ddi_disable_clock(i915, ADLS_DPCLKA_CFGCR(phy),
+  ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
+}
+
+static void rkl_ddi_enable_clock(struct intel_encoder *encoder,
+const struct intel_crtc_state *crtc_state)
+{
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+   const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
+   enum phy phy = intel_port_to_phy(i915, encoder->port);
+
+   if (drm_WARN_ON(>drm, !pll))
+   return;
+
+   _cnl_ddi_enable_clock(i915, ICL_DPCLKA_CFGCR0,
+ RKL_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy),
+ RKL_DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, phy),
+ RKL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
+}
+
+static void rkl_ddi_disable_clock(struct intel_encoder *encoder)
+{
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+   enum phy phy = intel_port_to_phy(i915, encoder->port);
+
+   _cnl_ddi_disable_clock(i915, ICL_DPCLKA_CFGCR0,
+  RKL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
+}
+
 static void dg1_ddi_enable_clock(struct intel_encoder *encoder,
 const struct intel_crtc_state *crtc_state)
 {
@@ -3193,43 +3243,23 @@ static void icl_ddi_combo_enable_clock(struct 
intel_encoder *encoder,
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
-   u32 mask, sel;
-   i915_reg_t reg;
-
-   if (IS_ALDERLAKE_S(dev_priv)) {
-   reg = ADLS_DPCLKA_CFGCR(phy);
-   mask = ADLS_DPCLKA_CFGCR_DDI_CLK_SEL_MASK(phy);
-   sel = ((pll->info->id) << ADLS_DPCLKA_CFGCR_DDI_SHIFT(phy));
-   } else if (IS_ROCKETLAKE(dev_priv)) {
-   reg = ICL_DPCLKA_CFGCR0;
-   mask = RKL_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy);
-   sel = RKL_DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, phy);
-   } else {
-   reg = ICL_DPCLKA_CFGCR0;
-   mask = ICL_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy);
-   sel = ICL_DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, phy);
-   }
 
if (drm_WARN_ON(_priv->drm, !pll))
return;
 
-   _cnl_ddi_enable_clock(dev_priv, reg, mask, sel,
- icl_dpclka_cfgcr0_clk_off(dev_priv, phy));
+   _cnl_ddi_enable_clock(dev_priv, ICL_DPCLKA_CFGCR0,
+ ICL_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy),
+ ICL_DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, phy),
+ ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
 }
 
 static void icl_ddi_combo_disable_clock(struct intel_encoder *encoder)
 {
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
-   i915_reg_t reg;
 
-   if (IS_ALDERLAKE_S(dev_priv))
-   reg = ADLS_DPCLKA_CFGCR(phy);
-   else
-   reg = ICL_DPCLKA_CFGCR0;
-
-   _cnl_ddi_disable_clock(dev_priv, reg,
-  

[Intel-gfx] [PATCH v2 14/14] drm/i915: s/dev_priv/i915/ for the remainder of DDI clock routing

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

Convert the remaining 'dev_priv's to 'i915's in the DDI
clock routing functions.

Cc: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 38 
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 89f4e3615a2e..c1b42e72a6b5 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3189,23 +3189,23 @@ static void rkl_ddi_disable_clock(struct intel_encoder 
*encoder)
 static void dg1_ddi_enable_clock(struct intel_encoder *encoder,
 const struct intel_crtc_state *crtc_state)
 {
-   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
-   enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
+   enum phy phy = intel_port_to_phy(i915, encoder->port);
 
-   if (drm_WARN_ON(_priv->drm, !pll))
+   if (drm_WARN_ON(>drm, !pll))
return;
 
/*
 * If we fail this, something went very wrong: first 2 PLLs should be
 * used by first 2 phys and last 2 PLLs by last phys
 */
-   if (drm_WARN_ON(_priv->drm,
+   if (drm_WARN_ON(>drm,
(pll->info->id < DPLL_ID_DG1_DPLL2 && phy >= PHY_C) ||
(pll->info->id >= DPLL_ID_DG1_DPLL2 && phy < PHY_C)))
return;
 
-   _cnl_ddi_enable_clock(dev_priv, DG1_DPCLKA_CFGCR0(phy),
+   _cnl_ddi_enable_clock(i915, DG1_DPCLKA_CFGCR0(phy),
  DG1_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy),
  DG1_DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, phy),
  DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
@@ -3213,24 +3213,24 @@ static void dg1_ddi_enable_clock(struct intel_encoder 
*encoder,
 
 static void dg1_ddi_disable_clock(struct intel_encoder *encoder)
 {
-   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-   enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+   enum phy phy = intel_port_to_phy(i915, encoder->port);
 
-   _cnl_ddi_disable_clock(dev_priv, DG1_DPCLKA_CFGCR0(phy),
+   _cnl_ddi_disable_clock(i915, DG1_DPCLKA_CFGCR0(phy),
   DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
 }
 
 static void icl_ddi_combo_enable_clock(struct intel_encoder *encoder,
   const struct intel_crtc_state 
*crtc_state)
 {
-   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
-   enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
+   enum phy phy = intel_port_to_phy(i915, encoder->port);
 
-   if (drm_WARN_ON(_priv->drm, !pll))
+   if (drm_WARN_ON(>drm, !pll))
return;
 
-   _cnl_ddi_enable_clock(dev_priv, ICL_DPCLKA_CFGCR0,
+   _cnl_ddi_enable_clock(i915, ICL_DPCLKA_CFGCR0,
  ICL_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy),
  ICL_DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, phy),
  ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
@@ -3238,10 +3238,10 @@ static void icl_ddi_combo_enable_clock(struct 
intel_encoder *encoder,
 
 static void icl_ddi_combo_disable_clock(struct intel_encoder *encoder)
 {
-   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-   enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+   enum phy phy = intel_port_to_phy(i915, encoder->port);
 
-   _cnl_ddi_disable_clock(dev_priv, ICL_DPCLKA_CFGCR0,
+   _cnl_ddi_disable_clock(i915, ICL_DPCLKA_CFGCR0,
   ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
 }
 
@@ -3407,7 +3407,7 @@ static void intel_ddi_disable_clock(struct intel_encoder 
*encoder)
 
 void icl_sanitize_encoder_pll_mapping(struct intel_encoder *encoder)
 {
-   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
u32 port_mask;
bool ddi_clk_needed;
 
@@ -3427,7 +3427,7 @@ void icl_sanitize_encoder_pll_mapping(struct 
intel_encoder *encoder)
 * In the unlikely case that BIOS enables DP in MST mode, just
 * warn since our MST HW readout is incomplete.
 */
-   if (drm_WARN_ON(_priv->drm, is_mst))
+   if (drm_WARN_ON(>drm, is_mst))
return;
}
 
@@ -3442,11 +3442,11 @@ void icl_sanitize_encoder_pll_mapping(struct 
intel_encoder 

[Intel-gfx] [PATCH v2 13/14] drm/i915: Relocate icl_sanitize_encoder_pll_mapping()

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

Move icl_sanitize_encoder_pll_mapping() out from the middle
of the .{enable,disable}_clock() functions.

Reviewed-by: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 112 +++
 1 file changed, 56 insertions(+), 56 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index f68ccde2bc7a..89f4e3615a2e 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3245,62 +3245,6 @@ static void icl_ddi_combo_disable_clock(struct 
intel_encoder *encoder)
   ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
 }
 
-void icl_sanitize_encoder_pll_mapping(struct intel_encoder *encoder)
-{
-   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-   u32 port_mask;
-   bool ddi_clk_needed;
-
-   /*
-* In case of DP MST, we sanitize the primary encoder only, not the
-* virtual ones.
-*/
-   if (encoder->type == INTEL_OUTPUT_DP_MST)
-   return;
-
-   if (!encoder->base.crtc && intel_encoder_is_dp(encoder)) {
-   u8 pipe_mask;
-   bool is_mst;
-
-   intel_ddi_get_encoder_pipes(encoder, _mask, _mst);
-   /*
-* In the unlikely case that BIOS enables DP in MST mode, just
-* warn since our MST HW readout is incomplete.
-*/
-   if (drm_WARN_ON(_priv->drm, is_mst))
-   return;
-   }
-
-   port_mask = BIT(encoder->port);
-   ddi_clk_needed = encoder->base.crtc;
-
-   if (encoder->type == INTEL_OUTPUT_DSI) {
-   struct intel_encoder *other_encoder;
-
-   port_mask = intel_dsi_encoder_ports(encoder);
-   /*
-* Sanity check that we haven't incorrectly registered another
-* encoder using any of the ports of this DSI encoder.
-*/
-   for_each_intel_encoder(_priv->drm, other_encoder) {
-   if (other_encoder == encoder)
-   continue;
-
-   if (drm_WARN_ON(_priv->drm,
-   port_mask & BIT(other_encoder->port)))
-   return;
-   }
-   /*
-* For DSI we keep the ddi clocks gated
-* except during enable/disable sequence.
-*/
-   ddi_clk_needed = false;
-   }
-
-   if (!ddi_clk_needed && encoder->disable_clock)
-   encoder->disable_clock(encoder);
-}
-
 static void jsl_ddi_tc_enable_clock(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state)
 {
@@ -3461,6 +3405,62 @@ static void intel_ddi_disable_clock(struct intel_encoder 
*encoder)
encoder->disable_clock(encoder);
 }
 
+void icl_sanitize_encoder_pll_mapping(struct intel_encoder *encoder)
+{
+   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+   u32 port_mask;
+   bool ddi_clk_needed;
+
+   /*
+* In case of DP MST, we sanitize the primary encoder only, not the
+* virtual ones.
+*/
+   if (encoder->type == INTEL_OUTPUT_DP_MST)
+   return;
+
+   if (!encoder->base.crtc && intel_encoder_is_dp(encoder)) {
+   u8 pipe_mask;
+   bool is_mst;
+
+   intel_ddi_get_encoder_pipes(encoder, _mask, _mst);
+   /*
+* In the unlikely case that BIOS enables DP in MST mode, just
+* warn since our MST HW readout is incomplete.
+*/
+   if (drm_WARN_ON(_priv->drm, is_mst))
+   return;
+   }
+
+   port_mask = BIT(encoder->port);
+   ddi_clk_needed = encoder->base.crtc;
+
+   if (encoder->type == INTEL_OUTPUT_DSI) {
+   struct intel_encoder *other_encoder;
+
+   port_mask = intel_dsi_encoder_ports(encoder);
+   /*
+* Sanity check that we haven't incorrectly registered another
+* encoder using any of the ports of this DSI encoder.
+*/
+   for_each_intel_encoder(_priv->drm, other_encoder) {
+   if (other_encoder == encoder)
+   continue;
+
+   if (drm_WARN_ON(_priv->drm,
+   port_mask & BIT(other_encoder->port)))
+   return;
+   }
+   /*
+* For DSI we keep the ddi clocks gated
+* except during enable/disable sequence.
+*/
+   ddi_clk_needed = false;
+   }
+
+   if (!ddi_clk_needed && encoder->disable_clock)
+   encoder->disable_clock(encoder);
+}
+
 static void
 

[Intel-gfx] [PATCH v2 10/14] drm/i915: Extract _cnl_ddi_{enable, disable}_clock()

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

All the DPCLKA_CFGCR handling follows a common pattern. Let's
extract that to a small helper that just takes a few parameters
each caller can customize.

Reviewed-by: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 108 +--
 1 file changed, 44 insertions(+), 64 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 0a2eb426616b..d195837f0a9f 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3127,11 +3127,37 @@ static u32 icl_dpclka_cfgcr0_clk_off(struct 
drm_i915_private *dev_priv,
return 0;
 }
 
+static void _cnl_ddi_enable_clock(struct drm_i915_private *i915, i915_reg_t 
reg,
+ u32 clk_sel_mask, u32 clk_sel, u32 clk_off)
+{
+   mutex_lock(>dpll.lock);
+
+   intel_de_rmw(i915, reg, clk_sel_mask, clk_sel);
+
+   /*
+* "This step and the step before must be
+*  done with separate register writes."
+*/
+   intel_de_rmw(i915, reg, clk_off, 0);
+
+   mutex_unlock(>dpll.lock);
+}
+
+static void _cnl_ddi_disable_clock(struct drm_i915_private *i915, i915_reg_t 
reg,
+  u32 clk_off)
+{
+   mutex_lock(>dpll.lock);
+
+   intel_de_rmw(i915, reg, 0, clk_off);
+
+   mutex_unlock(>dpll.lock);
+}
+
 static void dg1_ddi_enable_clock(struct intel_encoder *encoder,
 const struct intel_crtc_state *crtc_state)
 {
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-   struct intel_shared_dpll *pll = crtc_state->shared_dpll;
+   const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
 
if (drm_WARN_ON(_priv->drm, !pll))
@@ -3146,16 +3172,10 @@ static void dg1_ddi_enable_clock(struct intel_encoder 
*encoder,
(pll->info->id >= DPLL_ID_DG1_DPLL2 && phy < PHY_C)))
return;
 
-   mutex_lock(_priv->dpll.lock);
-
-   intel_de_rmw(dev_priv, DG1_DPCLKA_CFGCR0(phy),
-DG1_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy),
-DG1_DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, phy));
-
-   intel_de_rmw(dev_priv, DG1_DPCLKA_CFGCR0(phy),
-DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy), 0);
-
-   mutex_unlock(_priv->dpll.lock);
+   _cnl_ddi_enable_clock(dev_priv, DG1_DPCLKA_CFGCR0(phy),
+ DG1_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy),
+ DG1_DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, phy),
+ DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
 }
 
 static void dg1_ddi_disable_clock(struct intel_encoder *encoder)
@@ -3163,19 +3183,15 @@ static void dg1_ddi_disable_clock(struct intel_encoder 
*encoder)
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
 
-   mutex_lock(_priv->dpll.lock);
-
-   intel_de_rmw(dev_priv, DG1_DPCLKA_CFGCR0(phy),
-0, DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
-
-   mutex_unlock(_priv->dpll.lock);
+   _cnl_ddi_disable_clock(dev_priv, DG1_DPCLKA_CFGCR0(phy),
+  DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
 }
 
 static void icl_ddi_combo_enable_clock(struct intel_encoder *encoder,
   const struct intel_crtc_state 
*crtc_state)
 {
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-   struct intel_shared_dpll *pll = crtc_state->shared_dpll;
+   const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
u32 mask, sel;
i915_reg_t reg;
@@ -3197,24 +3213,8 @@ static void icl_ddi_combo_enable_clock(struct 
intel_encoder *encoder,
if (drm_WARN_ON(_priv->drm, !pll))
return;
 
-   mutex_lock(_priv->dpll.lock);
-
-   /*
-* Even though this register references DDIs, note that we
-* want to pass the PHY rather than the port (DDI).  For
-* ICL, port=phy in all cases so it doesn't matter, but for
-* EHL the bspec notes the following:
-*
-*   "DDID clock tied to DDIA clock, so DPCLKA_CFGCR0 DDIA
-*   Clock Select chooses the PLL for both DDIA and DDID and
-*   drives port A in all cases."
-*/
-   intel_de_rmw(dev_priv, reg, mask, sel);
-
-   intel_de_rmw(dev_priv, reg,
-icl_dpclka_cfgcr0_clk_off(dev_priv, phy), 0);
-
-   mutex_unlock(_priv->dpll.lock);
+   _cnl_ddi_enable_clock(dev_priv, reg, mask, sel,
+ icl_dpclka_cfgcr0_clk_off(dev_priv, phy));
 }
 
 static void icl_ddi_combo_disable_clock(struct intel_encoder *encoder)
@@ -3223,19 +3223,13 @@ static void 

[Intel-gfx] [PATCH v2 09/14] drm/i915: Sprinkle WARN(!pll) into icl/dg1 .clock_enable()

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

The other DDI .enable_clock() functions are trying to protect us
against pll==NULL. A bit tempted to throw out all the WARNs as
just unnecessary noise, but I guess they might have some use
when poking around the shared_dpll code (not sure it wouldn't
oops elsewhere though). So let's unify it all and sprinkle in
the missing WARNs for icl/dg1.

Reviewed-by: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 0b2a1e0c1b8b..0a2eb426616b 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3134,6 +3134,9 @@ static void dg1_ddi_enable_clock(struct intel_encoder 
*encoder,
struct intel_shared_dpll *pll = crtc_state->shared_dpll;
enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
 
+   if (drm_WARN_ON(_priv->drm, !pll))
+   return;
+
/*
 * If we fail this, something went very wrong: first 2 PLLs should be
 * used by first 2 phys and last 2 PLLs by last phys
@@ -3191,6 +3194,9 @@ static void icl_ddi_combo_enable_clock(struct 
intel_encoder *encoder,
sel = ICL_DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, phy);
}
 
+   if (drm_WARN_ON(_priv->drm, !pll))
+   return;
+
mutex_lock(_priv->dpll.lock);
 
/*
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2 08/14] drm/i915: Sprinkle a few missing locks around shared DDI clock registers

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

The current code attempts to protect the RMWs into global
clock routing registers with a mutex, but forgets to do so
in a few places. Let's remedy that.

Note that at the moment we serialize all modesets onto single
wq, so this shouldn't actually matter. But maybe one day we
wish to attempt parallel modesets again...

Reviewed-by: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 8 
 1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 76aa7d2dba52..0b2a1e0c1b8b 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3457,8 +3457,12 @@ static void cnl_ddi_disable_clock(struct intel_encoder 
*encoder)
struct drm_i915_private *i915 = to_i915(encoder->base.dev);
enum port port = encoder->port;
 
+   mutex_lock(>dpll.lock);
+
intel_de_rmw(i915, DPCLKA_CFGCR0,
 0, DPCLKA_CFGCR0_DDI_CLK_OFF(port));
+
+   mutex_unlock(>dpll.lock);
 }
 
 static void skl_ddi_enable_clock(struct intel_encoder *encoder,
@@ -3487,8 +3491,12 @@ static void skl_ddi_disable_clock(struct intel_encoder 
*encoder)
struct drm_i915_private *i915 = to_i915(encoder->base.dev);
enum port port = encoder->port;
 
+   mutex_lock(>dpll.lock);
+
intel_de_rmw(i915, DPLL_CTRL2,
 0, DPLL_CTRL2_DDI_CLK_OFF(port));
+
+   mutex_unlock(>dpll.lock);
 }
 
 static void hsw_ddi_enable_clock(struct intel_encoder *encoder,
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2 07/14] drm/i915: Use intel_de_rmw() for DDI clock routing

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

The DDI clock routing programming is riddled with shared
registers, forcing us to do a lot of RMW. Switch over to
intel_de_rmw() to make that a bit less obnoxious.

Reviewed-by: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 77 +---
 1 file changed, 28 insertions(+), 49 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index d688ef231eeb..76aa7d2dba52 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3133,7 +3133,6 @@ static void dg1_ddi_enable_clock(struct intel_encoder 
*encoder,
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
struct intel_shared_dpll *pll = crtc_state->shared_dpll;
enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
-   u32 val;
 
/*
 * If we fail this, something went very wrong: first 2 PLLs should be
@@ -3146,17 +3145,12 @@ static void dg1_ddi_enable_clock(struct intel_encoder 
*encoder,
 
mutex_lock(_priv->dpll.lock);
 
-   val = intel_de_read(dev_priv, DG1_DPCLKA_CFGCR0(phy));
-   drm_WARN_ON(_priv->drm,
-   (val & DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy)) == 0);
+   intel_de_rmw(dev_priv, DG1_DPCLKA_CFGCR0(phy),
+DG1_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy),
+DG1_DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, phy));
 
-   val &= ~DG1_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy);
-   val |= DG1_DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, phy);
-   intel_de_write(dev_priv, DG1_DPCLKA_CFGCR0(phy), val);
-   intel_de_posting_read(dev_priv, DG1_DPCLKA_CFGCR0(phy));
-
-   val &= ~DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy);
-   intel_de_write(dev_priv, DG1_DPCLKA_CFGCR0(phy), val);
+   intel_de_rmw(dev_priv, DG1_DPCLKA_CFGCR0(phy),
+DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy), 0);
 
mutex_unlock(_priv->dpll.lock);
 }
@@ -3168,8 +3162,8 @@ static void dg1_ddi_disable_clock(struct intel_encoder 
*encoder)
 
mutex_lock(_priv->dpll.lock);
 
-   intel_de_rmw(dev_priv, DG1_DPCLKA_CFGCR0(phy), 0,
-DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
+   intel_de_rmw(dev_priv, DG1_DPCLKA_CFGCR0(phy),
+0, DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
 
mutex_unlock(_priv->dpll.lock);
 }
@@ -3180,7 +3174,7 @@ static void icl_ddi_combo_enable_clock(struct 
intel_encoder *encoder,
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
struct intel_shared_dpll *pll = crtc_state->shared_dpll;
enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
-   u32 val, mask, sel;
+   u32 mask, sel;
i915_reg_t reg;
 
if (IS_ALDERLAKE_S(dev_priv)) {
@@ -3199,10 +3193,6 @@ static void icl_ddi_combo_enable_clock(struct 
intel_encoder *encoder,
 
mutex_lock(_priv->dpll.lock);
 
-   val = intel_de_read(dev_priv, reg);
-   drm_WARN_ON(_priv->drm,
-   (val & icl_dpclka_cfgcr0_clk_off(dev_priv, phy)) == 0);
-
/*
 * Even though this register references DDIs, note that we
 * want to pass the PHY rather than the port (DDI).  For
@@ -3213,13 +3203,10 @@ static void icl_ddi_combo_enable_clock(struct 
intel_encoder *encoder,
 *   Clock Select chooses the PLL for both DDIA and DDID and
 *   drives port A in all cases."
 */
-   val &= ~mask;
-   val |= sel;
-   intel_de_write(dev_priv, reg, val);
-   intel_de_posting_read(dev_priv, reg);
+   intel_de_rmw(dev_priv, reg, mask, sel);
 
-   val &= ~icl_dpclka_cfgcr0_clk_off(dev_priv, phy);
-   intel_de_write(dev_priv, reg, val);
+   intel_de_rmw(dev_priv, reg,
+icl_dpclka_cfgcr0_clk_off(dev_priv, phy), 0);
 
mutex_unlock(_priv->dpll.lock);
 }
@@ -3228,7 +3215,6 @@ static void icl_ddi_combo_disable_clock(struct 
intel_encoder *encoder)
 {
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
-   u32 val;
i915_reg_t reg;
 
mutex_lock(_priv->dpll.lock);
@@ -3238,10 +3224,10 @@ static void icl_ddi_combo_disable_clock(struct 
intel_encoder *encoder)
else
reg = ICL_DPCLKA_CFGCR0;
 
-   val = intel_de_read(dev_priv, reg);
-   val |= icl_dpclka_cfgcr0_clk_off(dev_priv, phy);
+   mutex_lock(_priv->dpll.lock);
 
-   intel_de_write(dev_priv, reg, val);
+   intel_de_rmw(dev_priv, reg,
+0, icl_dpclka_cfgcr0_clk_off(dev_priv, phy));
 
mutex_unlock(_priv->dpll.lock);
 }
@@ -3446,25 +3432,22 @@ static void cnl_ddi_enable_clock(struct intel_encoder 
*encoder,
struct drm_i915_private *i915 = to_i915(encoder->base.dev);
const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
enum port port = encoder->port;
- 

[Intel-gfx] [PATCH v2 06/14] drm/i915: Extract icl+ .{enable, disable}_clock() vfuncs

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

For ICL+ we have several styles of clock routing for DDIs:
1) TC DDI + TC PHY
   -> needs DDI_CLK_SEL==MG/TBT part form intel_ddi_clk_{select,disable}()
   and ICL_DPCLKA_CFGCR0_TC_CLK_OFF part form icl_{map,unmap}_plls_to_ports()
2) ICL/TGL combo DDI + combo PHY
   -> just need the stuff from icl_{map,unmap}_plls_to_ports()
3) JSL/EHL TC DDI + combo PHY
   -> needs DDI_CLK_SEL==MG part from intel_ddi_clk_{select,disable}() and
   the full combo style clock selection from icl_{map,unmap}_plls_to_ports()
4) ADLS/RKL
   -> these use both TC and combo DDIs with combo PHYs, however they
   always use the full combo style clock selection as per
   icl_{map,unmap}_plls_to_ports() and do not use DDI_CLK_SEL at all,
   thus get treated the same as 2)

We extract all that from the current mess in the following way:
1) icl_ddi_tc_{enable,disable}_clock()
2) icl_ddi_combo_{enable,disable}_clock()
3) jsl_ddi_tc_{enable,disable}_clock()
4) for now we reuse icl_ddi_combo_{enable,disable}_clock() here

v2: s/dev_priv/i915/ (Lucas)

Reviewed-by: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 163 ++-
 1 file changed, 102 insertions(+), 61 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index cbeb75d00013..d688ef231eeb 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3174,8 +3174,8 @@ static void dg1_ddi_disable_clock(struct intel_encoder 
*encoder)
mutex_unlock(_priv->dpll.lock);
 }
 
-static void icl_map_plls_to_ports(struct intel_encoder *encoder,
- const struct intel_crtc_state *crtc_state)
+static void icl_ddi_combo_enable_clock(struct intel_encoder *encoder,
+  const struct intel_crtc_state 
*crtc_state)
 {
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
struct intel_shared_dpll *pll = crtc_state->shared_dpll;
@@ -3203,22 +3203,20 @@ static void icl_map_plls_to_ports(struct intel_encoder 
*encoder,
drm_WARN_ON(_priv->drm,
(val & icl_dpclka_cfgcr0_clk_off(dev_priv, phy)) == 0);
 
-   if (intel_phy_is_combo(dev_priv, phy)) {
-   /*
-* Even though this register references DDIs, note that we
-* want to pass the PHY rather than the port (DDI).  For
-* ICL, port=phy in all cases so it doesn't matter, but for
-* EHL the bspec notes the following:
-*
-*   "DDID clock tied to DDIA clock, so DPCLKA_CFGCR0 DDIA
-*   Clock Select chooses the PLL for both DDIA and DDID and
-*   drives port A in all cases."
-*/
-   val &= ~mask;
-   val |= sel;
-   intel_de_write(dev_priv, reg, val);
-   intel_de_posting_read(dev_priv, reg);
-   }
+   /*
+* Even though this register references DDIs, note that we
+* want to pass the PHY rather than the port (DDI).  For
+* ICL, port=phy in all cases so it doesn't matter, but for
+* EHL the bspec notes the following:
+*
+*   "DDID clock tied to DDIA clock, so DPCLKA_CFGCR0 DDIA
+*   Clock Select chooses the PLL for both DDIA and DDID and
+*   drives port A in all cases."
+*/
+   val &= ~mask;
+   val |= sel;
+   intel_de_write(dev_priv, reg, val);
+   intel_de_posting_read(dev_priv, reg);
 
val &= ~icl_dpclka_cfgcr0_clk_off(dev_priv, phy);
intel_de_write(dev_priv, reg, val);
@@ -3226,7 +3224,7 @@ static void icl_map_plls_to_ports(struct intel_encoder 
*encoder,
mutex_unlock(_priv->dpll.lock);
 }
 
-static void icl_unmap_plls_to_ports(struct intel_encoder *encoder)
+static void icl_ddi_combo_disable_clock(struct intel_encoder *encoder)
 {
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
@@ -3375,47 +3373,71 @@ void icl_sanitize_encoder_pll_mapping(struct 
intel_encoder *encoder)
icl_sanitize_port_clk_off(dev_priv, port_mask, ddi_clk_needed);
 }
 
-static void intel_ddi_clk_select(struct intel_encoder *encoder,
-const struct intel_crtc_state *crtc_state)
+static void jsl_ddi_tc_enable_clock(struct intel_encoder *encoder,
+   const struct intel_crtc_state *crtc_state)
 {
-   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+   const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
enum port port = encoder->port;
-   enum phy phy = intel_port_to_phy(dev_priv, port);
+
+   if (drm_WARN_ON(>drm, !pll))
+   return;
+
+   /*
+* "For DDIC and 

[Intel-gfx] [PATCH v2 05/14] drm/i915: Convert DG1 over to .{enable, disable}_clock()

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

Replace dg1_{map,unmap}_plls_to_ports() with the appropriate
encoder vfuncs. And let's relocate the disable function next to
the enable function while at it.

Reviewed-by: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 43 
 1 file changed, 21 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 9ea408ff254b..cbeb75d00013 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3127,8 +3127,8 @@ static u32 icl_dpclka_cfgcr0_clk_off(struct 
drm_i915_private *dev_priv,
return 0;
 }
 
-static void dg1_map_plls_to_ports(struct intel_encoder *encoder,
- const struct intel_crtc_state *crtc_state)
+static void dg1_ddi_enable_clock(struct intel_encoder *encoder,
+const struct intel_crtc_state *crtc_state)
 {
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
struct intel_shared_dpll *pll = crtc_state->shared_dpll;
@@ -3161,6 +3161,19 @@ static void dg1_map_plls_to_ports(struct intel_encoder 
*encoder,
mutex_unlock(_priv->dpll.lock);
 }
 
+static void dg1_ddi_disable_clock(struct intel_encoder *encoder)
+{
+   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+   enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
+
+   mutex_lock(_priv->dpll.lock);
+
+   intel_de_rmw(dev_priv, DG1_DPCLKA_CFGCR0(phy), 0,
+DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
+
+   mutex_unlock(_priv->dpll.lock);
+}
+
 static void icl_map_plls_to_ports(struct intel_encoder *encoder,
  const struct intel_crtc_state *crtc_state)
 {
@@ -3213,19 +3226,6 @@ static void icl_map_plls_to_ports(struct intel_encoder 
*encoder,
mutex_unlock(_priv->dpll.lock);
 }
 
-static void dg1_unmap_plls_to_ports(struct intel_encoder *encoder)
-{
-   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-   enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
-
-   mutex_lock(_priv->dpll.lock);
-
-   intel_de_rmw(dev_priv, DG1_DPCLKA_CFGCR0(phy), 0,
-DG1_DPCLKA_CFGCR0_DDI_CLK_OFF(phy));
-
-   mutex_unlock(_priv->dpll.lock);
-}
-
 static void icl_unmap_plls_to_ports(struct intel_encoder *encoder)
 {
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
@@ -4007,9 +4007,7 @@ static void intel_ddi_pre_enable(struct 
intel_atomic_state *state,
 
drm_WARN_ON(_priv->drm, crtc_state->has_pch_encoder);
 
-   if (IS_DG1(dev_priv))
-   dg1_map_plls_to_ports(encoder, crtc_state);
-   else if (INTEL_GEN(dev_priv) >= 11)
+   if (!IS_DG1(dev_priv) && INTEL_GEN(dev_priv) >= 11)
icl_map_plls_to_ports(encoder, crtc_state);
 
intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, true);
@@ -4210,9 +4208,7 @@ static void intel_ddi_post_disable(struct 
intel_atomic_state *state,
intel_ddi_post_disable_dp(state, encoder, old_crtc_state,
  old_conn_state);
 
-   if (IS_DG1(dev_priv))
-   dg1_unmap_plls_to_ports(encoder);
-   else if (INTEL_GEN(dev_priv) >= 11)
+   if (!IS_DG1(dev_priv) && INTEL_GEN(dev_priv) >= 11)
icl_unmap_plls_to_ports(encoder);
 
if (intel_crtc_has_dp_encoder(old_crtc_state) || is_tc_port)
@@ -5657,7 +5653,10 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, 
enum port port)
encoder->cloneable = 0;
encoder->pipe_mask = ~0;
 
-   if (IS_CANNONLAKE(dev_priv)) {
+   if (IS_DG1(dev_priv)) {
+   encoder->enable_clock = dg1_ddi_enable_clock;
+   encoder->disable_clock = dg1_ddi_disable_clock;
+   } else if (IS_CANNONLAKE(dev_priv)) {
encoder->enable_clock = cnl_ddi_enable_clock;
encoder->disable_clock = cnl_ddi_disable_clock;
} else if (IS_GEN9_BC(dev_priv)) {
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2 04/14] drm/i195: Extract cnl_ddi_{enable, disable}_clock()

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

Extract the DDI clock routing for CNL into the new vfuncs.

v2: s/dev_priv/i915/ (Lucas)

Reviewed-by: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 62 
 1 file changed, 42 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 2a8e47a3a878..9ea408ff254b 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3381,7 +3381,6 @@ static void intel_ddi_clk_select(struct intel_encoder 
*encoder,
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
enum port port = encoder->port;
enum phy phy = intel_port_to_phy(dev_priv, port);
-   u32 val;
const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
 
if (drm_WARN_ON(_priv->drm, !pll))
@@ -3400,21 +3399,6 @@ static void intel_ddi_clk_select(struct intel_encoder 
*encoder,
 */
intel_de_write(dev_priv, DDI_CLK_SEL(port),
   DDI_CLK_SEL_MG);
-   } else if (IS_CANNONLAKE(dev_priv)) {
-   /* Configure DPCLKA_CFGCR0 to map the DPLL to the DDI. */
-   val = intel_de_read(dev_priv, DPCLKA_CFGCR0);
-   val &= ~DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(port);
-   val |= DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, port);
-   intel_de_write(dev_priv, DPCLKA_CFGCR0, val);
-
-   /*
-* Configure DPCLKA_CFGCR0 to turn on the clock for the DDI.
-* This step and the step before must be done with separate
-* register writes.
-*/
-   val = intel_de_read(dev_priv, DPCLKA_CFGCR0);
-   val &= ~DPCLKA_CFGCR0_DDI_CLK_OFF(port);
-   intel_de_write(dev_priv, DPCLKA_CFGCR0, val);
}
 
mutex_unlock(_priv->dpll.lock);
@@ -3431,12 +3415,47 @@ static void intel_ddi_clk_disable(struct intel_encoder 
*encoder)
(IS_JSL_EHL(dev_priv) && port >= PORT_C))
intel_de_write(dev_priv, DDI_CLK_SEL(port),
   DDI_CLK_SEL_NONE);
-   } else if (IS_CANNONLAKE(dev_priv)) {
-   intel_de_write(dev_priv, DPCLKA_CFGCR0,
-  intel_de_read(dev_priv, DPCLKA_CFGCR0) | 
DPCLKA_CFGCR0_DDI_CLK_OFF(port));
}
 }
 
+static void cnl_ddi_enable_clock(struct intel_encoder *encoder,
+const struct intel_crtc_state *crtc_state)
+{
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+   const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
+   enum port port = encoder->port;
+   u32 val;
+
+   if (drm_WARN_ON(>drm, !pll))
+   return;
+
+   mutex_lock(>dpll.lock);
+
+   val = intel_de_read(i915, DPCLKA_CFGCR0);
+   val &= ~DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(port);
+   val |= DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, port);
+   intel_de_write(i915, DPCLKA_CFGCR0, val);
+
+   /*
+* "This step and the step before must be
+*  done with separate register writes."
+*/
+   val = intel_de_read(i915, DPCLKA_CFGCR0);
+   val &= ~DPCLKA_CFGCR0_DDI_CLK_OFF(port);
+   intel_de_write(i915, DPCLKA_CFGCR0, val);
+
+   mutex_unlock(>dpll.lock);
+}
+
+static void cnl_ddi_disable_clock(struct intel_encoder *encoder)
+{
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+   enum port port = encoder->port;
+
+   intel_de_write(i915, DPCLKA_CFGCR0,
+  intel_de_read(i915, DPCLKA_CFGCR0) | 
DPCLKA_CFGCR0_DDI_CLK_OFF(port));
+}
+
 static void skl_ddi_enable_clock(struct intel_encoder *encoder,
 const struct intel_crtc_state *crtc_state)
 {
@@ -5638,7 +5657,10 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, 
enum port port)
encoder->cloneable = 0;
encoder->pipe_mask = ~0;
 
-   if (IS_GEN9_BC(dev_priv)) {
+   if (IS_CANNONLAKE(dev_priv)) {
+   encoder->enable_clock = cnl_ddi_enable_clock;
+   encoder->disable_clock = cnl_ddi_disable_clock;
+   } else if (IS_GEN9_BC(dev_priv)) {
encoder->enable_clock = skl_ddi_enable_clock;
encoder->disable_clock = skl_ddi_disable_clock;
} else if (IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv)) {
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2 03/14] drm/i915: Extract skl_ddi_{enable, disable}_clock()

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

Extract the DDI clock routing clode for skl/derivatives
into the new encoder vfuncs.

v2: s/dev_priv/i915/ (Lucas)

Reviewed-by: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 53 +---
 1 file changed, 38 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index b8af7b7df12a..2a8e47a3a878 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3415,17 +3415,6 @@ static void intel_ddi_clk_select(struct intel_encoder 
*encoder,
val = intel_de_read(dev_priv, DPCLKA_CFGCR0);
val &= ~DPCLKA_CFGCR0_DDI_CLK_OFF(port);
intel_de_write(dev_priv, DPCLKA_CFGCR0, val);
-   } else if (IS_GEN9_BC(dev_priv)) {
-   /* DDI -> PLL mapping  */
-   val = intel_de_read(dev_priv, DPLL_CTRL2);
-
-   val &= ~(DPLL_CTRL2_DDI_CLK_OFF(port) |
-DPLL_CTRL2_DDI_CLK_SEL_MASK(port));
-   val |= (DPLL_CTRL2_DDI_CLK_SEL(pll->info->id, port) |
-   DPLL_CTRL2_DDI_SEL_OVERRIDE(port));
-
-   intel_de_write(dev_priv, DPLL_CTRL2, val);
-
}
 
mutex_unlock(_priv->dpll.lock);
@@ -3445,12 +3434,43 @@ static void intel_ddi_clk_disable(struct intel_encoder 
*encoder)
} else if (IS_CANNONLAKE(dev_priv)) {
intel_de_write(dev_priv, DPCLKA_CFGCR0,
   intel_de_read(dev_priv, DPCLKA_CFGCR0) | 
DPCLKA_CFGCR0_DDI_CLK_OFF(port));
-   } else if (IS_GEN9_BC(dev_priv)) {
-   intel_de_write(dev_priv, DPLL_CTRL2,
-  intel_de_read(dev_priv, DPLL_CTRL2) | 
DPLL_CTRL2_DDI_CLK_OFF(port));
}
 }
 
+static void skl_ddi_enable_clock(struct intel_encoder *encoder,
+const struct intel_crtc_state *crtc_state)
+{
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+   const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
+   enum port port = encoder->port;
+   u32 val;
+
+   if (drm_WARN_ON(>drm, !pll))
+   return;
+
+   mutex_lock(>dpll.lock);
+
+   val = intel_de_read(i915, DPLL_CTRL2);
+
+   val &= ~(DPLL_CTRL2_DDI_CLK_OFF(port) |
+DPLL_CTRL2_DDI_CLK_SEL_MASK(port));
+   val |= (DPLL_CTRL2_DDI_CLK_SEL(pll->info->id, port) |
+   DPLL_CTRL2_DDI_SEL_OVERRIDE(port));
+
+   intel_de_write(i915, DPLL_CTRL2, val);
+
+   mutex_unlock(>dpll.lock);
+}
+
+static void skl_ddi_disable_clock(struct intel_encoder *encoder)
+{
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+   enum port port = encoder->port;
+
+   intel_de_write(i915, DPLL_CTRL2,
+  intel_de_read(i915, DPLL_CTRL2) | 
DPLL_CTRL2_DDI_CLK_OFF(port));
+}
+
 static void hsw_ddi_enable_clock(struct intel_encoder *encoder,
 const struct intel_crtc_state *crtc_state)
 {
@@ -5618,7 +5638,10 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, 
enum port port)
encoder->cloneable = 0;
encoder->pipe_mask = ~0;
 
-   if (IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv)) {
+   if (IS_GEN9_BC(dev_priv)) {
+   encoder->enable_clock = skl_ddi_enable_clock;
+   encoder->disable_clock = skl_ddi_disable_clock;
+   } else if (IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv)) {
encoder->enable_clock = hsw_ddi_enable_clock;
encoder->disable_clock = hsw_ddi_disable_clock;
}
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2 02/14] drm/i915: Extract hsw_ddi_{enable, disable}_clock()

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

Yank out the HSW/BDW code from intel_ddi_clk_{select,disable}()
and put it into the new encoder .{enable,disable}_clock() vfuncs.

v2: s/dev_priv/i915/ (Lucas)

Reviewed-by: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 32 +++-
 1 file changed, 26 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index fa032e377ebc..b8af7b7df12a 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3426,9 +3426,6 @@ static void intel_ddi_clk_select(struct intel_encoder 
*encoder,
 
intel_de_write(dev_priv, DPLL_CTRL2, val);
 
-   } else if (INTEL_GEN(dev_priv) < 9) {
-   intel_de_write(dev_priv, PORT_CLK_SEL(port),
-  hsw_pll_to_ddi_pll_sel(pll));
}
 
mutex_unlock(_priv->dpll.lock);
@@ -3451,12 +3448,30 @@ static void intel_ddi_clk_disable(struct intel_encoder 
*encoder)
} else if (IS_GEN9_BC(dev_priv)) {
intel_de_write(dev_priv, DPLL_CTRL2,
   intel_de_read(dev_priv, DPLL_CTRL2) | 
DPLL_CTRL2_DDI_CLK_OFF(port));
-   } else if (INTEL_GEN(dev_priv) < 9) {
-   intel_de_write(dev_priv, PORT_CLK_SEL(port),
-  PORT_CLK_SEL_NONE);
}
 }
 
+static void hsw_ddi_enable_clock(struct intel_encoder *encoder,
+const struct intel_crtc_state *crtc_state)
+{
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+   const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
+   enum port port = encoder->port;
+
+   if (drm_WARN_ON(>drm, !pll))
+   return;
+
+   intel_de_write(i915, PORT_CLK_SEL(port), hsw_pll_to_ddi_pll_sel(pll));
+}
+
+static void hsw_ddi_disable_clock(struct intel_encoder *encoder)
+{
+   struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+   enum port port = encoder->port;
+
+   intel_de_write(i915, PORT_CLK_SEL(port), PORT_CLK_SEL_NONE);
+}
+
 static void intel_ddi_enable_clock(struct intel_encoder *encoder,
   const struct intel_crtc_state *crtc_state)
 {
@@ -5603,6 +5618,11 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, 
enum port port)
encoder->cloneable = 0;
encoder->pipe_mask = ~0;
 
+   if (IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv)) {
+   encoder->enable_clock = hsw_ddi_enable_clock;
+   encoder->disable_clock = hsw_ddi_disable_clock;
+   }
+
if (IS_DG1(dev_priv))
encoder->hpd_pin = dg1_hpd_pin(dev_priv, port);
else if (IS_ROCKETLAKE(dev_priv))
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2 01/14] drm/i915: Introduce .{enable, disable}_clock() encoder vfuncs

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

The current code dealing with the clock routing for DDI encoders
is a maintenance nightmare. Let's start cleaning it up by allowing
the encoder to provide vfuncs for enablign/disabling the clock.

We leave them initially unimplemented, falling back to the old
if-else approach.

Reviewed-by: Lucas De Marchi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_ddi.c  | 29 +++
 .../drm/i915/display/intel_display_types.h|  6 
 2 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 5bc5033a2dea..fa032e377ebc 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3457,6 +3457,23 @@ static void intel_ddi_clk_disable(struct intel_encoder 
*encoder)
}
 }
 
+static void intel_ddi_enable_clock(struct intel_encoder *encoder,
+  const struct intel_crtc_state *crtc_state)
+{
+   if (encoder->enable_clock)
+   encoder->enable_clock(encoder, crtc_state);
+   else
+   intel_ddi_clk_select(encoder, crtc_state);
+}
+
+static void intel_ddi_disable_clock(struct intel_encoder *encoder)
+{
+   if (encoder->disable_clock)
+   encoder->disable_clock(encoder);
+   else
+   intel_ddi_clk_disable(encoder);
+}
+
 static void
 icl_program_mg_dp_mode(struct intel_digital_port *dig_port,
   const struct intel_crtc_state *crtc_state)
@@ -3701,7 +3718,7 @@ static void tgl_ddi_pre_enable_dp(struct 
intel_atomic_state *state,
 * hsw_crtc_enable()->intel_enable_shared_dpll().  We need only
 * configure the PLL to port mapping here.
 */
-   intel_ddi_clk_select(encoder, crtc_state);
+   intel_ddi_enable_clock(encoder, crtc_state);
 
/* 5. If IO power is controlled through PWR_WELL_CTL, Enable IO Power */
if (!intel_phy_is_tc(dev_priv, phy) ||
@@ -3822,7 +3839,7 @@ static void hsw_ddi_pre_enable_dp(struct 
intel_atomic_state *state,
 
intel_pps_on(intel_dp);
 
-   intel_ddi_clk_select(encoder, crtc_state);
+   intel_ddi_enable_clock(encoder, crtc_state);
 
if (!intel_phy_is_tc(dev_priv, phy) ||
dig_port->tc_mode != TC_PORT_TBT_ALT) {
@@ -3897,7 +3914,7 @@ static void intel_ddi_pre_enable_hdmi(struct 
intel_atomic_state *state,
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 
intel_dp_dual_mode_set_tmds_output(intel_hdmi, true);
-   intel_ddi_clk_select(encoder, crtc_state);
+   intel_ddi_enable_clock(encoder, crtc_state);
 
drm_WARN_ON(_priv->drm, dig_port->ddi_io_wakeref);
dig_port->ddi_io_wakeref = intel_display_power_get(dev_priv,
@@ -4049,7 +4066,7 @@ static void intel_ddi_post_disable_dp(struct 
intel_atomic_state *state,
dig_port->ddi_io_power_domain,

fetch_and_zero(_port->ddi_io_wakeref));
 
-   intel_ddi_clk_disable(encoder);
+   intel_ddi_disable_clock(encoder);
 }
 
 static void intel_ddi_post_disable_hdmi(struct intel_atomic_state *state,
@@ -4072,7 +4089,7 @@ static void intel_ddi_post_disable_hdmi(struct 
intel_atomic_state *state,
dig_port->ddi_io_power_domain,
fetch_and_zero(_port->ddi_io_wakeref));
 
-   intel_ddi_clk_disable(encoder);
+   intel_ddi_disable_clock(encoder);
 
intel_dp_dual_mode_set_tmds_output(intel_hdmi, false);
 }
@@ -4172,7 +4189,7 @@ void intel_ddi_fdi_post_disable(struct intel_atomic_state 
*state,
intel_de_write(dev_priv, FDI_RX_CTL(PIPE_A), val);
 
intel_disable_ddi_buf(encoder, old_crtc_state);
-   intel_ddi_clk_disable(encoder);
+   intel_ddi_disable_clock(encoder);
 
val = intel_de_read(dev_priv, FDI_RX_MISC(PIPE_A));
val &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK);
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
b/drivers/gpu/drm/i915/display/intel_display_types.h
index 39397748b4b0..085162616112 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -219,6 +219,12 @@ struct intel_encoder {
 * encoders have been disabled and suspended.
 */
void (*shutdown)(struct intel_encoder *encoder);
+   /*
+* Enable/disable the clock to the port.
+*/
+   void (*enable_clock)(struct intel_encoder *encoder,
+const struct intel_crtc_state *crtc_state);
+   void (*disable_clock)(struct intel_encoder *encoder);
enum hpd_pin hpd_pin;
enum intel_display_power_domain power_domain;
/* for communication with audio component; protected by av_mutex */
-- 
2.26.2

___
Intel-gfx mailing list

[Intel-gfx] [PATCH v2 00/14] drm/i915: Clean up the DDI clock routing mess

2021-02-04 Thread Ville Syrjala
From: Ville Syrjälä 

A revised version of the DDI clock routing refactoring.

Dropped the icl_dpclka_cfgcr0_reg() & co. extraction as Lucas
suggested since they got removed at the end anyway. Was a bit
worried it might make things more confusing due to
icl_dpclka_cfgcr0_clk_off() already being there, but looks OK
in the end anyway I think.

Also did a bunch if s/dev_priv/i915/ based on Lucas's review.
Didn't feel comfortable sneaking all of it into the other patches
since it would have lowered the SNR. Hence the new patch at the
end to clean up the stragglers.

Ville Syrjälä (14):
  drm/i915: Introduce .{enable,disable}_clock() encoder vfuncs
  drm/i915: Extract hsw_ddi_{enable,disable}_clock()
  drm/i915: Extract skl_ddi_{enable,disable}_clock()
  drm/i195: Extract cnl_ddi_{enable,disable}_clock()
  drm/i915: Convert DG1 over to .{enable,disable}_clock()
  drm/i915: Extract icl+ .{enable,disable}_clock() vfuncs
  drm/i915: Use intel_de_rmw() for DDI clock routing
  drm/i915: Sprinkle a few missing locks around shared DDI clock
registers
  drm/i915: Sprinkle WARN(!pll) into icl/dg1 .clock_enable()
  drm/i915: Extract _cnl_ddi_{enable,disable}_clock()
  drm/i915: Split adl-s/rkl from icl_ddi_combo_{enable,disable}_clock()
  drm/i915: Use .disable_clock() for pll sanitation
  drm/i915: Relocate icl_sanitize_encoder_pll_mapping()
  drm/i915: s/dev_priv/i915/ for the remainder of DDI clock routing

 drivers/gpu/drm/i915/display/icl_dsi.c|   1 +
 drivers/gpu/drm/i915/display/intel_ddi.c  | 576 ++
 .../drm/i915/display/intel_display_types.h|   6 +
 3 files changed, 315 insertions(+), 268 deletions(-)

-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: cleanup the region class/instance encoding

2021-02-04 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915: cleanup the region class/instance 
encoding
URL   : https://patchwork.freedesktop.org/series/86694/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9730 -> Patchwork_19588


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19588 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19588, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

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

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@gt_lrc:
- fi-bsw-n3050:   [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-bsw-n3050/igt@i915_selftest@live@gt_lrc.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19588/fi-bsw-n3050/igt@i915_selftest@live@gt_lrc.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_close_race@basic-threads:
- fi-tgl-y:   [PASS][3] -> [DMESG-WARN][4] ([i915#402]) +2 similar 
issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-tgl-y/igt@gem_close_r...@basic-threads.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19588/fi-tgl-y/igt@gem_close_r...@basic-threads.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@a-vga1:
- fi-pnv-d510:[PASS][5] -> [FAIL][6] ([i915#2122])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-pnv-d510/igt@kms_flip@basic-flip-vs-wf_vbl...@a-vga1.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19588/fi-pnv-d510/igt@kms_flip@basic-flip-vs-wf_vbl...@a-vga1.html

  
 Possible fixes 

  * igt@debugfs_test@read_all_entries:
- fi-tgl-y:   [DMESG-WARN][7] ([i915#1982] / [i915#402]) -> 
[PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-tgl-y/igt@debugfs_test@read_all_entries.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19588/fi-tgl-y/igt@debugfs_test@read_all_entries.html

  * igt@gem_mmap_gtt@basic:
- fi-tgl-y:   [DMESG-WARN][9] ([i915#402]) -> [PASS][10] +1 similar 
issue
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-tgl-y/igt@gem_mmap_...@basic.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19588/fi-tgl-y/igt@gem_mmap_...@basic.html

  * igt@i915_selftest@live@client:
- fi-glk-dsi: [DMESG-FAIL][11] -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-glk-dsi/igt@i915_selftest@l...@client.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19588/fi-glk-dsi/igt@i915_selftest@l...@client.html

  * igt@i915_selftest@live@sanitycheck:
- fi-kbl-7500u:   [DMESG-WARN][13] ([i915#2605]) -> [PASS][14] +1 
similar issue
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-kbl-7500u/igt@i915_selftest@l...@sanitycheck.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19588/fi-kbl-7500u/igt@i915_selftest@l...@sanitycheck.html

  
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2605]: https://gitlab.freedesktop.org/drm/intel/issues/2605
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (43 -> 38)
--

  Missing(5): fi-jsl-1 fi-ilk-m540 fi-byt-j1900 fi-bsw-cyan fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9730 -> Patchwork_19588

  CI-20190529: 20190529
  CI_DRM_9730: a70ac209cb308e06bc397cb3a6bf5764a4917333 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5990: e796ca7ce6fe9c54ee7d939be4110582d555fbb6 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19588: 81f71fd67adc829e19b521a60be7fc7fcba1da87 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

81f71fd67adc drm/i915: give stolen system memory its own class
2a7b87cc63e4 drm/i915: cleanup the region class/instance encoding

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19588/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915/display: Remove PSR2 on JSL and EHL

2021-02-04 Thread José Roberto de Souza
From: Edmund Dea 

While JSL and EHL eDP transcoder supports PSR2, the phy of this
platforms only supports eDP 1.3, so removing PSR2 support as this
feature was added in eDP 1.4.

Signed-off-by: Edmund Dea 
Signed-off-by: José Roberto de Souza 
---
 drivers/gpu/drm/i915/display/intel_psr.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index 2c365b778f74..cccb8aff4336 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -718,6 +718,12 @@ static bool intel_psr2_config_valid(struct intel_dp 
*intel_dp,
if (!dev_priv->psr.sink_psr2_support)
return false;
 
+   /* JSL and EHL only supports eDP 1.3 */
+   if (IS_JSL_EHL(dev_priv)) {
+   drm_dbg_kms(_priv->drm, "PSR2 not supported by phy\n");
+   return false;
+   }
+
if (!transcoder_has_psr2(dev_priv, crtc_state->cpu_transcoder)) {
drm_dbg_kms(_priv->drm,
"PSR2 not supported in transcoder %s\n",
-- 
2.30.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v3 3/3] drm/i915/gtt/dg1: add PTE_LM plumbing for GGTT

2021-02-04 Thread Piotr Piórkowski
Matthew Auld  wrote on śro [2021-lut-03 
18:32:34 +]:
> On Wed, 3 Feb 2021 at 18:01, Tang, CQ  wrote:
> >
> >
> >
> > > -Original Message-
> > > From: Matthew Auld 
> > > Sent: Wednesday, February 3, 2021 9:03 AM
> > > To: Tang, CQ 
> > > Cc: Auld, Matthew ; intel-
> > > g...@lists.freedesktop.org; Chris Wilson 
> > > Subject: Re: [Intel-gfx] [PATCH v3 3/3] drm/i915/gtt/dg1: add PTE_LM
> > > plumbing for GGTT
> > >
> > > On Wed, 3 Feb 2021 at 16:51, Tang, CQ  wrote:
> > > >
> > > >
> > > >
> > > > > -Original Message-
> > > > > From: Intel-gfx  On Behalf
> > > > > Of Matthew Auld
> > > > > Sent: Wednesday, February 3, 2021 7:24 AM
> > > > > To: intel-gfx@lists.freedesktop.org
> > > > > Cc: Chris Wilson 
> > > > > Subject: [Intel-gfx] [PATCH v3 3/3] drm/i915/gtt/dg1: add PTE_LM
> > > > > plumbing for GGTT
> > > > >
> > > > > For the PTEs we get an LM bit, to signal whether the page resides in
> > > > > SMEM or LMEM.
> > > > >
> > > > > Based on a patch from Michel Thierry.
> > > > >
> > > > > Signed-off-by: Matthew Auld 
> > > > > Cc: Joonas Lahtinen 
> > > > > Signed-off-by: Daniele Ceraolo Spurio
> > > > > 
> > > > > Reviewed-by: Chris Wilson 
> > > > > ---
> > > > >  drivers/gpu/drm/i915/gt/intel_ggtt.c | 24 +++-
> > > > > drivers/gpu/drm/i915/gt/intel_gtt.h  |  4 +++-
> > > > >  2 files changed, 22 insertions(+), 6 deletions(-)
> > > > >
> > > > > diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt.c
> > > > > b/drivers/gpu/drm/i915/gt/intel_ggtt.c
> > > > > index fc399ac16eda..b0b8ded834f0 100644
> > > > > --- a/drivers/gpu/drm/i915/gt/intel_ggtt.c
> > > > > +++ b/drivers/gpu/drm/i915/gt/intel_ggtt.c
> > > > > @@ -10,6 +10,8 @@
> > > > >
> > > > >  #include 
> > > > >
> > > > > +#include "gem/i915_gem_lmem.h"
> > > > > +
> > > > >  #include "intel_gt.h"
> > > > >  #include "i915_drv.h"
> > > > >  #include "i915_scatterlist.h"
> > > > > @@ -189,7 +191,12 @@ static u64 gen8_ggtt_pte_encode(dma_addr_t
> > > addr,
> > > > >   enum i915_cache_level level,
> > > > >   u32 flags)  {
> > > > > - return addr | _PAGE_PRESENT;
> > > > > + gen8_pte_t pte = addr | _PAGE_PRESENT;
> > > > > +
> > > > > + if (flags & PTE_LM)
> > > > > + pte |= GEN12_GGTT_PTE_LM;
> > > > > +
> > > > > + return pte;
> > > > >  }
> > > > >
> > > > >  static void gen8_set_pte(void __iomem *addr, gen8_pte_t pte) @@
> > > > > -201,13
> > > > > +208,13 @@ static void gen8_ggtt_insert_page(struct
> > > > > +i915_address_space
> > > > > *vm,
> > > > > dma_addr_t addr,
> > > > > u64 offset,
> > > > > enum i915_cache_level level,
> > > > > -   u32 unused)
> > > > > +   u32 flags)
> > > > >  {
> > > > >   struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
> > > > >   gen8_pte_t __iomem *pte =
> > > > >   (gen8_pte_t __iomem *)ggtt->gsm + offset /
> > > > > I915_GTT_PAGE_SIZE;
> > > > >
> > > > > - gen8_set_pte(pte, gen8_ggtt_pte_encode(addr, level, 0));
> > > > > + gen8_set_pte(pte, gen8_ggtt_pte_encode(addr, level, flags));
> > > > >
> > > > >   ggtt->invalidate(ggtt);
> > > > >  }
> > > > > @@ -217,7 +224,7 @@ static void gen8_ggtt_insert_entries(struct
> > > > > i915_address_space *vm,
> > > > >enum i915_cache_level level,
> > > > >u32 flags)  {
> > > > > - const gen8_pte_t pte_encode = gen8_ggtt_pte_encode(0, level, 0);
> > > > > + const gen8_pte_t pte_encode = gen8_ggtt_pte_encode(0, level,
> > > > > flags);
> > > > >   struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
> > > > >   gen8_pte_t __iomem *gte;
> > > > >   gen8_pte_t __iomem *end;
> > > > > @@ -459,6 +466,8 @@ static void ggtt_bind_vma(struct
> > > > > i915_address_space *vm,
> > > > >   pte_flags = 0;
> > > > >   if (i915_gem_object_is_readonly(obj))
> > > > >   pte_flags |= PTE_READ_ONLY;
> > > > > + if (i915_gem_object_is_lmem(obj))
> > > > > + pte_flags |= PTE_LM;
> > > > >
> > > > >   vm->insert_entries(vm, vma, cache_level, pte_flags);
> > > > >   vma->page_sizes.gtt = I915_GTT_PAGE_SIZE; @@ -794,6 +803,7 @@
> > > > > static int ggtt_probe_common(struct i915_ggtt *ggtt, u64 size)
> > > > >   struct drm_i915_private *i915 = ggtt->vm.i915;
> > > > >   struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
> > > > >   phys_addr_t phys_addr;
> > > > > + u32 pte_flags;
> > > > >   int ret;
> > > > >
> > > > >   /* For Modern GENs the PTEs and register space are split in
> > > > > the BAR */ @@ -823,9 +833,13 @@ static int ggtt_probe_common(struct
> > > > > i915_ggtt *ggtt, u64 size)
> > > > >   return ret;
> > > > >   }
> > > > >
> > > > > + pte_flags = 0;
> > > > > + if 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: cleanup the region class/instance encoding

2021-02-04 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915: cleanup the region class/instance 
encoding
URL   : https://patchwork.freedesktop.org/series/86694/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
2a7b87cc63e4 drm/i915: cleanup the region class/instance encoding
-:34: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#34: FILE: drivers/gpu/drm/i915/intel_memory_region.c:13:
+   [INTEL_REGION_SMEM] = {$

-:35: ERROR:CODE_INDENT: code indent should use tabs where possible
#35: FILE: drivers/gpu/drm/i915/intel_memory_region.c:14:
+   .class = INTEL_MEMORY_SYSTEM,$

-:35: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#35: FILE: drivers/gpu/drm/i915/intel_memory_region.c:14:
+   .class = INTEL_MEMORY_SYSTEM,$

-:36: ERROR:CODE_INDENT: code indent should use tabs where possible
#36: FILE: drivers/gpu/drm/i915/intel_memory_region.c:15:
+   .instance = 0,$

-:36: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#36: FILE: drivers/gpu/drm/i915/intel_memory_region.c:15:
+   .instance = 0,$

-:37: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#37: FILE: drivers/gpu/drm/i915/intel_memory_region.c:16:
+   },$

-:38: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#38: FILE: drivers/gpu/drm/i915/intel_memory_region.c:17:
+   [INTEL_REGION_LMEM] = {$

-:39: ERROR:CODE_INDENT: code indent should use tabs where possible
#39: FILE: drivers/gpu/drm/i915/intel_memory_region.c:18:
+   .class = INTEL_MEMORY_LOCAL,$

-:39: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#39: FILE: drivers/gpu/drm/i915/intel_memory_region.c:18:
+   .class = INTEL_MEMORY_LOCAL,$

-:40: ERROR:CODE_INDENT: code indent should use tabs where possible
#40: FILE: drivers/gpu/drm/i915/intel_memory_region.c:19:
+   .instance = 0,$

-:40: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#40: FILE: drivers/gpu/drm/i915/intel_memory_region.c:19:
+   .instance = 0,$

-:41: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#41: FILE: drivers/gpu/drm/i915/intel_memory_region.c:20:
+   },$

-:42: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#42: FILE: drivers/gpu/drm/i915/intel_memory_region.c:21:
+   [INTEL_REGION_STOLEN] = {$

-:43: ERROR:CODE_INDENT: code indent should use tabs where possible
#43: FILE: drivers/gpu/drm/i915/intel_memory_region.c:22:
+   .class = INTEL_MEMORY_STOLEN,$

-:43: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#43: FILE: drivers/gpu/drm/i915/intel_memory_region.c:22:
+   .class = INTEL_MEMORY_STOLEN,$

-:44: ERROR:CODE_INDENT: code indent should use tabs where possible
#44: FILE: drivers/gpu/drm/i915/intel_memory_region.c:23:
+   .instance = 0,$

-:44: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#44: FILE: drivers/gpu/drm/i915/intel_memory_region.c:23:
+   .instance = 0,$

-:45: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#45: FILE: drivers/gpu/drm/i915/intel_memory_region.c:24:
+   },$

total: 6 errors, 12 warnings, 0 checks, 79 lines checked
81f71fd67adc drm/i915: give stolen system memory its own class
-:71: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#71: FILE: drivers/gpu/drm/i915/intel_memory_region.c:21:
+   [INTEL_REGION_STOLEN_SMEM] = {$

-:72: ERROR:CODE_INDENT: code indent should use tabs where possible
#72: FILE: drivers/gpu/drm/i915/intel_memory_region.c:22:
+   .class = INTEL_MEMORY_STOLEN_SYSTEM,$

-:72: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#72: FILE: drivers/gpu/drm/i915/intel_memory_region.c:22:
+   .class = INTEL_MEMORY_STOLEN_SYSTEM,$

total: 1 errors, 2 warnings, 0 checks, 72 lines checked


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [RFC,1/3] proc: Show GPU runtimes

2021-02-04 Thread Patchwork
== Series Details ==

Series: series starting with [RFC,1/3] proc: Show GPU runtimes
URL   : https://patchwork.freedesktop.org/series/86693/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9730 -> Patchwork_19587


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_cs_nop@sync-gfx0:
- fi-bsw-n3050:   NOTRUN -> [SKIP][1] ([fdo#109271]) +17 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/fi-bsw-n3050/igt@amdgpu/amd_cs_...@sync-gfx0.html

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-icl-u2:  [PASS][2] -> [DMESG-WARN][3] ([i915#2868])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-icl-u2/igt@kms_chamel...@common-hpd-after-suspend.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/fi-icl-u2/igt@kms_chamel...@common-hpd-after-suspend.html

  * igt@prime_self_import@basic-with_one_bo_two_files:
- fi-tgl-y:   [PASS][4] -> [DMESG-WARN][5] ([i915#402]) +1 similar 
issue
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-tgl-y/igt@prime_self_import@basic-with_one_bo_two_files.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/fi-tgl-y/igt@prime_self_import@basic-with_one_bo_two_files.html

  
 Possible fixes 

  * igt@debugfs_test@read_all_entries:
- fi-tgl-y:   [DMESG-WARN][6] ([i915#1982] / [i915#402]) -> 
[PASS][7]
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-tgl-y/igt@debugfs_test@read_all_entries.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/fi-tgl-y/igt@debugfs_test@read_all_entries.html

  * igt@gem_exec_suspend@basic-s3:
- fi-tgl-y:   [DMESG-WARN][8] ([i915#2411] / [i915#402]) -> 
[PASS][9]
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html

  * igt@gem_mmap_gtt@basic:
- fi-tgl-y:   [DMESG-WARN][10] ([i915#402]) -> [PASS][11] +1 
similar issue
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-tgl-y/igt@gem_mmap_...@basic.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/fi-tgl-y/igt@gem_mmap_...@basic.html

  * igt@i915_selftest@live@client:
- fi-glk-dsi: [DMESG-FAIL][12] -> [PASS][13]
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-glk-dsi/igt@i915_selftest@l...@client.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/fi-glk-dsi/igt@i915_selftest@l...@client.html

  * igt@i915_selftest@live@execlists:
- fi-bsw-n3050:   [INCOMPLETE][14] ([i915#2940]) -> [PASS][15]
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-bsw-n3050/igt@i915_selftest@l...@execlists.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/fi-bsw-n3050/igt@i915_selftest@l...@execlists.html

  * igt@i915_selftest@live@sanitycheck:
- fi-kbl-7500u:   [DMESG-WARN][16] ([i915#2605]) -> [PASS][17] +1 
similar issue
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-kbl-7500u/igt@i915_selftest@l...@sanitycheck.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19587/fi-kbl-7500u/igt@i915_selftest@l...@sanitycheck.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
  [i915#2605]: https://gitlab.freedesktop.org/drm/intel/issues/2605
  [i915#2868]: https://gitlab.freedesktop.org/drm/intel/issues/2868
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (43 -> 39)
--

  Missing(4): fi-jsl-1 fi-ilk-m540 fi-bsw-cyan fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9730 -> Patchwork_19587

  CI-20190529: 20190529
  CI_DRM_9730: a70ac209cb308e06bc397cb3a6bf5764a4917333 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5990: e796ca7ce6fe9c54ee7d939be4110582d555fbb6 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19587: 49cb9e5c8e5a0328b2c0921c52ce25eef351ff64 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

49cb9e5c8e5a drm/i915/gt: Export device and per-process runtimes via procfs
b8f1256bd5ba drm/i915: Look up clients by pid
852e50fbb083 proc: Show GPU runtimes

== Logs ==

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

Re: [Intel-gfx] linux-next: Tree for Feb 4 (gpu/drm/i915/)

2021-02-04 Thread Randy Dunlap
On 2/4/21 1:13 AM, Stephen Rothwell wrote:
> Hi all,
> 
> Changes since 20210203:
> 

on x86_64:

Still seeing 2 unrelated issues:

WARNING: unmet direct dependencies detected for DRM_I915_WERROR
  Depends on [n]: HAS_IOMEM [=y] && DRM_I915 [=m] && EXPERT [=y] && 
!COMPILE_TEST [=y]
  Selected by [m]:
  - DRM_I915_DEBUG [=y] && HAS_IOMEM [=y] && EXPERT [=y] && DRM_I915 [=m]


../drivers/gpu/drm/i915/i915_gem.c: In function ‘i915_gem_freeze_late’:
../drivers/gpu/drm/i915/i915_gem.c:1182:2: error: implicit declaration of 
function ‘wbinvd_on_all_cpus’; did you mean ‘wrmsr_on_cpus’? 
[-Werror=implicit-function-declaration]
  wbinvd_on_all_cpus();

Full randconfig file is attached.

-- 
~Randy
Reported-by: Randy Dunlap 


config-r7644.gz
Description: application/gzip
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] RFC: dma-buf: Require VM_SPECIAL vma for mmap

2021-02-04 Thread Daniel Vetter
On Thu, Feb 4, 2021 at 5:13 PM Jason Gunthorpe  wrote:
> On Wed, Feb 03, 2021 at 10:19:48PM +0100, Daniel Vetter wrote:
> > tldr; DMA buffers aren't normal memory, expecting that you can use
> > them like that (like calling get_user_pages works, or that they're
> > accounting like any other normal memory) cannot be guaranteed.
> >
> > Since some userspace only runs on integrated devices, where all
> > buffers are actually all resident system memory, there's a huge
> > temptation to assume that a struct page is always present and useable
> > like for any more pagecache backed mmap. This has the potential to
> > result in a uapi nightmare.
> >
> > To stop this gap require that DMA buffer mmaps are VM_SPECIAL, which
> > blocks get_user_pages and all the other struct page based
> > infrastructure for everyone. In spirit this is the uapi counterpart to
> > the kernel-internal CONFIG_DMABUF_DEBUG.
>
> Fast gup needs the special flag set on the PTE as well.. Feels weird
> to have a special VMA without also having special PTEs?

There's kinda no convenient & cheap way to check for the pte_special
flag. This here should at least catch accidental misuse, people
building their own ptes we can't stop. Maybe we should exclude
VM_MIXEDMAP to catch vm_insert_page in one of these.

Hm looking at code I think we need to require VM_PFNMAP here to stop
vm_insert_page. And looking at the various functions, that seems to be
required (and I guess VM_IO is more for really funky architectures
where io-space is somewhere else?). I guess I should check for
VM_PFNMAP instead of VM_SPECIAL?
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [v3,1/3] drm/i915/selftests: Restore previous heartbeat interval

2021-02-04 Thread Patchwork
== Series Details ==

Series: series starting with [v3,1/3] drm/i915/selftests: Restore previous 
heartbeat interval
URL   : https://patchwork.freedesktop.org/series/86690/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9730 -> Patchwork_19586


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19586 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19586, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

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

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@gt_heartbeat:
- fi-pnv-d510:[PASS][1] -> [DMESG-FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-pnv-d510/igt@i915_selftest@live@gt_heartbeat.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19586/fi-pnv-d510/igt@i915_selftest@live@gt_heartbeat.html
- fi-elk-e7500:   [PASS][3] -> [DMESG-FAIL][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-elk-e7500/igt@i915_selftest@live@gt_heartbeat.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19586/fi-elk-e7500/igt@i915_selftest@live@gt_heartbeat.html

  
 Suppressed 

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

  * igt@i915_selftest@live@execlists:
- {fi-rkl-11500t}:[PASS][5] -> [INCOMPLETE][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-rkl-11500t/igt@i915_selftest@l...@execlists.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19586/fi-rkl-11500t/igt@i915_selftest@l...@execlists.html
- {fi-ehl-1}: [PASS][7] -> [INCOMPLETE][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-ehl-1/igt@i915_selftest@l...@execlists.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19586/fi-ehl-1/igt@i915_selftest@l...@execlists.html

  * igt@i915_selftest@live@gt_heartbeat:
- {fi-ehl-1}: [PASS][9] -> [DMESG-FAIL][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-ehl-1/igt@i915_selftest@live@gt_heartbeat.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19586/fi-ehl-1/igt@i915_selftest@live@gt_heartbeat.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_basic@userptr:
- fi-byt-j1900:   NOTRUN -> [SKIP][11] ([fdo#109271]) +17 similar issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19586/fi-byt-j1900/igt@amdgpu/amd_ba...@userptr.html

  * igt@i915_selftest@live@execlists:
- fi-kbl-r:   [PASS][12] -> [INCOMPLETE][13] ([i915#1037] / 
[i915#794])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-kbl-r/igt@i915_selftest@l...@execlists.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19586/fi-kbl-r/igt@i915_selftest@l...@execlists.html
- fi-cfl-8109u:   [PASS][14] -> [INCOMPLETE][15] ([i915#1037])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-cfl-8109u/igt@i915_selftest@l...@execlists.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19586/fi-cfl-8109u/igt@i915_selftest@l...@execlists.html
- fi-bsw-nick:[PASS][16] -> [INCOMPLETE][17] ([i915#2940])
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-bsw-nick/igt@i915_selftest@l...@execlists.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19586/fi-bsw-nick/igt@i915_selftest@l...@execlists.html
- fi-glk-dsi: [PASS][18] -> [INCOMPLETE][19] ([i915#1037])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-glk-dsi/igt@i915_selftest@l...@execlists.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19586/fi-glk-dsi/igt@i915_selftest@l...@execlists.html
- fi-kbl-x1275:   [PASS][20] -> [INCOMPLETE][21] ([i915#1037] / 
[i915#794])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-kbl-x1275/igt@i915_selftest@l...@execlists.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19586/fi-kbl-x1275/igt@i915_selftest@l...@execlists.html
- fi-icl-u2:  [PASS][22] -> [INCOMPLETE][23] ([i915#1037] / 
[i915#2276])
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-icl-u2/igt@i915_selftest@l...@execlists.html
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19586/fi-icl-u2/igt@i915_selftest@l...@execlists.html
- fi-skl-6600u:   [PASS][24] -> [INCOMPLETE][25] ([i915#1037])
   [24]: 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [RFC,1/3] proc: Show GPU runtimes

2021-02-04 Thread Patchwork
== Series Details ==

Series: series starting with [RFC,1/3] proc: Show GPU runtimes
URL   : https://patchwork.freedesktop.org/series/86693/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
852e50fbb083 proc: Show GPU runtimes
-:46: WARNING:SYMBOLIC_PERMS: Symbolic permissions 'S_IRUGO' are not preferred. 
Consider using octal permissions '0444'.
#46: FILE: fs/proc/base.c:3269:
+   ONE("gpu", S_IRUGO, proc_pid_gpu),

-:54: WARNING:SYMBOLIC_PERMS: Symbolic permissions 'S_IRUGO' are not preferred. 
Consider using octal permissions '0444'.
#54: FILE: fs/proc/base.c:3602:
+   ONE("gpu", S_IRUGO, proc_pid_gpu),

-:59: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#59: 
new file mode 100644

total: 0 errors, 3 warnings, 0 checks, 149 lines checked
b8f1256bd5ba drm/i915: Look up clients by pid
49cb9e5c8e5a drm/i915/gt: Export device and per-process runtimes via procfs
-:56: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#56: 
new file mode 100644

-:80: WARNING:CONSTANT_COMPARISON: Comparisons should place the constant on the 
right side of the test
#80: FILE: drivers/gpu/drm/i915/gt/intel_gt_proc.c:20:
+   BUILD_BUG_ON(MAX_ENGINE_CLASS >= ARRAY_SIZE(rt->channel));

total: 0 errors, 2 warnings, 0 checks, 125 lines checked


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [v2,1/2] drm/i915/selftests: Restore previous heartbeat interval

2021-02-04 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/2] drm/i915/selftests: Restore previous 
heartbeat interval
URL   : https://patchwork.freedesktop.org/series/86689/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9730 -> Patchwork_19585


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19585 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19585, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

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

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@gem_exec_parallel@engines@contexts:
- fi-cfl-8109u:   [PASS][1] -> [FAIL][2] +1 similar issue
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-cfl-8109u/igt@gem_exec_parallel@engi...@contexts.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19585/fi-cfl-8109u/igt@gem_exec_parallel@engi...@contexts.html
- fi-kbl-7500u:   [PASS][3] -> [FAIL][4] +1 similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-kbl-7500u/igt@gem_exec_parallel@engi...@contexts.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19585/fi-kbl-7500u/igt@gem_exec_parallel@engi...@contexts.html
- fi-icl-u2:  [PASS][5] -> [FAIL][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-icl-u2/igt@gem_exec_parallel@engi...@contexts.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19585/fi-icl-u2/igt@gem_exec_parallel@engi...@contexts.html
- fi-bxt-dsi: [PASS][7] -> [FAIL][8] +1 similar issue
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-bxt-dsi/igt@gem_exec_parallel@engi...@contexts.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19585/fi-bxt-dsi/igt@gem_exec_parallel@engi...@contexts.html
- fi-skl-6600u:   [PASS][9] -> [FAIL][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-skl-6600u/igt@gem_exec_parallel@engi...@contexts.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19585/fi-skl-6600u/igt@gem_exec_parallel@engi...@contexts.html
- fi-cfl-guc: [PASS][11] -> [FAIL][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-cfl-guc/igt@gem_exec_parallel@engi...@contexts.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19585/fi-cfl-guc/igt@gem_exec_parallel@engi...@contexts.html
- fi-glk-dsi: [PASS][13] -> [FAIL][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-glk-dsi/igt@gem_exec_parallel@engi...@contexts.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19585/fi-glk-dsi/igt@gem_exec_parallel@engi...@contexts.html
- fi-kbl-x1275:   [PASS][15] -> [FAIL][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-kbl-x1275/igt@gem_exec_parallel@engi...@contexts.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19585/fi-kbl-x1275/igt@gem_exec_parallel@engi...@contexts.html

  * igt@gem_exec_parallel@engines@fds:
- fi-apl-guc: [PASS][17] -> [FAIL][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-apl-guc/igt@gem_exec_parallel@engi...@fds.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19585/fi-apl-guc/igt@gem_exec_parallel@engi...@fds.html

  * igt@gem_exec_parallel@engines@userptr:
- fi-cfl-8109u:   [PASS][19] -> [INCOMPLETE][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-cfl-8109u/igt@gem_exec_parallel@engi...@userptr.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19585/fi-cfl-8109u/igt@gem_exec_parallel@engi...@userptr.html

  * igt@i915_selftest@live@gem_contexts:
- fi-tgl-u2:  [PASS][21] -> [DMESG-FAIL][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-tgl-u2/igt@i915_selftest@live@gem_contexts.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19585/fi-tgl-u2/igt@i915_selftest@live@gem_contexts.html
- fi-skl-guc: [PASS][23] -> [DMESG-FAIL][24]
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-skl-guc/igt@i915_selftest@live@gem_contexts.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19585/fi-skl-guc/igt@i915_selftest@live@gem_contexts.html
- fi-kbl-guc: [PASS][25] -> [DMESG-FAIL][26]
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9730/fi-kbl-guc/igt@i915_selftest@live@gem_contexts.html
   [26]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19585/fi-kbl-guc/igt@i915_selftest@live@gem_contexts.html
- fi-kbl-x1275:   [PASS][27] -> [DMESG-FAIL][28]
   [27]: 

Re: [Intel-gfx] [PATCH V2] drm/i915/jsl: Disable cursor clock gating in HDR mode

2021-02-04 Thread Surendrakumar Upadhyay, TejaskumarX



> -Original Message-
> From: Intel-gfx  On Behalf Of
> Surendrakumar Upadhyay, TejaskumarX
> Sent: 30 November 2020 21:21
> To: Souza, Jose ; intel-gfx@lists.freedesktop.org
> Cc: Pandey, Hariom 
> Subject: Re: [Intel-gfx] [PATCH V2] drm/i915/jsl: Disable cursor clock gating 
> in
> HDR mode
> 
> 
> 
> > -Original Message-
> > From: Souza, Jose 
> > Sent: 03 November 2020 05:32
> > To: Surendrakumar Upadhyay, TejaskumarX
> > ; intel-
> > g...@lists.freedesktop.org
> > Cc: Pandey, Hariom 
> > Subject: Re: [PATCH V2] drm/i915/jsl: Disable cursor clock gating in
> > HDR mode
> >
> > On Mon, 2020-11-02 at 13:09 +0530, Tejas Upadhyay wrote:
> > > Display underrun in HDR mode when cursor is enabled.
> > > RTL fix will be implemented CLKGATE_DIS_PSL_A bit 28-46520h.
> > > As per W/A 1604331009, Disable cursor clock gating in HDR mode.
> > >
> > > Bspec : 33451
> > >
> > > Changes since V1:
> > > - Modified way CLKGATE_DIS_PSL bit 28 was modified
> > >
> > > Cc: Souza Jose 
> > > Signed-off-by: Tejas Upadhyay
> > > 
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_display.c | 28
> 
> > >  drivers/gpu/drm/i915/i915_reg.h  |  5 
> > >  2 files changed, 33 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > > b/drivers/gpu/drm/i915/display/intel_display.c
> > > index cddbda5303ff..b132585d9e78 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > > @@ -541,6 +541,15 @@ icl_wa_scalerclkgating(struct drm_i915_private
> > *dev_priv, enum pipe pipe,
> > > intel_de_read(dev_priv, CLKGATE_DIS_PSL(pipe)) &
> > > ~DPFR_GATING_DIS);  }
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > +/* Wa_1604331009:jsl */
> > > +static void
> > > +jsl_wa_cursorclkgating(struct drm_i915_private *dev_priv, enum pipe
> > pipe,
> > > +   bool enable)
> >
> > if this is a gen11 WA why naming as jsl? also include in the comment
> > icl and ehl.
> >
> > > +{
> > > +intel_de_rmw(dev_priv, CLKGATE_DIS_PSL(pipe),
> > > + CURSOR_GATING_DIS, enable ? CURSOR_GATING_DIS : 0); }
> > > +
> > >  static bool
> > >  needs_modeset(const struct intel_crtc_state *state)  { @@ -6637,6
> > > +6646,16 @@ static bool needs_scalerclk_wa(const struct
> > > intel_crtc_state *crtc_state)  return false;  }
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > +static bool needs_cursorclk_wa(const struct intel_crtc_state
> > > +*crtc_state) { struct drm_i915_private *dev_priv =
> > > +to_i915(crtc_state->uapi.crtc->dev);
> >
> > line break here
> >
> > > +/* Wa_1604331009:jsl */
> > > +if (crtc_state->active_planes & icl_hdr_plane_mask() &&
> > > +IS_GEN(dev_priv, 11))
> > > +return true;
> >
> > line break here
> >
> > > +return false;
> > > +}
> > > +
> > >  static bool planes_enabling(const struct intel_crtc_state 
> > > *old_crtc_state,
> > >  const struct intel_crtc_state *new_crtc_state)  { @@ -6678,6
> > > +6697,10 @@ static void intel_post_plane_update(struct
> > > intel_atomic_state *state,  if (needs_scalerclk_wa(old_crtc_state) &&
> > >  !needs_scalerclk_wa(new_crtc_state))
> > >  icl_wa_scalerclkgating(dev_priv, pipe, false);
> > > +
> > > +if (needs_cursorclk_wa(old_crtc_state) &&
> > > +!needs_cursorclk_wa(new_crtc_state))
> > > +jsl_wa_cursorclkgating(dev_priv, pipe, false);
> > >  }
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >  static void skl_disable_async_flip_wa(struct intel_atomic_state
> > > *state, @@ -6743,6 +6766,11 @@ static void
> > intel_pre_plane_update(struct intel_atomic_state *state,
> > >  needs_scalerclk_wa(new_crtc_state))
> > >  icl_wa_scalerclkgating(dev_priv, pipe, true);
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > +/* Wa_1604331009:jsl */
> > > +if (!needs_cursorclk_wa(old_crtc_state) &&
> > > +needs_cursorclk_wa(new_crtc_state))
> > > +jsl_wa_cursorclkgating(dev_priv, pipe, true);
> >
> > Like the idea of only enable the WA when a HDR plane is enabled but
> > there is some problems:
> > - never disable the wa
> > - not checking if a cursor plane is also active
> > - calling it in the post and pre 

Re: [Intel-gfx] [PATCH 32/57] drm/i915: Move needs-breadcrumb flags to scheduler

2021-02-04 Thread Chris Wilson
Quoting Tvrtko Ursulin (2021-02-04 15:28:30)
> 
> On 01/02/2021 08:56, Chris Wilson wrote:
> > Whether the scheduler depends on interrupt delivery for forward progress
> > is a property of the scheduler backend not of the underlying engine, so
> > move the flag from inside the engine to i915_sched_engine.
> > 
> > Signed-off-by: Chris Wilson 
> > ---
> >   drivers/gpu/drm/i915/gt/intel_engine.h|  6 ++
> >   drivers/gpu/drm/i915/gt/intel_engine_types.h  | 13 +++--
> >   drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c |  2 +-
> >   drivers/gpu/drm/i915/i915_scheduler_types.h   |  7 +++
> >   4 files changed, 17 insertions(+), 11 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h 
> > b/drivers/gpu/drm/i915/gt/intel_engine.h
> > index ca3a9cb06328..db5419ba1dc8 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_engine.h
> > +++ b/drivers/gpu/drm/i915/gt/intel_engine.h
> > @@ -285,4 +285,10 @@ intel_engine_has_timeslices(struct intel_engine_cs 
> > *engine)
> >   return i915_sched_has_timeslices(intel_engine_get_scheduler(engine));
> >   }
> >   
> > +static inline bool
> > +intel_engine_needs_breadcrumb_tasklet(struct intel_engine_cs *engine)
> > +{
> > + return 
> > i915_sched_needs_breadcrumb_tasklet(intel_engine_get_scheduler(engine));
> > +}
> > +
> >   #endif /* _INTEL_RINGBUFFER_H_ */
> > diff --git a/drivers/gpu/drm/i915/gt/intel_engine_types.h 
> > b/drivers/gpu/drm/i915/gt/intel_engine_types.h
> > index 96a0aec29672..f856bd9b7dae 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_engine_types.h
> > +++ b/drivers/gpu/drm/i915/gt/intel_engine_types.h
> > @@ -442,10 +442,9 @@ struct intel_engine_cs {
> >   #define I915_ENGINE_SUPPORTS_STATS   BIT(1)
> >   #define I915_ENGINE_HAS_PREEMPTION   BIT(2)
> >   #define I915_ENGINE_HAS_SEMAPHORES   BIT(3)
> > -#define I915_ENGINE_NEEDS_BREADCRUMB_TASKLET BIT(4)
> > -#define I915_ENGINE_IS_VIRTUAL   BIT(5)
> > -#define I915_ENGINE_HAS_RELATIVE_MMIO BIT(6)
> > -#define I915_ENGINE_REQUIRES_CMD_PARSER BIT(7)
> > +#define I915_ENGINE_IS_VIRTUAL   BIT(4)
> > +#define I915_ENGINE_HAS_RELATIVE_MMIO BIT(5)
> > +#define I915_ENGINE_REQUIRES_CMD_PARSER BIT(6)
> >   unsigned int flags;
> >   
> >   /*
> > @@ -540,12 +539,6 @@ intel_engine_has_semaphores(const struct 
> > intel_engine_cs *engine)
> >   return engine->flags & I915_ENGINE_HAS_SEMAPHORES;
> >   }
> >   
> > -static inline bool
> > -intel_engine_needs_breadcrumb_tasklet(const struct intel_engine_cs *engine)
> > -{
> > - return engine->flags & I915_ENGINE_NEEDS_BREADCRUMB_TASKLET;
> > -}
> > -
> >   static inline bool
> >   intel_engine_is_virtual(const struct intel_engine_cs *engine)
> >   {
> > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c 
> > b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> > index 887f38fb671f..e8c66d868c59 100644
> > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> > @@ -606,7 +606,6 @@ static void guc_default_vfuncs(struct intel_engine_cs 
> > *engine)
> >   }
> >   engine->set_default_submission = guc_set_default_submission;
> >   
> > - engine->flags |= I915_ENGINE_NEEDS_BREADCRUMB_TASKLET;
> >   engine->flags |= I915_ENGINE_HAS_PREEMPTION;
> >   
> >   /*
> > @@ -656,6 +655,7 @@ int intel_guc_submission_setup(struct intel_engine_cs 
> > *engine)
> >   
> >   tasklet_setup(>sched.tasklet, guc_submission_tasklet);
> >   __set_bit(I915_SCHED_ACTIVE_BIT, >sched.flags);
> > + __set_bit(I915_SCHED_NEEDS_BREADCRUMB_BIT, >sched.flags);
> 
> Bah here my idea from earlier falls apart a bit. Don't know.

On the positive side, we've eliminated this patch by moving the
irq_handler to the engine!
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 30/57] drm/i915: Move timeslicing flag to scheduler

2021-02-04 Thread Chris Wilson
Quoting Tvrtko Ursulin (2021-02-04 15:18:31)
> 
> On 01/02/2021 08:56, Chris Wilson wrote:
> > Whether a scheduler chooses to implement timeslicing is up to it, and
> > not an underlying property of the HW engine. The scheduler does depend
> > on the HW supporting preemption.
> 
> Therefore, continuing on the comment I made in the previous patch, if we 
> had a helper with which engine would request scheduling (setting the 
> tasklet), if it passed in a pointer to itself, scheduler would then be 
> able to inspect if the engine supports preemption and so set its own 
> internal flag. Makes sense? It would require something like:

Actually not keen on pushing the inspection into the core scheduler and
would rather have the backend turn it on for itself. Because it's not
just about the engine supporting preemption, it's about whether or not
the backend wants to bother implement timeslicing itself.

If we skip to the end, it looks like this for execlists:

i915_sched_init(>sched, i915->drm.dev,
engine->name, engine->mask,
_ops, engine);

if (IS_ACTIVE(CONFIG_DRM_I915_TIMESLICE_DURATION) &&
intel_engine_has_preemption(engine))
__set_bit(I915_SCHED_TIMESLICE_BIT, >sched.flags);

if (intel_engine_has_preemption(engine)) {
__set_bit(I915_SCHED_BUSYWAIT_BIT, >sched.flags);
__set_bit(I915_SCHED_PREEMPT_RESET_BIT, >sched.flags);
}

with the virtual scheduler:

ve->base.sched =
i915_sched_create(ve->base.i915->drm.dev,
  ve->base.name,
  ve->base.mask,
  _ops, ve);
if (!ve->base.sched) {
err = -ENOMEM;
goto err_put;
}

ve->base.sched->flags |= sched; /* override submission method */

I think the virtual scheduler suggests that we can't rely on the
scheduler core to dtrt by itself. And if you are still awake by the time
we get to this point, how to avoid ve->base.sched->flags |= sched are
welcome.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 29/57] drm/i915: Move scheduler flags

2021-02-04 Thread Chris Wilson
Quoting Tvrtko Ursulin (2021-02-04 15:14:20)
> 
> On 01/02/2021 08:56, Chris Wilson wrote:
> > Start extracting the scheduling flags from the engine. We begin with its
> > own existence.
> > 
> > Signed-off-by: Chris Wilson 
> > ---
> >   drivers/gpu/drm/i915/gt/intel_engine.h|  6 ++
> >   drivers/gpu/drm/i915/gt/intel_engine_types.h  | 21 +++
> >   .../drm/i915/gt/intel_execlists_submission.c  |  6 +-
> >   .../gpu/drm/i915/gt/uc/intel_guc_submission.c |  2 +-
> >   drivers/gpu/drm/i915/i915_request.h   |  2 +-
> >   drivers/gpu/drm/i915/i915_scheduler.c |  2 +-
> >   drivers/gpu/drm/i915/i915_scheduler_types.h   | 10 +
> >   7 files changed, 31 insertions(+), 18 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h 
> > b/drivers/gpu/drm/i915/gt/intel_engine.h
> > index c530839627bb..4f0163457aed 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_engine.h
> > +++ b/drivers/gpu/drm/i915/gt/intel_engine.h
> > @@ -261,6 +261,12 @@ intel_engine_has_heartbeat(const struct 
> > intel_engine_cs *engine)
> >   return READ_ONCE(engine->props.heartbeat_interval_ms);
> >   }
> >   
> > +static inline bool
> > +intel_engine_has_scheduler(struct intel_engine_cs *engine)
> > +{
> > + return i915_sched_is_active(intel_engine_get_scheduler(engine));
> > +}
> > +
> >   static inline void
> >   intel_engine_kick_scheduler(struct intel_engine_cs *engine)
> >   {
> > diff --git a/drivers/gpu/drm/i915/gt/intel_engine_types.h 
> > b/drivers/gpu/drm/i915/gt/intel_engine_types.h
> > index 6b0bde292916..a3024a0de1de 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_engine_types.h
> > +++ b/drivers/gpu/drm/i915/gt/intel_engine_types.h
> > @@ -440,14 +440,13 @@ struct intel_engine_cs {
> >   
> >   #define I915_ENGINE_USING_CMD_PARSER BIT(0)
> >   #define I915_ENGINE_SUPPORTS_STATS   BIT(1)
> > -#define I915_ENGINE_HAS_SCHEDULERBIT(2)
> > -#define I915_ENGINE_HAS_PREEMPTION   BIT(3)
> > -#define I915_ENGINE_HAS_SEMAPHORES   BIT(4)
> > -#define I915_ENGINE_HAS_TIMESLICES   BIT(5)
> > -#define I915_ENGINE_NEEDS_BREADCRUMB_TASKLET BIT(6)
> > -#define I915_ENGINE_IS_VIRTUAL   BIT(7)
> > -#define I915_ENGINE_HAS_RELATIVE_MMIO BIT(8)
> > -#define I915_ENGINE_REQUIRES_CMD_PARSER BIT(9)
> > +#define I915_ENGINE_HAS_PREEMPTION   BIT(2)
> > +#define I915_ENGINE_HAS_SEMAPHORES   BIT(3)
> > +#define I915_ENGINE_HAS_TIMESLICES   BIT(4)
> > +#define I915_ENGINE_NEEDS_BREADCRUMB_TASKLET BIT(5)
> > +#define I915_ENGINE_IS_VIRTUAL   BIT(6)
> > +#define I915_ENGINE_HAS_RELATIVE_MMIO BIT(7)
> > +#define I915_ENGINE_REQUIRES_CMD_PARSER BIT(8)
> >   unsigned int flags;
> >   
> >   /*
> > @@ -530,12 +529,6 @@ intel_engine_supports_stats(const struct 
> > intel_engine_cs *engine)
> >   return engine->flags & I915_ENGINE_SUPPORTS_STATS;
> >   }
> >   
> > -static inline bool
> > -intel_engine_has_scheduler(const struct intel_engine_cs *engine)
> > -{
> > - return engine->flags & I915_ENGINE_HAS_SCHEDULER;
> > -}
> > -
> >   static inline bool
> >   intel_engine_has_preemption(const struct intel_engine_cs *engine)
> >   {
> > diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c 
> > b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
> > index b1007e560527..3217cb4369ad 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
> > +++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
> > @@ -2913,7 +2913,6 @@ logical_ring_default_vfuncs(struct intel_engine_cs 
> > *engine)
> >*/
> >   }
> >   
> > - engine->flags |= I915_ENGINE_HAS_SCHEDULER;
> >   engine->flags |= I915_ENGINE_SUPPORTS_STATS;
> >   if (!intel_vgpu_active(engine->i915)) {
> >   engine->flags |= I915_ENGINE_HAS_SEMAPHORES;
> > @@ -2981,6 +2980,7 @@ int intel_execlists_submission_setup(struct 
> > intel_engine_cs *engine)
> >   engine->sched.is_executing = execlists_is_executing;
> >   engine->sched.show = execlists_show;
> >   tasklet_setup(>sched.tasklet, execlists_submission_tasklet);
> > + __set_bit(I915_SCHED_ACTIVE_BIT, >sched.flags);
> 
> This feels a bit dodgy - does is stay like this, with the engine setting 
> up both the tasklet and setting the bit directly? Could we say that 
> setting a tasklet via a helper could turn on the bit?

Bare with me for a few more patches. I didn't like it either. I guess I
should move that chunk earlier so we don't have the eyesore and rightful
questions over my sanity.

> > +static inline bool i915_sched_is_active(const struct i915_sched *se)
> > +{
> > + return test_bit(I915_SCHED_ACTIVE_BIT, >flags);
> > +}
> 
> What do you have in mind for the distinction between "has scheduler" and 
> "scheduler is active"?

By the end, we use the i915_scheduler for everything, including legacy
ringbuffer submission for which the i915_scheduler does nothing, as it
cannot support execution reordering.

So there's a scheduler behind every i915_request, but we 

Re: [Intel-gfx] [PATCH] drm/vblank: Avoid storing a timestamp for the same frame twice

2021-02-04 Thread Ville Syrjälä
On Thu, Feb 04, 2021 at 04:32:16PM +0100, Daniel Vetter wrote:
> On Thu, Feb 04, 2021 at 04:04:00AM +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä 
> > 
> > drm_vblank_restore() exists because certain power saving states
> > can clobber the hardware frame counter. The way it does this is
> > by guesstimating how many frames were missed purely based on
> > the difference between the last stored timestamp vs. a newly
> > sampled timestamp.
> > 
> > If we should call this function before a full frame has
> > elapsed since we sampled the last timestamp we would end up
> > with a possibly slightly different timestamp value for the
> > same frame. Currently we will happily overwrite the already
> > stored timestamp for the frame with the new value. This
> > could cause userspace to observe two different timestamps
> > for the same frame (and the timestamp could even go
> > backwards depending on how much error we introduce when
> > correcting the timestamp based on the scanout position).
> > 
> > To avoid that let's not update the stored timestamp unless we're
> > also incrementing the sequence counter. We do still want to update
> > vblank->last with the freshly sampled hw frame counter value so
> > that subsequent vblank irqs/queries can actually use the hw frame
> > counter to determine how many frames have elapsed.
> 
> Hm I'm not getting the reason for why we store the updated hw vblank
> counter?

Because next time a vblank irq happens the code will do:
diff = current_hw_counter - vblank->last

which won't work very well if vblank->last is garbage.

Updating vblank->last is pretty much why drm_vblank_restore()
exists at all.

> There's definitely a race when we grab the hw timestamp at a bad time
> (which can't happen for the irq handler, realistically), so maybe we
> should first adjust that to make sure we never store anything inconsistent
> in the vblank state?

Not sure what race you mean, or what inconsistent thing we store?

> 
> And when we have that we should be able to pull the inc == 0 check out
> into _restore(), including comment. Which I think should be cleaner.
> 
> Or I'm totally off with why you want to store the hw vblank counter?
> 
> > 
> > Cc: Dhinakaran Pandiyan 
> > Cc: Rodrigo Vivi 
> > Cc: Daniel Vetter 
> > Signed-off-by: Ville Syrjälä 
> > ---
> >  drivers/gpu/drm/drm_vblank.c | 11 +++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > index 893165eeddf3..e127a7db2088 100644
> > --- a/drivers/gpu/drm/drm_vblank.c
> > +++ b/drivers/gpu/drm/drm_vblank.c
> > @@ -176,6 +176,17 @@ static void store_vblank(struct drm_device *dev, 
> > unsigned int pipe,
> >  
> > vblank->last = last;
> >  
> > +   /*
> > +* drm_vblank_restore() wants to always update
> > +* vblank->last since we can't trust the frame counter
> > +* across power saving states. But we don't want to alter
> > +* the stored timestamp for the same frame number since
> > +* that would cause userspace to potentially observe two
> > +* different timestamps for the same frame.
> > +*/
> > +   if (vblank_count_inc == 0)
> > +   return;
> > +
> > write_seqlock(>seqlock);
> > vblank->time = t_vblank;
> > atomic64_add(vblank_count_inc, >count);
> > -- 
> > 2.26.2
> > 
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 34/57] drm/i915: Move preempt-reset flag to the scheduler

2021-02-04 Thread Tvrtko Ursulin



On 01/02/2021 08:56, Chris Wilson wrote:

While the HW may support preemption, whether or not the scheduler
enforces preemption by forcibly resetting the current context is
ultimately up to the scheduler.

Signed-off-by: Chris Wilson 
---
  drivers/gpu/drm/i915/gt/intel_engine.h   | 7 ++-
  drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 5 -
  drivers/gpu/drm/i915/i915_scheduler_types.h  | 9 +
  3 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h 
b/drivers/gpu/drm/i915/gt/intel_engine.h
index db5419ba1dc8..33a29623571d 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine.h
@@ -244,12 +244,9 @@ static inline bool intel_engine_uses_guc(const struct 
intel_engine_cs *engine)
  }
  
  static inline bool

-intel_engine_has_preempt_reset(const struct intel_engine_cs *engine)
+intel_engine_has_preempt_reset(struct intel_engine_cs *engine)
  {
-   if (!IS_ACTIVE(CONFIG_DRM_I915_PREEMPT_TIMEOUT))
-   return false;
-
-   return intel_engine_has_preemption(engine);
+   return i915_sched_has_preempt_reset(intel_engine_get_scheduler(engine));
  }
  
  static inline bool

diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c 
b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
index 9245499d2082..7ec33bd73d95 100644
--- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
@@ -2931,9 +2931,12 @@ logical_ring_default_vfuncs(struct intel_engine_cs 
*engine)
__set_bit(I915_SCHED_HAS_TIMESLICES_BIT,
  >sched.flags);
  
-	if (intel_engine_has_preemption(engine))

+   if (intel_engine_has_preemption(engine)) {
__set_bit(I915_SCHED_USE_BUSYWAIT_BIT,
  >sched.flags);
+   __set_bit(I915_SCHED_HAS_PREEMPT_RESET_BIT,
+ >sched.flags);
+   }
  }
  
  static void logical_ring_default_irqs(struct intel_engine_cs *engine)

diff --git a/drivers/gpu/drm/i915/i915_scheduler_types.h 
b/drivers/gpu/drm/i915/i915_scheduler_types.h
index 37475024c0de..7271a0259a56 100644
--- a/drivers/gpu/drm/i915/i915_scheduler_types.h
+++ b/drivers/gpu/drm/i915/i915_scheduler_types.h
@@ -20,6 +20,7 @@ struct i915_request;
  enum {
I915_SCHED_ACTIVE_BIT = 0,
I915_SCHED_HAS_TIMESLICES_BIT,
+   I915_SCHED_HAS_PREEMPT_RESET_BIT,
I915_SCHED_NEEDS_BREADCRUMB_BIT,
I915_SCHED_USE_BUSYWAIT_BIT,
  };
@@ -207,4 +208,12 @@ static inline bool i915_sched_use_busywait(const struct 
i915_sched *se)
return test_bit(I915_SCHED_USE_BUSYWAIT_BIT, >flags);
  }
  
+static inline bool i915_sched_has_preempt_reset(const struct i915_sched *se)

+{
+   if (!IS_ACTIVE(CONFIG_DRM_I915_PREEMPT_TIMEOUT))
+   return false;
+
+   return test_bit(I915_SCHED_HAS_PREEMPT_RESET_BIT, >flags);
+}
+
  #endif /* _I915_SCHEDULER_TYPES_H_ */



Reviewed-by: Tvrtko Ursulin 

Regards,

Tvrtko
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 33/57] drm/i915: Move busywaiting control to the scheduler

2021-02-04 Thread Tvrtko Ursulin



On 01/02/2021 08:56, Chris Wilson wrote:

Busy-waiting is used for preempt-to-busy by schedulers, if they so
choose. Since it is not a property of the engine, but that of the
submission backend, move the flag from out of the engine to
i915_sched_engine.

Signed-off-by: Chris Wilson 
---
  drivers/gpu/drm/i915/gt/gen8_engine_cs.c  |  4 ++--
  .../drm/i915/gt/intel_execlists_submission.c  |  6 +-
  drivers/gpu/drm/i915/gt/selftest_lrc.c| 19 +--
  drivers/gpu/drm/i915/i915_request.h   |  5 +
  drivers/gpu/drm/i915/i915_scheduler_types.h   |  6 ++
  5 files changed, 31 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c 
b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
index cac80af7ad1c..8791e03ebe61 100644
--- a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
@@ -507,7 +507,7 @@ gen8_emit_fini_breadcrumb_tail(struct i915_request *rq, u32 
*cs)
*cs++ = MI_USER_INTERRUPT;
  
  	*cs++ = MI_ARB_ON_OFF | MI_ARB_ENABLE;

-   if (intel_engine_has_semaphores(rq->engine))
+   if (i915_request_use_busywait(rq))
cs = emit_preempt_busywait(rq, cs);
  
  	rq->tail = intel_ring_offset(rq, cs);

@@ -599,7 +599,7 @@ gen12_emit_fini_breadcrumb_tail(struct i915_request *rq, 
u32 *cs)
*cs++ = MI_USER_INTERRUPT;
  
  	*cs++ = MI_ARB_ON_OFF | MI_ARB_ENABLE;

-   if (intel_engine_has_semaphores(rq->engine))
+   if (i915_request_use_busywait(rq))
cs = gen12_emit_preempt_busywait(rq, cs);
  
  	rq->tail = intel_ring_offset(rq, cs);

diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c 
b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
index d4b6d262265a..9245499d2082 100644
--- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
@@ -304,7 +304,7 @@ static bool need_preempt(const struct intel_engine_cs 
*engine,
const struct i915_sched *se = >sched;
int last_prio;
  
-	if (!intel_engine_has_semaphores(engine))

+   if (!i915_sched_use_busywait(se))
return false;
  
  	/*

@@ -2930,6 +2930,10 @@ logical_ring_default_vfuncs(struct intel_engine_cs 
*engine)
intel_engine_has_preemption(engine))
__set_bit(I915_SCHED_HAS_TIMESLICES_BIT,
  >sched.flags);
+
+   if (intel_engine_has_preemption(engine))
+   __set_bit(I915_SCHED_USE_BUSYWAIT_BIT,
+ >sched.flags);


I checked GuC is not using this which was my initial concern.


  }
  
  static void logical_ring_default_irqs(struct intel_engine_cs *engine)

diff --git a/drivers/gpu/drm/i915/gt/selftest_lrc.c 
b/drivers/gpu/drm/i915/gt/selftest_lrc.c
index 279091e41b41..6d73add47109 100644
--- a/drivers/gpu/drm/i915/gt/selftest_lrc.c
+++ b/drivers/gpu/drm/i915/gt/selftest_lrc.c
@@ -679,9 +679,11 @@ static int live_lrc_gpr(void *arg)
if (err)
goto err;
  
-		err = __live_lrc_gpr(engine, scratch, true);

-   if (err)
-   goto err;
+   if (intel_engine_has_preemption(engine)) {
+   err = __live_lrc_gpr(engine, scratch, true);
+   if (err)
+   goto err;
+   }
  
  err:

st_engine_heartbeat_enable(engine);
@@ -859,9 +861,11 @@ static int live_lrc_timestamp(void *arg)
if (err)
break;
  
-			err = __lrc_timestamp(, true);

-   if (err)
-   break;
+   if (intel_engine_has_preemption(data.engine)) {
+   err = __lrc_timestamp(, true);
+   if (err)
+   break;
+   }
}
  
  err:

@@ -1508,6 +1512,9 @@ static int live_lrc_isolation(void *arg)
skip_isolation(engine))
continue;
  
+		if (!intel_engine_has_preemption(engine))

+   continue;
+
intel_engine_pm_get(engine);
for (i = 0; i < ARRAY_SIZE(poison); i++) {
int result;
diff --git a/drivers/gpu/drm/i915/i915_request.h 
b/drivers/gpu/drm/i915/i915_request.h
index 8eea25cb043e..7c29d33e7d51 100644
--- a/drivers/gpu/drm/i915/i915_request.h
+++ b/drivers/gpu/drm/i915/i915_request.h
@@ -642,4 +642,9 @@ static inline bool i915_request_use_semaphores(const struct 
i915_request *rq)
return intel_engine_has_semaphores(rq->engine);
  }
  
+static inline bool i915_request_use_busywait(const struct i915_request *rq)

+{
+   return i915_sched_use_busywait(i915_request_get_scheduler(rq));
+}
+
  #endif /* I915_REQUEST_H */
diff --git a/drivers/gpu/drm/i915/i915_scheduler_types.h 
b/drivers/gpu/drm/i915/i915_scheduler_types.h
index 

[Intel-gfx] [PATCH] drm/i915: Make psr_safest_params and enable_psr2_sel_fetch parameters read only

2021-02-04 Thread José Roberto de Souza
By mistake those 2 parameters were defined as read and write in the
.h file while in the .c file it is read only.
The intention here was to be read only to avoid the need of additional
handling.

Cc: Gwan-gyeong Mun 
Cc: Petri Latvala 
Signed-off-by: José Roberto de Souza 
---
 drivers/gpu/drm/i915/i915_params.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_params.h 
b/drivers/gpu/drm/i915/i915_params.h
index f031966af5b7..48f47e44e848 100644
--- a/drivers/gpu/drm/i915/i915_params.h
+++ b/drivers/gpu/drm/i915/i915_params.h
@@ -54,8 +54,8 @@ struct drm_printer;
param(int, enable_dc, -1, 0400) \
param(int, enable_fbc, -1, 0600) \
param(int, enable_psr, -1, 0600) \
-   param(bool, psr_safest_params, false, 0600) \
-   param(bool, enable_psr2_sel_fetch, false, 0600) \
+   param(bool, psr_safest_params, false, 0400) \
+   param(bool, enable_psr2_sel_fetch, false, 0400) \
param(int, disable_power_well, -1, 0400) \
param(int, enable_ips, 1, 0600) \
param(int, invert_brightness, 0, 0600) \
-- 
2.30.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/vblank: Avoid storing a timestamp for the same frame twice

2021-02-04 Thread Daniel Vetter
On Thu, Feb 04, 2021 at 04:04:00AM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> drm_vblank_restore() exists because certain power saving states
> can clobber the hardware frame counter. The way it does this is
> by guesstimating how many frames were missed purely based on
> the difference between the last stored timestamp vs. a newly
> sampled timestamp.
> 
> If we should call this function before a full frame has
> elapsed since we sampled the last timestamp we would end up
> with a possibly slightly different timestamp value for the
> same frame. Currently we will happily overwrite the already
> stored timestamp for the frame with the new value. This
> could cause userspace to observe two different timestamps
> for the same frame (and the timestamp could even go
> backwards depending on how much error we introduce when
> correcting the timestamp based on the scanout position).
> 
> To avoid that let's not update the stored timestamp unless we're
> also incrementing the sequence counter. We do still want to update
> vblank->last with the freshly sampled hw frame counter value so
> that subsequent vblank irqs/queries can actually use the hw frame
> counter to determine how many frames have elapsed.

Hm I'm not getting the reason for why we store the updated hw vblank
counter?

There's definitely a race when we grab the hw timestamp at a bad time
(which can't happen for the irq handler, realistically), so maybe we
should first adjust that to make sure we never store anything inconsistent
in the vblank state?

And when we have that we should be able to pull the inc == 0 check out
into _restore(), including comment. Which I think should be cleaner.

Or I'm totally off with why you want to store the hw vblank counter?

> 
> Cc: Dhinakaran Pandiyan 
> Cc: Rodrigo Vivi 
> Cc: Daniel Vetter 
> Signed-off-by: Ville Syrjälä 
> ---
>  drivers/gpu/drm/drm_vblank.c | 11 +++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index 893165eeddf3..e127a7db2088 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -176,6 +176,17 @@ static void store_vblank(struct drm_device *dev, 
> unsigned int pipe,
>  
>   vblank->last = last;
>  
> + /*
> +  * drm_vblank_restore() wants to always update
> +  * vblank->last since we can't trust the frame counter
> +  * across power saving states. But we don't want to alter
> +  * the stored timestamp for the same frame number since
> +  * that would cause userspace to potentially observe two
> +  * different timestamps for the same frame.
> +  */
> + if (vblank_count_inc == 0)
> + return;
> +
>   write_seqlock(>seqlock);
>   vblank->time = t_vblank;
>   atomic64_add(vblank_count_inc, >count);
> -- 
> 2.26.2
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 32/57] drm/i915: Move needs-breadcrumb flags to scheduler

2021-02-04 Thread Tvrtko Ursulin



On 01/02/2021 08:56, Chris Wilson wrote:

Whether the scheduler depends on interrupt delivery for forward progress
is a property of the scheduler backend not of the underlying engine, so
move the flag from inside the engine to i915_sched_engine.

Signed-off-by: Chris Wilson 
---
  drivers/gpu/drm/i915/gt/intel_engine.h|  6 ++
  drivers/gpu/drm/i915/gt/intel_engine_types.h  | 13 +++--
  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c |  2 +-
  drivers/gpu/drm/i915/i915_scheduler_types.h   |  7 +++
  4 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h 
b/drivers/gpu/drm/i915/gt/intel_engine.h
index ca3a9cb06328..db5419ba1dc8 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine.h
@@ -285,4 +285,10 @@ intel_engine_has_timeslices(struct intel_engine_cs *engine)
return i915_sched_has_timeslices(intel_engine_get_scheduler(engine));
  }
  
+static inline bool

+intel_engine_needs_breadcrumb_tasklet(struct intel_engine_cs *engine)
+{
+   return 
i915_sched_needs_breadcrumb_tasklet(intel_engine_get_scheduler(engine));
+}
+
  #endif /* _INTEL_RINGBUFFER_H_ */
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_types.h 
b/drivers/gpu/drm/i915/gt/intel_engine_types.h
index 96a0aec29672..f856bd9b7dae 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_types.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine_types.h
@@ -442,10 +442,9 @@ struct intel_engine_cs {
  #define I915_ENGINE_SUPPORTS_STATS   BIT(1)
  #define I915_ENGINE_HAS_PREEMPTION   BIT(2)
  #define I915_ENGINE_HAS_SEMAPHORES   BIT(3)
-#define I915_ENGINE_NEEDS_BREADCRUMB_TASKLET BIT(4)
-#define I915_ENGINE_IS_VIRTUAL   BIT(5)
-#define I915_ENGINE_HAS_RELATIVE_MMIO BIT(6)
-#define I915_ENGINE_REQUIRES_CMD_PARSER BIT(7)
+#define I915_ENGINE_IS_VIRTUAL   BIT(4)
+#define I915_ENGINE_HAS_RELATIVE_MMIO BIT(5)
+#define I915_ENGINE_REQUIRES_CMD_PARSER BIT(6)
unsigned int flags;
  
  	/*

@@ -540,12 +539,6 @@ intel_engine_has_semaphores(const struct intel_engine_cs 
*engine)
return engine->flags & I915_ENGINE_HAS_SEMAPHORES;
  }
  
-static inline bool

-intel_engine_needs_breadcrumb_tasklet(const struct intel_engine_cs *engine)
-{
-   return engine->flags & I915_ENGINE_NEEDS_BREADCRUMB_TASKLET;
-}
-
  static inline bool
  intel_engine_is_virtual(const struct intel_engine_cs *engine)
  {
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
index 887f38fb671f..e8c66d868c59 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
@@ -606,7 +606,6 @@ static void guc_default_vfuncs(struct intel_engine_cs 
*engine)
}
engine->set_default_submission = guc_set_default_submission;
  
-	engine->flags |= I915_ENGINE_NEEDS_BREADCRUMB_TASKLET;

engine->flags |= I915_ENGINE_HAS_PREEMPTION;
  
  	/*

@@ -656,6 +655,7 @@ int intel_guc_submission_setup(struct intel_engine_cs 
*engine)
  
  	tasklet_setup(>sched.tasklet, guc_submission_tasklet);

__set_bit(I915_SCHED_ACTIVE_BIT, >sched.flags);
+   __set_bit(I915_SCHED_NEEDS_BREADCRUMB_BIT, >sched.flags);


Bah here my idea from earlier falls apart a bit. Don't know.

  
  	guc_default_vfuncs(engine);

guc_default_irqs(engine);
diff --git a/drivers/gpu/drm/i915/i915_scheduler_types.h 
b/drivers/gpu/drm/i915/i915_scheduler_types.h
index dfb29b8c2bee..b4a0e4e26bfd 100644
--- a/drivers/gpu/drm/i915/i915_scheduler_types.h
+++ b/drivers/gpu/drm/i915/i915_scheduler_types.h
@@ -20,6 +20,7 @@ struct i915_request;
  enum {
I915_SCHED_ACTIVE_BIT = 0,
I915_SCHED_HAS_TIMESLICES_BIT,
+   I915_SCHED_NEEDS_BREADCRUMB_BIT,
  };
  
  /**

@@ -194,4 +195,10 @@ static inline bool i915_sched_has_timeslices(const struct 
i915_sched *se)
return test_bit(I915_SCHED_HAS_TIMESLICES_BIT, >flags);
  }
  
+static inline bool

+i915_sched_needs_breadcrumb_tasklet(const struct i915_sched *se)
+{
+   return test_bit(I915_SCHED_NEEDS_BREADCRUMB_BIT, >flags);
+}
+
  #endif /* _I915_SCHEDULER_TYPES_H_ */



Reviewed-by: Tvrtko Ursulin 

Regards,

Tvrtko
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 31/57] drm/i915/gt: Declare when we enabled timeslicing

2021-02-04 Thread Tvrtko Ursulin



On 01/02/2021 08:56, Chris Wilson wrote:

Let userspace know if they can trust timeslicing by including it as part
of the I915_PARAM_HAS_SCHEDULER::I915_SCHEDULER_CAP_TIMESLICING

v2: Only declare timeslicing if we can safely preempt userspace.

Fixes: 8ee36e048c98 ("drm/i915/execlists: Minimalistic timeslicing")
Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
  drivers/gpu/drm/i915/gt/intel_engine_user.c | 26 +++--
  include/uapi/drm/i915_drm.h |  1 +
  2 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine_user.c 
b/drivers/gpu/drm/i915/gt/intel_engine_user.c
index 64eccdf32a22..50911fbe6368 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_user.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_user.c
@@ -90,13 +90,17 @@ static void sort_engines(struct drm_i915_private *i915,
  static void set_scheduler_caps(struct drm_i915_private *i915)
  {
static const struct {
-   u8 engine;
-   u8 sched;
-   } map[] = {
+   u8 flag;
+   u8 cap;
+   } engine_map[] = {
  #define MAP(x, y) { ilog2(I915_ENGINE_##x), ilog2(I915_SCHEDULER_CAP_##y) }
MAP(HAS_PREEMPTION, PREEMPTION),
MAP(HAS_SEMAPHORES, SEMAPHORES),
MAP(SUPPORTS_STATS, ENGINE_BUSY_STATS),
+#undef MAP
+   }, sched_map[] = {
+#define MAP(x, y) { ilog2(I915_SCHED_##x), ilog2(I915_SCHEDULER_CAP_##y) }
+   MAP(HAS_TIMESLICES_BIT, TIMESLICING),
  #undef MAP
};
struct intel_engine_cs *engine;
@@ -105,6 +109,7 @@ static void set_scheduler_caps(struct drm_i915_private 
*i915)
enabled = 0;
disabled = 0;
for_each_uabi_engine(engine, i915) { /* all engines must agree! */
+   struct i915_sched *se = intel_engine_get_scheduler(engine);
int i;
  
  		if (intel_engine_has_scheduler(engine))

@@ -114,11 +119,18 @@ static void set_scheduler_caps(struct drm_i915_private 
*i915)
disabled |= (I915_SCHEDULER_CAP_ENABLED |
 I915_SCHEDULER_CAP_PRIORITY);
  
-		for (i = 0; i < ARRAY_SIZE(map); i++) {

-   if (engine->flags & BIT(map[i].engine))
-   enabled |= BIT(map[i].sched);
+   for (i = 0; i < ARRAY_SIZE(engine_map); i++) {
+   if (engine->flags & BIT(engine_map[i].flag))
+   enabled |= BIT(engine_map[i].cap);
else
-   disabled |= BIT(map[i].sched);
+   disabled |= BIT(engine_map[i].cap);
+   }
+
+   for (i = 0; i < ARRAY_SIZE(sched_map); i++) {
+   if (se->flags & BIT(sched_map[i].flag))
+   enabled |= BIT(sched_map[i].cap);
+   else
+   disabled |= BIT(sched_map[i].cap);
}
}
  
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h

index 1987e2ea79a3..cda0f391d965 100644
--- a/include/uapi/drm/i915_drm.h
+++ b/include/uapi/drm/i915_drm.h
@@ -524,6 +524,7 @@ typedef struct drm_i915_irq_wait {
  #define   I915_SCHEDULER_CAP_PREEMPTION   (1ul << 2)
  #define   I915_SCHEDULER_CAP_SEMAPHORES   (1ul << 3)
  #define   I915_SCHEDULER_CAP_ENGINE_BUSY_STATS(1ul << 4)
+#define   I915_SCHEDULER_CAP_TIMESLICING   (1ul << 5)
  
  #define I915_PARAM_HUC_STATUS		 42
  



Reviewed-by: Tvrtko Ursulin 

Regards,

Tvrtko
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 30/57] drm/i915: Move timeslicing flag to scheduler

2021-02-04 Thread Tvrtko Ursulin



On 01/02/2021 08:56, Chris Wilson wrote:

Whether a scheduler chooses to implement timeslicing is up to it, and
not an underlying property of the HW engine. The scheduler does depend
on the HW supporting preemption.


Therefore, continuing on the comment I made in the previous patch, if we 
had a helper with which engine would request scheduling (setting the 
tasklet), if it passed in a pointer to itself, scheduler would then be 
able to inspect if the engine supports preemption and so set its own 
internal flag. Makes sense? It would require something like:


  i915_sched_enable_scheduling(se, engine, tasklet)

Or something like that if my memory still holds.

Regards,

Tvrtko



Signed-off-by: Chris Wilson 
---
  drivers/gpu/drm/i915/gt/intel_engine.h |  6 ++
  drivers/gpu/drm/i915/gt/intel_engine_types.h   | 18 --
  .../drm/i915/gt/intel_execlists_submission.c   |  9 ++---
  drivers/gpu/drm/i915/gt/selftest_execlists.c   |  2 +-
  drivers/gpu/drm/i915/i915_scheduler_types.h| 10 ++
  5 files changed, 27 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h 
b/drivers/gpu/drm/i915/gt/intel_engine.h
index 4f0163457aed..ca3a9cb06328 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine.h
@@ -279,4 +279,10 @@ intel_engine_flush_scheduler(struct intel_engine_cs 
*engine)
i915_sched_flush(intel_engine_get_scheduler(engine));
  }
  
+static inline bool

+intel_engine_has_timeslices(struct intel_engine_cs *engine)
+{
+   return i915_sched_has_timeslices(intel_engine_get_scheduler(engine));
+}
+
  #endif /* _INTEL_RINGBUFFER_H_ */
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_types.h 
b/drivers/gpu/drm/i915/gt/intel_engine_types.h
index a3024a0de1de..96a0aec29672 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_types.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine_types.h
@@ -442,11 +442,10 @@ struct intel_engine_cs {
  #define I915_ENGINE_SUPPORTS_STATS   BIT(1)
  #define I915_ENGINE_HAS_PREEMPTION   BIT(2)
  #define I915_ENGINE_HAS_SEMAPHORES   BIT(3)
-#define I915_ENGINE_HAS_TIMESLICES   BIT(4)
-#define I915_ENGINE_NEEDS_BREADCRUMB_TASKLET BIT(5)
-#define I915_ENGINE_IS_VIRTUAL   BIT(6)
-#define I915_ENGINE_HAS_RELATIVE_MMIO BIT(7)
-#define I915_ENGINE_REQUIRES_CMD_PARSER BIT(8)
+#define I915_ENGINE_NEEDS_BREADCRUMB_TASKLET BIT(4)
+#define I915_ENGINE_IS_VIRTUAL   BIT(5)
+#define I915_ENGINE_HAS_RELATIVE_MMIO BIT(6)
+#define I915_ENGINE_REQUIRES_CMD_PARSER BIT(7)
unsigned int flags;
  
  	/*

@@ -541,15 +540,6 @@ intel_engine_has_semaphores(const struct intel_engine_cs 
*engine)
return engine->flags & I915_ENGINE_HAS_SEMAPHORES;
  }
  
-static inline bool

-intel_engine_has_timeslices(const struct intel_engine_cs *engine)
-{
-   if (!IS_ACTIVE(CONFIG_DRM_I915_TIMESLICE_DURATION))
-   return false;
-
-   return engine->flags & I915_ENGINE_HAS_TIMESLICES;
-}
-
  static inline bool
  intel_engine_needs_breadcrumb_tasklet(const struct intel_engine_cs *engine)
  {
diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c 
b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
index 3217cb4369ad..d4b6d262265a 100644
--- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
@@ -1023,7 +1023,7 @@ static bool needs_timeslice(const struct intel_engine_cs 
*engine,
  {
const struct i915_sched *se = >sched;
  
-	if (!intel_engine_has_timeslices(engine))

+   if (!i915_sched_has_timeslices(se))
return false;
  
  	/* If not currently active, or about to switch, wait for next event */

@@ -2918,8 +2918,6 @@ logical_ring_default_vfuncs(struct intel_engine_cs 
*engine)
engine->flags |= I915_ENGINE_HAS_SEMAPHORES;
if (can_preempt(engine)) {
engine->flags |= I915_ENGINE_HAS_PREEMPTION;
-   if (IS_ACTIVE(CONFIG_DRM_I915_TIMESLICE_DURATION))
-   engine->flags |= I915_ENGINE_HAS_TIMESLICES;
}
}
  
@@ -2927,6 +2925,11 @@ logical_ring_default_vfuncs(struct intel_engine_cs *engine)

engine->emit_bb_start = gen8_emit_bb_start;
else
engine->emit_bb_start = gen8_emit_bb_start_noarb;
+
+   if (IS_ACTIVE(CONFIG_DRM_I915_TIMESLICE_DURATION) &&
+   intel_engine_has_preemption(engine))
+   __set_bit(I915_SCHED_HAS_TIMESLICES_BIT,
+ >sched.flags);
  }
  
  static void logical_ring_default_irqs(struct intel_engine_cs *engine)

diff --git a/drivers/gpu/drm/i915/gt/selftest_execlists.c 
b/drivers/gpu/drm/i915/gt/selftest_execlists.c
index cfc0f4b9fbc5..147cbfd6dec0 100644
--- a/drivers/gpu/drm/i915/gt/selftest_execlists.c
+++ b/drivers/gpu/drm/i915/gt/selftest_execlists.c
@@ -3825,7 +3825,7 @@ static unsigned int
  __select_siblings(struct intel_gt *gt,
 

Re: [Intel-gfx] [PATCH 29/57] drm/i915: Move scheduler flags

2021-02-04 Thread Tvrtko Ursulin



On 01/02/2021 08:56, Chris Wilson wrote:

Start extracting the scheduling flags from the engine. We begin with its
own existence.

Signed-off-by: Chris Wilson 
---
  drivers/gpu/drm/i915/gt/intel_engine.h|  6 ++
  drivers/gpu/drm/i915/gt/intel_engine_types.h  | 21 +++
  .../drm/i915/gt/intel_execlists_submission.c  |  6 +-
  .../gpu/drm/i915/gt/uc/intel_guc_submission.c |  2 +-
  drivers/gpu/drm/i915/i915_request.h   |  2 +-
  drivers/gpu/drm/i915/i915_scheduler.c |  2 +-
  drivers/gpu/drm/i915/i915_scheduler_types.h   | 10 +
  7 files changed, 31 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h 
b/drivers/gpu/drm/i915/gt/intel_engine.h
index c530839627bb..4f0163457aed 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine.h
@@ -261,6 +261,12 @@ intel_engine_has_heartbeat(const struct intel_engine_cs 
*engine)
return READ_ONCE(engine->props.heartbeat_interval_ms);
  }
  
+static inline bool

+intel_engine_has_scheduler(struct intel_engine_cs *engine)
+{
+   return i915_sched_is_active(intel_engine_get_scheduler(engine));
+}
+
  static inline void
  intel_engine_kick_scheduler(struct intel_engine_cs *engine)
  {
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_types.h 
b/drivers/gpu/drm/i915/gt/intel_engine_types.h
index 6b0bde292916..a3024a0de1de 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_types.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine_types.h
@@ -440,14 +440,13 @@ struct intel_engine_cs {
  
  #define I915_ENGINE_USING_CMD_PARSER BIT(0)

  #define I915_ENGINE_SUPPORTS_STATS   BIT(1)
-#define I915_ENGINE_HAS_SCHEDULERBIT(2)
-#define I915_ENGINE_HAS_PREEMPTION   BIT(3)
-#define I915_ENGINE_HAS_SEMAPHORES   BIT(4)
-#define I915_ENGINE_HAS_TIMESLICES   BIT(5)
-#define I915_ENGINE_NEEDS_BREADCRUMB_TASKLET BIT(6)
-#define I915_ENGINE_IS_VIRTUAL   BIT(7)
-#define I915_ENGINE_HAS_RELATIVE_MMIO BIT(8)
-#define I915_ENGINE_REQUIRES_CMD_PARSER BIT(9)
+#define I915_ENGINE_HAS_PREEMPTION   BIT(2)
+#define I915_ENGINE_HAS_SEMAPHORES   BIT(3)
+#define I915_ENGINE_HAS_TIMESLICES   BIT(4)
+#define I915_ENGINE_NEEDS_BREADCRUMB_TASKLET BIT(5)
+#define I915_ENGINE_IS_VIRTUAL   BIT(6)
+#define I915_ENGINE_HAS_RELATIVE_MMIO BIT(7)
+#define I915_ENGINE_REQUIRES_CMD_PARSER BIT(8)
unsigned int flags;
  
  	/*

@@ -530,12 +529,6 @@ intel_engine_supports_stats(const struct intel_engine_cs 
*engine)
return engine->flags & I915_ENGINE_SUPPORTS_STATS;
  }
  
-static inline bool

-intel_engine_has_scheduler(const struct intel_engine_cs *engine)
-{
-   return engine->flags & I915_ENGINE_HAS_SCHEDULER;
-}
-
  static inline bool
  intel_engine_has_preemption(const struct intel_engine_cs *engine)
  {
diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c 
b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
index b1007e560527..3217cb4369ad 100644
--- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
@@ -2913,7 +2913,6 @@ logical_ring_default_vfuncs(struct intel_engine_cs 
*engine)
 */
}
  
-	engine->flags |= I915_ENGINE_HAS_SCHEDULER;

engine->flags |= I915_ENGINE_SUPPORTS_STATS;
if (!intel_vgpu_active(engine->i915)) {
engine->flags |= I915_ENGINE_HAS_SEMAPHORES;
@@ -2981,6 +2980,7 @@ int intel_execlists_submission_setup(struct 
intel_engine_cs *engine)
engine->sched.is_executing = execlists_is_executing;
engine->sched.show = execlists_show;
tasklet_setup(>sched.tasklet, execlists_submission_tasklet);
+   __set_bit(I915_SCHED_ACTIVE_BIT, >sched.flags);


This feels a bit dodgy - does is stay like this, with the engine setting 
up both the tasklet and setting the bit directly? Could we say that 
setting a tasklet via a helper could turn on the bit?



timer_setup(>execlists.timer, execlists_timeslice, 0);
timer_setup(>execlists.preempt, execlists_preempt, 0);
  
@@ -3386,6 +3386,7 @@ intel_execlists_create_virtual(struct intel_engine_cs **siblings,

   unsigned int count)
  {
struct virtual_engine *ve;
+   unsigned long sched;
unsigned int n;
int err;
  
@@ -3444,6 +3445,7 @@ intel_execlists_create_virtual(struct intel_engine_cs **siblings,

goto err_put;
}
  
+	sched = ~0U;

for (n = 0; n < count; n++) {
struct intel_engine_cs *sibling = siblings[n];
  
@@ -3473,6 +3475,7 @@ intel_execlists_create_virtual(struct intel_engine_cs **siblings,
  
  		ve->siblings[ve->num_siblings++] = sibling;

ve->base.mask |= sibling->mask;
+   sched &= sibling->sched.flags;
  
  		/*

 * All physical engines must be compatible for their emission
@@ -3514,6 +3517,7 @@ intel_execlists_create_virtual(struct intel_engine_cs 
**siblings,

Re: [Intel-gfx] [PATCH 28/57] drm/i915: Wrap i915_request_use_semaphores()

2021-02-04 Thread Tvrtko Ursulin



On 01/02/2021 08:56, Chris Wilson wrote:

Wrap the query on whether the backend engine supports us emitting
semaphores to coordinate multiple requests.

Signed-off-by: Chris Wilson 
---
  drivers/gpu/drm/i915/i915_request.c | 2 +-
  drivers/gpu/drm/i915/i915_request.h | 5 +
  2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_request.c 
b/drivers/gpu/drm/i915/i915_request.c
index 459f727b03cd..e7b4c4bc41a6 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -1141,7 +1141,7 @@ __i915_request_await_execution(struct i915_request *to,
 * immediate execution, and so we must wait until it reaches the
 * active slot.
 */
-   if (intel_engine_has_semaphores(to->engine) &&
+   if (i915_request_use_semaphores(to) &&
!i915_request_has_initial_breadcrumb(to)) {
err = __emit_semaphore_wait(to, from, from->fence.seqno - 1);
if (err < 0)
diff --git a/drivers/gpu/drm/i915/i915_request.h 
b/drivers/gpu/drm/i915/i915_request.h
index 8322f308b906..8d9e59e3cdcb 100644
--- a/drivers/gpu/drm/i915/i915_request.h
+++ b/drivers/gpu/drm/i915/i915_request.h
@@ -637,4 +637,9 @@ static inline bool i915_request_is_executing(const struct 
i915_request *rq)
return i915_request_get_scheduler(rq)->is_executing(rq);
  }
  
+static inline bool i915_request_use_semaphores(const struct i915_request *rq)

+{
+   return intel_engine_has_semaphores(rq->engine);
+}
+
  #endif /* I915_REQUEST_H */



Reviewed-by: Tvrtko Ursulin 

Regards,

Tvrtko
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


  1   2   >