[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [CI,1/2] drm/i915: Add mechanism to submit a context WA on ring submission

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915: Add mechanism to submit a 
context WA on ring submission
URL   : https://patchwork.freedesktop.org/series/74363/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
c0358b495597 drm/i915: Add mechanism to submit a context WA on ring submission
-:262: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#262: 
new file mode 100644

-:373: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#373: FILE: drivers/gpu/drm/i915/gt/selftest_ring_submission.c:107:
+   pr_err("pass[%d] wa_bb emitted for the kernel 
context\n",
+   pass);

-:384: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#384: FILE: drivers/gpu/drm/i915/gt/selftest_ring_submission.c:118:
+   pr_err("pass[%d] wa_bb *NOT* emitted after the 
kernel context\n",
+   pass);

-:395: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#395: FILE: drivers/gpu/drm/i915/gt/selftest_ring_submission.c:129:
+   pr_err("pass[%d] wa_bb *NOT* emitted for the 
user context switch\n",
+   pass);

total: 0 errors, 1 warnings, 3 checks, 504 lines checked
1283df1a1750 drm/i915/gen7: Clear all EU/L3 residual contexts
-:46: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#46: 
new file mode 100644

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

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


[Intel-gfx] [PATCH 3/3] drm/i915/gem: Limit struct_mutex to eb_reserve

2020-03-05 Thread Chris Wilson
We only need to serialise the multiple pinning during the eb_reserve
phase. Ideally this would be using the vm->mutex as an outer lock, or
using a composite global mutex (ww_mutex), but at the moment we are
using struct_mutex for the group.

Fixes: 003d8b9143a6 ("drm/i915/gem: Only call eb_lookup_vma once during execbuf 
ioctl")
Signed-off-by: Chris Wilson 
Cc: Mika Kuoppala 
---
 .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 51 ---
 drivers/gpu/drm/i915/i915_drv.h   |  6 ---
 2 files changed, 20 insertions(+), 37 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index 7bb27f382af7..faa5b5c99a9a 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -610,7 +610,7 @@ static int eb_reserve(struct i915_execbuffer *eb)
struct list_head last;
struct eb_vma *ev;
unsigned int i, pass;
-   int err;
+   int err = 0;
 
/*
 * Attempt to pin all of the buffers into the GTT.
@@ -626,8 +626,10 @@ static int eb_reserve(struct i915_execbuffer *eb)
 * room for the earlier objects *unless* we need to defragment.
 */
 
+   if (mutex_lock_interruptible(>i915->drm.struct_mutex))
+   return -EINTR;
+
pass = 0;
-   err = 0;
do {
list_for_each_entry(ev, >unbound, bind_link) {
err = eb_reserve_vma(eb, ev, pin_flags);
@@ -635,7 +637,7 @@ static int eb_reserve(struct i915_execbuffer *eb)
break;
}
if (!(err == -ENOSPC || err == -EAGAIN))
-   return err;
+   break;
 
/* Resort *all* the objects into priority order */
INIT_LIST_HEAD(>unbound);
@@ -666,7 +668,9 @@ static int eb_reserve(struct i915_execbuffer *eb)
list_splice_tail(, >unbound);
 
if (err == -EAGAIN) {
+   mutex_unlock(>i915->drm.struct_mutex);
flush_workqueue(eb->i915->mm.userptr_wq);
+   mutex_lock(>i915->drm.struct_mutex);
continue;
}
 
@@ -680,15 +684,20 @@ static int eb_reserve(struct i915_execbuffer *eb)
err = i915_gem_evict_vm(eb->context->vm);
mutex_unlock(>context->vm->mutex);
if (err)
-   return err;
+   goto unlock;
break;
 
default:
-   return -ENOSPC;
+   err = -ENOSPC;
+   goto unlock;
}
 
pin_flags = PIN_USER;
} while (1);
+
+unlock:
+   mutex_unlock(>i915->drm.struct_mutex);
+   return err;
 }
 
 static unsigned int eb_batch_index(const struct i915_execbuffer *eb)
@@ -1631,7 +1640,6 @@ static int eb_prefault_relocations(const struct 
i915_execbuffer *eb)
 
 static noinline int eb_relocate_slow(struct i915_execbuffer *eb)
 {
-   struct drm_device *dev = >i915->drm;
bool have_copy = false;
struct eb_vma *ev;
int err = 0;
@@ -1642,8 +1650,6 @@ static noinline int eb_relocate_slow(struct 
i915_execbuffer *eb)
goto out;
}
 
-   mutex_unlock(>struct_mutex);
-
/*
 * We take 3 passes through the slowpatch.
 *
@@ -1666,21 +1672,8 @@ static noinline int eb_relocate_slow(struct 
i915_execbuffer *eb)
cond_resched();
err = 0;
}
-   if (err) {
-   mutex_lock(>struct_mutex);
-   goto out;
-   }
-
-   /* A frequent cause for EAGAIN are currently unavailable client pages */
-   flush_workqueue(eb->i915->mm.userptr_wq);
-
-   err = i915_mutex_lock_interruptible(dev);
-   if (err) {
-   mutex_lock(>struct_mutex);
+   if (err)
goto out;
-   }
-
-   GEM_BUG_ON(!eb->batch);
 
list_for_each_entry(ev, >relocs, reloc_link) {
if (!have_copy) {
@@ -1738,9 +1731,11 @@ static int eb_relocate(struct i915_execbuffer *eb)
if (err)
return err;
 
-   err = eb_reserve(eb);
-   if (err)
-   return err;
+   if (!list_empty(>unbound)) {
+   err = eb_reserve(eb);
+   if (err)
+   return err;
+   }
 
/* The objects are in their final locations, apply the relocations. */
if (eb->args->flags & __EXEC_HAS_RELOC) {
@@ -2690,10 +2685,6 @@ i915_gem_do_execbuffer(struct drm_device *dev,
if (unlikely(err))
goto err_context;
 
-   err = i915_mutex_lock_interruptible(dev);
-   if (err)
-   goto err_engine;
-
err = eb_relocate();
if (err) {
/*
@@ -2837,8 

[Intel-gfx] [PATCH 2/3] drm/i915: Always propagate the invocation to i915_schedule

2020-03-05 Thread Chris Wilson
We only call i915_schedule() when we know we have changed the priority
on a request and so require to propagate any change in priority to its
signalers (for PI). By unconditionally checking all of our signalers, we
avoid skipping changes made prior to construction of the request (as the
request may be waited upon before submission when used in parallel).

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/i915_scheduler.c | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_scheduler.c 
b/drivers/gpu/drm/i915/i915_scheduler.c
index be770f2419b1..52f71e83e088 100644
--- a/drivers/gpu/drm/i915/i915_scheduler.c
+++ b/drivers/gpu/drm/i915/i915_scheduler.c
@@ -227,10 +227,10 @@ static void kick_submission(struct intel_engine_cs 
*engine,
 static void __i915_schedule(struct i915_sched_node *node,
const struct i915_sched_attr *attr)
 {
+   const int prio = max(attr->priority, node->attr.priority);
struct intel_engine_cs *engine;
struct i915_dependency *dep, *p;
struct i915_dependency stack;
-   const int prio = attr->priority;
struct sched_cache cache;
LIST_HEAD(dfs);
 
@@ -238,9 +238,6 @@ static void __i915_schedule(struct i915_sched_node *node,
lockdep_assert_held(_lock);
GEM_BUG_ON(prio == I915_PRIORITY_INVALID);
 
-   if (prio <= READ_ONCE(node->attr.priority))
-   return;
-
if (node_signaled(node))
return;
 
-- 
2.25.1

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


[Intel-gfx] [PATCH 1/3] drm/i915: Assert requests within a context are submitted in order

2020-03-05 Thread Chris Wilson
Check the flow of requests into the hardware to verify that are
submitted in order along their timeline.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/gt/intel_lrc.c | 4 
 drivers/gpu/drm/i915/i915_request.c | 4 
 2 files changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 16a023ac4604..13941d1c0a4a 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -1622,6 +1622,7 @@ static bool can_merge_rq(const struct i915_request *prev,
if (!can_merge_ctx(prev->context, next->context))
return false;
 
+   GEM_BUG_ON(i915_seqno_passed(prev->fence.seqno, next->fence.seqno));
return true;
 }
 
@@ -2142,6 +2143,9 @@ static void execlists_dequeue(struct intel_engine_cs 
*engine)
GEM_BUG_ON(last &&
   !can_merge_ctx(last->context,
  rq->context));
+   GEM_BUG_ON(last &&
+  i915_seqno_passed(last->fence.seqno,
+rq->fence.seqno));
 
submit = true;
last = rq;
diff --git a/drivers/gpu/drm/i915/i915_request.c 
b/drivers/gpu/drm/i915/i915_request.c
index ca5361eb1f0b..35147df79655 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -737,6 +737,7 @@ __i915_request_create(struct intel_context *ce, gfp_t gfp)
RCU_INIT_POINTER(rq->timeline, tl);
RCU_INIT_POINTER(rq->hwsp_cacheline, tl->hwsp_cacheline);
rq->hwsp_seqno = tl->hwsp_seqno;
+   GEM_BUG_ON(i915_request_completed(rq));
 
rq->rcustate = get_state_synchronize_rcu(); /* acts as smp_mb() */
 
@@ -1284,6 +1285,9 @@ __i915_request_add_to_timeline(struct i915_request *rq)
prev = to_request(__i915_active_fence_set(>last_request,
  >fence));
if (prev && !i915_request_completed(prev)) {
+   GEM_BUG_ON(i915_seqno_passed(prev->fence.seqno,
+rq->fence.seqno));
+
if (is_power_of_2(prev->engine->mask | rq->engine->mask))
i915_sw_fence_await_sw_fence(>submit,
 >submit,
-- 
2.25.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: allow setting generic data pointer

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/gt: allow setting generic data pointer
URL   : https://patchwork.freedesktop.org/series/74360/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8074 -> Patchwork_16852


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_addfb_basic@bad-pitch-999:
- fi-tgl-y:   [PASS][1] -> [DMESG-WARN][2] ([CI#94] / [i915#402]) 
+1 similar issue
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-tgl-y/igt@kms_addfb_ba...@bad-pitch-999.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16852/fi-tgl-y/igt@kms_addfb_ba...@bad-pitch-999.html

  
 Possible fixes 

  * igt@prime_vgem@basic-gtt:
- fi-tgl-y:   [DMESG-WARN][3] ([CI#94] / [i915#402]) -> [PASS][4] 
+1 similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-tgl-y/igt@prime_v...@basic-gtt.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16852/fi-tgl-y/igt@prime_v...@basic-gtt.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (50 -> 43)
--

  Additional (1): fi-kbl-7560u 
  Missing(8): fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-snb-2520m 
fi-ctg-p8600 fi-gdg-551 fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8074 -> Patchwork_16852

  CI-20190529: 20190529
  CI_DRM_8074: 0dd63259839ca847514d749219635f311015 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16852: b5c27a068592cbdb2b4abf4e73ee5e305e3e227d @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

b5c27a068592 drm/i915/gt: allow setting generic data pointer

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915/gt: allow setting generic data pointer

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/gt: allow setting generic data pointer
URL   : https://patchwork.freedesktop.org/series/74360/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

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


[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915/buddy: avoid double list_add

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915/buddy: avoid double list_add
URL   : https://patchwork.freedesktop.org/series/74355/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_8074 -> Patchwork_16850


Summary
---

  **FAILURE**

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

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@gem:
- fi-bsw-kefka:   [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-bsw-kefka/igt@i915_selftest@l...@gem.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16850/fi-bsw-kefka/igt@i915_selftest@l...@gem.html

  
 Warnings 

  * igt@amdgpu/amd_prime@amd-to-i915:
- fi-icl-y:   [SKIP][3] ([fdo#109315]) -> [SKIP][4] +1 similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-icl-y/igt@amdgpu/amd_pr...@amd-to-i915.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16850/fi-icl-y/igt@amdgpu/amd_pr...@amd-to-i915.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s3:
- fi-skl-6600u:   [PASS][5] -> [INCOMPLETE][6] ([i915#69])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-skl-6600u/igt@gem_exec_susp...@basic-s3.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16850/fi-skl-6600u/igt@gem_exec_susp...@basic-s3.html

  * igt@gem_render_linear_blits@basic:
- fi-tgl-y:   [PASS][7] -> [DMESG-WARN][8] ([CI#94] / [i915#402]) 
+1 similar issue
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-tgl-y/igt@gem_render_linear_bl...@basic.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16850/fi-tgl-y/igt@gem_render_linear_bl...@basic.html

  * igt@i915_selftest@live@execlists:
- fi-icl-y:   [PASS][9] -> [INCOMPLETE][10] ([i915#140])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-icl-y/igt@i915_selftest@l...@execlists.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16850/fi-icl-y/igt@i915_selftest@l...@execlists.html

  * igt@i915_selftest@live@gem_contexts:
- fi-cml-s:   [PASS][11] -> [DMESG-FAIL][12] ([i915#877])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-cml-s/igt@i915_selftest@live@gem_contexts.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16850/fi-cml-s/igt@i915_selftest@live@gem_contexts.html

  
 Possible fixes 

  * igt@prime_vgem@basic-gtt:
- fi-tgl-y:   [DMESG-WARN][13] ([CI#94] / [i915#402]) -> [PASS][14] 
+1 similar issue
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-tgl-y/igt@prime_v...@basic-gtt.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16850/fi-tgl-y/igt@prime_v...@basic-gtt.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [i915#140]: https://gitlab.freedesktop.org/drm/intel/issues/140
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#69]: https://gitlab.freedesktop.org/drm/intel/issues/69
  [i915#877]: https://gitlab.freedesktop.org/drm/intel/issues/877


Participating hosts (50 -> 43)
--

  Additional (1): fi-kbl-7560u 
  Missing(8): fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 
fi-ivb-3770 fi-skl-lmem fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8074 -> Patchwork_16850

  CI-20190529: 20190529
  CI_DRM_8074: 0dd63259839ca847514d749219635f311015 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16850: 362c612df08473f377fa496f1767bcaf4d186c58 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

362c612df084 drm/i915/selftests: try to rein in alloc_smoke
e89ba2d291ff drm/i915/buddy: avoid double list_add

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/gt: allow setting generic data pointer

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/gt: allow setting generic data pointer
URL   : https://patchwork.freedesktop.org/series/74360/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
b5c27a068592 drm/i915/gt: allow setting generic data pointer
-:72: CHECK:MACRO_ARG_REUSE: Macro argument reuse '_g' - possible side-effects?
#72: FILE: drivers/gpu/drm/i915/gt/debugfs_gt.h:38:
+#define intel_gt_debugfs_register_file(_g, _r, _f, _c) \
+   __intel_gt_debugfs_register_files(_g, _r, _f, _c, _g)

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

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


[Intel-gfx] ✗ Fi.CI.BUILD: failure for i915/gem_exec_params: add test_invalid_batch

2020-03-05 Thread Patchwork
== Series Details ==

Series: i915/gem_exec_params: add test_invalid_batch
URL   : https://patchwork.freedesktop.org/series/74356/
State : failure

== Summary ==

Applying: i915/gem_exec_params: add test_invalid_batch
error: sha1 information is lacking or useless (tests/i915/gem_exec_params.c).
error: could not build fake ancestor
hint: Use 'git am --show-current-patch' to see the failed patch
Patch failed at 0001 i915/gem_exec_params: add test_invalid_batch
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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for series starting with [1/2] drm/i915/buddy: avoid double list_add

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915/buddy: avoid double list_add
URL   : https://patchwork.freedesktop.org/series/74355/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

___
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/phys: unconditionally call release_memory_region

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/phys: unconditionally call release_memory_region
URL   : https://patchwork.freedesktop.org/series/74354/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8074 -> Patchwork_16849


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_addfb_basic@bad-pitch-128:
- fi-tgl-y:   [PASS][1] -> [DMESG-WARN][2] ([CI#94] / [i915#402])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-tgl-y/igt@kms_addfb_ba...@bad-pitch-128.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16849/fi-tgl-y/igt@kms_addfb_ba...@bad-pitch-128.html

  * igt@kms_flip@basic-flip-vs-wf_vblank:
- fi-kbl-soraka:  [PASS][3] -> [FAIL][4] ([i915#34])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-kbl-soraka/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16849/fi-kbl-soraka/igt@kms_flip@basic-flip-vs-wf_vblank.html

  
 Possible fixes 

  * igt@prime_vgem@basic-gtt:
- fi-tgl-y:   [DMESG-WARN][5] ([CI#94] / [i915#402]) -> [PASS][6] 
+1 similar issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-tgl-y/igt@prime_v...@basic-gtt.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16849/fi-tgl-y/igt@prime_v...@basic-gtt.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [i915#34]: https://gitlab.freedesktop.org/drm/intel/issues/34
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (50 -> 43)
--

  Additional (1): fi-kbl-7560u 
  Missing(8): fi-hsw-4200u fi-bsw-n3050 fi-byt-squawks fi-bsw-cyan 
fi-snb-2520m fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8074 -> Patchwork_16849

  CI-20190529: 20190529
  CI_DRM_8074: 0dd63259839ca847514d749219635f311015 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16849: c2288814c4892b49c27aa4250ce0e6a483d04077 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

c2288814c489 drm/i915/phys: unconditionally call release_memory_region

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915/phys: unconditionally call release_memory_region

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/phys: unconditionally call release_memory_region
URL   : https://patchwork.freedesktop.org/series/74354/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

___
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: be more solid in checking the alignment

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: be more solid in checking the alignment
URL   : https://patchwork.freedesktop.org/series/74353/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8074 -> Patchwork_16848


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_chamelium@dp-crc-fast:
- fi-kbl-7500u:   [PASS][1] -> [FAIL][2] ([fdo#109635] / [i915#262])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-kbl-7500u/igt@kms_chamel...@dp-crc-fast.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16848/fi-kbl-7500u/igt@kms_chamel...@dp-crc-fast.html

  * igt@kms_chamelium@hdmi-edid-read:
- fi-icl-u2:  [PASS][3] -> [FAIL][4] ([i915#217])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-icl-u2/igt@kms_chamel...@hdmi-edid-read.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16848/fi-icl-u2/igt@kms_chamel...@hdmi-edid-read.html

  * igt@prime_vgem@basic-read:
- fi-tgl-y:   [PASS][5] -> [DMESG-WARN][6] ([CI#94] / [i915#402]) 
+1 similar issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-tgl-y/igt@prime_v...@basic-read.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16848/fi-tgl-y/igt@prime_v...@basic-read.html

  
 Possible fixes 

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-tgl-y:   [FAIL][7] ([CI#94]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16848/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html

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

  * igt@prime_vgem@basic-gtt:
- fi-tgl-y:   [DMESG-WARN][11] ([CI#94] / [i915#402]) -> [PASS][12] 
+1 similar issue
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8074/fi-tgl-y/igt@prime_v...@basic-gtt.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16848/fi-tgl-y/igt@prime_v...@basic-gtt.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [fdo#109635]: https://bugs.freedesktop.org/show_bug.cgi?id=109635
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [i915#217]: https://gitlab.freedesktop.org/drm/intel/issues/217
  [i915#262]: https://gitlab.freedesktop.org/drm/intel/issues/262
  [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (50 -> 44)
--

  Missing(6): fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 
fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8074 -> Patchwork_16848

  CI-20190529: 20190529
  CI_DRM_8074: 0dd63259839ca847514d749219635f311015 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16848: 1920f5de2ebe3c7e11b1df26dd65d45f11adbd6f @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

1920f5de2ebe drm/i915: be more solid in checking the alignment

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915: be more solid in checking the alignment

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: be more solid in checking the alignment
URL   : https://patchwork.freedesktop.org/series/74353/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

___
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: properly sanity check batch_start_offset (rev2)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: properly sanity check batch_start_offset (rev2)
URL   : https://patchwork.freedesktop.org/series/74287/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8073 -> Patchwork_16847


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_selftest@live@gem_contexts:
- fi-cfl-guc: [PASS][1] -> [DMESG-FAIL][2] ([i915#943])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-cfl-guc/igt@i915_selftest@live@gem_contexts.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16847/fi-cfl-guc/igt@i915_selftest@live@gem_contexts.html

  * igt@kms_addfb_basic@addfb25-x-tiled-mismatch:
- fi-tgl-y:   [PASS][3] -> [DMESG-WARN][4] ([CI#94] / [i915#402])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-tgl-y/igt@kms_addfb_ba...@addfb25-x-tiled-mismatch.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16847/fi-tgl-y/igt@kms_addfb_ba...@addfb25-x-tiled-mismatch.html

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

  
 Possible fixes 

  * igt@vgem_basic@create:
- fi-tgl-y:   [DMESG-WARN][7] ([CI#94] / [i915#402]) -> [PASS][8] 
+1 similar issue
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-tgl-y/igt@vgem_ba...@create.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16847/fi-tgl-y/igt@vgem_ba...@create.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#943]: https://gitlab.freedesktop.org/drm/intel/issues/943


Participating hosts (47 -> 41)
--

  Additional (4): fi-kbl-soraka fi-elk-e7500 fi-snb-2520m fi-skl-6600u 
  Missing(10): fi-hsw-4200u fi-hsw-peppy fi-skl-6770hq fi-bsw-cyan 
fi-bwr-2160 fi-ctg-p8600 fi-skl-lmem fi-kbl-7560u fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8073 -> Patchwork_16847

  CI-20190529: 20190529
  CI_DRM_8073: 04042aee59126471bb37cec526ccaf44b4e8d506 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16847: 5aaff43297e17fe8352c34908a197798c8d66949 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

5aaff43297e1 drm/i915: properly sanity check batch_start_offset

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915: properly sanity check batch_start_offset (rev2)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: properly sanity check batch_start_offset (rev2)
URL   : https://patchwork.freedesktop.org/series/74287/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

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


Re: [Intel-gfx] [PATCH v6 3/3] drm/i915: Add support for integrated privacy screens

2020-03-05 Thread Rajat Jain
Hi Jani,

Thank you for the comments. Please see my responses inline.

On Thu, Mar 5, 2020 at 2:02 AM Jani Nikula  wrote:
>
> On Wed, 04 Mar 2020, Rajat Jain  wrote:
> > Certain laptops now come with panels that have integrated privacy
> > screens on them. This patch adds support for such panels by adding
> > a privacy-screen property to the intel_connector for the panel, that
> > the userspace can then use to control and check the status.
> >
> > Identifying the presence of privacy screen, and controlling it, is done
> > via ACPI _DSM methods.
> >
> > Currently, this is done only for the Intel display ports. But in future,
> > this can be done for any other ports if the hardware becomes available
> > (e.g. external monitors supporting integrated privacy screens?).
>
> I think you should add the property at the drm core level in
> drm_connector.c, not in i915, to ensure we have the same property across
> drivers. Even if, for now, you leave the acpi implementation part in
> i915.

OK, will do. In order to do that I may need to introduce driver level
hooks that i915 driver can populate and drm core can call (or may be
some functions to add privacy screen property that drm core exports
and i915 driver will call).

>
> More comments inline.
>
> >
> > Signed-off-by: Rajat Jain 
> > ---
> > v6: Always initialize prop in intel_attach_privacy_screen_property()
> > v5: fix a cosmetic checkpatch warning
> > v4: Fix a typo in intel_privacy_screen.h
> > v3: * Change license to GPL-2.0 OR MIT
> > * Move privacy screen enum from UAPI to intel_display_types.h
> > * Rename parameter name and some other minor changes.
> > v2: Formed by splitting the original patch into multiple patches.
> > - All code has been moved into i915 now.
> > - Privacy screen is a i915 property
> > - Have a local state variable to store the prvacy screen. Don't read
> >   it from hardware.
> >
> >  drivers/gpu/drm/i915/Makefile |  3 +-
> >  drivers/gpu/drm/i915/display/intel_atomic.c   | 13 +++-
> >  .../gpu/drm/i915/display/intel_connector.c| 35 +
> >  .../gpu/drm/i915/display/intel_connector.h|  1 +
> >  .../drm/i915/display/intel_display_types.h| 18 +
> >  drivers/gpu/drm/i915/display/intel_dp.c   |  6 ++
> >  .../drm/i915/display/intel_privacy_screen.c   | 72 +++
> >  .../drm/i915/display/intel_privacy_screen.h   | 27 +++
> >  8 files changed, 171 insertions(+), 4 deletions(-)
> >  create mode 100644 drivers/gpu/drm/i915/display/intel_privacy_screen.c
> >  create mode 100644 drivers/gpu/drm/i915/display/intel_privacy_screen.h
> >
> > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
> > index 991a8c537d123..825951b4cd006 100644
> > --- a/drivers/gpu/drm/i915/Makefile
> > +++ b/drivers/gpu/drm/i915/Makefile
> > @@ -208,7 +208,8 @@ i915-y += \
> >   display/intel_vga.o
> >  i915-$(CONFIG_ACPI) += \
> >   display/intel_acpi.o \
> > - display/intel_opregion.o
> > + display/intel_opregion.o \
> > + display/intel_privacy_screen.o
> >  i915-$(CONFIG_DRM_FBDEV_EMULATION) += \
> >   display/intel_fbdev.o
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c 
> > b/drivers/gpu/drm/i915/display/intel_atomic.c
> > index d043057d2fa03..4ed537c87 100644
> > --- a/drivers/gpu/drm/i915/display/intel_atomic.c
> > +++ b/drivers/gpu/drm/i915/display/intel_atomic.c
> > @@ -40,6 +40,7 @@
> >  #include "intel_global_state.h"
> >  #include "intel_hdcp.h"
> >  #include "intel_psr.h"
> > +#include "intel_privacy_screen.h"
> >  #include "intel_sprite.h"
> >
> >  /**
> > @@ -60,11 +61,14 @@ int intel_digital_connector_atomic_get_property(struct 
> > drm_connector *connector,
> >   struct drm_i915_private *dev_priv = to_i915(dev);
> >   struct intel_digital_connector_state *intel_conn_state =
> >   to_intel_digital_connector_state(state);
> > + struct intel_connector *intel_connector = 
> > to_intel_connector(connector);
> >
> >   if (property == dev_priv->force_audio_property)
> >   *val = intel_conn_state->force_audio;
> >   else if (property == dev_priv->broadcast_rgb_property)
> >   *val = intel_conn_state->broadcast_rgb;
> > + else if (property == intel_connector->privacy_screen_property)
> > + *val = intel_conn_state->privacy_screen_status;
> >   else {
> >   drm_dbg_atomic(_priv->drm,
> >  "Unknown property [PROP:%d:%s]\n",
> > @@ -93,15 +97,18 @@ int intel_digital_connector_atomic_set_property(struct 
> > drm_connector *connector,
> >   struct drm_i915_private *dev_priv = to_i915(dev);
> >   struct intel_digital_connector_state *intel_conn_state =
> >   to_intel_digital_connector_state(state);
> > + struct intel_connector *intel_connector = 
> > to_intel_connector(connector);
> >
> >   if (property == dev_priv->force_audio_property) {
> >   

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Add support for HDCP 1.4 over MST connectors (rev5)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Add support for HDCP 1.4 over MST connectors (rev5)
URL   : https://patchwork.freedesktop.org/series/70393/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8073 -> Patchwork_16845


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_selftest@live@gem_contexts:
- fi-cml-s:   [PASS][1] -> [DMESG-FAIL][2] ([i915#877])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-cml-s/igt@i915_selftest@live@gem_contexts.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16845/fi-cml-s/igt@i915_selftest@live@gem_contexts.html
- fi-cfl-guc: [PASS][3] -> [DMESG-FAIL][4] ([i915#943])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-cfl-guc/igt@i915_selftest@live@gem_contexts.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16845/fi-cfl-guc/igt@i915_selftest@live@gem_contexts.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-icl-u2:  [PASS][5] -> [FAIL][6] ([i915#217])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-icl-u2/igt@kms_chamel...@hdmi-hpd-fast.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16845/fi-icl-u2/igt@kms_chamel...@hdmi-hpd-fast.html

  * igt@prime_vgem@basic-gtt:
- fi-tgl-y:   [PASS][7] -> [DMESG-WARN][8] ([CI#94] / [i915#402])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-tgl-y/igt@prime_v...@basic-gtt.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16845/fi-tgl-y/igt@prime_v...@basic-gtt.html

  
 Possible fixes 

  * igt@kms_frontbuffer_tracking@basic:
- fi-hsw-peppy:   [DMESG-WARN][9] ([i915#44]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-hsw-peppy/igt@kms_frontbuffer_track...@basic.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16845/fi-hsw-peppy/igt@kms_frontbuffer_track...@basic.html

  * igt@vgem_basic@create:
- fi-tgl-y:   [DMESG-WARN][11] ([CI#94] / [i915#402]) -> [PASS][12] 
+1 similar issue
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-tgl-y/igt@vgem_ba...@create.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16845/fi-tgl-y/igt@vgem_ba...@create.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [i915#217]: https://gitlab.freedesktop.org/drm/intel/issues/217
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#44]: https://gitlab.freedesktop.org/drm/intel/issues/44
  [i915#877]: https://gitlab.freedesktop.org/drm/intel/issues/877
  [i915#943]: https://gitlab.freedesktop.org/drm/intel/issues/943


Participating hosts (47 -> 38)
--

  Additional (2): fi-kbl-soraka fi-elk-e7500 
  Missing(11): fi-bdw-5557u fi-hsw-4200u fi-skl-6770hq fi-bsw-cyan 
fi-ctg-p8600 fi-ivb-3770 fi-cfl-8109u fi-blb-e6850 fi-byt-clapper fi-bdw-samus 
fi-snb-2600 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8073 -> Patchwork_16845

  CI-20190529: 20190529
  CI_DRM_8073: 04042aee59126471bb37cec526ccaf44b4e8d506 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16845: 910e44eeaee67752558b7a4f86d81989a8602dd4 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

910e44eeaee6 drm/i915: Add HDCP 1.4 support for MST connectors
ed43091c9480 drm/i915: Print HDCP version info for all connectors
bbf7c097884e drm/mst: Add support for QUERY_STREAM_ENCRYPTION_STATUS MST 
sideband message
76ae56e95efc drm/i915: Add connector to hdcp_shim->check_link()
c10d2e023dd1 drm/i915: Plumb port through hdcp init
e63dce8c2a3f drm/i915: Factor out HDCP shim functions from dp for use by dp_mst
7ea37f514e7b drm/i915: Use ddi_update_pipe in intel_dp_mst
c9622c22eb06 drm/i915: Support DP MST in enc_to_dig_port() function
7d468b95ce7a drm/i915: Don't fully disable HDCP on a port if multiple pipes are 
using it
a53b07c7917d drm/i915: Protect workers against disappearing connectors
ef2cfbb9e130 drm/i915: Factor out hdcp->value assignments
5bdc5dc77094 drm/i915: Use the cpu_transcoder in intel_hdcp to toggle HDCP 
signalling
16e8d618fa38 drm/i915: Intercept Aksv writes in the aux hooks
729375a1130b drm/i915: WARN if HDCP signalling is enabled upon disable
c8f617e7591f drm/i915: Clear the repeater bit on HDCP disable
f3d9bb7dc10f drm/i915: Fix sha_text population code

== Logs ==

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

[Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/tgl: Don't treat unslice registers as masked

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/tgl: Don't treat unslice registers as masked
URL   : https://patchwork.freedesktop.org/series/74351/
State : failure

== Summary ==

Applying: drm/i915/tgl: Don't treat unslice registers as masked
error: sha1 information is lacking or useless 
(drivers/gpu/drm/i915/gt/intel_workarounds.c).
error: could not build fake ancestor
hint: Use 'git am --show-current-patch' to see the failed patch
Patch failed at 0001 drm/i915/tgl: Don't treat unslice registers as masked
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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915: Add support for HDCP 1.4 over MST connectors (rev5)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Add support for HDCP 1.4 over MST connectors (rev5)
URL   : https://patchwork.freedesktop.org/series/70393/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Add support for HDCP 1.4 over MST connectors (rev5)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Add support for HDCP 1.4 over MST connectors (rev5)
URL   : https://patchwork.freedesktop.org/series/70393/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
f3d9bb7dc10f drm/i915: Fix sha_text population code
-:63: WARNING:LINE_SPACING: Missing a blank line after declarations
#63: FILE: drivers/gpu/drm/i915/display/intel_hdcp.c:343:
+   u8 off = ((sizeof(sha_text) - j - 1 - sha_leftovers) * 
8);
+   sha_text |= ksv[j] << off;

total: 0 errors, 1 warnings, 0 checks, 61 lines checked
c8f617e7591f drm/i915: Clear the repeater bit on HDCP disable
729375a1130b drm/i915: WARN if HDCP signalling is enabled upon disable
16e8d618fa38 drm/i915: Intercept Aksv writes in the aux hooks
5bdc5dc77094 drm/i915: Use the cpu_transcoder in intel_hdcp to toggle HDCP 
signalling
ef2cfbb9e130 drm/i915: Factor out hdcp->value assignments
-:69: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#69: FILE: drivers/gpu/drm/i915/display/intel_hdcp.c:934:
+   intel_hdcp_update_value(connector,
+   DRM_MODE_CONTENT_PROTECTION_ENABLED, true);

-:114: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#114: FILE: drivers/gpu/drm/i915/display/intel_hdcp.c:1802:
+   intel_hdcp_update_value(connector,
+   DRM_MODE_CONTENT_PROTECTION_ENABLED,

-:126: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#126: FILE: drivers/gpu/drm/i915/display/intel_hdcp.c:1817:
+   intel_hdcp_update_value(connector,
+   DRM_MODE_CONTENT_PROTECTION_ENABLED,

-:138: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#138: FILE: drivers/gpu/drm/i915/display/intel_hdcp.c:1837:
+   intel_hdcp_update_value(connector,
+   DRM_MODE_CONTENT_PROTECTION_DESIRED, true);

total: 0 errors, 0 warnings, 4 checks, 138 lines checked
a53b07c7917d drm/i915: Protect workers against disappearing connectors
-:86: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#86: FILE: drivers/gpu/drm/i915/display/intel_hdcp.c:2198:
+   drm_WARN_ON(connector->base.dev,
+   connector->base.registration_state == DRM_CONNECTOR_REGISTERED);

total: 0 errors, 0 warnings, 1 checks, 71 lines checked
7d468b95ce7a drm/i915: Don't fully disable HDCP on a port if multiple pipes are 
using it
c9622c22eb06 drm/i915: Support DP MST in enc_to_dig_port() function
7ea37f514e7b drm/i915: Use ddi_update_pipe in intel_dp_mst
e63dce8c2a3f drm/i915: Factor out HDCP shim functions from dp for use by dp_mst
-:660: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#660: 
new file mode 100644

-:665: WARNING:SPDX_LICENSE_TAG: Improper SPDX comment style for 
'drivers/gpu/drm/i915/display/intel_dp_hdcp.c', please use '//' instead
#665: FILE: drivers/gpu/drm/i915/display/intel_dp_hdcp.c:1:
+/* SPDX-License-Identifier: MIT */

-:665: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier 
tag in line 1
#665: FILE: drivers/gpu/drm/i915/display/intel_dp_hdcp.c:1:
+/* SPDX-License-Identifier: MIT */

-:986: CHECK:BRACES: Blank lines aren't necessary before a close brace '}'
#986: FILE: drivers/gpu/drm/i915/display/intel_dp_hdcp.c:322:
+
+}

-:1065: WARNING:LINE_SPACING: Missing a blank line after declarations
#1065: FILE: drivers/gpu/drm/i915/display/intel_dp_hdcp.c:401:
+   ssize_t ret;
+   ret = drm_dp_dpcd_read(_dig_port->dp.aux, DP_AUX_HDCP_BKSV, bksv,

-:1128: WARNING:LINE_SPACING: Missing a blank line after declarations
#1128: FILE: drivers/gpu/drm/i915/display/intel_dp_hdcp.c:464:
+   ssize_t ret;
+   ret = drm_dp_dpcd_read(_dig_port->dp.aux, DP_AUX_HDCP_RI_PRIME,

-:1143: WARNING:LINE_SPACING: Missing a blank line after declarations
#1143: FILE: drivers/gpu/drm/i915/display/intel_dp_hdcp.c:479:
+   u8 bstatus;
+   ret = drm_dp_dpcd_read(_dig_port->dp.aux, DP_AUX_HDCP_BSTATUS,

-:1163: WARNING:LINE_SPACING: Missing a blank line after declarations
#1163: FILE: drivers/gpu/drm/i915/display/intel_dp_hdcp.c:499:
+   size_t len = min(num_downstream - i, 3) * DRM_HDCP_KSV_LEN;
+   ret = drm_dp_dpcd_read(_dig_port->dp.aux,

total: 0 errors, 7 warnings, 1 checks, 1224 lines checked
c10d2e023dd1 drm/i915: Plumb port through hdcp init
76ae56e95efc drm/i915: Add connector to hdcp_shim->check_link()
bbf7c097884e drm/mst: Add support for QUERY_STREAM_ENCRYPTION_STATUS MST 
sideband message
-:58: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#58: FILE: drivers/gpu/drm/drm_dp_mst_topology.c:951:
+drm_dp_sideband_parse_query_stream_enc_status(

-:128: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#128: FILE: drivers/gpu/drm/drm_dp_mst_topology.c:3221:
+int drm_dp_send_query_stream_enc_status(struct 

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/tgl: Make wa_1606700617 permanent (rev2)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/tgl: Make wa_1606700617 permanent (rev2)
URL   : https://patchwork.freedesktop.org/series/74240/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8073 -> Patchwork_16844


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

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

  * igt@vgem_basic@setversion:
- fi-tgl-y:   [PASS][3] -> [DMESG-WARN][4] ([CI#94] / [i915#402]) 
+1 similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-tgl-y/igt@vgem_ba...@setversion.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16844/fi-tgl-y/igt@vgem_ba...@setversion.html

  
 Possible fixes 

  * igt@kms_frontbuffer_tracking@basic:
- fi-hsw-peppy:   [DMESG-WARN][5] ([i915#44]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-hsw-peppy/igt@kms_frontbuffer_track...@basic.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16844/fi-hsw-peppy/igt@kms_frontbuffer_track...@basic.html

  * igt@vgem_basic@create:
- fi-tgl-y:   [DMESG-WARN][7] ([CI#94] / [i915#402]) -> [PASS][8] 
+1 similar issue
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-tgl-y/igt@vgem_ba...@create.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16844/fi-tgl-y/igt@vgem_ba...@create.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#44]: https://gitlab.freedesktop.org/drm/intel/issues/44


Participating hosts (47 -> 42)
--

  Additional (3): fi-kbl-soraka fi-snb-2520m fi-skl-6600u 
  Missing(8): fi-hsw-4200u fi-skl-6770hq fi-bsw-cyan fi-ilk-650 
fi-ctg-p8600 fi-skl-lmem fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8073 -> Patchwork_16844

  CI-20190529: 20190529
  CI_DRM_8073: 04042aee59126471bb37cec526ccaf44b4e8d506 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16844: 2591b1a7af9885a30547116c8baddea7f6d5b537 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

2591b1a7af98 drm/i915/tgl: Make wa_1606700617 permanent

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915/tgl: Make wa_1606700617 permanent (rev2)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/tgl: Make wa_1606700617 permanent (rev2)
URL   : https://patchwork.freedesktop.org/series/74240/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

___
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/hotplug: Use phy to get the hpd_pin instead of the port (rev6)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/hotplug: Use phy to get the hpd_pin instead of the port (rev6)
URL   : https://patchwork.freedesktop.org/series/72747/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8068_full -> Patchwork_16830_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

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

  * igt@gem_exec_schedule@implicit-both-bsd2:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#109276] / [i915#677])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-iclb2/igt@gem_exec_sched...@implicit-both-bsd2.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16830/shard-iclb6/igt@gem_exec_sched...@implicit-both-bsd2.html

  * igt@gem_exec_schedule@pi-shared-iova-bsd:
- shard-iclb: [PASS][5] -> [SKIP][6] ([i915#677])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-iclb8/igt@gem_exec_sched...@pi-shared-iova-bsd.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16830/shard-iclb1/igt@gem_exec_sched...@pi-shared-iova-bsd.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#112146]) +4 similar 
issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-iclb8/igt@gem_exec_sched...@preemptive-hang-bsd.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16830/shard-iclb1/igt@gem_exec_sched...@preemptive-hang-bsd.html

  * igt@i915_suspend@sysfs-reader:
- shard-apl:  [PASS][9] -> [DMESG-WARN][10] ([i915#180])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-apl8/igt@i915_susp...@sysfs-reader.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16830/shard-apl6/igt@i915_susp...@sysfs-reader.html

  * igt@kms_color@pipe-b-ctm-green-to-red:
- shard-skl:  [PASS][11] -> [FAIL][12] ([i915#129])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-skl1/igt@kms_co...@pipe-b-ctm-green-to-red.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16830/shard-skl8/igt@kms_co...@pipe-b-ctm-green-to-red.html

  * igt@kms_color@pipe-c-ctm-0-25:
- shard-skl:  [PASS][13] -> [FAIL][14] ([i915#182])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-skl7/igt@kms_co...@pipe-c-ctm-0-25.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16830/shard-skl10/igt@kms_co...@pipe-c-ctm-0-25.html

  * igt@kms_cursor_crc@pipe-b-cursor-256x85-offscreen:
- shard-skl:  [PASS][15] -> [FAIL][16] ([i915#54])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-skl1/igt@kms_cursor_...@pipe-b-cursor-256x85-offscreen.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16830/shard-skl8/igt@kms_cursor_...@pipe-b-cursor-256x85-offscreen.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
- shard-glk:  [PASS][17] -> [FAIL][18] ([i915#72])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-glk6/igt@kms_cursor_leg...@2x-long-flip-vs-cursor-legacy.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16830/shard-glk8/igt@kms_cursor_leg...@2x-long-flip-vs-cursor-legacy.html

  * igt@kms_hdr@bpc-switch-suspend:
- shard-skl:  [PASS][19] -> [FAIL][20] ([i915#1188])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-skl9/igt@kms_...@bpc-switch-suspend.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16830/shard-skl9/igt@kms_...@bpc-switch-suspend.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- shard-kbl:  [PASS][21] -> [DMESG-WARN][22] ([i915#180]) +2 
similar issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-kbl3/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-a.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16830/shard-kbl3/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-a.html

  * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min:
- shard-skl:  [PASS][23] -> [FAIL][24] ([fdo#108145]) +1 similar 
issue
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-skl2/igt@kms_plane_alpha_bl...@pipe-c-constant-alpha-min.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16830/shard-skl9/igt@kms_plane_alpha_bl...@pipe-c-constant-alpha-min.html

  * igt@kms_psr@psr2_cursor_blt:
- shard-iclb: [PASS][25] -> [SKIP][26] ([fdo#109441]) +4 similar 
issues
   [25]: 

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Fix crtc nv12 etc. plane bitmasks for DPMS off

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Fix crtc nv12 etc. plane bitmasks for DPMS off
URL   : https://patchwork.freedesktop.org/series/74346/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8073 -> Patchwork_16843


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_chamelium@hdmi-crc-fast:
- fi-icl-u2:  [PASS][1] -> [FAIL][2] ([fdo#109635] / [i915#217])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-icl-u2/igt@kms_chamel...@hdmi-crc-fast.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16843/fi-icl-u2/igt@kms_chamel...@hdmi-crc-fast.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-icl-u2:  [PASS][3] -> [FAIL][4] ([i915#217])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-icl-u2/igt@kms_chamel...@hdmi-hpd-fast.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16843/fi-icl-u2/igt@kms_chamel...@hdmi-hpd-fast.html

  * igt@prime_vgem@basic-fence-flip:
- fi-tgl-y:   [PASS][5] -> [DMESG-WARN][6] ([CI#94] / [i915#402])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-tgl-y/igt@prime_v...@basic-fence-flip.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16843/fi-tgl-y/igt@prime_v...@basic-fence-flip.html

  
 Possible fixes 

  * igt@kms_frontbuffer_tracking@basic:
- fi-hsw-peppy:   [DMESG-WARN][7] ([i915#44]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-hsw-peppy/igt@kms_frontbuffer_track...@basic.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16843/fi-hsw-peppy/igt@kms_frontbuffer_track...@basic.html

  * igt@vgem_basic@create:
- fi-tgl-y:   [DMESG-WARN][9] ([CI#94] / [i915#402]) -> [PASS][10] 
+1 similar issue
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8073/fi-tgl-y/igt@vgem_ba...@create.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16843/fi-tgl-y/igt@vgem_ba...@create.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [fdo#109635]: https://bugs.freedesktop.org/show_bug.cgi?id=109635
  [i915#217]: https://gitlab.freedesktop.org/drm/intel/issues/217
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#44]: https://gitlab.freedesktop.org/drm/intel/issues/44


Participating hosts (47 -> 43)
--

  Additional (4): fi-kbl-soraka fi-elk-e7500 fi-snb-2520m fi-skl-6600u 
  Missing(8): fi-hsw-4200u fi-byt-j1900 fi-bsw-cyan fi-ctg-p8600 
fi-cfl-8109u fi-blb-e6850 fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8073 -> Patchwork_16843

  CI-20190529: 20190529
  CI_DRM_8073: 04042aee59126471bb37cec526ccaf44b4e8d506 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16843: 905f1e2e1bf43dbfa3442a1ff9a0b73bf31c1548 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

905f1e2e1bf4 drm/i915: Fix crtc nv12 etc. plane bitmasks for DPMS off

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915: Fix crtc nv12 etc. plane bitmasks for DPMS off

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Fix crtc nv12 etc. plane bitmasks for DPMS off
URL   : https://patchwork.freedesktop.org/series/74346/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

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


[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/1] Revert "drm/i915/tgl: Add extra hdc flush workaround"

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [1/1] Revert "drm/i915/tgl: Add extra hdc flush 
workaround"
URL   : https://patchwork.freedesktop.org/series/74293/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8068_full -> Patchwork_16829_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_busy@busy-vcs1:
- shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#112080]) +10 similar 
issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-iclb4/igt@gem_b...@busy-vcs1.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16829/shard-iclb8/igt@gem_b...@busy-vcs1.html

  * igt@gem_exec_schedule@implicit-both-bsd1:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#109276] / [i915#677]) +1 
similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-iclb4/igt@gem_exec_sched...@implicit-both-bsd1.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16829/shard-iclb8/igt@gem_exec_sched...@implicit-both-bsd1.html

  * igt@gem_exec_schedule@pi-shared-iova-bsd:
- shard-iclb: [PASS][5] -> [SKIP][6] ([i915#677])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-iclb8/igt@gem_exec_sched...@pi-shared-iova-bsd.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16829/shard-iclb2/igt@gem_exec_sched...@pi-shared-iova-bsd.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#112146]) +4 similar 
issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-iclb8/igt@gem_exec_sched...@preemptive-hang-bsd.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16829/shard-iclb2/igt@gem_exec_sched...@preemptive-hang-bsd.html

  * igt@gem_exec_suspend@basic-s3:
- shard-kbl:  [PASS][9] -> [DMESG-WARN][10] ([i915#180]) +2 similar 
issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-kbl2/igt@gem_exec_susp...@basic-s3.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16829/shard-kbl3/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_selftest@mock@buddy:
- shard-skl:  [PASS][11] -> [INCOMPLETE][12] ([i915#1310] / 
[i915#1360])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-skl2/igt@i915_selftest@m...@buddy.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16829/shard-skl9/igt@i915_selftest@m...@buddy.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
- shard-apl:  [PASS][13] -> [DMESG-WARN][14] ([i915#180]) +3 
similar issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-apl8/igt@i915_susp...@fence-restore-tiled2untiled.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16829/shard-apl1/igt@i915_susp...@fence-restore-tiled2untiled.html

  * igt@i915_suspend@fence-restore-untiled:
- shard-skl:  [PASS][15] -> [INCOMPLETE][16] ([i915#69]) +1 similar 
issue
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-skl5/igt@i915_susp...@fence-restore-untiled.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16829/shard-skl6/igt@i915_susp...@fence-restore-untiled.html

  * igt@kms_color@pipe-b-ctm-green-to-red:
- shard-skl:  [PASS][17] -> [FAIL][18] ([i915#129])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-skl1/igt@kms_co...@pipe-b-ctm-green-to-red.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16829/shard-skl8/igt@kms_co...@pipe-b-ctm-green-to-red.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
- shard-snb:  [PASS][19] -> [DMESG-WARN][20] ([i915#42])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-snb5/igt@kms_cursor_...@pipe-a-cursor-suspend.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16829/shard-snb6/igt@kms_cursor_...@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-b-cursor-256x85-offscreen:
- shard-skl:  [PASS][21] -> [FAIL][22] ([i915#54])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-skl1/igt@kms_cursor_...@pipe-b-cursor-256x85-offscreen.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16829/shard-skl8/igt@kms_cursor_...@pipe-b-cursor-256x85-offscreen.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
- shard-glk:  [PASS][23] -> [FAIL][24] ([i915#72])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-glk6/igt@kms_cursor_leg...@2x-long-flip-vs-cursor-legacy.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16829/shard-glk3/igt@kms_cursor_leg...@2x-long-flip-vs-cursor-legacy.html

  * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min:
- shard-skl:  [PASS][25] -> 

[Intel-gfx] [PATCH v4 1/2] drm/edid: Name the detailed monitor range flags

2020-03-05 Thread Manasi Navare
This patch adds defines for the detailed monitor
range flags as per the EDID specification.

Suggested-by: Ville Syrjälä 
Cc: Ville Syrjälä 
Cc: Harry Wentland 
Cc: Clinton A Taylor 
Cc: Kazlauskas Nicholas 
Signed-off-by: Manasi Navare 
---
 include/drm/drm_edid.h | 5 +
 1 file changed, 5 insertions(+)

diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
index f0b03d401c27..f89c97623845 100644
--- a/include/drm/drm_edid.h
+++ b/include/drm/drm_edid.h
@@ -91,6 +91,11 @@ struct detailed_data_string {
u8 str[13];
 } __attribute__((packed));
 
+#define EDID_DEFAULT_GTF_SUPPORT_FLAG   0x00
+#define EDID_RANGE_LIMITS_ONLY_FLAG 0x01
+#define EDID_SECONDARY_GTF_SUPPORT_FLAG 0x02
+#define EDID_CVT_SUPPORT_FLAG   0x04
+
 struct detailed_data_monitor_range {
u8 min_vfreq;
u8 max_vfreq;
-- 
2.19.1

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


[Intel-gfx] [PATCH v4 2/2] drm/dp: Add function to parse EDID descriptors for adaptive sync limits

2020-03-05 Thread Manasi Navare
Adaptive Sync is a VESA feature so add a DRM core helper to parse
the EDID's detailed descritors to obtain the adaptive sync monitor range.
Store this info as part fo drm_display_info so it can be used
across all drivers.
This part of the code is stripped out of amdgpu's function
amdgpu_dm_update_freesync_caps() to make it generic and be used
across all DRM drivers

v4:
* Use is_display_descriptor() (Ville)
* Name the monitor range flags (Ville)
v3:
* Remove the edid parsing restriction for just DP (Nicholas)
* Use drm_for_each_detailed_block (Ville)
* Make the drm_get_adaptive_sync_range function static (Harry, Jani)
v2:
* Change vmin and vmax to use u8 (Ville)
* Dont store pixel clock since that is just a max dotclock
and not related to VRR mode (Manasi)

Cc: Ville Syrjälä 
Cc: Harry Wentland 
Cc: Clinton A Taylor 
Cc: Kazlauskas Nicholas 
Signed-off-by: Manasi Navare 
---
 drivers/gpu/drm/drm_edid.c  | 44 +
 include/drm/drm_connector.h | 22 +++
 2 files changed, 66 insertions(+)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index ad41764a4ebe..61ed544d9535 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -4938,6 +4938,47 @@ static void drm_parse_cea_ext(struct drm_connector 
*connector,
}
 }
 
+static
+void get_adaptive_sync_range(struct detailed_timing *timing,
+void *info_adaptive_sync)
+{
+   struct drm_adaptive_sync_info *adaptive_sync = info_adaptive_sync;
+   const struct detailed_non_pixel *data = >data.other_data;
+   const struct detailed_data_monitor_range *range = >data.range;
+
+   if (!is_display_descriptor((const u8 *)timing, 
EDID_DETAIL_MONITOR_RANGE))
+   return;
+
+   /*
+* Check for flag range limits only. If flag == 1 then
+* no additional timing information provided.
+* Default GTF, GTF Secondary curve and CVT are not
+* supported
+*/
+   if (range->flags != EDID_RANGE_LIMITS_ONLY_FLAG)
+   return;
+
+   adaptive_sync->min_vfreq = range->min_vfreq;
+   adaptive_sync->max_vfreq = range->max_vfreq;
+}
+
+static
+void drm_get_adaptive_sync_range(struct drm_connector *connector,
+const struct edid *edid)
+{
+   struct drm_display_info *info = >display_info;
+
+   if (!version_greater(edid, 1, 1))
+   return;
+
+   drm_for_each_detailed_block((u8 *)edid, get_adaptive_sync_range,
+   >adaptive_sync);
+
+   DRM_DEBUG_KMS("Adaptive Sync refresh rate range is %d Hz - %d Hz\n",
+ info->adaptive_sync.min_vfreq,
+ info->adaptive_sync.max_vfreq);
+}
+
 /* A connector has no EDID information, so we've got no EDID to compute quirks 
from. Reset
  * all of the values which would have been set from EDID
  */
@@ -4960,6 +5001,7 @@ drm_reset_display_info(struct drm_connector *connector)
memset(>hdmi, 0, sizeof(info->hdmi));
 
info->non_desktop = 0;
+   memset(>adaptive_sync, 0, sizeof(info->adaptive_sync));
 }
 
 u32 drm_add_display_info(struct drm_connector *connector, const struct edid 
*edid)
@@ -4975,6 +5017,8 @@ u32 drm_add_display_info(struct drm_connector *connector, 
const struct edid *edi
 
info->non_desktop = !!(quirks & EDID_QUIRK_NON_DESKTOP);
 
+   drm_get_adaptive_sync_range(connector, edid);
+
DRM_DEBUG_KMS("non_desktop set to %d\n", info->non_desktop);
 
if (edid->revision < 3)
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index 0df7a95ca5d9..2b22c0fa42c4 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -254,6 +254,23 @@ enum drm_panel_orientation {
DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
 };
 
+/**
+ * struct drm_adaptive_sync_info - Panel's Adaptive Sync capabilities for
+ * _display_info
+ *
+ * This struct is used to store a Panel's Adaptive Sync capabilities
+ * as parsed from EDID's detailed monitor range descriptor block.
+ *
+ * @min_vfreq: This is the min supported refresh rate in Hz from
+ * EDID's detailed monitor range.
+ * @max_vfreq: This is the max supported refresh rate in Hz from
+ * EDID's detailed monitor range
+ */
+struct drm_adaptive_sync_info {
+   u8 min_vfreq;
+   u8 max_vfreq;
+};
+
 /*
  * This is a consolidated colorimetry list supported by HDMI and
  * DP protocol standard. The respective connectors will register
@@ -473,6 +490,11 @@ struct drm_display_info {
 * @non_desktop: Non desktop display (HMD).
 */
bool non_desktop;
+
+   /**
+* @adaptive_sync: Adaptive Sync capabilities of the DP/eDP sink
+*/
+   struct drm_adaptive_sync_info adaptive_sync;
 };
 
 int drm_display_info_set_bus_formats(struct drm_display_info *info,
-- 
2.19.1

___
Intel-gfx mailing list

Re: [Intel-gfx] [PATCH v3 3/3] drm/i915/display/fbc: Make fences a nice-to-have for GEN9+

2020-03-05 Thread Souza, Jose
On Thu, 2020-02-20 at 19:26 +0200, Ville Syrjälä wrote:
> On Tue, Feb 18, 2020 at 05:42:30PM -0800, José Roberto de Souza
> wrote:
> > dGFX have local memory so it do not have aperture and do not
> > support
> > CPU fences but even for iGFX it have a small number of fences.
> > 
> > As replacement for fences to track frontbuffer modifications by CPU
> > we have a software tracking that is already in used by FBC and PSR.
> > PSR don't support fences so it shows that this tracking is
> > reliable.
> > 
> > So lets make fences a nice-to-have to activate FBC for GEN9+, this
> > will allow us to enable FBC for dGFXs and iGFXs even when there is
> > no
> > available fence.
> > 
> > We do not set fences to rotated planes but FBC only have
> > restrictions
> > against 16bpp, so adding it here.
> > 
> > Also adding a new check for the tiling format, fences are only set
> > to X and Y tiled planes but again FBC don't have any restrictions
> > against tiling so adding linear as supported as well, other formats
> > should be added after tested but IGT only supports drawing in thse
> > 3 formats.
> > 
> > intel_fbc_hw_tracking_covers_screen() maybe can also have the same
> > treatment as fences but BSpec is not clear if the size limitation
> > is
> > for hardware tracking or general use of FBC and I don't have a 5K
> > display to test it, so keeping as is for safety.
> > 
> > v2:
> > - Added tiling and pixel format rotation checks
> > - Changed the GEN version not requiring fences to 11 from 9, DDX
> > needs some changes but it don't have support for GEN11+
> > 
> > v3:
> > - Changed back to GEN9+
> > - Moved GEN test to inside of tiling_is_valid()
> > 
> > Cc: Daniel Vetter 
> > Cc: Dhinakaran Pandiyan 
> > Cc: Ville Syrjälä 
> > Signed-off-by: José Roberto de Souza 
> > ---
> >  drivers/gpu/drm/i915/display/intel_fbc.c | 45
> > 
> >  drivers/gpu/drm/i915/i915_drv.h  |  1 +
> >  2 files changed, 39 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c
> > b/drivers/gpu/drm/i915/display/intel_fbc.c
> > index 1d76e3646a25..a0d1d661a006 100644
> > --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> > @@ -585,7 +585,7 @@ static bool stride_is_valid(struct
> > drm_i915_private *dev_priv,
> >  }
> >  
> >  static bool pixel_format_is_valid(struct drm_i915_private
> > *dev_priv,
> > - u32 pixel_format)
> > + u32 pixel_format, unsigned int
> > rotation)
> >  {
> > switch (pixel_format) {
> > case DRM_FORMAT_XRGB:
> > @@ -599,6 +599,9 @@ static bool pixel_format_is_valid(struct
> > drm_i915_private *dev_priv,
> > /* WaFbcOnly1to1Ratio:ctg */
> > if (IS_G4X(dev_priv))
> > return false;
> > +   if ((rotation & (DRM_MODE_ROTATE_90 |
> > DRM_MODE_ROTATE_270)) &&
> > +   INTEL_GEN(dev_priv) >= 9)
> > +   return false;
> 
> Would still would prefer a rotations_is_valid() or some such thing.

Like this?

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c
b/drivers/gpu/drm/i915/display/intel_fbc.c
index 5e35c894bdf9..692edd45b769 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -600,15 +600,21 @@ static bool pixel_format_is_valid(struct
drm_i915_private *dev_priv,
/* WaFbcOnly1to1Ratio:ctg */
if (IS_G4X(dev_priv))
return false;
-   if ((rotation & (DRM_MODE_ROTATE_90 |
DRM_MODE_ROTATE_270)) &&
-   INTEL_GEN(dev_priv) >= 9)
-   return false;
return true;
default:
return false;
}
 }

+static bool rotations_is_valid(struct drm_i915_private *dev_priv,
+  u32 pixel_format, unsigned int rotation)
+{
+   if (INTEL_GEN(dev_priv) >= 9 && pixel_format ==
DRM_FORMAT_RGB565 &&
+   rotation & (DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_270))
+   return false;
+   return true;
+}
+
 /*
  * For some reason, the hardware tracking starts looking at whatever
we
  * programmed as the display plane base address register. It does not
look at
@@ -810,6 +816,12 @@ static bool intel_fbc_can_activate(struct
intel_crtc *crtc)
return false;
}

+   if (!rotations_is_valid(dev_priv, cache->fb.format->format,
+   cache->plane.rotation)) {
+   fbc->no_fbc_reason = "plane rotation is invalid";
+   return false;
+   }
+
if (cache->plane.pixel_blend_mode != DRM_MODE_BLEND_PIXEL_NONE
&&
cache->fb.format->has_alpha) {
fbc->no_fbc_reason = "per-pixel alpha blending is
incompatible with FBC";


> 
> > return true;
> > default:
> > return false;
> > @@ -639,6 +642,22 @@ static bool
> > 

Re: [Intel-gfx] [PATCH] drm/i915/gt: allow setting generic data pointer

2020-03-05 Thread Daniele Ceraolo Spurio




On 3/5/20 5:15 PM, Andi Shyti wrote:

Hi Daniele,


diff --git a/drivers/gpu/drm/i915/gt/debugfs_gt.c 
b/drivers/gpu/drm/i915/gt/debugfs_gt.c
index 75255aaacaed..9112a8585caf 100644
--- a/drivers/gpu/drm/i915/gt/debugfs_gt.c
+++ b/drivers/gpu/drm/i915/gt/debugfs_gt.c
@@ -26,15 +26,14 @@ void debugfs_gt_register(struct intel_gt *gt)
debugfs_gt_pm_register(gt, root);
   }
-void debugfs_gt_register_files(struct intel_gt *gt,
-  struct dentry *root,
-  const struct debugfs_gt_file *files,
-  unsigned long count)
+void __intel_gt_debugfs_register_files(struct intel_gt *gt, struct dentry 
*root,
+  const struct debugfs_gt_file *files,
+  unsigned long count, void *data)
   {
while (count--) {
if (!files->eval || files->eval(gt))


IMO the files->eval() function should also use the provided data instead of
intel_gt. This will also allow us to drop the intel_gt parameter in this
function, which in turn means we can use this function directly from all the
levels.


do you mean something like this:

-   bool (*eval)(const struct intel_gt *gt);
+   bool (*eval)(void *data);

?


yes



I am missing the use case, though, what is it that cannot be
reached by the gt so that it needs to be more generic?


It's not a problem of reaching it from gt but the other way around, I 
don't want the caller to have to retrieve a gt variable it don't needs 
just to pass it to this function and then go back to the actual required 
data from gt inside of the eval function. Anything you need for your 
evaluation should be reachable from the struct used as data for the debugfs.
To make a concrete example, I want to avoid an unneeded guc_to_gt inside 
intel_guc_debugfs_register that would also require a matched guc = 
>uc.guc inside the eval function, passing guc (i.e. the data) 
straight in the eval is cleaner IMO.


Daniele



Do you want to use it at i915 level?

Thanks for the review,
Andi


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


[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: properly sanity check batch_start_offset

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: properly sanity check batch_start_offset
URL   : https://patchwork.freedesktop.org/series/74287/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_8068_full -> Patchwork_16826_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@gem_ctx_persistence@close-replace-race:
- shard-tglb: [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-tglb6/igt@gem_ctx_persiste...@close-replace-race.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16826/shard-tglb3/igt@gem_ctx_persiste...@close-replace-race.html

  * igt@runner@aborted:
- shard-tglb: NOTRUN -> [FAIL][3]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16826/shard-tglb3/igt@run...@aborted.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@rcs0-s3:
- shard-kbl:  [PASS][4] -> [DMESG-WARN][5] ([i915#180]) +5 similar 
issues
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-kbl4/igt@gem_ctx_isolat...@rcs0-s3.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16826/shard-kbl3/igt@gem_ctx_isolat...@rcs0-s3.html

  * igt@gem_exec_schedule@independent-bsd2:
- shard-iclb: [PASS][6] -> [SKIP][7] ([fdo#109276]) +8 similar 
issues
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-iclb2/igt@gem_exec_sched...@independent-bsd2.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16826/shard-iclb8/igt@gem_exec_sched...@independent-bsd2.html

  * igt@gem_exec_whisper@basic-queues-forked:
- shard-glk:  [PASS][8] -> [INCOMPLETE][9] ([i915#58] / 
[k.org#198133])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-glk7/igt@gem_exec_whis...@basic-queues-forked.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16826/shard-glk1/igt@gem_exec_whis...@basic-queues-forked.html

  * igt@gem_workarounds@suspend-resume-context:
- shard-apl:  [PASS][10] -> [DMESG-WARN][11] ([i915#180]) +1 
similar issue
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-apl2/igt@gem_workarou...@suspend-resume-context.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16826/shard-apl4/igt@gem_workarou...@suspend-resume-context.html

  * igt@i915_pm_dc@dc6-dpms:
- shard-iclb: [PASS][12] -> [FAIL][13] ([i915#454])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-iclb8/igt@i915_pm...@dc6-dpms.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16826/shard-iclb3/igt@i915_pm...@dc6-dpms.html

  * igt@i915_pm_rpm@gem-pread:
- shard-iclb: [PASS][14] -> [INCOMPLETE][15] ([i915#189])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-iclb4/igt@i915_pm_...@gem-pread.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16826/shard-iclb2/igt@i915_pm_...@gem-pread.html

  * igt@i915_suspend@fence-restore-untiled:
- shard-iclb: [PASS][16] -> [INCOMPLETE][17] ([i915#1185])
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-iclb6/igt@i915_susp...@fence-restore-untiled.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16826/shard-iclb3/igt@i915_susp...@fence-restore-untiled.html

  * igt@kms_color@pipe-c-ctm-0-25:
- shard-skl:  [PASS][18] -> [FAIL][19] ([i915#182])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-skl7/igt@kms_co...@pipe-c-ctm-0-25.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16826/shard-skl8/igt@kms_co...@pipe-c-ctm-0-25.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
- shard-glk:  [PASS][20] -> [FAIL][21] ([i915#72])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-glk6/igt@kms_cursor_leg...@2x-long-flip-vs-cursor-legacy.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16826/shard-glk2/igt@kms_cursor_leg...@2x-long-flip-vs-cursor-legacy.html

  * igt@kms_hdr@bpc-switch-suspend:
- shard-skl:  [PASS][22] -> [INCOMPLETE][23] ([i915#198])
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8068/shard-skl9/igt@kms_...@bpc-switch-suspend.html
   [23]: 

[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/gem: Limit struct_mutex to eb_reserve (rev2)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/gem: Limit struct_mutex to eb_reserve (rev2)
URL   : https://patchwork.freedesktop.org/series/74291/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_8071 -> Patchwork_16842


Summary
---

  **FAILURE**

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

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@gem_exec_parallel@basic:
- fi-icl-guc: [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8071/fi-icl-guc/igt@gem_exec_paral...@basic.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-icl-guc/igt@gem_exec_paral...@basic.html

  * igt@gem_exec_parallel@contexts:
- fi-skl-guc: [PASS][3] -> [TIMEOUT][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8071/fi-skl-guc/igt@gem_exec_paral...@contexts.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-skl-guc/igt@gem_exec_paral...@contexts.html
- fi-icl-dsi: [PASS][5] -> [TIMEOUT][6] +9 similar issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8071/fi-icl-dsi/igt@gem_exec_paral...@contexts.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-icl-dsi/igt@gem_exec_paral...@contexts.html
- fi-skl-6600u:   [PASS][7] -> [TIMEOUT][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8071/fi-skl-6600u/igt@gem_exec_paral...@contexts.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-skl-6600u/igt@gem_exec_paral...@contexts.html
- fi-cfl-8700k:   [PASS][9] -> [TIMEOUT][10] +9 similar issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8071/fi-cfl-8700k/igt@gem_exec_paral...@contexts.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-cfl-8700k/igt@gem_exec_paral...@contexts.html
- fi-skl-lmem:NOTRUN -> [TIMEOUT][11]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-skl-lmem/igt@gem_exec_paral...@contexts.html
- fi-skl-6700k2:  [PASS][12] -> [TIMEOUT][13]
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8071/fi-skl-6700k2/igt@gem_exec_paral...@contexts.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-skl-6700k2/igt@gem_exec_paral...@contexts.html

  * igt@gem_exec_parallel@fds:
- fi-cml-s:   [PASS][14] -> [TIMEOUT][15] +8 similar issues
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8071/fi-cml-s/igt@gem_exec_paral...@fds.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-cml-s/igt@gem_exec_paral...@fds.html
- fi-cfl-guc: [PASS][16] -> [TIMEOUT][17] +9 similar issues
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8071/fi-cfl-guc/igt@gem_exec_paral...@fds.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-cfl-guc/igt@gem_exec_paral...@fds.html

  * igt@gem_exec_store@basic-all:
- fi-cfl-8109u:   [PASS][18] -> [TIMEOUT][19] +10 similar issues
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8071/fi-cfl-8109u/igt@gem_exec_st...@basic-all.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-cfl-8109u/igt@gem_exec_st...@basic-all.html
- fi-apl-guc: [PASS][20] -> [TIMEOUT][21] +8 similar issues
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8071/fi-apl-guc/igt@gem_exec_st...@basic-all.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-apl-guc/igt@gem_exec_st...@basic-all.html
- fi-kbl-x1275:   [PASS][22] -> [TIMEOUT][23] +9 similar issues
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8071/fi-kbl-x1275/igt@gem_exec_st...@basic-all.html
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-kbl-x1275/igt@gem_exec_st...@basic-all.html
- fi-icl-y:   [PASS][24] -> [TIMEOUT][25] +9 similar issues
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8071/fi-icl-y/igt@gem_exec_st...@basic-all.html
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-icl-y/igt@gem_exec_st...@basic-all.html

  * igt@gem_exec_suspend@basic:
- fi-icl-u2:  [PASS][26] -> [TIMEOUT][27] +9 similar issues
   [26]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8071/fi-icl-u2/igt@gem_exec_susp...@basic.html
   [27]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16842/fi-icl-u2/igt@gem_exec_susp...@basic.html

  * igt@gem_exec_suspend@basic-s0:
 

Re: [Intel-gfx] [PATCH] drm/i915/gt: allow setting generic data pointer

2020-03-05 Thread Andi Shyti
Hi Daniele,

> > diff --git a/drivers/gpu/drm/i915/gt/debugfs_gt.c 
> > b/drivers/gpu/drm/i915/gt/debugfs_gt.c
> > index 75255aaacaed..9112a8585caf 100644
> > --- a/drivers/gpu/drm/i915/gt/debugfs_gt.c
> > +++ b/drivers/gpu/drm/i915/gt/debugfs_gt.c
> > @@ -26,15 +26,14 @@ void debugfs_gt_register(struct intel_gt *gt)
> > debugfs_gt_pm_register(gt, root);
> >   }
> > -void debugfs_gt_register_files(struct intel_gt *gt,
> > -  struct dentry *root,
> > -  const struct debugfs_gt_file *files,
> > -  unsigned long count)
> > +void __intel_gt_debugfs_register_files(struct intel_gt *gt, struct dentry 
> > *root,
> > +  const struct debugfs_gt_file *files,
> > +  unsigned long count, void *data)
> >   {
> > while (count--) {
> > if (!files->eval || files->eval(gt))
> 
> IMO the files->eval() function should also use the provided data instead of
> intel_gt. This will also allow us to drop the intel_gt parameter in this
> function, which in turn means we can use this function directly from all the
> levels.

do you mean something like this:

-   bool (*eval)(const struct intel_gt *gt);
+   bool (*eval)(void *data);

?

I am missing the use case, though, what is it that cannot be
reached by the gt so that it needs to be more generic?

Do you want to use it at i915 level?

Thanks for the review,
Andi
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915/gem: Limit struct_mutex to eb_reserve (rev2)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/gem: Limit struct_mutex to eb_reserve (rev2)
URL   : https://patchwork.freedesktop.org/series/74291/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

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


Re: [Intel-gfx] [PATCH] drm/i915/gt: allow setting generic data pointer

2020-03-05 Thread Daniele Ceraolo Spurio




On 3/5/20 3:59 PM, Andi Shyti wrote:

When registering debugfs files the intel gt debugfs library
forces a 'struct *gt' private data on the caller.

There might be different needs, therefore make it generic by
adding one more argument to the "debugfs_register_files()"
function which gets the generic void private data as argument.

Still keep it simple by defining a wrapper where struct *gt is
the chosen private data to be stored.

I take the chance to rename the functions by using "intel_gt_" as
prefix instead of "debugfs_".

Signed-off-by: Andi Shyti 
---
  drivers/gpu/drm/i915/gt/debugfs_engines.c |  2 +-
  drivers/gpu/drm/i915/gt/debugfs_gt.c  |  9 -
  drivers/gpu/drm/i915/gt/debugfs_gt.h  | 10 ++
  drivers/gpu/drm/i915/gt/debugfs_gt_pm.c   |  2 +-
  4 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/debugfs_engines.c 
b/drivers/gpu/drm/i915/gt/debugfs_engines.c
index 6a5e9ab20b94..3434df10d58c 100644
--- a/drivers/gpu/drm/i915/gt/debugfs_engines.c
+++ b/drivers/gpu/drm/i915/gt/debugfs_engines.c
@@ -32,5 +32,5 @@ void debugfs_engines_register(struct intel_gt *gt, struct 
dentry *root)
{ "engines", _fops },
};
  
-	debugfs_gt_register_files(gt, root, files, ARRAY_SIZE(files));

+   intel_gt_debugfs_register_file(gt, root, files, ARRAY_SIZE(files));
  }
diff --git a/drivers/gpu/drm/i915/gt/debugfs_gt.c 
b/drivers/gpu/drm/i915/gt/debugfs_gt.c
index 75255aaacaed..9112a8585caf 100644
--- a/drivers/gpu/drm/i915/gt/debugfs_gt.c
+++ b/drivers/gpu/drm/i915/gt/debugfs_gt.c
@@ -26,15 +26,14 @@ void debugfs_gt_register(struct intel_gt *gt)
debugfs_gt_pm_register(gt, root);
  }
  
-void debugfs_gt_register_files(struct intel_gt *gt,

-  struct dentry *root,
-  const struct debugfs_gt_file *files,
-  unsigned long count)
+void __intel_gt_debugfs_register_files(struct intel_gt *gt, struct dentry 
*root,
+  const struct debugfs_gt_file *files,
+  unsigned long count, void *data)
  {
while (count--) {
if (!files->eval || files->eval(gt))


IMO the files->eval() function should also use the provided data instead 
of intel_gt. This will also allow us to drop the intel_gt parameter in 
this function, which in turn means we can use this function directly 
from all the levels.


Daniele


debugfs_create_file(files->name,
-   0444, root, gt,
+   0444, root, data,
files->fops);
  
  		files++;

diff --git a/drivers/gpu/drm/i915/gt/debugfs_gt.h 
b/drivers/gpu/drm/i915/gt/debugfs_gt.h
index 4ea0f06cda8f..1c01d70a2a44 100644
--- a/drivers/gpu/drm/i915/gt/debugfs_gt.h
+++ b/drivers/gpu/drm/i915/gt/debugfs_gt.h
@@ -31,9 +31,11 @@ struct debugfs_gt_file {
bool (*eval)(const struct intel_gt *gt);
  };
  
-void debugfs_gt_register_files(struct intel_gt *gt,

-  struct dentry *root,
-  const struct debugfs_gt_file *files,
-  unsigned long count);
+void __intel_gt_debugfs_register_files(struct intel_gt *gt, struct dentry 
*root,
+  const struct debugfs_gt_file *files,
+  unsigned long count, void *data);
+
+#define intel_gt_debugfs_register_file(_g, _r, _f, _c) \
+   __intel_gt_debugfs_register_files(_g, _r, _f, _c, _g)
  
  #endif /* DEBUGFS_GT_H */

diff --git a/drivers/gpu/drm/i915/gt/debugfs_gt_pm.c 
b/drivers/gpu/drm/i915/gt/debugfs_gt_pm.c
index 059c9e5c002e..a8d2391a207a 100644
--- a/drivers/gpu/drm/i915/gt/debugfs_gt_pm.c
+++ b/drivers/gpu/drm/i915/gt/debugfs_gt_pm.c
@@ -597,5 +597,5 @@ void debugfs_gt_pm_register(struct intel_gt *gt, struct 
dentry *root)
{ "rps_boost", _boost_fops, rps_eval },
};
  
-	debugfs_gt_register_files(gt, root, files, ARRAY_SIZE(files));

+   intel_gt_debugfs_register_file(gt, root, files, ARRAY_SIZE(files));
  }


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


Re: [Intel-gfx] [PATCH v3 1/3] drm/i915/display: Deactive FBC in fastsets when disabled by parameter

2020-03-05 Thread Souza, Jose
On Wed, 2020-02-19 at 20:52 +0200, Ville Syrjälä wrote:
> On Wed, Feb 19, 2020 at 06:37:27PM +, Souza, Jose wrote:
> > On Wed, 2020-02-19 at 15:37 +0200, Ville Syrjälä wrote:
> > > On Tue, Feb 18, 2020 at 05:42:28PM -0800, José Roberto de Souza
> > > wrote:
> > > > Most of the kms_frontbuffer_tracking tests disables the feature
> > > > being
> > > > tested, draw, get the CRC then enable the feature, draw again,
> > > > get
> > > > the
> > > > CRC and check if it matches.
> > > > Some times it is able to do that with a fastset, so
> > > > intel_pre_plane_update() is executed but
> > > > intel_fbc_can_flip_nuke()
> > > > was
> > > > not checking if FBC is now enabled in this CRTC leaving FBC
> > > > active
> > > > and
> > > > causing the warning bellow in __intel_fbc_disable()
> > > > 
> > > > [IGT] kms_frontbuffer_tracking: starting subtest fbc-1p-pri-
> > > > indfb-
> > > > multidraw
> > > > Setting dangerous option enable_fbc - tainting kernel
> > > > i915 :00:02.0: [drm:i915_edp_psr_debug_set [i915]] Setting
> > > > PSR
> > > > debug to f
> > > > i915 :00:02.0: [drm:intel_psr_debug_set [i915]] Invalid
> > > > debug
> > > > mask f
> > > > i915 :00:02.0: [drm:i915_edp_psr_debug_set [i915]] Setting
> > > > PSR
> > > > debug to 1
> > > > i915 :00:02.0: [drm:intel_atomic_check [i915]]
> > > > [CONNECTOR:215:eDP-1] Limiting display bpp to 24 instead of
> > > > EDID
> > > > bpp 24, requested bpp 36, max platform bpp 36
> > > > [drm:intel_dp_compute_config [i915]] DP link computation with
> > > > max
> > > > lane count 2 max rate 27 max bpp 24 pixel clock 138120KHz
> > > > [drm:intel_dp_compute_config [i915]] Force DSC en = 0
> > > > [drm:intel_dp_compute_config [i915]] DP lane count 2 clock
> > > > 27
> > > > bpp 24
> > > > [drm:intel_dp_compute_config [i915]] DP link rate required
> > > > 414360
> > > > available 54
> > > > i915 :00:02.0: [drm:intel_atomic_check [i915]] hw max bpp:
> > > > 24,
> > > > pipe bpp: 24, dithering: 0
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > [CRTC:91:pipe A] enable: yes [fastset]
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]] active:
> > > > yes,
> > > > output_types: EDP (0x100), output format: RGB
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > cpu_transcoder: EDP, pipe bpp: 24, dithering: 0
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]] dp m_n:
> > > > lanes: 2; gmch_m: 6436858, gmch_n: 8388608, link_m: 268202,
> > > > link_n:
> > > > 524288, tu: 64
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]] audio:
> > > > 0,
> > > > infoframes: 0, infoframes enabled: 0x0
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > requested
> > > > mode:
> > > > [drm:drm_mode_debug_printmodeline] Modeline "1920x1080": 60
> > > > 138120
> > > > 1920 1968 2018 2052 1080 1084 1086 1122 0x48 0xa
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]] adjusted
> > > > mode:
> > > > [drm:drm_mode_debug_printmodeline] Modeline "1920x1080": 60
> > > > 138120
> > > > 1920 1968 2018 2052 1080 1084 1086 1122 0x48 0xa
> > > > [drm:intel_dump_pipe_config [i915]] crtc timings: 138120 1920
> > > > 1968
> > > > 2018 2052 1080 1084 1086 1122, type: 0x48 flags: 0xa
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]] port
> > > > clock:
> > > > 27, pipe src size: 1920x1080, pixel rate 138120
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > linetime:
> > > > 119, ips linetime: 0
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > num_scalers:
> > > > 2, scaler_users: 0x0, scaler_id: -1
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]] pch
> > > > pfit:
> > > > pos: 0x, size: 0x, disabled, force thru: no
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]] ips: 0,
> > > > double wide: 0
> > > > [drm:icl_dump_hw_state [i915]] dpll_hw_state: cfgcr0:
> > > > 0x1c001a5,
> > > > cfgcr1: 0x8b, mg_refclkin_ctl: 0x0, hg_clktop2_coreclkctl1:
> > > > 0x0,
> > > > mg_clktop2_hsclkctl: 0x0, mg_pll_div0: 0x0, mg_pll_div2: 0x0,
> > > > mg_pll_lf: 0x0, mg_pll_frac_lock: 0x0, mg_pll_ssc: 0x0,
> > > > mg_pll_bias: 0x0, mg_pll_tdc_coldst_bias: 0x0
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > csc_mode:
> > > > 0x0 gamma_mode: 0x0 gamma_enable: 0 csc_enable: 0
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]] MST
> > > > master
> > > > transcoder: 
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]]
> > > > [PLANE:31:plane 1A] fb: [FB:262] 1920x1080 format = XR24
> > > > little-
> > > > endian (0x34325258), visible: yes
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]]  rotatio
> > > > n: 0x1, scaler: -1
> > > > i915 :00:02.0: [drm:intel_dump_pipe_config [i915]]  src:
> > > > 1920.00x1080.00+0.00+0.00 dst: 1920x1080+0+0
> > > > i915 :00:02.0: [drm:intel_psr_disable_locked [i915]]
> > > > Disabling
> > 

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/execlists: Show the "switch priority hint" in dumps

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/execlists: Show the "switch priority hint" in dumps
URL   : https://patchwork.freedesktop.org/series/74340/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8070 -> Patchwork_16841


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

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

  * igt@prime_vgem@basic-fence-flip:
- fi-tgl-y:   [PASS][3] -> [DMESG-WARN][4] ([CI#94] / [i915#402])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@prime_v...@basic-fence-flip.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16841/fi-tgl-y/igt@prime_v...@basic-fence-flip.html

  
 Possible fixes 

  * igt@kms_addfb_basic@addfb25-modifier-no-flag:
- fi-tgl-y:   [DMESG-WARN][5] ([CI#94] / [i915#402]) -> [PASS][6] 
+1 similar issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16841/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (49 -> 42)
--

  Additional (2): fi-kbl-soraka fi-kbl-7560u 
  Missing(9): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-ilk-650 fi-ctg-p8600 
fi-cfl-8109u fi-elk-e7500 fi-blb-e6850 fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8070 -> Patchwork_16841

  CI-20190529: 20190529
  CI_DRM_8070: d4e6f8b48e361f0cae9132f50f1778707b2546a2 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16841: d0ef337b3a89247a8ed4b7bf2d77fe5a641e20d7 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

d0ef337b3a89 drm/i915/execlists: Show the "switch priority hint" in dumps

== Logs ==

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


[Intel-gfx] [CI 2/2] drm/i915/gen7: Clear all EU/L3 residual contexts

2020-03-05 Thread Chris Wilson
From: Prathap Kumar Valsan 

On gen7 and gen7.5 devices, there could be leftover data residuals in
EU/L3 from the retiring context. This patch introduces workaround to clear
that residual contexts, by submitting a batch buffer with dedicated HW
context to the GPU with ring allocation for each context switching.

This security mitigation changes does not triggers any performance
regression. Performance is on par with current drm-tips.

v2: Add igt generated header file for CB kernel assembled with Mesa tool
and addressed use of Kernel macro for ptr_align comment.

v3: Resolve Sparse warnings with newly generated, and imported CB
kernel.

v4: Include new igt generated CB kernel for gen7 and gen7.5. Also
add code formatting and compiler warnings changes (Chris Wilson)

Signed-off-by: Mika Kuoppala 
Signed-off-by: Prathap Kumar Valsan 
Signed-off-by: Akeem G Abodunrin 
Cc: Chris Wilson 
Cc: Balestrieri Francesco 
Cc: Bloomfield Jon 
Cc: Dutt Sudeep 
Acked-by: Chris Wilson 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200304130353.2448417-2-ch...@chris-wilson.co.uk
---
 drivers/gpu/drm/i915/Makefile |   1 +
 drivers/gpu/drm/i915/gt/gen7_renderclear.c| 402 ++
 drivers/gpu/drm/i915/gt/gen7_renderclear.h|  15 +
 drivers/gpu/drm/i915/gt/hsw_clear_kernel.c|  61 +++
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h  |  17 +-
 .../gpu/drm/i915/gt/intel_ring_submission.c   |   3 +-
 drivers/gpu/drm/i915/gt/ivb_clear_kernel.c|  61 +++
 7 files changed, 556 insertions(+), 4 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/gen7_renderclear.c
 create mode 100644 drivers/gpu/drm/i915/gt/gen7_renderclear.h
 create mode 100644 drivers/gpu/drm/i915/gt/hsw_clear_kernel.c
 create mode 100644 drivers/gpu/drm/i915/gt/ivb_clear_kernel.c

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 991a8c537d12..9f887a86e555 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -80,6 +80,7 @@ gt-y += \
gt/debugfs_gt.o \
gt/debugfs_gt_pm.o \
gt/gen6_ppgtt.o \
+   gt/gen7_renderclear.o \
gt/gen8_ppgtt.o \
gt/intel_breadcrumbs.o \
gt/intel_context.o \
diff --git a/drivers/gpu/drm/i915/gt/gen7_renderclear.c 
b/drivers/gpu/drm/i915/gt/gen7_renderclear.c
new file mode 100644
index ..de595b66a746
--- /dev/null
+++ b/drivers/gpu/drm/i915/gt/gen7_renderclear.c
@@ -0,0 +1,402 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2019 Intel Corporation
+ */
+
+#include "gen7_renderclear.h"
+#include "i915_drv.h"
+#include "intel_gpu_commands.h"
+
+#define MAX_URB_ENTRIES 64
+#define STATE_SIZE (4 * 1024)
+#define GT3_INLINE_DATA_DELAYS 0x1E00
+#define batch_advance(Y, CS) GEM_BUG_ON((Y)->end != (CS))
+
+struct cb_kernel {
+   const void *data;
+   u32 size;
+};
+
+#define CB_KERNEL(name) { .data = (name), .size = sizeof(name) }
+
+#include "ivb_clear_kernel.c"
+static const struct cb_kernel cb_kernel_ivb = CB_KERNEL(ivb_clear_kernel);
+
+#include "hsw_clear_kernel.c"
+static const struct cb_kernel cb_kernel_hsw = CB_KERNEL(hsw_clear_kernel);
+
+struct batch_chunk {
+   struct i915_vma *vma;
+   u32 offset;
+   u32 *start;
+   u32 *end;
+   u32 max_items;
+};
+
+struct batch_vals {
+   u32 max_primitives;
+   u32 max_urb_entries;
+   u32 cmd_size;
+   u32 state_size;
+   u32 state_start;
+   u32 batch_size;
+   u32 surface_height;
+   u32 surface_width;
+   u32 scratch_size;
+   u32 max_size;
+};
+
+static void
+batch_get_defaults(struct drm_i915_private *i915, struct batch_vals *bv)
+{
+   if (IS_HASWELL(i915)) {
+   bv->max_primitives = 280;
+   bv->max_urb_entries = MAX_URB_ENTRIES;
+   bv->surface_height = 16 * 16;
+   bv->surface_width = 32 * 2 * 16;
+   } else {
+   bv->max_primitives = 128;
+   bv->max_urb_entries = MAX_URB_ENTRIES / 2;
+   bv->surface_height = 16 * 8;
+   bv->surface_width = 32 * 16;
+   }
+   bv->cmd_size = bv->max_primitives * 4096;
+   bv->state_size = STATE_SIZE;
+   bv->state_start = bv->cmd_size;
+   bv->batch_size = bv->cmd_size + bv->state_size;
+   bv->scratch_size = bv->surface_height * bv->surface_width;
+   bv->max_size = bv->batch_size + bv->scratch_size;
+}
+
+static void batch_init(struct batch_chunk *bc,
+  struct i915_vma *vma,
+  u32 *start, u32 offset, u32 max_bytes)
+{
+   bc->vma = vma;
+   bc->offset = offset;
+   bc->start = start + bc->offset / sizeof(*bc->start);
+   bc->end = bc->start;
+   bc->max_items = max_bytes / sizeof(*bc->start);
+}
+
+static u32 batch_offset(const struct batch_chunk *bc, u32 *cs)
+{
+   return (cs - bc->start) * sizeof(*bc->start) + bc->offset;
+}
+
+static u32 batch_addr(const struct batch_chunk *bc)
+{
+   return 

[Intel-gfx] [CI 1/2] drm/i915: Add mechanism to submit a context WA on ring submission

2020-03-05 Thread Chris Wilson
From: Mika Kuoppala 

This patch adds framework to submit an arbitrary batchbuffer on each
context switch to clear residual state for render engine on Gen7/7.5
devices.

The idea of always emitting the context and vm setup around each request
is primary to make reset recovery easy, and not require rewriting the
ringbuffer. As each request would set up its own context, leaving it to
the HW to notice and elide no-op context switches, we could restart the
ring at any point, and reorder the requests freely.

However, to avoid emitting clear_residuals() between consecutive requests
in the ringbuffer of the same context, we do want to track the current
context in the ring. In doing so, we need to be careful to only record a
context switch when we are sure the next request will be emitted.

This security mitigation change does not trigger any performance
regression. Performance is on par with current mainline/drm-tip.

v2: Update vm_alias params to point to correct address space "vm" due to
changes made in the patch "f21613797bae98773"

v3-v4: none

Signed-off-by: Mika Kuoppala 
Signed-off-by: Prathap Kumar Valsan 
Signed-off-by: Akeem G Abodunrin 
Cc: Chris Wilson 
Cc: Balestrieri Francesco 
Cc: Bloomfield Jon 
Cc: Dutt Sudeep 
Reviewed-by: Chris Wilson 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200304130353.2448417-1-ch...@chris-wilson.co.uk
---
 .../gpu/drm/i915/gt/intel_ring_submission.c   | 138 -
 .../drm/i915/gt/selftest_ring_submission.c| 290 ++
 .../drm/i915/selftests/i915_live_selftests.h  |   1 +
 3 files changed, 425 insertions(+), 4 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/selftest_ring_submission.c

diff --git a/drivers/gpu/drm/i915/gt/intel_ring_submission.c 
b/drivers/gpu/drm/i915/gt/intel_ring_submission.c
index ee241b7eaa3b..f0ce70861e93 100644
--- a/drivers/gpu/drm/i915/gt/intel_ring_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_ring_submission.c
@@ -1356,7 +1356,9 @@ static int load_pd_dir(struct i915_request *rq,
return rq->engine->emit_flush(rq, EMIT_FLUSH);
 }
 
-static inline int mi_set_context(struct i915_request *rq, u32 flags)
+static inline int mi_set_context(struct i915_request *rq,
+struct intel_context *ce,
+u32 flags)
 {
struct drm_i915_private *i915 = rq->i915;
struct intel_engine_cs *engine = rq->engine;
@@ -1431,7 +1433,7 @@ static inline int mi_set_context(struct i915_request *rq, 
u32 flags)
 
*cs++ = MI_NOOP;
*cs++ = MI_SET_CONTEXT;
-   *cs++ = i915_ggtt_offset(rq->context->state) | flags;
+   *cs++ = i915_ggtt_offset(ce->state) | flags;
/*
 * w/a: MI_SET_CONTEXT must always be followed by MI_NOOP
 * WaMiSetContext_Hang:snb,ivb,vlv
@@ -1546,13 +1548,56 @@ static int switch_mm(struct i915_request *rq, struct 
i915_address_space *vm)
return rq->engine->emit_flush(rq, EMIT_INVALIDATE);
 }
 
+static int clear_residuals(struct i915_request *rq)
+{
+   struct intel_engine_cs *engine = rq->engine;
+   int ret;
+
+   ret = switch_mm(rq, vm_alias(engine->kernel_context->vm));
+   if (ret)
+   return ret;
+
+   if (engine->kernel_context->state) {
+   ret = mi_set_context(rq,
+engine->kernel_context,
+MI_MM_SPACE_GTT | MI_RESTORE_INHIBIT);
+   if (ret)
+   return ret;
+   }
+
+   ret = engine->emit_bb_start(rq,
+   engine->wa_ctx.vma->node.start, 0,
+   0);
+   if (ret)
+   return ret;
+
+   ret = engine->emit_flush(rq, EMIT_FLUSH);
+   if (ret)
+   return ret;
+
+   /* Always invalidate before the next switch_mm() */
+   return engine->emit_flush(rq, EMIT_INVALIDATE);
+}
+
 static int switch_context(struct i915_request *rq)
 {
+   struct intel_engine_cs *engine = rq->engine;
struct intel_context *ce = rq->context;
+   void **residuals = NULL;
int ret;
 
GEM_BUG_ON(HAS_EXECLISTS(rq->i915));
 
+   if (engine->wa_ctx.vma && ce != engine->kernel_context) {
+   if (engine->wa_ctx.vma->private != ce) {
+   ret = clear_residuals(rq);
+   if (ret)
+   return ret;
+
+   residuals = >wa_ctx.vma->private;
+   }
+   }
+
ret = switch_mm(rq, vm_alias(ce->vm));
if (ret)
return ret;
@@ -1560,7 +1605,7 @@ static int switch_context(struct i915_request *rq)
if (ce->state) {
u32 flags;
 
-   GEM_BUG_ON(rq->engine->id != RCS0);
+   GEM_BUG_ON(engine->id != RCS0);
 
/* For resource streamer on HSW+ and power context elsewhere */
BUILD_BUG_ON(HSW_MI_RS_SAVE_STATE_EN != 

[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915/execlists: Show the "switch priority hint" in dumps

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/execlists: Show the "switch priority hint" in dumps
URL   : https://patchwork.freedesktop.org/series/74340/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

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


[Intel-gfx] [PATCH] drm/i915/gt: allow setting generic data pointer

2020-03-05 Thread Andi Shyti
When registering debugfs files the intel gt debugfs library
forces a 'struct *gt' private data on the caller.

There might be different needs, therefore make it generic by
adding one more argument to the "debugfs_register_files()"
function which gets the generic void private data as argument.

Still keep it simple by defining a wrapper where struct *gt is
the chosen private data to be stored.

I take the chance to rename the functions by using "intel_gt_" as
prefix instead of "debugfs_".

Signed-off-by: Andi Shyti 
---
 drivers/gpu/drm/i915/gt/debugfs_engines.c |  2 +-
 drivers/gpu/drm/i915/gt/debugfs_gt.c  |  9 -
 drivers/gpu/drm/i915/gt/debugfs_gt.h  | 10 ++
 drivers/gpu/drm/i915/gt/debugfs_gt_pm.c   |  2 +-
 4 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/debugfs_engines.c 
b/drivers/gpu/drm/i915/gt/debugfs_engines.c
index 6a5e9ab20b94..3434df10d58c 100644
--- a/drivers/gpu/drm/i915/gt/debugfs_engines.c
+++ b/drivers/gpu/drm/i915/gt/debugfs_engines.c
@@ -32,5 +32,5 @@ void debugfs_engines_register(struct intel_gt *gt, struct 
dentry *root)
{ "engines", _fops },
};
 
-   debugfs_gt_register_files(gt, root, files, ARRAY_SIZE(files));
+   intel_gt_debugfs_register_file(gt, root, files, ARRAY_SIZE(files));
 }
diff --git a/drivers/gpu/drm/i915/gt/debugfs_gt.c 
b/drivers/gpu/drm/i915/gt/debugfs_gt.c
index 75255aaacaed..9112a8585caf 100644
--- a/drivers/gpu/drm/i915/gt/debugfs_gt.c
+++ b/drivers/gpu/drm/i915/gt/debugfs_gt.c
@@ -26,15 +26,14 @@ void debugfs_gt_register(struct intel_gt *gt)
debugfs_gt_pm_register(gt, root);
 }
 
-void debugfs_gt_register_files(struct intel_gt *gt,
-  struct dentry *root,
-  const struct debugfs_gt_file *files,
-  unsigned long count)
+void __intel_gt_debugfs_register_files(struct intel_gt *gt, struct dentry 
*root,
+  const struct debugfs_gt_file *files,
+  unsigned long count, void *data)
 {
while (count--) {
if (!files->eval || files->eval(gt))
debugfs_create_file(files->name,
-   0444, root, gt,
+   0444, root, data,
files->fops);
 
files++;
diff --git a/drivers/gpu/drm/i915/gt/debugfs_gt.h 
b/drivers/gpu/drm/i915/gt/debugfs_gt.h
index 4ea0f06cda8f..1c01d70a2a44 100644
--- a/drivers/gpu/drm/i915/gt/debugfs_gt.h
+++ b/drivers/gpu/drm/i915/gt/debugfs_gt.h
@@ -31,9 +31,11 @@ struct debugfs_gt_file {
bool (*eval)(const struct intel_gt *gt);
 };
 
-void debugfs_gt_register_files(struct intel_gt *gt,
-  struct dentry *root,
-  const struct debugfs_gt_file *files,
-  unsigned long count);
+void __intel_gt_debugfs_register_files(struct intel_gt *gt, struct dentry 
*root,
+  const struct debugfs_gt_file *files,
+  unsigned long count, void *data);
+
+#define intel_gt_debugfs_register_file(_g, _r, _f, _c) \
+   __intel_gt_debugfs_register_files(_g, _r, _f, _c, _g)
 
 #endif /* DEBUGFS_GT_H */
diff --git a/drivers/gpu/drm/i915/gt/debugfs_gt_pm.c 
b/drivers/gpu/drm/i915/gt/debugfs_gt_pm.c
index 059c9e5c002e..a8d2391a207a 100644
--- a/drivers/gpu/drm/i915/gt/debugfs_gt_pm.c
+++ b/drivers/gpu/drm/i915/gt/debugfs_gt_pm.c
@@ -597,5 +597,5 @@ void debugfs_gt_pm_register(struct intel_gt *gt, struct 
dentry *root)
{ "rps_boost", _boost_fops, rps_eval },
};
 
-   debugfs_gt_register_files(gt, root, files, ARRAY_SIZE(files));
+   intel_gt_debugfs_register_file(gt, root, files, ARRAY_SIZE(files));
 }
-- 
2.25.0

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


Re: [Intel-gfx] [PATCH] drm/i915/tgl: Don't treat unslice registers as masked

2020-03-05 Thread Souza, Jose
On Thu, 2020-03-05 at 12:24 -0800, Matt Roper wrote:
> The UNSLICE_UNIT_LEVEL_CLKGATE and UNSLICE_UNIT_LEVEL_CLKGATE2
> registers
> that we update in a few engine workarounds are not masked registers
> (i.e., we don't have to write a mask bit in the top 16 bits when
> updating one of the lower 16 bits).  As such, these workarounds
> should
> be applied via wa_write_or() rather than wa_masked_en()

Thanks Nick for spotting and Matt for fixing it, did not notice this
difference up to know.


Reviewed-by: José Roberto de Souza 

> 
> Reported-by: Nick Desaulniers 
> Fixes: 50148a25f841 ("drm/i915/tgl: Move and restrict Wa_1408615072")
> Fixes: 3551ff928744 ("drm/i915/gen11: Moving WAs to
> rcs_engine_wa_init()")
> Cc: José Roberto de Souza 
> Signed-off-by: Matt Roper 
> ---
>  drivers/gpu/drm/i915/gt/intel_workarounds.c | 12 ++--
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> index 908a70914399..b4785212fb7d 100644
> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> @@ -1382,8 +1382,8 @@ rcs_engine_wa_init(struct intel_engine_cs
> *engine, struct i915_wa_list *wal)
>   wa_masked_en(wal, GEN9_ROW_CHICKEN4,
> GEN12_DISABLE_TDL_PUSH);
>  
>   /* Wa_1408615072:tgl */
> - wa_masked_en(wal, UNSLICE_UNIT_LEVEL_CLKGATE2,
> -  VSUNIT_CLKGATE_DIS_TGL);
> + wa_write_or(wal, UNSLICE_UNIT_LEVEL_CLKGATE2,
> + VSUNIT_CLKGATE_DIS_TGL);
>   }
>  
>   if (IS_TIGERLAKE(i915)) {
> @@ -1467,12 +1467,12 @@ rcs_engine_wa_init(struct intel_engine_cs
> *engine, struct i915_wa_list *wal)
>* Wa_1408615072:icl,ehl  (vsunit)
>* Wa_1407596294:icl,ehl  (hsunit)
>*/
> - wa_masked_en(wal, UNSLICE_UNIT_LEVEL_CLKGATE,
> -  VSUNIT_CLKGATE_DIS | HSUNIT_CLKGATE_DIS);
> + wa_write_or(wal, UNSLICE_UNIT_LEVEL_CLKGATE,
> + VSUNIT_CLKGATE_DIS | HSUNIT_CLKGATE_DIS);
>  
>   /* Wa_1407352427:icl,ehl */
> - wa_masked_en(wal, UNSLICE_UNIT_LEVEL_CLKGATE2,
> -  PSDUNIT_CLKGATE_DIS);
> + wa_write_or(wal, UNSLICE_UNIT_LEVEL_CLKGATE2,
> + PSDUNIT_CLKGATE_DIS);
>  
>   /* Wa_1406680159:icl,ehl */
>   wa_write_or(wal,
___
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: Return early for await_start on same timeline

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Return early for await_start on same timeline
URL   : https://patchwork.freedesktop.org/series/74338/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8070 -> Patchwork_16839


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-tgl-y:   [PASS][1] -> [FAIL][2] ([CI#94])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16839/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@i915_getparams_basic@basic-eu-total:
- fi-tgl-y:   [PASS][3] -> [DMESG-WARN][4] ([CI#94] / [i915#402])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@i915_getparams_ba...@basic-eu-total.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16839/fi-tgl-y/igt@i915_getparams_ba...@basic-eu-total.html

  * igt@i915_selftest@live@gem_contexts:
- fi-cml-s:   [PASS][5] -> [DMESG-FAIL][6] ([i915#877])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-cml-s/igt@i915_selftest@live@gem_contexts.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16839/fi-cml-s/igt@i915_selftest@live@gem_contexts.html

  * igt@i915_selftest@live@late_gt_pm:
- fi-tgl-y:   [PASS][7] -> [INCOMPLETE][8] ([CI#94])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@i915_selftest@live@late_gt_pm.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16839/fi-tgl-y/igt@i915_selftest@live@late_gt_pm.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-icl-u2:  [PASS][9] -> [FAIL][10] ([i915#217])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-icl-u2/igt@kms_chamel...@hdmi-hpd-fast.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16839/fi-icl-u2/igt@kms_chamel...@hdmi-hpd-fast.html
- fi-kbl-7500u:   [PASS][11] -> [FAIL][12] ([fdo#111407])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16839/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html

  * igt@kms_flip@basic-flip-vs-dpms:
- fi-skl-6770hq:  [PASS][13] -> [SKIP][14] ([fdo#109271]) +24 similar 
issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-skl-6770hq/igt@kms_f...@basic-flip-vs-dpms.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16839/fi-skl-6770hq/igt@kms_f...@basic-flip-vs-dpms.html

  
 Possible fixes 

  * igt@kms_addfb_basic@addfb25-modifier-no-flag:
- fi-tgl-y:   [DMESG-WARN][15] ([CI#94] / [i915#402]) -> [PASS][16] 
+1 similar issue
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16839/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
  [i915#217]: https://gitlab.freedesktop.org/drm/intel/issues/217
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#877]: https://gitlab.freedesktop.org/drm/intel/issues/877


Participating hosts (49 -> 46)
--

  Additional (2): fi-kbl-soraka fi-kbl-7560u 
  Missing(5): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 
fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8070 -> Patchwork_16839

  CI-20190529: 20190529
  CI_DRM_8070: d4e6f8b48e361f0cae9132f50f1778707b2546a2 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16839: b6afdb6c7c6e1b12d5249074631e6615b81afce9 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

b6afdb6c7c6e drm/i915: Return early for await_start on same timeline

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915: HDCP: fix Ri prime and R0 checks during auth (rev2)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: HDCP: fix Ri prime and R0 checks during auth (rev2)
URL   : https://patchwork.freedesktop.org/series/74271/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

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


Re: [Intel-gfx] [PATCH 5/6] drm/i915/uc: Move uC debugfs to its own folder under GT

2020-03-05 Thread Daniele Ceraolo Spurio




On 3/5/20 10:02 AM, Andi Shyti wrote:

Hi Daniele,


On Thu, Feb 27, 2020 at 06:28:42PM -0800, Daniele Ceraolo Spurio wrote:

uC is a component of the GT, so it makes sense for the uC debugfs files
to be in the GT folder. A subfolder has been used to keep the same
structure we have for the code.


Can we please document the interface changes. I see there are
some differences between the original and the new interfaces.



What differences are you referring to? there aren't supposed to be any,
aside from the path change.


Have I seen it wrong or there are new files in this patch?


No, no new debugfs files, only the old ones moved across.


In any case, maybe we need to have the new structure.


+#define DEFINE_UC_DEBUGFS_ATTRIBUTE(__name)\
+   static int __name ## _open(struct inode *inode, struct file *file) \
+{  \
+   return single_open(file, __name ## _show, inode->i_private); \
+}  \
+static const struct file_operations __name ## _fops = {
\
+   .owner = THIS_MODULE,   \
+   .open = __name ## _open,\
+   .read = seq_read,   \
+   .llseek = seq_lseek,\
+   .release = single_release,  \
+}


Why do we need DEFINE_UC_DEBUGFS_ATTRIBUTE()?

DEFINE_GT_DEBUGFS_ATTRIBUTE() was meant to be common to all gt
debugfs. I there any reason we need a new one?



Just wanted to avoid including the other header just for this macro.


well that was supposed to be a library for all the gem/debugfs
files and avoid duplicated code, I don't see anything wrong with
including the file.


+struct debugfs_uc_file {
+   const char *name;
+   const struct file_operations *fops;
+};
+
+#define debugfs_uc_register_files(files__, root__, data__) \
+do { \
+   int i__ = 0; \
+   for (i__ = 0; i__ < ARRAY_SIZE(files__); i__++) { \
+   debugfs_create_file(files__[i__].name, \
+   0444, root__, data__, \
+   files__[i__].fops); \
+   } \
+} while (0)


You want to define your own debugfs_uc_register_files() instead
of using debugfs_gt_register_files() because you want "data__"
to be void, right?

I think we can achieve that by adding a wrapper in debugfs_gt.c,
perhaps we can do something like:

void __debugfs_gt_register_files(struct intel_gt *gt,
   struct dentry *root,
   const struct debugfs_gt_file *files,
   void *data,
   unsigned long count)
{
..
}

and

#define debugfs_gt_register_files(...) __debugfs_gt_register_files(...)
#define debugfs_uc_register_files(...) __debugfs_gt_register_files(...)

so that we can keep everything in a library. What do you think.



LGTM. Mind if I rename to:

intel_gt_debugfs_register(...)
intel_uc_debugfs_register(...)

to avoid the debugfs_* prefix, as pointed out by Jani?


I have a patch for it, can you please hold a little, unless, of
course, yours is already ready.



Sure, I'll wait for your patch to land first.

Daniele


Obvously, the naming you propose makes sense.

Andi


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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915: Return early for await_start on same timeline

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Return early for await_start on same timeline
URL   : https://patchwork.freedesktop.org/series/74338/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

___
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: drm_fb_helper cleanup. (rev3)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm: drm_fb_helper cleanup. (rev3)
URL   : https://patchwork.freedesktop.org/series/74140/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8070 -> Patchwork_16838


Summary
---

  **SUCCESS**

  No regressions found.

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

Possible new issues
---

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

### IGT changes ###

 Suppressed 

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

  * igt@i915_selftest@live@gem_contexts:
- {fi-ehl-1}: [PASS][1] -> [DMESG-FAIL][2] +1 similar issue
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-ehl-1/igt@i915_selftest@live@gem_contexts.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16838/fi-ehl-1/igt@i915_selftest@live@gem_contexts.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-tgl-y:   [PASS][3] -> [FAIL][4] ([CI#94])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16838/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@i915_selftest@live@gem_contexts:
- fi-cml-s:   [PASS][5] -> [DMESG-FAIL][6] ([i915#877])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-cml-s/igt@i915_selftest@live@gem_contexts.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16838/fi-cml-s/igt@i915_selftest@live@gem_contexts.html

  * igt@kms_addfb_basic@addfb25-yf-tiled:
- fi-tgl-y:   [PASS][7] -> [DMESG-WARN][8] ([CI#94] / [i915#402]) 
+1 similar issue
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@kms_addfb_ba...@addfb25-yf-tiled.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16838/fi-tgl-y/igt@kms_addfb_ba...@addfb25-yf-tiled.html

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

  
 Possible fixes 

  * igt@kms_addfb_basic@addfb25-modifier-no-flag:
- fi-tgl-y:   [DMESG-WARN][11] ([CI#94] / [i915#402]) -> [PASS][12] 
+1 similar issue
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16838/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html

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

  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#877]: https://gitlab.freedesktop.org/drm/intel/issues/877


Participating hosts (49 -> 38)
--

  Additional (2): fi-kbl-soraka fi-kbl-7560u 
  Missing(13): fi-hsw-4770r fi-ilk-m540 fi-hsw-4200u fi-skl-6770hq 
fi-glk-dsi fi-bsw-cyan fi-bwr-2160 fi-snb-2520m fi-ctg-p8600 fi-skl-lmem 
fi-bdw-samus fi-bsw-nick fi-skl-6600u 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8070 -> Patchwork_16838

  CI-20190529: 20190529
  CI_DRM_8070: d4e6f8b48e361f0cae9132f50f1778707b2546a2 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16838: 20055c3f1cd148890751083536dfd917d1455535 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

20055c3f1cd1 drm/todo: Update drm_fb_helper tasks
e29c1841f9cb drm/fb-helper: Remove drm_fb_helper add, add_all and remove 
connector functions
00e5d305068d drm: Remove drm_fb_helper add, add all and remove connector calls
7724cd065d42 drm/i915/display: Remove drm_fb_helper_{add, remove}_one_connector 
calls
05220ebcdb90 drm/amdgpu: Remove drm_fb_helper_{add, remove}_one_connector calls
b335ca350b9c drm/radeon: remove radeon_fb_{add, remove}_connector functions
9a2c55206305 drm: Remove unused arg from drm_fb_helper_init

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm: drm_fb_helper cleanup. (rev3)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm: drm_fb_helper cleanup. (rev3)
URL   : https://patchwork.freedesktop.org/series/74140/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

___
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: Add mechanism to submit a context WA on ring submission

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915: Add mechanism to submit a 
context WA on ring submission
URL   : https://patchwork.freedesktop.org/series/74331/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_8070 -> Patchwork_16837


Summary
---

  **FAILURE**

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

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * {igt@i915_selftest@live@ring_submission} (NEW):
- fi-elk-e7500:   NOTRUN -> [DMESG-FAIL][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16837/fi-elk-e7500/igt@i915_selftest@live@ring_submission.html

  * igt@runner@aborted:
- fi-byt-j1900:   NOTRUN -> [FAIL][2]
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16837/fi-byt-j1900/igt@run...@aborted.html

  
New tests
-

  New tests have been introduced between CI_DRM_8070 and Patchwork_16837:

### New IGT tests (1) ###

  * igt@i915_selftest@live@ring_submission:
- Statuses : 1 dmesg-fail(s) 1 incomplete(s) 34 pass(s)
- Exec time: [0.0, 5.62] s

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-tgl-y:   [PASS][3] -> [FAIL][4] ([CI#94])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16837/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@i915_selftest@live@gem_contexts:
- fi-cml-s:   [PASS][5] -> [DMESG-FAIL][6] ([i915#877])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-cml-s/igt@i915_selftest@live@gem_contexts.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16837/fi-cml-s/igt@i915_selftest@live@gem_contexts.html

  * igt@kms_addfb_basic@addfb25-x-tiled-mismatch:
- fi-tgl-y:   [PASS][7] -> [DMESG-WARN][8] ([CI#94] / [i915#402]) 
+1 similar issue
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@kms_addfb_ba...@addfb25-x-tiled-mismatch.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16837/fi-tgl-y/igt@kms_addfb_ba...@addfb25-x-tiled-mismatch.html

  
 Possible fixes 

  * igt@kms_addfb_basic@addfb25-modifier-no-flag:
- fi-tgl-y:   [DMESG-WARN][9] ([CI#94] / [i915#402]) -> [PASS][10] 
+1 similar issue
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16837/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html

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

  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#877]: https://gitlab.freedesktop.org/drm/intel/issues/877


Participating hosts (49 -> 38)
--

  Additional (1): fi-kbl-soraka 
  Missing(12): fi-hsw-4770r fi-ilk-m540 fi-hsw-4200u fi-hsw-peppy 
fi-bsw-cyan fi-kbl-7500u fi-ctg-p8600 fi-kbl-x1275 fi-cfl-8109u fi-blb-e6850 
fi-bdw-samus fi-snb-2600 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8070 -> Patchwork_16837

  CI-20190529: 20190529
  CI_DRM_8070: d4e6f8b48e361f0cae9132f50f1778707b2546a2 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16837: 0a707ecdc6219190569615d208836e6476dea373 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

0a707ecdc621 drm/i915/gen7: Clear all EU/L3 residual contexts
e0fd0fe40b02 drm/i915: Add mechanism to submit a context WA on ring submission

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for series starting with [CI,1/2] drm/i915: Add mechanism to submit a context WA on ring submission

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915: Add mechanism to submit a 
context WA on ring submission
URL   : https://patchwork.freedesktop.org/series/74331/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

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


Re: [Intel-gfx] [PATCH] drm/i915/tgl: Don't treat unslice registers as masked

2020-03-05 Thread Nick Desaulniers
On Thu, Mar 5, 2020 at 12:25 PM Matt Roper  wrote:
>
> The UNSLICE_UNIT_LEVEL_CLKGATE and UNSLICE_UNIT_LEVEL_CLKGATE2 registers
> that we update in a few engine workarounds are not masked registers
> (i.e., we don't have to write a mask bit in the top 16 bits when
> updating one of the lower 16 bits).  As such, these workarounds should
> be applied via wa_write_or() rather than wa_masked_en()
>
> Reported-by: Nick Desaulniers 
> Fixes: 50148a25f841 ("drm/i915/tgl: Move and restrict Wa_1408615072")
> Fixes: 3551ff928744 ("drm/i915/gen11: Moving WAs to rcs_engine_wa_init()")
> Cc: José Roberto de Souza 
> Signed-off-by: Matt Roper 

I appreciate the fast turnaround time!
Tested-by: Nick Desaulniers 

If the maintainer wouldn't mind adding the following tags to help us
track and show some love for our bots:
Link: https://github.com/ClangBuiltLinux/linux/issues/918
Reported-by: kernelci.org bot 

> ---
>  drivers/gpu/drm/i915/gt/intel_workarounds.c | 12 ++--
>  1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c 
> b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> index 908a70914399..b4785212fb7d 100644
> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> @@ -1382,8 +1382,8 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, 
> struct i915_wa_list *wal)
> wa_masked_en(wal, GEN9_ROW_CHICKEN4, GEN12_DISABLE_TDL_PUSH);
>
> /* Wa_1408615072:tgl */
> -   wa_masked_en(wal, UNSLICE_UNIT_LEVEL_CLKGATE2,
> -VSUNIT_CLKGATE_DIS_TGL);
> +   wa_write_or(wal, UNSLICE_UNIT_LEVEL_CLKGATE2,
> +   VSUNIT_CLKGATE_DIS_TGL);
> }
>
> if (IS_TIGERLAKE(i915)) {
> @@ -1467,12 +1467,12 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, 
> struct i915_wa_list *wal)
>  * Wa_1408615072:icl,ehl  (vsunit)
>  * Wa_1407596294:icl,ehl  (hsunit)
>  */
> -   wa_masked_en(wal, UNSLICE_UNIT_LEVEL_CLKGATE,
> -VSUNIT_CLKGATE_DIS | HSUNIT_CLKGATE_DIS);
> +   wa_write_or(wal, UNSLICE_UNIT_LEVEL_CLKGATE,
> +   VSUNIT_CLKGATE_DIS | HSUNIT_CLKGATE_DIS);
>
> /* Wa_1407352427:icl,ehl */
> -   wa_masked_en(wal, UNSLICE_UNIT_LEVEL_CLKGATE2,
> -PSDUNIT_CLKGATE_DIS);
> +   wa_write_or(wal, UNSLICE_UNIT_LEVEL_CLKGATE2,
> +   PSDUNIT_CLKGATE_DIS);
>
> /* Wa_1406680159:icl,ehl */
> wa_write_or(wal,
> --
> 2.24.1
>


--
Thanks,
~Nick Desaulniers
___
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: Add mechanism to submit a context WA on ring submission

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915: Add mechanism to submit a 
context WA on ring submission
URL   : https://patchwork.freedesktop.org/series/74331/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
e0fd0fe40b02 drm/i915: Add mechanism to submit a context WA on ring submission
-:262: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#262: 
new file mode 100644

-:373: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#373: FILE: drivers/gpu/drm/i915/gt/selftest_ring_submission.c:107:
+   pr_err("pass[%d] wa_bb emitted for the kernel 
context\n",
+   pass);

-:384: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#384: FILE: drivers/gpu/drm/i915/gt/selftest_ring_submission.c:118:
+   pr_err("pass[%d] wa_bb *NOT* emitted after the 
kernel context\n",
+   pass);

-:395: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#395: FILE: drivers/gpu/drm/i915/gt/selftest_ring_submission.c:129:
+   pr_err("pass[%d] wa_bb *NOT* emitted for the 
user context switch\n",
+   pass);

total: 0 errors, 1 warnings, 3 checks, 501 lines checked
0a707ecdc621 drm/i915/gen7: Clear all EU/L3 residual contexts
-:46: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#46: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 585 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: Actually emit the await_start

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Actually emit the await_start
URL   : https://patchwork.freedesktop.org/series/74319/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8070 -> Patchwork_16836


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

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

  
 Possible fixes 

  * igt@kms_addfb_basic@addfb25-modifier-no-flag:
- fi-tgl-y:   [DMESG-WARN][3] ([CI#94] / [i915#402]) -> [PASS][4] 
+1 similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16836/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (49 -> 45)
--

  Additional (2): fi-kbl-soraka fi-kbl-7560u 
  Missing(6): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-icl-u2 fi-ctg-p8600 
fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8070 -> Patchwork_16836

  CI-20190529: 20190529
  CI_DRM_8070: d4e6f8b48e361f0cae9132f50f1778707b2546a2 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16836: cb6ff8492eb0da08a771276bab3aa509076748c0 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

cb6ff8492eb0 drm/i915: Actually emit the await_start

== Logs ==

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


[Intel-gfx] [PATCH v2] i915/gem_exec_params: add test_invalid_batch

2020-03-05 Thread Matthew Auld
Sanity check that kernel rejects invalid batch_start_offset and
batch_len.

Signed-off-by: Matthew Auld 
Cc: Mika Kuoppala 
Cc: Chris Wilson 
---
 tests/i915/gem_exec_params.c | 47 
 1 file changed, 47 insertions(+)

diff --git a/tests/i915/gem_exec_params.c b/tests/i915/gem_exec_params.c
index cf7ea306..45581738 100644
--- a/tests/i915/gem_exec_params.c
+++ b/tests/i915/gem_exec_params.c
@@ -268,6 +268,50 @@ static void mmapped(int i915)
gem_close(i915, buf);
 }
 
+static uint32_t batch_create_size(int fd, uint32_t size)
+{
+   const uint32_t bbe = MI_BATCH_BUFFER_END;
+   uint32_t handle;
+
+   handle = gem_create(fd, size);
+   gem_write(fd, handle, 0, , sizeof(bbe));
+
+   return handle;
+}
+
+static void __invalid_batch_start(int fd,
+ struct drm_i915_gem_execbuffer2 *execbuf,
+ uint32_t start_offset,
+ uint32_t batch_len)
+{
+   execbuf->batch_start_offset = start_offset;
+   execbuf->batch_len = batch_len;
+   igt_assert_eq(__gem_execbuf(fd, execbuf), -EINVAL);
+}
+
+static void test_invalid_batch_start(int fd)
+{
+   uint32_t size = 4096;
+   struct drm_i915_gem_exec_object2 exec = {
+   .handle = batch_create_size(fd, size),
+   };
+   struct drm_i915_gem_execbuffer2 execbuf = {
+   .buffers_ptr = to_user_pointer(),
+   .buffer_count = 1,
+   };
+
+   __invalid_batch_start(fd, , 0, -1);
+   __invalid_batch_start(fd, , -1, 0);
+   __invalid_batch_start(fd, , -1, -1);
+   __invalid_batch_start(fd, , -1U & ~0x7, 0);
+   __invalid_batch_start(fd, , 0, -1U & ~0x7);
+   __invalid_batch_start(fd, , size, 0);
+   __invalid_batch_start(fd, , size, size);
+
+   gem_sync(fd, exec.handle);
+   gem_close(fd, exec.handle);
+}
+
 struct drm_i915_gem_execbuffer2 execbuf;
 struct drm_i915_gem_exec_object2 gem_exec[1];
 uint32_t batch[2] = {MI_BATCH_BUFFER_END};
@@ -507,6 +551,9 @@ igt_main
igt_subtest("batch-first")
test_batch_first(fd);
 
+   igt_subtest("invalid-batch-start-offset")
+   test_invalid_batch_start(fd);
+
 #define DIRT(name) \
igt_subtest(#name "-dirt") { \
execbuf.flags = 0; \
-- 
2.20.1

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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915: Actually emit the await_start

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Actually emit the await_start
URL   : https://patchwork.freedesktop.org/series/74319/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

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


[Intel-gfx] [PATCH 1/2] drm/i915/buddy: avoid double list_add

2020-03-05 Thread Matthew Auld
Be careful not to mark an already free node as free again.

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

diff --git a/drivers/gpu/drm/i915/i915_buddy.c 
b/drivers/gpu/drm/i915/i915_buddy.c
index 66883af64ca1..20babbdb297d 100644
--- a/drivers/gpu/drm/i915/i915_buddy.c
+++ b/drivers/gpu/drm/i915/i915_buddy.c
@@ -312,7 +312,8 @@ i915_buddy_alloc(struct i915_buddy_mm *mm, unsigned int 
order)
return block;
 
 out_free:
-   __i915_buddy_free(mm, block);
+   if (i != order)
+   __i915_buddy_free(mm, block);
return ERR_PTR(err);
 }
 
-- 
2.20.1

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


[Intel-gfx] [PATCH 2/2] drm/i915/selftests: try to rein in alloc_smoke

2020-03-05 Thread Matthew Auld
Depending on RNG we might try to fill an 8G region for every possible
order, using the smallest possible chunk size of 4K, which seems to be
very slow. Try to remedy the situation by adding an overall timeout for
the test, while also selecting each order level in a random fashion.

Closes: https://gitlab.freedesktop.org/drm/intel/issues/1310
Signed-off-by: Matthew Auld 
Cc: Chris Wilson 
---
 drivers/gpu/drm/i915/selftests/i915_buddy.c | 25 -
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/selftests/i915_buddy.c 
b/drivers/gpu/drm/i915/selftests/i915_buddy.c
index 1b856bae67b5..939a6caebb03 100644
--- a/drivers/gpu/drm/i915/selftests/i915_buddy.c
+++ b/drivers/gpu/drm/i915/selftests/i915_buddy.c
@@ -298,10 +298,12 @@ static void igt_mm_config(u64 *size, u64 *chunk_size)
 static int igt_buddy_alloc_smoke(void *arg)
 {
struct i915_buddy_mm mm;
-   int max_order;
+   IGT_TIMEOUT(end_time);
+   I915_RND_STATE(prng);
u64 chunk_size;
u64 mm_size;
-   int err;
+   int *order;
+   int err, i;
 
igt_mm_config(_size, _size);
 
@@ -313,10 +315,16 @@ static int igt_buddy_alloc_smoke(void *arg)
return err;
}
 
-   for (max_order = mm.max_order; max_order >= 0; max_order--) {
+   order = i915_random_order(mm.max_order + 1, );
+   if (!order)
+   goto out_fini;
+
+   for (i = 0; i <= mm.max_order; ++i) {
struct i915_buddy_block *block;
-   int order;
+   int max_order = order[i];
+   bool timeout = false;
LIST_HEAD(blocks);
+   int order;
u64 total;
 
err = igt_check_mm();
@@ -360,6 +368,11 @@ static int igt_buddy_alloc_smoke(void *arg)
}
 
total += i915_buddy_block_size(, block);
+
+   if (__igt_timeout(end_time, NULL)) {
+   timeout = true;
+   break;
+   }
} while (total < mm.size);
 
if (!err)
@@ -373,7 +386,7 @@ static int igt_buddy_alloc_smoke(void *arg)
pr_err("post-mm check failed\n");
}
 
-   if (err)
+   if (err || timeout)
break;
 
cond_resched();
@@ -382,6 +395,8 @@ static int igt_buddy_alloc_smoke(void *arg)
if (err == -ENOMEM)
err = 0;
 
+   kfree(order);
+out_fini:
i915_buddy_fini();
 
return err;
-- 
2.20.1

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


[Intel-gfx] [PATCH] drm/i915/phys: unconditionally call release_memory_region

2020-03-05 Thread Matthew Auld
From: Abdiel Janulgue 

The release method will undo what we did at creation, and so we
shouldn't care if we have pages or not. Fixes a small leak in the
mock_phys selftest.

Signed-off-by: Abdiel Janulgue 
Signed-off-by: Matthew Auld 
---
 drivers/gpu/drm/i915/gem/i915_gem_phys.c | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_phys.c 
b/drivers/gpu/drm/i915/gem/i915_gem_phys.c
index b07bb40edd5a..698e22420dc5 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_phys.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_phys.c
@@ -194,10 +194,11 @@ int i915_gem_object_attach_phys(struct 
drm_i915_gem_object *obj, int align)
/* Perma-pin (until release) the physical set of pages */
__i915_gem_object_pin_pages(obj);
 
-   if (!IS_ERR_OR_NULL(pages)) {
+   if (!IS_ERR_OR_NULL(pages))
i915_gem_shmem_ops.put_pages(obj, pages);
-   i915_gem_object_release_memory_region(obj);
-   }
+
+   i915_gem_object_release_memory_region(obj);
+
mutex_unlock(>mm.lock);
return 0;
 
-- 
2.20.1

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


[Intel-gfx] [PATCH] drm/i915: be more solid in checking the alignment

2020-03-05 Thread Matthew Auld
The alignment is u64, and yet is_power_of_2() assumes unsigned long,
which might give different results between 32b and 64b kernel.

Signed-off-by: Matthew Auld 
Cc: Chris Wilson 
---
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 3 ++-
 drivers/gpu/drm/i915/i915_utils.h  | 5 +
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index 7bb27f382af7..b62576f34a1d 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -430,7 +430,8 @@ eb_validate_vma(struct i915_execbuffer *eb,
if (unlikely(entry->flags & eb->invalid_flags))
return -EINVAL;
 
-   if (unlikely(entry->alignment && !is_power_of_2(entry->alignment)))
+   if (unlikely(entry->alignment &&
+!is_power_of_2_u64(entry->alignment)))
return -EINVAL;
 
/*
diff --git a/drivers/gpu/drm/i915/i915_utils.h 
b/drivers/gpu/drm/i915/i915_utils.h
index cae0ae520398..024a9e224ff3 100644
--- a/drivers/gpu/drm/i915/i915_utils.h
+++ b/drivers/gpu/drm/i915/i915_utils.h
@@ -236,6 +236,11 @@ static inline u64 ptr_to_u64(const void *ptr)
__idx;  \
 })
 
+static inline bool is_power_of_2_u64(u64 n)
+{
+   return (n != 0 && ((n & (n - 1)) == 0));
+}
+
 static inline void __list_del_many(struct list_head *head,
   struct list_head *first)
 {
-- 
2.20.1

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


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Improve the start alignment of bonded pairs

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Improve the start alignment of bonded pairs
URL   : https://patchwork.freedesktop.org/series/74315/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8070 -> Patchwork_16835


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-tgl-y:   [PASS][1] -> [FAIL][2] ([CI#94])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16835/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html

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

  * igt@prime_vgem@basic-busy-default:
- fi-tgl-y:   [PASS][5] -> [DMESG-WARN][6] ([CI#94] / [i915#402])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@prime_v...@basic-busy-default.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16835/fi-tgl-y/igt@prime_v...@basic-busy-default.html

  
 Possible fixes 

  * igt@kms_addfb_basic@addfb25-modifier-no-flag:
- fi-tgl-y:   [DMESG-WARN][7] ([CI#94] / [i915#402]) -> [PASS][8] 
+1 similar issue
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16835/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (49 -> 35)
--

  Missing(14): fi-ilk-m540 fi-hsw-4200u fi-byt-j1900 fi-skl-6770hq 
fi-glk-dsi fi-bsw-cyan fi-snb-2520m fi-ctg-p8600 fi-gdg-551 fi-bsw-kefka 
fi-blb-e6850 fi-bsw-nick fi-bdw-samus fi-snb-2600 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8070 -> Patchwork_16835

  CI-20190529: 20190529
  CI_DRM_8070: d4e6f8b48e361f0cae9132f50f1778707b2546a2 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16835: 8a1189eb3710e14e381d51497f6d5a13bdc0a66d @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

8a1189eb3710 drm/i915: Improve the start alignment of bonded pairs

== Logs ==

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


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/execlists: Enable timeslice on partial virtual engine dequeue

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/execlists: Enable timeslice on partial virtual engine dequeue
URL   : https://patchwork.freedesktop.org/series/74304/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8070 -> Patchwork_16833


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-tgl-y:   [PASS][1] -> [FAIL][2] ([CI#94])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16833/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@i915_selftest@live@gem_contexts:
- fi-skl-lmem:[PASS][3] -> [INCOMPLETE][4] ([i915#424])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-skl-lmem/igt@i915_selftest@live@gem_contexts.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16833/fi-skl-lmem/igt@i915_selftest@live@gem_contexts.html

  * igt@prime_self_import@basic-llseek-size:
- fi-tgl-y:   [PASS][5] -> [DMESG-WARN][6] ([CI#94] / [i915#402]) 
+1 similar issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@prime_self_imp...@basic-llseek-size.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16833/fi-tgl-y/igt@prime_self_imp...@basic-llseek-size.html

  
 Possible fixes 

  * igt@kms_addfb_basic@addfb25-modifier-no-flag:
- fi-tgl-y:   [DMESG-WARN][7] ([CI#94] / [i915#402]) -> [PASS][8] 
+1 similar issue
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16833/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#424]: https://gitlab.freedesktop.org/drm/intel/issues/424


Participating hosts (49 -> 42)
--

  Additional (2): fi-kbl-soraka fi-kbl-7560u 
  Missing(9): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-bwr-2160 fi-ilk-650 
fi-ctg-p8600 fi-cfl-8109u fi-bdw-samus fi-skl-6600u 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8070 -> Patchwork_16833

  CI-20190529: 20190529
  CI_DRM_8070: d4e6f8b48e361f0cae9132f50f1778707b2546a2 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16833: 4fce90bf1b0a9a7eb1476ba2c22eec45354ff88c @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

4fce90bf1b0a drm/i915/execlists: Enable timeslice on partial virtual engine 
dequeue

== Logs ==

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


[Intel-gfx] [PATCH v2] drm/i915: properly sanity check batch_start_offset

2020-03-05 Thread Matthew Auld
Check the edge case where batch_start_offset sits exactly on the batch
size.

v2: add new range_overflows variant to capture the special case where
the size is permitted to be zero, like with batch_len.

Testcase: igt/gem_exec_params/invalid-batch-start-offset
Fixes: 0b5372727be3 ("drm/i915/cmdparser: Use cached vmappings")
Signed-off-by: Matthew Auld 
Cc: Mika Kuoppala 
Cc: Chris Wilson 
---
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c |  6 +++---
 drivers/gpu/drm/i915/i915_utils.h  | 12 
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index 7bb27f382af7..43c05034ddb0 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -2714,9 +2714,9 @@ i915_gem_do_execbuffer(struct drm_device *dev,
goto err_vma;
}
 
-   if (range_overflows_t(u64,
- eb.batch_start_offset, eb.batch_len,
- eb.batch->vma->size)) {
+   if (range_overflows_end_t(u64,
+ eb.batch_start_offset, eb.batch_len,
+ eb.batch->vma->size)) {
drm_dbg(>drm, "Attempting to use out-of-bounds batch\n");
err = -EINVAL;
goto err_vma;
diff --git a/drivers/gpu/drm/i915/i915_utils.h 
b/drivers/gpu/drm/i915/i915_utils.h
index cae0ae520398..4cb74564e2dd 100644
--- a/drivers/gpu/drm/i915/i915_utils.h
+++ b/drivers/gpu/drm/i915/i915_utils.h
@@ -108,6 +108,18 @@ bool i915_error_injected(void);
 #define range_overflows_t(type, start, size, max) \
range_overflows((type)(start), (type)(size), (type)(max))
 
+#define range_overflows_end(start, size, max) ({ \
+   typeof(start) start__ = (start); \
+   typeof(size) size__ = (size); \
+   typeof(max) max__ = (max); \
+   (void)(__ == __); \
+   (void)(__ == __); \
+   start__ >= max__ || size__ > max__ - start__; \
+})
+
+#define range_overflows_end_t(type, start, size, max) \
+   range_overflows_end((type)(start), (type)(size), (type)(max))
+
 /* Note we don't consider signbits :| */
 #define overflows_type(x, T) \
(sizeof(x) > sizeof(T) && (x) >> BITS_PER_TYPE(T))
-- 
2.20.1

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


[Intel-gfx] [PATCH] drm/i915/tgl: Don't treat unslice registers as masked

2020-03-05 Thread Matt Roper
The UNSLICE_UNIT_LEVEL_CLKGATE and UNSLICE_UNIT_LEVEL_CLKGATE2 registers
that we update in a few engine workarounds are not masked registers
(i.e., we don't have to write a mask bit in the top 16 bits when
updating one of the lower 16 bits).  As such, these workarounds should
be applied via wa_write_or() rather than wa_masked_en()

Reported-by: Nick Desaulniers 
Fixes: 50148a25f841 ("drm/i915/tgl: Move and restrict Wa_1408615072")
Fixes: 3551ff928744 ("drm/i915/gen11: Moving WAs to rcs_engine_wa_init()")
Cc: José Roberto de Souza 
Signed-off-by: Matt Roper 
---
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c 
b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 908a70914399..b4785212fb7d 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -1382,8 +1382,8 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct 
i915_wa_list *wal)
wa_masked_en(wal, GEN9_ROW_CHICKEN4, GEN12_DISABLE_TDL_PUSH);
 
/* Wa_1408615072:tgl */
-   wa_masked_en(wal, UNSLICE_UNIT_LEVEL_CLKGATE2,
-VSUNIT_CLKGATE_DIS_TGL);
+   wa_write_or(wal, UNSLICE_UNIT_LEVEL_CLKGATE2,
+   VSUNIT_CLKGATE_DIS_TGL);
}
 
if (IS_TIGERLAKE(i915)) {
@@ -1467,12 +1467,12 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, 
struct i915_wa_list *wal)
 * Wa_1408615072:icl,ehl  (vsunit)
 * Wa_1407596294:icl,ehl  (hsunit)
 */
-   wa_masked_en(wal, UNSLICE_UNIT_LEVEL_CLKGATE,
-VSUNIT_CLKGATE_DIS | HSUNIT_CLKGATE_DIS);
+   wa_write_or(wal, UNSLICE_UNIT_LEVEL_CLKGATE,
+   VSUNIT_CLKGATE_DIS | HSUNIT_CLKGATE_DIS);
 
/* Wa_1407352427:icl,ehl */
-   wa_masked_en(wal, UNSLICE_UNIT_LEVEL_CLKGATE2,
-PSDUNIT_CLKGATE_DIS);
+   wa_write_or(wal, UNSLICE_UNIT_LEVEL_CLKGATE2,
+   PSDUNIT_CLKGATE_DIS);
 
/* Wa_1406680159:icl,ehl */
wa_write_or(wal,
-- 
2.24.1

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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915: Improve the start alignment of bonded pairs

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Improve the start alignment of bonded pairs
URL   : https://patchwork.freedesktop.org/series/74315/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

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


[Intel-gfx] [PATCH v5 14/16] drm/mst: Add support for QUERY_STREAM_ENCRYPTION_STATUS MST sideband message

2020-03-05 Thread Sean Paul
From: Sean Paul 

Used to query whether an MST stream is encrypted or not.

Signed-off-by: Sean Paul 

Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-14-s...@poorly.run
 #v4

Changes in v4:
-Added to the set
Changes in v5:
-None
---
 drivers/gpu/drm/drm_dp_mst_topology.c | 117 ++
 include/drm/drm_dp_helper.h   |   3 +
 include/drm/drm_dp_mst_helper.h   |  44 ++
 3 files changed, 164 insertions(+)

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c 
b/drivers/gpu/drm/drm_dp_mst_topology.c
index 6c62ad8f44142..5bba5aac86f31 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -25,6 +25,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 
@@ -418,6 +419,22 @@ drm_dp_encode_sideband_req(const struct 
drm_dp_sideband_msg_req_body *req,
memcpy([idx], req->u.i2c_write.bytes, 
req->u.i2c_write.num_bytes);
idx += req->u.i2c_write.num_bytes;
break;
+   case DP_QUERY_STREAM_ENC_STATUS: {
+   const struct drm_dp_query_stream_enc_status *msg;
+
+   msg = >u.enc_status;
+   buf[idx] = msg->stream_id;
+   idx++;
+   memcpy([idx], msg->client_id, sizeof(msg->client_id));
+   idx += sizeof(msg->client_id);
+   buf[idx] = 0;
+   buf[idx] |= msg->stream_event & GENMASK(1, 0);
+   buf[idx] |= msg->valid_stream_event ? BIT(2) : 0;
+   buf[idx] |= (msg->stream_behavior & GENMASK(1, 0)) << 3;
+   buf[idx] |= msg->valid_stream_behavior ? BIT(5) : 0;
+   idx++;
+   }
+   break;
}
raw->cur_len = idx;
 }
@@ -930,6 +947,34 @@ static bool 
drm_dp_sideband_parse_power_updown_phy_ack(struct drm_dp_sideband_ms
return true;
 }
 
+static bool
+drm_dp_sideband_parse_query_stream_enc_status(
+   struct drm_dp_sideband_msg_rx *raw,
+   struct drm_dp_sideband_msg_reply_body *repmsg)
+{
+   struct drm_dp_query_stream_enc_status_ack_reply *reply;
+
+   reply = >u.enc_status;
+
+   reply->stream_id = raw->msg[3];
+
+   reply->reply_signed = raw->msg[2] & BIT(0);
+
+   reply->hdcp_1x_device_present = raw->msg[2] & BIT(3);
+   reply->hdcp_2x_device_present = raw->msg[2] & BIT(4);
+
+   reply->query_capable_device_present = raw->msg[2] & BIT(5);
+   reply->legacy_device_present = raw->msg[2] & BIT(6);
+   reply->unauthorizable_device_present = raw->msg[2] & BIT(7);
+
+   reply->auth_completed = !!(raw->msg[1] & BIT(3));
+   reply->encryption_enabled = !!(raw->msg[1] & BIT(4));
+   reply->repeater_present = !!(raw->msg[1] & BIT(5));
+   reply->state = (raw->msg[1] & GENMASK(7, 6)) >> 6;
+
+   return true;
+}
+
 static bool drm_dp_sideband_parse_reply(struct drm_dp_sideband_msg_rx *raw,
struct drm_dp_sideband_msg_reply_body 
*msg)
 {
@@ -964,6 +1009,8 @@ static bool drm_dp_sideband_parse_reply(struct 
drm_dp_sideband_msg_rx *raw,
return drm_dp_sideband_parse_power_updown_phy_ack(raw, msg);
case DP_CLEAR_PAYLOAD_ID_TABLE:
return true; /* since there's nothing to parse */
+   case DP_QUERY_STREAM_ENC_STATUS:
+   return drm_dp_sideband_parse_query_stream_enc_status(raw, msg);
default:
DRM_ERROR("Got unknown reply 0x%02x (%s)\n", msg->req_type,
  drm_dp_mst_req_type_str(msg->req_type));
@@ -1115,6 +1162,25 @@ static void build_power_updown_phy(struct 
drm_dp_sideband_msg_tx *msg,
msg->path_msg = true;
 }
 
+static int
+build_query_stream_enc_status(struct drm_dp_sideband_msg_tx *msg, u8 stream_id,
+ u8 *q_id)
+{
+   struct drm_dp_sideband_msg_req_body req;
+
+   req.req_type = DP_QUERY_STREAM_ENC_STATUS;
+   req.u.enc_status.stream_id = stream_id;
+   memcpy(req.u.enc_status.client_id, q_id,
+  sizeof(req.u.enc_status.client_id));
+   req.u.enc_status.stream_event = 0;
+   req.u.enc_status.valid_stream_event = false;
+   req.u.enc_status.stream_behavior = 0;
+   req.u.enc_status.valid_stream_behavior = false;
+
+   drm_dp_encode_sideband_req(, msg);
+   return 0;
+}
+
 static int drm_dp_mst_assign_payload_id(struct drm_dp_mst_topology_mgr *mgr,
struct drm_dp_vcpi *vcpi)
 {
@@ -3151,6 +3217,57 @@ int drm_dp_send_power_updown_phy(struct 
drm_dp_mst_topology_mgr *mgr,
 }
 EXPORT_SYMBOL(drm_dp_send_power_updown_phy);
 
+int drm_dp_send_query_stream_enc_status(struct drm_dp_mst_topology_mgr *mgr,
+   struct drm_dp_mst_port *port,
+   struct drm_dp_query_stream_enc_status_ack_reply *status)
+{
+   struct drm_dp_sideband_msg_tx *txmsg;
+   u8 nonce[7];
+   int len, ret;
+
+   

[Intel-gfx] [PATCH v5 12/16] drm/i915: Plumb port through hdcp init

2020-03-05 Thread Sean Paul
From: Sean Paul 

This patch plumbs port through hdcp init instead of relying on
intel_attached_encoder() to return a non-NULL encoder which won't work
for MST connectors.

Cc: Ville Syrjälä 
Signed-off-by: Sean Paul 

Changes in v5:
-Added to the set
---
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c |  3 ++-
 drivers/gpu/drm/i915/display/intel_hdcp.c| 11 ++-
 drivers/gpu/drm/i915/display/intel_hdcp.h|  2 +-
 drivers/gpu/drm/i915/display/intel_hdmi.c|  2 +-
 4 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c 
b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
index f41fe9e9d6f89..abcb53975e0d5 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
@@ -601,7 +601,8 @@ int intel_dp_init_hdcp(struct intel_digital_port 
*intel_dig_port,
return 0;
 
if (!intel_dp_is_edp(intel_dp))
-   return intel_hdcp_init(intel_connector, _dp_hdcp_shim);
+   return intel_hdcp_init(intel_connector, port,
+  _dp_hdcp_shim);
 
return 0;
 }
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c 
b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 0ee29f88bab2d..fc3ce7586084c 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -1959,6 +1959,7 @@ enum mei_fw_tc intel_get_mei_fw_tc(enum transcoder 
cpu_transcoder)
 }
 
 static inline int initialize_hdcp_port_data(struct intel_connector *connector,
+   enum port port,
const struct intel_hdcp_shim *shim)
 {
struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
@@ -1966,8 +1967,7 @@ static inline int initialize_hdcp_port_data(struct 
intel_connector *connector,
struct hdcp_port_data *data = >port_data;
 
if (INTEL_GEN(dev_priv) < 12)
-   data->fw_ddi =
-   
intel_get_mei_fw_ddi_index(intel_attached_encoder(connector)->port);
+   data->fw_ddi = intel_get_mei_fw_ddi_index(port);
else
/*
 * As per ME FW API expectation, for GEN 12+, fw_ddi is filled
@@ -2034,14 +2034,14 @@ void intel_hdcp_component_init(struct drm_i915_private 
*dev_priv)
}
 }
 
-static void intel_hdcp2_init(struct intel_connector *connector,
+static void intel_hdcp2_init(struct intel_connector *connector, enum port port,
 const struct intel_hdcp_shim *shim)
 {
struct drm_i915_private *i915 = to_i915(connector->base.dev);
struct intel_hdcp *hdcp = >hdcp;
int ret;
 
-   ret = initialize_hdcp_port_data(connector, shim);
+   ret = initialize_hdcp_port_data(connector, port, shim);
if (ret) {
drm_dbg_kms(>drm, "Mei hdcp data init failed\n");
return;
@@ -2051,6 +2051,7 @@ static void intel_hdcp2_init(struct intel_connector 
*connector,
 }
 
 int intel_hdcp_init(struct intel_connector *connector,
+   enum port port,
const struct intel_hdcp_shim *shim)
 {
struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
@@ -2061,7 +2062,7 @@ int intel_hdcp_init(struct intel_connector *connector,
return -EINVAL;
 
if (is_hdcp2_supported(dev_priv))
-   intel_hdcp2_init(connector, shim);
+   intel_hdcp2_init(connector, port, shim);
 
ret =
drm_connector_attach_content_protection_property(>base,
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.h 
b/drivers/gpu/drm/i915/display/intel_hdcp.h
index 7c12ad609b1fe..713dc20853745 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.h
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.h
@@ -21,7 +21,7 @@ enum transcoder;
 void intel_hdcp_atomic_check(struct drm_connector *connector,
 struct drm_connector_state *old_state,
 struct drm_connector_state *new_state);
-int intel_hdcp_init(struct intel_connector *connector,
+int intel_hdcp_init(struct intel_connector *connector, enum port port,
const struct intel_hdcp_shim *hdcp_shim);
 int intel_hdcp_enable(struct intel_connector *connector,
  enum transcoder cpu_transcoder, u8 content_type);
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c 
b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 29149b59f9e40..8b32c3c986bca 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -3189,7 +3189,7 @@ void intel_hdmi_init_connector(struct intel_digital_port 
*intel_dig_port,
intel_hdmi->attached_connector = intel_connector;
 
if (is_hdcp_supported(dev_priv, port)) {
-   int ret = intel_hdcp_init(intel_connector,
+   int ret = intel_hdcp_init(intel_connector, port,
 

[Intel-gfx] [PATCH v5 16/16] drm/i915: Add HDCP 1.4 support for MST connectors

2020-03-05 Thread Sean Paul
From: Sean Paul 

Now that all the groundwork has been laid, we can turn on HDCP 1.4 over
MST. Everything except for toggling the HDCP signalling and HDCP 2.2
support is the same as the DP case, so we'll re-use those callbacks

Cc: Juston Li 
Signed-off-by: Sean Paul 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191203173638.94919-12-s...@poorly.run
 #v1
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191212190230.188505-13-s...@poorly.run
 #v2
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200117193103.156821-13-s...@poorly.run
 #v3
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-15-s...@poorly.run
 #v4

Changes in v2:
-Toggle HDCP from encoder disable/enable
-Don't disable HDCP on MST connector destroy, leave that for encoder
 disable, just ensure the check_work routine isn't running any longer
Changes in v3:
-Place the shim in the new intel_dp_hdcp.c file (Ville)
Changes in v4:
-Actually use the mst shim for mst connections (Juston)
-Use QUERY_STREAM_ENC_STATUS MST message to verify channel is encrypted
Changes in v5:
-Add sleep on disable signalling to match hdmi delay
---
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c | 105 ++-
 drivers/gpu/drm/i915/display/intel_dp_mst.c  |  14 +++
 2 files changed, 118 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c 
b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
index 549f02f622b45..69b5412736467 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
@@ -7,10 +7,12 @@
  */
 
 #include 
+#include 
 #include 
 #include 
 
 #include "intel_display_types.h"
+#include "intel_ddi.h"
 #include "intel_dp.h"
 #include "intel_hdcp.h"
 
@@ -589,6 +591,104 @@ static const struct intel_hdcp_shim intel_dp_hdcp_shim = {
.protocol = HDCP_PROTOCOL_DP,
 };
 
+static int
+intel_dp_mst_hdcp_toggle_signalling(struct intel_digital_port *intel_dig_port,
+   enum transcoder cpu_transcoder,
+   bool enable)
+{
+   int ret;
+
+   if (!enable)
+   usleep_range(6, 60); /* Bspec says >= 6us */
+
+   ret = intel_ddi_toggle_hdcp_signalling(_dig_port->base,
+  cpu_transcoder, enable);
+   if (ret)
+   DRM_DEBUG_KMS("%s HDCP signalling failed (%d)\n",
+ enable ? "Enable" : "Disable", ret);
+   return ret;
+}
+
+static
+int intel_dp_mst_hdcp2_write_msg(struct intel_digital_port *intel_dig_port,
+void *buf, size_t size)
+{
+   return -EOPNOTSUPP;
+}
+
+static
+int intel_dp_mst_hdcp2_read_msg(struct intel_digital_port *intel_dig_port,
+   u8 msg_id, void *buf, size_t size)
+{
+   return -EOPNOTSUPP;
+}
+
+static int
+intel_dp_mst_hdcp2_config_stream_type(struct intel_digital_port 
*intel_dig_port,
+ bool is_repeater, u8 content_type)
+{
+   return -EOPNOTSUPP;
+}
+
+static
+int intel_dp_mst_hdcp2_check_link(struct intel_digital_port *intel_dig_port)
+{
+   return -EOPNOTSUPP;
+}
+
+static
+int intel_dp_mst_hdcp2_capable(struct intel_digital_port *intel_dig_port,
+  bool *capable)
+{
+   *capable = false;
+   return 0;
+}
+
+static
+bool intel_dp_mst_hdcp_check_link(struct intel_digital_port *intel_dig_port,
+ struct intel_connector *connector)
+{
+   struct intel_dp *intel_dp = _dig_port->dp;
+   struct drm_dp_query_stream_enc_status_ack_reply reply;
+   int ret;
+
+   if (!intel_dp_hdcp_check_link(intel_dig_port, connector))
+   return false;
+
+   ret = drm_dp_send_query_stream_enc_status(_dp->mst_mgr,
+ connector->port, );
+   if (ret) {
+   DRM_DEBUG_KMS("[CONNECTOR:%d:%s] failed QSES ret=%d\n",
+ connector->base.base.id, connector->base.name,
+ ret);
+   return false;
+   }
+
+   return reply.auth_completed && reply.encryption_enabled;
+}
+
+static const struct intel_hdcp_shim intel_dp_mst_hdcp_shim = {
+   .write_an_aksv = intel_dp_hdcp_write_an_aksv,
+   .read_bksv = intel_dp_hdcp_read_bksv,
+   .read_bstatus = intel_dp_hdcp_read_bstatus,
+   .repeater_present = intel_dp_hdcp_repeater_present,
+   .read_ri_prime = intel_dp_hdcp_read_ri_prime,
+   .read_ksv_ready = intel_dp_hdcp_read_ksv_ready,
+   .read_ksv_fifo = intel_dp_hdcp_read_ksv_fifo,
+   .read_v_prime_part = intel_dp_hdcp_read_v_prime_part,
+   .toggle_signalling = intel_dp_mst_hdcp_toggle_signalling,
+   .check_link = intel_dp_mst_hdcp_check_link,
+   .hdcp_capable = intel_dp_hdcp_capable,
+
+   .write_2_2_msg = intel_dp_mst_hdcp2_write_msg,
+   .read_2_2_msg = intel_dp_mst_hdcp2_read_msg,
+

[Intel-gfx] [PATCH v5 13/16] drm/i915: Add connector to hdcp_shim->check_link()

2020-03-05 Thread Sean Paul
From: Sean Paul 

Currently we derive the connector from digital port in check_link(). For
MST, this isn't sufficient since the digital port passed into the
function can have multiple connectors downstream. This patch adds
connector to the check_link() arguments so we have it when we need it.

Signed-off-by: Sean Paul 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-13-s...@poorly.run
 # v4

Changes in v4:
-Added to the set
Changes in v5:
-None
---
 drivers/gpu/drm/i915/display/intel_display_types.h | 3 ++-
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c   | 3 ++-
 drivers/gpu/drm/i915/display/intel_hdcp.c  | 2 +-
 drivers/gpu/drm/i915/display/intel_hdmi.c  | 5 ++---
 4 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
b/drivers/gpu/drm/i915/display/intel_display_types.h
index 3cac51955f250..9cc43dcbb518f 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -312,7 +312,8 @@ struct intel_hdcp_shim {
 bool enable);
 
/* Ensures the link is still protected */
-   bool (*check_link)(struct intel_digital_port *intel_dig_port);
+   bool (*check_link)(struct intel_digital_port *intel_dig_port,
+  struct intel_connector *connector);
 
/* Detects panel's hdcp capability. This is optional for HDMI. */
int (*hdcp_capable)(struct intel_digital_port *intel_dig_port,
diff --git a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c 
b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
index abcb53975e0d5..549f02f622b45 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
@@ -538,7 +538,8 @@ int intel_dp_hdcp_toggle_signalling(struct 
intel_digital_port *intel_dig_port,
 }
 
 static
-bool intel_dp_hdcp_check_link(struct intel_digital_port *intel_dig_port)
+bool intel_dp_hdcp_check_link(struct intel_digital_port *intel_dig_port,
+ struct intel_connector *connector)
 {
ssize_t ret;
u8 bstatus;
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c 
b/drivers/gpu/drm/i915/display/intel_hdcp.c
index fc3ce7586084c..e0418ad202d1f 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -956,7 +956,7 @@ static int intel_hdcp_check_link(struct intel_connector 
*connector)
goto out;
}
 
-   if (hdcp->shim->check_link(intel_dig_port)) {
+   if (hdcp->shim->check_link(intel_dig_port, connector)) {
if (hdcp->value != DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
intel_hdcp_update_value(connector,
DRM_MODE_CONTENT_PROTECTION_ENABLED, true);
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c 
b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 8b32c3c986bca..288525a9fdf7c 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -1522,11 +1522,10 @@ int intel_hdmi_hdcp_toggle_signalling(struct 
intel_digital_port *intel_dig_port,
 }
 
 static
-bool intel_hdmi_hdcp_check_link(struct intel_digital_port *intel_dig_port)
+bool intel_hdmi_hdcp_check_link(struct intel_digital_port *intel_dig_port,
+   struct intel_connector *connector)
 {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
-   struct intel_connector *connector =
-   intel_dig_port->hdmi.attached_connector;
enum port port = intel_dig_port->base.port;
enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder;
int ret;
-- 
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 v5 03/16] drm/i915: WARN if HDCP signalling is enabled upon disable

2020-03-05 Thread Sean Paul
From: Sean Paul 

HDCP signalling should not be left on, WARN if it is

Cc: Ville Syrjälä 
Cc: Daniel Vetter 
Reviewed-by: Ramalingam C 
Signed-off-by: Sean Paul 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191212190230.188505-4-s...@poorly.run
 #v2
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200117193103.156821-4-s...@poorly.run
 #v3
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-4-s...@poorly.run
 #v4

Changes in v2:
-Added to the set in lieu of just clearing the bit
Changes in v3:
-None
Changes in v4:
-None
Changes in v5:
-Change WARN_ON to drm_WARN_ON
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 73d0f4648c06a..4aff5717e9428 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -1593,6 +1593,8 @@ void intel_ddi_disable_transcoder_func(const struct 
intel_crtc_state *crtc_state
val = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
val &= ~TRANS_DDI_FUNC_ENABLE;
 
+   drm_WARN_ON(crtc->base.dev, val & TRANS_DDI_HDCP_SIGNALLING);
+
if (INTEL_GEN(dev_priv) >= 12) {
if (!intel_dp_mst_is_master_trans(crtc_state)) {
val &= ~(TGL_TRANS_DDI_PORT_MASK |
-- 
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 v5 06/16] drm/i915: Factor out hdcp->value assignments

2020-03-05 Thread Sean Paul
From: Sean Paul 

This is a bit of housecleaning for a future patch. Instead of sprinkling
hdcp->value assignments and prop_work scheduling everywhere, introduce a
function to do it for us.

Reviewed-by: Ramalingam C 
Signed-off-by: Sean Paul 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191203173638.94919-7-s...@poorly.run
 #v1
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191212190230.188505-7-s...@poorly.run
 #v2
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200117193103.156821-7-s...@poorly.run
 #v3
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-7-s...@poorly.run
 #v4

Changes in v2:
-None
Changes in v3:
-None
Changes in v4:
-Rebased on top of drm_* logging changes
Changes in v5:
-Change WARN_ON to drm_WARN_ON
---
 drivers/gpu/drm/i915/display/intel_hdcp.c | 67 ---
 1 file changed, 46 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c 
b/drivers/gpu/drm/i915/display/intel_hdcp.c
index d61bfea3fd28f..dfa792ee90ecd 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -880,6 +880,21 @@ struct intel_connector *intel_hdcp_to_connector(struct 
intel_hdcp *hdcp)
return container_of(hdcp, struct intel_connector, hdcp);
 }
 
+static void intel_hdcp_update_value(struct intel_connector *connector,
+   u64 value, bool update_property)
+{
+   struct intel_hdcp *hdcp = >hdcp;
+
+   drm_WARN_ON(connector->base.dev, !mutex_is_locked(>mutex));
+
+   if (hdcp->value == value)
+   return;
+
+   hdcp->value = value;
+   if (update_property)
+   schedule_work(>prop_work);
+}
+
 /* Implements Part 3 of the HDCP authorization procedure */
 static int intel_hdcp_check_link(struct intel_connector *connector)
 {
@@ -907,15 +922,16 @@ static int intel_hdcp_check_link(struct intel_connector 
*connector)
connector->base.name, connector->base.base.id,
intel_de_read(dev_priv, HDCP_STATUS(dev_priv, 
cpu_transcoder, port)));
ret = -ENXIO;
-   hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
-   schedule_work(>prop_work);
+   intel_hdcp_update_value(connector,
+   DRM_MODE_CONTENT_PROTECTION_DESIRED,
+   true);
goto out;
}
 
if (hdcp->shim->check_link(intel_dig_port)) {
if (hdcp->value != DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
-   hdcp->value = DRM_MODE_CONTENT_PROTECTION_ENABLED;
-   schedule_work(>prop_work);
+   intel_hdcp_update_value(connector,
+   DRM_MODE_CONTENT_PROTECTION_ENABLED, true);
}
goto out;
}
@@ -927,16 +943,18 @@ static int intel_hdcp_check_link(struct intel_connector 
*connector)
ret = _intel_hdcp_disable(connector);
if (ret) {
drm_err(_priv->drm, "Failed to disable hdcp (%d)\n", ret);
-   hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
-   schedule_work(>prop_work);
+   intel_hdcp_update_value(connector,
+   DRM_MODE_CONTENT_PROTECTION_DESIRED,
+   true);
goto out;
}
 
ret = _intel_hdcp_enable(connector);
if (ret) {
drm_err(_priv->drm, "Failed to enable hdcp (%d)\n", ret);
-   hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
-   schedule_work(>prop_work);
+   intel_hdcp_update_value(connector,
+   DRM_MODE_CONTENT_PROTECTION_DESIRED,
+   true);
goto out;
}
 
@@ -1771,16 +1789,18 @@ static int intel_hdcp2_check_link(struct 
intel_connector *connector)
"HDCP2.2 link stopped the encryption, %x\n",
intel_de_read(dev_priv, HDCP2_STATUS(dev_priv, 
cpu_transcoder, port)));
ret = -ENXIO;
-   hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
-   schedule_work(>prop_work);
+   intel_hdcp_update_value(connector,
+   DRM_MODE_CONTENT_PROTECTION_DESIRED,
+   true);
goto out;
}
 
ret = hdcp->shim->check_2_2_link(intel_dig_port);
if (ret == HDCP_LINK_PROTECTED) {
if (hdcp->value != DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
-   hdcp->value = DRM_MODE_CONTENT_PROTECTION_ENABLED;
-   schedule_work(>prop_work);
+   intel_hdcp_update_value(connector,
+   DRM_MODE_CONTENT_PROTECTION_ENABLED,
+ 

[Intel-gfx] [PATCH v5 07/16] drm/i915: Protect workers against disappearing connectors

2020-03-05 Thread Sean Paul
From: Sean Paul 

This patch adds some protection against connectors being destroyed
before the HDCP workers are finished.

For check_work, we do a synchronous cancel after the connector is
unregistered which will ensure that it is finished before destruction.

In the case of prop_work, we can't do a synchronous wait since it needs
to take connection_mutex which could cause deadlock. Instead, we'll take
a reference on the connector when scheduling prop_work and give it up
once we're done.

Reviewed-by: Ramalingam C 
Signed-off-by: Sean Paul 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191212190230.188505-8-s...@poorly.run
 #v2
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200117193103.156821-8-s...@poorly.run
 #v3
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-8-s...@poorly.run
 #v4

Changes in v2:
-Added to the set
Changes in v3:
-Change the WARN_ON condition in intel_hdcp_cleanup to allow for
 initializing connectors as well
Changes in v4:
-None
Changes in v5:
-Change WARN_ON to drm_WARN_ON
---
 drivers/gpu/drm/i915/display/intel_hdcp.c | 44 ---
 1 file changed, 39 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c 
b/drivers/gpu/drm/i915/display/intel_hdcp.c
index dfa792ee90ecd..9523ab6c65e0d 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -891,8 +891,10 @@ static void intel_hdcp_update_value(struct intel_connector 
*connector,
return;
 
hdcp->value = value;
-   if (update_property)
+   if (update_property) {
+   drm_connector_get(>base);
schedule_work(>prop_work);
+   }
 }
 
 /* Implements Part 3 of the HDCP authorization procedure */
@@ -984,6 +986,8 @@ static void intel_hdcp_prop_work(struct work_struct *work)
 
mutex_unlock(>mutex);
drm_modeset_unlock(_priv->drm.mode_config.connection_mutex);
+
+   drm_connector_put(>base);
 }
 
 bool is_hdcp_supported(struct drm_i915_private *dev_priv, enum port port)
@@ -1862,6 +1866,9 @@ static void intel_hdcp_check_work(struct work_struct 
*work)
   check_work);
struct intel_connector *connector = intel_hdcp_to_connector(hdcp);
 
+   if (drm_connector_is_unregistered(>base))
+   return;
+
if (!intel_hdcp2_check_link(connector))
schedule_delayed_work(>check_work,
  DRM_HDCP2_CHECK_PERIOD_MS);
@@ -2178,12 +2185,39 @@ void intel_hdcp_component_fini(struct drm_i915_private 
*dev_priv)
 
 void intel_hdcp_cleanup(struct intel_connector *connector)
 {
-   if (!connector->hdcp.shim)
+   struct intel_hdcp *hdcp = >hdcp;
+
+   if (!hdcp->shim)
return;
 
-   mutex_lock(>hdcp.mutex);
-   kfree(connector->hdcp.port_data.streams);
-   mutex_unlock(>hdcp.mutex);
+   /*
+* If the connector is registered, it's possible userspace could kick
+* off another HDCP enable, which would re-spawn the workers.
+*/
+   drm_WARN_ON(connector->base.dev,
+   connector->base.registration_state == DRM_CONNECTOR_REGISTERED);
+
+   /*
+* Now that the connector is not registered, check_work won't be run,
+* but cancel any outstanding instances of it
+*/
+   cancel_delayed_work_sync(>check_work);
+
+   /*
+* We don't cancel prop_work in the same way as check_work since it
+* requires connection_mutex which could be held while calling this
+* function. Instead, we rely on the connector references grabbed before
+* scheduling prop_work to ensure the connector is alive when prop_work
+* is run. So if we're in the destroy path (which is where this
+* function should be called), we're "guaranteed" that prop_work is not
+* active (tl;dr This Should Never Happen).
+*/
+   drm_WARN_ON(connector->base.dev, work_pending(>prop_work));
+
+   mutex_lock(>mutex);
+   kfree(hdcp->port_data.streams);
+   hdcp->shim = NULL;
+   mutex_unlock(>mutex);
 }
 
 void intel_hdcp_atomic_check(struct drm_connector *connector,
-- 
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 v5 11/16] drm/i915: Factor out HDCP shim functions from dp for use by dp_mst

2020-03-05 Thread Sean Paul
From: Sean Paul 

These functions are all the same for dp and dp_mst, so move them into a
dedicated file for both sst and mst to use.

Signed-off-by: Sean Paul 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191203173638.94919-11-s...@poorly.run
 #v1
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191212190230.188505-12-s...@poorly.run
 #v2
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200117193103.156821-12-s...@poorly.run
 #v3
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-12-s...@poorly.run
 #v4

Changes in v2:
-None
Changes in v3:
-Created intel_dp_hdcp.c for the shared functions to live (Ville)
Changes in v4:
-Rebased on new drm logging change
Changes in v5:
-None
---
 drivers/gpu/drm/i915/Makefile|   1 +
 drivers/gpu/drm/i915/display/intel_dp.c  | 585 +-
 drivers/gpu/drm/i915/display/intel_dp.h  |   3 +
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c | 607 +++
 4 files changed, 615 insertions(+), 581 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/display/intel_dp_hdcp.c

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 991a8c537d123..cb4a7f137c0d9 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -225,6 +225,7 @@ i915-y += \
display/intel_ddi.o \
display/intel_dp.o \
display/intel_dp_aux_backlight.o \
+   display/intel_dp_hdcp.o \
display/intel_dp_link_training.o \
display/intel_dp_mst.o \
display/intel_dsi.o \
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 4a38012a1fb03..306e4ccac5bb4 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5958,580 +5958,6 @@ void intel_dp_encoder_suspend(struct intel_encoder 
*intel_encoder)
edp_panel_vdd_off_sync(intel_dp);
 }
 
-static void intel_dp_hdcp_wait_for_cp_irq(struct intel_hdcp *hdcp, int timeout)
-{
-   long ret;
-
-#define C (hdcp->cp_irq_count_cached != atomic_read(>cp_irq_count))
-   ret = wait_event_interruptible_timeout(hdcp->cp_irq_queue, C,
-  msecs_to_jiffies(timeout));
-
-   if (!ret)
-   DRM_DEBUG_KMS("Timedout at waiting for CP_IRQ\n");
-}
-
-static
-int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
-   u8 *an)
-{
-   u8 aksv[DRM_HDCP_KSV_LEN] = {};
-   ssize_t dpcd_ret;
-
-   dpcd_ret = drm_dp_dpcd_write(_dig_port->dp.aux, DP_AUX_HDCP_AN,
-an, DRM_HDCP_AN_LEN);
-   if (dpcd_ret != DRM_HDCP_AN_LEN) {
-   DRM_DEBUG_KMS("Failed to write An over DP/AUX (%zd)\n",
- dpcd_ret);
-   return dpcd_ret >= 0 ? -EIO : dpcd_ret;
-   }
-
-   /*
-* Since Aksv is Oh-So-Secret, we can't access it in software. So we
-* send an empty buffer of the correct length through the DP helpers. On
-* the other side, in the transfer hook, we'll generate a flag based on
-* the destination address which will tickle the hardware to output the
-* Aksv on our behalf after the header is sent.
-*/
-   dpcd_ret = drm_dp_dpcd_write(_dig_port->dp.aux, DP_AUX_HDCP_AKSV,
-aksv, DRM_HDCP_KSV_LEN);
-   if (dpcd_ret != DRM_HDCP_KSV_LEN) {
-   DRM_DEBUG_KMS("Failed to write Aksv over DP/AUX (%zd)\n",
- dpcd_ret);
-   return dpcd_ret >= 0 ? -EIO : dpcd_ret;
-   }
-   return 0;
-}
-
-static int intel_dp_hdcp_read_bksv(struct intel_digital_port *intel_dig_port,
-  u8 *bksv)
-{
-   ssize_t ret;
-   ret = drm_dp_dpcd_read(_dig_port->dp.aux, DP_AUX_HDCP_BKSV, bksv,
-  DRM_HDCP_KSV_LEN);
-   if (ret != DRM_HDCP_KSV_LEN) {
-   DRM_DEBUG_KMS("Read Bksv from DP/AUX failed (%zd)\n", ret);
-   return ret >= 0 ? -EIO : ret;
-   }
-   return 0;
-}
-
-static int intel_dp_hdcp_read_bstatus(struct intel_digital_port 
*intel_dig_port,
- u8 *bstatus)
-{
-   ssize_t ret;
-   /*
-* For some reason the HDMI and DP HDCP specs call this register
-* definition by different names. In the HDMI spec, it's called BSTATUS,
-* but in DP it's called BINFO.
-*/
-   ret = drm_dp_dpcd_read(_dig_port->dp.aux, DP_AUX_HDCP_BINFO,
-  bstatus, DRM_HDCP_BSTATUS_LEN);
-   if (ret != DRM_HDCP_BSTATUS_LEN) {
-   DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret);
-   return ret >= 0 ? -EIO : ret;
-   }
-   return 0;
-}
-
-static
-int intel_dp_hdcp_read_bcaps(struct intel_digital_port *intel_dig_port,
-u8 *bcaps)
-{
-   

[Intel-gfx] [PATCH v5 05/16] drm/i915: Use the cpu_transcoder in intel_hdcp to toggle HDCP signalling

2020-03-05 Thread Sean Paul
From: Sean Paul 

Instead of using intel_dig_port's encoder pipe to determine which
transcoder to toggle signalling on, use the cpu_transcoder field already
stored in intel_hdmi.

This is particularly important for MST.

Suggested-by: Ville Syrjälä 
Reviewed-by: Ramalingam C 
Signed-off-by: Sean Paul 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191212190230.188505-6-s...@poorly.run
 #v2
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200117193103.156821-6-s...@poorly.run
 #v3
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-6-s...@poorly.run
 #v4

Changes in v2:
-Added to the set
Changes in v3:
-s/hdcp/hdmi/ in commit msg (Ram)
Changes in v4:
-Rebased on intel_de_(read|write) change
Changes in v5:
-Update hdcp->cpu_transcoder in intel_hdcp_enable so it works with pipe != 0
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 13 +++--
 drivers/gpu/drm/i915/display/intel_ddi.h |  2 ++
 .../gpu/drm/i915/display/intel_display_types.h   |  1 +
 drivers/gpu/drm/i915/display/intel_dp.c  |  1 +
 drivers/gpu/drm/i915/display/intel_hdcp.c| 16 +---
 drivers/gpu/drm/i915/display/intel_hdmi.c| 16 +++-
 6 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 4aff5717e9428..d27f74c8f55d0 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -1614,12 +1614,12 @@ void intel_ddi_disable_transcoder_func(const struct 
intel_crtc_state *crtc_state
 }
 
 int intel_ddi_toggle_hdcp_signalling(struct intel_encoder *intel_encoder,
+enum transcoder cpu_transcoder,
 bool enable)
 {
struct drm_device *dev = intel_encoder->base.dev;
struct drm_i915_private *dev_priv = to_i915(dev);
intel_wakeref_t wakeref;
-   enum pipe pipe = 0;
int ret = 0;
u32 tmp;
 
@@ -1628,19 +1628,12 @@ int intel_ddi_toggle_hdcp_signalling(struct 
intel_encoder *intel_encoder,
if (drm_WARN_ON(dev, !wakeref))
return -ENXIO;
 
-   if (drm_WARN_ON(dev,
-   !intel_encoder->get_hw_state(intel_encoder, ))) {
-   ret = -EIO;
-   goto out;
-   }
-
-   tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(pipe));
+   tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
if (enable)
tmp |= TRANS_DDI_HDCP_SIGNALLING;
else
tmp &= ~TRANS_DDI_HDCP_SIGNALLING;
-   intel_de_write(dev_priv, TRANS_DDI_FUNC_CTL(pipe), tmp);
-out:
+   intel_de_write(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder), tmp);
intel_display_power_put(dev_priv, intel_encoder->power_domain, wakeref);
return ret;
 }
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.h 
b/drivers/gpu/drm/i915/display/intel_ddi.h
index 55fd72b901fe4..cd1342a557e4f 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.h
+++ b/drivers/gpu/drm/i915/display/intel_ddi.h
@@ -16,6 +16,7 @@ struct intel_crtc_state;
 struct intel_dp;
 struct intel_dpll_hw_state;
 struct intel_encoder;
+enum transcoder;
 
 void intel_ddi_fdi_post_disable(struct intel_encoder *intel_encoder,
const struct intel_crtc_state *old_crtc_state,
@@ -43,6 +44,7 @@ u8 intel_ddi_dp_voltage_max(struct intel_encoder *encoder);
 u8 intel_ddi_dp_pre_emphasis_max(struct intel_encoder *encoder,
 u8 voltage_swing);
 int intel_ddi_toggle_hdcp_signalling(struct intel_encoder *intel_encoder,
+enum transcoder cpu_transcoder,
 bool enable);
 void icl_sanitize_encoder_pll_mapping(struct intel_encoder *encoder);
 
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
b/drivers/gpu/drm/i915/display/intel_display_types.h
index 5e00e611f077f..bd577f143469c 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -308,6 +308,7 @@ struct intel_hdcp_shim {
 
/* Enables HDCP signalling on the port */
int (*toggle_signalling)(struct intel_digital_port *intel_dig_port,
+enum transcoder cpu_transcoder,
 bool enable);
 
/* Ensures the link is still protected */
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 1f80a1244abbb..b2e92ecd1e0ff 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -6138,6 +6138,7 @@ int intel_dp_hdcp_read_v_prime_part(struct 
intel_digital_port *intel_dig_port,
 
 static
 int intel_dp_hdcp_toggle_signalling(struct intel_digital_port *intel_dig_port,
+   enum transcoder cpu_transcoder,
 

[Intel-gfx] [PATCH v5 08/16] drm/i915: Don't fully disable HDCP on a port if multiple pipes are using it

2020-03-05 Thread Sean Paul
From: Sean Paul 

This patch is required for HDCP over MST. If a port is being used for
multiple HDCP streams, we don't want to fully disable HDCP on a port if
one of them is disabled. Instead, we just disable the HDCP signalling on
that particular pipe and exit early. The last pipe to disable HDCP will
also bring down HDCP on the port.

In order to achieve this, we need to keep a refcount in intel_digital_port
and protect it using a new hdcp_mutex.

Cc: Ramalingam C 
Signed-off-by: Sean Paul 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191203173638.94919-8-s...@poorly.run
 #v1
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191212190230.188505-9-s...@poorly.run
 #v2
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200117193103.156821-9-s...@poorly.run
 #v3
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-9-s...@poorly.run
 #v4

Changes in v2:
-Move the toggle_signalling call into _intel_hdcp_disable so it's called from 
check_work
Changes in v3:
-None
Changes in v4:
-None
Changes in v5:
-Change WARN_ON to drm_WARN_ON
---
 drivers/gpu/drm/i915/display/intel_ddi.c  |  3 ++
 .../drm/i915/display/intel_display_types.h|  5 ++
 drivers/gpu/drm/i915/display/intel_dp.c   |  2 +
 drivers/gpu/drm/i915/display/intel_hdcp.c | 53 +++
 drivers/gpu/drm/i915/display/intel_hdmi.c |  2 +
 5 files changed, 56 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index d27f74c8f55d0..48910a2ce 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -4452,6 +4452,9 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, 
enum port port)
drm_encoder_init(_priv->drm, >base, _ddi_funcs,
 DRM_MODE_ENCODER_TMDS, "DDI %c", port_name(port));
 
+   mutex_init(_dig_port->hdcp_mutex);
+   intel_dig_port->num_hdcp_streams = 0;
+
encoder->hotplug = intel_ddi_hotplug;
encoder->compute_output_type = intel_ddi_compute_output_type;
encoder->compute_config = intel_ddi_compute_config;
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
b/drivers/gpu/drm/i915/display/intel_display_types.h
index bd577f143469c..04161993e2038 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1388,6 +1388,11 @@ struct intel_digital_port {
enum phy_fia tc_phy_fia;
u8 tc_phy_fia_idx;
 
+   /* protects num_hdcp_streams reference count */
+   struct mutex hdcp_mutex;
+   /* the number of pipes using HDCP signalling out of this port */
+   unsigned int num_hdcp_streams;
+
void (*write_infoframe)(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
unsigned int type,
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index b2e92ecd1e0ff..4a38012a1fb03 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -7800,6 +7800,8 @@ bool intel_dp_init(struct drm_i915_private *dev_priv,
intel_encoder = _dig_port->base;
encoder = _encoder->base;
 
+   mutex_init(_dig_port->hdcp_mutex);
+
if (drm_encoder_init(_priv->drm, _encoder->base,
 _dp_enc_funcs, DRM_MODE_ENCODER_TMDS,
 "DP %c", port_name(port)))
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c 
b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 9523ab6c65e0d..0ee29f88bab2d 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -803,6 +803,19 @@ static int _intel_hdcp_disable(struct intel_connector 
*connector)
drm_dbg_kms(_priv->drm, "[%s:%d] HDCP is being disabled...\n",
connector->base.name, connector->base.base.id);
 
+   /*
+* If there are other connectors on this port using HDCP, don't disable
+* it. Instead, toggle the HDCP signalling off on that particular
+* connector/pipe and exit.
+*/
+   if (intel_dig_port->num_hdcp_streams > 0) {
+   ret = hdcp->shim->toggle_signalling(intel_dig_port,
+   cpu_transcoder, false);
+   if (ret)
+   DRM_ERROR("Failed to disable HDCP signalling\n");
+   return ret;
+   }
+
hdcp->hdcp_encrypted = false;
intel_de_write(dev_priv, HDCP_CONF(dev_priv, cpu_transcoder, port), 0);
if (intel_de_wait_for_clear(dev_priv,
@@ -883,6 +896,8 @@ struct intel_connector *intel_hdcp_to_connector(struct 
intel_hdcp *hdcp)
 static void intel_hdcp_update_value(struct intel_connector *connector,
u64 value, bool update_property)
 {
+   struct drm_device *dev = 

[Intel-gfx] [PATCH v5 10/16] drm/i915: Use ddi_update_pipe in intel_dp_mst

2020-03-05 Thread Sean Paul
From: Sean Paul 

In order to act upon content_protection property changes, we'll need to
implement the .update_pipe() hook. We can re-use intel_ddi_update_pipe
for this

Signed-off-by: Sean Paul 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191203173638.94919-10-s...@poorly.run
 #v1
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191212190230.188505-11-s...@poorly.run
 #v2
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200117193103.156821-11-s...@poorly.run
 #v3
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-11-s...@poorly.run
 #v4

Changes in v2:
-None
Changes in v3:
-None
Changes in v4:
-None
Changes in v5:
-None
---
 drivers/gpu/drm/i915/display/intel_ddi.c| 9 +
 drivers/gpu/drm/i915/display/intel_dp.h | 4 
 drivers/gpu/drm/i915/display/intel_dp_mst.c | 1 +
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 48910a2ce..149937da20586 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3695,12 +3695,13 @@ static void intel_ddi_update_pipe_dp(struct 
intel_encoder *encoder,
intel_panel_update_backlight(encoder, crtc_state, conn_state);
 }
 
-static void intel_ddi_update_pipe(struct intel_encoder *encoder,
- const struct intel_crtc_state *crtc_state,
- const struct drm_connector_state *conn_state)
+void intel_ddi_update_pipe(struct intel_encoder *encoder,
+  const struct intel_crtc_state *crtc_state,
+  const struct drm_connector_state *conn_state)
 {
 
-   if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
+   if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI) &&
+   !intel_encoder_is_mst(encoder))
intel_ddi_update_pipe_dp(encoder, crtc_state, conn_state);
 
intel_hdcp_update_pipe(encoder, crtc_state, conn_state);
diff --git a/drivers/gpu/drm/i915/display/intel_dp.h 
b/drivers/gpu/drm/i915/display/intel_dp.h
index 0c7be8ed1423a..ae4a1517632bf 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.h
+++ b/drivers/gpu/drm/i915/display/intel_dp.h
@@ -123,4 +123,8 @@ static inline unsigned int intel_dp_unused_lane_mask(int 
lane_count)
 
 u32 intel_dp_mode_to_fec_clock(u32 mode_clock);
 
+void intel_ddi_update_pipe(struct intel_encoder *encoder,
+  const struct intel_crtc_state *crtc_state,
+  const struct drm_connector_state *conn_state);
+
 #endif /* __INTEL_DP_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c 
b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 39f5de9a8c7ce..af658c76125c1 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -787,6 +787,7 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port 
*intel_dig_port, enum
intel_encoder->compute_config = intel_dp_mst_compute_config;
intel_encoder->disable = intel_mst_disable_dp;
intel_encoder->post_disable = intel_mst_post_disable_dp;
+   intel_encoder->update_pipe = intel_ddi_update_pipe;
intel_encoder->pre_pll_enable = intel_mst_pre_pll_enable_dp;
intel_encoder->pre_enable = intel_mst_pre_enable_dp;
intel_encoder->enable = intel_mst_enable_dp;
-- 
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 v5 15/16] drm/i915: Print HDCP version info for all connectors

2020-03-05 Thread Sean Paul
From: Sean Paul 

De-duplicate the HDCP version code for each connector and print it for
all connectors.

Cc: Juston Li 
Cc: Ramalingam C 
Reviewed-by: Juston Li 
Reviewed-by: Ramalingam C 
Signed-off-by: Sean Paul 

Link: 
https://patchwork.freedesktop.org/patch/msgid/20200227185714.171466-1-s...@poorly.run
 #v4

Changes in v4:
- Added to the set
Changes in v5:
-Print "No connector support" for hdcp sink capability as well (Ram)
---
 .../drm/i915/display/intel_display_debugfs.c  | 21 ---
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c 
b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
index 1e6eb7f2f72db..25f03da30ed49 100644
--- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
+++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
@@ -597,6 +597,11 @@ static void intel_hdcp_info(struct seq_file *m,
 {
bool hdcp_cap, hdcp2_cap;
 
+   if (!intel_connector->hdcp.shim) {
+   seq_puts(m, "No Connector Support");
+   goto out;
+   }
+
hdcp_cap = intel_hdcp_capable(intel_connector);
hdcp2_cap = intel_hdcp2_capable(intel_connector);
 
@@ -608,6 +613,7 @@ static void intel_hdcp_info(struct seq_file *m,
if (!hdcp_cap && !hdcp2_cap)
seq_puts(m, "None");
 
+out:
seq_puts(m, "\n");
 }
 
@@ -624,10 +630,6 @@ static void intel_dp_info(struct seq_file *m,
 
drm_dp_downstream_debug(m, intel_dp->dpcd, intel_dp->downstream_ports,
_dp->aux);
-   if (intel_connector->hdcp.shim) {
-   seq_puts(m, "\tHDCP version: ");
-   intel_hdcp_info(m, intel_connector);
-   }
 }
 
 static void intel_dp_mst_info(struct seq_file *m,
@@ -651,10 +653,6 @@ static void intel_hdmi_info(struct seq_file *m,
struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(intel_encoder);
 
seq_printf(m, "\taudio support: %s\n", yesno(intel_hdmi->has_audio));
-   if (intel_connector->hdcp.shim) {
-   seq_puts(m, "\tHDCP version: ");
-   intel_hdcp_info(m, intel_connector);
-   }
 }
 
 static void intel_lvds_info(struct seq_file *m,
@@ -710,6 +708,9 @@ static void intel_connector_info(struct seq_file *m,
break;
}
 
+   seq_puts(m, "\tHDCP version: ");
+   intel_hdcp_info(m, intel_connector);
+
seq_printf(m, "\tmodes:\n");
list_for_each_entry(mode, >modes, head)
intel_seq_print_mode(m, 2, mode);
@@ -1975,10 +1976,6 @@ static int i915_hdcp_sink_capability_show(struct 
seq_file *m, void *data)
if (connector->status != connector_status_connected)
return -ENODEV;
 
-   /* HDCP is supported by connector */
-   if (!intel_connector->hdcp.shim)
-   return -EINVAL;
-
seq_printf(m, "%s:%d HDCP version: ", connector->name,
   connector->base.id);
intel_hdcp_info(m, intel_connector);
-- 
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 v5 00/16] drm/i915: Add support for HDCP 1.4 over MST connectors

2020-03-05 Thread Sean Paul
From: Sean Paul 

Hello friends,
Another version of HDCP over MST rebased on -tip (pls stop refactoring
stuff!).

I've also added a couple of fixes to fix bugs found when I did some testing
I on a non-CrOS laptop.

PTAL,

Sean


Sean Paul (16):
  drm/i915: Fix sha_text population code
  drm/i915: Clear the repeater bit on HDCP disable
  drm/i915: WARN if HDCP signalling is enabled upon disable
  drm/i915: Intercept Aksv writes in the aux hooks
  drm/i915: Use the cpu_transcoder in intel_hdcp to toggle HDCP
signalling
  drm/i915: Factor out hdcp->value assignments
  drm/i915: Protect workers against disappearing connectors
  drm/i915: Don't fully disable HDCP on a port if multiple pipes are
using it
  drm/i915: Support DP MST in enc_to_dig_port() function
  drm/i915: Use ddi_update_pipe in intel_dp_mst
  drm/i915: Factor out HDCP shim functions from dp for use by dp_mst
  drm/i915: Plumb port through hdcp init
  drm/i915: Add connector to hdcp_shim->check_link()
  drm/mst: Add support for QUERY_STREAM_ENCRYPTION_STATUS MST sideband
message
  drm/i915: Print HDCP version info for all connectors
  drm/i915: Add HDCP 1.4 support for MST connectors

 drivers/gpu/drm/drm_dp_mst_topology.c | 117 +++
 drivers/gpu/drm/i915/Makefile |   1 +
 drivers/gpu/drm/i915/display/intel_ddi.c  |  27 +-
 drivers/gpu/drm/i915/display/intel_ddi.h  |   2 +
 .../drm/i915/display/intel_display_debugfs.c  |  21 +-
 .../drm/i915/display/intel_display_types.h|  30 +-
 drivers/gpu/drm/i915/display/intel_dp.c   | 624 +--
 drivers/gpu/drm/i915/display/intel_dp.h   |   7 +
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c  | 712 ++
 drivers/gpu/drm/i915/display/intel_dp_mst.c   |  15 +
 drivers/gpu/drm/i915/display/intel_hdcp.c | 217 --
 drivers/gpu/drm/i915/display/intel_hdcp.h |   2 +-
 drivers/gpu/drm/i915/display/intel_hdmi.c |  25 +-
 include/drm/drm_dp_helper.h   |   3 +
 include/drm/drm_dp_mst_helper.h   |  44 ++
 include/drm/drm_hdcp.h|   3 +
 16 files changed, 1155 insertions(+), 695 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/display/intel_dp_hdcp.c

-- 
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 v5 09/16] drm/i915: Support DP MST in enc_to_dig_port() function

2020-03-05 Thread Sean Paul
From: Sean Paul 

Although DP_MST fake encoders are not subclassed from digital ports,
they are associated with them. Support these encoders.

Signed-off-by: Sean Paul 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191203173638.94919-9-s...@poorly.run
 #v1
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191212190230.188505-10-s...@poorly.run
 #v2
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200117193103.156821-10-s...@poorly.run
 #v3
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-10-s...@poorly.run
 #v4

Changes in v2:
-None
Changes in v3:
-None
Changes in v4:
-None
Changes in v5:
-None
---
 .../drm/i915/display/intel_display_types.h| 21 ---
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
b/drivers/gpu/drm/i915/display/intel_display_types.h
index 04161993e2038..3cac51955f250 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1502,6 +1502,18 @@ static inline bool intel_encoder_is_dig_port(struct 
intel_encoder *encoder)
}
 }
 
+static inline bool intel_encoder_is_mst(struct intel_encoder *encoder)
+{
+   return encoder->type == INTEL_OUTPUT_DP_MST;
+}
+
+static inline struct intel_dp_mst_encoder *
+enc_to_mst(struct intel_encoder *encoder)
+{
+   return container_of(>base, struct intel_dp_mst_encoder,
+   base.base);
+}
+
 static inline struct intel_digital_port *
 enc_to_dig_port(struct intel_encoder *encoder)
 {
@@ -1510,6 +1522,8 @@ enc_to_dig_port(struct intel_encoder *encoder)
if (intel_encoder_is_dig_port(intel_encoder))
return container_of(>base, struct intel_digital_port,
base.base);
+   else if (intel_encoder_is_mst(intel_encoder))
+   return enc_to_mst(encoder)->primary;
else
return NULL;
 }
@@ -1520,13 +1534,6 @@ intel_attached_dig_port(struct intel_connector 
*connector)
return enc_to_dig_port(intel_attached_encoder(connector));
 }
 
-static inline struct intel_dp_mst_encoder *
-enc_to_mst(struct intel_encoder *encoder)
-{
-   return container_of(>base, struct intel_dp_mst_encoder,
-   base.base);
-}
-
 static inline struct intel_dp *enc_to_intel_dp(struct intel_encoder *encoder)
 {
return _to_dig_port(encoder)->dp;
-- 
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 v5 02/16] drm/i915: Clear the repeater bit on HDCP disable

2020-03-05 Thread Sean Paul
From: Sean Paul 

On HDCP disable, clear the repeater bit. This ensures if we connect a
non-repeater sink after a repeater, the bit is in the state we expect.

Fixes: ee5e5e7a5e0f (drm/i915: Add HDCP framework + base implementation)
Cc: Chris Wilson 
Cc: Ramalingam C 
Cc: Daniel Vetter 
Cc: Sean Paul 
Cc: Jani Nikula 
Cc: Joonas Lahtinen 
Cc: Rodrigo Vivi 
Cc: intel-gfx@lists.freedesktop.org
Cc:  # v4.17+
Reviewed-by: Ramalingam C 
Signed-off-by: Sean Paul 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191212190230.188505-3-s...@poorly.run
 #v2
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200117193103.156821-3-s...@poorly.run
 #v3
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-3-s...@poorly.run
 #v4

Changes in v2:
-Added to the set
Changes in v3:
-None
  I had previously agreed that clearing the rep_ctl bits on enable would
  also be a good idea. However when I committed that idea to code, it
  didn't look right. So let's rely on enables and disables being paired
  and everything outside of that will be considered a bug
Changes in v4:
-s/I915_(READ|WRITE)/intel_de_(read|write)/
Changes in v5:
-None
---
 drivers/gpu/drm/i915/display/intel_hdcp.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c 
b/drivers/gpu/drm/i915/display/intel_hdcp.c
index defa8654e7ac5..553f5ff617a15 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -797,6 +797,7 @@ static int _intel_hdcp_disable(struct intel_connector 
*connector)
struct intel_hdcp *hdcp = >hdcp;
enum port port = intel_dig_port->base.port;
enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
+   u32 repeater_ctl;
int ret;
 
drm_dbg_kms(_priv->drm, "[%s:%d] HDCP is being disabled...\n",
@@ -812,6 +813,11 @@ static int _intel_hdcp_disable(struct intel_connector 
*connector)
return -ETIMEDOUT;
}
 
+   repeater_ctl = intel_hdcp_get_repeater_ctl(dev_priv, cpu_transcoder,
+  port);
+   intel_de_write(dev_priv, HDCP_REP_CTL,
+  intel_de_read(dev_priv, HDCP_REP_CTL) & ~repeater_ctl);
+
ret = hdcp->shim->toggle_signalling(intel_dig_port, false);
if (ret) {
drm_err(_priv->drm, "Failed to disable HDCP signalling\n");
-- 
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 v5 01/16] drm/i915: Fix sha_text population code

2020-03-05 Thread Sean Paul
From: Sean Paul 

This patch fixes a few bugs:

1- We weren't taking into account sha_leftovers when adding multiple
   ksvs to sha_text. As such, we were or'ing the end of ksv[j - 1] with
   the beginning of ksv[j]

2- In the sha_leftovers == 2 and sha_leftovers == 3 case, bstatus was
   being placed on the wrong half of sha_text, overlapping the leftover
   ksv value

3- In the sha_leftovers == 2 case, we need to manually terminate the
   byte stream with 0x80 since the hardware doesn't have enough room to
   add it after writing M0

The upside is that all of the HDCP supported HDMI repeaters I could
find on Amazon just strip HDCP anyways, so it turns out to be _really_
hard to hit any of these cases without an MST hub, which is not (yet)
supported. Oh, and the sha_leftovers == 1 case works perfectly!

Fixes: ee5e5e7a5e0f (drm/i915: Add HDCP framework + base implementation)
Cc: Chris Wilson 
Cc: Ramalingam C 
Cc: Daniel Vetter 
Cc: Sean Paul 
Cc: Jani Nikula 
Cc: Joonas Lahtinen 
Cc: Rodrigo Vivi 
Cc: intel-gfx@lists.freedesktop.org
Cc:  # v4.17+
Reviewed-by: Ramalingam C 
Signed-off-by: Sean Paul 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191203173638.94919-2-s...@poorly.run
 #v1
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191212190230.188505-2-s...@poorly.run
 #v2
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200117193103.156821-2-s...@poorly.run
 #v3
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-2-s...@poorly.run
 #v4

Changes in v2:
-None
Changes in v3:
-None
Changes in v4:
-Rebased on intel_de_write changes
Changes in v5:
-None
---
 drivers/gpu/drm/i915/display/intel_hdcp.c | 26 +--
 include/drm/drm_hdcp.h|  3 +++
 2 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c 
b/drivers/gpu/drm/i915/display/intel_hdcp.c
index ee0f27ea2810d..defa8654e7ac5 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -338,8 +338,10 @@ int intel_hdcp_validate_v_prime(struct intel_connector 
*connector,
 
/* Fill up the empty slots in sha_text and write it out */
sha_empty = sizeof(sha_text) - sha_leftovers;
-   for (j = 0; j < sha_empty; j++)
-   sha_text |= ksv[j] << ((sizeof(sha_text) - j - 1) * 8);
+   for (j = 0; j < sha_empty; j++) {
+   u8 off = ((sizeof(sha_text) - j - 1 - sha_leftovers) * 
8);
+   sha_text |= ksv[j] << off;
+   }
 
ret = intel_write_sha_text(dev_priv, sha_text);
if (ret < 0)
@@ -437,7 +439,7 @@ int intel_hdcp_validate_v_prime(struct intel_connector 
*connector,
/* Write 32 bits of text */
intel_de_write(dev_priv, HDCP_REP_CTL,
   rep_ctl | HDCP_SHA1_TEXT_32);
-   sha_text |= bstatus[0] << 24 | bstatus[1] << 16;
+   sha_text |= bstatus[0] << 8 | bstatus[1];
ret = intel_write_sha_text(dev_priv, sha_text);
if (ret < 0)
return ret;
@@ -452,17 +454,29 @@ int intel_hdcp_validate_v_prime(struct intel_connector 
*connector,
return ret;
sha_idx += sizeof(sha_text);
}
+
+   /*
+* Terminate the SHA-1 stream by hand. For the other leftover
+* cases this is appended by the hardware.
+*/
+   intel_de_write(dev_priv, HDCP_REP_CTL,
+  rep_ctl | HDCP_SHA1_TEXT_32);
+   sha_text = DRM_HDCP_SHA1_TERMINATOR << 24;
+   ret = intel_write_sha_text(dev_priv, sha_text);
+   if (ret < 0)
+   return ret;
+   sha_idx += sizeof(sha_text);
} else if (sha_leftovers == 3) {
-   /* Write 32 bits of text */
+   /* Write 32 bits of text (filled from LSB) */
intel_de_write(dev_priv, HDCP_REP_CTL,
   rep_ctl | HDCP_SHA1_TEXT_32);
-   sha_text |= bstatus[0] << 24;
+   sha_text |= bstatus[0];
ret = intel_write_sha_text(dev_priv, sha_text);
if (ret < 0)
return ret;
sha_idx += sizeof(sha_text);
 
-   /* Write 8 bits of text, 24 bits of M0 */
+   /* Write 8 bits of text (filled from LSB), 24 bits of M0 */
intel_de_write(dev_priv, HDCP_REP_CTL,
   rep_ctl | HDCP_SHA1_TEXT_8);
ret = intel_write_sha_text(dev_priv, bstatus[1]);
diff --git a/include/drm/drm_hdcp.h b/include/drm/drm_hdcp.h
index c6bab4986a658..fe58dbb46962a 100644
--- a/include/drm/drm_hdcp.h
+++ b/include/drm/drm_hdcp.h
@@ -29,6 +29,9 @@
 /* Slave address for the HDCP registers in the 

[Intel-gfx] [PATCH v5 04/16] drm/i915: Intercept Aksv writes in the aux hooks

2020-03-05 Thread Sean Paul
From: Sean Paul 

Instead of hand rolling the transfer ourselves in the hdcp hook, inspect
aux messages and add the aksv flag in the aux transfer hook.

IIRC, this was the original implementation and folks wanted this hack to
be isolated to the hdcp code, which makes sense.

However in testing an LG monitor on my desk, I noticed it was passing
back a DEFER reply. This wasn't handled in our hand-rolled code and HDCP
auth was failing as a result. Instead of copy/pasting all of the retry
logic and delays from drm dp helpers, let's just use the helpers and hide
the aksv select as best as we can.

Reviewed-by: Ville Syrjälä 
Reviewed-by: Ramalingam C 
Signed-off-by: Sean Paul 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191203173638.94919-3-s...@poorly.run
 #v1
Link: 
https://patchwork.freedesktop.org/patch/msgid/20191212190230.188505-5-s...@poorly.run
 #v2
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200117193103.156821-5-s...@poorly.run
 #v3
Link: 
https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-5-s...@poorly.run
 #v4

Changes in v2:
-Remove 'generate' in intel_dp_aux_generate_xfer_flags, make arg const (Ville)
-Bundle Aksv if statement together (Ville)
-Rename 'txbuf' to 'aksv' (Ville)
Changes in v3:
-None
Changes in v4:
-None
Changes in v5:
-None
---
 drivers/gpu/drm/i915/display/intel_dp.c | 62 -
 1 file changed, 29 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 0a417cd2af2bc..1f80a1244abbb 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1534,12 +1534,27 @@ intel_dp_aux_header(u8 txbuf[HEADER_SIZE],
txbuf[3] = msg->size - 1;
 }
 
+static u32 intel_dp_aux_xfer_flags(const struct drm_dp_aux_msg *msg)
+{
+   /*
+* If we're trying to send the HDCP Aksv, we need to set a the Aksv
+* select bit to inform the hardware to send the Aksv after our header
+* since we can't access that data from software.
+*/
+   if ((msg->request & ~DP_AUX_I2C_MOT) == DP_AUX_NATIVE_WRITE &&
+   msg->address == DP_AUX_HDCP_AKSV)
+   return DP_AUX_CH_CTL_AUX_AKSV_SELECT;
+
+   return 0;
+}
+
 static ssize_t
 intel_dp_aux_transfer(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)
 {
struct intel_dp *intel_dp = container_of(aux, struct intel_dp, aux);
u8 txbuf[20], rxbuf[20];
size_t txsize, rxsize;
+   u32 flags = intel_dp_aux_xfer_flags(msg);
int ret;
 
intel_dp_aux_header(txbuf, msg);
@@ -1560,7 +1575,7 @@ intel_dp_aux_transfer(struct drm_dp_aux *aux, struct 
drm_dp_aux_msg *msg)
memcpy(txbuf + HEADER_SIZE, msg->buffer, msg->size);
 
ret = intel_dp_aux_xfer(intel_dp, txbuf, txsize,
-   rxbuf, rxsize, 0);
+   rxbuf, rxsize, flags);
if (ret > 0) {
msg->reply = rxbuf[0] >> 4;
 
@@ -1583,7 +1598,7 @@ intel_dp_aux_transfer(struct drm_dp_aux *aux, struct 
drm_dp_aux_msg *msg)
return -E2BIG;
 
ret = intel_dp_aux_xfer(intel_dp, txbuf, txsize,
-   rxbuf, rxsize, 0);
+   rxbuf, rxsize, flags);
if (ret > 0) {
msg->reply = rxbuf[0] >> 4;
/*
@@ -5959,17 +5974,9 @@ static
 int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
u8 *an)
 {
-   struct intel_dp *intel_dp = 
enc_to_intel_dp(to_intel_encoder(_dig_port->base.base));
-   static const struct drm_dp_aux_msg msg = {
-   .request = DP_AUX_NATIVE_WRITE,
-   .address = DP_AUX_HDCP_AKSV,
-   .size = DRM_HDCP_KSV_LEN,
-   };
-   u8 txbuf[HEADER_SIZE + DRM_HDCP_KSV_LEN] = {}, rxbuf[2], reply = 0;
+   u8 aksv[DRM_HDCP_KSV_LEN] = {};
ssize_t dpcd_ret;
-   int ret;
 
-   /* Output An first, that's easy */
dpcd_ret = drm_dp_dpcd_write(_dig_port->dp.aux, DP_AUX_HDCP_AN,
 an, DRM_HDCP_AN_LEN);
if (dpcd_ret != DRM_HDCP_AN_LEN) {
@@ -5979,29 +5986,18 @@ int intel_dp_hdcp_write_an_aksv(struct 
intel_digital_port *intel_dig_port,
}
 
/*
-* Since Aksv is Oh-So-Secret, we can't access it in software. So in
-* order to get it on the wire, we need to create the AUX header as if
-* we were writing the data, and then tickle the hardware to output the
-* data once the header is sent out.
+* Since Aksv is Oh-So-Secret, we can't access it in software. So we
+* send an empty buffer of the correct length through the DP helpers. On
+* the other side, in the transfer hook, we'll generate a flag based on
+* the destination address 

[Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/dp: Add dpcd link_rate quirk for Apple 15" MBP 2017 (rev2)

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/dp: Add dpcd link_rate quirk for Apple 15" MBP 2017 (rev2)
URL   : https://patchwork.freedesktop.org/series/74100/
State : failure

== Summary ==

Applying: drm/i915/dp: Add dpcd link_rate quirk for Apple 15" MBP 2017 (v2)
Using index info to reconstruct a base tree...
M   drivers/gpu/drm/drm_dp_helper.c
M   drivers/gpu/drm/i915/display/intel_dp.c
M   include/drm/drm_dp_helper.h
Falling back to patching base and 3-way merge...
Auto-merging include/drm/drm_dp_helper.h
CONFLICT (content): Merge conflict in include/drm/drm_dp_helper.h
Auto-merging drivers/gpu/drm/i915/display/intel_dp.c
Auto-merging drivers/gpu/drm/drm_dp_helper.c
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/dp: Add dpcd link_rate quirk for Apple 15" MBP 
2017 (v2)
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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915/execlists: Enable timeslice on partial virtual engine dequeue

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/execlists: Enable timeslice on partial virtual engine dequeue
URL   : https://patchwork.freedesktop.org/series/74304/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

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


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable to dev

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable 
to dev
URL   : https://patchwork.freedesktop.org/series/74299/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8070 -> Patchwork_16832


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-tgl-y:   [PASS][1] -> [FAIL][2] ([CI#94])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16832/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@kms_addfb_basic@addfb25-bad-modifier:
- fi-tgl-y:   [PASS][3] -> [DMESG-WARN][4] ([CI#94] / [i915#402]) 
+1 similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@kms_addfb_ba...@addfb25-bad-modifier.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16832/fi-tgl-y/igt@kms_addfb_ba...@addfb25-bad-modifier.html

  
 Possible fixes 

  * igt@kms_addfb_basic@addfb25-modifier-no-flag:
- fi-tgl-y:   [DMESG-WARN][5] ([CI#94] / [i915#402]) -> [PASS][6] 
+1 similar issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16832/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (49 -> 40)
--

  Additional (1): fi-kbl-soraka 
  Missing(10): fi-ilk-m540 fi-hsw-4200u fi-skl-6770hq fi-bsw-cyan 
fi-snb-2520m fi-ctg-p8600 fi-blb-e6850 fi-kbl-r fi-bdw-samus fi-snb-2600 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8070 -> Patchwork_16832

  CI-20190529: 20190529
  CI_DRM_8070: d4e6f8b48e361f0cae9132f50f1778707b2546a2 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5495: 22df72de8affcec22d9f354bb6148d77f60cc580 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16832: 54d76ab89c1c5512cdcb4a1dcc37dcd5d0e62f99 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

54d76ab89c1c drm/i915: Add support for integrated privacy screens
0dfdbf299bc6 drm/i915: Lookup and attach ACPI device node for connectors
e83f0d80506c intel_acpi: Rename drm_dev local variable to dev

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.DOCS: warning for series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable to dev

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable 
to dev
URL   : https://patchwork.freedesktop.org/series/74299/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

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


[Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [1/1] Revert "drm/i915/tgl: Add extra hdc flush workaround"

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [1/1] Revert "drm/i915/tgl: Add extra hdc flush 
workaround"
URL   : https://patchwork.freedesktop.org/series/74277/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_8066_full -> Patchwork_16823_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@gem_ctx_persistence@legacy-engines-mixed-process@bsd1:
- shard-skl:  [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-skl7/igt@gem_ctx_persistence@legacy-engines-mixed-proc...@bsd1.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16823/shard-skl6/igt@gem_ctx_persistence@legacy-engines-mixed-proc...@bsd1.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_busy@busy-vcs1:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#112080]) +11 similar 
issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb2/igt@gem_b...@busy-vcs1.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16823/shard-iclb8/igt@gem_b...@busy-vcs1.html

  * igt@gem_ctx_persistence@legacy-engines-mixed-process@bsd:
- shard-skl:  [PASS][5] -> [FAIL][6] ([i915#679])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-skl7/igt@gem_ctx_persistence@legacy-engines-mixed-proc...@bsd.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16823/shard-skl6/igt@gem_ctx_persistence@legacy-engines-mixed-proc...@bsd.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_8066/shard-iclb2/igt@gem_exec_balan...@smoke.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16823/shard-iclb6/igt@gem_exec_balan...@smoke.html

  * igt@gem_exec_schedule@implicit-read-write-bsd:
- shard-iclb: [PASS][9] -> [SKIP][10] ([i915#677])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb8/igt@gem_exec_sched...@implicit-read-write-bsd.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16823/shard-iclb4/igt@gem_exec_sched...@implicit-read-write-bsd.html

  * igt@gem_exec_schedule@implicit-write-read-bsd1:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#109276] / [i915#677]) 
+1 similar issue
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb2/igt@gem_exec_sched...@implicit-write-read-bsd1.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16823/shard-iclb8/igt@gem_exec_sched...@implicit-write-read-bsd1.html

  * igt@gem_exec_schedule@promotion-bsd1:
- shard-iclb: [PASS][13] -> [SKIP][14] ([fdo#109276]) +16 similar 
issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb2/igt@gem_exec_sched...@promotion-bsd1.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16823/shard-iclb6/igt@gem_exec_sched...@promotion-bsd1.html

  * igt@gem_exec_schedule@wide-bsd:
- shard-iclb: [PASS][15] -> [SKIP][16] ([fdo#112146]) +6 similar 
issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb7/igt@gem_exec_sched...@wide-bsd.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16823/shard-iclb2/igt@gem_exec_sched...@wide-bsd.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-kbl:  [PASS][17] -> [FAIL][18] ([i915#644])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-kbl3/igt@gem_pp...@flink-and-close-vma-leak.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16823/shard-kbl2/igt@gem_pp...@flink-and-close-vma-leak.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
- shard-apl:  [PASS][19] -> [DMESG-WARN][20] ([i915#180]) +2 
similar issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-apl3/igt@i915_susp...@fence-restore-tiled2untiled.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16823/shard-apl6/igt@i915_susp...@fence-restore-tiled2untiled.html

  * igt@kms_cursor_crc@pipe-c-cursor-256x85-offscreen:
- shard-skl:  [PASS][21] -> [FAIL][22] ([i915#54])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-skl6/igt@kms_cursor_...@pipe-c-cursor-256x85-offscreen.html
   [22]: 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable to dev

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable 
to dev
URL   : https://patchwork.freedesktop.org/series/74299/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
e83f0d80506c intel_acpi: Rename drm_dev local variable to dev
0dfdbf299bc6 drm/i915: Lookup and attach ACPI device node for connectors
-:56: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#56: FILE: drivers/gpu/drm/i915/display/intel_acpi.c:265:
+   conn_dev = acpi_find_child_device(

total: 0 errors, 0 warnings, 1 checks, 70 lines checked
54d76ab89c1c drm/i915: Add support for integrated privacy screens
-:205: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#205: 
new file mode 100644

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

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


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable to dev

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable 
to dev
URL   : https://patchwork.freedesktop.org/series/74298/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8070 -> Patchwork_16831


Summary
---

  **SUCCESS**

  No regressions found.

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

Possible new issues
---

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

### IGT changes ###

 Suppressed 

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

  * igt@i915_selftest@live@gt_heartbeat:
- {fi-tgl-dsi}:   [PASS][1] -> [DMESG-FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-dsi/igt@i915_selftest@live@gt_heartbeat.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16831/fi-tgl-dsi/igt@i915_selftest@live@gt_heartbeat.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-tgl-y:   [PASS][3] -> [FAIL][4] ([CI#94])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16831/fi-tgl-y/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@i915_module_load@reload:
- fi-skl-6770hq:  [PASS][5] -> [DMESG-WARN][6] ([i915#92]) +1 similar 
issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-skl-6770hq/igt@i915_module_l...@reload.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16831/fi-skl-6770hq/igt@i915_module_l...@reload.html

  * igt@i915_pm_rpm@basic-rte:
- fi-hsw-4770:[PASS][7] -> [SKIP][8] ([fdo#109271]) +1 similar issue
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-hsw-4770/igt@i915_pm_...@basic-rte.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16831/fi-hsw-4770/igt@i915_pm_...@basic-rte.html

  * igt@i915_selftest@live@gem_contexts:
- fi-skl-lmem:[PASS][9] -> [INCOMPLETE][10] ([i915#424])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-skl-lmem/igt@i915_selftest@live@gem_contexts.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16831/fi-skl-lmem/igt@i915_selftest@live@gem_contexts.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-icl-u2:  [PASS][11] -> [FAIL][12] ([i915#217])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-icl-u2/igt@kms_chamel...@hdmi-hpd-fast.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16831/fi-icl-u2/igt@kms_chamel...@hdmi-hpd-fast.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence:
- fi-skl-6770hq:  [PASS][13] -> [SKIP][14] ([fdo#109271]) +5 similar 
issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-skl-6770hq/igt@kms_pipe_crc_ba...@read-crc-pipe-a-frame-sequence.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16831/fi-skl-6770hq/igt@kms_pipe_crc_ba...@read-crc-pipe-a-frame-sequence.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-b:
- fi-skl-6770hq:  [PASS][15] -> [DMESG-WARN][16] ([i915#106])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-skl-6770hq/igt@kms_pipe_crc_ba...@read-crc-pipe-b.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16831/fi-skl-6770hq/igt@kms_pipe_crc_ba...@read-crc-pipe-b.html

  * igt@prime_self_import@basic-with_one_bo_two_files:
- fi-tgl-y:   [PASS][17] -> [DMESG-WARN][18] ([CI#94] / [i915#402]) 
+1 similar issue
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@prime_self_import@basic-with_one_bo_two_files.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16831/fi-tgl-y/igt@prime_self_import@basic-with_one_bo_two_files.html

  
 Possible fixes 

  * igt@kms_addfb_basic@addfb25-modifier-no-flag:
- fi-tgl-y:   [DMESG-WARN][19] ([CI#94] / [i915#402]) -> [PASS][20] 
+1 similar issue
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16831/fi-tgl-y/igt@kms_addfb_ba...@addfb25-modifier-no-flag.html

  
 Warnings 

  * igt@runner@aborted:
- fi-kbl-8809g:   [FAIL][21] ([i915#1209]) -> [FAIL][22] ([i915#192] / 
[i915#193] / [i915#194])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8070/fi-kbl-8809g/igt@run...@aborted.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16831/fi-kbl-8809g/igt@run...@aborted.html

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

[Intel-gfx] ✗ Fi.CI.DOCS: warning for series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable to dev

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable 
to dev
URL   : https://patchwork.freedesktop.org/series/74298/
State : warning

== Summary ==

$ make htmldocs 2>&1 > /dev/null | grep i915
./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function 
parameter or member 'get_freq' not described in 'intel_shared_dpll_funcs'

___
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 [v6,1/3] intel_acpi: Rename drm_dev local variable to dev

2020-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable 
to dev
URL   : https://patchwork.freedesktop.org/series/74298/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
c20368a27477 intel_acpi: Rename drm_dev local variable to dev
f4a4471b5c37 drm/i915: Lookup and attach ACPI device node for connectors
-:56: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#56: FILE: drivers/gpu/drm/i915/display/intel_acpi.c:265:
+   conn_dev = acpi_find_child_device(

total: 0 errors, 0 warnings, 1 checks, 70 lines checked
f9f7e4554cff drm/i915: Add support for integrated privacy screens
-:205: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#205: 
new file mode 100644

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

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


[Intel-gfx] [PATCH] drm/i915/tgl: Make wa_1606700617 permanent

2020-03-05 Thread Swathi Dhanavanthri
This workaround is to disable FF DOP Clock gating. The fix
in B0 was backed out due to timing reasons and decided to
be made permanent.
Bspec: 52890

Signed-off-by: Swathi Dhanavanthri 
---
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c 
b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index cb7d85c42f13..a9d1975b5245 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -1337,11 +1337,6 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, 
struct i915_wa_list *wal)
struct drm_i915_private *i915 = engine->i915;
 
if (IS_TGL_REVID(i915, TGL_REVID_A0, TGL_REVID_A0)) {
-   /* Wa_1606700617:tgl */
-   wa_masked_en(wal,
-GEN9_CS_DEBUG_MODE1,
-FF_DOP_CLOCK_GATE_DISABLE);
-
/*
 * Wa_1607138336:tgl
 * Wa_1607063988:tgl
@@ -1393,6 +1388,11 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, 
struct i915_wa_list *wal)
/* Wa_1409804808:tgl */
wa_masked_en(wal, GEN7_ROW_CHICKEN2,
 GEN12_PUSH_CONST_DEREF_HOLD_DIS);
+
+   /* Wa_1606700617:tgl */
+   wa_masked_en(wal,
+GEN9_CS_DEBUG_MODE1,
+FF_DOP_CLOCK_GATE_DISABLE);
}
 
if (IS_GEN(i915, 11)) {
-- 
2.20.1

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


Re: [Intel-gfx] [PATCH 5/6] drm/i915/uc: Move uC debugfs to its own folder under GT

2020-03-05 Thread Andi Shyti
Hi Daniele,

> > On Thu, Feb 27, 2020 at 06:28:42PM -0800, Daniele Ceraolo Spurio wrote:
> > > uC is a component of the GT, so it makes sense for the uC debugfs files
> > > to be in the GT folder. A subfolder has been used to keep the same
> > > structure we have for the code.
> > 
> > Can we please document the interface changes. I see there are
> > some differences between the original and the new interfaces.
> > 
> 
> What differences are you referring to? there aren't supposed to be any,
> aside from the path change.

Have I seen it wrong or there are new files in this patch?
In any case, maybe we need to have the new structure.

> > > +#define DEFINE_UC_DEBUGFS_ATTRIBUTE(__name)  
> > > \
> > > + static int __name ## _open(struct inode *inode, struct file *file) \
> > > +{
> > > \
> > > + return single_open(file, __name ## _show, inode->i_private);\
> > > +}
> > > \
> > > +static const struct file_operations __name ## _fops = {  
> > > \
> > > + .owner = THIS_MODULE,   \
> > > + .open = __name ## _open,\
> > > + .read = seq_read,   \
> > > + .llseek = seq_lseek,\
> > > + .release = single_release,  \
> > > +}
> > 
> > Why do we need DEFINE_UC_DEBUGFS_ATTRIBUTE()?
> > 
> > DEFINE_GT_DEBUGFS_ATTRIBUTE() was meant to be common to all gt
> > debugfs. I there any reason we need a new one?
> > 
> 
> Just wanted to avoid including the other header just for this macro.

well that was supposed to be a library for all the gem/debugfs
files and avoid duplicated code, I don't see anything wrong with
including the file.

> > > +struct debugfs_uc_file {
> > > + const char *name;
> > > + const struct file_operations *fops;
> > > +};
> > > +
> > > +#define debugfs_uc_register_files(files__, root__, data__) \
> > > +do { \
> > > + int i__ = 0; \
> > > + for (i__ = 0; i__ < ARRAY_SIZE(files__); i__++) { \
> > > + debugfs_create_file(files__[i__].name, \
> > > + 0444, root__, data__, \
> > > + files__[i__].fops); \
> > > + } \
> > > +} while (0)
> > 
> > You want to define your own debugfs_uc_register_files() instead
> > of using debugfs_gt_register_files() because you want "data__"
> > to be void, right?
> > 
> > I think we can achieve that by adding a wrapper in debugfs_gt.c,
> > perhaps we can do something like:
> > 
> > void __debugfs_gt_register_files(struct intel_gt *gt,
> >   struct dentry *root,
> >   const struct debugfs_gt_file *files,
> >   void *data,
> >   unsigned long count)
> > {
> >..
> > }
> > 
> > and
> > 
> > #define debugfs_gt_register_files(...) __debugfs_gt_register_files(...)
> > #define debugfs_uc_register_files(...) __debugfs_gt_register_files(...)
> > 
> > so that we can keep everything in a library. What do you think.
> > 
> 
> LGTM. Mind if I rename to:
> 
> intel_gt_debugfs_register(...)
> intel_uc_debugfs_register(...)
> 
> to avoid the debugfs_* prefix, as pointed out by Jani?

I have a patch for it, can you please hold a little, unless, of
course, yours is already ready.

Obvously, the naming you propose makes sense.

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


Re: [Intel-gfx] ✗ Fi.CI.IGT: failure for Adding YUV444 packed format support for skl+ (rev4)

2020-03-05 Thread Bob Paauwe
On Sat, 29 Feb 2020 09:11:20 +
Patchwork  wrote:

> == Series Details ==
> 
> Series: Adding YUV444 packed format support for skl+ (rev4)
> URL   : https://patchwork.freedesktop.org/series/73020/
> State : failure

I'm a bit confused by this.  The build changes listed at the bottom
indicate that this did use a modified IGT tree with the test patch (per
the cover-letter test-with tag) but the errors below look exactly like
what I'd expect if testing with a non-modified IGT tree.  In fact the
line number where the error occurs matches with an non-modified tree
and not the modified tree.

Did I do something wrong with the cover letter?

Do I just re-run?

Should I resubmit the series?

Bob

> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_8023_full -> Patchwork_16744_full
> 
> 
> Summary
> ---
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with Patchwork_16744_full absolutely
> need to be verified manually.
>   
>   If you think the reported changes have nothing to do with the
> changes introduced in Patchwork_16744_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_16744_full:
> 
> ### IGT changes ###
> 
>  Possible regressions 
> 
>   * igt@kms_plane@pixel-format-pipe-a-planes:
> - shard-iclb: [PASS][1] -> [FAIL][2] +13 similar issues
>[1]:
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8023/shard-iclb1/igt@kms_pl...@pixel-format-pipe-a-planes.html
> [2]:
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16744/shard-iclb3/igt@kms_pl...@pixel-format-pipe-a-planes.html
> 
>   * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
> - shard-kbl:  NOTRUN -> [FAIL][3]
>[3]:
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16744/shard-kbl6/igt@kms_pl...@pixel-format-pipe-a-planes-source-clamping.html
> 
>   * igt@kms_plane@pixel-format-pipe-b-planes:
> - shard-skl:  [PASS][4] -> [FAIL][5] +12 similar issues
>[4]:
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8023/shard-skl3/igt@kms_pl...@pixel-format-pipe-b-planes.html
> [5]:
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16744/shard-skl1/igt@kms_pl...@pixel-format-pipe-b-planes.html
> - shard-kbl:  [PASS][6] -> [FAIL][7] +12 similar issues
>[6]:
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8023/shard-kbl4/igt@kms_pl...@pixel-format-pipe-b-planes.html
> [7]:
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16744/shard-kbl6/igt@kms_pl...@pixel-format-pipe-b-planes.html
> 
>   * igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
> - shard-tglb: [PASS][8] -> [FAIL][9] +19 similar issues
>[8]:
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8023/shard-tglb8/igt@kms_pl...@pixel-format-pipe-b-planes-source-clamping.html
> [9]:
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16744/shard-tglb3/igt@kms_pl...@pixel-format-pipe-b-planes-source-clamping.html
> 
>   * igt@kms_plane_scaling@pipe-a-scaler-with-clipping-clamping:
> - shard-glk:  [PASS][10] -> [FAIL][11] +13 similar issues
>[10]:
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8023/shard-glk9/igt@kms_plane_scal...@pipe-a-scaler-with-clipping-clamping.html
> [11]:
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16744/shard-glk5/igt@kms_plane_scal...@pipe-a-scaler-with-clipping-clamping.html
> 
>   * igt@kms_plane_scaling@pipe-b-scaler-with-pixel-format:
> - shard-apl:  [PASS][12] -> [FAIL][13] +13 similar issues
>[12]:
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8023/shard-apl3/igt@kms_plane_scal...@pipe-b-scaler-with-pixel-format.html
> [13]:
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16744/shard-apl1/igt@kms_plane_scal...@pipe-b-scaler-with-pixel-format.html
> 
>   * igt@kms_plane_scaling@pipe-c-scaler-with-clipping-clamping:
> - shard-iclb: NOTRUN -> [FAIL][14]
>[14]:
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16744/shard-iclb3/igt@kms_plane_scal...@pipe-c-scaler-with-clipping-clamping.html
> 
>   
> Known issues
> 
> 
>   Here are the changes found in Patchwork_16744_full that come from
> known issues:
> 
> ### IGT changes ###
> 
>  Issues hit 
> 
>   * igt@gem_exec_schedule@pi-common-bsd:
> - shard-iclb: [PASS][15] -> [SKIP][16] ([i915#677]) +2
> similar issues [15]:
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8023/shard-iclb5/igt@gem_exec_sched...@pi-common-bsd.html
> [16]:
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16744/shard-iclb4/igt@gem_exec_sched...@pi-common-bsd.html
> 
>   * igt@gem_exec_schedule@preempt-other-chain-bsd:
> - shard-iclb: [PASS][17] -> [SKIP][18] ([fdo#112146]) +6
> similar issues [17]:
> 

[Intel-gfx] [PATCH i-g-t] tests/gem_exec_gttfill: MMAP_OFFSET related refresh

2020-03-05 Thread Janusz Krzysztofik
The test already tried to use a working mapping by first trying legacy
WC, then GTT.  Use gem_mmap__device_coherent() helper instead of
approaching its implementation locally.

Signed-off-by: Janusz Krzysztofik 
---
 tests/i915/gem_exec_gttfill.c | 13 -
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/tests/i915/gem_exec_gttfill.c b/tests/i915/gem_exec_gttfill.c
index f810dafd1..27277df48 100644
--- a/tests/i915/gem_exec_gttfill.c
+++ b/tests/i915/gem_exec_gttfill.c
@@ -155,15 +155,10 @@ static void fillgtt(int fd, unsigned ring, int timeout)
igt_assert(batches);
for (unsigned i = 0; i < count; i++) {
batches[i].handle = gem_create(fd, BATCH_SIZE);
-   batches[i].ptr =
-   __gem_mmap__wc(fd, batches[i].handle,
-  0, BATCH_SIZE, PROT_WRITE);
-   if (!batches[i].ptr) {
-   batches[i].ptr =
-   __gem_mmap__gtt(fd, batches[i].handle,
-   BATCH_SIZE, PROT_WRITE);
-   }
-   igt_require(batches[i].ptr);
+   batches[i].ptr = gem_mmap__device_coherent(fd,
+  batches[i].handle, 0,
+  BATCH_SIZE,
+  PROT_WRITE);
}
 
/* Flush all memory before we start the timer */
-- 
2.21.1

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


[Intel-gfx] [PATCH] drm/i915: Fix crtc nv12 etc. plane bitmasks for DPMS off

2020-03-05 Thread Ville Syrjala
From: Ville Syrjälä 

We only consider crtc_state->enable when initially calculating plane
visibility. Later on we try to override the plane's state to invisible
if the crtc is in DPMS off state (crtc_state->active==false).
Unfortunately the code doing that only updates the plane_state.visible
flag and the crtc_state.active_planes bimask, but forgets to update
some of the other plane bitmasks stored in the crtc_state. Namely
crtc_state.nv12_planes is left set up based on the original visibility
check which makes icl_check_nv12_planes() pick a slave plane for the
flagged plane in the bitmask. Later on we hit the watermark code
which sees a plane with a slave assigned and it then makes the
logical assumption that the master plane must itself be visible.
Since the master's plane_state.visible flag was already cleared
we get a WARN.

Fix the problem by clearing all the plane bitmasks for DPMS off.
This is more or less the wrong approach and instead we should
calculate all the plane related state purely based crtc_state->enable
(to guarantee that the subsequent DPMS on can't fail). However in
the past we definitely had some roadblocks to making that happen.
Not sure how many are left these days, but let's stick to the current
approach since it's a much simpler fix to the immediate problem
(the WARN).

Signed-off-by: Ville Syrjälä 
---
 .../gpu/drm/i915/display/intel_atomic_plane.c | 21 +--
 .../gpu/drm/i915/display/intel_atomic_plane.h |  2 ++
 drivers/gpu/drm/i915/display/intel_display.c  |  8 ++-
 3 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c 
b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 457b258683d3..25dfeb3197aa 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -264,6 +264,20 @@ void intel_plane_copy_uapi_to_hw_state(struct 
intel_plane_state *plane_state,
plane_state->hw.color_range = from_plane_state->uapi.color_range;
 }
 
+void intel_plane_set_invisible(struct intel_crtc_state *crtc_state,
+  struct intel_plane_state *plane_state)
+{
+   struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
+
+   crtc_state->active_planes &= ~BIT(plane->id);
+   crtc_state->nv12_planes &= ~BIT(plane->id);
+   crtc_state->c8_planes &= ~BIT(plane->id);
+   crtc_state->data_rate[plane->id] = 0;
+   crtc_state->min_cdclk[plane->id] = 0;
+
+   plane_state->uapi.visible = false;
+}
+
 int intel_plane_atomic_check_with_state(const struct intel_crtc_state 
*old_crtc_state,
struct intel_crtc_state *new_crtc_state,
const struct intel_plane_state 
*old_plane_state,
@@ -273,12 +287,7 @@ int intel_plane_atomic_check_with_state(const struct 
intel_crtc_state *old_crtc_
const struct drm_framebuffer *fb = new_plane_state->hw.fb;
int ret;
 
-   new_crtc_state->active_planes &= ~BIT(plane->id);
-   new_crtc_state->nv12_planes &= ~BIT(plane->id);
-   new_crtc_state->c8_planes &= ~BIT(plane->id);
-   new_crtc_state->data_rate[plane->id] = 0;
-   new_crtc_state->min_cdclk[plane->id] = 0;
-   new_plane_state->uapi.visible = false;
+   intel_plane_set_invisible(new_crtc_state, new_plane_state);
 
if (!new_plane_state->hw.crtc && !old_plane_state->hw.crtc)
return 0;
diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.h 
b/drivers/gpu/drm/i915/display/intel_atomic_plane.h
index a6bbf42bae1f..59dd1fbb02ea 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.h
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.h
@@ -52,5 +52,7 @@ int intel_plane_atomic_calc_changes(const struct 
intel_crtc_state *old_crtc_stat
 int intel_plane_calc_min_cdclk(struct intel_atomic_state *state,
   struct intel_plane *plane,
   bool *need_cdclk_calc);
+void intel_plane_set_invisible(struct intel_crtc_state *crtc_state,
+  struct intel_plane_state *plane_state);
 
 #endif /* __INTEL_ATOMIC_PLANE_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 8f23c4d51c33..3ff9d9102cd2 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -12376,12 +12376,8 @@ int intel_plane_atomic_calc_changes(const struct 
intel_crtc_state *old_crtc_stat
 * per-plane wm computation to the .check_plane() hook, and
 * only combine the results from all planes in the current place?
 */
-   if (!is_crtc_enabled) {
-   plane_state->uapi.visible = visible = false;
-   crtc_state->active_planes &= ~BIT(plane->id);
-   crtc_state->data_rate[plane->id] = 0;
-   crtc_state->min_cdclk[plane->id] = 0;
-   }
+  

[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/gt: Cancel banned contexts after GT reset

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/gt: Cancel banned contexts after GT reset
URL   : https://patchwork.freedesktop.org/series/74276/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_8066_full -> Patchwork_16822_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@i915_pm_dc@dc5-dpms:
- shard-iclb: [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb1/igt@i915_pm...@dc5-dpms.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16822/shard-iclb3/igt@i915_pm...@dc5-dpms.html

  * igt@i915_selftest@live@gtt:
- shard-skl:  [PASS][3] -> [INCOMPLETE][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-skl1/igt@i915_selftest@l...@gtt.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16822/shard-skl1/igt@i915_selftest@l...@gtt.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@bcs0-s3:
- shard-apl:  [PASS][5] -> [DMESG-WARN][6] ([i915#180]) +2 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-apl6/igt@gem_ctx_isolat...@bcs0-s3.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16822/shard-apl4/igt@gem_ctx_isolat...@bcs0-s3.html

  * igt@gem_exec_schedule@implicit-read-write-bsd1:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#109276] / [i915#677])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb1/igt@gem_exec_sched...@implicit-read-write-bsd1.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16822/shard-iclb3/igt@gem_exec_sched...@implicit-read-write-bsd1.html

  * igt@gem_exec_schedule@pi-distinct-iova-bsd:
- shard-iclb: [PASS][9] -> [SKIP][10] ([i915#677]) +2 similar issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb8/igt@gem_exec_sched...@pi-distinct-iova-bsd.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16822/shard-iclb2/igt@gem_exec_sched...@pi-distinct-iova-bsd.html

  * igt@gem_exec_schedule@preempt-contexts-bsd2:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#109276]) +14 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb1/igt@gem_exec_sched...@preempt-contexts-bsd2.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16822/shard-iclb3/igt@gem_exec_sched...@preempt-contexts-bsd2.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
- shard-iclb: [PASS][13] -> [SKIP][14] ([fdo#112146]) +7 similar 
issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb6/igt@gem_exec_sched...@preemptive-hang-bsd.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16822/shard-iclb4/igt@gem_exec_sched...@preemptive-hang-bsd.html

  * igt@kms_addfb_basic@unused-modifier:
- shard-skl:  [PASS][15] -> [SKIP][16] ([fdo#109271]) +26 similar 
issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-skl1/igt@kms_addfb_ba...@unused-modifier.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16822/shard-skl1/igt@kms_addfb_ba...@unused-modifier.html

  * igt@kms_cursor_crc@pipe-b-cursor-alpha-transparent:
- shard-skl:  [PASS][17] -> [FAIL][18] ([i915#54]) +1 similar issue
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-skl10/igt@kms_cursor_...@pipe-b-cursor-alpha-transparent.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16822/shard-skl2/igt@kms_cursor_...@pipe-b-cursor-alpha-transparent.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
- shard-glk:  [PASS][19] -> [FAIL][20] ([i915#79])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-glk2/igt@kms_f...@2x-flip-vs-expired-vblank-interruptible.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16822/shard-glk1/igt@kms_f...@2x-flip-vs-expired-vblank-interruptible.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
- shard-skl:  [PASS][21] -> [INCOMPLETE][22] ([i915#69]) +1 similar 
issue
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-skl10/igt@kms_pl...@plane-panning-bottom-right-suspend-pipe-a-planes.html
   [22]: 

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

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/tgl: WaDisableGPGPUMidThreadPreemption
URL   : https://patchwork.freedesktop.org/series/74274/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8066_full -> Patchwork_16821_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

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

  * igt@gem_ctx_persistence@legacy-engines-mixed-process@vebox:
- shard-skl:  [PASS][3] -> [FAIL][4] ([i915#679])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-skl7/igt@gem_ctx_persistence@legacy-engines-mixed-proc...@vebox.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16821/shard-skl1/igt@gem_ctx_persistence@legacy-engines-mixed-proc...@vebox.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_8066/shard-iclb2/igt@gem_exec_balan...@smoke.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16821/shard-iclb3/igt@gem_exec_balan...@smoke.html

  * igt@gem_exec_schedule@implicit-write-read-bsd1:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#109276] / [i915#677]) +1 
similar issue
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb2/igt@gem_exec_sched...@implicit-write-read-bsd1.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16821/shard-iclb5/igt@gem_exec_sched...@implicit-write-read-bsd1.html

  * igt@gem_exec_schedule@pi-distinct-iova-bsd:
- shard-iclb: [PASS][9] -> [SKIP][10] ([i915#677]) +2 similar issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb8/igt@gem_exec_sched...@pi-distinct-iova-bsd.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16821/shard-iclb4/igt@gem_exec_sched...@pi-distinct-iova-bsd.html

  * igt@gem_exec_schedule@promotion-bsd1:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#109276]) +17 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb2/igt@gem_exec_sched...@promotion-bsd1.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16821/shard-iclb3/igt@gem_exec_sched...@promotion-bsd1.html

  * igt@gem_exec_schedule@wide-bsd:
- shard-iclb: [PASS][13] -> [SKIP][14] ([fdo#112146]) +7 similar 
issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb7/igt@gem_exec_sched...@wide-bsd.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16821/shard-iclb1/igt@gem_exec_sched...@wide-bsd.html

  * igt@i915_suspend@sysfs-reader:
- shard-apl:  [PASS][15] -> [DMESG-WARN][16] ([i915#180]) +6 
similar issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-apl3/igt@i915_susp...@sysfs-reader.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16821/shard-apl8/igt@i915_susp...@sysfs-reader.html

  * igt@kms_cursor_crc@pipe-c-cursor-256x85-offscreen:
- shard-skl:  [PASS][17] -> [FAIL][18] ([i915#54])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-skl6/igt@kms_cursor_...@pipe-c-cursor-256x85-offscreen.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16821/shard-skl5/igt@kms_cursor_...@pipe-c-cursor-256x85-offscreen.html

  * igt@kms_flip@dpms-off-confusion:
- shard-kbl:  [PASS][19] -> [INCOMPLETE][20] ([fdo#103665])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-kbl4/igt@kms_f...@dpms-off-confusion.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16821/shard-kbl6/igt@kms_f...@dpms-off-confusion.html

  * igt@kms_flip@flip-vs-suspend:
- shard-skl:  [PASS][21] -> [INCOMPLETE][22] ([i915#221])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-skl10/igt@kms_f...@flip-vs-suspend.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16821/shard-skl10/igt@kms_f...@flip-vs-suspend.html

  * igt@kms_flip_tiling@flip-to-x-tiled:
- shard-skl:  [PASS][23] -> [FAIL][24] ([i915#167])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-skl6/igt@kms_flip_til...@flip-to-x-tiled.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16821/shard-skl5/igt@kms_flip_til...@flip-to-x-tiled.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
- shard-skl:  [PASS][25] -> [INCOMPLETE][26] ([i915#69]) +1 similar 
issue
   [25]: 

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/edp: Ignore short pulse when panel powered off

2020-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/edp: Ignore short pulse when panel powered off
URL   : https://patchwork.freedesktop.org/series/74265/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8066_full -> Patchwork_16817_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

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

  * igt@gem_exec_async@concurrent-writes-bsd:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#112146]) +2 similar 
issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb3/igt@gem_exec_as...@concurrent-writes-bsd.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16817/shard-iclb1/igt@gem_exec_as...@concurrent-writes-bsd.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_8066/shard-iclb2/igt@gem_exec_balan...@smoke.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16817/shard-iclb3/igt@gem_exec_balan...@smoke.html

  * igt@gem_exec_schedule@implicit-read-write-bsd:
- shard-iclb: [PASS][7] -> [SKIP][8] ([i915#677])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb8/igt@gem_exec_sched...@implicit-read-write-bsd.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16817/shard-iclb4/igt@gem_exec_sched...@implicit-read-write-bsd.html

  * igt@gem_exec_schedule@implicit-write-read-bsd1:
- shard-iclb: [PASS][9] -> [SKIP][10] ([fdo#109276] / [i915#677]) 
+1 similar issue
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb2/igt@gem_exec_sched...@implicit-write-read-bsd1.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16817/shard-iclb6/igt@gem_exec_sched...@implicit-write-read-bsd1.html

  * igt@gem_exec_schedule@promotion-bsd1:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#109276]) +6 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-iclb2/igt@gem_exec_sched...@promotion-bsd1.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16817/shard-iclb3/igt@gem_exec_sched...@promotion-bsd1.html

  * igt@gem_workarounds@suspend-resume:
- shard-apl:  [PASS][13] -> [DMESG-WARN][14] ([i915#180])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-apl4/igt@gem_workarou...@suspend-resume.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16817/shard-apl4/igt@gem_workarou...@suspend-resume.html

  * igt@i915_pm_rpm@system-suspend-modeset:
- shard-skl:  [PASS][15] -> [INCOMPLETE][16] ([i915#151] / 
[i915#69])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-skl5/igt@i915_pm_...@system-suspend-modeset.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16817/shard-skl5/igt@i915_pm_...@system-suspend-modeset.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
- shard-kbl:  [PASS][17] -> [DMESG-WARN][18] ([i915#180]) +1 
similar issue
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-kbl4/igt@kms_cursor_...@pipe-a-cursor-suspend.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16817/shard-kbl1/igt@kms_cursor_...@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-c-cursor-256x85-offscreen:
- shard-skl:  [PASS][19] -> [FAIL][20] ([i915#54])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-skl6/igt@kms_cursor_...@pipe-c-cursor-256x85-offscreen.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16817/shard-skl5/igt@kms_cursor_...@pipe-c-cursor-256x85-offscreen.html

  * igt@kms_flip@dpms-off-confusion:
- shard-kbl:  [PASS][21] -> [INCOMPLETE][22] ([fdo#103665])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-kbl4/igt@kms_f...@dpms-off-confusion.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16817/shard-kbl1/igt@kms_f...@dpms-off-confusion.html
- shard-apl:  [PASS][23] -> [INCOMPLETE][24] ([fdo#103927])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8066/shard-apl2/igt@kms_f...@dpms-off-confusion.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16817/shard-apl2/igt@kms_f...@dpms-off-confusion.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-glk:  [PASS][25] -> [FAIL][26] ([i915#79])
   [25]: 

Re: [Intel-gfx] [PATCH] drm/i915/gem: Limit struct_mutex to eb_reserve

2020-03-05 Thread Mika Kuoppala
Chris Wilson  writes:

> We only need to serialise the multiple pinning during the eb_reserve
> phase. Ideally this would be using the vm->mutex as an outer lock, or
> using a composite global mutex (ww_mutex), but at the moment we are
> using struct_mutex for the group.
>
> Fixes: 003d8b9143a6 ("drm/i915/gem: Only call eb_lookup_vma once during 
> execbuf ioctl")
> Signed-off-by: Chris Wilson 
> Cc: Mika Kuoppala 
> ---
>  .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 51 ---
>  drivers/gpu/drm/i915/i915_drv.h   |  6 ---
>  2 files changed, 20 insertions(+), 37 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c 
> b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
> index 7bb27f382af7..faa5b5c99a9a 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
> @@ -610,7 +610,7 @@ static int eb_reserve(struct i915_execbuffer *eb)
>   struct list_head last;
>   struct eb_vma *ev;
>   unsigned int i, pass;
> - int err;
> + int err = 0;
>  
>   /*
>* Attempt to pin all of the buffers into the GTT.
> @@ -626,8 +626,10 @@ static int eb_reserve(struct i915_execbuffer *eb)
>* room for the earlier objects *unless* we need to defragment.
>*/
>  
> + if (mutex_lock_interruptible(>i915->drm.struct_mutex))
> + return -EINTR;
> +
>   pass = 0;
> - err = 0;
>   do {
>   list_for_each_entry(ev, >unbound, bind_link) {
>   err = eb_reserve_vma(eb, ev, pin_flags);
> @@ -635,7 +637,7 @@ static int eb_reserve(struct i915_execbuffer *eb)
>   break;
>   }
>   if (!(err == -ENOSPC || err == -EAGAIN))
> - return err;
> + break;
>  
>   /* Resort *all* the objects into priority order */
>   INIT_LIST_HEAD(>unbound);
> @@ -666,7 +668,9 @@ static int eb_reserve(struct i915_execbuffer *eb)
>   list_splice_tail(, >unbound);
>  
>   if (err == -EAGAIN) {
> + mutex_unlock(>i915->drm.struct_mutex);
>   flush_workqueue(eb->i915->mm.userptr_wq);
> + mutex_lock(>i915->drm.struct_mutex);

General curiousity of what mechanism prevents the possible jail of -EAGAIN
looping?

For the fix tho,
Reviewed-by: Mika Kuoppala 

>   continue;
>   }
>  
> @@ -680,15 +684,20 @@ static int eb_reserve(struct i915_execbuffer *eb)
>   err = i915_gem_evict_vm(eb->context->vm);
>   mutex_unlock(>context->vm->mutex);
>   if (err)
> - return err;
> + goto unlock;
>   break;
>  
>   default:
> - return -ENOSPC;
> + err = -ENOSPC;
> + goto unlock;
>   }
>  
>   pin_flags = PIN_USER;
>   } while (1);
> +
> +unlock:
> + mutex_unlock(>i915->drm.struct_mutex);
> + return err;
>  }
>  
>  static unsigned int eb_batch_index(const struct i915_execbuffer *eb)
> @@ -1631,7 +1640,6 @@ static int eb_prefault_relocations(const struct 
> i915_execbuffer *eb)
>  
>  static noinline int eb_relocate_slow(struct i915_execbuffer *eb)
>  {
> - struct drm_device *dev = >i915->drm;
>   bool have_copy = false;
>   struct eb_vma *ev;
>   int err = 0;
> @@ -1642,8 +1650,6 @@ static noinline int eb_relocate_slow(struct 
> i915_execbuffer *eb)
>   goto out;
>   }
>  
> - mutex_unlock(>struct_mutex);
> -
>   /*
>* We take 3 passes through the slowpatch.
>*
> @@ -1666,21 +1672,8 @@ static noinline int eb_relocate_slow(struct 
> i915_execbuffer *eb)
>   cond_resched();
>   err = 0;
>   }
> - if (err) {
> - mutex_lock(>struct_mutex);
> - goto out;
> - }
> -
> - /* A frequent cause for EAGAIN are currently unavailable client pages */
> - flush_workqueue(eb->i915->mm.userptr_wq);
> -
> - err = i915_mutex_lock_interruptible(dev);
> - if (err) {
> - mutex_lock(>struct_mutex);
> + if (err)
>   goto out;
> - }
> -
> - GEM_BUG_ON(!eb->batch);
>  
>   list_for_each_entry(ev, >relocs, reloc_link) {
>   if (!have_copy) {
> @@ -1738,9 +1731,11 @@ static int eb_relocate(struct i915_execbuffer *eb)
>   if (err)
>   return err;
>  
> - err = eb_reserve(eb);
> - if (err)
> - return err;
> + if (!list_empty(>unbound)) {
> + err = eb_reserve(eb);
> + if (err)
> + return err;
> + }
>  
>   /* The objects are in their final locations, apply the relocations. */
>   if (eb->args->flags & __EXEC_HAS_RELOC) {
> @@ -2690,10 +2685,6 @@ 

  1   2   >