[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/tgl: Media decompression support

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915/tgl: Media decompression support
URL   : https://patchwork.freedesktop.org/series/71535/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7660_full -> Patchwork_15961_full


Summary
---

  **SUCCESS**

  No regressions found.

  

New tests
-

  New tests have been introduced between CI_DRM_7660_full and 
Patchwork_15961_full:

### New Piglit tests (7) ###

  * 
spec@arb_vertex_attrib_64bit@execution@vs_in@vs-input-float_float-position-double_dvec4_array2:
- Statuses : 1 fail(s)
- Exec time: [0.13] s

  * 
spec@arb_vertex_attrib_64bit@execution@vs_in@vs-input-float_mat4x3_array3-position-double_dvec2:
- Statuses : 1 fail(s)
- Exec time: [0.14] s

  * 
spec@arb_vertex_attrib_64bit@execution@vs_in@vs-input-int_int_array3-position-double_dmat3x2:
- Statuses : 1 fail(s)
- Exec time: [0.14] s

  * 
spec@arb_vertex_attrib_64bit@execution@vs_in@vs-input-position-double_dvec4_array5-uint_uvec2:
- Statuses : 1 fail(s)
- Exec time: [0.16] s

  * 
spec@glsl-4.20@execution@vs_in@vs-input-double_dmat2_array5-uint_uint-position:
- Statuses : 1 fail(s)
- Exec time: [0.13] s

  * 
spec@glsl-4.20@execution@vs_in@vs-input-float_mat3_array3-double_dmat2-position:
- Statuses : 1 fail(s)
- Exec time: [0.13] s

  * spec@glsl-4.20@execution@vs_in@vs-input-int_ivec3-double_dmat3x2-position:
- Statuses : 1 fail(s)
- Exec time: [0.13] s

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_busy@busy-vcs1:
- shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#112080]) +8 similar 
issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/shard-iclb2/igt@gem_b...@busy-vcs1.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/shard-iclb6/igt@gem_b...@busy-vcs1.html

  * igt@gem_busy@close-race:
- shard-tglb: [PASS][3] -> [INCOMPLETE][4] ([i915#435])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/shard-tglb5/igt@gem_b...@close-race.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/shard-tglb6/igt@gem_b...@close-race.html

  * igt@gem_ctx_isolation@vcs1-clean:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#109276] / [fdo#112080]) 
+1 similar issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/shard-iclb4/igt@gem_ctx_isolat...@vcs1-clean.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/shard-iclb6/igt@gem_ctx_isolat...@vcs1-clean.html

  * igt@gem_eio@reset-stress:
- shard-tglb: [PASS][7] -> [INCOMPLETE][8] ([i915#470])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/shard-tglb8/igt@gem_...@reset-stress.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/shard-tglb5/igt@gem_...@reset-stress.html

  * igt@gem_eio@unwedge-stress:
- shard-snb:  [PASS][9] -> [FAIL][10] ([i915#232])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/shard-snb1/igt@gem_...@unwedge-stress.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/shard-snb5/igt@gem_...@unwedge-stress.html

  * igt@gem_exec_balancer@smoke:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#110854])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/shard-iclb1/igt@gem_exec_balan...@smoke.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/shard-iclb8/igt@gem_exec_balan...@smoke.html

  * igt@gem_exec_gttfill@basic:
- shard-tglb: [PASS][13] -> [INCOMPLETE][14] ([fdo#111593])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/shard-tglb2/igt@gem_exec_gttf...@basic.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/shard-tglb6/igt@gem_exec_gttf...@basic.html

  * igt@gem_exec_schedule@preempt-queue-blt:
- shard-tglb: [PASS][15] -> [INCOMPLETE][16] ([fdo#111677])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/shard-tglb2/igt@gem_exec_sched...@preempt-queue-blt.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/shard-tglb8/igt@gem_exec_sched...@preempt-queue-blt.html

  * igt@gem_exec_schedule@preempt-queue-contexts-render:
- shard-tglb: [PASS][17] -> [INCOMPLETE][18] ([fdo#111606] / 
[fdo#111677]) +1 similar issue
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/shard-tglb6/igt@gem_exec_sched...@preempt-queue-contexts-render.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/shard-tglb5/igt@gem_exec_sched...@preempt-queue-contexts-render.html

  * igt@gem_exec_schedule@reorder-wide-bsd:
- shard-iclb: [PASS][19] -> [SKIP][20] ([fdo#112146]) +4 similar 
issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/shard-iclb8/igt@gem_exec_sched...@reorder-wide-bsd.html
   [20]: 

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Introduce remap_io_sg() to prefault discontiguous objects

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915: Introduce remap_io_sg() to prefault discontiguous objects
URL   : https://patchwork.freedesktop.org/series/71530/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7659_full -> Patchwork_15959_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_persistence@rcs0-mixed-process:
- shard-skl:  [PASS][1] -> [FAIL][2] ([i915#679])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-skl6/igt@gem_ctx_persiste...@rcs0-mixed-process.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/shard-skl5/igt@gem_ctx_persiste...@rcs0-mixed-process.html

  * igt@gem_ctx_persistence@vcs1-mixed:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#109276] / [fdo#112080]) 
+1 similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-iclb2/igt@gem_ctx_persiste...@vcs1-mixed.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/shard-iclb7/igt@gem_ctx_persiste...@vcs1-mixed.html

  * igt@gem_exec_balancer@smoke:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#110854])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-iclb2/igt@gem_exec_balan...@smoke.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/shard-iclb7/igt@gem_exec_balan...@smoke.html

  * igt@gem_exec_create@basic:
- shard-tglb: [PASS][7] -> [INCOMPLETE][8] ([fdo#111736])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-tglb7/igt@gem_exec_cre...@basic.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/shard-tglb6/igt@gem_exec_cre...@basic.html

  * igt@gem_exec_create@madvise:
- shard-tglb: [PASS][9] -> [INCOMPLETE][10] ([i915#435])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-tglb7/igt@gem_exec_cre...@madvise.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/shard-tglb3/igt@gem_exec_cre...@madvise.html

  * igt@gem_exec_gttfill@basic:
- shard-tglb: [PASS][11] -> [INCOMPLETE][12] ([fdo#111593])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-tglb2/igt@gem_exec_gttf...@basic.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/shard-tglb8/igt@gem_exec_gttf...@basic.html

  * igt@gem_exec_schedule@preempt-queue-bsd1:
- shard-iclb: [PASS][13] -> [SKIP][14] ([fdo#109276]) +14 similar 
issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-iclb1/igt@gem_exec_sched...@preempt-queue-bsd1.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/shard-iclb3/igt@gem_exec_sched...@preempt-queue-bsd1.html

  * igt@gem_exec_schedule@preempt-queue-contexts-chain-bsd1:
- shard-tglb: [PASS][15] -> [INCOMPLETE][16] ([fdo#111677])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-tglb1/igt@gem_exec_sched...@preempt-queue-contexts-chain-bsd1.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/shard-tglb3/igt@gem_exec_sched...@preempt-queue-contexts-chain-bsd1.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
- shard-iclb: [PASS][17] -> [SKIP][18] ([fdo#112146]) +4 similar 
issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-iclb5/igt@gem_exec_sched...@preemptive-hang-bsd.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/shard-iclb2/igt@gem_exec_sched...@preemptive-hang-bsd.html

  * igt@gem_exec_schedule@smoketest-vebox:
- shard-tglb: [PASS][19] -> [INCOMPLETE][20] ([i915#707])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-tglb1/igt@gem_exec_sched...@smoketest-vebox.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/shard-tglb3/igt@gem_exec_sched...@smoketest-vebox.html

  * igt@gem_exec_suspend@basic-s4-devices:
- shard-tglb: [PASS][21] -> [INCOMPLETE][22] ([i915#460])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-tglb1/igt@gem_exec_susp...@basic-s4-devices.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/shard-tglb6/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@gem_sync@basic-all:
- shard-tglb: [PASS][23] -> [INCOMPLETE][24] ([i915#470] / 
[i915#472])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-tglb2/igt@gem_s...@basic-all.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/shard-tglb6/igt@gem_s...@basic-all.html

  * igt@i915_pm_dc@dc6-psr:
- shard-iclb: [PASS][25] -> [FAIL][26] ([i915#454])
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-iclb1/igt@i915_pm...@dc6-psr.html
   [26]: 

[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [CI,1/3] drm/i915/gem: Extend mmap support for lmem

2019-12-31 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/3] drm/i915/gem: Extend mmap support for lmem
URL   : https://patchwork.freedesktop.org/series/71538/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7661 -> Patchwork_15963


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_15963 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_15963, 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_15963/index.html

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live_gem_contexts:
- fi-kbl-x1275:   NOTRUN -> [DMESG-FAIL][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15963/fi-kbl-x1275/igt@i915_selftest@live_gem_contexts.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_module_load@reload-with-fault-injection:
- fi-cfl-8700k:   [PASS][2] -> [INCOMPLETE][3] ([i915#505])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-cfl-8700k/igt@i915_module_l...@reload-with-fault-injection.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15963/fi-cfl-8700k/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@i915_selftest@live_evict:
- fi-bwr-2160:[PASS][4] -> [FAIL][5] ([i915#878]) +1 similar issue
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-bwr-2160/igt@i915_selftest@live_evict.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15963/fi-bwr-2160/igt@i915_selftest@live_evict.html

  * igt@i915_selftest@live_execlists:
- fi-kbl-soraka:  [PASS][6] -> [DMESG-FAIL][7] ([i915#656])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-kbl-soraka/igt@i915_selftest@live_execlists.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15963/fi-kbl-soraka/igt@i915_selftest@live_execlists.html

  * igt@i915_selftest@live_gem_contexts:
- fi-byt-j1900:   [PASS][8] -> [DMESG-FAIL][9] ([i915#722])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-byt-j1900/igt@i915_selftest@live_gem_contexts.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15963/fi-byt-j1900/igt@i915_selftest@live_gem_contexts.html

  * igt@i915_selftest@live_mman:
- fi-bxt-dsi: [PASS][10] -> [DMESG-WARN][11] ([i915#889]) +23 
similar issues
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-bxt-dsi/igt@i915_selftest@live_mman.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15963/fi-bxt-dsi/igt@i915_selftest@live_mman.html

  * igt@i915_selftest@live_reset:
- fi-bxt-dsi: [PASS][12] -> [DMESG-FAIL][13] ([i915#889]) +7 
similar issues
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-bxt-dsi/igt@i915_selftest@live_reset.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15963/fi-bxt-dsi/igt@i915_selftest@live_reset.html

  
 Possible fixes 

  * igt@i915_module_load@reload-with-fault-injection:
- fi-skl-6700k2:  [INCOMPLETE][14] ([i915#671]) -> [PASS][15]
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15963/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@i915_selftest@live_blt:
- fi-hsw-4770:[DMESG-FAIL][16] ([i915#563]) -> [PASS][17]
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15963/fi-hsw-4770/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_workarounds:
- fi-icl-dsi: [DMESG-FAIL][18] -> [PASS][19]
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-icl-dsi/igt@i915_selftest@live_workarounds.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15963/fi-icl-dsi/igt@i915_selftest@live_workarounds.html

  
 Warnings 

  * igt@i915_pm_rpm@basic-rte:
- fi-kbl-guc: [FAIL][20] ([i915#704]) -> [SKIP][21] ([fdo#109271])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-kbl-guc/igt@i915_pm_...@basic-rte.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15963/fi-kbl-guc/igt@i915_pm_...@basic-rte.html

  * igt@kms_flip@basic-flip-vs-modeset:
- fi-kbl-x1275:   [DMESG-WARN][22] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][23] ([i915#62] / [i915#92]) +7 similar issues
   [22]: 

Re: [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Add Wa_1407352427:icl,ehl (rev4)

2019-12-31 Thread Matt Roper
On Wed, Jan 01, 2020 at 02:00:22AM +, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915: Add Wa_1407352427:icl,ehl (rev4)
> URL   : https://patchwork.freedesktop.org/series/71403/
> State : success
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_7659_full -> Patchwork_15958_full
> 
> 
> Summary
> ---
> 
>   **SUCCESS**
> 
>   No regressions found.
> 

Applied to dinq.  Thanks Lionel for the review.


Matt

>   
> 
> Possible new issues
> ---
> 
>   Here are the unknown changes that may have been introduced in 
> Patchwork_15958_full:
> 
> ### IGT changes ###
> 
>  Suppressed 
> 
>   The following results come from untrusted machines, tests, or statuses.
>   They do not affect the overall result.
> 
>   * {igt@gem_exec_schedule@pi-common-bsd1}:
> - shard-tglb: [PASS][1] -> [INCOMPLETE][2]
>[1]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-tglb1/igt@gem_exec_sched...@pi-common-bsd1.html
>[2]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15958/shard-tglb5/igt@gem_exec_sched...@pi-common-bsd1.html
> 
>   
> 
> ### Piglit changes ###
> 
>  Possible regressions 
> 
>   * spec@ext_framebuffer_multisample_blit_scaled@blit-scaled samples=8 with 
> gl_texture_2d_multisample_array (NEW):
> - {pig-hsw-4770r}:NOTRUN -> [WARN][3]
>[3]: None
> 
>   
> New tests
> -
> 
>   New tests have been introduced between CI_DRM_7659_full and 
> Patchwork_15958_full:
> 
> ### New Piglit tests (47) ###
> 
>   * shaders@glsl-derivs-abs:
> - Statuses : 1 fail(s)
> - Exec time: [0.13] s
> 
>   * shaders@glsl-uniform-struct:
> - Statuses : 1 fail(s)
> - Exec time: [0.10] s
> 
>   * spec@!opengl 1.1@depthstencil-default_fb-blit samples=4:
> - Statuses : 1 fail(s)
> - Exec time: [0.11] s
> 
>   * spec@!opengl 1.1@depthstencil-default_fb-clear samples=8:
> - Statuses : 1 fail(s)
> - Exec time: [0.10] s
> 
>   * spec@!opengl 1.1@depthstencil-default_fb-readpixels-24_8 samples=8:
> - Statuses : 1 fail(s)
> - Exec time: [0.07] s
> 
>   * spec@!opengl 1.1@depthstencil-default_fb-readpixels-float-and-ushort 
> samples=4:
> - Statuses : 1 fail(s)
> - Exec time: [0.12] s
> 
>   * spec@!opengl 1.1@depthstencil-default_fb-readpixels-float-and-ushort 
> samples=8:
> - Statuses : 1 fail(s)
> - Exec time: [0.08] s
> 
>   * spec@!opengl 1.1@fragment-center:
> - Statuses : 1 fail(s)
> - Exec time: [0.08] s
> 
>   * spec@!opengl 1.1@gl-1.1-read-pixels-after-display-list:
> - Statuses : 1 fail(s)
> - Exec time: [0.13] s
> 
>   * spec@!opengl 1.1@gl-1.1-xor-copypixels:
> - Statuses : 1 fail(s)
> - Exec time: [0.09] s
> 
>   * spec@!opengl 1.1@infinite-spot-light:
> - Statuses : 1 fail(s)
> - Exec time: [0.10] s
> 
>   * spec@!opengl 1.1@line-aa-width:
> - Statuses : 1 fail(s)
> - Exec time: [0.09] s
> 
>   * spec@!opengl 1.1@texture-al:
> - Statuses : 1 fail(s)
> - Exec time: [0.07] s
> 
>   * spec@arb_arrays_of_arrays@execution@ubo@fs-nonconst:
> - Statuses : 1 fail(s)
> - Exec time: [0.10] s
> 
>   * spec@arb_depth_buffer_float@depthstencil-render-miplevels 1024 d=z32f_s8:
> - Statuses : 1 fail(s)
> - Exec time: [0.29] s
> 
>   * spec@arb_depth_buffer_float@fbo-clear-formats:
> - Statuses : 1 fail(s)
> - Exec time: [0.15] s
> 
>   * spec@arb_texture_multisample@large-float-texture-fp16:
> - Statuses : 1 fail(s)
> - Exec time: [0.30] s
> 
>   * spec@arb_texture_multisample@texelfetch@4-fs-isampler2dms:
> - Statuses : 1 fail(s)
> - Exec time: [0.07] s
> 
>   * spec@ext_framebuffer_multisample@blit-multiple-render-targets 2:
> - Statuses : 1 fail(s)
> - Exec time: [0.12] s
> 
>   * spec@ext_framebuffer_multisample_blit_scaled@blit-scaled samples=8 with 
> gl_texture_2d_multisample_array:
> - Statuses : 1 warn(s)
> - Exec time: [0.17] s
> 
>   * 
> spec@glsl-1.10@execution@built-in-functions@fs-op-selection-bool-bvec4-bvec4:
> - Statuses : 1 fail(s)
> - Exec time: [0.12] s
> 
>   * spec@glsl-1.30@execution@fs-texturelod-miplevels-biased:
> - Statuses : 1 fail(s)
> - Exec time: [0.10] s
> 
>   * 
> spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_backcolor-flat-vertex:
> - Statuses : 1 fail(s)
> - Exec time: [0.12] s
> 
>   * 
> spec@glsl-1.30@execution@interpolation@interpolation-none-other-flat-distance:
> - Statuses : 1 fail(s)
> - Exec time: [0.12] s
> 
>   * 
> spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_backsecondarycolor-flat-distance:
> - Statuses : 1 fail(s)
> - Exec time: [0.10] s
> 
>   * 
> spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_frontcolor-smooth-distance:
> - Statuses : 1 fail(s)
> - Exec time: [0.11] s
> 
>   * 
> spec@glsl-1.50@execution@variable-indexing@vs-output-array-float-index-wr-before-gs:
> - 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [CI,1/3] drm/i915/gem: Extend mmap support for lmem

2019-12-31 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/3] drm/i915/gem: Extend mmap support for lmem
URL   : https://patchwork.freedesktop.org/series/71538/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
5b09b1115138 drm/i915/gem: Extend mmap support for lmem
fcac03df03c3 drm/i915/selftests: Extend fault handler selftests to all memory 
regions
-:158: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'x' - possible side-effects?
#158: FILE: drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c:834:
+#define expand32(x) (((x) << 0) | ((x) << 8) | ((x) << 16) | ((x) << 24))

total: 0 errors, 0 warnings, 1 checks, 403 lines checked
422c6c94fa80 drm/i915/gem: Single page objects are naturally contiguous

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


[Intel-gfx] [CI 1/3] drm/i915/gem: Extend mmap support for lmem

2019-12-31 Thread Chris Wilson
From: Abdiel Janulgue 

Local memory objects are similar to our usual scatterlist, but instead
of using the struct page stored therein, we need to use the
sg->dma_address.

Signed-off-by: Abdiel Janulgue 
Cc: Chris Wilson 
---
 drivers/gpu/drm/i915/gem/i915_gem_mman.c | 16 +++--
 drivers/gpu/drm/i915/i915_drv.h  |  6 ++---
 drivers/gpu/drm/i915/i915_mm.c   | 30 +++-
 3 files changed, 31 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c 
b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
index 905527ce2999..4caf7d750c34 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
@@ -216,6 +216,7 @@ static vm_fault_t i915_error_to_vmf_fault(int err)
 
case -ENOSPC: /* shmemfs allocation failure */
case -ENOMEM: /* our allocation failure */
+   case -ENXIO:
return VM_FAULT_OOM;
 
case 0:
@@ -236,11 +237,10 @@ static vm_fault_t vm_fault_cpu(struct vm_fault *vmf)
struct vm_area_struct *area = vmf->vma;
struct i915_mmap_offset *mmo = area->vm_private_data;
struct drm_i915_gem_object *obj = mmo->obj;
+   bool use_dma =
+   !i915_gem_object_type_has(obj, I915_GEM_OBJECT_HAS_STRUCT_PAGE);
int err;
 
-   if (unlikely(!i915_gem_object_has_struct_page(obj)))
-   return VM_FAULT_SIGBUS;
-
/* Sanity check that we allow writing into this object */
if (unlikely(i915_gem_object_is_readonly(obj) &&
 area->vm_flags & VM_WRITE))
@@ -251,9 +251,9 @@ static vm_fault_t vm_fault_cpu(struct vm_fault *vmf)
goto out;
 
/* PTEs are revoked in obj->ops->put_pages() */
-   err = remap_io_sg_page(area,
-  area->vm_start, area->vm_end - area->vm_start,
-  obj->mm.pages->sgl);
+   err = remap_io_sg(area,
+ area->vm_start, area->vm_end - area->vm_start,
+ obj->mm.pages->sgl, use_dma);
 
if (area->vm_flags & VM_WRITE) {
GEM_BUG_ON(!i915_gem_object_has_pinned_pages(obj));
@@ -552,7 +552,9 @@ __assign_mmap_offset(struct drm_file *file,
}
 
if (mmap_type != I915_MMAP_TYPE_GTT &&
-   !i915_gem_object_has_struct_page(obj)) {
+   !i915_gem_object_type_has(obj,
+ I915_GEM_OBJECT_HAS_STRUCT_PAGE |
+ I915_GEM_OBJECT_HAS_IOMEM)) {
err = -ENODEV;
goto out;
}
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 2c7e3020e766..ccd632fecf36 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2017,9 +2017,9 @@ int i915_reg_read_ioctl(struct drm_device *dev, void 
*data,
 int remap_io_mapping(struct vm_area_struct *vma,
 unsigned long addr, unsigned long pfn, unsigned long size,
 struct io_mapping *iomap);
-int remap_io_sg_page(struct vm_area_struct *vma,
-unsigned long addr, unsigned long size,
-struct scatterlist *sgl);
+int remap_io_sg(struct vm_area_struct *vma,
+   unsigned long addr, unsigned long size,
+   struct scatterlist *sgl, bool use_dma);
 
 static inline int intel_hws_csb_write_index(struct drm_i915_private *i915)
 {
diff --git a/drivers/gpu/drm/i915/i915_mm.c b/drivers/gpu/drm/i915/i915_mm.c
index 2998689e6d42..7f1680b4125e 100644
--- a/drivers/gpu/drm/i915/i915_mm.c
+++ b/drivers/gpu/drm/i915/i915_mm.c
@@ -35,6 +35,7 @@ struct remap_pfn {
pgprot_t prot;
 
struct sgt_iter sgt;
+   bool dma;
 };
 
 static int remap_pfn(pte_t *pte, unsigned long addr, void *data)
@@ -48,12 +49,15 @@ static int remap_pfn(pte_t *pte, unsigned long addr, void 
*data)
return 0;
 }
 
-static inline unsigned long sgt_pfn(const struct sgt_iter *sgt)
+static inline unsigned long sgt_pfn(const struct sgt_iter *sgt, bool use_dma)
 {
+   if (use_dma)
+   return (sgt->dma + sgt->curr) >> PAGE_SHIFT;
+
return sgt->pfn + (sgt->curr >> PAGE_SHIFT);
 }
 
-static int remap_sg_page(pte_t *pte, unsigned long addr, void *data)
+static int remap_sg(pte_t *pte, unsigned long addr, void *data)
 {
struct remap_pfn *r = data;
 
@@ -62,12 +66,12 @@ static int remap_sg_page(pte_t *pte, unsigned long addr, 
void *data)
 
/* Special PTE are not associated with any struct page */
set_pte_at(r->mm, addr, pte,
-  pte_mkspecial(pfn_pte(sgt_pfn(>sgt), r->prot)));
+  pte_mkspecial(pfn_pte(sgt_pfn(>sgt, r->dma), r->prot)));
r->pfn++; /* track insertions in case we need to unwind later */
 
r->sgt.curr += PAGE_SIZE;
if (r->sgt.curr >= r->sgt.max)
-   r->sgt = __sgt_iter(__sg_next(r->sgt.sgp), false);
+   r->sgt = 

[Intel-gfx] [CI 2/3] drm/i915/selftests: Extend fault handler selftests to all memory regions

2019-12-31 Thread Chris Wilson
From: Abdiel Janulgue 

Instead of testing individually our new fault handlers, iterate over all
memory regions and test all from one interface.

Signed-off-by: Abdiel Janulgue 
Cc: Matthew Auld 
Cc: Chris Wilson 
Cc: Joonas Lahtinen 
---
 .../drm/i915/gem/selftests/i915_gem_mman.c| 297 --
 1 file changed, 209 insertions(+), 88 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c 
b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
index cbf796da64e3..35a5d51674bf 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
@@ -9,6 +9,7 @@
 #include "gt/intel_engine_pm.h"
 #include "gt/intel_gt.h"
 #include "gt/intel_gt_pm.h"
+#include "gem/i915_gem_region.h"
 #include "huge_gem_object.h"
 #include "i915_selftest.h"
 #include "selftests/i915_random.h"
@@ -725,114 +726,222 @@ static int igt_mmap_offset_exhaustion(void *arg)
goto out;
 }
 
-#define expand32(x) (((x) << 0) | ((x) << 8) | ((x) << 16) | ((x) << 24))
-static int igt_mmap(void *arg, enum i915_mmap_type type)
+static int gtt_set(struct drm_i915_gem_object *obj)
 {
-   struct drm_i915_private *i915 = arg;
-   struct drm_i915_gem_object *obj;
-   struct i915_mmap_offset *mmo;
-   struct vm_area_struct *area;
-   unsigned long addr;
-   void *vaddr;
-   int err = 0, i;
+   struct i915_vma *vma;
+   void __iomem *map;
+   int err = 0;
 
-   if (!i915_ggtt_has_aperture(>ggtt))
-   return 0;
+   vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, PIN_MAPPABLE);
+   if (IS_ERR(vma))
+   return PTR_ERR(vma);
 
-   obj = i915_gem_object_create_internal(i915, PAGE_SIZE);
-   if (IS_ERR(obj))
-   return PTR_ERR(obj);
+   intel_gt_pm_get(vma->vm->gt);
+   map = i915_vma_pin_iomap(vma);
+   i915_vma_unpin(vma);
+   if (IS_ERR(map)) {
+   err = PTR_ERR(map);
+   goto out;
+   }
+
+   memset_io(map, POISON_INUSE, obj->base.size);
+   i915_vma_unpin_iomap(vma);
 
-   vaddr = i915_gem_object_pin_map(obj, I915_MAP_WB);
-   if (IS_ERR(vaddr)) {
-   err = PTR_ERR(vaddr);
+out:
+   intel_gt_pm_put(vma->vm->gt);
+   return err;
+}
+
+static int gtt_check(struct drm_i915_gem_object *obj)
+{
+   struct i915_vma *vma;
+   void __iomem *map;
+   int err = 0;
+
+   vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, PIN_MAPPABLE);
+   if (IS_ERR(vma))
+   return PTR_ERR(vma);
+
+   intel_gt_pm_get(vma->vm->gt);
+   map = i915_vma_pin_iomap(vma);
+   i915_vma_unpin(vma);
+   if (IS_ERR(map)) {
+   err = PTR_ERR(map);
goto out;
}
-   memset(vaddr, POISON_INUSE, PAGE_SIZE);
+
+   if (memchr_inv((void __force *)map, POISON_FREE, obj->base.size)) {
+   pr_err("%s: Write via mmap did not land in backing store 
(GTT)\n",
+  obj->mm.region->name);
+   err = -EINVAL;
+   }
+   i915_vma_unpin_iomap(vma);
+
+out:
+   intel_gt_pm_put(vma->vm->gt);
+   return err;
+}
+
+static int wc_set(struct drm_i915_gem_object *obj)
+{
+   void *vaddr;
+
+   vaddr = i915_gem_object_pin_map(obj, I915_MAP_WC);
+   if (IS_ERR(vaddr))
+   return PTR_ERR(vaddr);
+
+   memset(vaddr, POISON_INUSE, obj->base.size);
i915_gem_object_flush_map(obj);
i915_gem_object_unpin_map(obj);
 
-   mmo = mmap_offset_attach(obj, type, NULL);
-   if (IS_ERR(mmo)) {
-   err = PTR_ERR(mmo);
-   goto out;
+   return 0;
+}
+
+static int wc_check(struct drm_i915_gem_object *obj)
+{
+   void *vaddr;
+   int err = 0;
+
+   vaddr = i915_gem_object_pin_map(obj, I915_MAP_WC);
+   if (IS_ERR(vaddr))
+   return PTR_ERR(vaddr);
+
+   if (memchr_inv(vaddr, POISON_FREE, obj->base.size)) {
+   pr_err("%s: Write via mmap did not land in backing store 
(WC)\n",
+  obj->mm.region->name);
+   err = -EINVAL;
}
+   i915_gem_object_unpin_map(obj);
+
+   return err;
+}
+
+static bool can_mmap(struct drm_i915_gem_object *obj, enum i915_mmap_type type)
+{
+   if (type == I915_MMAP_TYPE_GTT &&
+   !i915_ggtt_has_aperture(_i915(obj->base.dev)->ggtt))
+   return false;
+
+   if (type != I915_MMAP_TYPE_GTT &&
+   !i915_gem_object_type_has(obj,
+ I915_GEM_OBJECT_HAS_STRUCT_PAGE |
+ I915_GEM_OBJECT_HAS_IOMEM))
+   return false;
+
+   return true;
+}
+
+#define expand32(x) (((x) << 0) | ((x) << 8) | ((x) << 16) | ((x) << 24))
+static int __igt_mmap(struct drm_i915_private *i915,
+ struct drm_i915_gem_object *obj,
+ enum i915_mmap_type type)
+{
+   struct i915_mmap_offset *mmo;
+   struct 

[Intel-gfx] [CI 3/3] drm/i915/gem: Single page objects are naturally contiguous

2019-12-31 Thread Chris Wilson
Small objects that only occupy a single page are naturally contiguous,
so mark them as such and allow them the special abilities that come with
it.

Signed-off-by: Chris Wilson 
Cc: Matthew Auld 
---
 drivers/gpu/drm/i915/gem/i915_gem_region.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_region.c 
b/drivers/gpu/drm/i915/gem/i915_gem_region.c
index d50adac12249..1515384d7e0e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_region.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_region.c
@@ -107,7 +107,10 @@ void i915_gem_object_init_memory_region(struct 
drm_i915_gem_object *obj,
 {
INIT_LIST_HEAD(>mm.blocks);
obj->mm.region = intel_memory_region_get(mem);
+
obj->flags |= flags;
+   if (obj->base.size <= mem->min_page_size)
+   obj->flags |= I915_BO_ALLOC_CONTIGUOUS;
 
mutex_lock(>objects.lock);
 
-- 
2.25.0.rc0

___
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 [CI,1/2] drm/i915/gem: Extend mmap support for lmem

2019-12-31 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915/gem: Extend mmap support for lmem
URL   : https://patchwork.freedesktop.org/series/71537/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7661 -> Patchwork_15962


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_15962 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_15962, 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_15962/index.html

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live_mman:
- fi-gdg-551: NOTRUN -> [DMESG-FAIL][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15962/fi-gdg-551/igt@i915_selftest@live_mman.html
- fi-skl-lmem:[PASS][2] -> [INCOMPLETE][3]
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-skl-lmem/igt@i915_selftest@live_mman.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15962/fi-skl-lmem/igt@i915_selftest@live_mman.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_chamelium@hdmi-crc-fast:
- fi-icl-u2:  [PASS][4] -> [FAIL][5] ([fdo#109635])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-icl-u2/igt@kms_chamel...@hdmi-crc-fast.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15962/fi-icl-u2/igt@kms_chamel...@hdmi-crc-fast.html

  
 Possible fixes 

  * igt@i915_module_load@reload-with-fault-injection:
- fi-skl-6700k2:  [INCOMPLETE][6] ([i915#671]) -> [PASS][7]
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15962/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@i915_pm_rpm@module-reload:
- fi-skl-6600u:   [DMESG-WARN][8] ([i915#889]) -> [PASS][9] +23 similar 
issues
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-skl-6600u/igt@i915_pm_...@module-reload.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15962/fi-skl-6600u/igt@i915_pm_...@module-reload.html

  * igt@i915_selftest@live_blt:
- fi-hsw-4770:[DMESG-FAIL][10] ([i915#563]) -> [PASS][11]
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15962/fi-hsw-4770/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_gt_lrc:
- fi-skl-6600u:   [DMESG-FAIL][12] ([i915#889]) -> [PASS][13] +7 
similar issues
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-skl-6600u/igt@i915_selftest@live_gt_lrc.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15962/fi-skl-6600u/igt@i915_selftest@live_gt_lrc.html

  * igt@i915_selftest@live_workarounds:
- fi-icl-dsi: [DMESG-FAIL][14] -> [PASS][15]
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-icl-dsi/igt@i915_selftest@live_workarounds.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15962/fi-icl-dsi/igt@i915_selftest@live_workarounds.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u:   [FAIL][16] ([fdo#111407]) -> [PASS][17]
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15962/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html

  
 Warnings 

  * igt@i915_pm_rpm@basic-rte:
- fi-kbl-guc: [FAIL][18] ([i915#704]) -> [SKIP][19] ([fdo#109271])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-kbl-guc/igt@i915_pm_...@basic-rte.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15962/fi-kbl-guc/igt@i915_pm_...@basic-rte.html

  * igt@kms_flip@basic-flip-vs-modeset:
- fi-kbl-x1275:   [DMESG-WARN][20] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][21] ([i915#62] / [i915#92]) +7 similar issues
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7661/fi-kbl-x1275/igt@kms_f...@basic-flip-vs-modeset.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15962/fi-kbl-x1275/igt@kms_f...@basic-flip-vs-modeset.html

  * igt@kms_flip@basic-flip-vs-wf_vblank:
- fi-kbl-x1275:   [DMESG-WARN][22] ([i915#62] / [i915#92]) -> 
[DMESG-WARN][23] ([i915#62] / [i915#92] / [i915#95]) +4 similar issues
   [22]: 

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Add Wa_1407352427:icl,ehl (rev4)

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915: Add Wa_1407352427:icl,ehl (rev4)
URL   : https://patchwork.freedesktop.org/series/71403/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7659_full -> Patchwork_15958_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Possible new issues
---

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

### IGT changes ###

 Suppressed 

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

  * {igt@gem_exec_schedule@pi-common-bsd1}:
- shard-tglb: [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/shard-tglb1/igt@gem_exec_sched...@pi-common-bsd1.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15958/shard-tglb5/igt@gem_exec_sched...@pi-common-bsd1.html

  

### Piglit changes ###

 Possible regressions 

  * spec@ext_framebuffer_multisample_blit_scaled@blit-scaled samples=8 with 
gl_texture_2d_multisample_array (NEW):
- {pig-hsw-4770r}:NOTRUN -> [WARN][3]
   [3]: None

  
New tests
-

  New tests have been introduced between CI_DRM_7659_full and 
Patchwork_15958_full:

### New Piglit tests (47) ###

  * shaders@glsl-derivs-abs:
- Statuses : 1 fail(s)
- Exec time: [0.13] s

  * shaders@glsl-uniform-struct:
- Statuses : 1 fail(s)
- Exec time: [0.10] s

  * spec@!opengl 1.1@depthstencil-default_fb-blit samples=4:
- Statuses : 1 fail(s)
- Exec time: [0.11] s

  * spec@!opengl 1.1@depthstencil-default_fb-clear samples=8:
- Statuses : 1 fail(s)
- Exec time: [0.10] s

  * spec@!opengl 1.1@depthstencil-default_fb-readpixels-24_8 samples=8:
- Statuses : 1 fail(s)
- Exec time: [0.07] s

  * spec@!opengl 1.1@depthstencil-default_fb-readpixels-float-and-ushort 
samples=4:
- Statuses : 1 fail(s)
- Exec time: [0.12] s

  * spec@!opengl 1.1@depthstencil-default_fb-readpixels-float-and-ushort 
samples=8:
- Statuses : 1 fail(s)
- Exec time: [0.08] s

  * spec@!opengl 1.1@fragment-center:
- Statuses : 1 fail(s)
- Exec time: [0.08] s

  * spec@!opengl 1.1@gl-1.1-read-pixels-after-display-list:
- Statuses : 1 fail(s)
- Exec time: [0.13] s

  * spec@!opengl 1.1@gl-1.1-xor-copypixels:
- Statuses : 1 fail(s)
- Exec time: [0.09] s

  * spec@!opengl 1.1@infinite-spot-light:
- Statuses : 1 fail(s)
- Exec time: [0.10] s

  * spec@!opengl 1.1@line-aa-width:
- Statuses : 1 fail(s)
- Exec time: [0.09] s

  * spec@!opengl 1.1@texture-al:
- Statuses : 1 fail(s)
- Exec time: [0.07] s

  * spec@arb_arrays_of_arrays@execution@ubo@fs-nonconst:
- Statuses : 1 fail(s)
- Exec time: [0.10] s

  * spec@arb_depth_buffer_float@depthstencil-render-miplevels 1024 d=z32f_s8:
- Statuses : 1 fail(s)
- Exec time: [0.29] s

  * spec@arb_depth_buffer_float@fbo-clear-formats:
- Statuses : 1 fail(s)
- Exec time: [0.15] s

  * spec@arb_texture_multisample@large-float-texture-fp16:
- Statuses : 1 fail(s)
- Exec time: [0.30] s

  * spec@arb_texture_multisample@texelfetch@4-fs-isampler2dms:
- Statuses : 1 fail(s)
- Exec time: [0.07] s

  * spec@ext_framebuffer_multisample@blit-multiple-render-targets 2:
- Statuses : 1 fail(s)
- Exec time: [0.12] s

  * spec@ext_framebuffer_multisample_blit_scaled@blit-scaled samples=8 with 
gl_texture_2d_multisample_array:
- Statuses : 1 warn(s)
- Exec time: [0.17] s

  * 
spec@glsl-1.10@execution@built-in-functions@fs-op-selection-bool-bvec4-bvec4:
- Statuses : 1 fail(s)
- Exec time: [0.12] s

  * spec@glsl-1.30@execution@fs-texturelod-miplevels-biased:
- Statuses : 1 fail(s)
- Exec time: [0.10] s

  * 
spec@glsl-1.30@execution@interpolation@interpolation-flat-gl_backcolor-flat-vertex:
- Statuses : 1 fail(s)
- Exec time: [0.12] s

  * 
spec@glsl-1.30@execution@interpolation@interpolation-none-other-flat-distance:
- Statuses : 1 fail(s)
- Exec time: [0.12] s

  * 
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_backsecondarycolor-flat-distance:
- Statuses : 1 fail(s)
- Exec time: [0.10] s

  * 
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_frontcolor-smooth-distance:
- Statuses : 1 fail(s)
- Exec time: [0.11] s

  * 
spec@glsl-1.50@execution@variable-indexing@vs-output-array-float-index-wr-before-gs:
- Statuses : 1 fail(s)
- Exec time: [0.22] s

  * spec@glsl-4.00@execution@built-in-functions@fs-notequal-dvec4-dvec4:
- Statuses : 1 fail(s)
- Exec time: [0.14] s

  * spec@glsl-4.00@execution@built-in-functions@gs-greaterthanequal-dvec4-dvec4:
- Statuses : 1 fail(s)
- Exec time: [0.09] s

  * 
spec@glsl-4.10@execution@vs_in@vs-input-position-int_ivec4_array3-double_double_array2:
- Statuses : 1 fail(s)
- Exec time: [0.17] s

  * 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [CI,1/2] drm/i915/gem: Extend mmap support for lmem

2019-12-31 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915/gem: Extend mmap support for lmem
URL   : https://patchwork.freedesktop.org/series/71537/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
c269d4536b3a drm/i915/gem: Extend mmap support for lmem
68ca521ddb6d drm/i915/selftests: Extend fault handler selftests to all memory 
regions
-:157: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'x' - possible side-effects?
#157: FILE: drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c:832:
+#define expand32(x) (((x) << 0) | ((x) << 8) | ((x) << 16) | ((x) << 24))

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

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


[Intel-gfx] [CI 1/2] drm/i915/gem: Extend mmap support for lmem

2019-12-31 Thread Chris Wilson
From: Abdiel Janulgue 

Local memory objects are similar to our usual scatterlist, but instead
of using the struct page stored therein, we need to use the
sg->dma_address.

Signed-off-by: Abdiel Janulgue 
Cc: Chris Wilson 
---
 drivers/gpu/drm/i915/gem/i915_gem_mman.c | 16 +++--
 drivers/gpu/drm/i915/i915_drv.h  |  6 ++---
 drivers/gpu/drm/i915/i915_mm.c   | 30 +++-
 3 files changed, 31 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c 
b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
index 905527ce2999..4caf7d750c34 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
@@ -216,6 +216,7 @@ static vm_fault_t i915_error_to_vmf_fault(int err)
 
case -ENOSPC: /* shmemfs allocation failure */
case -ENOMEM: /* our allocation failure */
+   case -ENXIO:
return VM_FAULT_OOM;
 
case 0:
@@ -236,11 +237,10 @@ static vm_fault_t vm_fault_cpu(struct vm_fault *vmf)
struct vm_area_struct *area = vmf->vma;
struct i915_mmap_offset *mmo = area->vm_private_data;
struct drm_i915_gem_object *obj = mmo->obj;
+   bool use_dma =
+   !i915_gem_object_type_has(obj, I915_GEM_OBJECT_HAS_STRUCT_PAGE);
int err;
 
-   if (unlikely(!i915_gem_object_has_struct_page(obj)))
-   return VM_FAULT_SIGBUS;
-
/* Sanity check that we allow writing into this object */
if (unlikely(i915_gem_object_is_readonly(obj) &&
 area->vm_flags & VM_WRITE))
@@ -251,9 +251,9 @@ static vm_fault_t vm_fault_cpu(struct vm_fault *vmf)
goto out;
 
/* PTEs are revoked in obj->ops->put_pages() */
-   err = remap_io_sg_page(area,
-  area->vm_start, area->vm_end - area->vm_start,
-  obj->mm.pages->sgl);
+   err = remap_io_sg(area,
+ area->vm_start, area->vm_end - area->vm_start,
+ obj->mm.pages->sgl, use_dma);
 
if (area->vm_flags & VM_WRITE) {
GEM_BUG_ON(!i915_gem_object_has_pinned_pages(obj));
@@ -552,7 +552,9 @@ __assign_mmap_offset(struct drm_file *file,
}
 
if (mmap_type != I915_MMAP_TYPE_GTT &&
-   !i915_gem_object_has_struct_page(obj)) {
+   !i915_gem_object_type_has(obj,
+ I915_GEM_OBJECT_HAS_STRUCT_PAGE |
+ I915_GEM_OBJECT_HAS_IOMEM)) {
err = -ENODEV;
goto out;
}
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 2c7e3020e766..ccd632fecf36 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2017,9 +2017,9 @@ int i915_reg_read_ioctl(struct drm_device *dev, void 
*data,
 int remap_io_mapping(struct vm_area_struct *vma,
 unsigned long addr, unsigned long pfn, unsigned long size,
 struct io_mapping *iomap);
-int remap_io_sg_page(struct vm_area_struct *vma,
-unsigned long addr, unsigned long size,
-struct scatterlist *sgl);
+int remap_io_sg(struct vm_area_struct *vma,
+   unsigned long addr, unsigned long size,
+   struct scatterlist *sgl, bool use_dma);
 
 static inline int intel_hws_csb_write_index(struct drm_i915_private *i915)
 {
diff --git a/drivers/gpu/drm/i915/i915_mm.c b/drivers/gpu/drm/i915/i915_mm.c
index 2998689e6d42..7f1680b4125e 100644
--- a/drivers/gpu/drm/i915/i915_mm.c
+++ b/drivers/gpu/drm/i915/i915_mm.c
@@ -35,6 +35,7 @@ struct remap_pfn {
pgprot_t prot;
 
struct sgt_iter sgt;
+   bool dma;
 };
 
 static int remap_pfn(pte_t *pte, unsigned long addr, void *data)
@@ -48,12 +49,15 @@ static int remap_pfn(pte_t *pte, unsigned long addr, void 
*data)
return 0;
 }
 
-static inline unsigned long sgt_pfn(const struct sgt_iter *sgt)
+static inline unsigned long sgt_pfn(const struct sgt_iter *sgt, bool use_dma)
 {
+   if (use_dma)
+   return (sgt->dma + sgt->curr) >> PAGE_SHIFT;
+
return sgt->pfn + (sgt->curr >> PAGE_SHIFT);
 }
 
-static int remap_sg_page(pte_t *pte, unsigned long addr, void *data)
+static int remap_sg(pte_t *pte, unsigned long addr, void *data)
 {
struct remap_pfn *r = data;
 
@@ -62,12 +66,12 @@ static int remap_sg_page(pte_t *pte, unsigned long addr, 
void *data)
 
/* Special PTE are not associated with any struct page */
set_pte_at(r->mm, addr, pte,
-  pte_mkspecial(pfn_pte(sgt_pfn(>sgt), r->prot)));
+  pte_mkspecial(pfn_pte(sgt_pfn(>sgt, r->dma), r->prot)));
r->pfn++; /* track insertions in case we need to unwind later */
 
r->sgt.curr += PAGE_SIZE;
if (r->sgt.curr >= r->sgt.max)
-   r->sgt = __sgt_iter(__sg_next(r->sgt.sgp), false);
+   r->sgt = 

[Intel-gfx] [CI 2/2] drm/i915/selftests: Extend fault handler selftests to all memory regions

2019-12-31 Thread Chris Wilson
From: Abdiel Janulgue 

Instead of testing individually our new fault handlers, iterate over all
memory regions and test all from one interface.

Signed-off-by: Abdiel Janulgue 
Cc: Matthew Auld 
Cc: Chris Wilson 
Cc: Joonas Lahtinen 
Reported-by: kbuild test robot 
---
 .../drm/i915/gem/selftests/i915_gem_mman.c| 265 --
 1 file changed, 187 insertions(+), 78 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c 
b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
index cbf796da64e3..659c6c4ec924 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
@@ -9,6 +9,7 @@
 #include "gt/intel_engine_pm.h"
 #include "gt/intel_gt.h"
 #include "gt/intel_gt_pm.h"
+#include "gem/i915_gem_region.h"
 #include "huge_gem_object.h"
 #include "i915_selftest.h"
 #include "selftests/i915_random.h"
@@ -725,44 +726,135 @@ static int igt_mmap_offset_exhaustion(void *arg)
goto out;
 }
 
-#define expand32(x) (((x) << 0) | ((x) << 8) | ((x) << 16) | ((x) << 24))
-static int igt_mmap(void *arg, enum i915_mmap_type type)
+static int gtt_set(struct drm_i915_gem_object *obj)
 {
-   struct drm_i915_private *i915 = arg;
-   struct drm_i915_gem_object *obj;
-   struct i915_mmap_offset *mmo;
-   struct vm_area_struct *area;
-   unsigned long addr;
-   void *vaddr;
-   int err = 0, i;
+   struct i915_vma *vma;
+   void __iomem *map;
+   int err = 0;
 
-   if (!i915_ggtt_has_aperture(>ggtt))
-   return 0;
+   vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, PIN_MAPPABLE);
+   if (IS_ERR(vma))
+   return PTR_ERR(vma);
 
-   obj = i915_gem_object_create_internal(i915, PAGE_SIZE);
-   if (IS_ERR(obj))
-   return PTR_ERR(obj);
+   intel_gt_pm_get(vma->vm->gt);
+   map = i915_vma_pin_iomap(vma);
+   i915_vma_unpin(vma);
+   if (IS_ERR(map)) {
+   err = PTR_ERR(map);
+   goto out;
+   }
+
+   memset_io(map, POISON_INUSE, obj->base.size);
+   i915_vma_unpin_iomap(vma);
+
+out:
+   intel_gt_pm_put(vma->vm->gt);
+   return err;
+}
+
+static int gtt_check(struct drm_i915_gem_object *obj)
+{
+   struct i915_vma *vma;
+   void __iomem *map;
+   int err = 0;
+
+   vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, PIN_MAPPABLE);
+   if (IS_ERR(vma))
+   return PTR_ERR(vma);
 
-   vaddr = i915_gem_object_pin_map(obj, I915_MAP_WB);
-   if (IS_ERR(vaddr)) {
-   err = PTR_ERR(vaddr);
+   intel_gt_pm_get(vma->vm->gt);
+   map = i915_vma_pin_iomap(vma);
+   i915_vma_unpin(vma);
+   if (IS_ERR(map)) {
+   err = PTR_ERR(map);
goto out;
}
-   memset(vaddr, POISON_INUSE, PAGE_SIZE);
+
+   if (memchr_inv((void __force *)map, POISON_FREE, obj->base.size)) {
+   pr_err("Write via mmap did not land in backing store\n");
+   err = -EINVAL;
+   }
+   i915_vma_unpin_iomap(vma);
+
+out:
+   intel_gt_pm_put(vma->vm->gt);
+   return err;
+}
+
+static int wc_set(struct drm_i915_gem_object *obj)
+{
+   void *vaddr;
+
+   vaddr = i915_gem_object_pin_map(obj, I915_MAP_WC);
+   if (IS_ERR(vaddr))
+   return PTR_ERR(vaddr);
+
+   memset(vaddr, POISON_INUSE, obj->base.size);
i915_gem_object_flush_map(obj);
i915_gem_object_unpin_map(obj);
 
-   mmo = mmap_offset_attach(obj, type, NULL);
-   if (IS_ERR(mmo)) {
-   err = PTR_ERR(mmo);
-   goto out;
+   return 0;
+}
+
+static int wc_check(struct drm_i915_gem_object *obj)
+{
+   void *vaddr;
+   int err = 0;
+
+   vaddr = i915_gem_object_pin_map(obj, I915_MAP_WC);
+   if (IS_ERR(vaddr))
+   return PTR_ERR(vaddr);
+
+   if (memchr_inv(vaddr, POISON_FREE, obj->base.size)) {
+   pr_err("Write via mmap did not land in backing store\n");
+   err = -EINVAL;
}
+   i915_gem_object_unpin_map(obj);
+
+   return err;
+}
+
+static bool can_mmap(struct drm_i915_gem_object *obj, enum i915_mmap_type type)
+{
+   if (type == I915_MMAP_TYPE_GTT &&
+   !i915_ggtt_has_aperture(_i915(obj->base.dev)->ggtt))
+   return false;
+
+   if (type != I915_MMAP_TYPE_GTT &&
+   !i915_gem_object_type_has(obj,
+ I915_GEM_OBJECT_HAS_STRUCT_PAGE |
+ I915_GEM_OBJECT_HAS_IOMEM))
+   return false;
+
+   return true;
+}
+
+#define expand32(x) (((x) << 0) | ((x) << 8) | ((x) << 16) | ((x) << 24))
+static int __igt_mmap(struct drm_i915_private *i915,
+ struct drm_i915_gem_object *obj,
+ enum i915_mmap_type type)
+{
+   struct i915_mmap_offset *mmo;
+   struct vm_area_struct *area;
+   unsigned long addr;
+   int err, i;
+
+   if 

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/tgl: Media decompression support

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915/tgl: Media decompression support
URL   : https://patchwork.freedesktop.org/series/71535/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7660 -> Patchwork_15961


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_module_load@reload-with-fault-injection:
- fi-cfl-8700k:   [PASS][1] -> [INCOMPLETE][2] ([i915#505])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-cfl-8700k/igt@i915_module_l...@reload-with-fault-injection.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/fi-cfl-8700k/igt@i915_module_l...@reload-with-fault-injection.html
- fi-skl-6700k2:  [PASS][3] -> [INCOMPLETE][4] ([i915#671])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@i915_selftest@live_gem_contexts:
- fi-byt-n2820:   [PASS][5] -> [DMESG-FAIL][6] ([i915#722])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-byt-n2820/igt@i915_selftest@live_gem_contexts.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/fi-byt-n2820/igt@i915_selftest@live_gem_contexts.html

  
 Possible fixes 

  * igt@gem_close_race@basic-threads:
- fi-byt-j1900:   [TIMEOUT][7] ([i915#816]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-byt-j1900/igt@gem_close_r...@basic-threads.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/fi-byt-j1900/igt@gem_close_r...@basic-threads.html

  * igt@gem_exec_suspend@basic-s3:
- fi-icl-u2:  [FAIL][9] ([fdo#103375]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-icl-u2/igt@gem_exec_susp...@basic-s3.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/fi-icl-u2/igt@gem_exec_susp...@basic-s3.html

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-icl-u2:  [FAIL][11] ([fdo#111550]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-icl-u2/igt@gem_exec_susp...@basic-s4-devices.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/fi-icl-u2/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@i915_pm_rpm@module-reload:
- fi-skl-6600u:   [DMESG-WARN][13] ([i915#889]) -> [PASS][14] +23 
similar issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-skl-6600u/igt@i915_pm_...@module-reload.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/fi-skl-6600u/igt@i915_pm_...@module-reload.html
- fi-skl-lmem:[DMESG-WARN][15] ([i915#889]) -> [PASS][16] +1 
similar issue
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-skl-lmem/igt@i915_pm_...@module-reload.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/fi-skl-lmem/igt@i915_pm_...@module-reload.html

  * igt@i915_selftest@live_blt:
- fi-hsw-4770r:   [DMESG-FAIL][17] ([i915#553] / [i915#725]) -> 
[PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-hsw-4770r/igt@i915_selftest@live_blt.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/fi-hsw-4770r/igt@i915_selftest@live_blt.html
- fi-hsw-4770:[DMESG-FAIL][19] ([i915#725]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/fi-hsw-4770/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_gt_heartbeat:
- fi-kbl-soraka:  [DMESG-FAIL][21] ([fdo#112406]) -> [PASS][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-kbl-soraka/igt@i915_selftest@live_gt_heartbeat.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/fi-kbl-soraka/igt@i915_selftest@live_gt_heartbeat.html

  * igt@i915_selftest@live_gt_lrc:
- fi-skl-6600u:   [DMESG-FAIL][23] ([i915#889]) -> [PASS][24] +7 
similar issues
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-skl-6600u/igt@i915_selftest@live_gt_lrc.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/fi-skl-6600u/igt@i915_selftest@live_gt_lrc.html

  * igt@i915_selftest@live_sanitycheck:
- fi-skl-lmem:[INCOMPLETE][25] -> [PASS][26]
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-skl-lmem/igt@i915_selftest@live_sanitycheck.html
   [26]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15961/fi-skl-lmem/igt@i915_selftest@live_sanitycheck.html

  
 Warnings 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/tgl: Media decompression support

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915/tgl: Media decompression support
URL   : https://patchwork.freedesktop.org/series/71535/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
33c7be81f878 drm/i915: Add support for non-power-of-2 FB plane alignment
fdf7e1ca3344 drm/i915/tgl: Make sure a semiplanar UV plane is tile row size 
aligned
cdc1c53c61f4 drm/i915: Add debug message for FB plane[0].offset!=0 error
877d8123db86 drm/i915: Make sure plane dims are correct for UV CCS planes
3224c01082d0 drm/framebuffer: Format modifier for Intel Gen-12 media compression
e101ef87bf8a drm/fb: Extend format_info member arrays to handle four planes
046f9d49ca43 drm/i915/tgl: Gen-12 display can decompress surfaces compressed by 
the media engine
-:13: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#13: 
compressed buffers. Unlike render decompression, plane 6 and  plane 7 do not

-:128: WARNING:MISSING_BREAK: Possible switch case/default not preceded by 
break or fallthrough comment
#128: FILE: drivers/gpu/drm/i915/display/intel_display.c:2685:
+   case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:

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

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


Re: [Intel-gfx] [PATCH] drm/i915/gt: Restore coarse power gating

2019-12-31 Thread Imre Deak
On Tue, Dec 31, 2019 at 12:27:08PM +, Chris Wilson wrote:
> The coarse power gating was disabled as part of commit 2248a28384fe
> ("drm/i915/gen8+: Add RC6 CTX corruption WA") as a prelude to recover
> from the context corruption; the power gating itself has no direct
> impact on the RC6 context corruption. However, that recovery scheme was
> never implemented due to difficult corner cases, and so we no longer need
> to keep the power gating disabled.
> 
> Fixes: 2248a28384fe ("drm/i915/gen8+: Add RC6 CTX corruption WA")
> Closes: https://gitlab.freedesktop.org/drm/intel/issues/846
> Signed-off-by: Chris Wilson 
> Cc: Imre Deak 
> Cc: Mika Kuoppala 
> Cc: Eero Tamminen 
> Cc: Jon Bloomfield 

Yes, the original reason to disable CPG doesn't apply imo any more:
Reviewed-by: Imre Deak 

> ---
>  drivers/gpu/drm/i915/i915_drv.h | 7 +--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index b7f122dccdca..85b565e69ad4 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1657,8 +1657,11 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
>   (IS_BROADWELL(dev_priv) || IS_GEN(dev_priv, 9))
>  
>  /* WaRsDisableCoarsePowerGating:skl,cnl */
> -#define NEEDS_WaRsDisableCoarsePowerGating(dev_priv) \
> - IS_GEN_RANGE(dev_priv, 9, 10)
> +#define NEEDS_WaRsDisableCoarsePowerGating(dev_priv) 
> \
> + (IS_CANNONLAKE(dev_priv) || \
> +  IS_SKL_GT3(dev_priv) ||\
> +  IS_SKL_GT4(dev_priv))
> +
>  
>  #define HAS_GMBUS_IRQ(dev_priv) (INTEL_GEN(dev_priv) >= 4)
>  #define HAS_GMBUS_BURST_READ(dev_priv) (INTEL_GEN(dev_priv) >= 10 || \
> -- 
> 2.25.0.rc0
> 
___
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 [CI,1/2] drm/i915/gem: Extend mmap support for lmem

2019-12-31 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915/gem: Extend mmap support for lmem
URL   : https://patchwork.freedesktop.org/series/71534/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7660 -> Patchwork_15960


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_15960 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_15960, 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_15960/index.html

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live_mman:
- fi-gdg-551: [PASS][1] -> [DMESG-FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-gdg-551/igt@i915_selftest@live_mman.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-gdg-551/igt@i915_selftest@live_mman.html
- fi-whl-u:   [PASS][3] -> [INCOMPLETE][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-whl-u/igt@i915_selftest@live_mman.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-whl-u/igt@i915_selftest@live_mman.html
- fi-ilk-650: [PASS][5] -> [INCOMPLETE][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-ilk-650/igt@i915_selftest@live_mman.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-ilk-650/igt@i915_selftest@live_mman.html
- fi-bsw-n3050:   [PASS][7] -> [INCOMPLETE][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-bsw-n3050/igt@i915_selftest@live_mman.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-bsw-n3050/igt@i915_selftest@live_mman.html
- fi-hsw-4770:[PASS][9] -> [INCOMPLETE][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-hsw-4770/igt@i915_selftest@live_mman.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-hsw-4770/igt@i915_selftest@live_mman.html
- fi-skl-guc: [PASS][11] -> [INCOMPLETE][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-skl-guc/igt@i915_selftest@live_mman.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-skl-guc/igt@i915_selftest@live_mman.html
- fi-skl-6700k2:  [PASS][13] -> [INCOMPLETE][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-skl-6700k2/igt@i915_selftest@live_mman.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-skl-6700k2/igt@i915_selftest@live_mman.html
- fi-snb-2520m:   [PASS][15] -> [INCOMPLETE][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-snb-2520m/igt@i915_selftest@live_mman.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-snb-2520m/igt@i915_selftest@live_mman.html
- fi-cfl-8700k:   [PASS][17] -> [INCOMPLETE][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-cfl-8700k/igt@i915_selftest@live_mman.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-cfl-8700k/igt@i915_selftest@live_mman.html
- fi-hsw-peppy:   [PASS][19] -> [INCOMPLETE][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-hsw-peppy/igt@i915_selftest@live_mman.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-hsw-peppy/igt@i915_selftest@live_mman.html
- fi-kbl-7500u:   NOTRUN -> [INCOMPLETE][21]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-kbl-7500u/igt@i915_selftest@live_mman.html
- fi-kbl-guc: [PASS][22] -> [INCOMPLETE][23]
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-kbl-guc/igt@i915_selftest@live_mman.html
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-kbl-guc/igt@i915_selftest@live_mman.html
- fi-bsw-kefka:   [PASS][24] -> [INCOMPLETE][25]
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-bsw-kefka/igt@i915_selftest@live_mman.html
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-bsw-kefka/igt@i915_selftest@live_mman.html
- fi-bwr-2160:[PASS][26] -> [INCOMPLETE][27]
   [26]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7660/fi-bwr-2160/igt@i915_selftest@live_mman.html
   [27]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-bwr-2160/igt@i915_selftest@live_mman.html
- fi-kbl-r:   NOTRUN -> [INCOMPLETE][28]
   [28]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15960/fi-kbl-r/igt@i915_selftest@live_mman.html
- fi-bdw-5557u:   [PASS][29] -> [INCOMPLETE][30]
   [29]: 

Re: [Intel-gfx] [PATCH 3/3] drm/i915/dumb: return the allocated memory size

2019-12-31 Thread Chris Wilson
Quoting Ramalingam C (2019-12-30 13:23:51)
> On successful allocation, instead returning the requested size
> return the total size of allocated pages.
> 
> Signed-off-by: Ramalingam C 
> ---
>  drivers/gpu/drm/i915/i915_gem.c | 13 +++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 7f39df3fab7f..5a53de797852 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -241,7 +241,9 @@ i915_gem_dumb_create(struct drm_file *file,
>  {
> enum intel_memory_type mem_type = INTEL_MEMORY_SYSTEM;
> int cpp = DIV_ROUND_UP(args->bpp, 8);
> +   struct intel_memory_region *mr;
> u32 format;
> +   int ret;
>  
> switch (cpp) {
> case 1:
> @@ -270,8 +272,15 @@ i915_gem_dumb_create(struct drm_file *file,
> if (HAS_LMEM(to_i915(dev)))
> mem_type = INTEL_MEMORY_LOCAL;
>  
> -   return i915_gem_create(file, to_i915(dev), mem_type,
> -  >size, >handle);
> +   ret = i915_gem_create(file, to_i915(dev), mem_type,
> + >size, >handle);
> +   if (ret)
> +   goto out;
> +
> +   mr = intel_memory_region_by_type(to_i915(dev), mem_type);
> +   args->size = ALIGN(args->size, mr->min_page_size);

How? How did we create an object that was not a multiple of the minimum
page size?

(Besides you should be using obj->mm.region here rather than assuming,
so more rearrangement if this is the right approach.)
-Chris
___
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 [CI,1/2] drm/i915/gem: Extend mmap support for lmem

2019-12-31 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915/gem: Extend mmap support for lmem
URL   : https://patchwork.freedesktop.org/series/71534/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
e69fb2d55ec0 drm/i915/gem: Extend mmap support for lmem
16126f545232 drm/i915/selftests: Add selftest for memory region PF handling
-:141: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'x' - possible side-effects?
#141: FILE: drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c:817:
+#define expand32(x) (((x) << 0) | ((x) << 8) | ((x) << 16) | ((x) << 24))

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

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


[Intel-gfx] [PATCH 6/7] drm/fb: Extend format_info member arrays to handle four planes

2019-12-31 Thread Imre Deak
From: Dhinakaran Pandiyan 

addfb() uAPI has supported four planes for a while now, make format_info
compatible with that.

Cc: Ville Syrjälä 
Cc: Matt Roper 
Cc: Mika Kahola 
Cc: dri-de...@lists.freedesktop.org
Signed-off-by: Dhinakaran Pandiyan 
Signed-off-by: Imre Deak 
Reviewed-by: Mika Kahola 
---
 include/drm/drm_fourcc.h | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/drm/drm_fourcc.h b/include/drm/drm_fourcc.h
index 306d1efeb5e0..156b122c0ad5 100644
--- a/include/drm/drm_fourcc.h
+++ b/include/drm/drm_fourcc.h
@@ -78,7 +78,7 @@ struct drm_format_info {
 * triplet @char_per_block, @block_w, @block_h for better
 * describing the pixel format.
 */
-   u8 cpp[3];
+   u8 cpp[4];
 
/**
 * @char_per_block:
@@ -104,7 +104,7 @@ struct drm_format_info {
 * information from their drm_mode_config.get_format_info hook
 * if they want the core to be validating the pitch.
 */
-   u8 char_per_block[3];
+   u8 char_per_block[4];
};
 
/**
@@ -113,7 +113,7 @@ struct drm_format_info {
 * Block width in pixels, this is intended to be accessed through
 * drm_format_info_block_width()
 */
-   u8 block_w[3];
+   u8 block_w[4];
 
/**
 * @block_h:
@@ -121,7 +121,7 @@ struct drm_format_info {
 * Block height in pixels, this is intended to be accessed through
 * drm_format_info_block_height()
 */
-   u8 block_h[3];
+   u8 block_h[4];
 
/** @hsub: Horizontal chroma subsampling factor */
u8 hsub;
-- 
2.23.1

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


[Intel-gfx] [PATCH 1/7] drm/i915: Add support for non-power-of-2 FB plane alignment

2019-12-31 Thread Imre Deak
At least one framebuffer plane on TGL - the UV plane of YUV semiplanar
FBs - requires a non-power-of-2 alignment, so add support for this. This
new alignment restriction applies only to an offset within an FB, so the
GEM buffer itself containing the FB must still be power-of-2 aligned.
Add a check for this (in practice plane 0, since the plane 0 offset must
be 0).

v2:
- Fix WARN check for alignment=0.
v3:
- Return error for alignment programming bugs. (Chris)

Cc: Chris Wilson 
Cc: Ville Syrjälä 
Signed-off-by: Imre Deak 
Reviewed-by: Chris Wilson 
---
 drivers/gpu/drm/i915/display/intel_display.c | 24 +---
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index da5266e76738..6e4152770c15 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2194,6 +2194,8 @@ intel_pin_and_fence_fb_obj(struct drm_framebuffer *fb,
return ERR_PTR(-EINVAL);
 
alignment = intel_surf_alignment(fb, 0);
+   if (WARN_ON(alignment && !is_power_of_2(alignment)))
+   return ERR_PTR(-EINVAL);
 
/* Note that the w/a also requires 64 PTE of padding following the
 * bo. We currently fill all unused PTE with the shadow page and so
@@ -2432,9 +2434,6 @@ static u32 intel_compute_aligned_offset(struct 
drm_i915_private *dev_priv,
unsigned int cpp = fb->format->cpp[color_plane];
u32 offset, offset_aligned;
 
-   if (alignment)
-   alignment--;
-
if (!is_surface_linear(fb, color_plane)) {
unsigned int tile_size, tile_width, tile_height;
unsigned int tile_rows, tiles, pitch_tiles;
@@ -2456,17 +2455,24 @@ static u32 intel_compute_aligned_offset(struct 
drm_i915_private *dev_priv,
*x %= tile_width;
 
offset = (tile_rows * pitch_tiles + tiles) * tile_size;
-   offset_aligned = offset & ~alignment;
+
+   offset_aligned = offset;
+   if (alignment)
+   offset_aligned = rounddown(offset_aligned, alignment);
 
intel_adjust_tile_offset(x, y, tile_width, tile_height,
 tile_size, pitch_tiles,
 offset, offset_aligned);
} else {
offset = *y * pitch + *x * cpp;
-   offset_aligned = offset & ~alignment;
-
-   *y = (offset & alignment) / pitch;
-   *x = ((offset & alignment) - *y * pitch) / cpp;
+   offset_aligned = offset;
+   if (alignment) {
+   offset_aligned = rounddown(offset_aligned, alignment);
+   *y = (offset % alignment) / pitch;
+   *x = ((offset % alignment) - *y * pitch) / cpp;
+   } else {
+   *y = *x = 0;
+   }
}
 
return offset_aligned;
@@ -3738,6 +3744,8 @@ static int skl_check_main_surface(struct 
intel_plane_state *plane_state)
intel_add_fb_offsets(, , plane_state, 0);
offset = intel_plane_compute_aligned_offset(, , plane_state, 0);
alignment = intel_surf_alignment(fb, 0);
+   if (WARN_ON(alignment && !is_power_of_2(alignment)))
+   return -EINVAL;
 
/*
 * AUX surface offset is specified as the distance from the
-- 
2.23.1

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


[Intel-gfx] [PATCH 0/7] drm/i915/tgl: Media decompression support

2019-12-31 Thread Imre Deak
This is the second part of [1] with media decompression enabled. I left
the third part with render decompression/color clear functionality for
later - once we have the IGT test for it in place.

Cc: Dhinakaran Pandiyan 
Cc: Radhakrishna Sripada 
Cc: Ville Syrjala 
Cc: Nanley G Chery 
Cc: Mika Kahola 
Cc: Matt Roper 

Dhinakaran Pandiyan (3):
  drm/framebuffer: Format modifier for Intel Gen-12 media compression
  drm/fb: Extend format_info member arrays to handle four planes
  drm/i915/tgl: Gen-12 display can decompress surfaces compressed by the
media engine

Imre Deak (4):
  drm/i915: Add support for non-power-of-2 FB plane alignment
  drm/i915/tgl: Make sure a semiplanar UV plane is tile row size aligned
  drm/i915: Add debug message for FB plane[0].offset!=0 error
  drm/i915: Make sure plane dims are correct for UV CCS planes

 drivers/gpu/drm/i915/display/intel_display.c  | 246 ++
 drivers/gpu/drm/i915/display/intel_display.h  |   1 +
 .../drm/i915/display/intel_display_types.h|   6 +-
 drivers/gpu/drm/i915/display/intel_sprite.c   |  55 +++-
 drivers/gpu/drm/i915/i915_reg.h   |   1 +
 include/drm/drm_fourcc.h  |   8 +-
 include/uapi/drm/drm_fourcc.h |  13 +
 7 files changed, 262 insertions(+), 68 deletions(-)

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


[Intel-gfx] [PATCH 3/7] drm/i915: Add debug message for FB plane[0].offset!=0 error

2019-12-31 Thread Imre Deak
Print a debug message if the FB plane[0] offset is not 0 as expected, to
help understainding an add FB IOCTL fail.

Cc: Chris Wilson 
Cc: Ville Syrjälä 
Cc: Mika Kahola 
Signed-off-by: Imre Deak 
---
 drivers/gpu/drm/i915/display/intel_display.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index bbc9cf288067..2c2450d3469b 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -16912,8 +16912,11 @@ static int intel_framebuffer_init(struct 
intel_framebuffer *intel_fb,
}
 
/* FIXME need to adjust LINOFF/TILEOFF accordingly. */
-   if (mode_cmd->offsets[0] != 0)
+   if (mode_cmd->offsets[0] != 0) {
+   DRM_DEBUG_KMS("plane 0 offset (0x%08x) must be 0\n",
+ mode_cmd->offsets[0]);
goto err;
+   }
 
drm_helper_mode_fill_fb_struct(_priv->drm, fb, mode_cmd);
 
-- 
2.23.1

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


[Intel-gfx] [PATCH 7/7] drm/i915/tgl: Gen-12 display can decompress surfaces compressed by the media engine

2019-12-31 Thread Imre Deak
From: Dhinakaran Pandiyan 

Detect the modifier corresponding to media compression to enable
display decompression for YUV and xRGB packed formats. A new modifier is
added so that the driver can distinguish between media and render
compressed buffers. Unlike render decompression, plane 6 and  plane 7 do not
support media decompression.

v2: Fix checkpatch warnings on code style (Lucas)

From DK:
Separate modifier array for planes that cannot decompress media (Ville)

v3: Support planar formats
v4: Switch plane order
v5:
- Use format block descriptors to get CCS subsampling calculation right
  everywhere.
- Extend the plane state normal view array to accommodate 4 color planes.
- Use helpers to convert between main and CCS planes.
v6: Add missing packed YUV formats to the MC format list. (Yang)
v7: Align UV planes to tile-row size.

Cc: Nanley G Chery 
Cc: Ville Syrjälä 
Cc: Matt Roper 
Cc: Yang A Shi 
Cc: Radhakrishna Sripada 
Signed-off-by: Dhinakaran Pandiyan 
Signed-off-by: Lucas De Marchi 
Signed-off-by: Imre Deak 
Reviewed-by: Radhakrishna Sripada  (v6)
---
 drivers/gpu/drm/i915/display/intel_display.c  | 176 ++
 drivers/gpu/drm/i915/display/intel_display.h  |   1 +
 .../drm/i915/display/intel_display_types.h|   6 +-
 drivers/gpu/drm/i915/display/intel_sprite.c   |  55 --
 drivers/gpu/drm/i915/i915_reg.h   |   1 +
 5 files changed, 188 insertions(+), 51 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index d5128e900660..da4db5052579 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -1945,7 +1945,9 @@ static bool is_ccs_plane(const struct drm_framebuffer 
*fb, int plane)
 
 static bool is_gen12_ccs_modifier(u64 modifier)
 {
-   return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS;
+   return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS ||
+  modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS;
+
 }
 
 static bool is_gen12_ccs_plane(const struct drm_framebuffer *fb, int plane)
@@ -1978,8 +1980,7 @@ static int ccs_to_main_plane(const struct drm_framebuffer 
*fb, int ccs_plane)
 }
 
 /* Return either the main plane's CCS or - if not a CCS FB - UV plane */
-static int
-intel_main_to_aux_plane(const struct drm_framebuffer *fb, int main_plane)
+int intel_main_to_aux_plane(const struct drm_framebuffer *fb, int main_plane)
 {
if (is_ccs_modifier(fb->modifier))
return main_to_ccs_plane(fb, main_plane);
@@ -2021,6 +2022,7 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, 
int color_plane)
return 128;
/* fall through */
case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
+   case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
if (is_ccs_plane(fb, color_plane))
return 64;
/* fall through */
@@ -2171,6 +2173,10 @@ static unsigned int intel_surf_alignment(const struct 
drm_framebuffer *fb,
if (INTEL_GEN(dev_priv) >= 9)
return 256 * 1024;
return 0;
+   case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
+   if (is_semiplanar_uv_plane(fb, color_plane))
+   return intel_tile_row_size(fb, color_plane);
+   /* Fall-through */
case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
return 16 * 1024;
case I915_FORMAT_MOD_Y_TILED_CCS:
@@ -2574,6 +2580,7 @@ static unsigned int intel_fb_modifier_to_tiling(u64 
fb_modifier)
case I915_FORMAT_MOD_Y_TILED:
case I915_FORMAT_MOD_Y_TILED_CCS:
case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
+   case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
return I915_TILING_Y;
default:
return I915_TILING_NONE;
@@ -2625,6 +2632,30 @@ static const struct drm_format_info gen12_ccs_formats[] 
= {
{ .format = DRM_FORMAT_ABGR, .depth = 32, .num_planes = 2,
  .char_per_block = { 4, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
  .hsub = 1, .vsub = 1, .has_alpha = true },
+   { .format = DRM_FORMAT_YUYV, .num_planes = 2,
+ .char_per_block = { 2, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
+ .hsub = 2, .vsub = 1, .is_yuv = true },
+   { .format = DRM_FORMAT_YVYU, .num_planes = 2,
+ .char_per_block = { 2, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
+ .hsub = 2, .vsub = 1, .is_yuv = true },
+   { .format = DRM_FORMAT_UYVY, .num_planes = 2,
+ .char_per_block = { 2, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
+ .hsub = 2, .vsub = 1, .is_yuv = true },
+   { .format = DRM_FORMAT_VYUY, .num_planes = 2,
+ .char_per_block = { 2, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
+ .hsub = 2, .vsub = 1, .is_yuv = true },
+   { .format = DRM_FORMAT_NV12, .num_planes = 4,
+ .char_per_block = { 1, 2, 1, 1 }, 

[Intel-gfx] [PATCH 2/7] drm/i915/tgl: Make sure a semiplanar UV plane is tile row size aligned

2019-12-31 Thread Imre Deak
Currently the GGTT offset of a UV plane in a semiplanar YUV FB is tile
size (4kB) aligned. I noticed, that enforcing only this alignment leads
oddly to random memory corruptions on TGL while scanning out Y-tiled
FBs. This issue can be easily reproduced with a UV plane offset that is
not aligned to the plane's tile row size.

Some experiments showed the correct alignment to be tile row size
indeed. This also makes sense, since the de-tiling fence created for the
object - with its own stride and so "left" and "right" edge - applies to
all the planes in the FB, so each tile row of all planes should be tile
row aligned.

In fact BSpec requires this alignment since SKL. On SKL we may enforce
this due to the AUX plane x,y coords check, but on ICL and TGL we don't.
For now enforce this only on TGL; I can follow up with any necessary
change for ICL after more tests.

BSpec requires a stricter alignment for linear UV planes too (kind of a
tile row alignment), but it's unclear whether that's really needed
(couldn't be explained with the de-tiling fence as above) and enforcing
that could break existing user space; so avoid that too for now until
more tests.

v2:
- Clarify the commit log wrt. the address space the alignment applies to.
  (Chris)

Cc: Chris Wilson 
Cc: Ville Syrjälä 
Signed-off-by: Imre Deak 
Acked-by: Chris Wilson 
---
 drivers/gpu/drm/i915/display/intel_display.c | 36 ++--
 1 file changed, 33 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 6e4152770c15..bbc9cf288067 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -1995,6 +1995,13 @@ intel_format_info_is_yuv_semiplanar(const struct 
drm_format_info *info,
   info->num_planes == (is_ccs_modifier(modifier) ? 4 : 2);
 }
 
+static bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb,
+  int color_plane)
+{
+   return intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier) &&
+  color_plane == 1;
+}
+
 static unsigned int
 intel_tile_width_bytes(const struct drm_framebuffer *fb, int color_plane)
 {
@@ -2069,6 +2076,16 @@ static void intel_tile_dims(const struct drm_framebuffer 
*fb, int color_plane,
*tile_height = intel_tile_height(fb, color_plane);
 }
 
+static unsigned int intel_tile_row_size(const struct drm_framebuffer *fb,
+   int color_plane)
+{
+   unsigned int tile_width, tile_height;
+
+   intel_tile_dims(fb, color_plane, _width, _height);
+
+   return fb->pitches[color_plane] * tile_height;
+}
+
 unsigned int
 intel_fb_align_height(const struct drm_framebuffer *fb,
  int color_plane, unsigned int height)
@@ -2143,7 +2160,8 @@ static unsigned int intel_surf_alignment(const struct 
drm_framebuffer *fb,
struct drm_i915_private *dev_priv = to_i915(fb->dev);
 
/* AUX_DIST needs only 4K alignment */
-   if (is_aux_plane(fb, color_plane))
+   if ((INTEL_GEN(dev_priv) < 12 && is_aux_plane(fb, color_plane)) ||
+   is_ccs_plane(fb, color_plane))
return 4096;
 
switch (fb->modifier) {
@@ -2158,6 +2176,10 @@ static unsigned int intel_surf_alignment(const struct 
drm_framebuffer *fb,
case I915_FORMAT_MOD_Y_TILED_CCS:
case I915_FORMAT_MOD_Yf_TILED_CCS:
case I915_FORMAT_MOD_Y_TILED:
+   if (INTEL_GEN(dev_priv) >= 12 &&
+   is_semiplanar_uv_plane(fb, color_plane))
+   return intel_tile_row_size(fb, color_plane);
+   /* Fall-through */
case I915_FORMAT_MOD_Yf_TILED:
return 1 * 1024 * 1024;
default:
@@ -2505,9 +2527,17 @@ static int intel_fb_offset_to_xy(int *x, int *y,
 {
struct drm_i915_private *dev_priv = to_i915(fb->dev);
unsigned int height;
+   u32 alignment;
+
+   if (INTEL_GEN(dev_priv) >= 12 &&
+   is_semiplanar_uv_plane(fb, color_plane))
+   alignment = intel_tile_row_size(fb, color_plane);
+   else if (fb->modifier != DRM_FORMAT_MOD_LINEAR)
+   alignment = intel_tile_size(dev_priv);
+   else
+   alignment = 0;
 
-   if (fb->modifier != DRM_FORMAT_MOD_LINEAR &&
-   fb->offsets[color_plane] % intel_tile_size(dev_priv)) {
+   if (alignment != 0 && fb->offsets[color_plane] % alignment) {
DRM_DEBUG_KMS("Misaligned offset 0x%08x for color plane %d\n",
  fb->offsets[color_plane], color_plane);
return -EINVAL;
-- 
2.23.1

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


[Intel-gfx] [PATCH 5/7] drm/framebuffer: Format modifier for Intel Gen-12 media compression

2019-12-31 Thread Imre Deak
From: Dhinakaran Pandiyan 

Gen-12 display can decompress surfaces compressed by the media engine, add
a new modifier as the driver needs to know the surface was compressed by
the media or render engine.

v2: Update code comment describing the color plane order for YUV
semiplanar formats.

Cc: Nanley G Chery 
Cc: Matt Roper 
Cc: Ville Syrjälä 
Cc: Mika Kahola 
Cc: dri-de...@lists.freedesktop.org
Signed-off-by: Dhinakaran Pandiyan 
Signed-off-by: Lucas De Marchi 
Signed-off-by: Imre Deak 
Reviewed-by: Mika Kahola 
---
 include/uapi/drm/drm_fourcc.h | 13 +
 1 file changed, 13 insertions(+)

diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h
index 5ba481f49931..8bc0b31597d8 100644
--- a/include/uapi/drm/drm_fourcc.h
+++ b/include/uapi/drm/drm_fourcc.h
@@ -421,6 +421,19 @@ extern "C" {
  */
 #define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS fourcc_mod_code(INTEL, 6)
 
+/*
+ * Intel color control surfaces (CCS) for Gen-12 media compression
+ *
+ * The main surface is Y-tiled and at plane index 0, the CCS is linear and
+ * at index 1. A 64B CCS cache line corresponds to an area of 4x1 tiles in
+ * main surface. In other words, 4 bits in CCS map to a main surface cache
+ * line pair. The main surface pitch is required to be a multiple of four
+ * Y-tile widths. For semi-planar formats like NV12, CCS planes follow the
+ * Y and UV planes i.e., planes 0 and 1 are used for Y and UV surfaces,
+ * planes 2 and 3 for the respective CCS.
+ */
+#define I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS fourcc_mod_code(INTEL, 7)
+
 /*
  * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
  *
-- 
2.23.1

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


[Intel-gfx] [PATCH 4/7] drm/i915: Make sure plane dims are correct for UV CCS planes

2019-12-31 Thread Imre Deak
As intel_fb_plane_get_subsampling() returns the subsampling factor wrt.
its main plane, for a CCS plane we need to apply both the main and the
CCS plane's subsampling factor on the FB's dimensions to get the CCS
plane's dimensions.

Cc: Dhinakaran Pandiyan 
Cc: Mika Kahola 
Cc: Radhakrishna Sripada 
Cc: Ville Syrjälä 
Cc: Matt Roper 
Signed-off-by: Imre Deak 
---
 drivers/gpu/drm/i915/display/intel_display.c | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 2c2450d3469b..d5128e900660 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2913,11 +2913,15 @@ intel_fb_check_ccs_xy(struct drm_framebuffer *fb, int 
ccs_plane, int x, int y)
 static void
 intel_fb_plane_dims(int *w, int *h, struct drm_framebuffer *fb, int 
color_plane)
 {
+   int main_plane = is_ccs_plane(fb, color_plane) ?
+ccs_to_main_plane(fb, color_plane) : 0;
+   int main_hsub, main_vsub;
int hsub, vsub;
 
+   intel_fb_plane_get_subsampling(_hsub, _vsub, fb, main_plane);
intel_fb_plane_get_subsampling(, , fb, color_plane);
-   *w = fb->width / hsub;
-   *h = fb->height / vsub;
+   *w = fb->width / main_hsub / hsub;
+   *h = fb->height / main_vsub / vsub;
 }
 
 /*
-- 
2.23.1

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


[Intel-gfx] [CI 2/2] drm/i915/selftests: Add selftest for memory region PF handling

2019-12-31 Thread Chris Wilson
From: Abdiel Janulgue 

Instead of testing individually our new fault handlers, iterate over all
memory regions and test all from one interface.

Signed-off-by: Abdiel Janulgue 
Cc: Matthew Auld 
Cc: Chris Wilson 
Cc: Joonas Lahtinen 
Reported-by: kbuild test robot 
---
 .../drm/i915/gem/selftests/i915_gem_mman.c| 246 --
 1 file changed, 171 insertions(+), 75 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c 
b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
index cbf796da64e3..a7ef35117aa2 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
@@ -9,6 +9,7 @@
 #include "gt/intel_engine_pm.h"
 #include "gt/intel_gt.h"
 #include "gt/intel_gt_pm.h"
+#include "gem/i915_gem_region.h"
 #include "huge_gem_object.h"
 #include "i915_selftest.h"
 #include "selftests/i915_random.h"
@@ -725,44 +726,121 @@ static int igt_mmap_offset_exhaustion(void *arg)
goto out;
 }
 
-#define expand32(x) (((x) << 0) | ((x) << 8) | ((x) << 16) | ((x) << 24))
-static int igt_mmap(void *arg, enum i915_mmap_type type)
+static int gtt_set(struct drm_i915_gem_object *obj)
 {
-   struct drm_i915_private *i915 = arg;
-   struct drm_i915_gem_object *obj;
-   struct i915_mmap_offset *mmo;
-   struct vm_area_struct *area;
-   unsigned long addr;
-   void *vaddr;
-   int err = 0, i;
+   struct i915_vma *vma;
+   void __iomem *map;
+   int err = 0;
 
-   if (!i915_ggtt_has_aperture(>ggtt))
-   return 0;
+   vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, PIN_MAPPABLE);
+   if (IS_ERR(vma))
+   return PTR_ERR(vma);
 
-   obj = i915_gem_object_create_internal(i915, PAGE_SIZE);
-   if (IS_ERR(obj))
-   return PTR_ERR(obj);
+   intel_gt_pm_get(vma->vm->gt);
+   map = i915_vma_pin_iomap(vma);
+   i915_vma_unpin(vma);
+   if (IS_ERR(map)) {
+   err = PTR_ERR(map);
+   goto out;
+   }
 
-   vaddr = i915_gem_object_pin_map(obj, I915_MAP_WB);
-   if (IS_ERR(vaddr)) {
-   err = PTR_ERR(vaddr);
+   memset_io(map, POISON_INUSE, PAGE_SIZE);
+   i915_vma_unpin_iomap(vma);
+
+out:
+   intel_gt_pm_put(vma->vm->gt);
+   return err;
+}
+
+static int gtt_check(struct drm_i915_gem_object *obj)
+{
+   struct i915_vma *vma;
+   void __iomem *map;
+   int err = 0;
+
+   vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, PIN_MAPPABLE);
+   if (IS_ERR(vma))
+   return PTR_ERR(vma);
+
+   intel_gt_pm_get(vma->vm->gt);
+   map = i915_vma_pin_iomap(vma);
+   i915_vma_unpin(vma);
+   if (IS_ERR(map)) {
+   err = PTR_ERR(map);
goto out;
}
+
+   if (memchr_inv((void __force *)map, POISON_FREE, PAGE_SIZE)) {
+   pr_err("Write via mmap did not land in backing store\n");
+   err = -EINVAL;
+   }
+   i915_vma_unpin_iomap(vma);
+
+out:
+   intel_gt_pm_put(vma->vm->gt);
+   return err;
+}
+
+static int wc_set(struct drm_i915_gem_object *obj)
+{
+   void *vaddr;
+
+   vaddr = i915_gem_object_pin_map(obj, I915_MAP_WC);
+   if (IS_ERR(vaddr))
+   return PTR_ERR(vaddr);
+
memset(vaddr, POISON_INUSE, PAGE_SIZE);
i915_gem_object_flush_map(obj);
i915_gem_object_unpin_map(obj);
 
-   mmo = mmap_offset_attach(obj, type, NULL);
-   if (IS_ERR(mmo)) {
-   err = PTR_ERR(mmo);
-   goto out;
+   return 0;
+}
+
+static int wc_check(struct drm_i915_gem_object *obj)
+{
+   void *vaddr;
+   int err = 0;
+
+   vaddr = i915_gem_object_pin_map(obj, I915_MAP_WC);
+   if (IS_ERR(vaddr))
+   return PTR_ERR(vaddr);
+
+   if (memchr_inv(vaddr, POISON_FREE, PAGE_SIZE)) {
+   pr_err("Write via mmap did not land in backing store\n");
+   err = -EINVAL;
}
+   i915_gem_object_unpin_map(obj);
+
+   return err;
+}
+
+#define expand32(x) (((x) << 0) | ((x) << 8) | ((x) << 16) | ((x) << 24))
+static int __igt_mmap(struct drm_i915_private *i915,
+ struct drm_i915_gem_object *obj,
+ enum i915_mmap_type type)
+{
+   struct i915_mmap_offset *mmo;
+   struct vm_area_struct *area;
+   unsigned long addr;
+   int err, i;
+
+   if (!i915_ggtt_has_aperture(>ggtt) &&
+   type == I915_MMAP_TYPE_GTT)
+   return 0;
+
+   err = wc_set(obj);
+   if (err == -ENXIO)
+   err = gtt_set(obj);
+   if (err)
+   return err;
+
+   mmo = mmap_offset_attach(obj, type, NULL);
+   if (IS_ERR(mmo))
+   return PTR_ERR(mmo);
 
addr = igt_mmap_node(i915, >vma_node, 0, PROT_WRITE, MAP_SHARED);
-   if (IS_ERR_VALUE(addr)) {
-   err = addr;
-   goto out;
-   }
+   if (IS_ERR_VALUE(addr))
+  

[Intel-gfx] [CI 1/2] drm/i915/gem: Extend mmap support for lmem

2019-12-31 Thread Chris Wilson
From: Abdiel Janulgue 

Local memory objects are similar to our usual scatterlist, but instead
of using the struct page stored therein, we need to use the
sg->dma_address.

Signed-off-by: Abdiel Janulgue 
Cc: Chris Wilson 
---
 drivers/gpu/drm/i915/gem/i915_gem_mman.c | 16 +---
 drivers/gpu/drm/i915/i915_drv.h  |  6 +++---
 drivers/gpu/drm/i915/i915_mm.c   | 23 ++-
 3 files changed, 26 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c 
b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
index 905527ce2999..4caf7d750c34 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
@@ -216,6 +216,7 @@ static vm_fault_t i915_error_to_vmf_fault(int err)
 
case -ENOSPC: /* shmemfs allocation failure */
case -ENOMEM: /* our allocation failure */
+   case -ENXIO:
return VM_FAULT_OOM;
 
case 0:
@@ -236,11 +237,10 @@ static vm_fault_t vm_fault_cpu(struct vm_fault *vmf)
struct vm_area_struct *area = vmf->vma;
struct i915_mmap_offset *mmo = area->vm_private_data;
struct drm_i915_gem_object *obj = mmo->obj;
+   bool use_dma =
+   !i915_gem_object_type_has(obj, I915_GEM_OBJECT_HAS_STRUCT_PAGE);
int err;
 
-   if (unlikely(!i915_gem_object_has_struct_page(obj)))
-   return VM_FAULT_SIGBUS;
-
/* Sanity check that we allow writing into this object */
if (unlikely(i915_gem_object_is_readonly(obj) &&
 area->vm_flags & VM_WRITE))
@@ -251,9 +251,9 @@ static vm_fault_t vm_fault_cpu(struct vm_fault *vmf)
goto out;
 
/* PTEs are revoked in obj->ops->put_pages() */
-   err = remap_io_sg_page(area,
-  area->vm_start, area->vm_end - area->vm_start,
-  obj->mm.pages->sgl);
+   err = remap_io_sg(area,
+ area->vm_start, area->vm_end - area->vm_start,
+ obj->mm.pages->sgl, use_dma);
 
if (area->vm_flags & VM_WRITE) {
GEM_BUG_ON(!i915_gem_object_has_pinned_pages(obj));
@@ -552,7 +552,9 @@ __assign_mmap_offset(struct drm_file *file,
}
 
if (mmap_type != I915_MMAP_TYPE_GTT &&
-   !i915_gem_object_has_struct_page(obj)) {
+   !i915_gem_object_type_has(obj,
+ I915_GEM_OBJECT_HAS_STRUCT_PAGE |
+ I915_GEM_OBJECT_HAS_IOMEM)) {
err = -ENODEV;
goto out;
}
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index c2348272e211..5361a3a2a659 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2015,9 +2015,9 @@ int i915_reg_read_ioctl(struct drm_device *dev, void 
*data,
 int remap_io_mapping(struct vm_area_struct *vma,
 unsigned long addr, unsigned long pfn, unsigned long size,
 struct io_mapping *iomap);
-int remap_io_sg_page(struct vm_area_struct *vma,
-unsigned long addr, unsigned long size,
-struct scatterlist *sgl);
+int remap_io_sg(struct vm_area_struct *vma,
+   unsigned long addr, unsigned long size,
+   struct scatterlist *sgl, bool use_dma);
 
 static inline int intel_hws_csb_write_index(struct drm_i915_private *i915)
 {
diff --git a/drivers/gpu/drm/i915/i915_mm.c b/drivers/gpu/drm/i915/i915_mm.c
index 2998689e6d42..cb891914ae21 100644
--- a/drivers/gpu/drm/i915/i915_mm.c
+++ b/drivers/gpu/drm/i915/i915_mm.c
@@ -35,6 +35,7 @@ struct remap_pfn {
pgprot_t prot;
 
struct sgt_iter sgt;
+   bool use_dma;
 };
 
 static int remap_pfn(pte_t *pte, unsigned long addr, void *data)
@@ -53,7 +54,7 @@ static inline unsigned long sgt_pfn(const struct sgt_iter 
*sgt)
return sgt->pfn + (sgt->curr >> PAGE_SHIFT);
 }
 
-static int remap_sg_page(pte_t *pte, unsigned long addr, void *data)
+static int remap_sg(pte_t *pte, unsigned long addr, void *data)
 {
struct remap_pfn *r = data;
 
@@ -67,7 +68,7 @@ static int remap_sg_page(pte_t *pte, unsigned long addr, void 
*data)
 
r->sgt.curr += PAGE_SIZE;
if (r->sgt.curr >= r->sgt.max)
-   r->sgt = __sgt_iter(__sg_next(r->sgt.sgp), false);
+   r->sgt = __sgt_iter(__sg_next(r->sgt.sgp), r->use_dma);
 
return 0;
 }
@@ -108,30 +109,34 @@ int remap_io_mapping(struct vm_area_struct *vma,
 }
 
 /**
- * remap_io_sg_page - remap an IO mapping to userspace
+ * remap_io_sg- remap an IO mapping to userspace
  * @vma: user vma to map to
  * @addr: target user address to start at
  * @size: size of map area
  * @sgl: Start sg entry
+ * @use_dma: Use stored dma address or pfn
  *
  *  Note: this is only safe if the mm semaphore is held when called.
  */
-int remap_io_sg_page(struct vm_area_struct *vma,
-unsigned 

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: save state of AUD_FREQ_CNTRL on all gen9+ platforms

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915: save state of AUD_FREQ_CNTRL on all gen9+ platforms
URL   : https://patchwork.freedesktop.org/series/71527/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7657_full -> Patchwork_15955_full


Summary
---

  **SUCCESS**

  No regressions found.

  

New tests
-

  New tests have been introduced between CI_DRM_7657_full and 
Patchwork_15955_full:

### New Piglit tests (39) ###

  * shaders@glsl-fs-ceil:
- Statuses : 1 fail(s)
- Exec time: [0.10] s

  * shaders@glsl-fs-discard-01:
- Statuses : 1 fail(s)
- Exec time: [0.11] s

  * shaders@glsl-fs-floor:
- Statuses : 1 fail(s)
- Exec time: [0.13] s

  * shaders@glsl-fs-if-texture2d-discard:
- Statuses : 1 fail(s)
- Exec time: [0.12] s

  * shaders@glsl-fs-log:
- Statuses : 1 fail(s)
- Exec time: [0.14] s

  * spec@!opengl 1.0@gl-1.0-no-op-paths:
- Statuses : 1 fail(s)
- Exec time: [0.16] s

  * spec@!opengl 1.1@depthstencil-default_fb-blit samples=2:
- Statuses : 1 fail(s)
- Exec time: [0.18] s

  * spec@!opengl 1.1@depthstencil-default_fb-clear samples=4:
- Statuses : 1 fail(s)
- Exec time: [0.13] s

  * spec@!opengl 1.1@depthstencil-default_fb-drawpixels-32f_24_8_rev:
- Statuses : 1 fail(s)
- Exec time: [0.08] s

  * spec@!opengl 1.1@depthstencil-default_fb-drawpixels-float-and-ushort:
- Statuses : 1 fail(s)
- Exec time: [0.09] s

  * spec@!opengl 1.1@depthstencil-default_fb-readpixels-32f_24_8_rev samples=4:
- Statuses : 1 fail(s)
- Exec time: [0.09] s

  * spec@!opengl 1.1@dlist-fdo3129-01:
- Statuses : 1 fail(s)
- Exec time: [0.13] s

  * spec@!opengl 3.2@layered-rendering@clear-color-all-types 3d single_level:
- Statuses : 1 fail(s)
- Exec time: [0.06] s

  * 
spec@amd_shader_trinary_minmax@execution@built-in-functions@fs-mid3-int-int-int:
- Statuses : 1 fail(s)
- Exec time: [0.16] s

  * spec@arb_copy_image@arb_copy_image-targets gl_texture_1d 32 1 1 
gl_texture_rectangle 32 32 1 11 0 0 5 13 0 14 1 1:
- Statuses : 1 fail(s)
- Exec time: [0.15] s

  * spec@arb_framebuffer_object@framebuffer-blit-levels draw rgba:
- Statuses : 1 fail(s)
- Exec time: [0.11] s

  * 
spec@arb_gpu_shader_fp64@execution@built-in-functions@gs-greaterthan-dvec3-dvec3:
- Statuses : 1 fail(s)
- Exec time: [0.10] s

  * spec@arb_shader_image_load_store@restrict:
- Statuses : 1 fail(s)
- Exec time: [0.12] s

  * spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 1 8 3:
- Statuses : 1 fail(s)
- Exec time: [0.10] s

  * spec@arb_texture_multisample@texelfetch@2-fs-usampler2dmsarray:
- Statuses : 1 fail(s)
- Exec time: [0.10] s

  * spec@arb_texture_multisample@texelfetch@4-fs-isampler2dms:
- Statuses : 1 fail(s)
- Exec time: [0.08] s

  * spec@arb_texture_query_levels@execution@vs-maxlevel:
- Statuses : 1 fail(s)
- Exec time: [0.09] s

  * spec@arb_texture_query_lod@execution@fs-texturequerylod-nearest-biased:
- Statuses : 1 fail(s)
- Exec time: [0.12] s

  * spec@arb_texture_rectangle@texwrap rect proj:
- Statuses : 1 fail(s)
- Exec time: [0.11] s

  * spec@ext_framebuffer_multisample@alpha-to-one-msaa-disabled 2:
- Statuses : 1 fail(s)
- Exec time: [0.24] s

  * spec@ext_framebuffer_multisample@interpolation 4 non-centroid-disabled:
- Statuses : 1 fail(s)
- Exec time: [0.12] s

  * spec@ext_framebuffer_object@fbo-cubemap:
- Statuses : 1 fail(s)
- Exec time: [0.12] s

  * spec@glsl-1.10@execution@vs-nested-return-sibling-if:
- Statuses : 1 fail(s)
- Exec time: [0.16] s

  * 
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_backsecondarycolor-smooth-none:
- Statuses : 1 fail(s)
- Exec time: [0.09] s

  * 
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-other-flat-fixed:
- Statuses : 1 fail(s)
- Exec time: [0.15] s

  * 
spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_backsecondarycolor-flat-fixed:
- Statuses : 1 fail(s)
- Exec time: [0.11] s

  * spec@glsl-1.30@execution@tex-miplevel-selection textureprojgrad 
2drectshadow:
- Statuses : 1 fail(s)
- Exec time: [0.08] s

  * spec@glsl-1.40@execution@texturesize@fs-texturesize-isampler1darray:
- Statuses : 1 fail(s)
- Exec time: [0.12] s

  * spec@glsl-4.00@execution@built-in-functions@fs-greaterthan-dvec4-dvec4:
- Statuses : 1 fail(s)
- Exec time: [0.11] s

  * spec@glsl-4.20@execution@vs_in@vs-input-position-byte_ivec2-double_dvec3:
- Statuses : 1 fail(s)
- Exec time: [0.17] s

  * spec@glsl-4.30@execution@built-in-functions@cs-lessthan-ivec4-ivec4:
- Statuses : 1 fail(s)
- Exec time: [0.13] s

  * spec@glsl-4.30@execution@built-in-functions@cs-op-eq-float-float-using-if:
- Statuses : 1 fail(s)
- Exec time: [0.15] s

  * 

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Introduce remap_io_sg() to prefault discontiguous objects

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915: Introduce remap_io_sg() to prefault discontiguous objects
URL   : https://patchwork.freedesktop.org/series/71530/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7659 -> Patchwork_15959


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_close_race@basic-threads:
- fi-byt-j1900:   [PASS][1] -> [TIMEOUT][2] ([i915#816])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-byt-j1900/igt@gem_close_r...@basic-threads.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/fi-byt-j1900/igt@gem_close_r...@basic-threads.html

  * igt@i915_selftest@live_blt:
- fi-hsw-4770:[PASS][3] -> [DMESG-FAIL][4] ([i915#553] / [i915#725])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/fi-hsw-4770/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_execlists:
- fi-kbl-soraka:  [PASS][5] -> [DMESG-FAIL][6] ([i915#656])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-kbl-soraka/igt@i915_selftest@live_execlists.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/fi-kbl-soraka/igt@i915_selftest@live_execlists.html

  * igt@i915_selftest@live_objects:
- fi-bwr-2160:[PASS][7] -> [FAIL][8] ([i915#878])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-bwr-2160/igt@i915_selftest@live_objects.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/fi-bwr-2160/igt@i915_selftest@live_objects.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u:   [PASS][9] -> [FAIL][10] ([fdo#111096] / [i915#323])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html

  
 Possible fixes 

  * igt@i915_module_load@reload-with-fault-injection:
- fi-skl-6700k2:  [INCOMPLETE][11] ([i915#671]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html

  
 Warnings 

  * igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
- fi-kbl-x1275:   [DMESG-WARN][13] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][14] ([i915#62] / [i915#92]) +5 similar issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-kbl-x1275/igt@kms_cursor_leg...@basic-flip-after-cursor-legacy.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/fi-kbl-x1275/igt@kms_cursor_leg...@basic-flip-after-cursor-legacy.html

  * igt@kms_flip@basic-flip-vs-modeset:
- fi-kbl-x1275:   [DMESG-WARN][15] ([i915#62] / [i915#92]) -> 
[DMESG-WARN][16] ([i915#62] / [i915#92] / [i915#95]) +8 similar issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-kbl-x1275/igt@kms_f...@basic-flip-vs-modeset.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15959/fi-kbl-x1275/igt@kms_f...@basic-flip-vs-modeset.html

  
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
  [i915#553]: https://gitlab.freedesktop.org/drm/intel/issues/553
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#656]: https://gitlab.freedesktop.org/drm/intel/issues/656
  [i915#671]: https://gitlab.freedesktop.org/drm/intel/issues/671
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
  [i915#816]: https://gitlab.freedesktop.org/drm/intel/issues/816
  [i915#878]: https://gitlab.freedesktop.org/drm/intel/issues/878
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (47 -> 45)
--

  Additional (4): fi-skl-6770hq fi-skl-lmem fi-ivb-3770 fi-skl-6600u 
  Missing(6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan 
fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7659 -> Patchwork_15959

  CI-20190529: 20190529
  CI_DRM_7659: bc7f03590ed801bb911de587835ff9547ae63fbc @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5356: 62146738c68abfa7497b023a049163932f5a9aa0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15959: 8917f528d0ded636f401a29e06a63bc174f71a8a @ 
git://anongit.freedesktop.org/gfx-ci/linux

[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: Limit audio CDCLK>=2*BCLK constraint back to GLK only (rev2)

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915: Limit audio CDCLK>=2*BCLK constraint back to GLK only (rev2)
URL   : https://patchwork.freedesktop.org/series/71525/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7657_full -> Patchwork_15954_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@gem_exec_schedule@preempt-queue-contexts-vebox:
- shard-iclb: [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb4/igt@gem_exec_sched...@preempt-queue-contexts-vebox.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/shard-iclb8/igt@gem_exec_sched...@preempt-queue-contexts-vebox.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@rcs0-s3:
- shard-kbl:  [PASS][3] -> [DMESG-WARN][4] ([i915#180]) +2 similar 
issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-kbl6/igt@gem_ctx_isolat...@rcs0-s3.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/shard-kbl7/igt@gem_ctx_isolat...@rcs0-s3.html

  * igt@gem_ctx_persistence@vcs1-mixed-process:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#109276] / [fdo#112080]) 
+1 similar issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb2/igt@gem_ctx_persiste...@vcs1-mixed-process.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/shard-iclb7/igt@gem_ctx_persiste...@vcs1-mixed-process.html

  * igt@gem_ctx_shared@exec-single-timeline-bsd:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#110841])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb8/igt@gem_ctx_sha...@exec-single-timeline-bsd.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/shard-iclb2/igt@gem_ctx_sha...@exec-single-timeline-bsd.html

  * igt@gem_eio@kms:
- shard-glk:  [PASS][9] -> [INCOMPLETE][10] ([i915#58] / 
[k.org#198133])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-glk8/igt@gem_...@kms.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/shard-glk3/igt@gem_...@kms.html
- shard-tglb: [PASS][11] -> [INCOMPLETE][12] ([i915#476])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb7/igt@gem_...@kms.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/shard-tglb2/igt@gem_...@kms.html

  * igt@gem_exec_balancer@smoke:
- shard-iclb: [PASS][13] -> [SKIP][14] ([fdo#110854])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb2/igt@gem_exec_balan...@smoke.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/shard-iclb7/igt@gem_exec_balan...@smoke.html

  * igt@gem_exec_reloc@basic-active:
- shard-tglb: [PASS][15] -> [INCOMPLETE][16] ([i915#472])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb6/igt@gem_exec_re...@basic-active.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/shard-tglb8/igt@gem_exec_re...@basic-active.html

  * igt@gem_exec_reloc@basic-gtt-read-active:
- shard-skl:  [PASS][17] -> [DMESG-WARN][18] ([i915#109]) +1 
similar issue
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-skl5/igt@gem_exec_re...@basic-gtt-read-active.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/shard-skl3/igt@gem_exec_re...@basic-gtt-read-active.html

  * igt@gem_exec_reuse@single:
- shard-tglb: [PASS][19] -> [INCOMPLETE][20] ([i915#435])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb1/igt@gem_exec_re...@single.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/shard-tglb6/igt@gem_exec_re...@single.html

  * igt@gem_exec_schedule@preempt-queue-contexts-chain-vebox:
- shard-tglb: [PASS][21] -> [INCOMPLETE][22] ([fdo#111606] / 
[fdo#111677])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb3/igt@gem_exec_sched...@preempt-queue-contexts-chain-vebox.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/shard-tglb8/igt@gem_exec_sched...@preempt-queue-contexts-chain-vebox.html

  * igt@gem_exec_schedule@preempt-queue-vebox:
- shard-tglb: [PASS][23] -> [INCOMPLETE][24] ([fdo#111677])
   [23]: 

[Intel-gfx] [CI] drm/i915: Introduce remap_io_sg() to prefault discontiguous objects

2019-12-31 Thread Chris Wilson
From: Abdiel Janulgue 

Provide a way to set the PTE within apply_page_range for discontiguous
objects in addition to the existing method of just incrementing the pfn
for a page range.

Fixes: cc662126b413 ("drm/i915: Introduce DRM_I915_GEM_MMAP_OFFSET")
Signed-off-by: Abdiel Janulgue 
Cc: Chris Wilson 
Cc: Matthew Auld 
---
 drivers/gpu/drm/i915/gem/i915_gem_mman.c | 29 
 drivers/gpu/drm/i915/i915_drv.h  |  3 ++
 drivers/gpu/drm/i915/i915_mm.c   | 59 
 3 files changed, 72 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c 
b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
index 879fff8adc48..b4adde2b8354 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
@@ -236,42 +236,33 @@ static vm_fault_t vm_fault_cpu(struct vm_fault *vmf)
struct vm_area_struct *area = vmf->vma;
struct i915_mmap_offset *mmo = area->vm_private_data;
struct drm_i915_gem_object *obj = mmo->obj;
-   unsigned long i, size = area->vm_end - area->vm_start;
-   bool write = area->vm_flags & VM_WRITE;
-   vm_fault_t ret = VM_FAULT_SIGBUS;
int err;
 
if (!i915_gem_object_has_struct_page(obj))
-   return ret;
+   return VM_FAULT_SIGBUS;
 
/* Sanity check that we allow writing into this object */
-   if (i915_gem_object_is_readonly(obj) && write)
-   return ret;
+   if (i915_gem_object_is_readonly(obj) && area->vm_flags & VM_WRITE)
+   return VM_FAULT_SIGBUS;
 
err = i915_gem_object_pin_pages(obj);
if (err)
-   return i915_error_to_vmf_fault(err);
+   goto out;
 
/* PTEs are revoked in obj->ops->put_pages() */
-   for (i = 0; i < size >> PAGE_SHIFT; i++) {
-   struct page *page = i915_gem_object_get_page(obj, i);
-
-   ret = vmf_insert_pfn(area,
-(unsigned long)area->vm_start + i * 
PAGE_SIZE,
-page_to_pfn(page));
-   if (ret != VM_FAULT_NOPAGE)
-   break;
-   }
+   err = remap_io_sg_page(area,
+  area->vm_start, area->vm_end - area->vm_start,
+  obj->mm.pages->sgl);
 
-   if (write) {
+   if (area->vm_flags & VM_WRITE) {
GEM_BUG_ON(!i915_gem_object_has_pinned_pages(obj));
-   obj->cache_dirty = true; /* XXX flush after PAT update? */
obj->mm.dirty = true;
}
 
i915_gem_object_unpin_pages(obj);
 
-   return ret;
+out:
+   return i915_error_to_vmf_fault(err);
 }
 
 static vm_fault_t vm_fault_gtt(struct vm_fault *vmf)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index b7f122dccdca..c2348272e211 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2015,6 +2015,9 @@ int i915_reg_read_ioctl(struct drm_device *dev, void 
*data,
 int remap_io_mapping(struct vm_area_struct *vma,
 unsigned long addr, unsigned long pfn, unsigned long size,
 struct io_mapping *iomap);
+int remap_io_sg_page(struct vm_area_struct *vma,
+unsigned long addr, unsigned long size,
+struct scatterlist *sgl);
 
 static inline int intel_hws_csb_write_index(struct drm_i915_private *i915)
 {
diff --git a/drivers/gpu/drm/i915/i915_mm.c b/drivers/gpu/drm/i915/i915_mm.c
index 318562ce64c0..2998689e6d42 100644
--- a/drivers/gpu/drm/i915/i915_mm.c
+++ b/drivers/gpu/drm/i915/i915_mm.c
@@ -33,6 +33,8 @@ struct remap_pfn {
struct mm_struct *mm;
unsigned long pfn;
pgprot_t prot;
+
+   struct sgt_iter sgt;
 };
 
 static int remap_pfn(pte_t *pte, unsigned long addr, void *data)
@@ -46,6 +48,30 @@ static int remap_pfn(pte_t *pte, unsigned long addr, void 
*data)
return 0;
 }
 
+static inline unsigned long sgt_pfn(const struct sgt_iter *sgt)
+{
+   return sgt->pfn + (sgt->curr >> PAGE_SHIFT);
+}
+
+static int remap_sg_page(pte_t *pte, unsigned long addr, void *data)
+{
+   struct remap_pfn *r = data;
+
+   if (GEM_WARN_ON(!r->sgt.pfn))
+   return -EINVAL;
+
+   /* Special PTE are not associated with any struct page */
+   set_pte_at(r->mm, addr, pte,
+  pte_mkspecial(pfn_pte(sgt_pfn(>sgt), r->prot)));
+   r->pfn++; /* track insertions in case we need to unwind later */
+
+   r->sgt.curr += PAGE_SIZE;
+   if (r->sgt.curr >= r->sgt.max)
+   r->sgt = __sgt_iter(__sg_next(r->sgt.sgp), false);
+
+   return 0;
+}
+
 /**
  * remap_io_mapping - remap an IO mapping to userspace
  * @vma: user vma to map to
@@ -80,3 +106,36 @@ int remap_io_mapping(struct vm_area_struct *vma,
 
return 0;
 }
+
+/**
+ * remap_io_sg_page - remap an IO mapping to userspace
+ * @vma: user vma to map to
+ * 

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Add Wa_1407352427:icl,ehl (rev4)

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915: Add Wa_1407352427:icl,ehl (rev4)
URL   : https://patchwork.freedesktop.org/series/71403/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7659 -> Patchwork_15958


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_selftest@live_blt:
- fi-hsw-4770:[PASS][1] -> [DMESG-FAIL][2] ([i915#553] / [i915#725])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15958/fi-hsw-4770/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_execlists:
- fi-kbl-soraka:  [PASS][3] -> [DMESG-FAIL][4] ([i915#656])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-kbl-soraka/igt@i915_selftest@live_execlists.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15958/fi-kbl-soraka/igt@i915_selftest@live_execlists.html

  * igt@i915_selftest@live_gem_contexts:
- fi-byt-n2820:   [PASS][5] -> [DMESG-FAIL][6] ([i915#722])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-byt-n2820/igt@i915_selftest@live_gem_contexts.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15958/fi-byt-n2820/igt@i915_selftest@live_gem_contexts.html

  * igt@i915_selftest@live_gt_heartbeat:
- fi-kbl-guc: [PASS][7] -> [FAIL][8] ([i915#878])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-kbl-guc/igt@i915_selftest@live_gt_heartbeat.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15958/fi-kbl-guc/igt@i915_selftest@live_gt_heartbeat.html

  * igt@i915_selftest@live_requests:
- fi-whl-u:   [PASS][9] -> [FAIL][10] ([i915#878])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-whl-u/igt@i915_selftest@live_requests.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15958/fi-whl-u/igt@i915_selftest@live_requests.html

  
 Possible fixes 

  * igt@i915_module_load@reload-with-fault-injection:
- fi-bxt-dsi: [INCOMPLETE][11] ([fdo#103927]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-bxt-dsi/igt@i915_module_l...@reload-with-fault-injection.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15958/fi-bxt-dsi/igt@i915_module_l...@reload-with-fault-injection.html
- fi-cfl-8700k:   [INCOMPLETE][13] ([i915#505]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-cfl-8700k/igt@i915_module_l...@reload-with-fault-injection.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15958/fi-cfl-8700k/igt@i915_module_l...@reload-with-fault-injection.html

  
 Warnings 

  * igt@i915_module_load@reload-with-fault-injection:
- fi-skl-6700k2:  [INCOMPLETE][15] ([i915#671]) -> [DMESG-WARN][16] 
([i915#889])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15958/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html
- fi-kbl-x1275:   [DMESG-WARN][17] ([i915#62] / [i915#92]) -> 
[INCOMPLETE][18] ([i915#879])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-kbl-x1275/igt@i915_module_l...@reload-with-fault-injection.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15958/fi-kbl-x1275/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@i915_selftest@live_blt:
- fi-hsw-4770r:   [DMESG-FAIL][19] ([i915#770]) -> [DMESG-FAIL][20] 
([i915#725])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-hsw-4770r/igt@i915_selftest@live_blt.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15958/fi-hsw-4770r/igt@i915_selftest@live_blt.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- fi-kbl-x1275:   [DMESG-WARN][21] ([i915#62] / [i915#92]) -> 
[DMESG-WARN][22] ([i915#62] / [i915#92] / [i915#95]) +8 similar issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-kbl-x1275/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-legacy.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15958/fi-kbl-x1275/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-legacy.html

  * igt@prime_vgem@basic-fence-flip:
- fi-kbl-x1275:   [DMESG-WARN][23] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][24] ([i915#62] / [i915#92]) +5 similar issues
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7659/fi-kbl-x1275/igt@prime_v...@basic-fence-flip.html
   [24]: 

[Intel-gfx] [PATCH v3] drm/i915: Add Wa_1407352427:icl,ehl

2019-12-31 Thread Matt Roper
The workaround database now indicates we need to disable psdunit clock
gating as well.

v3:
 - Rebase on top of other workarounds that have landed.
 - Restrict cc:stable tag to 5.2+ since that's when ICL was first
   officially supported.

Bspec: 32354
Bspec: 33450
Bspec: 33451
Suggested-by: Lionel Landwerlin 
Cc: sta...@vger.kernel.org # v5.2+
Cc: Lionel Landwerlin 
Cc: Lucas De Marchi 
Cc: Matt Atwood 
Signed-off-by: Matt Roper 
Acked-by: Lionel Landwerlin 
---
 drivers/gpu/drm/i915/i915_reg.h | 1 +
 drivers/gpu/drm/i915/intel_pm.c | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 030a3f3e69af..cf770793be54 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -4183,6 +4183,7 @@ enum {
 
 #define UNSLICE_UNIT_LEVEL_CLKGATE2_MMIO(0x94e4)
 #define   VSUNIT_CLKGATE_DIS_TGL   REG_BIT(19)
+#define   PSDUNIT_CLKGATE_DIS  REG_BIT(5)
 
 #define INF_UNIT_LEVEL_CLKGATE _MMIO(0x9560)
 #define   CGPSF_CLKGATE_DIS(1 << 3)
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index d3dd80db8813..148ac455dfa7 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -6607,6 +6607,9 @@ static void icl_init_clock_gating(struct drm_i915_private 
*dev_priv)
intel_uncore_rmw(_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE,
 0, VSUNIT_CLKGATE_DIS | HSUNIT_CLKGATE_DIS);
 
+   /* Wa_1407352427:icl,ehl */
+   intel_uncore_rmw(_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE2,
+0, PSDUNIT_CLKGATE_DIS);
 }
 
 static void tgl_init_clock_gating(struct drm_i915_private *dev_priv)
-- 
2.23.0

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


[Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: Add Wa_1407352427:icl,ehl (rev3)

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915: Add Wa_1407352427:icl,ehl (rev3)
URL   : https://patchwork.freedesktop.org/series/71403/
State : failure

== Summary ==

Applying: drm/i915: Add Wa_1407352427:icl,ehl
Using index info to reconstruct a base tree...
M   drivers/gpu/drm/i915/i915_reg.h
M   drivers/gpu/drm/i915/intel_pm.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_pm.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_pm.c
Auto-merging drivers/gpu/drm/i915/i915_reg.h
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch' to see the failed patch
Patch failed at 0001 drm/i915: Add Wa_1407352427:icl,ehl
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

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


Re: [Intel-gfx] [PATCH] drm/i915/tgl: Assume future platforms will inherit TGL's SFC capability

2019-12-31 Thread Matt Roper
On Tue, Dec 31, 2019 at 09:17:41AM -0800, Lucas De Marchi wrote:
> On Thu, Dec 26, 2019 at 03:05:41PM -0800, Matt Roper wrote:
> > On Thu, Dec 26, 2019 at 02:23:49PM -0800, Lucas De Marchi wrote:
> > > On Tue, Dec 24, 2019 at 03:15:21PM -0800, Matt Roper wrote:
> > > > Our usual i915 convention is to assume that future platforms will follow
> > > > the same behavior as the latest platform of today.  The VDBOX/SFC
> > > > capabilities described here don't seem like something that should be
> > > > specific to TGL, so let's future-proof by making the test apply to all
> > > > gen12+ platforms.
> > > >
> > > > Cc: Lucas De Marchi 
> > > > Signed-off-by: Matt Roper 
> > > > ---
> > > > drivers/gpu/drm/i915/intel_device_info.c | 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/i915/intel_device_info.c 
> > > > b/drivers/gpu/drm/i915/intel_device_info.c
> > > > index 1acb5db77431..bb709a08bd3c 100644
> > > > --- a/drivers/gpu/drm/i915/intel_device_info.c
> > > > +++ b/drivers/gpu/drm/i915/intel_device_info.c
> > > > @@ -1093,7 +1093,7 @@ void intel_device_info_init_mmio(struct 
> > > > drm_i915_private *dev_priv)
> > > >  * hooked up to an SFC (Scaler & Format Converter) unit.
> > > >  * In TGL each VDBOX has access to an SFC.
> > > >  */
> > > > -   if (IS_TIGERLAKE(dev_priv) || logical_vdbox++ % 2 == 0)
> > > > +   if (INTEL_GEN(dev_priv) >= 12 || logical_vdbox++ % 2 == 
> > > > 0)
> > > > RUNTIME_INFO(dev_priv)->vdbox_sfc_access |= 
> > > > BIT(i);
> > > 
> > > but why are we even doing this instead of initiliazing them at compile
> > > time on the device_info? If it's fused off, then whatever is set in
> > > vdbox_sfc_access bit shouldn't matter... or if the code making use of
> > > this doesn't check for engine availability, then this part of the
> > > function could just disable the bit of whatever is fused off, regardless
> > > if it's ice lake, tiger lake or whatever.
> > 
> > I'm not sure; it looks like among other things we send this bitmask
> > directly to the GuC, so I'm not really comfortable making the assumption
> > that all users of the mask will pay attention to whether the engine is
> > fused off or not, even if that turns out to be true for the i915 usage.
> > 
> > I could switch this to being initialized statically and then modified
> > here if an engine is fused off.  In that case should this move out of
> > RUNTIME_INFO() and back to INTEL_INFO()?  Honestly I've never really
> > understood why we have those separated given that we still ignore the
> > const and modify INTEL_INFO at runtime in several places.
> 
> hummn... true, there's this problem of not being able to initialize it
> statically in one place and possibly modify it later.
> 
> We can't move it to INTEL_INFO. Anything that can be modified in runtime
> needs to be inside the runtime_info, not info. I  think the goal with the
> separation was to make it explicit what are the fields that can be
> changed in runtime. We really can't change `info` since its static const
> that can be shared (think binding the driver to more than one device).
> It didn't matter much in the past since we were limited to 1.

That's what I thought...but it still seems we do in a handful of places
which is what I find confusing.  I.e., there are several places we use
mkwrite_device_info(dev_priv) to cast away the const-ness of the
INTEL_INFO so that we can adjust things based on runtime conditions
(fuse values, VTd active, lack of stolen memory, etc.).

I had assumed mkwrite_device_info() was some kind of transitional thing
before the separation of INTEL_INFO and RUNTIME_INFO was complete, but
it seems like it's sticking around and actually growing in use?

> 
> And I think the reason to have the runtime_info const and discard it here
> is because it should be in fact treated as const in all places except on
> initialization: we don't want accidental changes of that struct.
> 
> So... I think there may be a better solution here, but I don't think
> it's important enough to block this: it's always better to be consistent
> to be able to refactor this when the needs arrive.
> 
> 
> Reviewed-by: Lucas De Marchi 

Thanks for the review.  Applied to dinq.


Matt

> 
> Lucas De Marchi
> 
> > 
> > 
> > Matt
> > 
> > > 
> > > Lucas De Marchi
> > > 
> > > 
> > > > }
> > > > DRM_DEBUG_DRIVER("vdbox enable: %04x, instances: %04lx\n",
> > > > --
> > > > 2.23.0
> > > >
> > > > ___
> > > > Intel-gfx mailing list
> > > > Intel-gfx@lists.freedesktop.org
> > > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> > 
> > -- 
> > Matt Roper
> > Graphics Software Engineer
> > VTT-OSGC Platform Enablement
> > Intel Corporation
> > (916) 356-2795

-- 
Matt Roper
Graphics Software Engineer
VTT-OSGC Platform Enablement
Intel Corporation
(916) 356-2795

Re: [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/tgl: Assume future platforms will inherit TGL's SFC capability (rev2)

2019-12-31 Thread Matt Roper
On Fri, Dec 27, 2019 at 01:52:12PM +, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915/tgl: Assume future platforms will inherit TGL's SFC 
> capability (rev2)
> URL   : https://patchwork.freedesktop.org/series/71371/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_7637_full -> Patchwork_15927_full
> 
> 
> Summary
> ---
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with Patchwork_15927_full absolutely need to 
> be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_15927_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_15927_full:
> 
> ### IGT changes ###
> 
>  Possible regressions 
> 
>   * igt@gem_eio@reset-stress:
> - shard-snb:  [PASS][1] -> [DMESG-WARN][2]
>[1]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7637/shard-snb2/igt@gem_...@reset-stress.html
>[2]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15927/shard-snb6/igt@gem_...@reset-stress.html

Failure to reset GPU on SNB.  Not caused by this patch, which will only
change behavior on future platforms beyond TGL.

> 
>   * igt@kms_plane_lowres@pipe-c-tiling-x:
> - shard-tglb: NOTRUN -> [FAIL][3]
>[3]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15927/shard-tglb8/igt@kms_plane_low...@pipe-c-tiling-x.html

CRC mismatch; not sure what would cause that, but this patch would not
affect that test.

Applied to dinq.  Thanks Lucas for the review.


Matt

> 
>   
> Known issues
> 
> 
>   Here are the changes found in Patchwork_15927_full that come from known 
> issues:
> 
> ### IGT changes ###
> 
>  Issues hit 
> 
>   * igt@gem_ctx_isolation@rcs0-s3:
> - shard-tglb: [PASS][4] -> [INCOMPLETE][5] ([i915#456])
>[4]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7637/shard-tglb1/igt@gem_ctx_isolat...@rcs0-s3.html
>[5]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15927/shard-tglb7/igt@gem_ctx_isolat...@rcs0-s3.html
> 
>   * igt@gem_ctx_shared@q-smoketest-all:
> - shard-tglb: [PASS][6] -> [INCOMPLETE][7] ([fdo#111735])
>[6]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7637/shard-tglb1/igt@gem_ctx_sha...@q-smoketest-all.html
>[7]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15927/shard-tglb3/igt@gem_ctx_sha...@q-smoketest-all.html
> 
>   * igt@gem_eio@in-flight-suspend:
> - shard-tglb: [PASS][8] -> [INCOMPLETE][9] ([i915#456] / 
> [i915#460] / [i915#534])
>[8]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7637/shard-tglb2/igt@gem_...@in-flight-suspend.html
>[9]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15927/shard-tglb5/igt@gem_...@in-flight-suspend.html
> 
>   * igt@gem_exec_schedule@preempt-queue-contexts-bsd2:
> - shard-tglb: [PASS][10] -> [INCOMPLETE][11] ([fdo#111606] / 
> [fdo#111677])
>[10]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7637/shard-tglb6/igt@gem_exec_sched...@preempt-queue-contexts-bsd2.html
>[11]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15927/shard-tglb6/igt@gem_exec_sched...@preempt-queue-contexts-bsd2.html
> 
>   * igt@gem_exec_suspend@basic-s3:
> - shard-kbl:  [PASS][12] -> [DMESG-WARN][13] ([i915#180]) +8 
> similar issues
>[12]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7637/shard-kbl6/igt@gem_exec_susp...@basic-s3.html
>[13]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15927/shard-kbl7/igt@gem_exec_susp...@basic-s3.html
> 
>   * igt@i915_suspend@sysfs-reader:
> - shard-apl:  [PASS][14] -> [DMESG-WARN][15] ([i915#180]) +5 
> similar issues
>[14]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7637/shard-apl3/igt@i915_susp...@sysfs-reader.html
>[15]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15927/shard-apl1/igt@i915_susp...@sysfs-reader.html
> 
>   * igt@kms_cursor_crc@pipe-c-cursor-256x85-sliding:
> - shard-skl:  [PASS][16] -> [FAIL][17] ([i915#54]) +2 similar 
> issues
>[16]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7637/shard-skl3/igt@kms_cursor_...@pipe-c-cursor-256x85-sliding.html
>[17]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15927/shard-skl1/igt@kms_cursor_...@pipe-c-cursor-256x85-sliding.html
> 
>   * igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-untiled:
> - shard-skl:  [PASS][18] -> [FAIL][19] ([i915#52] / [i915#54])
>[18]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7637/shard-skl1/igt@kms_draw_...@draw-method-rgb565-mmap-gtt-untiled.html
>[19]: 
> 

Re: [Intel-gfx] [PATCH] drm/i915/tgl: Assume future platforms will inherit TGL's SFC capability

2019-12-31 Thread Lucas De Marchi

On Thu, Dec 26, 2019 at 03:05:41PM -0800, Matt Roper wrote:

On Thu, Dec 26, 2019 at 02:23:49PM -0800, Lucas De Marchi wrote:

On Tue, Dec 24, 2019 at 03:15:21PM -0800, Matt Roper wrote:
> Our usual i915 convention is to assume that future platforms will follow
> the same behavior as the latest platform of today.  The VDBOX/SFC
> capabilities described here don't seem like something that should be
> specific to TGL, so let's future-proof by making the test apply to all
> gen12+ platforms.
>
> Cc: Lucas De Marchi 
> Signed-off-by: Matt Roper 
> ---
> drivers/gpu/drm/i915/intel_device_info.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_device_info.c 
b/drivers/gpu/drm/i915/intel_device_info.c
> index 1acb5db77431..bb709a08bd3c 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.c
> +++ b/drivers/gpu/drm/i915/intel_device_info.c
> @@ -1093,7 +1093,7 @@ void intel_device_info_init_mmio(struct 
drm_i915_private *dev_priv)
> * hooked up to an SFC (Scaler & Format Converter) unit.
> * In TGL each VDBOX has access to an SFC.
> */
> -  if (IS_TIGERLAKE(dev_priv) || logical_vdbox++ % 2 == 0)
> +  if (INTEL_GEN(dev_priv) >= 12 || logical_vdbox++ % 2 == 0)
>RUNTIME_INFO(dev_priv)->vdbox_sfc_access |= BIT(i);

but why are we even doing this instead of initiliazing them at compile
time on the device_info? If it's fused off, then whatever is set in
vdbox_sfc_access bit shouldn't matter... or if the code making use of
this doesn't check for engine availability, then this part of the
function could just disable the bit of whatever is fused off, regardless
if it's ice lake, tiger lake or whatever.


I'm not sure; it looks like among other things we send this bitmask
directly to the GuC, so I'm not really comfortable making the assumption
that all users of the mask will pay attention to whether the engine is
fused off or not, even if that turns out to be true for the i915 usage.

I could switch this to being initialized statically and then modified
here if an engine is fused off.  In that case should this move out of
RUNTIME_INFO() and back to INTEL_INFO()?  Honestly I've never really
understood why we have those separated given that we still ignore the
const and modify INTEL_INFO at runtime in several places.


hummn... true, there's this problem of not being able to initialize it
statically in one place and possibly modify it later.

We can't move it to INTEL_INFO. Anything that can be modified in runtime
needs to be inside the runtime_info, not info. I  think the goal with the
separation was to make it explicit what are the fields that can be
changed in runtime. We really can't change `info` since its static const
that can be shared (think binding the driver to more than one device).
It didn't matter much in the past since we were limited to 1.

And I think the reason to have the runtime_info const and discard it here
is because it should be in fact treated as const in all places except on
initialization: we don't want accidental changes of that struct.

So... I think there may be a better solution here, but I don't think
it's important enough to block this: it's always better to be consistent
to be able to refactor this when the needs arrive.


Reviewed-by: Lucas De Marchi 

Lucas De Marchi




Matt



Lucas De Marchi


>}
>DRM_DEBUG_DRIVER("vdbox enable: %04x, instances: %04lx\n",
> --
> 2.23.0
>
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx


--
Matt Roper
Graphics Software Engineer
VTT-OSGC Platform Enablement
Intel Corporation
(916) 356-2795

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


Re: [Intel-gfx] [PATCH] drm/i915: save state of AUD_FREQ_CNTRL on all gen9+ platforms

2019-12-31 Thread Matt Roper
On Tue, Dec 31, 2019 at 04:47:18PM +0200, Kai Vehmanen wrote:
> On old platforms the default values of AUD_FREQ_CNTRL are
> typically used (as set by BIOS), so this has not been an issue,
> but future platforms will definitely need this. Extend the state
> save logic to cover all gen9+ platforms.
> 
> Bspec: 49281
> Cc: Matt Roper 
> Signed-off-by: Kai Vehmanen 

Looks good to me.

Reviewed-by: Matt Roper 

Given that the lack of this save/restore was causing noticeable problems
on ICL/TGL, do you know whether the same problems were also seen on
EHL/JSL?  If so, we may want Cc: stable and Fixes: tags so that it gets
backported?


Matt

> ---
>  drivers/gpu/drm/i915/display/intel_audio.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_audio.c 
> b/drivers/gpu/drm/i915/display/intel_audio.c
> index 27710098d056..e6517c5d83ae 100644
> --- a/drivers/gpu/drm/i915/display/intel_audio.c
> +++ b/drivers/gpu/drm/i915/display/intel_audio.c
> @@ -849,7 +849,7 @@ static unsigned long 
> i915_audio_component_get_power(struct device *kdev)
>   ret = intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
>  
>   if (dev_priv->audio_power_refcount++ == 0) {
> - if (IS_TIGERLAKE(dev_priv) || IS_ICELAKE(dev_priv)) {
> + if (INTEL_GEN(dev_priv) >= 9) {
>   I915_WRITE(AUD_FREQ_CNTRL, dev_priv->audio_freq_cntrl);
>   DRM_DEBUG_KMS("restored AUD_FREQ_CNTRL to 0x%x\n",
> dev_priv->audio_freq_cntrl);
> @@ -1124,7 +1124,7 @@ static void i915_audio_component_init(struct 
> drm_i915_private *dev_priv)
>   return;
>   }
>  
> - if (IS_TIGERLAKE(dev_priv) || IS_ICELAKE(dev_priv)) {
> + if (INTEL_GEN(dev_priv) >= 9) {
>   dev_priv->audio_freq_cntrl = I915_READ(AUD_FREQ_CNTRL);
>   DRM_DEBUG_KMS("init value of AUD_FREQ_CNTRL of 0x%x\n",
> dev_priv->audio_freq_cntrl);
> -- 
> 2.17.1
> 

-- 
Matt Roper
Graphics Software Engineer
VTT-OSGC Platform Enablement
Intel Corporation
(916) 356-2795
___
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: Use common priotree lists for virtual engine

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915: Use common priotree lists for virtual engine
URL   : https://patchwork.freedesktop.org/series/71528/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7657 -> Patchwork_15956


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_15956 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_15956, 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_15956/index.html

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@gem_exec_suspend@basic-s3:
- fi-byt-j1900:   [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-byt-j1900/igt@gem_exec_susp...@basic-s3.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15956/fi-byt-j1900/igt@gem_exec_susp...@basic-s3.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s3:
- fi-icl-u2:  [PASS][3] -> [FAIL][4] ([fdo#103375])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@gem_exec_susp...@basic-s3.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15956/fi-icl-u2/igt@gem_exec_susp...@basic-s3.html

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-icl-u2:  [PASS][5] -> [FAIL][6] ([fdo#111550])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@gem_exec_susp...@basic-s4-devices.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15956/fi-icl-u2/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@i915_module_load@reload-with-fault-injection:
- fi-bxt-dsi: [PASS][7] -> [INCOMPLETE][8] ([fdo#103927])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-bxt-dsi/igt@i915_module_l...@reload-with-fault-injection.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15956/fi-bxt-dsi/igt@i915_module_l...@reload-with-fault-injection.html
- fi-skl-lmem:[PASS][9] -> [INCOMPLETE][10] ([i915#671])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-skl-lmem/igt@i915_module_l...@reload-with-fault-injection.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15956/fi-skl-lmem/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@i915_selftest@live_uncore:
- fi-bwr-2160:[PASS][11] -> [FAIL][12] ([i915#878])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-bwr-2160/igt@i915_selftest@live_uncore.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15956/fi-bwr-2160/igt@i915_selftest@live_uncore.html

  
 Possible fixes 

  * igt@gem_exec_suspend@basic-s3:
- fi-tgl-y:   [INCOMPLETE][13] ([fdo#111736] / [i915#460]) -> 
[PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15956/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_module_load@reload-with-fault-injection:
- fi-cfl-guc: [INCOMPLETE][15] ([i915#505] / [i915#671]) -> 
[PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-cfl-guc/igt@i915_module_l...@reload-with-fault-injection.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15956/fi-cfl-guc/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@i915_pm_rpm@module-reload:
- fi-skl-guc: [INCOMPLETE][17] ([i915#151]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-skl-guc/igt@i915_pm_...@module-reload.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15956/fi-skl-guc/igt@i915_pm_...@module-reload.html

  * igt@kms_busy@basic-flip-pipe-a:
- fi-icl-u2:  [INCOMPLETE][19] ([i915#140]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@kms_b...@basic-flip-pipe-a.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15956/fi-icl-u2/igt@kms_b...@basic-flip-pipe-a.html

  
 Warnings 

  * igt@i915_selftest@live_blt:
- fi-hsw-4770:[DMESG-FAIL][21] ([i915#553] / [i915#725]) -> 
[DMESG-FAIL][22] ([i915#725])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15956/fi-hsw-4770/igt@i915_selftest@live_blt.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
- fi-kbl-x1275:   [DMESG-WARN][23] ([i915#62] / [i915#92] / 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Use common priotree lists for virtual engine

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915: Use common priotree lists for virtual engine
URL   : https://patchwork.freedesktop.org/series/71528/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
104676df08c6 drm/i915: Use common priotree lists for virtual engine
-:12: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#12: 
References: 422d7df4f090 ("drm/i915: Replace engine->timeline with a plain 
list")

-:12: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ 
chars of sha1> ("")' - ie: 'commit 422d7df4f090 ("drm/i915: Replace 
engine->timeline with a plain list")'
#12: 
References: 422d7df4f090 ("drm/i915: Replace engine->timeline with a plain 
list")

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

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


[Intel-gfx] [PATCH] drm/i915: Use common priotree lists for virtual engine

2019-12-31 Thread Chris Wilson
Since commit 422d7df4f090 ("drm/i915: Replace engine->timeline with a
plain list"), we used the default embedded priotree slot for the virtual
engine request queue, which means we can also use the same solitary slot
with the scheduler, so long as we mark the priotree as forever being
that single slot (which we can do by permanently setting no_priotree).

References: 422d7df4f090 ("drm/i915: Replace engine->timeline with a plain 
list")
Signed-off-by: Chris Wilson 
Cc: Mika Kuoppala 
Cc: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/gt/intel_lrc.c   | 1 +
 drivers/gpu/drm/i915/i915_scheduler.c | 3 +--
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index b7c963cfad04..789b0261050d 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -4538,6 +4538,7 @@ intel_execlists_create_virtual(struct intel_engine_cs 
**siblings,
 
INIT_LIST_HEAD(virtual_queue(ve));
ve->base.execlists.queue_priority_hint = INT_MIN;
+   ve->base.execlists.no_priolist = true;
tasklet_init(>base.execlists.tasklet,
 virtual_submission_tasklet,
 (unsigned long)ve);
diff --git a/drivers/gpu/drm/i915/i915_scheduler.c 
b/drivers/gpu/drm/i915/i915_scheduler.c
index bf87c70bfdd9..ea03c1cf6250 100644
--- a/drivers/gpu/drm/i915/i915_scheduler.c
+++ b/drivers/gpu/drm/i915/i915_scheduler.c
@@ -338,8 +338,7 @@ static void __i915_schedule(struct i915_sched_node *node,
continue;
}
 
-   if (!intel_engine_is_virtual(engine) &&
-   !i915_request_is_active(node_to_request(node))) {
+   if (!i915_request_is_active(node_to_request(node))) {
if (!cache.priolist)
cache.priolist =
i915_sched_lookup_priolist(engine,
-- 
2.25.0.rc0

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


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/gt: Restore coarse power gating

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915/gt: Restore coarse power gating
URL   : https://patchwork.freedesktop.org/series/71520/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7657_full -> Patchwork_15953_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_persistence@processes:
- shard-apl:  [PASS][1] -> [FAIL][2] ([i915#570])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-apl4/igt@gem_ctx_persiste...@processes.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/shard-apl3/igt@gem_ctx_persiste...@processes.html

  * igt@gem_ctx_persistence@vcs1-queued:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#109276] / [fdo#112080]) 
+2 similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb2/igt@gem_ctx_persiste...@vcs1-queued.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/shard-iclb3/igt@gem_ctx_persiste...@vcs1-queued.html

  * igt@gem_exec_parallel@fds:
- shard-tglb: [PASS][5] -> [INCOMPLETE][6] ([i915#470])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb7/igt@gem_exec_paral...@fds.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/shard-tglb9/igt@gem_exec_paral...@fds.html

  * igt@gem_exec_reloc@basic-active:
- shard-tglb: [PASS][7] -> [INCOMPLETE][8] ([i915#472])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb6/igt@gem_exec_re...@basic-active.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/shard-tglb3/igt@gem_exec_re...@basic-active.html

  * igt@gem_exec_reuse@single:
- shard-tglb: [PASS][9] -> [INCOMPLETE][10] ([i915#435])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb1/igt@gem_exec_re...@single.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/shard-tglb6/igt@gem_exec_re...@single.html

  * igt@gem_exec_schedule@in-order-bsd:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#112146]) +4 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb8/igt@gem_exec_sched...@in-order-bsd.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/shard-iclb1/igt@gem_exec_sched...@in-order-bsd.html

  * igt@gem_exec_schedule@promotion-bsd1:
- shard-iclb: [PASS][13] -> [SKIP][14] ([fdo#109276]) +11 similar 
issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb1/igt@gem_exec_sched...@promotion-bsd1.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/shard-iclb7/igt@gem_exec_sched...@promotion-bsd1.html

  * igt@gem_persistent_relocs@forked-thrash-inactive:
- shard-iclb: [PASS][15] -> [TIMEOUT][16] ([i915#530])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb5/igt@gem_persistent_rel...@forked-thrash-inactive.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/shard-iclb6/igt@gem_persistent_rel...@forked-thrash-inactive.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-skl:  [PASS][17] -> [FAIL][18] ([i915#644])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-skl4/igt@gem_pp...@flink-and-close-vma-leak.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/shard-skl9/igt@gem_pp...@flink-and-close-vma-leak.html

  * igt@gem_render_copy_redux@interruptible:
- shard-hsw:  [PASS][19] -> [FAIL][20] ([i915#910])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-hsw6/igt@gem_render_copy_re...@interruptible.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/shard-hsw2/igt@gem_render_copy_re...@interruptible.html

  * igt@gem_sync@basic-all:
- shard-tglb: [PASS][21] -> [INCOMPLETE][22] ([i915#470] / 
[i915#472])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb2/igt@gem_s...@basic-all.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/shard-tglb6/igt@gem_s...@basic-all.html

  * igt@i915_selftest@live_gt_timelines:
- shard-tglb: [PASS][23] -> [INCOMPLETE][24] ([i915#455])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb8/igt@i915_selftest@live_gt_timelines.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/shard-tglb5/igt@i915_selftest@live_gt_timelines.html

  * igt@kms_color@pipe-b-ctm-red-to-blue:
- shard-skl:  [PASS][25] -> [DMESG-WARN][26] ([i915#109]) +1 
similar issue
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-skl10/igt@kms_co...@pipe-b-ctm-red-to-blue.html
   [26]: 

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: save state of AUD_FREQ_CNTRL on all gen9+ platforms

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915: save state of AUD_FREQ_CNTRL on all gen9+ platforms
URL   : https://patchwork.freedesktop.org/series/71527/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7657 -> Patchwork_15955


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_close_race@basic-threads:
- fi-byt-j1900:   [PASS][1] -> [TIMEOUT][2] ([i915#816])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-byt-j1900/igt@gem_close_r...@basic-threads.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15955/fi-byt-j1900/igt@gem_close_r...@basic-threads.html
- fi-byt-n2820:   [PASS][3] -> [TIMEOUT][4] ([i915#816])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-byt-n2820/igt@gem_close_r...@basic-threads.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15955/fi-byt-n2820/igt@gem_close_r...@basic-threads.html

  * igt@gem_exec_suspend@basic-s3:
- fi-icl-u2:  [PASS][5] -> [FAIL][6] ([fdo#103375])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@gem_exec_susp...@basic-s3.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15955/fi-icl-u2/igt@gem_exec_susp...@basic-s3.html

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-icl-u2:  [PASS][7] -> [FAIL][8] ([fdo#111550])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@gem_exec_susp...@basic-s4-devices.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15955/fi-icl-u2/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@i915_pm_rpm@module-reload:
- fi-skl-lmem:[PASS][9] -> [DMESG-WARN][10] ([i915#592])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-skl-lmem/igt@i915_pm_...@module-reload.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15955/fi-skl-lmem/igt@i915_pm_...@module-reload.html

  * igt@i915_selftest@live_blt:
- fi-hsw-4770r:   [PASS][11] -> [DMESG-FAIL][12] ([i915#725])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-hsw-4770r/igt@i915_selftest@live_blt.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15955/fi-hsw-4770r/igt@i915_selftest@live_blt.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u:   [PASS][13] -> [FAIL][14] ([fdo#111407])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15955/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html

  
 Possible fixes 

  * igt@gem_exec_suspend@basic-s3:
- fi-tgl-y:   [INCOMPLETE][15] ([fdo#111736] / [i915#460]) -> 
[PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15955/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_module_load@reload-with-fault-injection:
- fi-skl-6700k2:  [INCOMPLETE][17] ([i915#671]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15955/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@i915_pm_rpm@module-reload:
- fi-skl-guc: [INCOMPLETE][19] ([i915#151]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-skl-guc/igt@i915_pm_...@module-reload.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15955/fi-skl-guc/igt@i915_pm_...@module-reload.html

  * igt@kms_busy@basic-flip-pipe-a:
- fi-icl-u2:  [INCOMPLETE][21] ([i915#140]) -> [PASS][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@kms_b...@basic-flip-pipe-a.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15955/fi-icl-u2/igt@kms_b...@basic-flip-pipe-a.html

  
 Warnings 

  * igt@i915_module_load@reload-with-fault-injection:
- fi-cfl-guc: [INCOMPLETE][23] ([i915#505] / [i915#671]) -> 
[DMESG-WARN][24] ([i915#889])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-cfl-guc/igt@i915_module_l...@reload-with-fault-injection.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15955/fi-cfl-guc/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
- fi-kbl-x1275:   [DMESG-WARN][25] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][26] ([i915#62] / [i915#92]) +3 similar issues
   [25]: 

[Intel-gfx] [PULL] drm-misc-fixes

2019-12-31 Thread Sean Paul


Hi Dave and Daniel,
2 fixes, 1 of which is marked for stable.


drm-misc-fixes-2019-12-31:
-sun4i: Fix double-free in connector/encoder cleanup (Stefan)
-malidp: Make vtable static (Ben)

Cc: Ben Dooks 
Cc: Stefan Mavrodiev 

Cheers, Sean


The following changes since commit d16f0f61400074dbc75797ca5ef5c3d50f6c0ddf:

  Merge tag 'drm-fixes-5.5-2019-12-12' of 
git://people.freedesktop.org/~agd5f/linux into drm-fixes (2019-12-13 14:50:01 
+1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-fixes-2019-12-31

for you to fetch changes up to ac2917b01992c098b8d4e6837115e3ca347fdd90:

  drm/arm/mali: make malidp_mw_connector_helper_funcs static (2019-12-20 
15:23:51 +)


-sun4i: Fix double-free in connector/encoder cleanup (Stefan)
-malidp: Make vtable static (Ben)

Cc: Ben Dooks 
Cc: Stefan Mavrodiev 


Ben Dooks (Codethink) (1):
  drm/arm/mali: make malidp_mw_connector_helper_funcs static

Stefan Mavrodiev (1):
  drm/sun4i: hdmi: Remove duplicate cleanup calls

 drivers/gpu/drm/arm/malidp_mw.c| 2 +-
 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

-- 
Sean Paul, Software Engineer, Google / Chromium OS
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: save state of AUD_FREQ_CNTRL on all gen9+ platforms

2019-12-31 Thread Kai Vehmanen
On old platforms the default values of AUD_FREQ_CNTRL are
typically used (as set by BIOS), so this has not been an issue,
but future platforms will definitely need this. Extend the state
save logic to cover all gen9+ platforms.

Bspec: 49281
Cc: Matt Roper 
Signed-off-by: Kai Vehmanen 
---
 drivers/gpu/drm/i915/display/intel_audio.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_audio.c 
b/drivers/gpu/drm/i915/display/intel_audio.c
index 27710098d056..e6517c5d83ae 100644
--- a/drivers/gpu/drm/i915/display/intel_audio.c
+++ b/drivers/gpu/drm/i915/display/intel_audio.c
@@ -849,7 +849,7 @@ static unsigned long i915_audio_component_get_power(struct 
device *kdev)
ret = intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
 
if (dev_priv->audio_power_refcount++ == 0) {
-   if (IS_TIGERLAKE(dev_priv) || IS_ICELAKE(dev_priv)) {
+   if (INTEL_GEN(dev_priv) >= 9) {
I915_WRITE(AUD_FREQ_CNTRL, dev_priv->audio_freq_cntrl);
DRM_DEBUG_KMS("restored AUD_FREQ_CNTRL to 0x%x\n",
  dev_priv->audio_freq_cntrl);
@@ -1124,7 +1124,7 @@ static void i915_audio_component_init(struct 
drm_i915_private *dev_priv)
return;
}
 
-   if (IS_TIGERLAKE(dev_priv) || IS_ICELAKE(dev_priv)) {
+   if (INTEL_GEN(dev_priv) >= 9) {
dev_priv->audio_freq_cntrl = I915_READ(AUD_FREQ_CNTRL);
DRM_DEBUG_KMS("init value of AUD_FREQ_CNTRL of 0x%x\n",
  dev_priv->audio_freq_cntrl);
-- 
2.17.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: Limit audio CDCLK>=2*BCLK constraint back to GLK only (rev2)

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915: Limit audio CDCLK>=2*BCLK constraint back to GLK only (rev2)
URL   : https://patchwork.freedesktop.org/series/71525/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7657 -> Patchwork_15954


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s3:
- fi-icl-u2:  [PASS][1] -> [FAIL][2] ([fdo#103375])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@gem_exec_susp...@basic-s3.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/fi-icl-u2/igt@gem_exec_susp...@basic-s3.html

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-icl-u2:  [PASS][3] -> [FAIL][4] ([fdo#111550])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@gem_exec_susp...@basic-s4-devices.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/fi-icl-u2/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@i915_module_load@reload-with-fault-injection:
- fi-skl-6770hq:  [PASS][5] -> [INCOMPLETE][6] ([i915#671])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-skl-6770hq/igt@i915_module_l...@reload-with-fault-injection.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/fi-skl-6770hq/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@i915_pm_rpm@module-reload:
- fi-skl-lmem:[PASS][7] -> [DMESG-WARN][8] ([i915#592])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-skl-lmem/igt@i915_pm_...@module-reload.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/fi-skl-lmem/igt@i915_pm_...@module-reload.html

  * igt@i915_selftest@live_blt:
- fi-hsw-4770r:   [PASS][9] -> [DMESG-FAIL][10] ([i915#725])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-hsw-4770r/igt@i915_selftest@live_blt.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/fi-hsw-4770r/igt@i915_selftest@live_blt.html
- fi-bsw-n3050:   [PASS][11] -> [DMESG-FAIL][12] ([i915#723])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-bsw-n3050/igt@i915_selftest@live_blt.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/fi-bsw-n3050/igt@i915_selftest@live_blt.html

  * igt@kms_chamelium@dp-crc-fast:
- fi-kbl-7500u:   [PASS][13] -> [FAIL][14] ([fdo#109635] / [i915#217])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-kbl-7500u/igt@kms_chamel...@dp-crc-fast.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/fi-kbl-7500u/igt@kms_chamel...@dp-crc-fast.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u:   [PASS][15] -> [FAIL][16] ([fdo#111096] / [i915#323])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html

  
 Possible fixes 

  * igt@gem_exec_suspend@basic-s3:
- fi-tgl-y:   [INCOMPLETE][17] ([fdo#111736] / [i915#460]) -> 
[PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html

  * igt@kms_busy@basic-flip-pipe-a:
- fi-icl-u2:  [INCOMPLETE][19] ([i915#140]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@kms_b...@basic-flip-pipe-a.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/fi-icl-u2/igt@kms_b...@basic-flip-pipe-a.html

  
 Warnings 

  * igt@i915_selftest@live_blt:
- fi-ivb-3770:[DMESG-FAIL][21] ([i915#725]) -> [DMESG-FAIL][22] 
([i915#770])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-ivb-3770/igt@i915_selftest@live_blt.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/fi-ivb-3770/igt@i915_selftest@live_blt.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- fi-kbl-x1275:   [DMESG-WARN][23] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][24] ([i915#62] / [i915#92]) +5 similar issues
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-kbl-x1275/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-legacy.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15954/fi-kbl-x1275/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_flip@basic-flip-vs-modeset:
- fi-kbl-x1275:   [DMESG-WARN][25] ([i915#62] / [i915#92]) -> 
[DMESG-WARN][26] ([i915#62] / [i915#92] / [i915#95]) +6 similar issues
 

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/gt: Tweak flushes around ivb ppgtt

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915/gt: Tweak flushes around ivb ppgtt
URL   : https://patchwork.freedesktop.org/series/71519/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7657_full -> Patchwork_15952_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@bcs0-s3:
- shard-kbl:  [PASS][1] -> [DMESG-WARN][2] ([i915#180]) +4 similar 
issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-kbl4/igt@gem_ctx_isolat...@bcs0-s3.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/shard-kbl1/igt@gem_ctx_isolat...@bcs0-s3.html

  * igt@gem_ctx_persistence@vcs1-mixed-process:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#109276] / [fdo#112080]) 
+1 similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb2/igt@gem_ctx_persiste...@vcs1-mixed-process.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/shard-iclb3/igt@gem_ctx_persiste...@vcs1-mixed-process.html

  * igt@gem_eio@kms:
- shard-tglb: [PASS][5] -> [INCOMPLETE][6] ([i915#476])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb7/igt@gem_...@kms.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/shard-tglb2/igt@gem_...@kms.html

  * igt@gem_exec_balancer@smoke:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#110854])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb2/igt@gem_exec_balan...@smoke.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/shard-iclb5/igt@gem_exec_balan...@smoke.html

  * igt@gem_exec_reuse@single:
- shard-tglb: [PASS][9] -> [INCOMPLETE][10] ([i915#435])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb1/igt@gem_exec_re...@single.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/shard-tglb6/igt@gem_exec_re...@single.html

  * igt@gem_exec_schedule@fifo-bsd1:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#109276]) +8 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb1/igt@gem_exec_sched...@fifo-bsd1.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/shard-iclb8/igt@gem_exec_sched...@fifo-bsd1.html

  * igt@gem_exec_schedule@preempt-queue-contexts-bsd1:
- shard-tglb: [PASS][13] -> [INCOMPLETE][14] ([fdo#111606] / 
[fdo#111677])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb1/igt@gem_exec_sched...@preempt-queue-contexts-bsd1.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/shard-tglb5/igt@gem_exec_sched...@preempt-queue-contexts-bsd1.html

  * igt@gem_exec_schedule@preempt-queue-contexts-chain-bsd:
- shard-iclb: [PASS][15] -> [SKIP][16] ([fdo#112146]) +3 similar 
issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb6/igt@gem_exec_sched...@preempt-queue-contexts-chain-bsd.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/shard-iclb2/igt@gem_exec_sched...@preempt-queue-contexts-chain-bsd.html

  * igt@gem_exec_schedule@smoketest-blt:
- shard-tglb: [PASS][17] -> [INCOMPLETE][18] ([i915#470])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb8/igt@gem_exec_sched...@smoketest-blt.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/shard-tglb3/igt@gem_exec_sched...@smoketest-blt.html

  * 
igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive:
- shard-tglb: [PASS][19] -> [TIMEOUT][20] ([fdo#112126] / 
[i915#530])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb5/igt@gem_persistent_rel...@forked-interruptible-faulting-reloc-thrash-inactive.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/shard-tglb7/igt@gem_persistent_rel...@forked-interruptible-faulting-reloc-thrash-inactive.html

  * igt@gem_persistent_relocs@forked-interruptible-thrashing:
- shard-apl:  [PASS][21] -> [TIMEOUT][22] ([i915#530])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-apl1/igt@gem_persistent_rel...@forked-interruptible-thrashing.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/shard-apl8/igt@gem_persistent_rel...@forked-interruptible-thrashing.html

  * igt@i915_pm_dc@dc6-dpms:
- shard-iclb: [PASS][23] -> [FAIL][24] ([i915#454])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb2/igt@i915_pm...@dc6-dpms.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/shard-iclb3/igt@i915_pm...@dc6-dpms.html

  * igt@i915_selftest@live_requests:
- shard-tglb: [PASS][25] -> [INCOMPLETE][26] ([i915#472])
   [25]: 

[Intel-gfx] [PATCH v2] drm/i915: Limit audio CDCLK>=2*BCLK constraint back to GLK only

2019-12-31 Thread Kai Vehmanen
Revert changes done in commit f6ec9483091f ("drm/i915: extend audio
CDCLK>=2*BCLK constraint to more platforms"). Audio drivers
communicate with i915 over HDA bus multiple times during system
boot-up and each of these transactions result in matching
get_power/put_power calls to i915, and depending on the platform,
a modeset change causing visible flicker.

GLK is the only platform with minimum CDCLK significantly lower
than BCLK, and thus for GLK setting a higher CDCLK is mandatory.

For other platforms, minimum CDCLK is close but below 2*BCLK
(e.g. on ICL, CDCLK=176.4kHz with BCLK=96kHz). Spec-wise the constraint
should be set, but in practise no communication errors have been
reported and the downside if set is the flicker observed at boot-time.

Revert to old behaviour until better mechanism to manage
probe-time clocks is available.

The full CDCLK>=2*BCLK constraint is still enforced at pipe
enable time in intel_crtc_compute_min_cdclk().

Bugzilla: https://gitlab.freedesktop.org/drm/intel/issues/913
Signed-off-by: Kai Vehmanen 
---

Notes:
v2: d'oh, change put_power() as well

 drivers/gpu/drm/i915/display/intel_audio.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_audio.c 
b/drivers/gpu/drm/i915/display/intel_audio.c
index 27710098d056..e406719a6716 100644
--- a/drivers/gpu/drm/i915/display/intel_audio.c
+++ b/drivers/gpu/drm/i915/display/intel_audio.c
@@ -856,7 +856,7 @@ static unsigned long i915_audio_component_get_power(struct 
device *kdev)
}
 
/* Force CDCLK to 2*BCLK as long as we need audio powered. */
-   if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
+   if (IS_GEMINILAKE(dev_priv))
glk_force_audio_cdclk(dev_priv, true);
 
if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
@@ -875,7 +875,7 @@ static void i915_audio_component_put_power(struct device 
*kdev,
 
/* Stop forcing CDCLK to 2*BCLK if no need for audio to be powered. */
if (--dev_priv->audio_power_refcount == 0)
-   if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
+   if (IS_GEMINILAKE(dev_priv))
glk_force_audio_cdclk(dev_priv, false);
 
intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO, cookie);
-- 
2.17.1

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


[Intel-gfx] [PATCH] drm/i915: Limit audio CDCLK>=2*BCLK constraint back to GLK only

2019-12-31 Thread Kai Vehmanen
Revert changes done in commit f6ec9483091f ("drm/i915: extend audio
CDCLK>=2*BCLK constraint to more platforms"). Audio drivers
communicate with i915 over HDA bus multiple times during system
boot-up and each of these transactions result in matching
get_power/put_power calls to i915, and depending on the platform,
a modeset change causing visible flicker.

GLK is the only platform with minimum CDCLK significantly lower
than BCLK, and thus for GLK setting a higher CDCLK is mandatory.

For other platforms, minimum CDCLK is close but below 2*BCLK
(e.g. on ICL, CDCLK=176.4kHz with BCLK=96kHz). Spec-wise the constraint
should be set, but in practise no communication errors have been
reported and the downside if set is the flicker observed at boot-time.

Revert to old behaviour until better mechanism to manage
probe-time clocks is available.

The full CDCLK>=2*BCLK constraint is still enforced at pipe
enable time in intel_crtc_compute_min_cdclk().

Bugzilla: https://gitlab.freedesktop.org/drm/intel/issues/913
Signed-off-by: Kai Vehmanen 
---
 drivers/gpu/drm/i915/display/intel_audio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_audio.c 
b/drivers/gpu/drm/i915/display/intel_audio.c
index 27710098d056..2c5f9b23f286 100644
--- a/drivers/gpu/drm/i915/display/intel_audio.c
+++ b/drivers/gpu/drm/i915/display/intel_audio.c
@@ -856,7 +856,7 @@ static unsigned long i915_audio_component_get_power(struct 
device *kdev)
}
 
/* Force CDCLK to 2*BCLK as long as we need audio powered. */
-   if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
+   if (IS_GEMINILAKE(dev_priv))
glk_force_audio_cdclk(dev_priv, true);
 
if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
-- 
2.17.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/gt: Restore coarse power gating

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915/gt: Restore coarse power gating
URL   : https://patchwork.freedesktop.org/series/71520/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7657 -> Patchwork_15953


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_close_race@basic-threads:
- fi-byt-j1900:   [PASS][1] -> [TIMEOUT][2] ([i915#816])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-byt-j1900/igt@gem_close_r...@basic-threads.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/fi-byt-j1900/igt@gem_close_r...@basic-threads.html

  * igt@gem_exec_suspend@basic-s3:
- fi-icl-u2:  [PASS][3] -> [FAIL][4] ([fdo#103375])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@gem_exec_susp...@basic-s3.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/fi-icl-u2/igt@gem_exec_susp...@basic-s3.html

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-icl-u2:  [PASS][5] -> [FAIL][6] ([fdo#111550])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@gem_exec_susp...@basic-s4-devices.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/fi-icl-u2/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@i915_module_load@reload-with-fault-injection:
- fi-cfl-8700k:   [PASS][7] -> [INCOMPLETE][8] ([i915#505])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-cfl-8700k/igt@i915_module_l...@reload-with-fault-injection.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/fi-cfl-8700k/igt@i915_module_l...@reload-with-fault-injection.html
- fi-skl-6600u:   [PASS][9] -> [INCOMPLETE][10] ([i915#671] / [i915#69])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-skl-6600u/igt@i915_module_l...@reload-with-fault-injection.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/fi-skl-6600u/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u:   [PASS][11] -> [FAIL][12] ([fdo#111096] / [i915#323])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html

  * igt@prime_self_import@basic-with_one_bo_two_files:
- fi-icl-dsi: [PASS][13] -> [DMESG-WARN][14] ([i915#109])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-dsi/igt@prime_self_import@basic-with_one_bo_two_files.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/fi-icl-dsi/igt@prime_self_import@basic-with_one_bo_two_files.html

  
 Possible fixes 

  * igt@gem_exec_suspend@basic-s3:
- fi-tgl-y:   [INCOMPLETE][15] ([fdo#111736] / [i915#460]) -> 
[PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_module_load@reload-with-fault-injection:
- fi-cfl-guc: [INCOMPLETE][17] ([i915#505] / [i915#671]) -> 
[PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-cfl-guc/igt@i915_module_l...@reload-with-fault-injection.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/fi-cfl-guc/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@i915_pm_rpm@module-reload:
- fi-skl-guc: [INCOMPLETE][19] ([i915#151]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-skl-guc/igt@i915_pm_...@module-reload.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/fi-skl-guc/igt@i915_pm_...@module-reload.html

  * igt@i915_selftest@live_blt:
- fi-hsw-4770:[DMESG-FAIL][21] ([i915#553] / [i915#725]) -> 
[PASS][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/fi-hsw-4770/igt@i915_selftest@live_blt.html

  * igt@kms_busy@basic-flip-pipe-a:
- fi-icl-u2:  [INCOMPLETE][23] ([i915#140]) -> [PASS][24]
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@kms_b...@basic-flip-pipe-a.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15953/fi-icl-u2/igt@kms_b...@basic-flip-pipe-a.html

  
 Warnings 

  * igt@gem_exec_suspend@basic-s0:
- fi-kbl-x1275:   [DMESG-WARN][25] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][26] ([i915#62] / [i915#92]) +4 similar issues
   [25]: 

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/5] drm/i915/gt: Include a bunch more rcs image state

2019-12-31 Thread Patchwork
== Series Details ==

Series: series starting with [1/5] drm/i915/gt: Include a bunch more rcs image 
state
URL   : https://patchwork.freedesktop.org/series/71506/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7657_full -> Patchwork_15951_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_persistence@vcs1-mixed-process:
- shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#109276] / [fdo#112080])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb2/igt@gem_ctx_persiste...@vcs1-mixed-process.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15951/shard-iclb5/igt@gem_ctx_persiste...@vcs1-mixed-process.html

  * igt@gem_ctx_shared@q-smoketest-blt:
- shard-tglb: [PASS][3] -> [INCOMPLETE][4] ([fdo#111735])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb5/igt@gem_ctx_sha...@q-smoketest-blt.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15951/shard-tglb4/igt@gem_ctx_sha...@q-smoketest-blt.html

  * igt@gem_exec_balancer@smoke:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#110854])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb2/igt@gem_exec_balan...@smoke.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15951/shard-iclb3/igt@gem_exec_balan...@smoke.html

  * igt@gem_exec_parallel@contexts:
- shard-tglb: [PASS][7] -> [INCOMPLETE][8] ([i915#470]) +1 similar 
issue
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb1/igt@gem_exec_paral...@contexts.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15951/shard-tglb8/igt@gem_exec_paral...@contexts.html

  * igt@gem_exec_schedule@preempt-queue-blt:
- shard-tglb: [PASS][9] -> [INCOMPLETE][10] ([fdo#111677])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb7/igt@gem_exec_sched...@preempt-queue-blt.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15951/shard-tglb8/igt@gem_exec_sched...@preempt-queue-blt.html

  * igt@gem_exec_schedule@promotion-bsd1:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#109276]) +15 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb1/igt@gem_exec_sched...@promotion-bsd1.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15951/shard-iclb8/igt@gem_exec_sched...@promotion-bsd1.html

  * igt@gem_exec_schedule@reorder-wide-bsd:
- shard-iclb: [PASS][13] -> [SKIP][14] ([fdo#112146]) +4 similar 
issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb5/igt@gem_exec_sched...@reorder-wide-bsd.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15951/shard-iclb2/igt@gem_exec_sched...@reorder-wide-bsd.html

  * igt@gem_exec_suspend@basic-s4-devices:
- shard-tglb: [PASS][15] -> [INCOMPLETE][16] ([i915#460])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb8/igt@gem_exec_susp...@basic-s4-devices.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15951/shard-tglb9/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@gem_exec_whisper@normal:
- shard-tglb: [PASS][17] -> [INCOMPLETE][18] ([i915#435]) +1 
similar issue
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb5/igt@gem_exec_whis...@normal.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15951/shard-tglb8/igt@gem_exec_whis...@normal.html

  * igt@gem_persistent_relocs@forked-interruptible-thrash-inactive:
- shard-apl:  [PASS][19] -> [TIMEOUT][20] ([i915#530])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-apl3/igt@gem_persistent_rel...@forked-interruptible-thrash-inactive.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15951/shard-apl6/igt@gem_persistent_rel...@forked-interruptible-thrash-inactive.html

  * igt@gem_sync@basic-all:
- shard-tglb: [PASS][21] -> [INCOMPLETE][22] ([i915#470] / 
[i915#472])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb2/igt@gem_s...@basic-all.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15951/shard-tglb6/igt@gem_s...@basic-all.html

  * igt@i915_selftest@live_requests:
- shard-tglb: [PASS][23] -> [INCOMPLETE][24] ([i915#472])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb8/igt@i915_selftest@live_requests.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15951/shard-tglb2/igt@i915_selftest@live_requests.html

  * igt@kms_color@pipe-a-ctm-negative:
- shard-skl:  [PASS][25] -> [DMESG-WARN][26] ([i915#109])
   [25]: 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/gt: Restore coarse power gating

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915/gt: Restore coarse power gating
URL   : https://patchwork.freedesktop.org/series/71520/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
0bd0e98f0db7 drm/i915/gt: Restore coarse power gating
-:31: WARNING:SPACE_BEFORE_TAB: please, no space before tabs
#31: FILE: drivers/gpu/drm/i915/i915_drv.h:1660:
+#define NEEDS_WaRsDisableCoarsePowerGating(dev_priv) ^I^I^I\$

-:31: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'dev_priv' - possible 
side-effects?
#31: FILE: drivers/gpu/drm/i915/i915_drv.h:1660:
+#define NEEDS_WaRsDisableCoarsePowerGating(dev_priv)   \
+   (IS_CANNONLAKE(dev_priv) || \
+IS_SKL_GT3(dev_priv) ||\
+IS_SKL_GT4(dev_priv))

total: 0 errors, 1 warnings, 1 checks, 13 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 drm/i915/gt: Tweak flushes around ivb ppgtt

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915/gt: Tweak flushes around ivb ppgtt
URL   : https://patchwork.freedesktop.org/series/71519/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7657 -> Patchwork_15952


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_close_race@basic-threads:
- fi-byt-j1900:   [PASS][1] -> [TIMEOUT][2] ([i915#816])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-byt-j1900/igt@gem_close_r...@basic-threads.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/fi-byt-j1900/igt@gem_close_r...@basic-threads.html

  * igt@gem_exec_suspend@basic-s3:
- fi-icl-u2:  [PASS][3] -> [FAIL][4] ([fdo#103375])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@gem_exec_susp...@basic-s3.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/fi-icl-u2/igt@gem_exec_susp...@basic-s3.html

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-icl-u2:  [PASS][5] -> [FAIL][6] ([fdo#111550])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@gem_exec_susp...@basic-s4-devices.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/fi-icl-u2/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@i915_pm_rpm@module-reload:
- fi-skl-lmem:[PASS][7] -> [DMESG-WARN][8] ([i915#592])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-skl-lmem/igt@i915_pm_...@module-reload.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/fi-skl-lmem/igt@i915_pm_...@module-reload.html

  * igt@i915_selftest@live_execlists:
- fi-bwr-2160:[PASS][9] -> [FAIL][10] ([i915#878])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-bwr-2160/igt@i915_selftest@live_execlists.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/fi-bwr-2160/igt@i915_selftest@live_execlists.html

  
 Possible fixes 

  * igt@gem_exec_suspend@basic-s3:
- fi-tgl-y:   [INCOMPLETE][11] ([fdo#111736] / [i915#460]) -> 
[PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/fi-tgl-y/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_module_load@reload-with-fault-injection:
- fi-cfl-guc: [INCOMPLETE][13] ([i915#505] / [i915#671]) -> 
[PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-cfl-guc/igt@i915_module_l...@reload-with-fault-injection.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/fi-cfl-guc/igt@i915_module_l...@reload-with-fault-injection.html
- fi-skl-6700k2:  [INCOMPLETE][15] ([i915#671]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/fi-skl-6700k2/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@i915_pm_rpm@module-reload:
- fi-skl-guc: [INCOMPLETE][17] ([i915#151]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-skl-guc/igt@i915_pm_...@module-reload.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/fi-skl-guc/igt@i915_pm_...@module-reload.html

  * igt@i915_selftest@live_blt:
- fi-ivb-3770:[DMESG-FAIL][19] ([i915#725]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-ivb-3770/igt@i915_selftest@live_blt.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/fi-ivb-3770/igt@i915_selftest@live_blt.html

  * igt@kms_busy@basic-flip-pipe-a:
- fi-icl-u2:  [INCOMPLETE][21] ([i915#140]) -> [PASS][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-icl-u2/igt@kms_b...@basic-flip-pipe-a.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/fi-icl-u2/igt@kms_b...@basic-flip-pipe-a.html

  
 Warnings 

  * igt@i915_selftest@live_blt:
- fi-hsw-4770:[DMESG-FAIL][23] ([i915#553] / [i915#725]) -> 
[DMESG-FAIL][24] ([i915#725])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15952/fi-hsw-4770/igt@i915_selftest@live_blt.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- fi-kbl-x1275:   [DMESG-WARN][25] ([i915#62] / [i915#92] / [i915#95]) 
-> [DMESG-WARN][26] ([i915#62] / [i915#92]) +5 similar issues
   [25]: 

[Intel-gfx] [PATCH] drm/i915/gt: Restore coarse power gating

2019-12-31 Thread Chris Wilson
The coarse power gating was disabled as part of commit 2248a28384fe
("drm/i915/gen8+: Add RC6 CTX corruption WA") as a prelude to recover
from the context corruption; the power gating itself has no direct
impact on the RC6 context corruption. However, that recovery scheme was
never implemented due to difficult corner cases, and so we no longer need
to keep the power gating disabled.

Fixes: 2248a28384fe ("drm/i915/gen8+: Add RC6 CTX corruption WA")
Closes: https://gitlab.freedesktop.org/drm/intel/issues/846
Signed-off-by: Chris Wilson 
Cc: Imre Deak 
Cc: Mika Kuoppala 
Cc: Eero Tamminen 
Cc: Jon Bloomfield 
---
 drivers/gpu/drm/i915/i915_drv.h | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index b7f122dccdca..85b565e69ad4 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1657,8 +1657,11 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
(IS_BROADWELL(dev_priv) || IS_GEN(dev_priv, 9))
 
 /* WaRsDisableCoarsePowerGating:skl,cnl */
-#define NEEDS_WaRsDisableCoarsePowerGating(dev_priv) \
-   IS_GEN_RANGE(dev_priv, 9, 10)
+#define NEEDS_WaRsDisableCoarsePowerGating(dev_priv)   \
+   (IS_CANNONLAKE(dev_priv) || \
+IS_SKL_GT3(dev_priv) ||\
+IS_SKL_GT4(dev_priv))
+
 
 #define HAS_GMBUS_IRQ(dev_priv) (INTEL_GEN(dev_priv) >= 4)
 #define HAS_GMBUS_BURST_READ(dev_priv) (INTEL_GEN(dev_priv) >= 10 || \
-- 
2.25.0.rc0

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


[Intel-gfx] [CI] drm/i915/gt: Tweak flushes around ivb ppgtt

2019-12-31 Thread Chris Wilson
A small tweak to flush then invalidate appears to improve the
reliability of ppGTT switches on Ivybridge -- but does not improve
hsw/vlv bcs reliability.

Signed-off-by: Chris Wilson 
Cc: Mika Kuoppala 
---
 drivers/gpu/drm/i915/gt/intel_ring_submission.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_ring_submission.c 
b/drivers/gpu/drm/i915/gt/intel_ring_submission.c
index 066c4eddf5d0..48dbe46edbff 100644
--- a/drivers/gpu/drm/i915/gt/intel_ring_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_ring_submission.c
@@ -1394,7 +1394,7 @@ static int load_pd_dir(struct i915_request *rq,
 
intel_ring_advance(rq, cs);
 
-   return 0;
+   return rq->engine->emit_flush(rq, EMIT_FLUSH);
 }
 
 static inline int mi_set_context(struct i915_request *rq, u32 flags)
@@ -1584,7 +1584,7 @@ static int switch_mm(struct i915_request *rq, struct 
i915_address_space *vm)
if (ret)
return ret;
 
-   return rq->engine->emit_flush(rq, EMIT_FLUSH);
+   return rq->engine->emit_flush(rq, EMIT_INVALIDATE);
 }
 
 static int switch_context(struct i915_request *rq)
-- 
2.25.0.rc0

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


Re: [Intel-gfx] [PATCH 9/9] drm/i915/display: use port_info on intel_ddi_init

2019-12-31 Thread Jani Nikula
On Mon, 23 Dec 2019, Lucas De Marchi  wrote:
> Now that we have tables for all platforms using ddi, keep the port_info
> around so we can use it for decisions like "what phy does it have?"
> instead of keep checking the platform/gen everywhere.
>
> Signed-off-by: Lucas De Marchi 
> ---
>  drivers/gpu/drm/i915/display/intel_ddi.c  | 36 ---
>  drivers/gpu/drm/i915/display/intel_ddi.h  |  8 -
>  drivers/gpu/drm/i915/display/intel_display.c  |  2 +-
>  .../drm/i915/display/intel_display_types.h|  3 ++
>  4 files changed, 35 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
> b/drivers/gpu/drm/i915/display/intel_ddi.c
> index a1b7075ea6be..9d06a34f5f8e 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -4782,14 +4782,25 @@ intel_ddi_max_lanes(struct intel_digital_port 
> *dig_port)
>   return max_lanes;
>  }
>  
> -void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
> +bool __pure intel_ddi_has_tc_phy(const struct intel_digital_port *dig_port)

Nitpick, I think __pure is premature optimization that may cause more
confusion than it benefits. Also, 'git grep __pure -- drivers | wc -l'.

BR,
Jani.


>  {
> + return dig_port->port_info->phy_type == PHY_TYPE_TC;
> +}
> +
> +bool __pure intel_ddi_has_combo_phy(const struct intel_digital_port 
> *dig_port)
> +{
> + return dig_port->port_info->phy_type == PHY_TYPE_COMBO;
> +}
> +
> +void intel_ddi_init(struct drm_i915_private *dev_priv,
> + const struct intel_ddi_port_info *port_info)
> +{
> + enum port port = port_info->port;
>   struct ddi_vbt_port_info *vbt_port_info =
>   _priv->vbt.ddi_port_info[port];
>   struct intel_digital_port *intel_dig_port;
>   struct intel_encoder *encoder;
>   bool init_hdmi, init_dp, init_lspcon = false;
> - enum phy phy = intel_port_to_phy(dev_priv, port);
>  
>   init_hdmi = vbt_port_info->supports_dvi || vbt_port_info->supports_hdmi;
>   init_dp = vbt_port_info->supports_dp;
> @@ -4803,12 +4814,12 @@ void intel_ddi_init(struct drm_i915_private 
> *dev_priv, enum port port)
>   init_dp = true;
>   init_lspcon = true;
>   init_hdmi = false;
> - DRM_DEBUG_KMS("VBT says port %c has lspcon\n", port_name(port));
> + DRM_DEBUG_KMS("VBT says port %s has lspcon\n", port_info->name);
>   }
>  
>   if (!init_dp && !init_hdmi) {
> - DRM_DEBUG_KMS("VBT says port %c is not DVI/HDMI/DP compatible, 
> respect it\n",
> -   port_name(port));
> + DRM_DEBUG_KMS("VBT says %s is not DVI/HDMI/DP compatible, 
> respect it\n",
> +   port_info->name);
>   return;
>   }
>  
> @@ -4819,7 +4830,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, 
> enum port port)
>   encoder = _dig_port->base;
>  
>   drm_encoder_init(_priv->drm, >base, _ddi_funcs,
> -  DRM_MODE_ENCODER_TMDS, "DDI %c", port_name(port));
> +  DRM_MODE_ENCODER_TMDS, port_info->name);
>  
>   encoder->hotplug = intel_ddi_hotplug;
>   encoder->compute_output_type = intel_ddi_compute_output_type;
> @@ -4837,7 +4848,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, 
> enum port port)
>  
>   encoder->type = INTEL_OUTPUT_DDI;
>   encoder->power_domain = intel_port_to_power_domain(port);
> - encoder->port = port;
> + encoder->port = port_info->port;
>   encoder->cloneable = 0;
>   encoder->pipe_mask = ~0;
>  
> @@ -4851,8 +4862,9 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, 
> enum port port)
>   intel_dig_port->dp.output_reg = INVALID_MMIO_REG;
>   intel_dig_port->max_lanes = intel_ddi_max_lanes(intel_dig_port);
>   intel_dig_port->aux_ch = intel_bios_port_aux_ch(dev_priv, port);
> + intel_dig_port->port_info = port_info;
>  
> - if (intel_phy_is_tc(dev_priv, phy)) {
> + if (intel_ddi_has_tc_phy(intel_dig_port)) {
>   bool is_legacy = !vbt_port_info->supports_typec_usb &&
>!vbt_port_info->supports_tbt;
>  
> @@ -4883,15 +4895,15 @@ void intel_ddi_init(struct drm_i915_private 
> *dev_priv, enum port port)
>   if (init_lspcon) {
>   if (lspcon_init(intel_dig_port))
>   /* TODO: handle hdmi info frame part */
> - DRM_DEBUG_KMS("LSPCON init success on port %c\n",
> - port_name(port));
> + DRM_DEBUG_KMS("LSPCON init success on port %s\n",
> +   port_info->name);
>   else
>   /*
>* LSPCON init faied, but DP init was success, so
>* lets try to drive as DP++ port.
>*/
> - DRM_ERROR("LSPCON init failed on 

Re: [Intel-gfx] [PATCH 9/9] drm/i915/display: use port_info on intel_ddi_init

2019-12-31 Thread Jani Nikula
On Mon, 23 Dec 2019, Matt Roper  wrote:
> On Mon, Dec 23, 2019 at 11:58:50AM -0800, Lucas De Marchi wrote:
>> Now that we have tables for all platforms using ddi, keep the port_info
>> around so we can use it for decisions like "what phy does it have?"
>> instead of keep checking the platform/gen everywhere.
>> 
>> Signed-off-by: Lucas De Marchi 
>> ---
>>  drivers/gpu/drm/i915/display/intel_ddi.c  | 36 ---
>>  drivers/gpu/drm/i915/display/intel_ddi.h  |  8 -
>>  drivers/gpu/drm/i915/display/intel_display.c  |  2 +-
>>  .../drm/i915/display/intel_display_types.h|  3 ++
>>  4 files changed, 35 insertions(+), 14 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
>> b/drivers/gpu/drm/i915/display/intel_ddi.c
>> index a1b7075ea6be..9d06a34f5f8e 100644
>> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
>> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
>> @@ -4782,14 +4782,25 @@ intel_ddi_max_lanes(struct intel_digital_port 
>> *dig_port)
>>  return max_lanes;
>>  }
>>  
>> -void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
>> +bool __pure intel_ddi_has_tc_phy(const struct intel_digital_port *dig_port)
>>  {
>> +return dig_port->port_info->phy_type == PHY_TYPE_TC;
>> +}
>> +
>> +bool __pure intel_ddi_has_combo_phy(const struct intel_digital_port 
>> *dig_port)
>> +{
>> +return dig_port->port_info->phy_type == PHY_TYPE_COMBO;
>> +}
>> +
>> +void intel_ddi_init(struct drm_i915_private *dev_priv,
>> +const struct intel_ddi_port_info *port_info)
>> +{
>> +enum port port = port_info->port;
>>  struct ddi_vbt_port_info *vbt_port_info =
>>  _priv->vbt.ddi_port_info[port];
>>  struct intel_digital_port *intel_dig_port;
>>  struct intel_encoder *encoder;
>>  bool init_hdmi, init_dp, init_lspcon = false;
>> -enum phy phy = intel_port_to_phy(dev_priv, port);
>>  
>>  init_hdmi = vbt_port_info->supports_dvi || vbt_port_info->supports_hdmi;
>>  init_dp = vbt_port_info->supports_dp;
>> @@ -4803,12 +4814,12 @@ void intel_ddi_init(struct drm_i915_private 
>> *dev_priv, enum port port)
>>  init_dp = true;
>>  init_lspcon = true;
>>  init_hdmi = false;
>> -DRM_DEBUG_KMS("VBT says port %c has lspcon\n", port_name(port));
>> +DRM_DEBUG_KMS("VBT says port %s has lspcon\n", port_info->name);
>>  }
>>  
>>  if (!init_dp && !init_hdmi) {
>> -DRM_DEBUG_KMS("VBT says port %c is not DVI/HDMI/DP compatible, 
>> respect it\n",
>> -  port_name(port));
>> +DRM_DEBUG_KMS("VBT says %s is not DVI/HDMI/DP compatible, 
>> respect it\n",
>> +  port_info->name);
>>  return;
>>  }
>>  
>> @@ -4819,7 +4830,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, 
>> enum port port)
>>  encoder = _dig_port->base;
>>  
>>  drm_encoder_init(_priv->drm, >base, _ddi_funcs,
>> - DRM_MODE_ENCODER_TMDS, "DDI %c", port_name(port));
>> + DRM_MODE_ENCODER_TMDS, port_info->name);
>>  
>>  encoder->hotplug = intel_ddi_hotplug;
>>  encoder->compute_output_type = intel_ddi_compute_output_type;
>> @@ -4837,7 +4848,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, 
>> enum port port)
>>  
>>  encoder->type = INTEL_OUTPUT_DDI;
>>  encoder->power_domain = intel_port_to_power_domain(port);
>> -encoder->port = port;
>> +encoder->port = port_info->port;
>
> In theory, shouldn't we be able to drop encoder->port completely once
> we've converted everything over to the proper ddi/phy/vbt namespace?
>
> Overall I like the direction this series is going.  The continued use of
> 'port' terminology, both in the driver and in the hardware specs has
> become increasingly confusing as things get chopped up and indexed
> differently.  I think this will help clarify exactly what a platform is
> expecting and force people to think about which namespace is correct for
> the part of the hardware they're working with.

Indeed, this part I like.

I am less certain whether we need to change output setup to be driven by
the new port_info. Seems like we could keep the existing output setup
(with its wrinkles) while converting port towards a struct consisting of
port, phy and phy type. And make the latter table driven instead of the
current intel_port_to_*() and intel_phy_is_*(). I think that's good
stuff.

But I don't like all the wrinkles with port F and DSI and straps etc. in
the output setup changes in this series. And we'll still *also* depend
on VBT here. I am not sure if the output setup should in fact be driven
by the VBT instead of the ports (yeah, *gasp*!).

I guess the issue with output setup would be if there are collisions in
ports with different phys. Though that would require VBT parsing changes
for DDI too, as that currently ignores such cases (and we have that in
CHV DSI).


BR,
Jani.

>
>
> 

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Stop programming DDI_BUF_TRANS_SELECT on recent platforms

2019-12-31 Thread Patchwork
== Series Details ==

Series: drm/i915: Stop programming DDI_BUF_TRANS_SELECT on recent platforms
URL   : https://patchwork.freedesktop.org/series/71503/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7657_full -> Patchwork_15950_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_persistence@vcs1-queued:
- shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#109276] / [fdo#112080]) 
+2 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb2/igt@gem_ctx_persiste...@vcs1-queued.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15950/shard-iclb6/igt@gem_ctx_persiste...@vcs1-queued.html

  * igt@gem_ctx_persistence@vecs0-mixed-process:
- shard-apl:  [PASS][3] -> [FAIL][4] ([i915#679])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-apl1/igt@gem_ctx_persiste...@vecs0-mixed-process.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15950/shard-apl6/igt@gem_ctx_persiste...@vecs0-mixed-process.html

  * igt@gem_exec_balancer@smoke:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#110854])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb2/igt@gem_exec_balan...@smoke.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15950/shard-iclb3/igt@gem_exec_balan...@smoke.html

  * igt@gem_exec_create@forked:
- shard-tglb: [PASS][7] -> [INCOMPLETE][8] ([fdo#108838] / 
[i915#435])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb1/igt@gem_exec_cre...@forked.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15950/shard-tglb1/igt@gem_exec_cre...@forked.html

  * igt@gem_exec_parallel@vcs0-fds:
- shard-tglb: [PASS][9] -> [INCOMPLETE][10] ([i915#470]) +2 similar 
issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb1/igt@gem_exec_paral...@vcs0-fds.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15950/shard-tglb9/igt@gem_exec_paral...@vcs0-fds.html

  * igt@gem_exec_schedule@fifo-bsd1:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#109276]) +14 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb1/igt@gem_exec_sched...@fifo-bsd1.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15950/shard-iclb5/igt@gem_exec_sched...@fifo-bsd1.html

  * igt@gem_exec_schedule@preempt-queue-blt:
- shard-tglb: [PASS][13] -> [INCOMPLETE][14] ([fdo#111677])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb7/igt@gem_exec_sched...@preempt-queue-blt.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15950/shard-tglb3/igt@gem_exec_sched...@preempt-queue-blt.html

  * igt@gem_exec_schedule@preempt-queue-contexts-chain-vebox:
- shard-tglb: [PASS][15] -> [INCOMPLETE][16] ([fdo#111606] / 
[fdo#111677])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb3/igt@gem_exec_sched...@preempt-queue-contexts-chain-vebox.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15950/shard-tglb6/igt@gem_exec_sched...@preempt-queue-contexts-chain-vebox.html

  * igt@gem_exec_schedule@reorder-wide-bsd:
- shard-iclb: [PASS][17] -> [SKIP][18] ([fdo#112146]) +5 similar 
issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-iclb5/igt@gem_exec_sched...@reorder-wide-bsd.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15950/shard-iclb1/igt@gem_exec_sched...@reorder-wide-bsd.html

  * igt@gem_exec_whisper@normal:
- shard-tglb: [PASS][19] -> [INCOMPLETE][20] ([i915#435])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb5/igt@gem_exec_whis...@normal.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15950/shard-tglb3/igt@gem_exec_whis...@normal.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-apl:  [PASS][21] -> [FAIL][22] ([i915#644])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-apl2/igt@gem_pp...@flink-and-close-vma-leak.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15950/shard-apl2/igt@gem_pp...@flink-and-close-vma-leak.html
- shard-skl:  [PASS][23] -> [FAIL][24] ([i915#644])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-skl4/igt@gem_pp...@flink-and-close-vma-leak.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15950/shard-skl9/igt@gem_pp...@flink-and-close-vma-leak.html

  * igt@gem_sync@basic-all:
- shard-tglb: [PASS][25] -> [INCOMPLETE][26] ([i915#470] / 
[i915#472])
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7657/shard-tglb2/igt@gem_s...@basic-all.html
   [26]: 

Re: [Intel-gfx] [PATCH 8/9] drm/i915/display: refer to vbt info as vbt_port_info

2019-12-31 Thread Jani Nikula
On Mon, 23 Dec 2019, Lucas De Marchi  wrote:
> Now that we maintain our static port info, rename the places that refer
> to the port_info from vbt to use the vbt prefix. This is just a
> preparation step for a following change in which we will use the
> port_info variable name.

Side note, I intend to get rid of dev_priv->vbt.ddi_port_info[]
entirely.

For output initialization time, you'd have to call some function in
intel_bios.c to get the info you want. Maybe at that point you'd get an
opaque pointer to struct display_device_data which you could use to
query the child device data. You'd stick that pointer to intel_encoder
(or intel_connector), and subsequent queries would be based on that,
instead of figuring out the port and indexing something in dev_priv.

In the mean time, the rename for now seems fine.


BR,
Jani.


>
> Signed-off-by: Lucas De Marchi 
> ---
>  drivers/gpu/drm/i915/display/intel_ddi.c | 17 +
>  1 file changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
> b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 1bdf63845472..a1b7075ea6be 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -902,7 +902,8 @@ icl_get_combo_buf_trans(struct drm_i915_private 
> *dev_priv, int type, int rate,
>  
>  static int intel_ddi_hdmi_level(struct drm_i915_private *dev_priv, enum port 
> port)
>  {
> - struct ddi_vbt_port_info *port_info = 
> _priv->vbt.ddi_port_info[port];
> + struct ddi_vbt_port_info *vbt_port_info =
> + _priv->vbt.ddi_port_info[port];
>   int n_entries, level, default_entry;
>   enum phy phy = intel_port_to_phy(dev_priv, port);
>  
> @@ -943,8 +944,8 @@ static int intel_ddi_hdmi_level(struct drm_i915_private 
> *dev_priv, enum port por
>   if (WARN_ON_ONCE(n_entries == 0))
>   return 0;
>  
> - if (port_info->hdmi_level_shift_set)
> - level = port_info->hdmi_level_shift;
> + if (vbt_port_info->hdmi_level_shift_set)
> + level = vbt_port_info->hdmi_level_shift;
>   else
>   level = default_entry;
>  
> @@ -4783,15 +4784,15 @@ intel_ddi_max_lanes(struct intel_digital_port 
> *dig_port)
>  
>  void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
>  {
> - struct ddi_vbt_port_info *port_info =
> + struct ddi_vbt_port_info *vbt_port_info =
>   _priv->vbt.ddi_port_info[port];
>   struct intel_digital_port *intel_dig_port;
>   struct intel_encoder *encoder;
>   bool init_hdmi, init_dp, init_lspcon = false;
>   enum phy phy = intel_port_to_phy(dev_priv, port);
>  
> - init_hdmi = port_info->supports_dvi || port_info->supports_hdmi;
> - init_dp = port_info->supports_dp;
> + init_hdmi = vbt_port_info->supports_dvi || vbt_port_info->supports_hdmi;
> + init_dp = vbt_port_info->supports_dp;
>  
>   if (intel_bios_is_lspcon_present(dev_priv, port)) {
>   /*
> @@ -4852,8 +4853,8 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, 
> enum port port)
>   intel_dig_port->aux_ch = intel_bios_port_aux_ch(dev_priv, port);
>  
>   if (intel_phy_is_tc(dev_priv, phy)) {
> - bool is_legacy = !port_info->supports_typec_usb &&
> -  !port_info->supports_tbt;
> + bool is_legacy = !vbt_port_info->supports_typec_usb &&
> +  !vbt_port_info->supports_tbt;
>  
>   intel_tc_port_init(intel_dig_port, is_legacy);

-- 
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 7/9] drm/i915/display: add phy, vbt and ddi indexes

2019-12-31 Thread Jani Nikula
On Mon, 23 Dec 2019, Lucas De Marchi  wrote:
> Identify 3 possible cases in which the index numbers can be different
> from the "port" and add them to the description-based ddi initialization
> table.  This can be used in place of additional functions mapping from
> on to the other.  Right now we already cover part of this by creating kind of
> virtual phy numbering, but that comes with downsides:
>
> a) there's not really a "phy numbering" in the spec, this is purely a
> software thing; hardware uses whatever they want thinking mapping from
> one to the other arbitrarily is easy in software.
>
> b) currently the mapping occurs on "leaf" functions, making the decision
> based on the platform.
>
> With this new table the approach will be: the port as defined by the
> enum port is purely a driver convention and won't be used anymore to
> define the register offset or register bits. For that we have the other
> 3 indexes, identified as being possibly different from the current usage
> of register bits: ddi, vbt and phy. The phy type is also added here,
> meant to replace the checks for combo vs tc (although the helper
> functions can remain so we may differentiate between, e.g. Dekel and MG
> phys).

I'm not sure how the vbt_idx is supposed to be used (because it's
actually not used anywhere here). I would like to reduce the amount of
VBT info spread around in the driver, so I'd really need to know more.

> While at it, also give names to the ports so they can be easily
> identified.
>
> Signed-off-by: Lucas De Marchi 
> ---
>  drivers/gpu/drm/i915/display/intel_display.c  | 54 +--
>  drivers/gpu/drm/i915/display/intel_display.h  |  7 +++
>  .../drm/i915/display/intel_display_types.h|  5 ++
>  3 files changed, 39 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
> b/drivers/gpu/drm/i915/display/intel_display.c
> index ad85cf75c815..219f180fa395 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -16277,14 +16277,14 @@ static bool ddi_is_port_present(struct 
> drm_i915_private *i915,
>  static const struct intel_output tgl_output = {
>   .dsi_init = icl_dsi_init,
>   .ddi_ports = {
> - { .port = PORT_A },
> - { .port = PORT_B },
> - { .port = PORT_D },
> - { .port = PORT_E },
> - { .port = PORT_F },
> - { .port = PORT_G },
> - { .port = PORT_H },
> - { .port = PORT_I },
> + { .name = "DDI A",   .port = PORT_A, .phy_type = 
> PHY_TYPE_COMBO, .ddi_idx = 0x0, .phy_idx = 0x0, .vbt_idx = 0x0, },
> + { .name = "DDI B",   .port = PORT_B, .phy_type = 
> PHY_TYPE_COMBO, .ddi_idx = 0x1, .phy_idx = 0x1, .vbt_idx = 0x1, },
> + { .name = "DDI TC1", .port = PORT_D, .phy_type = PHY_TYPE_TC,   
>  .ddi_idx = 0x3, .phy_idx = 0x0, .vbt_idx = 0x2, },
> + { .name = "DDI TC2", .port = PORT_E, .phy_type = PHY_TYPE_TC,   
>  .ddi_idx = 0x4, .phy_idx = 0x1, .vbt_idx = 0x3, },
> + { .name = "DDI TC3", .port = PORT_F, .phy_type = PHY_TYPE_TC,   
>  .ddi_idx = 0x5, .phy_idx = 0x2, .vbt_idx = 0x4, },
> + { .name = "DDI TC4", .port = PORT_G, .phy_type = PHY_TYPE_TC,   
>  .ddi_idx = 0x6, .phy_idx = 0x3, .vbt_idx = 0x5, },
> + { .name = "DDI TC5", .port = PORT_H, .phy_type = PHY_TYPE_TC,   
>  .ddi_idx = 0x7, .phy_idx = 0x4, .vbt_idx = 0x6, },
> + { .name = "DDI TC6", .port = PORT_I, .phy_type = PHY_TYPE_TC,   
>  .ddi_idx = 0x8, .phy_idx = 0x5, .vbt_idx = 0x7, },
>   { .port = PORT_NONE }

Makes you wonder if this sort of info should be linked from the
intel_device_info instead of adding new arrays. Not sure.

BR,
Jani.


>   }
>  };
> @@ -16293,12 +16293,12 @@ static const struct intel_output icl_output = {
>   .dsi_init = icl_dsi_init,
>   .is_port_present = icl_is_port_present,
>   .ddi_ports = {
> - { .port = PORT_A },
> - { .port = PORT_B },
> - { .port = PORT_C },
> - { .port = PORT_D },
> - { .port = PORT_E },
> - { .port = PORT_F },
> + { .name = "DDI A",   .port = PORT_A, .phy_type = 
> PHY_TYPE_COMBO, .ddi_idx = 0x0, .phy_idx = 0x0, .vbt_idx = 0x0, },
> + { .name = "DDI B",   .port = PORT_B, .phy_type = 
> PHY_TYPE_COMBO, .ddi_idx = 0x1, .phy_idx = 0x1, .vbt_idx = 0x1, },
> + { .name = "DDI TC1", .port = PORT_C, .phy_type = PHY_TYPE_TC,   
>  .ddi_idx = 0x2, .phy_idx = 0x0, .vbt_idx = 0x2, },
> + { .name = "DDI TC2", .port = PORT_D, .phy_type = PHY_TYPE_TC,   
>  .ddi_idx = 0x3, .phy_idx = 0x1, .vbt_idx = 0x3, },
> + { .name = "DDI TC3", .port = PORT_E, .phy_type = PHY_TYPE_TC,   
>  .ddi_idx = 0x4, .phy_idx = 0x2, .vbt_idx = 0x4, },
> + { .name = "DDI TC4", .port = PORT_F, .phy_type = PHY_TYPE_TC,   
>  .ddi_idx = 0x5, .phy_idx = 0x3, 

Re: [Intel-gfx] [PATCH 6/9] drm/i915/display: description-based initialization for remaining ddi platforms

2019-12-31 Thread Jani Nikula
On Tue, 31 Dec 2019, Jani Nikula  wrote:
> On Mon, 23 Dec 2019, Lucas De Marchi  wrote:
>> Support remaining platforms under HAS_DDI() by providing a slightly more
>> complex is_port_present() hook. The downside is that now we call
>> I915_READ(SFUSE_STRAP) for each port being initialized, but that's only
>> on initialization: a few more mmio reads won't hurt.
>>
>> Alternatives would be to provide one hook per port, or to have a
>> "pre_init()" hook that takes care of the mmio read. However I think this
>> is simpler - we may need to adapt if future platforms don't follow the
>> same initialization "template".
>
> All of this really makes me wonder if we end up being *more* complicated
> overall by trying very hard to make this generic, when, in reality, it
> doesn't seem to be all that generic.
>
> As I said, two relatively low hanging improvements would be a) moving
> VBT specific hacks to intel_bios.c and b) adding port mask to
> intel_device_info. Those two alone would go a long way in simplifying
> intel_setup_outputs().
>
>>
>> Signed-off-by: Lucas De Marchi 
>> ---
>>  drivers/gpu/drm/i915/display/intel_display.c | 72 +---
>>  1 file changed, 46 insertions(+), 26 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
>> b/drivers/gpu/drm/i915/display/intel_display.c
>> index 6b4d320ff92c..ad85cf75c815 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display.c
>> +++ b/drivers/gpu/drm/i915/display/intel_display.c
>> @@ -16246,6 +16246,34 @@ static bool icl_is_port_present(struct 
>> drm_i915_private *i915,
>>  intel_bios_is_port_present(i915, PORT_F);
>>  }
>>  
>> +static bool ddi_is_port_present(struct drm_i915_private *i915,
>> +const struct intel_ddi_port_info *port_info)
>> +{
>> +/* keep I915_READ() happy */
>
> Display could get rid of I915_READ and I915_WRITE after
> https://patchwork.freedesktop.org/series/70298/ ...
>
> BR,
> Jani.
>
>> +struct drm_i915_private *dev_priv = i915;
>> +
>> +if (port_info->port == PORT_A)
>> +return I915_READ(DDI_BUF_CTL(PORT_A))
>> +& DDI_INIT_DISPLAY_DETECTED;
>> +
>> +if (port_info->port == PORT_E)
>> +return IS_GEN9_BC(dev_priv) &&
>> +intel_bios_is_port_present(i915, PORT_E);
>> +
>> +switch (port_info->port) {
>> +case PORT_B:
>> +return I915_READ(SFUSE_STRAP) & SFUSE_STRAP_DDIB_DETECTED;
>> +case PORT_C:
>> +return I915_READ(SFUSE_STRAP) & SFUSE_STRAP_DDIC_DETECTED;
>> +case PORT_D:
>> +return I915_READ(SFUSE_STRAP) & SFUSE_STRAP_DDID_DETECTED;
>> +case PORT_F:
>> +return I915_READ(SFUSE_STRAP) & SFUSE_STRAP_DDIF_DETECTED;
>> +default:
>> +return false;
>> +}
>> +}
>> +
>>  static const struct intel_output tgl_output = {
>>  .dsi_init = icl_dsi_init,
>>  .ddi_ports = {
>> @@ -16296,11 +16324,24 @@ static const struct intel_output gen9lp_output = {
>>  },
>>  };
>>  
>> +static const struct intel_output ddi_output = {
>> +.is_port_present = ddi_is_port_present,
>> +.ddi_ports = {
>> +{ .port = PORT_A },
>> +{ .port = PORT_B },
>> +{ .port = PORT_C },
>> +{ .port = PORT_D },
>> +{ .port = PORT_E },
>> +{ .port = PORT_F },
>> +{ .port = PORT_NONE }
>> +}
>> +};
>> +
>>  /*
>>   * Use a description-based approach for platforms that can be supported 
>> with a
>>   * static table
>>   */
>> -static void setup_ddi_outputs_desc(struct drm_i915_private *i915)
>> +static void setup_ddi_outputs(struct drm_i915_private *i915)
>>  {
>>  const struct intel_output *output;
>>  const struct intel_ddi_port_info *port_info;
>> @@ -16313,6 +16354,8 @@ static void setup_ddi_outputs_desc(struct 
>> drm_i915_private *i915)
>>  output = _output;
>>  else if (IS_GEN9_LP(i915))
>>  output = _output;
>> +else
>> +output = _output;
>>  
>>  for (port_info = output->ddi_ports;
>>   port_info->port != PORT_NONE; port_info++) {
>> @@ -16338,35 +16381,12 @@ static void intel_setup_outputs(struct 
>> drm_i915_private *dev_priv)
>>  return;
>>  
>>  if (INTEL_GEN(dev_priv) >= 11 || IS_GEN9_LP(dev_priv)) {
>> -setup_ddi_outputs_desc(dev_priv);
>> +setup_ddi_outputs(dev_priv);
>>  } else if (HAS_DDI(dev_priv)) {
>> -int found;
>> -
>>  if (intel_ddi_crt_present(dev_priv))
>>  intel_crt_init(dev_priv);

PS. You still need stuff like this after the supposedly generic output
setup...

>>  
>> -found = I915_READ(DDI_BUF_CTL(PORT_A)) & 
>> DDI_INIT_DISPLAY_DETECTED;
>> -if (found)
>> -intel_ddi_init(dev_priv, PORT_A);
>> -
>> -/* DDI B, C, D, and F detection is indicated by the SFUSE_STRAP
>> - * register */
>> -

Re: [Intel-gfx] [PATCH 6/9] drm/i915/display: description-based initialization for remaining ddi platforms

2019-12-31 Thread Jani Nikula
On Mon, 23 Dec 2019, Lucas De Marchi  wrote:
> Support remaining platforms under HAS_DDI() by providing a slightly more
> complex is_port_present() hook. The downside is that now we call
> I915_READ(SFUSE_STRAP) for each port being initialized, but that's only
> on initialization: a few more mmio reads won't hurt.
>
> Alternatives would be to provide one hook per port, or to have a
> "pre_init()" hook that takes care of the mmio read. However I think this
> is simpler - we may need to adapt if future platforms don't follow the
> same initialization "template".

All of this really makes me wonder if we end up being *more* complicated
overall by trying very hard to make this generic, when, in reality, it
doesn't seem to be all that generic.

As I said, two relatively low hanging improvements would be a) moving
VBT specific hacks to intel_bios.c and b) adding port mask to
intel_device_info. Those two alone would go a long way in simplifying
intel_setup_outputs().

>
> Signed-off-by: Lucas De Marchi 
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 72 +---
>  1 file changed, 46 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 6b4d320ff92c..ad85cf75c815 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -16246,6 +16246,34 @@ static bool icl_is_port_present(struct 
> drm_i915_private *i915,
>   intel_bios_is_port_present(i915, PORT_F);
>  }
>  
> +static bool ddi_is_port_present(struct drm_i915_private *i915,
> + const struct intel_ddi_port_info *port_info)
> +{
> + /* keep I915_READ() happy */

Display could get rid of I915_READ and I915_WRITE after
https://patchwork.freedesktop.org/series/70298/ ...

BR,
Jani.

> + struct drm_i915_private *dev_priv = i915;
> +
> + if (port_info->port == PORT_A)
> + return I915_READ(DDI_BUF_CTL(PORT_A))
> + & DDI_INIT_DISPLAY_DETECTED;
> +
> + if (port_info->port == PORT_E)
> + return IS_GEN9_BC(dev_priv) &&
> + intel_bios_is_port_present(i915, PORT_E);
> +
> + switch (port_info->port) {
> + case PORT_B:
> + return I915_READ(SFUSE_STRAP) & SFUSE_STRAP_DDIB_DETECTED;
> + case PORT_C:
> + return I915_READ(SFUSE_STRAP) & SFUSE_STRAP_DDIC_DETECTED;
> + case PORT_D:
> + return I915_READ(SFUSE_STRAP) & SFUSE_STRAP_DDID_DETECTED;
> + case PORT_F:
> + return I915_READ(SFUSE_STRAP) & SFUSE_STRAP_DDIF_DETECTED;
> + default:
> + return false;
> + }
> +}
> +
>  static const struct intel_output tgl_output = {
>   .dsi_init = icl_dsi_init,
>   .ddi_ports = {
> @@ -16296,11 +16324,24 @@ static const struct intel_output gen9lp_output = {
>   },
>  };
>  
> +static const struct intel_output ddi_output = {
> + .is_port_present = ddi_is_port_present,
> + .ddi_ports = {
> + { .port = PORT_A },
> + { .port = PORT_B },
> + { .port = PORT_C },
> + { .port = PORT_D },
> + { .port = PORT_E },
> + { .port = PORT_F },
> + { .port = PORT_NONE }
> + }
> +};
> +
>  /*
>   * Use a description-based approach for platforms that can be supported with 
> a
>   * static table
>   */
> -static void setup_ddi_outputs_desc(struct drm_i915_private *i915)
> +static void setup_ddi_outputs(struct drm_i915_private *i915)
>  {
>   const struct intel_output *output;
>   const struct intel_ddi_port_info *port_info;
> @@ -16313,6 +16354,8 @@ static void setup_ddi_outputs_desc(struct 
> drm_i915_private *i915)
>   output = _output;
>   else if (IS_GEN9_LP(i915))
>   output = _output;
> + else
> + output = _output;
>  
>   for (port_info = output->ddi_ports;
>port_info->port != PORT_NONE; port_info++) {
> @@ -16338,35 +16381,12 @@ static void intel_setup_outputs(struct 
> drm_i915_private *dev_priv)
>   return;
>  
>   if (INTEL_GEN(dev_priv) >= 11 || IS_GEN9_LP(dev_priv)) {
> - setup_ddi_outputs_desc(dev_priv);
> + setup_ddi_outputs(dev_priv);
>   } else if (HAS_DDI(dev_priv)) {
> - int found;
> -
>   if (intel_ddi_crt_present(dev_priv))
>   intel_crt_init(dev_priv);
>  
> - found = I915_READ(DDI_BUF_CTL(PORT_A)) & 
> DDI_INIT_DISPLAY_DETECTED;
> - if (found)
> - intel_ddi_init(dev_priv, PORT_A);
> -
> - /* DDI B, C, D, and F detection is indicated by the SFUSE_STRAP
> -  * register */
> - found = I915_READ(SFUSE_STRAP);
> -
> - if (found & SFUSE_STRAP_DDIB_DETECTED)
> - intel_ddi_init(dev_priv, PORT_B);
> - if (found & SFUSE_STRAP_DDIC_DETECTED)
> -   

Re: [Intel-gfx] [PATCH 5/9] drm/i915/display: move icl to description-based ddi init

2019-12-31 Thread Jani Nikula
On Mon, 23 Dec 2019, Lucas De Marchi  wrote:
> By adding a hook that determines if a port is present, we are able to
> support Ice Lake in the new description-based DDI initialization.
>
> Signed-off-by: Lucas De Marchi 
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 61 ++--
>  1 file changed, 42 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
> b/drivers/gpu/drm/i915/display/intel_display.c
> index b3fb1e03cb0b..6b4d320ff92c 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -16224,9 +16224,28 @@ static void intel_pps_init(struct drm_i915_private 
> *dev_priv)
>  struct intel_output {
>   /* Initialize DSI if present */
>   void (*dsi_init)(struct drm_i915_private *i915);
> +
> + /*
> +  * Check if port is present before trying to initialize; if not provided
> +  * it's assumed the port is present (or we can't check and fail
> +  * gracefully
> +  */
> + bool (*is_port_present)(struct drm_i915_private *i915,
> + const struct intel_ddi_port_info *port_info);
> +
>   struct intel_ddi_port_info ddi_ports[];
>  };
>  
> +static bool icl_is_port_present(struct drm_i915_private *i915,
> + const struct intel_ddi_port_info *port_info)
> +{
> + if (port_info->port != PORT_F)
> + return true;
> +
> + return IS_ICL_WITH_PORT_F(i915) &&
> + intel_bios_is_port_present(i915, PORT_F);
> +}
> +

You know, all of that is here because there were some boards with broken
VBTs claiming there was a port F on hardware that didn't have port
F. And now we're turning it into infrastructure for all platforms. :(

I actually preferred it when it was a localized hack for ICL. (Though I
said at the time we should not add hacks for VBTs because this shit
won't get fixed if we keep accommodating it.)

If we still need the port F hack, I think I'd rather move it to
intel_bios.c and skip port F description in VBT for platformsm that
don't have it. So we can rely on VBT info elsewhere.

Note that intel_ddi_init() will still check for VBT.

>  static const struct intel_output tgl_output = {
>   .dsi_init = icl_dsi_init,
>   .ddi_ports = {
> @@ -16242,6 +16261,20 @@ static const struct intel_output tgl_output = {
>   }
>  };
>  
> +static const struct intel_output icl_output = {
> + .dsi_init = icl_dsi_init,
> + .is_port_present = icl_is_port_present,
> + .ddi_ports = {
> + { .port = PORT_A },
> + { .port = PORT_B },
> + { .port = PORT_C },
> + { .port = PORT_D },
> + { .port = PORT_E },
> + { .port = PORT_F },
> + { .port = PORT_NONE }

At this stage of the series it seems to me we could have a ports mask in
intel_device_info, and just loop over it using for_each_port_masked().

BR,
Jani.

> + }
> +};
> +
>  static const struct intel_output ehl_output = {
>   .dsi_init = icl_dsi_init,
>   .ddi_ports = {
> @@ -16276,12 +16309,19 @@ static void setup_ddi_outputs_desc(struct 
> drm_i915_private *i915)
>   output = _output;
>   else if (IS_ELKHARTLAKE(i915))
>   output = _output;
> + else if (IS_GEN(i915, 11))
> + output = _output;
>   else if (IS_GEN9_LP(i915))
>   output = _output;
>  
>   for (port_info = output->ddi_ports;
> -  port_info->port != PORT_NONE; port_info++)
> +  port_info->port != PORT_NONE; port_info++) {
> + if (output->is_port_present &&
> + !output->is_port_present(i915, port_info))
> + continue;
> +
>   intel_ddi_init(i915, port_info->port);
> + }
>  
>   if (output->dsi_init)
>   output->dsi_init(i915);
> @@ -16297,25 +16337,8 @@ static void intel_setup_outputs(struct 
> drm_i915_private *dev_priv)
>   if (!HAS_DISPLAY(dev_priv) || !INTEL_DISPLAY_ENABLED(dev_priv))
>   return;
>  
> - if (INTEL_GEN(dev_priv) >= 12 || IS_ELKHARTLAKE(dev_priv) ||
> - IS_GEN9_LP(dev_priv)) {
> + if (INTEL_GEN(dev_priv) >= 11 || IS_GEN9_LP(dev_priv)) {
>   setup_ddi_outputs_desc(dev_priv);
> - } else if (IS_GEN(dev_priv, 11)) {
> - intel_ddi_init(dev_priv, PORT_A);
> - intel_ddi_init(dev_priv, PORT_B);
> - intel_ddi_init(dev_priv, PORT_C);
> - intel_ddi_init(dev_priv, PORT_D);
> - intel_ddi_init(dev_priv, PORT_E);
> - /*
> -  * On some ICL SKUs port F is not present. No strap bits for
> -  * this, so rely on VBT.
> -  * Work around broken VBTs on SKUs known to have no port F.
> -  */
> - if (IS_ICL_WITH_PORT_F(dev_priv) &&
> - intel_bios_is_port_present(dev_priv, PORT_F))
> - 

Re: [Intel-gfx] [PATCH 4/9] drm/i915/display: start description-based ddi initialization

2019-12-31 Thread Jani Nikula
On Mon, 23 Dec 2019, Lucas De Marchi  wrote:
> For the latest platforms we can share the logic to initialize the the
> ddi, so start moving the most trivial ones to a new setup_outputs_desc()
> function that will be responsible for initialization according to a
> static const table.
>
> Signed-off-by: Lucas De Marchi 
> ---
>  drivers/gpu/drm/i915/display/intel_display.c  | 96 +--
>  .../drm/i915/display/intel_display_types.h|  4 +
>  2 files changed, 73 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 04819b0bd494..b3fb1e03cb0b 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -16221,6 +16221,72 @@ static void intel_pps_init(struct drm_i915_private 
> *dev_priv)
>   intel_pps_unlock_regs_wa(dev_priv);
>  }
>  
> +struct intel_output {
> + /* Initialize DSI if present */
> + void (*dsi_init)(struct drm_i915_private *i915);

We'll need to be able to initialize DSI on multiple ports too. I've
already drafted a series to do so, maybe I've even sent it to the
list. Basically you'd pass the port to icl_dsi_init() too.

I don't want that development to get any more complicated than it
already is.

BR,
Jani.


> + struct intel_ddi_port_info ddi_ports[];
> +};
> +
> +static const struct intel_output tgl_output = {
> + .dsi_init = icl_dsi_init,
> + .ddi_ports = {
> + { .port = PORT_A },
> + { .port = PORT_B },
> + { .port = PORT_D },
> + { .port = PORT_E },
> + { .port = PORT_F },
> + { .port = PORT_G },
> + { .port = PORT_H },
> + { .port = PORT_I },
> + { .port = PORT_NONE }
> + }
> +};
> +
> +static const struct intel_output ehl_output = {
> + .dsi_init = icl_dsi_init,
> + .ddi_ports = {
> + { .port = PORT_A },
> + { .port = PORT_B },
> + { .port = PORT_C },
> + { .port = PORT_D },
> + { .port = PORT_NONE }
> + }
> +};
> +
> +static const struct intel_output gen9lp_output = {
> + .dsi_init = vlv_dsi_init,
> + .ddi_ports = {
> + { .port = PORT_A },
> + { .port = PORT_B },
> + { .port = PORT_C },
> + { .port = PORT_NONE }
> + },
> +};
> +
> +/*
> + * Use a description-based approach for platforms that can be supported with 
> a
> + * static table
> + */
> +static void setup_ddi_outputs_desc(struct drm_i915_private *i915)
> +{
> + const struct intel_output *output;
> + const struct intel_ddi_port_info *port_info;
> +
> + if (INTEL_GEN(i915) >= 12)
> + output = _output;
> + else if (IS_ELKHARTLAKE(i915))
> + output = _output;
> + else if (IS_GEN9_LP(i915))
> + output = _output;
> +
> + for (port_info = output->ddi_ports;
> +  port_info->port != PORT_NONE; port_info++)
> + intel_ddi_init(i915, port_info->port);
> +
> + if (output->dsi_init)
> + output->dsi_init(i915);
> +}
> +
>  static void intel_setup_outputs(struct drm_i915_private *dev_priv)
>  {
>   struct intel_encoder *encoder;
> @@ -16231,22 +16297,9 @@ static void intel_setup_outputs(struct 
> drm_i915_private *dev_priv)
>   if (!HAS_DISPLAY(dev_priv) || !INTEL_DISPLAY_ENABLED(dev_priv))
>   return;
>  
> - if (INTEL_GEN(dev_priv) >= 12) {
> - intel_ddi_init(dev_priv, PORT_A);
> - intel_ddi_init(dev_priv, PORT_B);
> - intel_ddi_init(dev_priv, PORT_D);
> - intel_ddi_init(dev_priv, PORT_E);
> - intel_ddi_init(dev_priv, PORT_F);
> - intel_ddi_init(dev_priv, PORT_G);
> - intel_ddi_init(dev_priv, PORT_H);
> - intel_ddi_init(dev_priv, PORT_I);
> - icl_dsi_init(dev_priv);
> - } else if (IS_ELKHARTLAKE(dev_priv)) {
> - intel_ddi_init(dev_priv, PORT_A);
> - intel_ddi_init(dev_priv, PORT_B);
> - intel_ddi_init(dev_priv, PORT_C);
> - intel_ddi_init(dev_priv, PORT_D);
> - icl_dsi_init(dev_priv);
> + if (INTEL_GEN(dev_priv) >= 12 || IS_ELKHARTLAKE(dev_priv) ||
> + IS_GEN9_LP(dev_priv)) {
> + setup_ddi_outputs_desc(dev_priv);
>   } else if (IS_GEN(dev_priv, 11)) {
>   intel_ddi_init(dev_priv, PORT_A);
>   intel_ddi_init(dev_priv, PORT_B);
> @@ -16263,17 +16316,6 @@ static void intel_setup_outputs(struct 
> drm_i915_private *dev_priv)
>   intel_ddi_init(dev_priv, PORT_F);
>  
>   icl_dsi_init(dev_priv);
> - } else if (IS_GEN9_LP(dev_priv)) {
> - /*
> -  * FIXME: Broxton doesn't support port detection via the
> -  * DDI_BUF_CTL_A or SFUSE_STRAP registers, find another way to
> -  * detect the ports.
> -