[Intel-gfx] [PATCH] drm/i915: Complete the fences as they are cancelled due to wedging

2018-12-01 Thread Chris Wilson
We inspect the requests under the assumption that they will be marked as
completed when they are removed from the queue. Currently however, in the
process of wedging the requests will be removed from the queue before they
are completed, so rearrange the code to complete the fences before the
locks are dropped.

<1>[  354.473346] BUG: unable to handle kernel NULL pointer dereference at 
0250
<6>[  354.473363] PGD 0 P4D 0
<4>[  354.473370] Oops:  [#1] PREEMPT SMP PTI
<4>[  354.473380] CPU: 0 PID: 4470 Comm: gem_eio Tainted: G U
4.20.0-rc4-CI-CI_DRM_5216+ #1
<4>[  354.473393] Hardware name: Intel Corporation NUC7CJYH/NUC7JYB, BIOS 
JYGLKCPX.86A.0027.2018.0125.1347 01/25/2018
<4>[  354.473480] RIP: 0010:__i915_schedule+0x311/0x5e0 [i915]
<4>[  354.473490] Code: 49 89 44 24 20 4d 89 4c 24 28 4d 89 29 44 39 b3 a0 04 
00 00 7d 3a 41 8b 44 24 78 85 c0 74 13 48 8b 93 78 04 00 00 48 83 e2 fc <39> 82 
50 02 00 00 79 1e 44 89 b3 a0 04 00 00 48 8d bb d0 03 00 00
<4>[  354.473515] RSP: 0018:c91bba90 EFLAGS: 00010046
<4>[  354.473524] RAX: 0003 RBX: 8882624c8008 RCX: 
f34a7378
<4>[  354.473535] RDX:  RSI:  RDI: 
8882624c8048
<4>[  354.473545] RBP: c91bbab0 R08: 5963f1f1 R09: 

<4>[  354.473556] R10: c91bba10 R11: 8882624c8060 R12: 
88824fdd7b98
<4>[  354.473567] R13: 88824fdd7bb8 R14: 0001 R15: 
88824fdd7750
<4>[  354.473578] FS:  7f44b4b5b980() GS:888277e0() 
knlGS:
<4>[  354.473590] CS:  0010 DS:  ES:  CR0: 80050033
<4>[  354.473599] CR2: 0250 CR3: 00026976e000 CR4: 
00340ef0
<4>[  354.473611] Call Trace:
<4>[  354.473622]  ? lock_acquire+0xa6/0x1c0
<4>[  354.473677]  ? i915_schedule_bump_priority+0x57/0xd0 [i915]
<4>[  354.473736]  i915_schedule_bump_priority+0x72/0xd0 [i915]
<4>[  354.473792]  i915_request_wait+0x4db/0x840 [i915]
<4>[  354.473804]  ? get_pwq.isra.4+0x2c/0x50
<4>[  354.473813]  ? ___preempt_schedule+0x16/0x18
<4>[  354.473824]  ? wake_up_q+0x70/0x70
<4>[  354.473831]  ? wake_up_q+0x70/0x70
<4>[  354.473882]  ? gen6_rps_boost+0x118/0x120 [i915]
<4>[  354.473936]  i915_gem_object_wait_fence+0x8a/0x110 [i915]
<4>[  354.473991]  i915_gem_object_wait+0x113/0x500 [i915]
<4>[  354.474047]  i915_gem_wait_ioctl+0x11c/0x2f0 [i915]
<4>[  354.474101]  ? i915_gem_unset_wedged+0x210/0x210 [i915]
<4>[  354.474113]  drm_ioctl_kernel+0x81/0xf0
<4>[  354.474123]  drm_ioctl+0x2de/0x390
<4>[  354.474175]  ? i915_gem_unset_wedged+0x210/0x210 [i915]
<4>[  354.474187]  ? finish_task_switch+0x95/0x260
<4>[  354.474197]  ? lock_acquire+0xa6/0x1c0
<4>[  354.474207]  do_vfs_ioctl+0xa0/0x6e0
<4>[  354.474217]  ? __fget+0xfc/0x1e0
<4>[  354.474225]  ksys_ioctl+0x35/0x60
<4>[  354.474233]  __x64_sys_ioctl+0x11/0x20
<4>[  354.474241]  do_syscall_64+0x55/0x190
<4>[  354.474251]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4>[  354.474260] RIP: 0033:0x7f44b3de65d7
<4>[  354.474267] Code: b3 66 90 48 8b 05 b1 48 2d 00 64 c7 00 26 00 00 00 48 
c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 
01 f0 ff ff 73 01 c3 48 8b 0d 81 48 2d 00 f7 d8 64 89 01 48
<4>[  354.474293] RSP: 002b:7fff974948e8 EFLAGS: 0246 ORIG_RAX: 
0010
<4>[  354.474305] RAX: ffda RBX:  RCX: 
7f44b3de65d7
<4>[  354.474316] RDX: 7fff97494940 RSI: c010646c RDI: 
0007
<4>[  354.474327] RBP: 7fff97494940 R08:  R09: 
7f44b40bbc40
<4>[  354.474337] R10:  R11: 0246 R12: 
c010646c
<4>[  354.474348] R13: 0007 R14:  R15: 


v2: Avoid floating requests.
v3: Can't call dma_fence_signal() under the timeline lock!
v4: Can't call dma_fence_signal() from inside another fence either.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/i915_gem.c | 54 +
 drivers/gpu/drm/i915/intel_lrc.c| 13 --
 drivers/gpu/drm/i915/intel_ringbuffer.c | 13 +-
 3 files changed, 31 insertions(+), 49 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index c55b1f75c980..834240a9b262 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3308,16 +3308,6 @@ void i915_gem_reset_finish(struct drm_i915_private 
*dev_priv)
 }
 
 static void nop_submit_request(struct i915_request *request)
-{
-   GEM_TRACE("%s fence %llx:%d -> -EIO\n",
- request->engine->name,
- request->fence.context, request->fence.seqno);
-   dma_fence_set_error(>fence, -EIO);
-
-   i915_request_submit(request);
-}
-
-static void nop_complete_submit_request(struct i915_request *request)
 {
unsigned long flags;
 
@@ -3354,57 +3344,33 @@ void i915_gem_set_wedged(struct drm_i915_private *i915)
 * rolling the global 

[Intel-gfx] [PATCH 3/7] drm/i915: Allocate a common scratch page

2018-12-01 Thread Chris Wilson
Currently we allocate a scratch page for each engine, but since we only
ever write into it for post-sync operations, it is not exposed to
userspace nor do we care for coherency. As we then do not care about its
contents, we can use one page for all, reducing our allocations and
avoid complications by not assuming per-engine isolation.

For later use, it simplifies engine initialisation (by removing the
allocation that required struct_mutex!) and means that we can always rely
on there being a scratch page.

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/i915_drv.h |  7 
 drivers/gpu/drm/i915/i915_gem.c | 50 -
 drivers/gpu/drm/i915/i915_gpu_error.c   |  2 +-
 drivers/gpu/drm/i915/intel_engine_cs.c  | 42 -
 drivers/gpu/drm/i915/intel_lrc.c| 17 +++--
 drivers/gpu/drm/i915/intel_ringbuffer.c | 33 +---
 drivers/gpu/drm/i915/intel_ringbuffer.h |  5 ---
 7 files changed, 71 insertions(+), 85 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index d45475287130..0ec65cc48b5a 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1996,6 +1996,8 @@ struct drm_i915_private {
struct delayed_work idle_work;
 
ktime_t last_init_time;
+
+   struct i915_vma *scratch;
} gt;
 
/* perform PHY state sanity checks? */
@@ -3724,4 +3726,9 @@ static inline int intel_hws_csb_write_index(struct 
drm_i915_private *i915)
return I915_HWS_CSB_WRITE_INDEX;
 }
 
+static inline u32 i915_scratch_offset(const struct drm_i915_private *i915)
+{
+   return i915_ggtt_offset(i915->gt.scratch);
+}
+
 #endif
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 834240a9b262..cca4285e3329 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -5495,6 +5495,44 @@ static int __intel_engines_record_defaults(struct 
drm_i915_private *i915)
goto out_ctx;
 }
 
+static int
+i915_gem_init_scratch(struct drm_i915_private *i915, unsigned int size)
+{
+   struct drm_i915_gem_object *obj;
+   struct i915_vma *vma;
+   int ret;
+
+   obj = i915_gem_object_create_stolen(i915, size);
+   if (!obj)
+   obj = i915_gem_object_create_internal(i915, size);
+   if (IS_ERR(obj)) {
+   DRM_ERROR("Failed to allocate scratch page\n");
+   return PTR_ERR(obj);
+   }
+
+   vma = i915_vma_instance(obj, >ggtt.vm, NULL);
+   if (IS_ERR(vma)) {
+   ret = PTR_ERR(vma);
+   goto err_unref;
+   }
+
+   ret = i915_vma_pin(vma, 0, 0, PIN_GLOBAL | PIN_HIGH);
+   if (ret)
+   goto err_unref;
+
+   i915->gt.scratch = vma;
+   return 0;
+
+err_unref:
+   i915_gem_object_put(obj);
+   return ret;
+}
+
+static void i915_gem_fini_scratch(struct drm_i915_private *i915)
+{
+   i915_vma_unpin_and_release(>gt.scratch, 0);
+}
+
 int i915_gem_init(struct drm_i915_private *dev_priv)
 {
int ret;
@@ -5541,12 +5579,19 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
goto err_unlock;
}
 
-   ret = i915_gem_contexts_init(dev_priv);
+   ret = i915_gem_init_scratch(dev_priv,
+   IS_GEN2(dev_priv) ? SZ_256K : PAGE_SIZE);
if (ret) {
GEM_BUG_ON(ret == -EIO);
goto err_ggtt;
}
 
+   ret = i915_gem_contexts_init(dev_priv);
+   if (ret) {
+   GEM_BUG_ON(ret == -EIO);
+   goto err_scratch;
+   }
+
ret = intel_engines_init(dev_priv);
if (ret) {
GEM_BUG_ON(ret == -EIO);
@@ -5619,6 +5664,8 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 err_context:
if (ret != -EIO)
i915_gem_contexts_fini(dev_priv);
+err_scratch:
+   i915_gem_fini_scratch(dev_priv);
 err_ggtt:
 err_unlock:
intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
@@ -5670,6 +5717,7 @@ void i915_gem_fini(struct drm_i915_private *dev_priv)
intel_uc_fini(dev_priv);
i915_gem_cleanup_engines(dev_priv);
i915_gem_contexts_fini(dev_priv);
+   i915_gem_fini_scratch(dev_priv);
mutex_unlock(_priv->drm.struct_mutex);
 
intel_cleanup_gt_powersave(dev_priv);
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c 
b/drivers/gpu/drm/i915/i915_gpu_error.c
index a6885a59568b..07465123c166 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -1571,7 +1571,7 @@ static void gem_record_rings(struct i915_gpu_state *error)
if (HAS_BROKEN_CS_TLB(i915))
ee->wa_batchbuffer =
i915_error_object_create(i915,
-
engine->scratch);
+

[Intel-gfx] [PATCH 1/7] drm/i915: Complete the fences as they are cancelled due to wedging

2018-12-01 Thread Chris Wilson
We inspect the requests under the assumption that they will be marked as
completed when they are removed from the queue. Currently however, in the
process of wedging the requests will be removed from the queue before they
are completed, so rearrange the code to complete the fences before the
locks are dropped.

<1>[  354.473346] BUG: unable to handle kernel NULL pointer dereference at 
0250
<6>[  354.473363] PGD 0 P4D 0
<4>[  354.473370] Oops:  [#1] PREEMPT SMP PTI
<4>[  354.473380] CPU: 0 PID: 4470 Comm: gem_eio Tainted: G U
4.20.0-rc4-CI-CI_DRM_5216+ #1
<4>[  354.473393] Hardware name: Intel Corporation NUC7CJYH/NUC7JYB, BIOS 
JYGLKCPX.86A.0027.2018.0125.1347 01/25/2018
<4>[  354.473480] RIP: 0010:__i915_schedule+0x311/0x5e0 [i915]
<4>[  354.473490] Code: 49 89 44 24 20 4d 89 4c 24 28 4d 89 29 44 39 b3 a0 04 
00 00 7d 3a 41 8b 44 24 78 85 c0 74 13 48 8b 93 78 04 00 00 48 83 e2 fc <39> 82 
50 02 00 00 79 1e 44 89 b3 a0 04 00 00 48 8d bb d0 03 00 00
<4>[  354.473515] RSP: 0018:c91bba90 EFLAGS: 00010046
<4>[  354.473524] RAX: 0003 RBX: 8882624c8008 RCX: 
f34a7378
<4>[  354.473535] RDX:  RSI:  RDI: 
8882624c8048
<4>[  354.473545] RBP: c91bbab0 R08: 5963f1f1 R09: 

<4>[  354.473556] R10: c91bba10 R11: 8882624c8060 R12: 
88824fdd7b98
<4>[  354.473567] R13: 88824fdd7bb8 R14: 0001 R15: 
88824fdd7750
<4>[  354.473578] FS:  7f44b4b5b980() GS:888277e0() 
knlGS:
<4>[  354.473590] CS:  0010 DS:  ES:  CR0: 80050033
<4>[  354.473599] CR2: 0250 CR3: 00026976e000 CR4: 
00340ef0
<4>[  354.473611] Call Trace:
<4>[  354.473622]  ? lock_acquire+0xa6/0x1c0
<4>[  354.473677]  ? i915_schedule_bump_priority+0x57/0xd0 [i915]
<4>[  354.473736]  i915_schedule_bump_priority+0x72/0xd0 [i915]
<4>[  354.473792]  i915_request_wait+0x4db/0x840 [i915]
<4>[  354.473804]  ? get_pwq.isra.4+0x2c/0x50
<4>[  354.473813]  ? ___preempt_schedule+0x16/0x18
<4>[  354.473824]  ? wake_up_q+0x70/0x70
<4>[  354.473831]  ? wake_up_q+0x70/0x70
<4>[  354.473882]  ? gen6_rps_boost+0x118/0x120 [i915]
<4>[  354.473936]  i915_gem_object_wait_fence+0x8a/0x110 [i915]
<4>[  354.473991]  i915_gem_object_wait+0x113/0x500 [i915]
<4>[  354.474047]  i915_gem_wait_ioctl+0x11c/0x2f0 [i915]
<4>[  354.474101]  ? i915_gem_unset_wedged+0x210/0x210 [i915]
<4>[  354.474113]  drm_ioctl_kernel+0x81/0xf0
<4>[  354.474123]  drm_ioctl+0x2de/0x390
<4>[  354.474175]  ? i915_gem_unset_wedged+0x210/0x210 [i915]
<4>[  354.474187]  ? finish_task_switch+0x95/0x260
<4>[  354.474197]  ? lock_acquire+0xa6/0x1c0
<4>[  354.474207]  do_vfs_ioctl+0xa0/0x6e0
<4>[  354.474217]  ? __fget+0xfc/0x1e0
<4>[  354.474225]  ksys_ioctl+0x35/0x60
<4>[  354.474233]  __x64_sys_ioctl+0x11/0x20
<4>[  354.474241]  do_syscall_64+0x55/0x190
<4>[  354.474251]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4>[  354.474260] RIP: 0033:0x7f44b3de65d7
<4>[  354.474267] Code: b3 66 90 48 8b 05 b1 48 2d 00 64 c7 00 26 00 00 00 48 
c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 
01 f0 ff ff 73 01 c3 48 8b 0d 81 48 2d 00 f7 d8 64 89 01 48
<4>[  354.474293] RSP: 002b:7fff974948e8 EFLAGS: 0246 ORIG_RAX: 
0010
<4>[  354.474305] RAX: ffda RBX:  RCX: 
7f44b3de65d7
<4>[  354.474316] RDX: 7fff97494940 RSI: c010646c RDI: 
0007
<4>[  354.474327] RBP: 7fff97494940 R08:  R09: 
7f44b40bbc40
<4>[  354.474337] R10:  R11: 0246 R12: 
c010646c
<4>[  354.474348] R13: 0007 R14:  R15: 


v2: Avoid floating requests.
v3: Can't call dma_fence_signal() under the timeline lock!
v4: Can't call dma_fence_signal() from inside another fence either.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/i915_gem.c | 54 +
 drivers/gpu/drm/i915/intel_lrc.c| 13 --
 drivers/gpu/drm/i915/intel_ringbuffer.c | 13 +-
 3 files changed, 31 insertions(+), 49 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index c55b1f75c980..834240a9b262 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3308,16 +3308,6 @@ void i915_gem_reset_finish(struct drm_i915_private 
*dev_priv)
 }
 
 static void nop_submit_request(struct i915_request *request)
-{
-   GEM_TRACE("%s fence %llx:%d -> -EIO\n",
- request->engine->name,
- request->fence.context, request->fence.seqno);
-   dma_fence_set_error(>fence, -EIO);
-
-   i915_request_submit(request);
-}
-
-static void nop_complete_submit_request(struct i915_request *request)
 {
unsigned long flags;
 
@@ -3354,57 +3344,33 @@ void i915_gem_set_wedged(struct drm_i915_private *i915)
 * rolling the global 

[Intel-gfx] [PATCH 7/7] drm/i915/execlists: Apply a full mb before execution for Braswell

2018-12-01 Thread Chris Wilson
Braswell is really picky about having our writes posted to memory before
we execute or else the GPU may see stale values. A wmb() is insufficient
as it only ensures the writes are visible to other cores, we need a full
mb() to ensure the writes are in memory and visible to the GPU.

The most frequent failure in flushing before execution is that we see
stale PTE values and execute the wrong pages.

References: 987abd5c62f9 ("drm/i915/execlists: Force write serialisation into 
context image vs execution")
Signed-off-by: Chris Wilson 
Cc: Mika Kuoppala 
Cc: Tvrtko Ursulin 
Cc: Joonas Lahtinen 
Cc: sta...@vger.kernel.org
---
 drivers/gpu/drm/i915/intel_lrc.c | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 0a690c557113..cad1228f6503 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -379,8 +379,12 @@ static u64 execlists_update_context(struct i915_request 
*rq)
 * may not be visible to the HW prior to the completion of the UC
 * register write and that we may begin execution from the context
 * before its image is complete leading to invalid PD chasing.
+*
+* Furthermore, Braswell wants a full mb to be sure that the writes
+* are coherent in memory (visible to the GPU) prior to execution,
+* and not just visible to other CPUs (as is the result of wmb).
 */
-   wmb();
+   mb();
return ce->lrc_desc;
 }
 
-- 
2.20.0.rc1

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


[Intel-gfx] [PATCH 4/7] drm/i915/selftests: Terminate hangcheck sanitycheck forcibly

2018-12-01 Thread Chris Wilson
If all else fails and we are stuck eternally waiting for the undying
request, abandon all hope.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/selftests/intel_hangcheck.c | 12 +---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c 
b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
index defe671130ab..a48fbe2557ea 100644
--- a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
+++ b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
@@ -308,6 +308,7 @@ static int igt_hang_sanitycheck(void *arg)
goto unlock;
 
for_each_engine(engine, i915, id) {
+   struct igt_wedge_me w;
long timeout;
 
if (!intel_engine_can_store_dword(engine))
@@ -328,9 +329,14 @@ static int igt_hang_sanitycheck(void *arg)
 
i915_request_add(rq);
 
-   timeout = i915_request_wait(rq,
-   I915_WAIT_LOCKED,
-   MAX_SCHEDULE_TIMEOUT);
+   timeout = 0;
+   igt_wedge_on_timeout(, i915, HZ / 10 /* 100ms timeout*/)
+   timeout = i915_request_wait(rq,
+   I915_WAIT_LOCKED,
+   MAX_SCHEDULE_TIMEOUT);
+   if (i915_terminally_wedged(>gpu_error))
+   timeout = -EIO;
+
i915_request_put(rq);
 
if (timeout < 0) {
-- 
2.20.0.rc1

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


[Intel-gfx] [PATCH 2/7] drm/i915/ringbuffer: Clear semaphore sync registers on ring init

2018-12-01 Thread Chris Wilson
Ensure that the sync registers are cleared every time we restart the
ring to avoid stale values from creeping in from random neutrinos.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/intel_ringbuffer.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c 
b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 992889f9e0ff..81b10d85b738 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -529,6 +529,13 @@ static int init_ring_common(struct intel_engine_cs *engine)
 
intel_engine_reset_breadcrumbs(engine);
 
+   if (HAS_LEGACY_SEMAPHORES(engine->i915)) {
+   I915_WRITE(RING_SYNC_0(engine->mmio_base), 0);
+   I915_WRITE(RING_SYNC_1(engine->mmio_base), 0);
+   if (HAS_VEBOX(dev_priv))
+   I915_WRITE(RING_SYNC_2(engine->mmio_base), 0);
+   }
+
/* Enforce ordering by reading HEAD register back */
I915_READ_HEAD(engine);
 
-- 
2.20.0.rc1

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


[Intel-gfx] [PATCH 5/7] drm/i915/selftests: Reorder request allocation vs vma pinning

2018-12-01 Thread Chris Wilson
Impose a restraint that we have all vma pinned for a request prior to
its allocation. This is to simplify request construction, and should
facilitate unravelling the lock interdependencies later.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/selftests/huge_pages.c   |  31 +++--
 drivers/gpu/drm/i915/selftests/igt_spinner.c  |  86 ++--
 .../gpu/drm/i915/selftests/intel_hangcheck.c  | 123 +-
 3 files changed, 119 insertions(+), 121 deletions(-)

diff --git a/drivers/gpu/drm/i915/selftests/huge_pages.c 
b/drivers/gpu/drm/i915/selftests/huge_pages.c
index 26c065c8d2c0..a0c7cbc212ba 100644
--- a/drivers/gpu/drm/i915/selftests/huge_pages.c
+++ b/drivers/gpu/drm/i915/selftests/huge_pages.c
@@ -972,7 +972,6 @@ static int gpu_write(struct i915_vma *vma,
 {
struct i915_request *rq;
struct i915_vma *batch;
-   int flags = 0;
int err;
 
GEM_BUG_ON(!intel_engine_can_store_dword(engine));
@@ -981,14 +980,14 @@ static int gpu_write(struct i915_vma *vma,
if (err)
return err;
 
-   rq = i915_request_alloc(engine, ctx);
-   if (IS_ERR(rq))
-   return PTR_ERR(rq);
-
batch = gpu_write_dw(vma, dword * sizeof(u32), value);
-   if (IS_ERR(batch)) {
-   err = PTR_ERR(batch);
-   goto err_request;
+   if (IS_ERR(batch))
+   return PTR_ERR(batch);
+
+   rq = i915_request_alloc(engine, ctx);
+   if (IS_ERR(rq)) {
+   err = PTR_ERR(rq);
+   goto err_batch;
}
 
err = i915_vma_move_to_active(batch, rq, 0);
@@ -996,21 +995,21 @@ static int gpu_write(struct i915_vma *vma,
goto err_request;
 
i915_gem_object_set_active_reference(batch->obj);
-   i915_vma_unpin(batch);
-   i915_vma_close(batch);
 
-   err = engine->emit_bb_start(rq,
-   batch->node.start, batch->node.size,
-   flags);
+   err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
if (err)
goto err_request;
 
-   err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
+   err = engine->emit_bb_start(rq,
+   batch->node.start, batch->node.size,
+   0);
+err_request:
if (err)
i915_request_skip(rq, err);
-
-err_request:
i915_request_add(rq);
+err_batch:
+   i915_vma_unpin(batch);
+   i915_vma_close(batch);
 
return err;
 }
diff --git a/drivers/gpu/drm/i915/selftests/igt_spinner.c 
b/drivers/gpu/drm/i915/selftests/igt_spinner.c
index 8cd34f6e6859..0e70df0230b8 100644
--- a/drivers/gpu/drm/i915/selftests/igt_spinner.c
+++ b/drivers/gpu/drm/i915/selftests/igt_spinner.c
@@ -68,48 +68,65 @@ static u64 hws_address(const struct i915_vma *hws,
return hws->node.start + seqno_offset(rq->fence.context);
 }
 
-static int emit_recurse_batch(struct igt_spinner *spin,
- struct i915_request *rq,
- u32 arbitration_command)
+static int move_to_active(struct i915_vma *vma,
+ struct i915_request *rq,
+ unsigned int flags)
 {
-   struct i915_address_space *vm = >gem_context->ppgtt->vm;
+   int err;
+
+   err = i915_vma_move_to_active(vma, rq, flags);
+   if (err)
+   return err;
+
+   if (!i915_gem_object_has_active_reference(vma->obj)) {
+   i915_gem_object_get(vma->obj);
+   i915_gem_object_set_active_reference(vma->obj);
+   }
+
+   return 0;
+}
+
+struct i915_request *
+igt_spinner_create_request(struct igt_spinner *spin,
+  struct i915_gem_context *ctx,
+  struct intel_engine_cs *engine,
+  u32 arbitration_command)
+{
+   struct i915_address_space *vm = >ppgtt->vm;
+   struct i915_request *rq = NULL;
struct i915_vma *hws, *vma;
u32 *batch;
int err;
 
vma = i915_vma_instance(spin->obj, vm, NULL);
if (IS_ERR(vma))
-   return PTR_ERR(vma);
+   return ERR_CAST(vma);
 
hws = i915_vma_instance(spin->hws, vm, NULL);
if (IS_ERR(hws))
-   return PTR_ERR(hws);
+   return ERR_CAST(hws);
 
err = i915_vma_pin(vma, 0, 0, PIN_USER);
if (err)
-   return err;
+   return ERR_PTR(err);
 
err = i915_vma_pin(hws, 0, 0, PIN_USER);
if (err)
goto unpin_vma;
 
-   err = i915_vma_move_to_active(vma, rq, 0);
-   if (err)
+   rq = i915_request_alloc(engine, ctx);
+   if (IS_ERR(rq)) {
+   err = PTR_ERR(rq);
goto unpin_hws;
-
-   if (!i915_gem_object_has_active_reference(vma->obj)) {
-   i915_gem_object_get(vma->obj);
-   i915_gem_object_set_active_reference(vma->obj);
 

[Intel-gfx] [PATCH 6/7] drm/i915: Pipeline PDP updates for Braswell

2018-12-01 Thread Chris Wilson
Currently we face a severe problem on Braswell that manifests as invalid
ppGTT accesses. The code tries to maintain the PDP (page directory
pointers) inside the context in two ways, direct write into the context
and a pipelined LRI update. The direct write into the context is
fundamentally racy as it is unserialised with any access (read or write)
the GPU is doing. By asserting that Braswell is not used with vGPU
(currently an unsupported platform) we can eliminate the dangerous
direct write into the context image and solely use the pipelined update.

However, the LRI of the PDP fouls up the GPU, causing it to freeze and
take out the machine with "forcewake ack timeouts". This seems possible
to workaround by preventing the GPU from sleeping (via means of
disabling the power-state management interface, i.e. forcing each ring
to remain awake) around the update.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108656
References: https://bugs.freedesktop.org/show_bug.cgi?id=108714
Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/i915_gem_gtt.c |   2 -
 drivers/gpu/drm/i915/i915_request.c |   5 -
 drivers/gpu/drm/i915/intel_lrc.c| 137 +++-
 drivers/gpu/drm/i915/intel_ringbuffer.c |   5 +-
 4 files changed, 68 insertions(+), 81 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c 
b/drivers/gpu/drm/i915/i915_gem_gtt.c
index add1fe7aeb93..62bde517d383 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -1423,8 +1423,6 @@ static int gen8_ppgtt_alloc_pdp(struct i915_address_space 
*vm,
gen8_initialize_pd(vm, pd);
gen8_ppgtt_set_pdpe(vm, pdp, pd, pdpe);
GEM_BUG_ON(pdp->used_pdpes > i915_pdpes_per_pdp(vm));
-
-   mark_tlbs_dirty(i915_vm_to_ppgtt(vm));
}
 
ret = gen8_ppgtt_alloc_pd(vm, pd, start, length);
diff --git a/drivers/gpu/drm/i915/i915_request.c 
b/drivers/gpu/drm/i915/i915_request.c
index ca95ab2f4cfa..8ab8e8e6a086 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -719,11 +719,6 @@ i915_request_alloc(struct intel_engine_cs *engine, struct 
i915_gem_context *ctx)
 */
rq->head = rq->ring->emit;
 
-   /* Unconditionally invalidate GPU caches and TLBs. */
-   ret = engine->emit_flush(rq, EMIT_INVALIDATE);
-   if (ret)
-   goto err_unwind;
-
ret = engine->request_alloc(rq);
if (ret)
goto err_unwind;
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index de070dca4033..0a690c557113 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -363,31 +363,12 @@ execlists_context_schedule_out(struct i915_request *rq, 
unsigned long status)
trace_i915_request_out(rq);
 }
 
-static void
-execlists_update_context_pdps(struct i915_hw_ppgtt *ppgtt, u32 *reg_state)
-{
-   ASSIGN_CTX_PDP(ppgtt, reg_state, 3);
-   ASSIGN_CTX_PDP(ppgtt, reg_state, 2);
-   ASSIGN_CTX_PDP(ppgtt, reg_state, 1);
-   ASSIGN_CTX_PDP(ppgtt, reg_state, 0);
-}
-
 static u64 execlists_update_context(struct i915_request *rq)
 {
-   struct i915_hw_ppgtt *ppgtt = rq->gem_context->ppgtt;
struct intel_context *ce = rq->hw_context;
-   u32 *reg_state = ce->lrc_reg_state;
-
-   reg_state[CTX_RING_TAIL+1] = intel_ring_set_tail(rq->ring, rq->tail);
 
-   /*
-* True 32b PPGTT with dynamic page allocation: update PDP
-* registers and point the unallocated PDPs to scratch page.
-* PML4 is allocated during ppgtt init, so this is not needed
-* in 48-bit mode.
-*/
-   if (!i915_vm_is_48bit(>vm))
-   execlists_update_context_pdps(ppgtt, reg_state);
+   ce->lrc_reg_state[CTX_RING_TAIL + 1] =
+   intel_ring_set_tail(rq->ring, rq->tail);
 
/*
 * Make sure the context image is complete before we submit it to HW.
@@ -1240,29 +1221,80 @@ execlists_context_pin(struct intel_engine_cs *engine,
return __execlists_context_pin(engine, ctx, ce);
 }
 
+static int emit_pdps(struct i915_request *rq)
+{
+   const struct intel_engine_cs * const engine = rq->engine;
+   struct i915_hw_ppgtt * const ppgtt = rq->gem_context->ppgtt;
+   int err, i;
+   u32 *cs;
+
+   err = engine->emit_flush(rq, EMIT_INVALIDATE);
+   if (err)
+   return err;
+
+   cs = intel_ring_begin(rq, 4 * GEN8_3LVL_PDPES + 2);
+   if (IS_ERR(cs))
+   return PTR_ERR(cs);
+
+   /*
+* Force the GPU (not just the local engine/powerwell!) to remain awake,
+* or else we may kill the machine with "timed out waiting for
+* forcewake ack request".
+*/
+
+   *cs++ = MI_LOAD_REGISTER_IMM(2 * GEN8_3LVL_PDPES);
+   for (i = GEN8_3LVL_PDPES; i--; ) {
+   const 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/7] drm/i915: Complete the fences as they are cancelled due to wedging

2018-12-01 Thread Patchwork
== Series Details ==

Series: series starting with [1/7] drm/i915: Complete the fences as they are 
cancelled due to wedging
URL   : https://patchwork.freedesktop.org/series/53348/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
a7232ddbd965 drm/i915: Complete the fences as they are cancelled due to wedging
-:13: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#13: 
<1>[  354.473346] BUG: unable to handle kernel NULL pointer dereference at 
0250

total: 0 errors, 1 warnings, 0 checks, 135 lines checked
1ab5d3906e81 drm/i915/ringbuffer: Clear semaphore sync registers on ring init
14e0cc931853 drm/i915: Allocate a common scratch page
bfd217d7fef0 drm/i915/selftests: Terminate hangcheck sanitycheck forcibly
e050a2a0f245 drm/i915/selftests: Reorder request allocation vs vma pinning
1bd7d7a676a7 drm/i915: Pipeline PDP updates for Braswell
10228149a5d8 drm/i915/execlists: Apply a full mb before execution for Braswell
-:15: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#15: 
References: 987abd5c62f9 ("drm/i915/execlists: Force write serialisation into 
context image vs execution")

-:15: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ 
chars of sha1> ("")' - ie: 'commit 987abd5c62f9 
("drm/i915/execlists: Force write serialisation into context image vs 
execution")'
#15: 
References: 987abd5c62f9 ("drm/i915/execlists: Force write serialisation into 
context image vs execution")

-:36: WARNING:MEMORY_BARRIER: memory barrier without comment
#36: FILE: drivers/gpu/drm/i915/intel_lrc.c:387:
+   mb();

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

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


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/7] drm/i915: Complete the fences as they are cancelled due to wedging

2018-12-01 Thread Patchwork
== Series Details ==

Series: series starting with [1/7] drm/i915: Complete the fences as they are 
cancelled due to wedging
URL   : https://patchwork.freedesktop.org/series/53348/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915: Complete the fences as they are cancelled due to wedging
Okay!

Commit: drm/i915/ringbuffer: Clear semaphore sync registers on ring init
Okay!

Commit: drm/i915: Allocate a common scratch page
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3571:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3573:16: warning: expression 
using sizeof(void)

Commit: drm/i915/selftests: Terminate hangcheck sanitycheck forcibly
Okay!

Commit: drm/i915/selftests: Reorder request allocation vs vma pinning
Okay!

Commit: drm/i915: Pipeline PDP updates for Braswell
Okay!

Commit: drm/i915/execlists: Apply a full mb before execution for Braswell
Okay!

___
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 drm/i915: Complete the fences as they are cancelled due to wedging (rev2)

2018-12-01 Thread Patchwork
== Series Details ==

Series: series starting with drm/i915: Complete the fences as they are 
cancelled due to wedging (rev2)
URL   : https://patchwork.freedesktop.org/series/53308/
State : failure

== Summary ==

Applying: drm/i915: Complete the fences as they are cancelled due to wedging
Applying: drm/i915/ringbuffer: Clear semaphore sync registers on ring init
Applying: drm/i915: Allocate a common scratch page
Applying: drm/i915/selftests: Terminate hangcheck sanitycheck forcibly
Applying: drm/i915/selftests: Reorder request allocation vs vma pinning
Using index info to reconstruct a base tree...
M   drivers/gpu/drm/i915/selftests/intel_lrc.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/selftests/intel_lrc.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/selftests/intel_lrc.c
error: Failed to merge in the changes.
Patch failed at 0005 drm/i915/selftests: Reorder request allocation vs vma 
pinning
Use 'git am --show-current-patch' to see the failed patch
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.IGT: success for series starting with [1/4] drm/i915: Make intel_fuzzy_clock_check available outside of intel_display.c

2018-12-01 Thread Patchwork
== Series Details ==

Series: series starting with [1/4] drm/i915: Make intel_fuzzy_clock_check 
available outside of intel_display.c
URL   : https://patchwork.freedesktop.org/series/53350/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5237_full -> Patchwork_10991_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_eio@reset-stress:
- shard-glk:  PASS -> FAIL [fdo#107799]

  * igt@i915_suspend@shrink:
- shard-hsw:  NOTRUN -> DMESG-WARN [fdo#108784]
- {shard-iclb}:   NOTRUN -> DMESG-WARN [fdo#108784]

  * igt@kms_busy@extended-modeset-hang-newfb-render-a:
- shard-snb:  PASS -> DMESG-WARN [fdo#107956]

  * igt@kms_cursor_crc@cursor-256x256-dpms:
- shard-glk:  PASS -> FAIL [fdo#103232] +4

  * igt@kms_cursor_crc@cursor-64x21-sliding:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103232] +2
- shard-apl:  PASS -> FAIL [fdo#103232] +1

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
- shard-glk:  PASS -> FAIL [fdo#104873]

  * igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-xtiled:
- {shard-iclb}:   PASS -> WARN [fdo#108336]

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
- shard-glk:  PASS -> FAIL [fdo#105363]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-onoff:
- shard-apl:  PASS -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
- shard-glk:  PASS -> FAIL [fdo#103167] / [fdo#105682]

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move:
- shard-glk:  PASS -> FAIL [fdo#103167] +2

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-gtt:
- {shard-iclb}:   PASS -> DMESG-FAIL [fdo#107724] +8

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt:
- {shard-iclb}:   PASS -> FAIL [fdo#103167] +2

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
- {shard-iclb}:   PASS -> DMESG-FAIL [fdo#103166] / [fdo#107724]

  * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max:
- {shard-iclb}:   PASS -> DMESG-WARN [fdo#107724] / [fdo#108336] +5

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-x:
- shard-glk:  PASS -> FAIL [fdo#103166]
- shard-apl:  PASS -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103166]

  * igt@kms_setmode@basic:
- shard-apl:  PASS -> FAIL [fdo#99912]

  * igt@perf_pmu@event-wait-rcs0:
- {shard-iclb}:   PASS -> DMESG-WARN [fdo#107724] +18

  * igt@pm_rpm@legacy-planes-dpms:
- {shard-iclb}:   PASS -> DMESG-WARN [fdo#108654]

  
 Possible fixes 

  * igt@gem_ctx_isolation@rcs0-s3:
- shard-snb:  DMESG-WARN [fdo#102365] -> PASS

  * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-b:
- shard-snb:  DMESG-WARN [fdo#107956] -> PASS

  * igt@kms_busy@extended-pageflip-hang-newfb-render-b:
- shard-glk:  DMESG-WARN [fdo#107956] -> PASS +1

  * igt@kms_cursor_crc@cursor-256x256-dpms:
- shard-apl:  FAIL [fdo#103232] -> PASS +1

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
- shard-apl:  FAIL [fdo#103167] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu:
- shard-glk:  FAIL [fdo#103167] -> PASS +3

  * igt@kms_plane@plane-position-covered-pipe-c-planes:
- {shard-iclb}:   FAIL [fdo#103166] -> PASS

  * igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
- shard-glk:  FAIL [fdo#108145] -> PASS

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
- shard-apl:  FAIL [fdo#103166] -> PASS +4

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
- shard-glk:  FAIL [fdo#103166] -> PASS +2

  * igt@kms_plane_scaling@pipe-c-scaler-with-pixel-format:
- {shard-iclb}:   DMESG-WARN [fdo#107724] -> PASS

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
- {shard-iclb}:   INCOMPLETE [fdo#107713] -> PASS

  * igt@pm_rpm@legacy-planes:
- {shard-iclb}:   DMESG-WARN [fdo#108654] -> PASS

  
 Warnings 

  * igt@i915_suspend@shrink:
- shard-snb:  INCOMPLETE [fdo#105411] / [fdo#106886] -> DMESG-WARN 
[fdo#108784]

  * igt@kms_cursor_crc@cursor-128x128-sliding:
- {shard-iclb}:   FAIL [fdo#103232] -> DMESG-WARN [fdo#107724] / 
[fdo#108336]

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

  [fdo#102365]: https://bugs.freedesktop.org/show_bug.cgi?id=102365
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: 

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/7] drm/i915: Complete the fences as they are cancelled due to wedging

2018-12-01 Thread Patchwork
== Series Details ==

Series: series starting with [1/7] drm/i915: Complete the fences as they are 
cancelled due to wedging
URL   : https://patchwork.freedesktop.org/series/53348/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5237_full -> Patchwork_10990_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_suspend@shrink:
- shard-hsw:  NOTRUN -> DMESG-WARN [fdo#108784]
- {shard-iclb}:   NOTRUN -> DMESG-WARN [fdo#108784]

  * igt@kms_atomic@test_only:
- {shard-iclb}:   PASS -> DMESG-WARN [fdo#107724] +29

  * igt@kms_busy@extended-modeset-hang-newfb-render-a:
- shard-snb:  PASS -> DMESG-WARN [fdo#107956]

  * igt@kms_color@pipe-c-legacy-gamma:
- shard-apl:  PASS -> FAIL [fdo#104782]

  * igt@kms_cursor_crc@cursor-256x256-random:
- shard-apl:  PASS -> FAIL [fdo#103232] +1

  * igt@kms_cursor_crc@cursor-256x85-random:
- shard-glk:  PASS -> FAIL [fdo#103232] +3

  * igt@kms_cursor_crc@cursor-64x21-sliding:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103232] +2

  * igt@kms_draw_crc@draw-method-rgb565-render-xtiled:
- {shard-iclb}:   PASS -> WARN [fdo#108336] +3

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-onoff:
- shard-apl:  PASS -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
- shard-glk:  PASS -> FAIL [fdo#103167] / [fdo#105682]

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move:
- shard-glk:  PASS -> FAIL [fdo#103167] +2

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-gtt:
- {shard-iclb}:   PASS -> DMESG-FAIL [fdo#107724] +4

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt:
- {shard-iclb}:   PASS -> FAIL [fdo#103167] +2

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
- {shard-iclb}:   PASS -> DMESG-FAIL [fdo#103166] / [fdo#107724]

  * igt@kms_plane_alpha_blend@pipe-b-alpha-transparant-fb:
- shard-kbl:  NOTRUN -> FAIL [fdo#108145]

  * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max:
- {shard-iclb}:   PASS -> DMESG-WARN [fdo#107724] / [fdo#108336] +11

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
- {shard-iclb}:   PASS -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-x:
- shard-glk:  PASS -> FAIL [fdo#103166] +1

  * igt@kms_setmode@basic:
- shard-apl:  PASS -> FAIL [fdo#99912]
- shard-kbl:  PASS -> FAIL [fdo#99912]

  * igt@perf@blocking:
- shard-hsw:  PASS -> FAIL [fdo#102252] +1

  
 Possible fixes 

  * igt@gem_ctx_isolation@rcs0-s3:
- shard-snb:  DMESG-WARN [fdo#102365] -> PASS

  * igt@gem_ppgtt@blt-vs-render-ctxn:
- shard-kbl:  INCOMPLETE [fdo#103665] / [fdo#106023] / [fdo#106887] 
-> PASS

  * igt@kms_cursor_crc@cursor-64x64-onscreen:
- shard-apl:  FAIL [fdo#103232] -> PASS +2

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu:
- shard-glk:  FAIL [fdo#103167] -> PASS +3

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
- shard-apl:  FAIL [fdo#103167] -> PASS

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc:
- {shard-iclb}:   FAIL [fdo#103167] -> PASS +1

  * igt@kms_plane@plane-position-covered-pipe-c-planes:
- shard-glk:  FAIL [fdo#103166] -> PASS

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
- shard-apl:  FAIL [fdo#103166] -> PASS +3

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-x:
- {shard-iclb}:   FAIL [fdo#103166] -> PASS +1

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
- {shard-iclb}:   INCOMPLETE [fdo#107713] -> PASS

  * igt@pm_rpm@legacy-planes:
- {shard-iclb}:   DMESG-WARN [fdo#108654] -> PASS

  
 Warnings 

  * igt@i915_suspend@shrink:
- shard-snb:  INCOMPLETE [fdo#105411] / [fdo#106886] -> DMESG-WARN 
[fdo#108784]

  * igt@kms_plane@pixel-format-pipe-a-planes:
- {shard-iclb}:   FAIL [fdo#103166] -> DMESG-WARN [fdo#107724] / 
[fdo#108336] +1

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

  [fdo#102252]: https://bugs.freedesktop.org/show_bug.cgi?id=102252
  [fdo#102365]: https://bugs.freedesktop.org/show_bug.cgi?id=102365
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#104782]: 

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/4] drm/i915/dsi: Fix pipe_bpp for handling for 6 bpc pixel-formats

2018-12-01 Thread Patchwork
== Series Details ==

Series: series starting with [1/4] drm/i915/dsi: Fix pipe_bpp for handling for 
6 bpc pixel-formats
URL   : https://patchwork.freedesktop.org/series/53352/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5237_full -> Patchwork_10992_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_suspend@shrink:
- shard-hsw:  NOTRUN -> DMESG-WARN [fdo#108784]
- {shard-iclb}:   NOTRUN -> DMESG-WARN [fdo#108784]

  * igt@kms_busy@extended-modeset-hang-newfb-render-a:
- shard-snb:  PASS -> DMESG-WARN [fdo#107956]

  * igt@kms_cursor_crc@cursor-256x256-onscreen:
- shard-glk:  PASS -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-64x21-sliding:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103232] +2

  * igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-ytiled:
- shard-apl:  PASS -> DMESG-WARN [fdo#103558] / [fdo#105602] +30

  * igt@kms_draw_crc@draw-method-xrgb-render-ytiled:
- {shard-iclb}:   PASS -> WARN [fdo#108336]

  * igt@kms_flip@dpms-off-confusion:
- {shard-iclb}:   PASS -> DMESG-WARN [fdo#107724] +6

  * igt@kms_flip@flip-vs-expired-vblank:
- shard-glk:  PASS -> FAIL [fdo#102887] / [fdo#105363]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu:
- shard-apl:  PASS -> FAIL [fdo#103167] +2

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen:
- shard-glk:  PASS -> FAIL [fdo#103167] +1

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
- shard-kbl:  PASS -> DMESG-WARN [fdo#103313] / [fdo#103558]

  * igt@kms_frontbuffer_tracking@fbc-badstride:
- {shard-iclb}:   PASS -> DMESG-FAIL [fdo#107724] +4

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-fullscreen:
- {shard-iclb}:   PASS -> FAIL [fdo#103167] +5

  * igt@kms_plane_alpha_blend@pipe-b-alpha-transparant-fb:
- shard-kbl:  NOTRUN -> FAIL [fdo#108145]

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-yf:
- {shard-iclb}:   PASS -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
- shard-apl:  PASS -> FAIL [fdo#103166] +1

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-x:
- shard-glk:  PASS -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103166]

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-270:
- {shard-iclb}:   PASS -> DMESG-WARN [fdo#107724] / [fdo#108336] +1

  * igt@kms_setmode@basic:
- shard-apl:  PASS -> FAIL [fdo#99912]

  * igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend:
- shard-kbl:  PASS -> DMESG-WARN [fdo#103558] / [fdo#103841] / 
[fdo#105079] / [fdo#105602]

  * igt@kms_vblank@pipe-c-wait-busy:
- shard-kbl:  PASS -> DMESG-WARN [fdo#103313] / [fdo#103558] / 
[fdo#105602] +2

  * igt@pm_rpm@dpms-non-lpsp:
- shard-kbl:  PASS -> DMESG-WARN [fdo#103558] / [fdo#105602] +4

  * {igt@runner@aborted}:
- shard-kbl:  NOTRUN -> FAIL [fdo#103841]

  
 Possible fixes 

  * igt@gem_ctx_isolation@rcs0-s3:
- shard-snb:  DMESG-WARN [fdo#102365] -> PASS

  * igt@gem_ppgtt@blt-vs-render-ctxn:
- shard-kbl:  INCOMPLETE [fdo#103665] / [fdo#106023] / [fdo#106887] 
-> PASS

  * igt@kms_cursor_crc@cursor-64x64-onscreen:
- shard-apl:  FAIL [fdo#103232] -> PASS +2

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu:
- shard-glk:  FAIL [fdo#103167] -> PASS +2

  * igt@kms_plane@plane-position-covered-pipe-c-planes:
- {shard-iclb}:   FAIL [fdo#103166] -> PASS

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-y:
- shard-apl:  FAIL [fdo#103166] -> PASS +2

  * igt@kms_plane_scaling@pipe-b-scaler-with-rotation:
- {shard-iclb}:   DMESG-WARN [fdo#107724] -> PASS

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
- {shard-iclb}:   INCOMPLETE [fdo#107713] -> PASS

  * igt@pm_rpm@legacy-planes:
- {shard-iclb}:   DMESG-WARN [fdo#108654] -> PASS

  
 Warnings 

  * igt@i915_suspend@shrink:
- shard-snb:  INCOMPLETE [fdo#105411] / [fdo#106886] -> DMESG-WARN 
[fdo#108784]

  * igt@kms_available_modes_crc@available_mode_test_crc:
- shard-apl:  FAIL [fdo#106641] -> DMESG-FAIL [fdo#103558] / 
[fdo#105602] / [fdo#106641]

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc:
- {shard-iclb}:   FAIL [fdo#103167] -> DMESG-WARN [fdo#107724] / 
[fdo#108336]

  * igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
- shard-kbl:  

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/7] drm/i915: Complete the fences as they are cancelled due to wedging

2018-12-01 Thread Patchwork
== Series Details ==

Series: series starting with [1/7] drm/i915: Complete the fences as they are 
cancelled due to wedging
URL   : https://patchwork.freedesktop.org/series/53348/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5237 -> Patchwork_10990


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/53348/revisions/1/mbox/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence:
- fi-byt-clapper: PASS -> FAIL [fdo#103191] / [fdo#107362]

  * {igt@runner@aborted}:
- {fi-icl-y}: NOTRUN -> FAIL [fdo#108070]

  
 Possible fixes 

  * igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
- fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS

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

  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#108070]: https://bugs.freedesktop.org/show_bug.cgi?id=108070


Participating hosts (49 -> 43)
--

  Additional (1): fi-icl-y 
  Missing(7): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-ctg-p8600 fi-kbl-7560u 


Build changes
-

* Linux: CI_DRM_5237 -> Patchwork_10990

  CI_DRM_5237: 2f99c4889e4124f9cf50b745d037f432318c4bb4 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4736: 285ebfb3b7adc56586031afa5150c4e5ad40c229 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10990: 10228149a5d8d7315b0f5ee2f60adce5921908d4 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

10228149a5d8 drm/i915/execlists: Apply a full mb before execution for Braswell
1bd7d7a676a7 drm/i915: Pipeline PDP updates for Braswell
e050a2a0f245 drm/i915/selftests: Reorder request allocation vs vma pinning
bfd217d7fef0 drm/i915/selftests: Terminate hangcheck sanitycheck forcibly
14e0cc931853 drm/i915: Allocate a common scratch page
1ab5d3906e81 drm/i915/ringbuffer: Clear semaphore sync registers on ring init
a7232ddbd965 drm/i915: Complete the fences as they are cancelled due to wedging

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10990/
___
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/fbdev: Make skip_vt_switch the default (rev3)

2018-12-01 Thread Patchwork
== Series Details ==

Series: drm/fbdev: Make skip_vt_switch the default (rev3)
URL   : https://patchwork.freedesktop.org/series/53094/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5234_full -> Patchwork_10980_full


Summary
---

  **WARNING**

  Minor unknown changes coming with Patchwork_10980_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_10980_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_10980_full:

### IGT changes ###

 Warnings 

  * igt@kms_chv_cursor_fail@pipe-b-64x64-left-edge:
- shard-snb:  PASS -> SKIP +1

  * igt@pm_rc6_residency@rc6-accuracy:
- shard-snb:  SKIP -> PASS

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@debugfs_test@read_all_entries_display_off:
- shard-skl:  PASS -> INCOMPLETE [fdo#104108]

  * igt@gem_exec_schedule@pi-ringfull-bsd:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103158]

  * igt@gem_ppgtt@blt-vs-render-ctx0:
- shard-skl:  NOTRUN -> TIMEOUT [fdo#108039]

  * igt@gem_userptr_blits@readonly-unsync:
- shard-skl:  PASS -> TIMEOUT [fdo#108887]

  * igt@i915_selftest@live_contexts:
- {shard-iclb}:   NOTRUN -> DMESG-FAIL [fdo#108569]

  * igt@i915_suspend@shrink:
- shard-skl:  NOTRUN -> DMESG-WARN [fdo#108784]

  * igt@kms_busy@extended-modeset-hang-newfb-render-a:
- {shard-iclb}:   NOTRUN -> DMESG-WARN [fdo#107956] +2

  * igt@kms_busy@extended-pageflip-hang-newfb-render-c:
- shard-apl:  PASS -> DMESG-WARN [fdo#107956]

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c:
- shard-skl:  NOTRUN -> DMESG-WARN [fdo#107956]

  * igt@kms_cursor_crc@cursor-128x128-suspend:
- shard-apl:  PASS -> DMESG-WARN [fdo#108566]

  * igt@kms_cursor_crc@cursor-256x256-dpms:
- shard-glk:  PASS -> FAIL [fdo#103232] +1
- shard-apl:  PASS -> FAIL [fdo#103232] +1
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103232]

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-skl:  PASS -> FAIL [fdo#105363]

  * igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw:
- {shard-iclb}:   PASS -> DMESG-FAIL [fdo#107724] +7

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
- shard-apl:  PASS -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu:
- shard-glk:  PASS -> FAIL [fdo#103167] +2

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt:
- {shard-iclb}:   PASS -> FAIL [fdo#103167] +1

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@psr-suspend:
- {shard-iclb}:   PASS -> INCOMPLETE [fdo#107713]

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
- shard-skl:  NOTRUN -> INCOMPLETE [fdo#104108]

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
- {shard-iclb}:   PASS -> DMESG-FAIL [fdo#103166] / [fdo#107724]

  * igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb:
- shard-skl:  NOTRUN -> FAIL [fdo#108145] +1

  * igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
- shard-skl:  PASS -> FAIL [fdo#107815] / [fdo#108145]

  * igt@kms_plane_alpha_blend@pipe-b-alpha-7efc:
- {shard-iclb}:   PASS -> DMESG-WARN [fdo#107724] / [fdo#108336] +1

  * igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
- shard-glk:  PASS -> FAIL [fdo#108145] +1

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl:  PASS -> FAIL [fdo#107815]

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-x:
- shard-glk:  PASS -> FAIL [fdo#103166] +3

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
- {shard-iclb}:   PASS -> FAIL [fdo#103166]

  * igt@kms_plane_scaling@pipe-b-scaler-with-pixel-format:
- {shard-iclb}:   NOTRUN -> DMESG-WARN [fdo#107724]

  * igt@kms_properties@connector-properties-atomic:
- shard-skl:  NOTRUN -> FAIL [fdo#108642]

  * igt@kms_setmode@basic:
- shard-kbl:  PASS -> FAIL [fdo#99912]

  * igt@perf_pmu@event-wait-rcs0:
- {shard-iclb}:   PASS -> DMESG-WARN [fdo#107724] +11

  
 Possible fixes 

  * igt@drm_import_export@import-close-race-flink:
- shard-skl:  TIMEOUT [fdo#108667] -> PASS

  * igt@gem_softpin@noreloc-s3:
- {shard-iclb}:   INCOMPLETE [fdo#107713] -> PASS

  * igt@kms_cursor_crc@cursor-128x128-suspend:
- 

[Intel-gfx] [PATCH 4/4] drm/i915/dsi: Call drm_connector_cleanup on vlv_dsi_init error exit path

2018-12-01 Thread Hans de Goede
If we exit vlv_dsi_init() because we failed to find a fixed_mode, then
we've already called drm_connector_init() and we should call
drm_connector_cleanup() to unregister the connector object.

Signed-off-by: Hans de Goede 
---
 drivers/gpu/drm/i915/vlv_dsi.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/vlv_dsi.c b/drivers/gpu/drm/i915/vlv_dsi.c
index d72ccf557a9c..7ca5aafcdf93 100644
--- a/drivers/gpu/drm/i915/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/vlv_dsi.c
@@ -1861,7 +1861,7 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
 
if (!fixed_mode) {
DRM_DEBUG_KMS("no fixed mode\n");
-   goto err;
+   goto err_cleanup_connector;
}
 
connector->display_info.width_mm = fixed_mode->width_mm;
@@ -1874,6 +1874,8 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
 
return;
 
+err_cleanup_connector:
+   drm_connector_cleanup(_connector->base);
 err:
drm_encoder_cleanup(_encoder->base);
kfree(intel_dsi);
-- 
2.19.1

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


[Intel-gfx] [PATCH 1/4] drm/i915/dsi: Fix pipe_bpp for handling for 6 bpc pixel-formats

2018-12-01 Thread Hans de Goede
There are 3 problems with the dsi code's pipe_bpp handling for 6 bpc
pixel-formats which this commit addresses:

1) It assumes that the pipe_bpp is the same as the bpp going over the dsi
lanes. This assumption is not valid for MIPI_DSI_FMT_RGB666, where pipe_bpp
should be 18 so that we do proper dithering but we actually send 24 bpp
over the dsi lanes (MIPI_DSI_FMT_RGB666_PACKED sends 18 bpp).

This assumption is enforced by an assert in *_dsi_get_pclk(). This assert
triggers on the initial hw-state readback on BYT/CHT devices which use
MIPI_DSI_FMT_RGB666, such as the Prowise PT301 tablet. PIPECONF is set to
6BPC / 18 bpp by the GOP, while mipi_dsi_pixel_format_to_bpp() returns 24.

This commits switches the calculations in *_dsi_get_pclk() to use the bpp
from mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format) which
returns the bpp going over the mipi lanes and drops the assert.

2) On BXT bxt_dsi_get_pipe_config() wrongly overrides the pipe_bpp which
i9xx_get_pipe_config() reads from PIPECONF with the return value from
mipi_dsi_pixel_format_to_bpp(). This avoids the assert from 1. but is wrong
since the pipe is actually running at the value configured in PIPECONF.

This commit drops the override of pipe_bpp from bxt_dsi_get_pipe_config().

3) The dsi encoder's compute_config() never assigns a value to pipe_bpp,
unlike most other encoders. Falling back on compute_baseline_pipe_bpp()
which always picks 24. 24 is only correct for MIPI_DSI_FMT_RGB88 for the
others we should use 18 bpp so that we correctly do 6bpc color dithering.

This commit adds code to intel_dsi_compute_config() to properly set
pipe_bpp based on intel_dsi->pixel_format.

Signed-off-by: Hans de Goede 
---
 drivers/gpu/drm/i915/intel_dsi.h   |  4 ++--
 drivers/gpu/drm/i915/vlv_dsi.c | 17 
 drivers/gpu/drm/i915/vlv_dsi_pll.c | 31 ++
 3 files changed, 17 insertions(+), 35 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dsi.h b/drivers/gpu/drm/i915/intel_dsi.h
index c888c219835f..c796a2962a43 100644
--- a/drivers/gpu/drm/i915/intel_dsi.h
+++ b/drivers/gpu/drm/i915/intel_dsi.h
@@ -160,7 +160,7 @@ int vlv_dsi_pll_compute(struct intel_encoder *encoder,
 void vlv_dsi_pll_enable(struct intel_encoder *encoder,
const struct intel_crtc_state *config);
 void vlv_dsi_pll_disable(struct intel_encoder *encoder);
-u32 vlv_dsi_get_pclk(struct intel_encoder *encoder, int pipe_bpp,
+u32 vlv_dsi_get_pclk(struct intel_encoder *encoder,
 struct intel_crtc_state *config);
 void vlv_dsi_reset_clocks(struct intel_encoder *encoder, enum port port);
 
@@ -170,7 +170,7 @@ int bxt_dsi_pll_compute(struct intel_encoder *encoder,
 void bxt_dsi_pll_enable(struct intel_encoder *encoder,
const struct intel_crtc_state *config);
 void bxt_dsi_pll_disable(struct intel_encoder *encoder);
-u32 bxt_dsi_get_pclk(struct intel_encoder *encoder, int pipe_bpp,
+u32 bxt_dsi_get_pclk(struct intel_encoder *encoder,
 struct intel_crtc_state *config);
 void bxt_dsi_reset_clocks(struct intel_encoder *encoder, enum port port);
 
diff --git a/drivers/gpu/drm/i915/vlv_dsi.c b/drivers/gpu/drm/i915/vlv_dsi.c
index be3af5f6c7a0..c10def5efa22 100644
--- a/drivers/gpu/drm/i915/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/vlv_dsi.c
@@ -322,6 +322,11 @@ static bool intel_dsi_compute_config(struct intel_encoder 
*encoder,
/* DSI uses short packets for sync events, so clear mode flags for DSI 
*/
adjusted_mode->flags = 0;
 
+   if (intel_dsi->pixel_format == MIPI_DSI_FMT_RGB888)
+   pipe_config->pipe_bpp = 24;
+   else
+   pipe_config->pipe_bpp = 18;
+
if (IS_GEN9_LP(dev_priv)) {
/* Enable Frame time stamp based scanline reporting */
adjusted_mode->private_flags |=
@@ -1097,10 +1102,8 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder 
*encoder,
}
 
fmt = I915_READ(MIPI_DSI_FUNC_PRG(port)) & VID_MODE_FORMAT_MASK;
-   pipe_config->pipe_bpp =
-   mipi_dsi_pixel_format_to_bpp(
-   pixel_format_from_register_bits(fmt));
-   bpp = pipe_config->pipe_bpp;
+   bpp = mipi_dsi_pixel_format_to_bpp(
+   pixel_format_from_register_bits(fmt));
 
/* Enable Frame time stamo based scanline reporting */
adjusted_mode->private_flags |=
@@ -1238,11 +1241,9 @@ static void intel_dsi_get_config(struct intel_encoder 
*encoder,
 
if (IS_GEN9_LP(dev_priv)) {
bxt_dsi_get_pipe_config(encoder, pipe_config);
-   pclk = bxt_dsi_get_pclk(encoder, pipe_config->pipe_bpp,
-   pipe_config);
+   pclk = bxt_dsi_get_pclk(encoder, pipe_config);
} else {
-   pclk = vlv_dsi_get_pclk(encoder, pipe_config->pipe_bpp,
-   pipe_config);
+   pclk = 

[Intel-gfx] [PATCH 2/4] drm/i915/dsi: Move logging of DSI VBT parameters to a helper function

2018-12-01 Thread Hans de Goede
This is a preparation patch for moving the calling of *_dphy_param_init()
out of intel_dsi_vbt_init.

Signed-off-by: Hans de Goede 
---
 drivers/gpu/drm/i915/intel_dsi_vbt.c | 77 +++-
 1 file changed, 42 insertions(+), 35 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dsi_vbt.c 
b/drivers/gpu/drm/i915/intel_dsi_vbt.c
index 80bd56e96143..2afd9ddc94e8 100644
--- a/drivers/gpu/drm/i915/intel_dsi_vbt.c
+++ b/drivers/gpu/drm/i915/intel_dsi_vbt.c
@@ -510,6 +510,44 @@ int intel_dsi_vbt_get_modes(struct intel_dsi *intel_dsi)
return 1;
 }
 
+static void intel_dsi_log_params(struct intel_dsi *intel_dsi)
+{
+   DRM_DEBUG_KMS("Pclk %d\n", intel_dsi->pclk);
+   DRM_DEBUG_KMS("Pixel overlap %d\n", intel_dsi->pixel_overlap);
+   DRM_DEBUG_KMS("Lane count %d\n", intel_dsi->lane_count);
+   DRM_DEBUG_KMS("DPHY param reg 0x%x\n", intel_dsi->dphy_reg);
+   DRM_DEBUG_KMS("Video mode format %s\n",
+ intel_dsi->video_mode_format == 
VIDEO_MODE_NON_BURST_WITH_SYNC_PULSE ?
+ "non-burst with sync pulse" :
+ intel_dsi->video_mode_format == 
VIDEO_MODE_NON_BURST_WITH_SYNC_EVENTS ?
+ "non-burst with sync events" :
+ intel_dsi->video_mode_format == VIDEO_MODE_BURST ?
+ "burst" : "");
+   DRM_DEBUG_KMS("Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
+   DRM_DEBUG_KMS("Reset timer %d\n", intel_dsi->rst_timer_val);
+   DRM_DEBUG_KMS("Eot %s\n", enableddisabled(intel_dsi->eotp_pkt));
+   DRM_DEBUG_KMS("Clockstop %s\n", 
enableddisabled(!intel_dsi->clock_stop));
+   DRM_DEBUG_KMS("Mode %s\n", intel_dsi->operation_mode ? "command" : 
"video");
+   if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK)
+   DRM_DEBUG_KMS("Dual link: DSI_DUAL_LINK_FRONT_BACK\n");
+   else if (intel_dsi->dual_link == DSI_DUAL_LINK_PIXEL_ALT)
+   DRM_DEBUG_KMS("Dual link: DSI_DUAL_LINK_PIXEL_ALT\n");
+   else
+   DRM_DEBUG_KMS("Dual link: NONE\n");
+   DRM_DEBUG_KMS("Pixel Format %d\n", intel_dsi->pixel_format);
+   DRM_DEBUG_KMS("TLPX %d\n", intel_dsi->escape_clk_div);
+   DRM_DEBUG_KMS("LP RX Timeout 0x%x\n", intel_dsi->lp_rx_timeout);
+   DRM_DEBUG_KMS("Turnaround Timeout 0x%x\n", intel_dsi->turn_arnd_val);
+   DRM_DEBUG_KMS("Init Count 0x%x\n", intel_dsi->init_count);
+   DRM_DEBUG_KMS("HS to LP Count 0x%x\n", intel_dsi->hs_to_lp_count);
+   DRM_DEBUG_KMS("LP Byte Clock %d\n", intel_dsi->lp_byte_clk);
+   DRM_DEBUG_KMS("DBI BW Timer 0x%x\n", intel_dsi->bw_timer);
+   DRM_DEBUG_KMS("LP to HS Clock Count 0x%x\n", 
intel_dsi->clk_lp_to_hs_count);
+   DRM_DEBUG_KMS("HS to LP Clock Count 0x%x\n", 
intel_dsi->clk_hs_to_lp_count);
+   DRM_DEBUG_KMS("BTA %s\n",
+   enableddisabled(!(intel_dsi->video_frmt_cfg_bits & 
DISABLE_VIDEO_BTA)));
+}
+
 #define ICL_PREPARE_CNT_MAX0x7
 #define ICL_CLK_ZERO_CNT_MAX   0xf
 #define ICL_TRAIL_CNT_MAX  0x7
@@ -613,6 +651,8 @@ static void icl_dphy_param_init(struct intel_dsi *intel_dsi)
 HS_TRAIL(trail_cnt) |
 HS_EXIT_OVERRIDE |
 HS_EXIT(exit_zero_cnt));
+
+   intel_dsi_log_params(intel_dsi);
 }
 
 static void vlv_dphy_param_init(struct intel_dsi *intel_dsi)
@@ -772,6 +812,8 @@ static void vlv_dphy_param_init(struct intel_dsi *intel_dsi)
DIV_ROUND_UP(2 * tlpx_ui + trail_cnt * 2 + 8,
8);
intel_dsi->clk_hs_to_lp_count += extra_byte_count;
+
+   intel_dsi_log_params(intel_dsi);
 }
 
 bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id)
@@ -855,41 +897,6 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 
panel_id)
else
vlv_dphy_param_init(intel_dsi);
 
-   DRM_DEBUG_KMS("Pclk %d\n", intel_dsi->pclk);
-   DRM_DEBUG_KMS("Pixel overlap %d\n", intel_dsi->pixel_overlap);
-   DRM_DEBUG_KMS("Lane count %d\n", intel_dsi->lane_count);
-   DRM_DEBUG_KMS("DPHY param reg 0x%x\n", intel_dsi->dphy_reg);
-   DRM_DEBUG_KMS("Video mode format %s\n",
- intel_dsi->video_mode_format == 
VIDEO_MODE_NON_BURST_WITH_SYNC_PULSE ?
- "non-burst with sync pulse" :
- intel_dsi->video_mode_format == 
VIDEO_MODE_NON_BURST_WITH_SYNC_EVENTS ?
- "non-burst with sync events" :
- intel_dsi->video_mode_format == VIDEO_MODE_BURST ?
- "burst" : "");
-   DRM_DEBUG_KMS("Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
-   DRM_DEBUG_KMS("Reset timer %d\n", intel_dsi->rst_timer_val);
-   DRM_DEBUG_KMS("Eot %s\n", enableddisabled(intel_dsi->eotp_pkt));
-   DRM_DEBUG_KMS("Clockstop %s\n", 
enableddisabled(!intel_dsi->clock_stop));
-   DRM_DEBUG_KMS("Mode %s\n", 

[Intel-gfx] [PATCH 4/4] drm/i915/dsi: Read back pclk set by GOP and use that as pclk (v3)

2018-12-01 Thread Hans de Goede
The GOP sometimes initializes the pclk at a (slightly) different frequency
then the pclk which we've calculated.

This commit makes the DSI code read-back the pclk set by the GOP and
if that is within a reasonable margin of the calculated pclk, uses
that instead.

This fixes the first modeset being a full modeset instead of a
fast modeset on systems where the GOP pclk is different.

Changes in v2:
-Use intel_encoder_current_mode() to get the pclk setup by the GOP

Changes in v3:
-Back to the readback approach, skipping the dsi_pll.ctrl / .dev checks
 in intel_pipe_config_compare() when adjust is set leads to:
 [drm:pipe_config_err [i915]] *ERROR* mismatch in dsi_pll.ctrl (...)
 [drm:pipe_config_err [i915]] *ERROR* mismatch in dsi_pll.div (...)
-Do the readback and pclk overriding from vlv_dsi_init(), rather then from
 intel_dsi_vbt_init() as the vbt code should not be touching the hw

Signed-off-by: Hans de Goede 
---
 drivers/gpu/drm/i915/vlv_dsi.c | 20 
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/vlv_dsi.c b/drivers/gpu/drm/i915/vlv_dsi.c
index 2ae1124dbf77..be3af5f6c7a0 100644
--- a/drivers/gpu/drm/i915/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/vlv_dsi.c
@@ -1717,7 +1717,7 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
struct drm_encoder *encoder;
struct intel_connector *intel_connector;
struct drm_connector *connector;
-   struct drm_display_mode *scan, *fixed_mode = NULL;
+   struct drm_display_mode *scan, *current_mode, *fixed_mode = NULL;
enum port port;
 
DRM_DEBUG_KMS("\n");
@@ -1761,6 +1761,9 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
intel_connector->get_hw_state = intel_connector_get_hw_state;
 
intel_encoder->port = port;
+   intel_encoder->type = INTEL_OUTPUT_DSI;
+   intel_encoder->power_domain = POWER_DOMAIN_PORT_DSI;
+   intel_encoder->cloneable = 0;
 
/*
 * On BYT/CHV, pipe A maps to MIPI DSI port A, pipe B maps to MIPI DSI
@@ -1797,6 +1800,18 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
goto err;
}
 
+   /* Use clock read-back from current hw-state for fastboot */
+   current_mode = intel_encoder_current_mode(intel_encoder);
+   if (current_mode) {
+   DRM_DEBUG_KMS("Calculated pclk %d GOP %d\n",
+ intel_dsi->pclk, current_mode->clock);
+   if (intel_fuzzy_clock_check(intel_dsi->pclk,
+   current_mode->clock))
+   intel_dsi->pclk = current_mode->clock;
+
+   kfree(current_mode);
+   }
+
vlv_dphy_param_init(intel_dsi);
 
/*
@@ -1814,9 +1829,6 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
}
}
 
-   intel_encoder->type = INTEL_OUTPUT_DSI;
-   intel_encoder->power_domain = POWER_DOMAIN_PORT_DSI;
-   intel_encoder->cloneable = 0;
drm_connector_init(dev, connector, _dsi_connector_funcs,
   DRM_MODE_CONNECTOR_DSI);
 
-- 
2.19.1

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


[Intel-gfx] [PATCH 1/4] drm/i915: Make intel_fuzzy_clock_check available outside of intel_display.c

2018-12-01 Thread Hans de Goede
The next patch in this series uses intel_fuzzy_clock_check from the
vlv_dsi.c code.

Signed-off-by: Hans de Goede 
---
 drivers/gpu/drm/i915/intel_display.c | 2 +-
 drivers/gpu/drm/i915/intel_drv.h | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 31fd6708a92e..c2980643a1a5 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -11434,7 +11434,7 @@ intel_modeset_pipe_config(struct drm_crtc *crtc,
return 0;
 }
 
-static bool intel_fuzzy_clock_check(int clock1, int clock2)
+bool intel_fuzzy_clock_check(int clock1, int clock2)
 {
int diff;
 
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index db6fa1d0cbda..a1862d1c06f7 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1602,6 +1602,7 @@ int vlv_force_pll_on(struct drm_i915_private *dev_priv, 
enum pipe pipe,
 const struct dpll *dpll);
 void vlv_force_pll_off(struct drm_i915_private *dev_priv, enum pipe pipe);
 int lpt_get_iclkip(struct drm_i915_private *dev_priv);
+bool intel_fuzzy_clock_check(int clock1, int clock2);
 
 /* modesetting asserts */
 void assert_panel_unlocked(struct drm_i915_private *dev_priv,
-- 
2.19.1

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


[Intel-gfx] [PATCH 3/4] drm/i915/dsi: Move vlv/icl_dphy_param_init call out of intel_dsi_vbt_init

2018-12-01 Thread Hans de Goede
The vlv/icl_dphy_param_init calls do various calculations to set dphy
parameters based on the pclk.

Move the calling of vlv/icl_dphy_param_init to vlv_dsi_init to give
vlv_dsi_init a chance to tweak the pclk before these calculations are done.

This also removes the single "if (IS_ICELAKE(dev_priv))" check from
intel_dsi_vbt_init making it fully platform agnostic.

Signed-off-by: Hans de Goede 
---
 drivers/gpu/drm/i915/intel_dsi.h | 2 ++
 drivers/gpu/drm/i915/intel_dsi_vbt.c | 9 ++---
 drivers/gpu/drm/i915/vlv_dsi.c   | 2 ++
 3 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dsi.h b/drivers/gpu/drm/i915/intel_dsi.h
index 49437b02b213..c888c219835f 100644
--- a/drivers/gpu/drm/i915/intel_dsi.h
+++ b/drivers/gpu/drm/i915/intel_dsi.h
@@ -180,5 +180,7 @@ int intel_dsi_vbt_get_modes(struct intel_dsi *intel_dsi);
 void intel_dsi_vbt_exec_sequence(struct intel_dsi *intel_dsi,
 enum mipi_seq seq_id);
 void intel_dsi_msleep(struct intel_dsi *intel_dsi, int msec);
+void icl_dphy_param_init(struct intel_dsi *intel_dsi);
+void vlv_dphy_param_init(struct intel_dsi *intel_dsi);
 
 #endif /* _INTEL_DSI_H */
diff --git a/drivers/gpu/drm/i915/intel_dsi_vbt.c 
b/drivers/gpu/drm/i915/intel_dsi_vbt.c
index 2afd9ddc94e8..f27af47c6e49 100644
--- a/drivers/gpu/drm/i915/intel_dsi_vbt.c
+++ b/drivers/gpu/drm/i915/intel_dsi_vbt.c
@@ -556,7 +556,7 @@ static void intel_dsi_log_params(struct intel_dsi 
*intel_dsi)
 #define ICL_HS_ZERO_CNT_MAX0xf
 #define ICL_EXIT_ZERO_CNT_MAX  0x7
 
-static void icl_dphy_param_init(struct intel_dsi *intel_dsi)
+void icl_dphy_param_init(struct intel_dsi *intel_dsi)
 {
struct drm_device *dev = intel_dsi->base.base.dev;
struct drm_i915_private *dev_priv = to_i915(dev);
@@ -655,7 +655,7 @@ static void icl_dphy_param_init(struct intel_dsi *intel_dsi)
intel_dsi_log_params(intel_dsi);
 }
 
-static void vlv_dphy_param_init(struct intel_dsi *intel_dsi)
+void vlv_dphy_param_init(struct intel_dsi *intel_dsi)
 {
struct drm_device *dev = intel_dsi->base.base.dev;
struct drm_i915_private *dev_priv = to_i915(dev);
@@ -892,11 +892,6 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 
panel_id)
 
intel_dsi->burst_mode_ratio = burst_mode_ratio;
 
-   if (IS_ICELAKE(dev_priv))
-   icl_dphy_param_init(intel_dsi);
-   else
-   vlv_dphy_param_init(intel_dsi);
-
/* delays in VBT are in unit of 100us, so need to convert
 * here in ms
 * Delay (100us) * 100 /1000 = Delay / 10 (ms) */
diff --git a/drivers/gpu/drm/i915/vlv_dsi.c b/drivers/gpu/drm/i915/vlv_dsi.c
index d42ccd127ff4..2ae1124dbf77 100644
--- a/drivers/gpu/drm/i915/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/vlv_dsi.c
@@ -1797,6 +1797,8 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
goto err;
}
 
+   vlv_dphy_param_init(intel_dsi);
+
/*
 * In case of BYT with CRC PMIC, we need to use GPIO for
 * Panel control.
-- 
2.19.1

___
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 [1/4] drm/i915/dsi: Fix pipe_bpp for handling for 6 bpc pixel-formats

2018-12-01 Thread Patchwork
== Series Details ==

Series: series starting with [1/4] drm/i915/dsi: Fix pipe_bpp for handling for 
6 bpc pixel-formats
URL   : https://patchwork.freedesktop.org/series/53352/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
7325fa834a45 drm/i915/dsi: Fix pipe_bpp for handling for 6 bpc pixel-formats
-:87: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#87: FILE: drivers/gpu/drm/i915/vlv_dsi.c:1066:
+   bpp = mipi_dsi_pixel_format_to_bpp(

total: 0 errors, 0 warnings, 1 checks, 115 lines checked
4b3cb6708b5e drm/i915/dsi: Enable dithering for 6 bpc panels
292eb644fe44 drm/i915/dsi: Adjust crtc_clock for burst_mode_ratio
2481df3b8753 drm/i915/dsi: Call drm_connector_cleanup on vlv_dsi_init error 
exit path

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


[Intel-gfx] ✗ Fi.CI.IGT: failure for Restore workarounds after engine reset and unify their handling (rev2)

2018-12-01 Thread Patchwork
== Series Details ==

Series: Restore workarounds after engine reset and unify their handling (rev2)
URL   : https://patchwork.freedesktop.org/series/53313/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5235_full -> Patchwork_10981_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live_workarounds:
- {shard-iclb}:   PASS -> DMESG-FAIL

  * igt@kms_draw_crc@draw-method-xrgb-pwrite-ytiled:
- shard-skl:  PASS -> FAIL

  
 Warnings 

  * igt@pm_rc6_residency@rc6-accuracy:
- shard-snb:  PASS -> SKIP

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_reuse@contexts:
- shard-apl:  PASS -> INCOMPLETE [fdo#103927]

  * igt@gem_ppgtt@blt-vs-render-ctx0:
- shard-skl:  PASS -> TIMEOUT [fdo#108039]

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c:
- shard-kbl:  PASS -> DMESG-WARN [fdo#107956]

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
- shard-glk:  PASS -> FAIL [fdo#108145]

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#107725]

  * igt@kms_chv_cursor_fail@pipe-a-128x128-bottom-edge:
- shard-skl:  PASS -> FAIL [fdo#104671]

  * igt@kms_cursor_crc@cursor-256x256-offscreen:
- shard-skl:  NOTRUN -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-256x85-offscreen:
- shard-skl:  PASS -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-64x21-random:
- shard-apl:  PASS -> FAIL [fdo#103232] +1

  * igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-untiled:
- {shard-iclb}:   PASS -> WARN [fdo#108336] +6

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-onoff:
- shard-apl:  PASS -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
- {shard-iclb}:   PASS -> FAIL [fdo#103167] +1

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-render:
- shard-glk:  PASS -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-blt:
- shard-skl:  NOTRUN -> FAIL [fdo#103167] / [fdo#105682]

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite:
- {shard-iclb}:   PASS -> DMESG-FAIL [fdo#107724] +6

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-gtt:
- shard-skl:  NOTRUN -> FAIL [fdo#105682] +1

  * igt@kms_frontbuffer_tracking@fbcpsr-tilingchange:
- shard-skl:  PASS -> FAIL [fdo#105682] +1

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-cpu:
- shard-skl:  NOTRUN -> FAIL [fdo#103167] +1

  * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-blt:
- shard-skl:  PASS -> FAIL [fdo#103167] +1

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
- {shard-iclb}:   PASS -> INCOMPLETE [fdo#107713]

  * igt@kms_plane@plane-position-covered-pipe-b-planes:
- {shard-iclb}:   PASS -> FAIL [fdo#103166]

  * igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb:
- shard-skl:  NOTRUN -> FAIL [fdo#108145] +3

  * igt@kms_plane_lowres@pipe-c-tiling-y:
- {shard-iclb}:   PASS -> DMESG-WARN [fdo#107724] / [fdo#108336] +21

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-yf:
- shard-glk:  PASS -> FAIL [fdo#103166] +1

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-x:
- shard-apl:  PASS -> FAIL [fdo#103166] +1

  * igt@kms_plane_scaling@pipe-b-plane-scaling:
- {shard-iclb}:   PASS -> DMESG-WARN [fdo#107724] +36

  * igt@kms_rotation_crc@primary-rotation-180:
- shard-skl:  PASS -> FAIL [fdo#103925] / [fdo#107815]

  * igt@kms_setmode@basic:
- shard-kbl:  PASS -> FAIL [fdo#99912]

  * igt@kms_universal_plane@universal-plane-pipe-a-functional:
- {shard-iclb}:   PASS -> DMESG-FAIL [fdo#103166] / [fdo#107724]

  * igt@perf@short-reads:
- shard-skl:  PASS -> FAIL [fdo#103183]

  * igt@pm_rpm@pm-caching:
- shard-skl:  PASS -> INCOMPLETE [fdo#107807]

  * igt@pm_rpm@system-suspend-modeset:
- shard-skl:  PASS -> INCOMPLETE [fdo#104108] / [fdo#107773] / 
[fdo#107807]

  * igt@pm_rps@waitboost:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#102250] / [fdo#108059]

  
 Possible fixes 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/4] drm/i915: Make intel_fuzzy_clock_check available outside of intel_display.c

2018-12-01 Thread Patchwork
== Series Details ==

Series: series starting with [1/4] drm/i915: Make intel_fuzzy_clock_check 
available outside of intel_display.c
URL   : https://patchwork.freedesktop.org/series/53350/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
39f8e6ecede8 drm/i915: Make intel_fuzzy_clock_check available outside of 
intel_display.c
b240c86bae46 drm/i915/dsi: Move logging of DSI VBT parameters to a helper 
function
-:55: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#55: FILE: drivers/gpu/drm/i915/intel_dsi_vbt.c:550:
+   DRM_DEBUG_KMS("BTA %s\n",
+   enableddisabled(!(intel_dsi->video_frmt_cfg_bits & 
DISABLE_VIDEO_BTA)));

total: 0 errors, 0 warnings, 1 checks, 101 lines checked
c3a20d667cb9 drm/i915/dsi: Move vlv/icl_dphy_param_init call out of 
intel_dsi_vbt_init
e196ecfbcd47 drm/i915/dsi: Read back pclk set by GOP and use that as pclk (v3)

___
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 [1/4] drm/i915/dsi: Fix pipe_bpp for handling for 6 bpc pixel-formats

2018-12-01 Thread Patchwork
== Series Details ==

Series: series starting with [1/4] drm/i915/dsi: Fix pipe_bpp for handling for 
6 bpc pixel-formats
URL   : https://patchwork.freedesktop.org/series/53352/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5237 -> Patchwork_10992


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/53352/revisions/1/mbox/

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * {igt@runner@aborted}:
- fi-glk-dsi: NOTRUN -> FAIL
- fi-bxt-dsi: NOTRUN -> FAIL

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence:
- fi-byt-clapper: PASS -> FAIL [fdo#103191] / [fdo#107362]

  * {igt@runner@aborted}:
- {fi-icl-y}: NOTRUN -> FAIL [fdo#108070]

  
 Possible fixes 

  * igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
- fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS

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

  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#108070]: https://bugs.freedesktop.org/show_bug.cgi?id=108070


Participating hosts (49 -> 42)
--

  Additional (1): fi-icl-y 
  Missing(8): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-ctg-p8600 fi-pnv-d510 fi-kbl-7560u 


Build changes
-

* Linux: CI_DRM_5237 -> Patchwork_10992

  CI_DRM_5237: 2f99c4889e4124f9cf50b745d037f432318c4bb4 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4736: 285ebfb3b7adc56586031afa5150c4e5ad40c229 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10992: 2481df3b8753c0420eb8c6e4b2b9d5e1b9f98262 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

2481df3b8753 drm/i915/dsi: Call drm_connector_cleanup on vlv_dsi_init error 
exit path
292eb644fe44 drm/i915/dsi: Adjust crtc_clock for burst_mode_ratio
4b3cb6708b5e drm/i915/dsi: Enable dithering for 6 bpc panels
7325fa834a45 drm/i915/dsi: Fix pipe_bpp for handling for 6 bpc pixel-formats

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10992/
___
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 [1/4] drm/i915: Make intel_fuzzy_clock_check available outside of intel_display.c

2018-12-01 Thread Patchwork
== Series Details ==

Series: series starting with [1/4] drm/i915: Make intel_fuzzy_clock_check 
available outside of intel_display.c
URL   : https://patchwork.freedesktop.org/series/53350/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5237 -> Patchwork_10991


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/53350/revisions/1/mbox/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-ivb-3520m:   PASS -> FAIL [fdo#108880]

  * {igt@runner@aborted}:
- {fi-icl-y}: NOTRUN -> FAIL [fdo#108070]

  
 Possible fixes 

  * igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
- fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS

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

  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#108070]: https://bugs.freedesktop.org/show_bug.cgi?id=108070
  [fdo#108880]: https://bugs.freedesktop.org/show_bug.cgi?id=108880


Participating hosts (49 -> 43)
--

  Additional (1): fi-icl-y 
  Missing(7): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-ctg-p8600 fi-kbl-7560u 


Build changes
-

* Linux: CI_DRM_5237 -> Patchwork_10991

  CI_DRM_5237: 2f99c4889e4124f9cf50b745d037f432318c4bb4 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4736: 285ebfb3b7adc56586031afa5150c4e5ad40c229 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10991: e196ecfbcd479f42f14dffe9f605e07f72d10329 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

e196ecfbcd47 drm/i915/dsi: Read back pclk set by GOP and use that as pclk (v3)
c3a20d667cb9 drm/i915/dsi: Move vlv/icl_dphy_param_init call out of 
intel_dsi_vbt_init
b240c86bae46 drm/i915/dsi: Move logging of DSI VBT parameters to a helper 
function
39f8e6ecede8 drm/i915: Make intel_fuzzy_clock_check available outside of 
intel_display.c

== Logs ==

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


[Intel-gfx] [PATCH 2/4] drm/i915/dsi: Enable dithering for 6 bpc panels

2018-12-01 Thread Hans de Goede
The display engine has 2 dithering enable bits which both need to be set
for dithering to happen, 1 in the PIPECONF register which is taken care of
by i9xx_set_pipeconf() and a second bit at the encoder level.

The dsi code was not setting the encoder level dithering enable bit causing
dithering to be disabled, this commit fixes this.

Signed-off-by: Hans de Goede 
---
 drivers/gpu/drm/i915/vlv_dsi.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/vlv_dsi.c b/drivers/gpu/drm/i915/vlv_dsi.c
index c10def5efa22..c21cbfa9653c 100644
--- a/drivers/gpu/drm/i915/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/vlv_dsi.c
@@ -711,6 +711,10 @@ static void intel_dsi_port_enable(struct intel_encoder 
*encoder,
LANE_CONFIGURATION_DUAL_LINK_B :
LANE_CONFIGURATION_DUAL_LINK_A;
}
+
+   if (intel_dsi->pixel_format != MIPI_DSI_FMT_RGB888)
+   temp |= DITHERING_ENABLE;
+
/* assert ip_tg_enable signal */
I915_WRITE(port_ctrl, temp | DPI_ENABLE);
POSTING_READ(port_ctrl);
-- 
2.19.1

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


[Intel-gfx] [PATCH 3/4] drm/i915/dsi: Adjust crtc_clock for burst_mode_ratio

2018-12-01 Thread Hans de Goede
On devices with a burst_mode_ratio which is not 100 (1:1), the pclk
will have a different value then drm_display_mode.clock .

On a Prowise PT301 tablet where vbt.lfp_lvds_vbt_mode.clock is 66100 and
burst_mode_ratio is 130 this leads to the following errors:

[drm:pipe_config_err [i915]] *ERROR* mismatch in
pixel_rate (expected 66100, found 86458)
[drm:pipe_config_err [i915]] *ERROR* mismatch in
base.adjusted_mode.crtc_clock (expected 66100, found 86458)
[drm:pipe_config_err [i915]] *ERROR* mismatch in
port_clock (expected 66100, found 86458)

This commit makes intel_dsi_compute_config() set
pipe_config.adjusted_mode.crtc_clock, taking the burst_mode_ratio into
account fixing this.

Signed-off-by: Hans de Goede 
---
 drivers/gpu/drm/i915/vlv_dsi.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/vlv_dsi.c b/drivers/gpu/drm/i915/vlv_dsi.c
index c21cbfa9653c..d72ccf557a9c 100644
--- a/drivers/gpu/drm/i915/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/vlv_dsi.c
@@ -347,6 +347,10 @@ static bool intel_dsi_compute_config(struct intel_encoder 
*encoder,
return false;
}
 
+   adjusted_mode->crtc_clock =
+   DIV_ROUND_UP(adjusted_mode->crtc_clock *
+intel_dsi->burst_mode_ratio, 100);
+
pipe_config->clock_set = true;
 
return true;
-- 
2.19.1

___
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 [CI,1/2] drm/i915/skl: Rework MOCS tables to keep common part in a define

2018-12-01 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915/skl: Rework MOCS tables to keep 
common part in a define
URL   : https://patchwork.freedesktop.org/series/53337/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5236_full -> Patchwork_10983_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_suspend@forcewake:
- shard-skl:  PASS -> INCOMPLETE [fdo#104108] / [fdo#107773] +1

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b:
- shard-hsw:  PASS -> DMESG-WARN [fdo#107956]

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic:
- shard-glk:  PASS -> FAIL [fdo#108145]

  * igt@kms_chv_cursor_fail@pipe-a-128x128-bottom-edge:
- shard-skl:  PASS -> FAIL [fdo#104671]

  * igt@kms_content_protection@atomic:
- shard-apl:  NOTRUN -> FAIL [fdo#108597]

  * igt@kms_cursor_crc@cursor-128x42-onscreen:
- shard-apl:  NOTRUN -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-256x85-offscreen:
- shard-skl:  PASS -> FAIL [fdo#103232]

  * igt@kms_draw_crc@draw-method-rgb565-render-ytiled:
- {shard-iclb}:   PASS -> WARN [fdo#108336] +4

  * igt@kms_flip@2x-flip-vs-expired-vblank:
- shard-glk:  PASS -> FAIL [fdo#105363]

  * igt@kms_flip@basic-flip-vs-wf_vblank:
- {shard-iclb}:   PASS -> DMESG-WARN [fdo#107724] +20

  * igt@kms_flip@flip-vs-expired-vblank:
- shard-skl:  PASS -> FAIL [fdo#105363]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu:
- shard-apl:  NOTRUN -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu:
- shard-apl:  PASS -> FAIL [fdo#103167] +1

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu:
- shard-glk:  PASS -> FAIL [fdo#103167] +2

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite:
- {shard-iclb}:   PASS -> DMESG-FAIL [fdo#107724] +5

  * igt@kms_frontbuffer_tracking@fbcpsr-tilingchange:
- shard-skl:  PASS -> FAIL [fdo#105682] +1

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move:
- {shard-iclb}:   PASS -> FAIL [fdo#103167] +5

  * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-blt:
- shard-skl:  PASS -> FAIL [fdo#103167] +1

  * igt@kms_plane@pixel-format-pipe-a-planes:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103166]
- shard-skl:  NOTRUN -> DMESG-WARN [fdo#106885]

  * igt@kms_plane@plane-position-covered-pipe-c-planes:
- {shard-iclb}:   PASS -> FAIL [fdo#103166] +2

  * igt@kms_plane@plane-position-hole-dpms-pipe-a-planes:
- {shard-iclb}:   PASS -> DMESG-WARN [fdo#107724] / [fdo#108336] +14

  * igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
- shard-skl:  PASS -> FAIL [fdo#107815] / [fdo#108145]

  * igt@kms_plane_alpha_blend@pipe-c-alpha-basic:
- shard-apl:  NOTRUN -> FAIL [fdo#108145]

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl:  PASS -> FAIL [fdo#107815]

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
- shard-apl:  NOTRUN -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
- shard-glk:  PASS -> FAIL [fdo#103166] +2

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
- shard-apl:  PASS -> FAIL [fdo#103166]

  * igt@kms_rotation_crc@primary-rotation-180:
- shard-skl:  PASS -> FAIL [fdo#103925] / [fdo#107815]

  * igt@kms_universal_plane@universal-plane-pipe-a-functional:
- {shard-iclb}:   PASS -> DMESG-FAIL [fdo#103166] / [fdo#107724]

  * igt@kms_vblank@pipe-a-ts-continuation-modeset-rpm:
- shard-apl:  PASS -> DMESG-WARN [fdo#103558] / [fdo#105602] +17

  * igt@perf@short-reads:
- shard-skl:  PASS -> FAIL [fdo#103183]

  * igt@pm_rpm@debugfs-forcewake-user:
- shard-skl:  PASS -> INCOMPLETE [fdo#107807]

  * igt@pm_rpm@dpms-lpsp:
- {shard-iclb}:   PASS -> INCOMPLETE [fdo#108840]

  * igt@pm_rpm@system-suspend-execbuf:
- shard-skl:  PASS -> INCOMPLETE [fdo#104108] / [fdo#107807]

  
 Possible fixes 

  * igt@gem_pwrite_pread@snooped-copy-performance:
- shard-apl:  INCOMPLETE [fdo#103927] -> PASS

  * igt@kms_ccs@pipe-a-missing-ccs-buffer:
- {shard-iclb}:   DMESG-WARN [fdo#107724] -> PASS +8

  * igt@kms_chv_cursor_fail@pipe-a-128x128-top-edge:
- {shard-iclb}:   DMESG-WARN [fdo#107724] / [fdo#108336] -> PASS +2

  * igt@kms_cursor_crc@cursor-128x128-suspend:
- shard-skl:  INCOMPLETE [fdo#104108] -> PASS

  * igt@kms_cursor_crc@cursor-256x256-dpms:
- shard-glk:  FAIL [fdo#103232] -> PASS +1

  * 

Re: [Intel-gfx] [PATCH 7/7] drm/i915/execlists: Apply a full mb before execution for Braswell

2018-12-01 Thread Chris Wilson
Quoting Chris Wilson (2018-12-01 09:52:31)
> Braswell is really picky about having our writes posted to memory before
> we execute or else the GPU may see stale values. A wmb() is insufficient
> as it only ensures the writes are visible to other cores, we need a full
> mb() to ensure the writes are in memory and visible to the GPU.
> 
> The most frequent failure in flushing before execution is that we see
> stale PTE values and execute the wrong pages.
> 
> References: 987abd5c62f9 ("drm/i915/execlists: Force write serialisation into 
> context image vs execution")
> Signed-off-by: Chris Wilson 
> Cc: Mika Kuoppala 
> Cc: Tvrtko Ursulin 
> Cc: Joonas Lahtinen 
> Cc: sta...@vger.kernel.org
> ---
>  drivers/gpu/drm/i915/intel_lrc.c | 6 +-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c 
> b/drivers/gpu/drm/i915/intel_lrc.c
> index 0a690c557113..cad1228f6503 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -379,8 +379,12 @@ static u64 execlists_update_context(struct i915_request 
> *rq)
>  * may not be visible to the HW prior to the completion of the UC
>  * register write and that we may begin execution from the context
>  * before its image is complete leading to invalid PD chasing.
> +*
> +* Furthermore, Braswell wants a full mb to be sure that the writes
> +* are coherent in memory (visible to the GPU) prior to execution,
> +* and not just visible to other CPUs (as is the result of wmb).
>  */
> -   wmb();
> +   mb();

Scratch that. Just took ages to hit this time. It seemed so promising!
-Chris
___
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 [v3,1/2] drm/i915: Add HAS_DISPLAY() and use it

2018-12-01 Thread Patchwork
== Series Details ==

Series: series starting with [v3,1/2] drm/i915: Add HAS_DISPLAY() and use it
URL   : https://patchwork.freedesktop.org/series/53341/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5237_full -> Patchwork_10985_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@gem_eio@in-flight-internal-1us:
- {shard-iclb}:   PASS -> INCOMPLETE

  * igt@kms_draw_crc@draw-method-xrgb-pwrite-ytiled:
- shard-skl:  PASS -> FAIL

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@debugfs_test@read_all_entries_display_off:
- shard-skl:  PASS -> INCOMPLETE [fdo#104108] +1

  * igt@gem_exec_schedule@pi-ringfull-bsd:
- shard-skl:  NOTRUN -> FAIL [fdo#103158]

  * igt@i915_suspend@shrink:
- shard-hsw:  NOTRUN -> DMESG-WARN [fdo#108784]
- {shard-iclb}:   NOTRUN -> DMESG-WARN [fdo#108784]

  * igt@kms_busy@extended-modeset-hang-newfb-render-a:
- shard-snb:  PASS -> DMESG-WARN [fdo#107956]

  * igt@kms_busy@extended-modeset-hang-newfb-render-b:
- shard-skl:  NOTRUN -> DMESG-WARN [fdo#107956]

  * igt@kms_chv_cursor_fail@pipe-a-128x128-bottom-edge:
- shard-skl:  PASS -> FAIL [fdo#104671]

  * igt@kms_cursor_crc@cursor-256x256-dpms:
- shard-glk:  PASS -> FAIL [fdo#103232] +1

  * igt@kms_cursor_crc@cursor-256x256-suspend:
- shard-kbl:  PASS -> DMESG-WARN [fdo#108566]

  * igt@kms_cursor_crc@cursor-256x85-offscreen:
- shard-skl:  PASS -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-64x21-sliding:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103232] +2

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
- shard-hsw:  PASS -> FAIL [fdo#102887]
- shard-glk:  PASS -> FAIL [fdo#105363]

  * igt@kms_flip@plain-flip-fb-recreate-interruptible:
- shard-skl:  PASS -> FAIL [fdo#100368]

  * igt@kms_flip_tiling@flip-changes-tiling-y:
- shard-skl:  PASS -> FAIL [fdo#107931] / [fdo#108303]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu:
- shard-apl:  PASS -> FAIL [fdo#103167] +2

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen:
- shard-glk:  PASS -> FAIL [fdo#103167] +1

  * igt@kms_frontbuffer_tracking@fbc-stridechange:
- shard-skl:  NOTRUN -> FAIL [fdo#105683]

  * igt@kms_frontbuffer_tracking@fbcpsr-tilingchange:
- shard-skl:  PASS -> FAIL [fdo#105682] +1

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt:
- {shard-iclb}:   PASS -> FAIL [fdo#103167] +1

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-blt:
- shard-skl:  PASS -> FAIL [fdo#103167] +1

  * igt@kms_plane@pixel-format-pipe-a-planes:
- shard-skl:  NOTRUN -> DMESG-WARN [fdo#106885]

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-x:
- shard-glk:  PASS -> FAIL [fdo#103166] +1
- shard-apl:  PASS -> FAIL [fdo#103166]

  * igt@kms_rotation_crc@primary-rotation-180:
- shard-skl:  PASS -> FAIL [fdo#103925] / [fdo#107815]

  * igt@kms_setmode@basic:
- shard-apl:  PASS -> FAIL [fdo#99912]
- shard-kbl:  PASS -> FAIL [fdo#99912]

  * igt@pm_rpm@system-suspend-execbuf:
- shard-skl:  PASS -> INCOMPLETE [fdo#104108] / [fdo#107773] / 
[fdo#107807]

  
 Possible fixes 

  * igt@gem_ctx_isolation@rcs0-s3:
- shard-snb:  DMESG-WARN [fdo#102365] -> PASS

  * igt@kms_busy@extended-modeset-hang-newfb-render-c:
- {shard-iclb}:   DMESG-WARN [fdo#107956] -> PASS

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b:
- shard-hsw:  DMESG-WARN [fdo#107956] -> PASS

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c:
- shard-skl:  DMESG-WARN [fdo#107956] -> PASS

  * igt@kms_cursor_crc@cursor-64x64-onscreen:
- shard-apl:  FAIL [fdo#103232] -> PASS +2

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu:
- shard-glk:  FAIL [fdo#103167] -> PASS +3

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-onoff:
- {shard-iclb}:   FAIL 

[Intel-gfx] ✗ Fi.CI.IGT: failure for i915/dp/fec: Fix static check warning

2018-12-01 Thread Patchwork
== Series Details ==

Series: i915/dp/fec: Fix static check warning
URL   : https://patchwork.freedesktop.org/series/53342/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5237_full -> Patchwork_10986_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@kms_draw_crc@draw-method-xrgb-pwrite-ytiled:
- shard-skl:  PASS -> FAIL

  
 Warnings 

  * igt@pm_rc6_residency@rc6-accuracy:
- shard-snb:  SKIP -> PASS

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_schedule@pi-ringfull-bsd:
- shard-skl:  NOTRUN -> FAIL [fdo#103158]

  * igt@i915_suspend@shrink:
- shard-hsw:  NOTRUN -> DMESG-WARN [fdo#108784]
- {shard-iclb}:   NOTRUN -> DMESG-WARN [fdo#108784]

  * igt@kms_busy@extended-modeset-hang-newfb-render-a:
- shard-snb:  PASS -> DMESG-WARN [fdo#107956]

  * igt@kms_busy@extended-modeset-hang-newfb-render-b:
- shard-skl:  NOTRUN -> DMESG-WARN [fdo#107956]

  * igt@kms_chv_cursor_fail@pipe-a-128x128-bottom-edge:
- shard-skl:  PASS -> FAIL [fdo#104671]

  * igt@kms_cursor_crc@cursor-128x128-suspend:
- shard-snb:  PASS -> DMESG-WARN [fdo#102365]

  * igt@kms_cursor_crc@cursor-256x256-dpms:
- shard-glk:  PASS -> FAIL [fdo#103232] +1

  * igt@kms_cursor_crc@cursor-64x21-sliding:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103232] +2
- shard-apl:  PASS -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-64x64-random:
- shard-skl:  PASS -> FAIL [fdo#103232] +1

  * igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-untiled:
- shard-skl:  PASS -> FAIL [fdo#103184]

  * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset:
- shard-apl:  SKIP -> INCOMPLETE [fdo#103927]

  * igt@kms_flip@flip-vs-expired-vblank:
- shard-skl:  PASS -> FAIL [fdo#105363]

  * igt@kms_flip@plain-flip-fb-recreate-interruptible:
- shard-skl:  PASS -> FAIL [fdo#100368]

  * igt@kms_flip_tiling@flip-changes-tiling-y:
- shard-skl:  PASS -> FAIL [fdo#107931] / [fdo#108303]

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-wc:
- shard-skl:  PASS -> FAIL [fdo#105682] +1

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu:
- shard-apl:  PASS -> FAIL [fdo#103167] +1

  * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu:
- shard-glk:  PASS -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt:
- {shard-iclb}:   PASS -> FAIL [fdo#103167] +4

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-blt:
- shard-skl:  PASS -> FAIL [fdo#103167] +1

  * igt@kms_plane@pixel-format-pipe-a-planes:
- shard-skl:  NOTRUN -> DMESG-WARN [fdo#106885]

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
- shard-skl:  PASS -> FAIL [fdo#107815]

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-x:
- shard-glk:  PASS -> FAIL [fdo#103166] +1

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103166]

  * igt@kms_rotation_crc@primary-rotation-180:
- shard-skl:  PASS -> FAIL [fdo#103925] / [fdo#107815]

  * igt@perf@polling:
- shard-hsw:  PASS -> FAIL [fdo#102252]

  * igt@pm_rpm@gem-pread:
- shard-skl:  NOTRUN -> INCOMPLETE [fdo#107807]

  * igt@pm_rpm@legacy-planes-dpms:
- shard-skl:  PASS -> INCOMPLETE [fdo#105959] / [fdo#107807]

  * igt@pm_rpm@modeset-non-lpsp-stress:
- shard-skl:  SKIP -> INCOMPLETE [fdo#107807]

  * igt@pm_rpm@universal-planes:
- shard-skl:  PASS -> INCOMPLETE [fdo#107807] +1

  
 Possible fixes 

  * igt@gem_ctx_isolation@rcs0-s3:
- shard-snb:  DMESG-WARN [fdo#102365] -> PASS

  * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-c:
- shard-kbl:  DMESG-WARN [fdo#107956] -> PASS

  * igt@kms_cursor_crc@cursor-256x256-dpms:
- shard-apl:  FAIL [fdo#103232] -> PASS +1

  * igt@kms_cursor_crc@cursor-64x64-onscreen:
- shard-glk:  FAIL [fdo#103232] -> PASS

  * 

Re: [Intel-gfx] [PATCH] i915/dp/fec: Fix static check warning

2018-12-01 Thread Chris Wilson
Quoting Anusha (2018-11-30 23:14:28)
> From: Anusha Srivatsa 
> 
> Fix indentation error in the commit:
> commit 08cadae8e157 ("i915/dp/fec: Cache the FEC_CAPABLE DPCD register")
> 
> Fixes: 08cadae8e157 ("i915/dp/fec: Cache the FEC_CAPABLE DPCD register")
> Reported-by: Dan Carpenter 
> Cc: Rodrigo Vivi 
> Signed-off-by: Anusha Srivatsa 
> ---
>  drivers/gpu/drm/i915/intel_dp.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 38a6e82153fd..8fa28342cfe3 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -4032,8 +4032,8 @@ static void intel_dp_get_dsc_sink_cap(struct intel_dp 
> *intel_dp)
>   _dp->fec_capable) < 0)
> DRM_ERROR("Failed to read FEC DPCD 
> register\n");
>  
> -   DRM_DEBUG_KMS("FEC CAPABILITY: %x\n",
> - intel_dp->fec_capable);
> +   DRM_DEBUG_KMS("FEC CAPABILITY: %x\n",
> + intel_dp->fec_capable);

I suggested it was useful to know !FEC CAPABILITY. If you are going to
print debug info, might as well show it all.
https://patchwork.freedesktop.org/patch/263060/
-Chris
___
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/icl: combo port vswing programming changes per BSPEC (rev2)

2018-12-01 Thread Patchwork
== Series Details ==

Series: drm/i915/icl: combo port vswing programming changes per BSPEC (rev2)
URL   : https://patchwork.freedesktop.org/series/53340/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5237_full -> Patchwork_10987_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@kms_cursor_crc@cursor-128x128-offscreen:
- shard-kbl:  PASS -> FAIL

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_schedule@pi-ringfull-bsd:
- shard-skl:  NOTRUN -> FAIL [fdo#103158]

  * igt@gem_ppgtt@blt-vs-render-ctx0:
- shard-skl:  PASS -> TIMEOUT [fdo#108039]

  * igt@i915_suspend@shrink:
- shard-hsw:  NOTRUN -> DMESG-WARN [fdo#108784]
- {shard-iclb}:   NOTRUN -> DMESG-WARN [fdo#108784]

  * igt@kms_atomic_transition@plane-all-modeset-transition:
- shard-kbl:  PASS -> DMESG-WARN [fdo#103313] / [fdo#103558] / 
[fdo#105602]

  * igt@kms_busy@extended-modeset-hang-newfb-render-a:
- shard-snb:  PASS -> DMESG-WARN [fdo#107956]

  * igt@kms_busy@extended-modeset-hang-newfb-render-b:
- shard-skl:  NOTRUN -> DMESG-WARN [fdo#107956]

  * igt@kms_cursor_crc@cursor-128x128-offscreen:
- shard-skl:  PASS -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-64x21-sliding:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103232] +2

  * igt@kms_cursor_crc@cursor-size-change:
- shard-glk:  PASS -> FAIL [fdo#103232] +2

  * igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-untiled:
- shard-skl:  PASS -> FAIL [fdo#103184]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu:
- shard-apl:  PASS -> FAIL [fdo#103167] +1

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen:
- shard-glk:  PASS -> FAIL [fdo#103167] +2
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103167] +2

  * igt@kms_frontbuffer_tracking@fbc-stridechange:
- shard-skl:  NOTRUN -> FAIL [fdo#105683]

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt:
- {shard-iclb}:   PASS -> FAIL [fdo#103167] +4

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
- shard-skl:  PASS -> INCOMPLETE [fdo#104108] / [fdo#107773] +1

  * igt@kms_plane@pixel-format-pipe-a-planes:
- shard-skl:  NOTRUN -> DMESG-WARN [fdo#106885]

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
- {shard-iclb}:   PASS -> INCOMPLETE [fdo#107713]

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
- {shard-iclb}:   PASS -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-x:
- shard-apl:  PASS -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
- {shard-iclb}:   NOTRUN -> FAIL [fdo#103166]

  * igt@kms_setmode@basic:
- shard-apl:  PASS -> FAIL [fdo#99912]

  * igt@kms_universal_plane@cursor-fb-leak-pipe-b:
- shard-kbl:  PASS -> DMESG-WARN [fdo#103558] / [fdo#105602] +14

  * igt@pm_rpm@sysfs-read:
- shard-skl:  PASS -> INCOMPLETE [fdo#107807] +1

  * igt@pm_rpm@system-suspend-modeset:
- {shard-iclb}:   PASS -> INCOMPLETE [fdo#107713] / [fdo#108840]

  
 Possible fixes 

  * igt@gem_ctx_isolation@rcs0-s3:
- shard-snb:  DMESG-WARN [fdo#102365] -> PASS

  * igt@kms_busy@extended-pageflip-hang-newfb-render-a:
- shard-apl:  DMESG-WARN [fdo#107956] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
- shard-apl:  FAIL [fdo#103167] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu:
- shard-glk:  FAIL [fdo#103167] -> PASS +3

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-onoff:
- {shard-iclb}:   FAIL [fdo#103167] -> PASS +2

  * igt@kms_plane@plane-position-covered-pipe-c-planes:
- shard-glk:  FAIL [fdo#103166] -> PASS +1

  * igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
- shard-skl:  FAIL [fdo#107815] / [fdo#108145] -> PASS

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl:  FAIL [fdo#107815] -> PASS

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-y:
- shard-apl:  FAIL [fdo#103166] -> PASS +2

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-x: