Re: [Intel-gfx] [PATCH v2] drm/i915: Disable -Wuninitialized

2019-01-25 Thread Nathan Chancellor
On Fri, Jan 25, 2019 at 11:34:19PM -0800, Nick Desaulniers wrote:
> On Fri, Jan 25, 2019 at 11:13 PM Nathan Chancellor
>  wrote:
> >
> > This warning is disabled by default in scripts/Makefile.extrawarn when
> > W= is not provided but this Makefile adds -Wall after this warning is
> > disabled so it shows up in the build when it shouldn't:
> >
> > In file included from drivers/gpu/drm/i915/intel_breadcrumbs.c:895:
> > drivers/gpu/drm/i915/selftests/intel_breadcrumbs.c:350:34: error:
> > variable 'wq' is uninitialized when used within its own initialization
> > [-Werror,-Wuninitialized]
> > DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
> > ^~
> > ./include/linux/wait.h:74:63: note: expanded from macro
> > 'DECLARE_WAIT_QUEUE_HEAD_ONSTACK'
> > struct wait_queue_head name = __WAIT_QUEUE_HEAD_INIT_ONSTACK(name)
> >  ^~~~
> > ./include/linux/wait.h:72:33: note: expanded from macro
> > '__WAIT_QUEUE_HEAD_INIT_ONSTACK'
> > ({ init_waitqueue_head(&name); name; })
> >^~~~
> > 1 error generated.
> >
> > Explicitly disable the warning like commit 46e2068081e9 ("drm/i915:
> > Disable some extra clang warnings").
> >
> > Link: https://github.com/ClangBuiltLinux/linux/issues/220
> > Signed-off-by: Nathan Chancellor 
> 
> Reviewed-by: Nick Desaulniers 
> 
> probably could give Chris Wilson the suggested by tag.
> https://lore.kernel.org/lkml/154513398652.1108.7150969916024071452@skylake-alporthouse-com/
> 

Ugh you're right, completely slipped my mind.

Suggested-by: Chris Wilson 

> > ---
> >
> > v1 -> v2:
> >
> > * Rather than disable the warning for the problematic folder, disable it
> >   for the entire folder like Matthias's commit.
> 
> Thanks for following up with a v2.

Thank you for the review!
Nathan

> 
> -- 
> Thanks,
> ~Nick Desaulniers
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Disable -Wuninitialized

2019-01-25 Thread Patchwork
== Series Details ==

Series: drm/i915: Disable -Wuninitialized
URL   : https://patchwork.freedesktop.org/series/55769/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5488 -> Patchwork_12051


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850:   PASS -> INCOMPLETE [fdo#107718]

  * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b:
- fi-byt-clapper: PASS -> FAIL [fdo#107362]

  * igt@prime_vgem@basic-fence-flip:
- fi-gdg-551: PASS -> FAIL [fdo#103182]

  
 Possible fixes 

  * igt@kms_busy@basic-flip-a:
- fi-gdg-551: FAIL [fdo#103182] -> PASS

  * igt@kms_chamelium@dp-edid-read:
- fi-kbl-7500u:   WARN -> PASS

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

  * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence:
- fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +1

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

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


Participating hosts (44 -> 41)
--

  Additional (1): fi-icl-y 
  Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


Build changes
-

* Linux: CI_DRM_5488 -> Patchwork_12051

  CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12051: 5b4a07df5c73b2d846673614d4d508e6f378109c @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

5b4a07df5c73 drm/i915: Disable -Wuninitialized

== Logs ==

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


Re: [Intel-gfx] [PATCH v2] drm/i915: Disable -Wuninitialized

2019-01-25 Thread Nick Desaulniers
On Fri, Jan 25, 2019 at 11:34 PM Nick Desaulniers
 wrote:
>
> On Fri, Jan 25, 2019 at 11:13 PM Nathan Chancellor
>  wrote:
> >
> > This warning is disabled by default in scripts/Makefile.extrawarn when
> > W= is not provided but this Makefile adds -Wall after this warning is
> > disabled so it shows up in the build when it shouldn't:
> >
> > In file included from drivers/gpu/drm/i915/intel_breadcrumbs.c:895:
> > drivers/gpu/drm/i915/selftests/intel_breadcrumbs.c:350:34: error:
> > variable 'wq' is uninitialized when used within its own initialization
> > [-Werror,-Wuninitialized]
> > DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
> > ^~
> > ./include/linux/wait.h:74:63: note: expanded from macro
> > 'DECLARE_WAIT_QUEUE_HEAD_ONSTACK'
> > struct wait_queue_head name = __WAIT_QUEUE_HEAD_INIT_ONSTACK(name)
> >  ^~~~
> > ./include/linux/wait.h:72:33: note: expanded from macro
> > '__WAIT_QUEUE_HEAD_INIT_ONSTACK'
> > ({ init_waitqueue_head(&name); name; })
> >^~~~
> > 1 error generated.
> >
> > Explicitly disable the warning like commit 46e2068081e9 ("drm/i915:
> > Disable some extra clang warnings").
> >
> > Link: https://github.com/ClangBuiltLinux/linux/issues/220
> > Signed-off-by: Nathan Chancellor 
>
> Reviewed-by: Nick Desaulniers 

gah! I am on my work device, in that case it should be:
Reviewed-by: Nick Desaulniers 

>
> probably could give Chris Wilson the suggested by tag.
> https://lore.kernel.org/lkml/154513398652.1108.7150969916024071452@skylake-alporthouse-com/
>
> > ---
> >
> > v1 -> v2:
> >
> > * Rather than disable the warning for the problematic folder, disable it
> >   for the entire folder like Matthias's commit.
>
> Thanks for following up with a v2.
>
> --
> Thanks,
> ~Nick Desaulniers



-- 
Thanks,
~Nick Desaulniers
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v2] drm/i915: Disable -Wuninitialized

2019-01-25 Thread Nick Desaulniers
On Fri, Jan 25, 2019 at 11:13 PM Nathan Chancellor
 wrote:
>
> This warning is disabled by default in scripts/Makefile.extrawarn when
> W= is not provided but this Makefile adds -Wall after this warning is
> disabled so it shows up in the build when it shouldn't:
>
> In file included from drivers/gpu/drm/i915/intel_breadcrumbs.c:895:
> drivers/gpu/drm/i915/selftests/intel_breadcrumbs.c:350:34: error:
> variable 'wq' is uninitialized when used within its own initialization
> [-Werror,-Wuninitialized]
> DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
> ^~
> ./include/linux/wait.h:74:63: note: expanded from macro
> 'DECLARE_WAIT_QUEUE_HEAD_ONSTACK'
> struct wait_queue_head name = __WAIT_QUEUE_HEAD_INIT_ONSTACK(name)
>  ^~~~
> ./include/linux/wait.h:72:33: note: expanded from macro
> '__WAIT_QUEUE_HEAD_INIT_ONSTACK'
> ({ init_waitqueue_head(&name); name; })
>^~~~
> 1 error generated.
>
> Explicitly disable the warning like commit 46e2068081e9 ("drm/i915:
> Disable some extra clang warnings").
>
> Link: https://github.com/ClangBuiltLinux/linux/issues/220
> Signed-off-by: Nathan Chancellor 

Reviewed-by: Nick Desaulniers 

probably could give Chris Wilson the suggested by tag.
https://lore.kernel.org/lkml/154513398652.1108.7150969916024071452@skylake-alporthouse-com/

> ---
>
> v1 -> v2:
>
> * Rather than disable the warning for the problematic folder, disable it
>   for the entire folder like Matthias's commit.

Thanks for following up with a v2.

-- 
Thanks,
~Nick Desaulniers
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Disable -Wuninitialized

2019-01-25 Thread Patchwork
== Series Details ==

Series: drm/i915: Disable -Wuninitialized
URL   : https://patchwork.freedesktop.org/series/55769/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915: Disable -Wuninitialized
-
+./arch/x86/include/asm/pgtable_64.h:61:9: warning: cast from non-scalar
+./arch/x86/include/asm/pgtable_64.h:61:9: warning: cast to non-scalar
+drivers/gpu/drm/i915/gvt/gtt.c:757:9:expected void [noderef] **slot
+drivers/gpu/drm/i915/gvt/gtt.c:757:9:expected void **slot
+drivers/gpu/drm/i915/gvt/gtt.c:757:9:expected void **slot
+drivers/gpu/drm/i915/gvt/gtt.c:757:9:expected void **slot
+drivers/gpu/drm/i915/gvt/gtt.c:757:9:got void [noderef] **
+drivers/gpu/drm/i915/gvt/gtt.c:757:9:got void [noderef] **
+drivers/gpu/drm/i915/gvt/gtt.c:757:9:got void [noderef] **
+drivers/gpu/drm/i915/gvt/gtt.c:757:9:got void **slot
+drivers/gpu/drm/i915/gvt/gtt.c:757:9: warning: incorrect type in argument 1 
(different address spaces)
+drivers/gpu/drm/i915/gvt/gtt.c:757:9: warning: incorrect type in assignment 
(different address spaces)
+drivers/gpu/drm/i915/gvt/gtt.c:757:9: warning: incorrect type in assignment 
(different address spaces)
+drivers/gpu/drm/i915/gvt/gtt.c:757:9: warning: incorrect type in assignment 
(different address spaces)
+drivers/gpu/drm/i915/gvt/gtt.c:758:45:expected void [noderef] **slot
+drivers/gpu/drm/i915/gvt/gtt.c:758:45:got void **slot
+drivers/gpu/drm/i915/gvt/gtt.c:758:45: warning: incorrect type in argument 1 
(different address spaces)
+drivers/gpu/drm/i915/gvt/mmio.c:282:23: warning: memcpy with byte count of 
279040
+drivers/gpu/drm/i915/gvt/mmio.c:283:23: warning: memcpy with byte count of 
279040
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/gvt/vgpu.c:196:48: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_cmd_parser.c:1104:35: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_cmd_parser.c:1104:35: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_debugfs.c:4186:41: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_debugfs.c:4186:41: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_debugfs.c:4240:49: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_debugfs.c:4240:49: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_debugfs.c:4296:49: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_debugfs.c:4296:49: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_drv.c:1189:35: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_drv.c:1189:35: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_drv.c:349:25: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_drv.h:3541:16: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_drv.h:3551:16: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:42:43: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:42:43: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:50:43: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:50:43: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:50:43: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:50:43: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:50:43: warning: expression using sizeof(void

[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: Don't send MST hotplugs until after resume

2019-01-25 Thread Patchwork
== Series Details ==

Series: drm/i915: Don't send MST hotplugs until after resume
URL   : https://patchwork.freedesktop.org/series/55763/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5488_full -> Patchwork_12049_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@prime_busy@hang-render:
- shard-hsw:  PASS -> FAIL

  
 Suppressed 

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

  * {igt@runner@aborted}:
- shard-kbl:  ( 5 FAIL ) -> ( 4 FAIL )

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@bcs0-s3:
- shard-kbl:  PASS -> INCOMPLETE [fdo#103665]

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

  * igt@kms_color@pipe-a-degamma:
- shard-apl:  PASS -> FAIL [fdo#104782] / [fdo#108145]

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

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

  * igt@kms_flip@modeset-vs-vblank-race:
- shard-glk:  PASS -> FAIL [fdo#103060]

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

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

  
 Possible fixes 

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

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

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

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

  
 Warnings 

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

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

  [fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (7 -> 5)
--

  Missing(2): shard-skl shard-iclb 


Build changes
-

* Linux: CI_DRM_5488 -> Patchwork_12049

  CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12049: 1418cd83041b37deeb0d3d383c3ed492231a9d0b @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


Re: [Intel-gfx] [PATCH v2] drm/i915: Disable -Wuninitialized

2019-01-25 Thread Nathan Chancellor
On Sat, Jan 26, 2019 at 12:11:23AM -0700, Nathan Chancellor wrote:
> This warning is disabled by default in scripts/Makefile.extrawarn when
> W= is not provided but this Makefile adds -Wall after this warning is
> disabled so it shows up in the build when it shouldn't:
> 
> In file included from drivers/gpu/drm/i915/intel_breadcrumbs.c:895:
> drivers/gpu/drm/i915/selftests/intel_breadcrumbs.c:350:34: error:
> variable 'wq' is uninitialized when used within its own initialization
> [-Werror,-Wuninitialized]
> DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
> ^~
> ./include/linux/wait.h:74:63: note: expanded from macro
> 'DECLARE_WAIT_QUEUE_HEAD_ONSTACK'
> struct wait_queue_head name = __WAIT_QUEUE_HEAD_INIT_ONSTACK(name)
>  ^~~~
> ./include/linux/wait.h:72:33: note: expanded from macro
> '__WAIT_QUEUE_HEAD_INIT_ONSTACK'
> ({ init_waitqueue_head(&name); name; })
>^~~~
> 1 error generated.
> 
> Explicitly disable the warning like commit 46e2068081e9 ("drm/i915:
> Disable some extra clang warnings").
> 
> Link: https://github.com/ClangBuiltLinux/linux/issues/220
> Signed-off-by: Nathan Chancellor 
> ---
> 
> v1 -> v2:
> 
> * Rather than disable the warning for the problematic folder, disable it
>   for the entire folder like Matthias's commit.
> 

Link to v1: 
https://lore.kernel.org/lkml/20181025193601.11746-1-natechancel...@gmail.com/

Since I forgot '--in-reply-to' :(

>  drivers/gpu/drm/i915/Makefile | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
> index 8300efe60fe1..210d0e8777b6 100644
> --- a/drivers/gpu/drm/i915/Makefile
> +++ b/drivers/gpu/drm/i915/Makefile
> @@ -22,6 +22,7 @@ subdir-ccflags-y += $(call cc-disable-warning, 
> unused-but-set-variable)
>  subdir-ccflags-y += $(call cc-disable-warning, sign-compare)
>  subdir-ccflags-y += $(call cc-disable-warning, sometimes-uninitialized)
>  subdir-ccflags-y += $(call cc-disable-warning, initializer-overrides)
> +subdir-ccflags-y += $(call cc-disable-warning, uninitialized)
>  subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror
>  
>  # Fine grained warnings disable
> -- 
> 2.20.1
> 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2] drm/i915: Disable -Wuninitialized

2019-01-25 Thread Nathan Chancellor
This warning is disabled by default in scripts/Makefile.extrawarn when
W= is not provided but this Makefile adds -Wall after this warning is
disabled so it shows up in the build when it shouldn't:

In file included from drivers/gpu/drm/i915/intel_breadcrumbs.c:895:
drivers/gpu/drm/i915/selftests/intel_breadcrumbs.c:350:34: error:
variable 'wq' is uninitialized when used within its own initialization
[-Werror,-Wuninitialized]
DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
^~
./include/linux/wait.h:74:63: note: expanded from macro
'DECLARE_WAIT_QUEUE_HEAD_ONSTACK'
struct wait_queue_head name = __WAIT_QUEUE_HEAD_INIT_ONSTACK(name)
     ^~~~
./include/linux/wait.h:72:33: note: expanded from macro
'__WAIT_QUEUE_HEAD_INIT_ONSTACK'
({ init_waitqueue_head(&name); name; })
   ^~~~
1 error generated.

Explicitly disable the warning like commit 46e2068081e9 ("drm/i915:
Disable some extra clang warnings").

Link: https://github.com/ClangBuiltLinux/linux/issues/220
Signed-off-by: Nathan Chancellor 
---

v1 -> v2:

* Rather than disable the warning for the problematic folder, disable it
  for the entire folder like Matthias's commit.

 drivers/gpu/drm/i915/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 8300efe60fe1..210d0e8777b6 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -22,6 +22,7 @@ subdir-ccflags-y += $(call cc-disable-warning, 
unused-but-set-variable)
 subdir-ccflags-y += $(call cc-disable-warning, sign-compare)
 subdir-ccflags-y += $(call cc-disable-warning, sometimes-uninitialized)
 subdir-ccflags-y += $(call cc-disable-warning, initializer-overrides)
+subdir-ccflags-y += $(call cc-disable-warning, uninitialized)
 subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror
 
 # Fine grained warnings disable
-- 
2.20.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 [1/4] drm/i915/psr: Remove PSR2 FIXME

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [1/4] drm/i915/psr: Remove PSR2 FIXME
URL   : https://patchwork.freedesktop.org/series/55762/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5488_full -> Patchwork_12048_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Possible new issues
---

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

### IGT changes ###

 Suppressed 

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

  * {igt@runner@aborted}:
- shard-kbl:  ( 5 FAIL ) -> ( 4 FAIL )

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@bcs0-s3:
- shard-kbl:  PASS -> INCOMPLETE [fdo#103665]

  * igt@i915_selftest@live_hangcheck:
- shard-apl:  PASS -> INCOMPLETE [fdo#103927]

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

  * igt@kms_color@pipe-a-degamma:
- shard-apl:  PASS -> FAIL [fdo#104782] / [fdo#108145]

  * igt@kms_cursor_crc@cursor-128x128-suspend:
- shard-apl:  PASS -> FAIL [fdo#103191] / [fdo#103232]

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

  * igt@kms_flip@2x-flip-vs-dpms:
- shard-hsw:  PASS -> DMESG-WARN [fdo#102614] +1

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

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

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

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

  * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom:
- shard-kbl:  NOTRUN -> DMESG-FAIL [fdo#105763]

  
 Possible fixes 

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

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

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

  * igt@perf_pmu@rc6-runtime-pm-long:
- shard-kbl:  FAIL [fdo#105010] -> PASS

  
 Warnings 

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

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

  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (7 -> 5)
--

  Missing(2): shard-skl shard-iclb 


Build changes
-

* Linux: CI_DRM_5488 -> Patchwork_12048

  CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12048: a0ca8072bf48e1fb3c71b03d271a2b4afe7e4417 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Apply LUT validation checks to platforms more accurately

2019-01-25 Thread Patchwork
== Series Details ==

Series: drm/i915: Apply LUT validation checks to platforms more accurately
URL   : https://patchwork.freedesktop.org/series/55765/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5488 -> Patchwork_12050


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_flip@basic-flip-vs-modeset:
- fi-skl-6700hq:  PASS -> DMESG-WARN [fdo#105998]

  
 Possible fixes 

  * igt@kms_busy@basic-flip-a:
- fi-gdg-551: FAIL [fdo#103182] -> PASS

  * igt@kms_chamelium@dp-edid-read:
- fi-kbl-7500u:   WARN -> PASS

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

  * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence:
- fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +1

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


Participating hosts (44 -> 40)
--

  Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


Build changes
-

* Linux: CI_DRM_5488 -> Patchwork_12050

  CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12050: 0088726a8c5a80b7accbafe0e21b72c5b6d9ecfd @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

0088726a8c5a drm/i915: Apply LUT validation checks to platforms more accurately

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Apply LUT validation checks to platforms more accurately

2019-01-25 Thread Patchwork
== Series Details ==

Series: drm/i915: Apply LUT validation checks to platforms more accurately
URL   : https://patchwork.freedesktop.org/series/55765/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
0088726a8c5a drm/i915: Apply LUT validation checks to platforms more accurately
-:20: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#20: 
References: 
https://lists.freedesktop.org/archives/intel-gfx/2019-January/187634.html

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

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


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Don't send MST hotplugs until after resume

2019-01-25 Thread Patchwork
== Series Details ==

Series: drm/i915: Don't send MST hotplugs until after resume
URL   : https://patchwork.freedesktop.org/series/55763/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5488 -> Patchwork_12049


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_basic@userptr:
- fi-kbl-8809g:   PASS -> DMESG-WARN [fdo#108965]

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

  
 Possible fixes 

  * igt@kms_busy@basic-flip-a:
- fi-gdg-551: FAIL [fdo#103182] -> PASS

  * igt@kms_chamelium@dp-edid-read:
- fi-kbl-7500u:   WARN -> PASS

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

  * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence:
- fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +1

  * igt@pm_rpm@module-reload:
- fi-skl-6770hq:  FAIL [fdo#108511] -> PASS

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

  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511
  [fdo#108654]: https://bugs.freedesktop.org/show_bug.cgi?id=108654
  [fdo#108965]: https://bugs.freedesktop.org/show_bug.cgi?id=108965


Participating hosts (44 -> 40)
--

  Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


Build changes
-

* Linux: CI_DRM_5488 -> Patchwork_12049

  CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12049: 1418cd83041b37deeb0d3d383c3ed492231a9d0b @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

1418cd83041b drm/i915: Don't send MST hotplugs until after resume

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.IGT: failure for icl: Misc PLL patches (rev2)

2019-01-25 Thread Patchwork
== Series Details ==

Series: icl: Misc PLL patches (rev2)
URL   : https://patchwork.freedesktop.org/series/55378/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5488_full -> Patchwork_12047_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@prime_busy@hang-blt:
- shard-hsw:  PASS -> FAIL

  
 Warnings 

  * igt@gem_eio@in-flight-immediate:
- shard-kbl:  DMESG-FAIL -> DMESG-WARN

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@bcs0-s3:
- shard-kbl:  PASS -> INCOMPLETE [fdo#103665]

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

  * igt@kms_color@pipe-a-degamma:
- shard-apl:  PASS -> FAIL [fdo#104782] / [fdo#108145]

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

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

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

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

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
- shard-apl:  PASS -> DMESG-FAIL [fdo#108950]

  
 Possible fixes 

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

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

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

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

  
 Warnings 

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

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
- shard-glk:  DMESG-FAIL [fdo#105763] / [fdo#106538] -> FAIL 
[fdo#109381]

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

  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#106538]: https://bugs.freedesktop.org/show_bug.cgi?id=106538
  [fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108950]: https://bugs.freedesktop.org/show_bug.cgi?id=108950
  [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109381]: https://bugs.freedesktop.org/show_bug.cgi?id=109381


Participating hosts (7 -> 5)
--

  Missing(2): shard-skl shard-iclb 


Build changes
-

* Linux: CI_DRM_5488 -> Patchwork_12047

  CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12047: 4fe541137b10b0f31fbaebc2581792ac9a3dafcf @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12047/
___
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/psr: Remove PSR2 FIXME

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [1/4] drm/i915/psr: Remove PSR2 FIXME
URL   : https://patchwork.freedesktop.org/series/55762/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5488 -> Patchwork_12048


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850:   PASS -> INCOMPLETE [fdo#107718]

  * igt@i915_selftest@live_hangcheck:
- fi-skl-iommu:   PASS -> INCOMPLETE [fdo#108602] / [fdo#108744]

  
 Possible fixes 

  * igt@kms_chamelium@dp-edid-read:
- fi-kbl-7500u:   WARN -> PASS

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

  * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence:
- fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +1

  * igt@pm_rpm@module-reload:
- fi-skl-6770hq:  FAIL [fdo#108511] -> 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#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511
  [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602
  [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744
  [fdo#108915]: https://bugs.freedesktop.org/show_bug.cgi?id=108915


Participating hosts (44 -> 41)
--

  Additional (1): fi-icl-y 
  Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


Build changes
-

* Linux: CI_DRM_5488 -> Patchwork_12048

  CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12048: a0ca8072bf48e1fb3c71b03d271a2b4afe7e4417 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

a0ca8072bf48 drm/i915/psr: Print why PSR or PSR2 was not enabled in debugfs
004d4cfe5a00 drm/psr: Do not enable PSR when a interlaced mode set for all gens
134873148487 drm/i915/psr: Initialize PSR mutex even when sink is not reliable
c3c5516bfe56 drm/i915/psr: Remove PSR2 FIXME

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12048/
___
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/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm/i915: Rename execlists->queue_priority 
to preempt_priority_hint
URL   : https://patchwork.freedesktop.org/series/55750/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5488_full -> Patchwork_12046_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@bcs0-s3:
- shard-kbl:  PASS -> INCOMPLETE [fdo#103665]

  * igt@gem_eio@reset-stress:
- shard-snb:  PASS -> INCOMPLETE [fdo#105411]

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

  * igt@kms_color@pipe-a-degamma:
- shard-apl:  PASS -> FAIL [fdo#104782] / [fdo#108145]

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

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

  * igt@kms_plane@pixel-format-pipe-c-planes:
- shard-apl:  PASS -> FAIL [fdo#103166] +2

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

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

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

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
- shard-apl:  PASS -> DMESG-FAIL [fdo#108950]

  
 Possible fixes 

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

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

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

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

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

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

  * igt@perf_pmu@rc6-runtime-pm-long:
- shard-kbl:  FAIL [fdo#105010] -> PASS

  
 Warnings 

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

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

  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108950]: https://bugs.freedesktop.org/show_bug.cgi?id=108950
  [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (7 -> 5)
--

  Missing(2): shard-skl shard-iclb 


Build changes
-

* Linux: CI_DRM_5488 -> Patchwork_12046

  CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12046: 6f40b811103eee129743c6465e987be7a51e7596 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12046/
___
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/4] drm/i915/psr: Remove PSR2 FIXME

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [1/4] drm/i915/psr: Remove PSR2 FIXME
URL   : https://patchwork.freedesktop.org/series/55762/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915/psr: Remove PSR2 FIXME
Okay!

Commit: drm/i915/psr: Initialize PSR mutex even when sink is not reliable
Okay!

Commit: drm/psr: Do not enable PSR when a interlaced mode set for all gens
Okay!

Commit: drm/i915/psr: Print why PSR or PSR2 was not enabled in debugfs
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3541:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3542:16: warning: expression 
using sizeof(void)

___
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/psr: Remove PSR2 FIXME

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [1/4] drm/i915/psr: Remove PSR2 FIXME
URL   : https://patchwork.freedesktop.org/series/55762/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
c3c5516bfe56 drm/i915/psr: Remove PSR2 FIXME
134873148487 drm/i915/psr: Initialize PSR mutex even when sink is not reliable
004d4cfe5a00 drm/psr: Do not enable PSR when a interlaced mode set for all gens
a0ca8072bf48 drm/i915/psr: Print why PSR or PSR2 was not enabled in debugfs
-:76: WARNING:LONG_LINE: line over 100 characters
#76: FILE: drivers/gpu/drm/i915/intel_psr.c:561:
+   dev_priv->psr.disabled_reason = "PSR2 cannot be enabled because 
resolution is to big";

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

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


[Intel-gfx] [PATCH] drm/i915: Apply LUT validation checks to platforms more accurately

2019-01-25 Thread Matt Roper
Use of the new DRM_COLOR_LUT_NON_DECREASING test was a bit over-zealous;
it doesn't actually need to be applied to the degamma on "bdw-style"
platforms.  Likewise, we overlooked the fact that CHV should have that
test applied to the gamma LUT as well as the degamma LUT.

Rather than adding more complicated platform checking to
intel_color_check(), let's just store the appropriate set of LUT
validation flags for each platform in the intel_device_info structure.

Fixes: 85e2d61e4976 ("drm/i915: Validate userspace-provided color management 
LUT's (v4)")
References: 
https://lists.freedesktop.org/archives/intel-gfx/2019-January/187634.html
Cc: Ville Syrjälä 
Signed-off-by: Matt Roper 
---
 drivers/gpu/drm/i915/i915_pci.c  | 10 --
 drivers/gpu/drm/i915/intel_color.c   | 19 +--
 drivers/gpu/drm/i915/intel_device_info.h |  2 ++
 3 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index 44c23ac60347..17f5a605b0b3 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -69,9 +69,15 @@
 #define BDW_COLORS \
.color = { .degamma_lut_size = 512, .gamma_lut_size = 512 }
 #define CHV_COLORS \
-   .color = { .degamma_lut_size = 65, .gamma_lut_size = 257 }
+   .color = { .degamma_lut_size = 65, .gamma_lut_size = 257, \
+  .degamma_lut_tests = DRM_COLOR_LUT_NON_DECREASING, \
+  .gamma_lut_tests = DRM_COLOR_LUT_NON_DECREASING, \
+   }
 #define GLK_COLORS \
-   .color = { .degamma_lut_size = 0, .gamma_lut_size = 1024 }
+   .color = { .degamma_lut_size = 0, .gamma_lut_size = 1024, \
+  .degamma_lut_tests = DRM_COLOR_LUT_NON_DECREASING | \
+   DRM_COLOR_LUT_EQUAL_CHANNELS, \
+   }
 
 /* Keep in gen based order, and chronological order within a gen */
 
diff --git a/drivers/gpu/drm/i915/intel_color.c 
b/drivers/gpu/drm/i915/intel_color.c
index bc7589656a8f..cd08f58b1e47 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -609,24 +609,15 @@ int intel_color_check(struct intel_crtc_state *crtc_state)
 {
struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev);
size_t gamma_length, degamma_length;
-   uint32_t tests = DRM_COLOR_LUT_NON_DECREASING;
+   u32 gamma_tests, degamma_tests;
 
degamma_length = INTEL_INFO(dev_priv)->color.degamma_lut_size;
gamma_length = INTEL_INFO(dev_priv)->color.gamma_lut_size;
+   degamma_tests = INTEL_INFO(dev_priv)->color.degamma_lut_tests;
+   gamma_tests = INTEL_INFO(dev_priv)->color.gamma_lut_tests;
 
-   /*
-* All of our platforms mandate that the degamma curve be
-* non-decreasing.  Additionally, GLK and gen11 only accept a single
-* value for red, green, and blue in the degamma table.  Make sure
-* userspace didn't try to pass us something we can't handle.
-*
-* We don't have any extra hardware constraints on the gamma table,
-* so no need to explicitly check it.
-*/
-   if (IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 10)
-   tests |= DRM_COLOR_LUT_EQUAL_CHANNELS;
-
-   if (drm_color_lut_check(crtc_state->base.degamma_lut, tests) != 0)
+   if (drm_color_lut_check(crtc_state->base.degamma_lut, degamma_tests) ||
+   drm_color_lut_check(crtc_state->base.gamma_lut, gamma_tests))
return -EINVAL;
 
/*
diff --git a/drivers/gpu/drm/i915/intel_device_info.h 
b/drivers/gpu/drm/i915/intel_device_info.h
index 957c6527f76b..7bf09cef591a 100644
--- a/drivers/gpu/drm/i915/intel_device_info.h
+++ b/drivers/gpu/drm/i915/intel_device_info.h
@@ -189,6 +189,8 @@ struct intel_device_info {
struct color_luts {
u16 degamma_lut_size;
u16 gamma_lut_size;
+   u32 degamma_lut_tests;
+   u32 gamma_lut_tests;
} color;
 };
 
-- 
2.14.5

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


[Intel-gfx] [PATCH] drm/i915: Don't send MST hotplugs until after resume

2019-01-25 Thread Lyude Paul
Turns out we are sending a lot more hotplug events then we need, and
this is causing some pretty serious issues. Currently, we call
intel_dp_mst_resume() in i915_drm_resume() well before we have any sort
of hotplugging setup. This is a pretty big problem, because in practice
it will generally result in throwing the power domain refcounts out of
wack.

For instance: On my T480s, removing a previously connected topology
before the system finishes resuming causes
drm_kms_helper_hotplug_event() to be called before HPD is setup again,
which causes us to do a connector reprobe, which then causes
intel_dp_detect() to be called on all DP devices -including- the eDP
display. From there, intel_dp_detect() is run on the eDP display which
triggers DPCD transactions. Those DPCD transactions then cause us to
call edp_panel_vdd_on(), which then causes us to grab an additional
wakeref to the relevant power wells (PORT_DDI_A_IO on this machine).
From there, this wakeref is never released which then causes the next
suspend/resume cycle to entirely fail due to the hardware not being
powered off correctly.

This sucks really badly, and I don't see any decent way to actually fix
this in intel_dp_detect() easily. Additionally, I don't even think it'd
be worth the time now since we're not expecting to handle any kind of
connector reprobing at the point in which we call intel_dp_mst_resume(),
but we also can't move intel_dp_mst_resume() any higher in the resume
process since MST topologies need to be resumed before
intel_display_resume() is called.

However, there's a light at the end of the tunnel! After reading through
a lot of code dozens of times, it occurred to me that we -never-
actually need to send hotplug events when calling
drm_dp_mst_topology_mgr_set_mst() since we send hotplug events in
drm_dp_destroy_connector_work(). Imagine that!

So, since we only seem to call intel_dp_mst_check_status() to disable
MST on the encoder in question and then send a hotplug, get rid of this
and instead just disable MST mode when a hub fails in
intel_dp_mst_resume(). From there, drm_dp_destroy_connector_work() will
eventually send the hotplug event.

Signed-off-by: Lyude Paul 
Fixes: 0e32b39ceed6 ("drm/i915: add DP 1.2 MST support (v0.7)")
Cc: Todd Previte 
Cc: Dave Airlie 
Cc: Jani Nikula 
Cc: Joonas Lahtinen 
Cc: Rodrigo Vivi 
Cc: intel-gfx@lists.freedesktop.org
Cc:  # v3.17+
---
 drivers/gpu/drm/i915/intel_dp.c | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 681e88405ada..c2399acf177b 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -7096,7 +7096,10 @@ void intel_dp_mst_resume(struct drm_i915_private 
*dev_priv)
continue;
 
ret = drm_dp_mst_topology_mgr_resume(&intel_dp->mst_mgr);
-   if (ret)
-   intel_dp_check_mst_status(intel_dp);
+   if (ret) {
+   intel_dp->is_mst = false;
+   drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
+   false);
+   }
}
 }
-- 
2.20.1

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


[Intel-gfx] [PATCH 4/4] drm/i915/psr: Print why PSR or PSR2 was not enabled in debugfs

2019-01-25 Thread José Roberto de Souza
PSR needs to do some checks against the current/future CRTC state to
confirm if PSR hardware can support PSR in given configuration.
So lets add this information to debugfs this way we can make IGT test
smarter and skip tests when a valid a know reason caused PSR to not be
enabled.

It will print PSR2 reason even if PSR1 is enabled as PSR2 have some
additional requirements.

Cc: Dhinakaran Pandiyan 
Cc: Rodrigo Vivi 
Signed-off-by: José Roberto de Souza 
---
 drivers/gpu/drm/i915/i915_debugfs.c |  2 ++
 drivers/gpu/drm/i915/i915_drv.h |  1 +
 drivers/gpu/drm/i915/intel_psr.c| 13 -
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index 3b995f9fdc06..9ea99e9fb402 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2571,6 +2571,8 @@ static int i915_edp_psr_status(struct seq_file *m, void 
*data)
else
status = "disabled";
seq_printf(m, "PSR mode: %s\n", status);
+   if (psr->disabled_reason)
+   seq_printf(m, "Disabled reason: %s\n", psr->disabled_reason);
 
if (!psr->enabled)
goto unlock;
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 0133d1da3d3c..2bedb523922d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -512,6 +512,7 @@ struct i915_psr {
bool sink_not_reliable;
bool irq_aux_error;
u16 su_x_granularity;
+   const char *disabled_reason;
 };
 
 enum intel_pch {
diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index 2c267c6501fc..a4214c133218 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -530,8 +530,10 @@ static bool intel_psr2_config_valid(struct intel_dp 
*intel_dp,
int crtc_vdisplay = crtc_state->base.adjusted_mode.crtc_vdisplay;
int psr_max_h = 0, psr_max_v = 0;
 
-   if (!dev_priv->psr.sink_psr2_support)
+   if (!dev_priv->psr.sink_psr2_support) {
+   dev_priv->psr.disabled_reason = "PSR2 not supported by sink";
return false;
+   }
 
/*
 * DSC and PSR2 cannot be enabled simultaneously. If a requested
@@ -540,6 +542,7 @@ static bool intel_psr2_config_valid(struct intel_dp 
*intel_dp,
 */
if (crtc_state->dsc_params.compression_enable) {
DRM_DEBUG_KMS("PSR2 cannot be enabled since DSC is enabled\n");
+   dev_priv->psr.disabled_reason = "PSR2 cannot be enabled with 
DSC";
return false;
}
 
@@ -555,6 +558,7 @@ static bool intel_psr2_config_valid(struct intel_dp 
*intel_dp,
DRM_DEBUG_KMS("PSR2 not enabled, resolution %dx%d > max 
supported %dx%d\n",
  crtc_hdisplay, crtc_vdisplay,
  psr_max_h, psr_max_v);
+   dev_priv->psr.disabled_reason = "PSR2 cannot be enabled because 
resolution is to big";
return false;
}
 
@@ -567,9 +571,11 @@ static bool intel_psr2_config_valid(struct intel_dp 
*intel_dp,
if (crtc_hdisplay % dev_priv->psr.su_x_granularity) {
DRM_DEBUG_KMS("PSR2 not enabled, hdisplay(%d) not multiple of 
%d\n",
  crtc_hdisplay, dev_priv->psr.su_x_granularity);
+   dev_priv->psr.disabled_reason = "PSR2 SU granularity 
requirements not met";
return false;
}
 
+   dev_priv->psr.disabled_reason = NULL;
return true;
 }
 
@@ -597,16 +603,19 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
 */
if (dig_port->base.port != PORT_A) {
DRM_DEBUG_KMS("PSR condition failed: Port not supported\n");
+   dev_priv->psr.disabled_reason = "PSR not supported in port";
return;
}
 
if (dev_priv->psr.sink_not_reliable) {
DRM_DEBUG_KMS("PSR sink implementation is not reliable\n");
+   dev_priv->psr.disabled_reason = "PSR sink implementation is not 
reliable";
return;
}
 
if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) {
DRM_DEBUG_KMS("PSR condition failed: Interlaced is Enabled\n");
+   dev_priv->psr.disabled_reason = "PSR HW do not support 
interlaced mode";
return;
}
 
@@ -614,6 +623,7 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
if (psr_setup_time < 0) {
DRM_DEBUG_KMS("PSR condition failed: Invalid PSR setup time 
(0x%02x)\n",
  intel_dp->psr_dpcd[1]);
+   dev_priv->psr.disabled_reason = "PSR setup time is invalid";
return;
}
 
@@ -621,6 +631,7 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vdisplay - 1) {
 

[Intel-gfx] [PATCH 1/4] drm/i915/psr: Remove PSR2 FIXME

2019-01-25 Thread José Roberto de Souza
Now we are only checking sink capabilities when probing PSR DPCD
register and then dynamically checking in intel_psr2_config_valid()
to make sure the current modeset and features enables are compatible
with PSR2. So this FIXME can be dropped.

Cc: Dhinakaran Pandiyan 
Signed-off-by: José Roberto de Souza 
---
 drivers/gpu/drm/i915/intel_psr.c | 5 -
 1 file changed, 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index 84a0fb981561..cd4ffbb46e2d 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -530,11 +530,6 @@ static bool intel_psr2_config_valid(struct intel_dp 
*intel_dp,
int crtc_vdisplay = crtc_state->base.adjusted_mode.crtc_vdisplay;
int psr_max_h = 0, psr_max_v = 0;
 
-   /*
-* FIXME psr2_support is messed up. It's both computed
-* dynamically during PSR enable, and extracted from sink
-* caps during eDP detection.
-*/
if (!dev_priv->psr.sink_psr2_support)
return false;
 
-- 
2.20.1

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


[Intel-gfx] [PATCH 2/4] drm/i915/psr: Initialize PSR mutex even when sink is not reliable

2019-01-25 Thread José Roberto de Souza
Even when driver is reload and hits this scenario the PSR mutex
should be initialized, otherwise reading PSR debugfs status will
execute mutex_lock() over a mutex that was not initialized.

Cc: Dhinakaran Pandiyan 
Signed-off-by: José Roberto de Souza 
---
 drivers/gpu/drm/i915/intel_psr.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index cd4ffbb46e2d..74be4bf88ea7 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -1171,7 +1171,6 @@ void intel_psr_init(struct drm_i915_private *dev_priv)
if (val) {
DRM_DEBUG_KMS("PSR interruption error set\n");
dev_priv->psr.sink_not_reliable = true;
-   return;
}
 
/* Set link_standby x link_off defaults */
-- 
2.20.1

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


[Intel-gfx] [PATCH 3/4] drm/psr: Do not enable PSR when a interlaced mode set for all gens

2019-01-25 Thread José Roberto de Souza
This interlaced restriction applies to all gens, not only to Haswell.

Cc: Dhinakaran Pandiyan 
Cc: Rodrigo Vivi 
Signed-off-by: José Roberto de Souza 
---
 drivers/gpu/drm/i915/intel_psr.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index 74be4bf88ea7..2c267c6501fc 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -605,8 +605,7 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
return;
}
 
-   if (IS_HASWELL(dev_priv) &&
-   adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) {
+   if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) {
DRM_DEBUG_KMS("PSR condition failed: Interlaced is Enabled\n");
return;
}
-- 
2.20.1

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


[Intel-gfx] ✓ Fi.CI.BAT: success for icl: Misc PLL patches (rev2)

2019-01-25 Thread Patchwork
== Series Details ==

Series: icl: Misc PLL patches (rev2)
URL   : https://patchwork.freedesktop.org/series/55378/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5488 -> Patchwork_12047


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/55378/revisions/2/mbox/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@pm_rpm@basic-rte:
- fi-byt-j1900:   PASS -> FAIL [fdo#108800]

  
 Possible fixes 

  * igt@kms_busy@basic-flip-a:
- fi-gdg-551: FAIL [fdo#103182] -> PASS

  * igt@kms_chamelium@dp-edid-read:
- fi-kbl-7500u:   WARN -> PASS

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

  * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence:
- fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +1

  * igt@pm_rpm@module-reload:
- fi-skl-6770hq:  FAIL [fdo#108511] -> PASS

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

  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511
  [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800
  [fdo#108915]: https://bugs.freedesktop.org/show_bug.cgi?id=108915
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271


Participating hosts (44 -> 41)
--

  Additional (1): fi-icl-y 
  Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


Build changes
-

* Linux: CI_DRM_5488 -> Patchwork_12047

  CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12047: 4fe541137b10b0f31fbaebc2581792ac9a3dafcf @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

4fe541137b10 drm/i915/icl: keep track of unused pll while looping
ff3d706cade7 drm/i915/icl: remove dpll from clk_sel
7ced10a4fc68 drm/i915: always return something on DDI clock selection
08184c4a1d0b drm/i915/icl: use tc_port in MG_PLL macros

== Logs ==

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


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Fix skl srckey mask bits

2019-01-25 Thread Patchwork
== Series Details ==

Series: drm/i915: Fix skl srckey mask bits
URL   : https://patchwork.freedesktop.org/series/55744/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5486_full -> Patchwork_12045_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Possible new issues
---

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

### IGT changes ###

 Suppressed 

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

  * {igt@runner@aborted}:
- shard-kbl:  ( 5 FAIL ) -> ( 4 FAIL )

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@bcs0-s3:
- shard-kbl:  PASS -> INCOMPLETE [fdo#103665]

  * igt@gem_eio@in-flight-suspend:
- shard-snb:  PASS -> FAIL [fdo#103375]

  * igt@gem_eio@reset-stress:
- shard-snb:  PASS -> INCOMPLETE [fdo#105411]

  * igt@kms_available_modes_crc@available_mode_test_crc:
- shard-apl:  PASS -> FAIL [fdo#106641]

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

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

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

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

  * igt@kms_flip@modeset-vs-vblank-race:
- shard-glk:  PASS -> FAIL [fdo#103060]

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

  * igt@kms_plane_alpha_blend@pipe-b-alpha-7efc:
- shard-kbl:  NOTRUN -> FAIL [fdo#108145] / [fdo#108590]

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

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

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

  * igt@perf_pmu@rc6-runtime-pm-long:
- shard-kbl:  PASS -> FAIL [fdo#105010]

  
 Possible fixes 

  * igt@gem_eio@in-flight-immediate:
- shard-kbl:  DMESG-FAIL -> PASS

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

  * igt@kms_flip@2x-flip-vs-modeset-interruptible:
- shard-hsw:  DMESG-WARN [fdo#102614] -> PASS

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

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

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

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

  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108590]: https://bugs.freedesktop.org/show_bug.cgi?id=108590
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (7 -> 5)
--

  Missing(2): shard-skl shard-iclb 


Build changes
-

* Linux: CI_DRM_5486 -> Patchwork_12045

  CI_DRM_5486: 186ccd79d43ff0c930c7211e24ba5afa78c6594e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12045: 93c1c37b7d5fe620aa660d8893bff83a90265839 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tre

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm/i915: Rename execlists->queue_priority 
to preempt_priority_hint
URL   : https://patchwork.freedesktop.org/series/55750/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5488 -> Patchwork_12046


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-blb-e6850:   PASS -> INCOMPLETE [fdo#107718]

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u:   PASS -> FAIL [fdo#108767]

  
 Possible fixes 

  * igt@kms_chamelium@dp-edid-read:
- fi-kbl-7500u:   WARN -> PASS

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

  * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence:
- fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +1

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


Participating hosts (44 -> 40)
--

  Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


Build changes
-

* Linux: CI_DRM_5488 -> Patchwork_12046

  CI_DRM_5488: f13eede6ea3e780d900c5220bf09d764a80a3a8f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12046: 6f40b811103eee129743c6465e987be7a51e7596 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

6f40b811103e drm/i915/execlists: Suppress redundant preemption
2ee9b7413598 drm/i915/execlists: Suppress preempting self
0cf0a44086c4 drm/i915: Rename execlists->queue_priority to preempt_priority_hint

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12046/
___
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/2] drm/i915/tv: Fix return value for intel_tv_compute_config()

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915/tv: Fix return value for 
intel_tv_compute_config()
URL   : https://patchwork.freedesktop.org/series/55743/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5486_full -> Patchwork_12044_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@bcs0-s3:
- shard-kbl:  PASS -> INCOMPLETE [fdo#103665]

  * igt@kms_available_modes_crc@available_mode_test_crc:
- shard-apl:  PASS -> FAIL [fdo#106641]

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

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

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

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

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

  * igt@perf_pmu@rc6-runtime-pm-long:
- shard-kbl:  PASS -> FAIL [fdo#105010]

  
 Possible fixes 

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

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

  * igt@kms_flip@2x-flip-vs-modeset-interruptible:
- shard-hsw:  DMESG-WARN [fdo#102614] -> PASS

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

  
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010
  [fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (7 -> 5)
--

  Missing(2): shard-skl shard-iclb 


Build changes
-

* Linux: CI_DRM_5486 -> Patchwork_12044

  CI_DRM_5486: 186ccd79d43ff0c930c7211e24ba5afa78c6594e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12044: 32e0a172c9d3191d2530fd05a82cec82519e35ed @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12044/
___
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 [v2,1/2] drm/dp/mst: Provide defines for ACK vs. NAK reply type (rev2)

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/2] drm/dp/mst: Provide defines for ACK vs. 
NAK reply type (rev2)
URL   : https://patchwork.freedesktop.org/series/55581/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5486_full -> Patchwork_12043_full


Summary
---

  **WARNING**

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

### IGT changes ###

 Warnings 

  * igt@gem_eio@in-flight-contexts-10ms:
- shard-glk:  DMESG-WARN -> DMESG-FAIL

  * igt@gem_eio@in-flight-immediate:
- shard-kbl:  DMESG-FAIL -> DMESG-WARN

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@bcs0-s3:
- shard-kbl:  PASS -> INCOMPLETE [fdo#103665]

  * igt@gem_eio@reset-stress:
- shard-snb:  PASS -> INCOMPLETE [fdo#105411]

  * igt@kms_available_modes_crc@available_mode_test_crc:
- shard-apl:  PASS -> FAIL [fdo#106641]

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

  * igt@kms_cursor_crc@cursor-128x128-suspend:
- shard-apl:  PASS -> FAIL [fdo#103191] / [fdo#103232]

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

  * igt@kms_cursor_crc@cursor-64x21-offscreen:
- shard-apl:  PASS -> INCOMPLETE [fdo#103927]

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

  * igt@kms_plane@pixel-format-pipe-c-planes:
- shard-apl:  PASS -> FAIL [fdo#103166] +1

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

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

  * igt@perf_pmu@rc6-runtime-pm-long:
- shard-kbl:  PASS -> FAIL [fdo#105010]

  
 Possible fixes 

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

  * igt@kms_flip@2x-flip-vs-modeset-interruptible:
- shard-hsw:  DMESG-WARN [fdo#102614] -> PASS

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

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
- shard-apl:  DMESG-FAIL [fdo#108950] -> PASS

  
 Warnings 

  * igt@i915_suspend@shrink:
- shard-apl:  DMESG-WARN [fdo#107886] / [fdo#109244] -> INCOMPLETE 
[fdo#103927] / [fdo#106886]

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

  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641
  [fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886
  [fdo#107886]: https://bugs.freedesktop.org/show_bug.cgi?id=107886
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108950]: https://bugs.freedesktop.org/show_bug.cgi?id=108950
  [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244
  [fdo#109373]: https://bugs.freedesktop.org/show_bug.cgi?id=109373
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
  [k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321


Participating hosts (7 -> 5)
--

  Missing(2): shard-skl shard-iclb 


Build changes
-

* Linux: CI_DRM_5486 -> Patchwork_12043

  CI_DRM_5486: 186ccd79d43ff0c930c7211e24ba5afa78c6594e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12043: c35519be7b5a818f1aebccd38b28707331c41c58 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm/i915: Rename execlists->queue_priority 
to preempt_priority_hint
URL   : https://patchwork.freedesktop.org/series/55750/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
0cf0a44086c4 drm/i915: Rename execlists->queue_priority to preempt_priority_hint
2ee9b7413598 drm/i915/execlists: Suppress preempting self
-:22: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#22: 
References: a2bf92e8cc16 ("drm/i915/execlists: Avoid kicking priority on the 
current context")

-:22: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ 
chars of sha1> ("")' - ie: 'commit a2bf92e8cc16 
("drm/i915/execlists: Avoid kicking priority on the current context")'
#22: 
References: a2bf92e8cc16 ("drm/i915/execlists: Avoid kicking priority on the 
current context")

total: 1 errors, 1 warnings, 0 checks, 156 lines checked
6f40b811103e drm/i915/execlists: Suppress redundant preemption

___
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/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm/i915: Rename execlists->queue_priority 
to preempt_priority_hint
URL   : https://patchwork.freedesktop.org/series/55750/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915: Rename execlists->queue_priority to preempt_priority_hint
Okay!

Commit: drm/i915/execlists: Suppress preempting self
-drivers/gpu/drm/i915/intel_ringbuffer.h:600:23: warning: expression using 
sizeof(void)

Commit: drm/i915/execlists: Suppress redundant preemption
Okay!

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


[Intel-gfx] [PATCH v2 0/4] icl: Misc PLL patches

2019-01-25 Thread Lucas De Marchi
Some PLL reworks on ICL. Patches are more or less independent of each
other, but touch the same part of the code.

v2 of https://patchwork.freedesktop.org/series/55378/

Changes: typos, commit messages and checkpatch fix. I'm dropping the
last commit as we don't really need it right now and when/if we do, I'm
not sure the alternative I proposed in v1 isn't better.

Lucas De Marchi (4):
  drm/i915/icl: use tc_port in MG_PLL macros
  drm/i915: always return something on DDI clock selection
  drm/i915/icl: remove dpll from clk_sel
  drm/i915/icl: keep track of unused pll while looping

 drivers/gpu/drm/i915/i915_reg.h   | 52 +++---
 drivers/gpu/drm/i915/intel_ddi.c  | 20 +++---
 drivers/gpu/drm/i915/intel_display.c  |  2 +-
 drivers/gpu/drm/i915/intel_dpll_mgr.c | 98 +--
 drivers/gpu/drm/i915/intel_dpll_mgr.h |  2 +-
 5 files changed, 87 insertions(+), 87 deletions(-)

-- 
2.20.0

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


[Intel-gfx] [PATCH v2 1/4] drm/i915/icl: use tc_port in MG_PLL macros

2019-01-25 Thread Lucas De Marchi
Fix the TODO leftover in the code by changing the argument in MG_PLL
macros. The MG_PLL ids used to access the register values can be
converted from tc_port rather than port.

All these registers can use the TC port to calculate the right offsets
because they are only available for TC ports. The range (PORT_C onwards)
may not be stable and change from platform to platform. So by using the
TC id directly we avoid having to check for the platform in the "leaf
functions" and thus passing dev_priv around.

The helper functions were also renamed to use "tc" as prefix to make
them more generic.

v2: Improve commit message and fix checkpatch warning (from Paulo)

Signed-off-by: Lucas De Marchi 
Reviewed-by: Paulo Zanoni 
---
 drivers/gpu/drm/i915/i915_reg.h   | 52 +-
 drivers/gpu/drm/i915/intel_ddi.c  |  7 ++-
 drivers/gpu/drm/i915/intel_display.c  |  2 +-
 drivers/gpu/drm/i915/intel_dpll_mgr.c | 79 +--
 drivers/gpu/drm/i915/intel_dpll_mgr.h |  2 +-
 5 files changed, 71 insertions(+), 71 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 1eca166d95bb..03adcf3838de 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -9554,7 +9554,7 @@ enum skl_power_gate {
 #define _MG_PLL3_ENABLE0x46038
 #define _MG_PLL4_ENABLE0x4603C
 /* Bits are the same as DPLL0_ENABLE */
-#define MG_PLL_ENABLE(port)_MMIO_PORT((port) - PORT_C, _MG_PLL1_ENABLE, \
+#define MG_PLL_ENABLE(tc_port) _MMIO_PORT((tc_port), _MG_PLL1_ENABLE, \
   _MG_PLL2_ENABLE)
 
 #define _MG_REFCLKIN_CTL_PORT1 0x16892C
@@ -9563,9 +9563,9 @@ enum skl_power_gate {
 #define _MG_REFCLKIN_CTL_PORT4 0x16B92C
 #define   MG_REFCLKIN_CTL_OD_2_MUX(x)  ((x) << 8)
 #define   MG_REFCLKIN_CTL_OD_2_MUX_MASK(0x7 << 8)
-#define MG_REFCLKIN_CTL(port) _MMIO_PORT((port) - PORT_C, \
-_MG_REFCLKIN_CTL_PORT1, \
-_MG_REFCLKIN_CTL_PORT2)
+#define MG_REFCLKIN_CTL(tc_port) _MMIO_PORT((tc_port), \
+   _MG_REFCLKIN_CTL_PORT1, \
+   _MG_REFCLKIN_CTL_PORT2)
 
 #define _MG_CLKTOP2_CORECLKCTL1_PORT1  0x1688D8
 #define _MG_CLKTOP2_CORECLKCTL1_PORT2  0x1698D8
@@ -9575,9 +9575,9 @@ enum skl_power_gate {
 #define   MG_CLKTOP2_CORECLKCTL1_B_DIVRATIO_MASK   (0xff << 16)
 #define   MG_CLKTOP2_CORECLKCTL1_A_DIVRATIO(x) ((x) << 8)
 #define   MG_CLKTOP2_CORECLKCTL1_A_DIVRATIO_MASK   (0xff << 8)
-#define MG_CLKTOP2_CORECLKCTL1(port) _MMIO_PORT((port) - PORT_C, \
-   _MG_CLKTOP2_CORECLKCTL1_PORT1, \
-   _MG_CLKTOP2_CORECLKCTL1_PORT2)
+#define MG_CLKTOP2_CORECLKCTL1(tc_port) _MMIO_PORT((tc_port), \
+  
_MG_CLKTOP2_CORECLKCTL1_PORT1, \
+  
_MG_CLKTOP2_CORECLKCTL1_PORT2)
 
 #define _MG_CLKTOP2_HSCLKCTL_PORT1 0x1688D4
 #define _MG_CLKTOP2_HSCLKCTL_PORT2 0x1698D4
@@ -9595,9 +9595,9 @@ enum skl_power_gate {
 #define   MG_CLKTOP2_HSCLKCTL_DSDIV_RATIO(x)   ((x) << 8)
 #define   MG_CLKTOP2_HSCLKCTL_DSDIV_RATIO_SHIFT8
 #define   MG_CLKTOP2_HSCLKCTL_DSDIV_RATIO_MASK (0xf << 8)
-#define MG_CLKTOP2_HSCLKCTL(port) _MMIO_PORT((port) - PORT_C, \
-_MG_CLKTOP2_HSCLKCTL_PORT1, \
-_MG_CLKTOP2_HSCLKCTL_PORT2)
+#define MG_CLKTOP2_HSCLKCTL(tc_port) _MMIO_PORT((tc_port), \
+   _MG_CLKTOP2_HSCLKCTL_PORT1, \
+   _MG_CLKTOP2_HSCLKCTL_PORT2)
 
 #define _MG_PLL_DIV0_PORT1 0x168A00
 #define _MG_PLL_DIV0_PORT2 0x169A00
@@ -9609,8 +9609,8 @@ enum skl_power_gate {
 #define   MG_PLL_DIV0_FBDIV_FRAC(x)((x) << 8)
 #define   MG_PLL_DIV0_FBDIV_INT_MASK   (0xff << 0)
 #define   MG_PLL_DIV0_FBDIV_INT(x) ((x) << 0)
-#define MG_PLL_DIV0(port) _MMIO_PORT((port) - PORT_C, _MG_PLL_DIV0_PORT1, \
-_MG_PLL_DIV0_PORT2)
+#define MG_PLL_DIV0(tc_port) _MMIO_PORT((tc_port), _MG_PLL_DIV0_PORT1, \
+   _MG_PLL_DIV0_PORT2)
 
 #define _MG_PLL_DIV1_PORT1 0x168A04
 #define _MG_PLL_DIV1_PORT2 0x169A04
@@ -9624,8 +9624,8 @@ enum skl_power_gate {
 #define   MG_PLL_DIV1_NDIVRATIO(x) ((x) << 4)
 #define   MG_PLL_DIV1_FBPREDIV_MASK(0xf << 0)
 #define   MG_PLL_DIV1_FBPREDIV(x)  

[Intel-gfx] [PATCH v2 4/4] drm/i915/icl: keep track of unused pll while looping

2019-01-25 Thread Lucas De Marchi
Instead of looping again on the range of plls, just keep track of one
unused one and use it later.

Signed-off-by: Lucas De Marchi 
Reviewed-by: Paulo Zanoni 
---
 drivers/gpu/drm/i915/intel_dpll_mgr.c | 19 +--
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.c 
b/drivers/gpu/drm/i915/intel_dpll_mgr.c
index 211b3ffa5bed..8f70838ac7d8 100644
--- a/drivers/gpu/drm/i915/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/intel_dpll_mgr.c
@@ -247,7 +247,7 @@ intel_find_shared_dpll(struct intel_crtc *crtc,
   enum intel_dpll_id range_max)
 {
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-   struct intel_shared_dpll *pll;
+   struct intel_shared_dpll *pll, *unused_pll = NULL;
struct intel_shared_dpll_state *shared_dpll;
enum intel_dpll_id i;
 
@@ -257,8 +257,10 @@ intel_find_shared_dpll(struct intel_crtc *crtc,
pll = &dev_priv->shared_dplls[i];
 
/* Only want to check enabled timings first */
-   if (shared_dpll[i].crtc_mask == 0)
+   if (shared_dpll[i].crtc_mask == 0) {
+   unused_pll = pll;
continue;
+   }
 
if (memcmp(&crtc_state->dpll_hw_state,
   &shared_dpll[i].hw_state,
@@ -273,14 +275,11 @@ intel_find_shared_dpll(struct intel_crtc *crtc,
}
 
/* Ok no matching timings, maybe there's a free one? */
-   for (i = range_min; i <= range_max; i++) {
-   pll = &dev_priv->shared_dplls[i];
-   if (shared_dpll[i].crtc_mask == 0) {
-   DRM_DEBUG_KMS("[CRTC:%d:%s] allocated %s\n",
- crtc->base.base.id, crtc->base.name,
- pll->info->name);
-   return pll;
-   }
+   if (unused_pll) {
+   DRM_DEBUG_KMS("[CRTC:%d:%s] allocated %s\n",
+ crtc->base.base.id, crtc->base.name,
+ unused_pll->info->name);
+   return unused_pll;
}
 
return NULL;
-- 
2.20.0

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


[Intel-gfx] [PATCH v2 2/4] drm/i915: always return something on DDI clock selection

2019-01-25 Thread Lucas De Marchi
Even if we don't have the correct clock and get a warning, we should not
skip the return.

v2: improve commit message (from Joonas)

Fixes: 1fa11ee2d9d0 ("drm/i915/icl: start adding the TBT pll")
Cc: Paulo Zanoni 
Cc:  # v4.19+
Signed-off-by: Lucas De Marchi 
Reviewed-by: Mika Kahola 
---
 drivers/gpu/drm/i915/intel_ddi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index ae2413ec2196..51d4be072268 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -1021,7 +1021,7 @@ static u32 icl_pll_to_ddi_pll_sel(struct intel_encoder 
*encoder,
return DDI_CLK_SEL_TBT_810;
default:
MISSING_CASE(clock);
-   break;
+   return DDI_CLK_SEL_NONE;
}
case DPLL_ID_ICL_MGPLL1:
case DPLL_ID_ICL_MGPLL2:
-- 
2.20.0

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


[Intel-gfx] [PATCH v2 3/4] drm/i915/icl: remove dpll from clk_sel

2019-01-25 Thread Lucas De Marchi
We should not pass DPLL_ID_ICL_DPLL0 or DPLL_ID_ICL_DPLL1 to this
function because the path is only taken for non-combophy ports. Let the
warning trigger if improper value is given.

While at it, rename the function to match the register name we are
trying to program.

v2: fix typo in comment

Signed-off-by: Lucas De Marchi 
Reviewed-by: Paulo Zanoni 
---
 drivers/gpu/drm/i915/intel_ddi.c | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 51d4be072268..ca705546a0ab 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -995,7 +995,7 @@ static u32 hsw_pll_to_ddi_pll_sel(const struct 
intel_shared_dpll *pll)
}
 }
 
-static u32 icl_pll_to_ddi_pll_sel(struct intel_encoder *encoder,
+static u32 icl_pll_to_ddi_clk_sel(struct intel_encoder *encoder,
  const struct intel_crtc_state *crtc_state)
 {
const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
@@ -1004,10 +1004,11 @@ static u32 icl_pll_to_ddi_pll_sel(struct intel_encoder 
*encoder,
 
switch (id) {
default:
+   /*
+* DPLL_ID_ICL_DPLL0 and DPLL_ID_ICL_DPLL1 should not be used
+* here, so do warn if this get passed in
+*/
MISSING_CASE(id);
-   /* fall through */
-   case DPLL_ID_ICL_DPLL0:
-   case DPLL_ID_ICL_DPLL1:
return DDI_CLK_SEL_NONE;
case DPLL_ID_ICL_TBTPLL:
switch (clock) {
@@ -2869,7 +2870,7 @@ static void intel_ddi_clk_select(struct intel_encoder 
*encoder,
if (IS_ICELAKE(dev_priv)) {
if (!intel_port_is_combophy(dev_priv, port))
I915_WRITE(DDI_CLK_SEL(port),
-  icl_pll_to_ddi_pll_sel(encoder, crtc_state));
+  icl_pll_to_ddi_clk_sel(encoder, crtc_state));
} else if (IS_CANNONLAKE(dev_priv)) {
/* Configure DPCLKA_CFGCR0 to map the DPLL to the DDI. */
val = I915_READ(DPCLKA_CFGCR0);
-- 
2.20.0

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


[Intel-gfx] [PATCH 3/3] drm/i915/execlists: Suppress redundant preemption

2019-01-25 Thread Chris Wilson
On unwinding the active request we give it a small (limited to internal
priority levels) boost to prevent it from being gazumped a second time.
However, this means that it can be promoted to above the request that
triggered the preemption request, causing a preempt-to-idle cycle for no
change. We can avoid this if we take the boost into account when
checking if the preemption request is valid.

v2: After preemption the active request will be after the preemptee if
they end up with equal priority.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/intel_lrc.c | 39 
 1 file changed, 35 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index b44db7d49584..8f48f2fc07b2 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -164,6 +164,8 @@
 #define WA_TAIL_DWORDS 2
 #define WA_TAIL_BYTES (sizeof(u32) * WA_TAIL_DWORDS)
 
+#define ACTIVE_PRIORITY (I915_PRIORITY_NEWCLIENT)
+
 static int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
struct intel_engine_cs *engine,
struct intel_context *ce);
@@ -182,6 +184,34 @@ static inline int rq_prio(const struct i915_request *rq)
return rq->sched.attr.priority;
 }
 
+static inline int active_prio(const struct i915_request *rq)
+{
+   int prio = rq_prio(rq);
+
+   /*
+* On unwinding the active request, we give it a priority bump
+* equivalent to a freshly submitted request. This protects it from
+* being gazumped again, but it would be preferable if we didn't
+* let it be gazumped in the first place!
+*
+* See __unwind_incomplete_requests()
+*/
+   if ((prio & ACTIVE_PRIORITY) != ACTIVE_PRIORITY &&
+   i915_request_started(rq)) {
+   /*
+* After preemption, we insert the active request at the
+* end of the new priority level. This means that we will be
+* _lower_ priority than the preemptee all things equal (and
+* so the preemption is valid), so adjust our comparison
+* accordingly.
+*/
+   prio |= ACTIVE_PRIORITY;
+   prio--;
+   }
+
+   return prio;
+}
+
 static int queue_prio(const struct intel_engine_execlists *execlists)
 {
struct i915_priolist *p;
@@ -204,7 +234,7 @@ static inline bool need_preempt(const struct 
intel_engine_cs *engine,
int hint)
 {
const struct intel_context *ctx = rq->hw_context;
-   const int last_prio = rq_prio(rq);
+   int last_prio;
 
if (!intel_engine_has_preemption(engine))
return false;
@@ -219,6 +249,7 @@ static inline bool need_preempt(const struct 
intel_engine_cs *engine,
 * preempt. If that hint is stale or we may be trying to preempt
 * ourselves, ignore the request.
 */
+   last_prio = active_prio(rq);
if (!__execlists_need_preempt(hint, last_prio))
return false;
 
@@ -346,7 +377,7 @@ __unwind_incomplete_requests(struct intel_engine_cs *engine)
 {
struct i915_request *rq, *rn, *active = NULL;
struct list_head *uninitialized_var(pl);
-   int prio = I915_PRIORITY_INVALID | I915_PRIORITY_NEWCLIENT;
+   int prio = I915_PRIORITY_INVALID | ACTIVE_PRIORITY;
 
lockdep_assert_held(&engine->timeline.lock);
 
@@ -378,8 +409,8 @@ __unwind_incomplete_requests(struct intel_engine_cs *engine)
 * stream, so give it the equivalent small priority bump to prevent
 * it being gazumped a second time by another peer.
 */
-   if (!(prio & I915_PRIORITY_NEWCLIENT)) {
-   prio |= I915_PRIORITY_NEWCLIENT;
+   if ((prio & ACTIVE_PRIORITY) != ACTIVE_PRIORITY) {
+   prio |= ACTIVE_PRIORITY;
active->sched.attr.priority = prio;
list_move_tail(&active->sched.link,
   i915_sched_lookup_priolist(engine, prio));
-- 
2.20.1

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


[Intel-gfx] [PATCH 2/3] drm/i915/execlists: Suppress preempting self

2019-01-25 Thread Chris Wilson
In order to avoid preempting ourselves, we currently refuse to schedule
the tasklet if we reschedule an inflight context. However, this glosses
over a few issues such as what happens after a CS completion event and
we then preempt the newly executing context with itself, or if something
else causes a tasklet_schedule triggering the same evaluation to
preempt the active context with itself.

To avoid the extra complications, after deciding that we have
potentially queued a request with higher priority than the currently
executing request, inspect the head of the queue to see if it is indeed
higher priority from another context.

v2: We can simplify a bunch of tests based on the knowledge that PI will
ensure that earlier requests along the same context will have the highest
priority.

References: a2bf92e8cc16 ("drm/i915/execlists: Avoid kicking priority on the 
current context")
Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/i915_scheduler.c | 20 --
 drivers/gpu/drm/i915/intel_lrc.c  | 91 ---
 2 files changed, 100 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_scheduler.c 
b/drivers/gpu/drm/i915/i915_scheduler.c
index 0da718ceab43..7db1255665a8 100644
--- a/drivers/gpu/drm/i915/i915_scheduler.c
+++ b/drivers/gpu/drm/i915/i915_scheduler.c
@@ -238,6 +238,18 @@ sched_lock_engine(struct i915_sched_node *node, struct 
intel_engine_cs *locked)
return engine;
 }
 
+static bool inflight(const struct i915_request *rq,
+const struct intel_engine_cs *engine)
+{
+   const struct i915_request *active;
+
+   if (!rq->global_seqno)
+   return false;
+
+   active = port_request(engine->execlists.port);
+   return active->hw_context == rq->hw_context;
+}
+
 static void __i915_schedule(struct i915_request *rq,
const struct i915_sched_attr *attr)
 {
@@ -327,6 +339,7 @@ static void __i915_schedule(struct i915_request *rq,
INIT_LIST_HEAD(&dep->dfs_link);
 
engine = sched_lock_engine(node, engine);
+   lockdep_assert_held(&engine->timeline.lock);
 
/* Recheck after acquiring the engine->timeline.lock */
if (prio <= node->attr.priority || node_signaled(node))
@@ -355,17 +368,16 @@ static void __i915_schedule(struct i915_request *rq,
if (prio <= engine->execlists.preempt_priority_hint)
continue;
 
+   engine->execlists.preempt_priority_hint = prio;
+
/*
 * If we are already the currently executing context, don't
 * bother evaluating if we should preempt ourselves.
 */
-   if (node_to_request(node)->global_seqno &&
-   
i915_seqno_passed(port_request(engine->execlists.port)->global_seqno,
- node_to_request(node)->global_seqno))
+   if (inflight(node_to_request(node), engine))
continue;
 
/* Defer (tasklet) submission until after all of our updates. */
-   engine->execlists.preempt_priority_hint = prio;
tasklet_hi_schedule(&engine->execlists.tasklet);
}
 
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 71006b031f54..b44db7d49584 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -182,13 +182,89 @@ static inline int rq_prio(const struct i915_request *rq)
return rq->sched.attr.priority;
 }
 
+static int queue_prio(const struct intel_engine_execlists *execlists)
+{
+   struct i915_priolist *p;
+   struct rb_node *rb;
+
+   rb = rb_first_cached(&execlists->queue);
+   if (!rb)
+   return INT_MIN;
+
+   /*
+* As the priolist[] are inverted, with the highest priority in [0],
+* we have to flip the index value to become priority.
+*/
+   p = to_priolist(rb);
+   return ((p->priority + 1) << I915_USER_PRIORITY_SHIFT) - ffs(p->used);
+}
+
 static inline bool need_preempt(const struct intel_engine_cs *engine,
-   const struct i915_request *last,
-   int prio)
+   const struct i915_request *rq,
+   int hint)
 {
-   return (intel_engine_has_preemption(engine) &&
-   __execlists_need_preempt(prio, rq_prio(last)) &&
-   !i915_request_completed(last));
+   const struct intel_context *ctx = rq->hw_context;
+   const int last_prio = rq_prio(rq);
+
+   if (!intel_engine_has_preemption(engine))
+   return false;
+
+   if (i915_request_completed(rq))
+   return false;
+
+   /*
+* Check if the current priority hint merits a preemption attempt.
+*
+* However, the priority hint is a mere hint that we may 

[Intel-gfx] [PATCH 1/3] drm/i915: Rename execlists->queue_priority to preempt_priority_hint

2019-01-25 Thread Chris Wilson
After noticing that we trigger preemption events for currently executing
requests, as well as requests that complete before the preemption and
attempting to suppress those preemption events, it is wise to not
consider the queue_priority to be authoritative. As only track the
maximum priority see between queue passes, if the maximum priority
request is no longer available for dequeuing (it completed or is even
executing on another engine), we have no knowledge of the previous
queue_priority as it would have to keep a full history of enqueued
requests -- but we already have that history in the priolists!

Rename the queue_priority to preempt_priority_hint so that we do not
confuse it as being the maximum priority in the queue, but merely an
indication that we have seen a new maximum priority value and as such we
should check whether it should preempt the currently running request.

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/i915_scheduler.c   | 11 +--
 drivers/gpu/drm/i915/intel_engine_cs.c  |  4 ++--
 drivers/gpu/drm/i915/intel_guc_submission.c |  5 +++--
 drivers/gpu/drm/i915/intel_lrc.c| 20 +++-
 drivers/gpu/drm/i915/intel_ringbuffer.h |  8 ++--
 5 files changed, 27 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_scheduler.c 
b/drivers/gpu/drm/i915/i915_scheduler.c
index 340faea6c08a..0da718ceab43 100644
--- a/drivers/gpu/drm/i915/i915_scheduler.c
+++ b/drivers/gpu/drm/i915/i915_scheduler.c
@@ -127,8 +127,7 @@ static inline struct i915_priolist *to_priolist(struct 
rb_node *rb)
return rb_entry(rb, struct i915_priolist, node);
 }
 
-static void assert_priolists(struct intel_engine_execlists * const execlists,
-long queue_priority)
+static void assert_priolists(struct intel_engine_execlists * const execlists)
 {
struct rb_node *rb;
long last_prio, i;
@@ -139,7 +138,7 @@ static void assert_priolists(struct intel_engine_execlists 
* const execlists,
GEM_BUG_ON(rb_first_cached(&execlists->queue) !=
   rb_first(&execlists->queue.rb_root));
 
-   last_prio = (queue_priority >> I915_USER_PRIORITY_SHIFT) + 1;
+   last_prio = (INT_MAX >> I915_USER_PRIORITY_SHIFT) + 1;
for (rb = rb_first_cached(&execlists->queue); rb; rb = rb_next(rb)) {
const struct i915_priolist *p = to_priolist(rb);
 
@@ -166,7 +165,7 @@ i915_sched_lookup_priolist(struct intel_engine_cs *engine, 
int prio)
int idx, i;
 
lockdep_assert_held(&engine->timeline.lock);
-   assert_priolists(execlists, INT_MAX);
+   assert_priolists(execlists);
 
/* buckets sorted from highest [in slot 0] to lowest priority */
idx = I915_PRIORITY_COUNT - (prio & I915_PRIORITY_MASK) - 1;
@@ -353,7 +352,7 @@ static void __i915_schedule(struct i915_request *rq,
continue;
}
 
-   if (prio <= engine->execlists.queue_priority)
+   if (prio <= engine->execlists.preempt_priority_hint)
continue;
 
/*
@@ -366,7 +365,7 @@ static void __i915_schedule(struct i915_request *rq,
continue;
 
/* Defer (tasklet) submission until after all of our updates. */
-   engine->execlists.queue_priority = prio;
+   engine->execlists.preempt_priority_hint = prio;
tasklet_hi_schedule(&engine->execlists.tasklet);
}
 
diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c 
b/drivers/gpu/drm/i915/intel_engine_cs.c
index 1a5c163b98d6..1ffec0d69157 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -480,7 +480,7 @@ static void intel_engine_init_execlist(struct 
intel_engine_cs *engine)
GEM_BUG_ON(!is_power_of_2(execlists_num_ports(execlists)));
GEM_BUG_ON(execlists_num_ports(execlists) > EXECLIST_MAX_PORTS);
 
-   execlists->queue_priority = INT_MIN;
+   execlists->preempt_priority_hint = INT_MIN;
execlists->queue = RB_ROOT_CACHED;
 }
 
@@ -1156,7 +1156,7 @@ void intel_engines_park(struct drm_i915_private *i915)
}
 
/* Must be reset upon idling, or we may miss the busy wakeup. */
-   GEM_BUG_ON(engine->execlists.queue_priority != INT_MIN);
+   GEM_BUG_ON(engine->execlists.preempt_priority_hint != INT_MIN);
 
if (engine->park)
engine->park(engine);
diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c 
b/drivers/gpu/drm/i915/intel_guc_submission.c
index 45e2db683fe5..1bf6ac76ad99 100644
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
@@ -731,7 +731,7 @@ static bool __guc_dequeue(struct intel_engine_cs *engine)
if (intel_engine_has_preemption(engine)) {
struct guc_preempt_work *preempt_work =

Re: [Intel-gfx] [PATCH] drm/i915: Fix skl srckey mask bits

2019-01-25 Thread Matt Roper
On Fri, Jan 25, 2019 at 08:38:46PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> We're incorrectly masking off the R/V channel enable bit from
> KEYMSK. Fix it up.
> 
> Cc: Maarten Lankhorst 
> Cc: Matt Roper 
> Fixes: b20815255693 ("drm/i915: Add plane alpha blending support, v2.")
> Signed-off-by: Ville Syrjälä 

The "srckey" terminology in the headline is a bit confusing since the
channel mask applies to both "destination colorkey" and "source
colorkey" behavior.  Otherwise,

Reviewed-by: Matt Roper 

Out of curiousity, has there ever been a userspace consumer of source
colorkey?  I know SNA uses destination colorkey (for Xv), but not source
colorkey.  And afaik, UXA never did any colorkeying through the sprite
interface at all.


Matt

> ---
>  drivers/gpu/drm/i915/intel_sprite.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_sprite.c 
> b/drivers/gpu/drm/i915/intel_sprite.c
> index b02d3d9809e3..cd42e81f8a90 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c
> @@ -493,7 +493,7 @@ skl_program_plane(struct intel_plane *plane,
>  
>   keymax = (key->max_value & 0xff) | PLANE_KEYMAX_ALPHA(alpha);
>  
> - keymsk = key->channel_mask & 0x3ff;
> + keymsk = key->channel_mask & 0x7ff;
>   if (alpha < 0xff)
>   keymsk |= PLANE_KEYMSK_ALPHA_ENABLE;
>  
> -- 
> 2.19.2
> 

-- 
Matt Roper
Graphics Software Engineer
IoTG Platform Enabling & Development
Intel Corporation
(916) 356-2795
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v3] drm/i915: correct the pitch check for NV12 framebuffer

2019-01-25 Thread Ville Syrjälä
On Wed, Dec 19, 2018 at 01:59:12PM +0530, raviraj.p.sita...@intel.com wrote:
> From: P Raviraj Sitaram 
> 
> framebuffer for NV12 requires the pitch to the multiplier of 4, instead
> of the width. This patch corrects it.
> 
> For instance, a 480p video, whose width and pitch are 854 and 896
> respectively, is excluded for NV12 plane so far.
> 
> Changes since v1:
> - Removed check for NV12 buffer dimensions since additional checks
>   are done for viewport size in intel_sprite.c
> 
> Signed-off-by: Dongseong Hwang 
> Signed-off-by: P Raviraj Sitaram 
> Cc: Chandra Konduru 
> Cc: Vidya Srinivas 
> Cc: Ville Syrjälä 
> Cc: Juha-Pekka Heikkila 
> ---
>  drivers/gpu/drm/i915/intel_display.c | 8 
>  1 file changed, 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c 
> b/drivers/gpu/drm/i915/intel_display.c
> index 3b7094822aa9..fa349182d0da 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -14597,14 +14597,6 @@ static int intel_framebuffer_init(struct 
> intel_framebuffer *intel_fb,
>  
>   drm_helper_mode_fill_fb_struct(&dev_priv->drm, fb, mode_cmd);
>  
> - if (fb->format->format == DRM_FORMAT_NV12 &&
> - (fb->width < SKL_MIN_YUV_420_SRC_W ||
> -  fb->height < SKL_MIN_YUV_420_SRC_H ||
> -  (fb->width % 4) != 0 || (fb->height % 4) != 0)) {
> - DRM_DEBUG_KMS("src dimensions not correct for NV12\n");
> - goto err;
> - }

Looks correct to me.

Thanks for the patch, pushed to dinq.

> -
>   for (i = 0; i < fb->format->num_planes; i++) {
>   u32 stride_alignment;
>  
> -- 
> 2.7.4

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


Re: [Intel-gfx] [PATCH] drm/i915/icl: Add TypeC ports only if VBT is present

2019-01-25 Thread Souza, Jose
On Fri, 2019-01-25 at 16:34 +0200, Imre Deak wrote:
> We can't safely probe Type C ports, whether they are a legacy or a
> USB/Thunderbolt DP Alternate Type C port. This would require
> performing
> the TypeC connect sequence - as described by the specification - but
> that may have unwanted side-effects. These side-effects include at
> least
> - without completeness - timeouts during AUX power well enabling and
> subsequent PLL enabling errors.
> 

Makes sense, behaps there is a bug open with this timeouts and errors
to link to?

> To safely identify these ports we really need VBT, which has the
> proper
> flag for this (ddi_vbt_port_info::supports_typec_usb, supports_tbt).
> Based on the above disable Type C ports if we can't load VBT for some
> reason.


Reviewed-by: José Roberto de Souza 

> 
> Cc: Jani Nikula 
> Cc: Paulo Zanoni 
> Cc: Jose Roberto de Souza 
> Cc: Ville Syrjälä 
> Cc: Rodrigo Vivi 
> Signed-off-by: Imre Deak 
> ---
>  drivers/gpu/drm/i915/intel_bios.c | 6 --
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_bios.c
> b/drivers/gpu/drm/i915/intel_bios.c
> index 561a4f9f044c..270e7f0ad5cd 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -1662,10 +1662,12 @@ init_vbt_missing_defaults(struct
> drm_i915_private *dev_priv)
>   for (port = PORT_A; port < I915_MAX_PORTS; port++) {
>   struct ddi_vbt_port_info *info =
>   &dev_priv->vbt.ddi_port_info[port];
> + bool is_tc_port = intel_port_is_tc(dev_priv, port);

Nit:

if (intel_port_is_tc(dev_priv, port))
continue;

instead?

>  
> - info->supports_dvi = (port != PORT_A && port !=
> PORT_E);
> + info->supports_dvi = (port != PORT_A && port != PORT_E
> &&
> +   !is_tc_port);
>   info->supports_hdmi = info->supports_dvi;
> - info->supports_dp = (port != PORT_E);
> + info->supports_dp = (port != PORT_E && !is_tc_port);
>   }
>  }
>  


signature.asc
Description: This is a digitally signed message part
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


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

2019-01-25 Thread Ville Syrjälä
On Sat, Dec 01, 2018 at 12:31:48PM +0100, Hans de Goede wrote:
> 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 

Reviewed-by: Ville Syrjälä 

> ---
>  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(&intel_connector->base);
>  err:
>   drm_encoder_cleanup(&intel_encoder->base);
>   kfree(intel_dsi);
> -- 
> 2.19.1

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


Re: [Intel-gfx] [PATCH 2/3] drm: Sync errno values for property lookup errors

2019-01-25 Thread Ville Syrjälä
On Tue, Jan 22, 2019 at 10:39:38AM +0100, Daniel Vetter wrote:
> On Mon, Jan 21, 2019 at 10:24:29PM +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä 
> > 
> > Use ENOENT consistently for the case where the requested property
> > isn't found, and EINVAL for the case where the object has no
> > properties whatsoever. Currenrly these are handled differently
> > in the atomic and legacy codepaths.
> > 
> > Signed-off-by: Ville Syrjälä 
> 
> Matches 
> https://dri.freedesktop.org/docs/drm/gpu/drm-uapi.html#recommended-ioctl-return-values
> 
> Reviewed-by: Daniel Vetter 
> 
> Any igts that blow up with this? We should have at least some trying to do
> invalid stuff ...

Looks like there was something caught by ci. I'll have to look those
over.

Also the logs seem to full of my
<7> [625.952666] [drm:drm_modeset_backoff] Retrying to avoid deadlock

Not sure if that debug print is a good idea after all :/

> -Daniel
> 
> > ---
> >  drivers/gpu/drm/drm_atomic_uapi.c | 2 +-
> >  drivers/gpu/drm/drm_mode_object.c | 1 +
> >  2 files changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_atomic_uapi.c 
> > b/drivers/gpu/drm/drm_atomic_uapi.c
> > index 06390307e5a3..2a54f826cf65 100644
> > --- a/drivers/gpu/drm/drm_atomic_uapi.c
> > +++ b/drivers/gpu/drm/drm_atomic_uapi.c
> > @@ -1330,7 +1330,7 @@ int drm_mode_atomic_ioctl(struct drm_device *dev,
> > DRM_DEBUG_ATOMIC("Object ID %d has no properties\n",
> >  obj_id);
> > drm_mode_object_put(obj);
> > -   ret = -ENOENT;
> > +   ret = -EINVAL;
> > goto out;
> > }
> >  
> > diff --git a/drivers/gpu/drm/drm_mode_object.c 
> > b/drivers/gpu/drm/drm_mode_object.c
> > index e8dac94d576d..31730d935842 100644
> > --- a/drivers/gpu/drm/drm_mode_object.c
> > +++ b/drivers/gpu/drm/drm_mode_object.c
> > @@ -527,6 +527,7 @@ int drm_mode_obj_set_property_ioctl(struct drm_device 
> > *dev, void *data,
> > property = drm_mode_obj_find_prop_id(arg_obj, arg->prop_id);
> > if (!property) {
> > DRM_DEBUG_KMS("Unknown property ID %d\n", arg->prop_id);
> > +   ret = -ENOENT;
> > goto out_unref;
> > }
> >  
> > -- 
> > 2.19.2
> > 
> > ___
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch

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


Re: [Intel-gfx] [PATCH 1/3] drm: Add debug prints for the various object lookup errors

2019-01-25 Thread Ville Syrjälä
On Tue, Jan 22, 2019 at 10:38:30AM +0100, Daniel Vetter wrote:
> On Mon, Jan 21, 2019 at 10:24:28PM +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä 
> > 
> > Only some of the drm mode object lookups have a corresponding debug
> > print for the lookup failure. That makes logs a bit hard to parse
> > when you can't see where the bad object ID is being used. Add a bunch
> > more debug prints, and unify their appearance.
> > 
> > Signed-off-by: Ville Syrjälä 
> 
> Instead of sprinkling these all over, what about the reverse route and
> pushing this into drm_mode_object_find? We can dump id + object type, that
> should be all we need really.

I suppose. Downside being that the debug then won't tell you who called
the _find(). Although with the atomic ioctl we really don't have much
information anyway since we didn't include the type of the object in the
ioctl struct. Perhaps that was a mistake.

> If we go this way maybe add kerneldoc to the
> various drm_*_find/lookup functions so this doesn't get copypasted again
> ...
> -Daniel
> 
> > ---
> >  drivers/gpu/drm/drm_atomic_uapi.c |  5 +
> >  drivers/gpu/drm/drm_color_mgmt.c  |  8 ++--
> >  drivers/gpu/drm/drm_connector.c   |  5 -
> >  drivers/gpu/drm/drm_crtc.c| 12 +++-
> >  drivers/gpu/drm/drm_encoder.c |  4 +++-
> >  drivers/gpu/drm/drm_framebuffer.c |  4 +++-
> >  drivers/gpu/drm/drm_mode_object.c | 17 ++---
> >  drivers/gpu/drm/drm_plane.c   | 13 +
> >  drivers/gpu/drm/drm_property.c| 12 +---
> >  drivers/gpu/drm/drm_vblank.c  |  8 ++--
> >  10 files changed, 66 insertions(+), 22 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_atomic_uapi.c 
> > b/drivers/gpu/drm/drm_atomic_uapi.c
> > index 9a1f41adfc67..06390307e5a3 100644
> > --- a/drivers/gpu/drm/drm_atomic_uapi.c
> > +++ b/drivers/gpu/drm/drm_atomic_uapi.c
> > @@ -1321,11 +1321,14 @@ int drm_mode_atomic_ioctl(struct drm_device *dev,
> >  
> > obj = drm_mode_object_find(dev, file_priv, obj_id, 
> > DRM_MODE_OBJECT_ANY);
> > if (!obj) {
> > +   DRM_DEBUG_ATOMIC("Unknown object ID %d\n", obj_id);
> > ret = -ENOENT;
> > goto out;
> > }
> >  
> > if (!obj->properties) {
> > +   DRM_DEBUG_ATOMIC("Object ID %d has no properties\n",
> > +obj_id);
> > drm_mode_object_put(obj);
> > ret = -ENOENT;
> > goto out;
> > @@ -1352,6 +1355,8 @@ int drm_mode_atomic_ioctl(struct drm_device *dev,
> >  
> > prop = drm_mode_obj_find_prop_id(obj, prop_id);
> > if (!prop) {
> > +   DRM_DEBUG_ATOMIC("Unknown property ID %d\n",
> > +prop_id);
> > drm_mode_object_put(obj);
> > ret = -ENOENT;
> > goto out;
> > diff --git a/drivers/gpu/drm/drm_color_mgmt.c 
> > b/drivers/gpu/drm/drm_color_mgmt.c
> > index 07dcf47daafe..a99ee15b8328 100644
> > --- a/drivers/gpu/drm/drm_color_mgmt.c
> > +++ b/drivers/gpu/drm/drm_color_mgmt.c
> > @@ -245,8 +245,10 @@ int drm_mode_gamma_set_ioctl(struct drm_device *dev,
> > return -EOPNOTSUPP;
> >  
> > crtc = drm_crtc_find(dev, file_priv, crtc_lut->crtc_id);
> > -   if (!crtc)
> > +   if (!crtc) {
> > +   DRM_DEBUG_KMS("Unknown CRTC ID %d\n", crtc_lut->crtc_id);
> > return -ENOENT;
> > +   }
> >  
> > if (crtc->funcs->gamma_set == NULL)
> > return -ENOSYS;
> > @@ -313,8 +315,10 @@ int drm_mode_gamma_get_ioctl(struct drm_device *dev,
> > return -EOPNOTSUPP;
> >  
> > crtc = drm_crtc_find(dev, file_priv, crtc_lut->crtc_id);
> > -   if (!crtc)
> > +   if (!crtc) {
> > +   DRM_DEBUG_KMS("Unknown CRTC ID %d\n", crtc_lut->crtc_id);
> > return -ENOENT;
> > +   }
> >  
> > /* memcpy into gamma store */
> > if (crtc_lut->gamma_size != crtc->gamma_size)
> > diff --git a/drivers/gpu/drm/drm_connector.c 
> > b/drivers/gpu/drm/drm_connector.c
> > index 847539645558..8745eb132fd4 100644
> > --- a/drivers/gpu/drm/drm_connector.c
> > +++ b/drivers/gpu/drm/drm_connector.c
> > @@ -1952,8 +1952,11 @@ int drm_mode_getconnector(struct drm_device *dev, 
> > void *data,
> > memset(&u_mode, 0, sizeof(struct drm_mode_modeinfo));
> >  
> > connector = drm_connector_lookup(dev, file_priv, 
> > out_resp->connector_id);
> > -   if (!connector)
> > +   if (!connector) {
> > +   DRM_DEBUG_KMS("Unknown connector ID %d\n",
> > + out_resp->connector_id);
> > return -ENOENT;
> > +   }
> >  
> > drm_connector_for_each_possible_encoder(connector, encoder, i)
> > encoders_count++;
> > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> > index 7dabbaf033a1..e5f234ffcd23 1

[Intel-gfx] ✗ Fi.CI.IGT: failure for Per context dynamic (sub)slice power-gating (rev20)

2019-01-25 Thread Patchwork
== Series Details ==

Series: Per context dynamic (sub)slice power-gating (rev20)
URL   : https://patchwork.freedesktop.org/series/48194/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5484_full -> Patchwork_12042_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@gem_ctx_param@invalid-param-get:
- shard-apl:  PASS -> FAIL
- shard-glk:  PASS -> FAIL
- shard-snb:  PASS -> FAIL
- shard-hsw:  PASS -> FAIL
- shard-kbl:  PASS -> FAIL

  * igt@gem_eio@in-flight-immediate:
- shard-kbl:  PASS -> DMESG-FAIL

  
 Suppressed 

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

  * {igt@runner@aborted}:
- shard-kbl:  ( 4 FAIL ) -> ( 5 FAIL )

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@bcs0-s3:
- shard-kbl:  PASS -> INCOMPLETE [fdo#103665]

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

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

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

  * igt@kms_plane@pixel-format-pipe-c-planes:
- shard-apl:  PASS -> FAIL [fdo#103166]

  * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max:
- shard-apl:  PASS -> FAIL [fdo#108145]

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

  
 Possible fixes 

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

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

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

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

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

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

  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108784]: https://bugs.freedesktop.org/show_bug.cgi?id=108784
  [fdo#109373]: https://bugs.freedesktop.org/show_bug.cgi?id=109373
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
  [k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321


Participating hosts (7 -> 5)
--

  Missing(2): shard-skl shard-iclb 


Build changes
-

* Linux: CI_DRM_5484 -> Patchwork_12042

  CI_DRM_5484: 9f66ac94341eb12501097f9f8991c86aee70981c @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12042: f9d1d6e5f67ada2518736db422785015e0465603 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


Re: [Intel-gfx] [PATCH 2/2] drm/i915/tv: Use the scanline counter for timestamps on i965gm TV output

2019-01-25 Thread Imre Deak
On Fri, Jan 25, 2019 at 08:19:31PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> Just like the frame counter, the pixel counter also reads zero
> all the time when the TV encoder is used. Fortunately the
> scanline counter still works sufficiently well so let's use that
> to correct the vblank timestamps. Otherwise the timestamps may
> en up out of whack, and since we use them to guesstimate the
> vblank counter value that may end up incorrect as well.
> 
> Cc: Imre Deak 
> Signed-off-by: Ville Syrjälä 

Reviewed-by: Imre Deak 

> ---
>  drivers/gpu/drm/i915/i915_irq.c  |  7 +--
>  drivers/gpu/drm/i915/intel_drv.h |  4 +++-
>  drivers/gpu/drm/i915/intel_tv.c  | 10 ++
>  3 files changed, 18 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index fe097725c27a..caade521c174 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -1014,6 +1014,9 @@ static bool i915_get_crtc_scanoutpos(struct drm_device 
> *dev, unsigned int pipe,
>   int position;
>   int vbl_start, vbl_end, hsync_start, htotal, vtotal;
>   unsigned long irqflags;
> + bool use_scanline_counter = INTEL_GEN(dev_priv) >= 5 ||
> + IS_G4X(dev_priv) || IS_GEN(dev_priv, 2) ||
> + mode->private_flags & I915_MODE_FLAG_USE_SCANLINE_COUNTER;
>  
>   if (WARN_ON(!mode->crtc_clock)) {
>   DRM_DEBUG_DRIVER("trying to get scanoutpos for disabled "
> @@ -1046,7 +1049,7 @@ static bool i915_get_crtc_scanoutpos(struct drm_device 
> *dev, unsigned int pipe,
>   if (stime)
>   *stime = ktime_get();
>  
> - if (IS_GEN(dev_priv, 2) || IS_G4X(dev_priv) || INTEL_GEN(dev_priv) >= 
> 5) {
> + if (use_scanline_counter) {
>   /* No obvious pixelcount register. Only query vertical
>* scanout position from Display scan line register.
>*/
> @@ -1106,7 +1109,7 @@ static bool i915_get_crtc_scanoutpos(struct drm_device 
> *dev, unsigned int pipe,
>   else
>   position += vtotal - vbl_end;
>  
> - if (IS_GEN(dev_priv, 2) || IS_G4X(dev_priv) || INTEL_GEN(dev_priv) >= 
> 5) {
> + if (use_scanline_counter) {
>   *vpos = position;
>   *hpos = 0;
>   } else {
> diff --git a/drivers/gpu/drm/i915/intel_drv.h 
> b/drivers/gpu/drm/i915/intel_drv.h
> index 85b913ea6e80..90ba5436370e 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -630,9 +630,11 @@ struct intel_crtc_scaler_state {
>  };
>  
>  /* drm_mode->private_flags */
> -#define I915_MODE_FLAG_INHERITED 1
> +#define I915_MODE_FLAG_INHERITED (1<<0)
>  /* Flag to get scanline using frame time stamps */
>  #define I915_MODE_FLAG_GET_SCANLINE_FROM_TIMESTAMP (1<<1)
> +/* Flag to use the scanline counter instead of the pixel counter */
> +#define I915_MODE_FLAG_USE_SCANLINE_COUNTER (1<<2)
>  
>  struct intel_pipe_wm {
>   struct intel_wm_level wm[5];
> diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
> index 78be08e2971b..751b88dde18e 100644
> --- a/drivers/gpu/drm/i915/intel_tv.c
> +++ b/drivers/gpu/drm/i915/intel_tv.c
> @@ -1150,6 +1150,11 @@ intel_tv_get_config(struct intel_encoder *encoder,
>ypos, mode.vdisplay - ysize - ypos);
>  
>   adjusted_mode->crtc_clock = mode.clock;
> +
> + /* pixel counter doesn't work on i965gm TV output */
> + if (IS_I965GM(dev_priv))
> + adjusted_mode->private_flags |=
> + I915_MODE_FLAG_USE_SCANLINE_COUNTER;
>  }
>  
>  static int
> @@ -1295,6 +1300,11 @@ intel_tv_compute_config(struct intel_encoder *encoder,
>   drm_mode_set_crtcinfo(adjusted_mode, 0);
>   adjusted_mode->name[0] = '\0';
>  
> + /* pixel counter doesn't work on i965gm TV output */
> + if (IS_I965GM(dev_priv))
> + adjusted_mode->private_flags |=
> + I915_MODE_FLAG_USE_SCANLINE_COUNTER;
> +
>   return 0;
>  }
>  
> -- 
> 2.19.2
> 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 1/2] drm/i915/tv: Fix return value for intel_tv_compute_config()

2019-01-25 Thread Imre Deak
On Fri, Jan 25, 2019 at 08:19:30PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> Ever since commit 204474a6b859 ("drm/i915: Pass down rc in
> intel_encoder->compute_config()") we're supposed to return an
> errno from .compute_config(). I failed to notice that when
> pushing the TV encoder fixes which were written before said
> commmit. Fix up the return value for the error case.
> 
> Cc: Imre Deak 
> Fixes: 690157f0a9e7 ("drm/i915/tv: Fix >1024 modes on gen3")
> Signed-off-by: Ville Syrjälä 

Reviewed-by: Imre Deak 

> ---
>  drivers/gpu/drm/i915/intel_tv.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
> index f0b9abda7720..78be08e2971b 100644
> --- a/drivers/gpu/drm/i915/intel_tv.c
> +++ b/drivers/gpu/drm/i915/intel_tv.c
> @@ -1189,7 +1189,7 @@ intel_tv_compute_config(struct intel_encoder *encoder,
>  
>   if (extra < 0) {
>   DRM_DEBUG_KMS("No vertical scaling for >1024 pixel wide 
> modes\n");
> - return false;
> + return -EINVAL;
>   }
>  
>   /* Need to turn off the vertical filter and center the image */
> -- 
> 2.19.2
> 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v4 2/2] drm/i915: Validate userspace-provided color management LUT's (v4)

2019-01-25 Thread Ville Syrjälä
On Tue, Dec 18, 2018 at 09:51:58AM -0800, Matt Roper wrote:
> We currently program userspace-provided gamma and degamma LUT's into our
> hardware without really checking to see whether they satisfy our
> hardware's rules.  We should try to catch tables that are invalid for
> our hardware early and reject the atomic transaction.
> 
> All of our platforms that accept a degamma LUT expect that the entries
> in the LUT are always flat or increasing, never decreasing.  Also, our
> GLK and ICL platforms only accept degamma tables with r=g=b entries; so
> we should also add the relevant checks for that in anticipation of
> degamma support landing for those platforms.
> 
> v2:
>  - Use new API (single check function with bitmask of tests to apply)
>  - Call helper for our gamma table as well (with no additional tests
>specified) so that the table size will be validated.
> 
> v3:
>  - Don't call on the gamma table since the LUT size is already tested at
>property blob upload and we don't have any additional hardware
>constraints for that LUT.
> 
> v4:
>  - Apply equal color channel check on gen10 as well; the bspec has some
>strange tagging for CNL platforms, but this appears to apply there as
>well.  (Ville)
> 
> Cc: Uma Shankar 
> Cc: Swati Sharma 
> Cc: Ville Syrjälä 
> Signed-off-by: Matt Roper 
> Reviewed-by: Uma Shankar 
> ---
>  drivers/gpu/drm/i915/intel_color.c | 16 
>  1 file changed, 16 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_color.c 
> b/drivers/gpu/drm/i915/intel_color.c
> index 37fd9ddf762e..e3ffbb0ad9a6 100644
> --- a/drivers/gpu/drm/i915/intel_color.c
> +++ b/drivers/gpu/drm/i915/intel_color.c
> @@ -609,10 +609,26 @@ int intel_color_check(struct intel_crtc_state 
> *crtc_state)
>  {
>   struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev);
>   size_t gamma_length, degamma_length;
> + uint32_t tests = DRM_COLOR_LUT_NON_DECREASING;
>  
>   degamma_length = INTEL_INFO(dev_priv)->color.degamma_lut_size;
>   gamma_length = INTEL_INFO(dev_priv)->color.gamma_lut_size;
>  
> + /*
> +  * All of our platforms mandate that the degamma curve be
> +  * non-decreasing. 

This is actually not true. Only interpolated gamma modes require a
non-decreasing curve. The split gamma mode used on pre-glk is not
interpolated.

Also both CHV CGM gamma and degamma are interpolated, so we should
rather be checking gamma as well here.

> Additionally, GLK and gen11 only accept a single
> +  * value for red, green, and blue in the degamma table.  Make sure
> +  * userspace didn't try to pass us something we can't handle.
> +  *
> +  * We don't have any extra hardware constraints on the gamma table,
> +  * so no need to explicitly check it.
> +  */
> + if (IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 10)
> + tests |= DRM_COLOR_LUT_EQUAL_CHANNELS;
> +
> + if (drm_color_lut_check(crtc_state->base.degamma_lut, tests) != 0)
> + return -EINVAL;
> +
>   /*
>* We allow both degamma & gamma luts at the right size or
>* NULL.
> -- 
> 2.14.4

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


Re: [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/icl: Add TypeC ports only if VBT is present

2019-01-25 Thread Imre Deak
On Fri, Jan 25, 2019 at 03:49:07PM +, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915/icl: Add TypeC ports only if VBT is present
> URL   : https://patchwork.freedesktop.org/series/55733/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_5484 -> Patchwork_12040
> 
> 
> Summary
> ---
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with Patchwork_12040 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_12040, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: 
> https://patchwork.freedesktop.org/api/1.0/series/55733/revisions/1/mbox/
> 
> Possible new issues
> ---
> 
>   Here are the unknown changes that may have been introduced in 
> Patchwork_12040:
> 
> ### IGT changes ###
> 
>  Possible regressions 
> 
>   * igt@gem_exec_suspend@basic-s3:
> - fi-icl-y:   NOTRUN -> DMESG-WARN

Starting with a state mismatch error after:
<7>[   93.724187] [drm:pipe_config_err [i915]] mismatch in cpu_transcoder 
(expected 0, found 3)
<7>[   93.724221] [drm:pipe_config_err [i915]] mismatch in lane_count (expected 
0, found 2)
...
and then
<3>[   97.765551] [drm:intel_dp_start_link_train [i915]] *ERROR* failed to 
enable link training

but more importantly after this patch the status changed from NOTRUN to
runnable. So far no tests were run on this machine due to a kernel taint
during boot:
<4>[   10.967912] WARN_ON(dig_port->tc_legacy_port)

This patch gets rid of the above WARN and taint, so the tests will be run.

> 
>   * igt@i915_selftest@live_contexts:
> - fi-icl-y:   NOTRUN -> DMESG-FAIL

This is in existing issue seen on all ICLs.

>   * igt@i915_selftest@live_hangcheck:
> - fi-kbl-r:   PASS -> INCOMPLETE

Unrelated platform.

> - fi-icl-y:   NOTRUN -> INCOMPLETE

Not sure if this one is seen on other ICLs, but it's a GEM test and
looks unrelated to the change in this patch.

> 
>   
>  Suppressed 
> 
>   The following results come from untrusted machines, tests, or statuses.
>   They do not affect the overall result.
> 
>   * igt@kms_flip@basic-flip-vs-modeset:
> - fi-icl-y:   NOTRUN -> {SKIP} +79
> 
>   
> Known issues
> 
> 
>   Here are the changes found in Patchwork_12040 that come from known issues:
> 
> ### IGT changes ###
> 
>  Issues hit 
> 
>   * igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
> - fi-byt-clapper: PASS -> FAIL [fdo#103191] / [fdo#107362] +1
> 
>   * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
> - fi-blb-e6850:   PASS -> INCOMPLETE [fdo#107718]
> 
>   
>  Possible fixes 
> 
>   * igt@kms_busy@basic-flip-b:
> - fi-gdg-551: FAIL [fdo#103182] -> PASS
> 
>   
>   {name}: This element is suppressed. This means it is ignored when computing
>   the status of the difference (SUCCESS, WARNING, or FAILURE).
> 
>   [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
>   [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
>   [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
>   [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
>   [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
>   [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
> 
> 
> Participating hosts (44 -> 41)
> --
> 
>   Additional (1): fi-bsw-n3050 
>   Missing(4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 
> 
> 
> Build changes
> -
> 
> * Linux: CI_DRM_5484 -> Patchwork_12040
> 
>   CI_DRM_5484: 9f66ac94341eb12501097f9f8991c86aee70981c @ 
> git://anongit.freedesktop.org/gfx-ci/linux
>   IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
> git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
>   Patchwork_12040: 4165b2121372a06987a76a8291b95eacb204f212 @ 
> git://anongit.freedesktop.org/gfx-ci/linux
> 
> 
> == Linux commits ==
> 
> 4165b2121372 drm/i915/icl: Add TypeC ports only if VBT is present
> 
> == Logs ==
> 
> For more details see: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12040/
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Fix skl srckey mask bits

2019-01-25 Thread Patchwork
== Series Details ==

Series: drm/i915: Fix skl srckey mask bits
URL   : https://patchwork.freedesktop.org/series/55744/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5486 -> Patchwork_12045


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u:   PASS -> FAIL [fdo#108767]

  * igt@kms_flip@basic-flip-vs-dpms:
- fi-skl-6700hq:  PASS -> DMESG-WARN [fdo#105998]

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

  
 Possible fixes 

  * igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850:   INCOMPLETE [fdo#107718] -> PASS

  * igt@kms_flip@basic-flip-vs-wf_vblank:
- fi-bsw-n3050:   FAIL [fdo#100368] -> PASS

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

  [fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#108767]: https://bugs.freedesktop.org/show_bug.cgi?id=108767
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (43 -> 41)
--

  Additional (2): fi-byt-clapper fi-pnv-d510 
  Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


Build changes
-

* Linux: CI_DRM_5486 -> Patchwork_12045

  CI_DRM_5486: 186ccd79d43ff0c930c7211e24ba5afa78c6594e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12045: 93c1c37b7d5fe620aa660d8893bff83a90265839 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

93c1c37b7d5f drm/i915: Fix skl srckey mask bits

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12045/
___
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/2] drm/i915/tv: Fix return value for intel_tv_compute_config()

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915/tv: Fix return value for 
intel_tv_compute_config()
URL   : https://patchwork.freedesktop.org/series/55743/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5486 -> Patchwork_12044


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_busy@basic-flip-a:
- fi-gdg-551: PASS -> FAIL [fdo#103182]

  * igt@kms_flip@basic-flip-vs-modeset:
- fi-skl-6700hq:  PASS -> DMESG-WARN [fdo#105998] +1

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

  * igt@kms_pipe_crc_basic@read-crc-pipe-b:
- fi-byt-clapper: NOTRUN -> FAIL [fdo#107362]

  
 Possible fixes 

  * igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850:   INCOMPLETE [fdo#107718] -> PASS

  * igt@kms_flip@basic-flip-vs-wf_vblank:
- fi-bsw-n3050:   FAIL [fdo#100368] -> PASS

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

  [fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368
  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (43 -> 41)
--

  Additional (2): fi-byt-clapper fi-pnv-d510 
  Missing(4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


Build changes
-

* Linux: CI_DRM_5486 -> Patchwork_12044

  CI_DRM_5486: 186ccd79d43ff0c930c7211e24ba5afa78c6594e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12044: 32e0a172c9d3191d2530fd05a82cec82519e35ed @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

32e0a172c9d3 drm/i915/tv: Use the scanline counter for timestamps on i965gm TV 
output
03b411930b07 drm/i915/tv: Fix return value for intel_tv_compute_config()

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12044/
___
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 [v2,1/2] drm/dp/mst: Provide defines for ACK vs. NAK reply type (rev2)

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/2] drm/dp/mst: Provide defines for ACK vs. 
NAK reply type (rev2)
URL   : https://patchwork.freedesktop.org/series/55581/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5486 -> Patchwork_12043


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/55581/revisions/2/mbox/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_basic@userptr:
- fi-kbl-8809g:   PASS -> DMESG-WARN [fdo#108965]

  * igt@gem_exec_suspend@basic-s3:
- fi-skl-6260u:   PASS -> INCOMPLETE [fdo#104108] / [fdo#107773]

  * igt@kms_flip@basic-flip-vs-dpms:
- fi-skl-6700hq:  PASS -> DMESG-WARN [fdo#105998]

  
 Possible fixes 

  * igt@kms_flip@basic-flip-vs-wf_vblank:
- fi-bsw-n3050:   FAIL [fdo#100368] -> PASS

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

  [fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368
  [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
  [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998
  [fdo#107773]: https://bugs.freedesktop.org/show_bug.cgi?id=107773
  [fdo#108965]: https://bugs.freedesktop.org/show_bug.cgi?id=108965
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (43 -> 40)
--

  Additional (2): fi-byt-clapper fi-pnv-d510 
  Missing(5): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-icl-y 


Build changes
-

* Linux: CI_DRM_5486 -> Patchwork_12043

  CI_DRM_5486: 186ccd79d43ff0c930c7211e24ba5afa78c6594e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12043: c35519be7b5a818f1aebccd38b28707331c41c58 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

c35519be7b5a drm/dp/mst: Provide better debugs for NAK replies
b8534842e422 drm/dp/mst: Provide defines for ACK vs. NAK reply type

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12043/
___
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/2] drm/i915/tv: Fix return value for intel_tv_compute_config()

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915/tv: Fix return value for 
intel_tv_compute_config()
URL   : https://patchwork.freedesktop.org/series/55743/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
03b411930b07 drm/i915/tv: Fix return value for intel_tv_compute_config()
32e0a172c9d3 drm/i915/tv: Use the scanline counter for timestamps on i965gm TV 
output
-:61: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#61: FILE: drivers/gpu/drm/i915/intel_drv.h:633:
+#define I915_MODE_FLAG_INHERITED (1<<0)
^

-:65: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#65: FILE: drivers/gpu/drm/i915/intel_drv.h:637:
+#define I915_MODE_FLAG_USE_SCANLINE_COUNTER (1<<2)
   ^

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

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


[Intel-gfx] [PATCH] drm/i915: Fix skl srckey mask bits

2019-01-25 Thread Ville Syrjala
From: Ville Syrjälä 

We're incorrectly masking off the R/V channel enable bit from
KEYMSK. Fix it up.

Cc: Maarten Lankhorst 
Cc: Matt Roper 
Fixes: b20815255693 ("drm/i915: Add plane alpha blending support, v2.")
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/intel_sprite.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_sprite.c 
b/drivers/gpu/drm/i915/intel_sprite.c
index b02d3d9809e3..cd42e81f8a90 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -493,7 +493,7 @@ skl_program_plane(struct intel_plane *plane,
 
keymax = (key->max_value & 0xff) | PLANE_KEYMAX_ALPHA(alpha);
 
-   keymsk = key->channel_mask & 0x3ff;
+   keymsk = key->channel_mask & 0x7ff;
if (alpha < 0xff)
keymsk |= PLANE_KEYMSK_ALPHA_ENABLE;
 
-- 
2.19.2

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


Re: [Intel-gfx] [PATCH 06/26] drm/fb_helper: set info->par in fill_info()

2019-01-25 Thread Sam Ravnborg
On Fri, Jan 25, 2019 at 09:44:06AM +0100, Daniel Vetter wrote:
> On Thu, Jan 24, 2019 at 06:45:52PM +0100, Sam Ravnborg wrote:
> > Hi Daniel.
> > 
> > On Thu, Jan 24, 2019 at 05:58:11PM +0100, Daniel Vetter wrote:
> > > The fbdev emulation helpers pretty much assume that this is set.
> > > Let's do it for everyone.
> > 
> > I do not know this code at all.
> > But I failed to follow the code from the patch description.
> > 
> > It do not give _me_ a clue why the assignment is removed from
> > drm_fb_helper_generic_probe().
> > But it may be obvious for people that actually know this.
> 
> generic_probe calls the new fill_info function, so it's not removed, it's
> just moved, so that I can roll it out to all the drivers in the subsequent
> patches.
Obvious new you spell it out, thanks.
Patch is fine:

Reviewed-by: Sam Ravnborg 
___
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 [v2,1/2] drm/dp/mst: Provide defines for ACK vs. NAK reply type (rev2)

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/2] drm/dp/mst: Provide defines for ACK vs. 
NAK reply type (rev2)
URL   : https://patchwork.freedesktop.org/series/55581/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
b8534842e422 drm/dp/mst: Provide defines for ACK vs. NAK reply type
c35519be7b5a drm/dp/mst: Provide better debugs for NAK replies
-:26: ERROR:BRACKET_SPACE: space prohibited before open square bracket '['
#26: FILE: drivers/gpu/drm/drm_dp_mst_topology.c:71:
+#define DP_STR(x) [DP_ ## x] = #x

-:57: ERROR:BRACKET_SPACE: space prohibited before open square bracket '['
#57: FILE: drivers/gpu/drm/drm_dp_mst_topology.c:102:
+#define DP_STR(x) [DP_NAK_ ## x] = #x

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

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


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Stop tracking MRU activity on VMA

2019-01-25 Thread Patchwork
== Series Details ==

Series: drm/i915: Stop tracking MRU activity on VMA
URL   : https://patchwork.freedesktop.org/series/55731/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5483_full -> Patchwork_12039_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

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

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

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

  * igt@kms_cursor_crc@cursor-128x128-suspend:
- shard-apl:  PASS -> FAIL [fdo#103191] / [fdo#103232]

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

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

  * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max:
- shard-apl:  PASS -> FAIL [fdo#108145]

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

  
 Possible fixes 

  * igt@kms_available_modes_crc@available_mode_test_crc:
- shard-apl:  FAIL [fdo#106641] -> PASS

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

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

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

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

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

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

  * igt@kms_rotation_crc@multiplane-rotation:
- shard-kbl:  INCOMPLETE [fdo#103665] -> PASS

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

  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109373]: https://bugs.freedesktop.org/show_bug.cgi?id=109373
  [k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321


Participating hosts (7 -> 5)
--

  Missing(2): shard-skl shard-iclb 


Build changes
-

* Linux: CI_DRM_5483 -> Patchwork_12039

  CI_DRM_5483: 39cde7a859167467e9c4446b70b08a42b5e3345e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12039: dcfcc9eab96656001a0cf108b6e6ad2b42985ef7 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


[Intel-gfx] [PATCH 1/2] drm/i915/tv: Fix return value for intel_tv_compute_config()

2019-01-25 Thread Ville Syrjala
From: Ville Syrjälä 

Ever since commit 204474a6b859 ("drm/i915: Pass down rc in
intel_encoder->compute_config()") we're supposed to return an
errno from .compute_config(). I failed to notice that when
pushing the TV encoder fixes which were written before said
commmit. Fix up the return value for the error case.

Cc: Imre Deak 
Fixes: 690157f0a9e7 ("drm/i915/tv: Fix >1024 modes on gen3")
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/intel_tv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index f0b9abda7720..78be08e2971b 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1189,7 +1189,7 @@ intel_tv_compute_config(struct intel_encoder *encoder,
 
if (extra < 0) {
DRM_DEBUG_KMS("No vertical scaling for >1024 pixel wide 
modes\n");
-   return false;
+   return -EINVAL;
}
 
/* Need to turn off the vertical filter and center the image */
-- 
2.19.2

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


[Intel-gfx] [PATCH 2/2] drm/i915/tv: Use the scanline counter for timestamps on i965gm TV output

2019-01-25 Thread Ville Syrjala
From: Ville Syrjälä 

Just like the frame counter, the pixel counter also reads zero
all the time when the TV encoder is used. Fortunately the
scanline counter still works sufficiently well so let's use that
to correct the vblank timestamps. Otherwise the timestamps may
en up out of whack, and since we use them to guesstimate the
vblank counter value that may end up incorrect as well.

Cc: Imre Deak 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/i915_irq.c  |  7 +--
 drivers/gpu/drm/i915/intel_drv.h |  4 +++-
 drivers/gpu/drm/i915/intel_tv.c  | 10 ++
 3 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index fe097725c27a..caade521c174 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1014,6 +1014,9 @@ static bool i915_get_crtc_scanoutpos(struct drm_device 
*dev, unsigned int pipe,
int position;
int vbl_start, vbl_end, hsync_start, htotal, vtotal;
unsigned long irqflags;
+   bool use_scanline_counter = INTEL_GEN(dev_priv) >= 5 ||
+   IS_G4X(dev_priv) || IS_GEN(dev_priv, 2) ||
+   mode->private_flags & I915_MODE_FLAG_USE_SCANLINE_COUNTER;
 
if (WARN_ON(!mode->crtc_clock)) {
DRM_DEBUG_DRIVER("trying to get scanoutpos for disabled "
@@ -1046,7 +1049,7 @@ static bool i915_get_crtc_scanoutpos(struct drm_device 
*dev, unsigned int pipe,
if (stime)
*stime = ktime_get();
 
-   if (IS_GEN(dev_priv, 2) || IS_G4X(dev_priv) || INTEL_GEN(dev_priv) >= 
5) {
+   if (use_scanline_counter) {
/* No obvious pixelcount register. Only query vertical
 * scanout position from Display scan line register.
 */
@@ -1106,7 +1109,7 @@ static bool i915_get_crtc_scanoutpos(struct drm_device 
*dev, unsigned int pipe,
else
position += vtotal - vbl_end;
 
-   if (IS_GEN(dev_priv, 2) || IS_G4X(dev_priv) || INTEL_GEN(dev_priv) >= 
5) {
+   if (use_scanline_counter) {
*vpos = position;
*hpos = 0;
} else {
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 85b913ea6e80..90ba5436370e 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -630,9 +630,11 @@ struct intel_crtc_scaler_state {
 };
 
 /* drm_mode->private_flags */
-#define I915_MODE_FLAG_INHERITED 1
+#define I915_MODE_FLAG_INHERITED (1<<0)
 /* Flag to get scanline using frame time stamps */
 #define I915_MODE_FLAG_GET_SCANLINE_FROM_TIMESTAMP (1<<1)
+/* Flag to use the scanline counter instead of the pixel counter */
+#define I915_MODE_FLAG_USE_SCANLINE_COUNTER (1<<2)
 
 struct intel_pipe_wm {
struct intel_wm_level wm[5];
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index 78be08e2971b..751b88dde18e 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1150,6 +1150,11 @@ intel_tv_get_config(struct intel_encoder *encoder,
 ypos, mode.vdisplay - ysize - ypos);
 
adjusted_mode->crtc_clock = mode.clock;
+
+   /* pixel counter doesn't work on i965gm TV output */
+   if (IS_I965GM(dev_priv))
+   adjusted_mode->private_flags |=
+   I915_MODE_FLAG_USE_SCANLINE_COUNTER;
 }
 
 static int
@@ -1295,6 +1300,11 @@ intel_tv_compute_config(struct intel_encoder *encoder,
drm_mode_set_crtcinfo(adjusted_mode, 0);
adjusted_mode->name[0] = '\0';
 
+   /* pixel counter doesn't work on i965gm TV output */
+   if (IS_I965GM(dev_priv))
+   adjusted_mode->private_flags |=
+   I915_MODE_FLAG_USE_SCANLINE_COUNTER;
+
return 0;
 }
 
-- 
2.19.2

___
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 [CI,1/5] drm/i915: Make all GPU resets atomic

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/5] drm/i915: Make all GPU resets atomic
URL   : https://patchwork.freedesktop.org/series/55730/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5483_full -> Patchwork_12038_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@gem_eio@in-flight-contexts-1us:
- shard-kbl:  PASS -> DMESG-WARN +3
- shard-apl:  PASS -> DMESG-WARN +3

  * igt@gem_eio@in-flight-external:
- shard-glk:  PASS -> DMESG-WARN +3

  * igt@gem_mmap_gtt@hang:
- shard-kbl:  PASS -> FAIL
- shard-hsw:  PASS -> FAIL
- shard-snb:  PASS -> FAIL
- shard-glk:  PASS -> FAIL
- shard-apl:  PASS -> FAIL

  
 Suppressed 

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

  * {igt@runner@aborted}:
- shard-kbl:  NOTRUN -> ( 4 FAIL )
- shard-apl:  NOTRUN -> ( 4 FAIL )

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_eio@in-flight-internal-1us:
- shard-glk:  PASS -> FAIL [fdo#107799]

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

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

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

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

  * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max:
- shard-apl:  PASS -> FAIL [fdo#108145]

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

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

  * igt@kms_vblank@pipe-c-ts-continuation-idle:
- shard-hsw:  PASS -> DMESG-WARN [fdo#102614]

  
 Possible fixes 

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

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

  * igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
- shard-glk:  FAIL [fdo#105454] -> PASS

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

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

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

  * igt@kms_rotation_crc@multiplane-rotation:
- shard-kbl:  INCOMPLETE [fdo#103665] -> PASS

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

  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#105454]: https://bugs.freedesktop.org/show_bug.cgi?id=105454
  [fdo#107799]: https://bugs.freedesktop.org/show_bug.cgi?id=107799
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109373]: https://bugs.freedesktop.org/show_bug.cgi?id=109373
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
  [k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321


Participating hosts (7 -> 5)
--

  Missing(2): shard-skl shard-iclb 


Build changes
-

* Linux: CI_DRM_5483 -> Patchwork_12038

  CI_DRM_5483: 39cde7a859167467e9c4446b70b08a42b5e3345e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12038: 3c15a67f2a13a2cc920168b68e4bda85c0fc938e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit


Re: [Intel-gfx] [PATCH 14/15] drm/i915/tv: Fix >1024 modes on gen3

2019-01-25 Thread Ville Syrjälä
On Wed, Jan 23, 2019 at 03:49:02PM +0200, Imre Deak wrote:
> On Mon, Nov 12, 2018 at 06:59:59PM +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä 
> > 
> > On gen3 we must disable the TV encoder vertical filter for >1024
> > pixel wide sources. Once that's done all we can is try to center
> > the image on the screen. Naturally the TV mode vertical resolution
> > must be equal or larger than the user mode vertical resolution
> > or else we'd have to cut off part of the user mode.
> > 
> > And while we may not be able to respect the user's choice of
> > top and bottom borders exactly (or we'd have to reject he mode
> > most likely), we can try to maintain the relative sizes of the
> > top and bottom border with respect to each orher.
> > 
> > Additionally we must configure the pipe as interlaced if the
> > TV mode is interlaced.
> > 
> > Signed-off-by: Ville Syrjälä 
> > ---
> >  drivers/gpu/drm/i915/intel_tv.c | 100 +---
> >  1 file changed, 92 insertions(+), 8 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_tv.c 
> > b/drivers/gpu/drm/i915/intel_tv.c
> > index 75126fce655d..7099d837e31a 100644
> > --- a/drivers/gpu/drm/i915/intel_tv.c
> > +++ b/drivers/gpu/drm/i915/intel_tv.c
> > @@ -861,6 +861,44 @@ static const struct tv_mode tv_modes[] = {
> > },
> >  };
> >  
> > +struct intel_tv_connector_state {
> > +   struct drm_connector_state base;
> > +
> > +   /*
> > +* May need to override the user margins for
> > +* gen3 >1024 wide source vertical centering.
> > +*/
> > +   struct {
> > +   u16 top, bottom;
> > +   } margins;
> > +
> > +   bool bypass_vfilter;
> > +};
> > +
> > +#define to_intel_tv_connector_state(x) container_of(x, struct 
> > intel_tv_connector_state, base)
> > +
> > +/**
> > + * intel_digital_connector_duplicate_state - duplicate connector state
>   ^intel_tv_connector_duplicate_state
> > + * @connector: digital connector
>   ^tv connector?

Copy paste fail. I just dropped the kerneldoc here and made the
function static. Also fixed up the s/IS_GEN3(x)/IS_GEN(x,3)/ type
of things and pushed the lot to dinq.

Thanks for the review.

> > + *
> > + * Allocates and returns a copy of the connector state (both common and
> > + * digital connector specific) for the specified connector.
> > + *
> > + * Returns: The newly allocated connector state, or NULL on failure.
> > + */
> > +struct drm_connector_state *
> > +intel_tv_connector_duplicate_state(struct drm_connector *connector)
> > +{
> > +   struct intel_tv_connector_state *state;
> > +
> > +   state = kmemdup(connector->state, sizeof(*state), GFP_KERNEL);
> > +   if (!state)
> > +   return NULL;
> > +
> > +   __drm_atomic_helper_connector_duplicate_state(connector, &state->base);
> > +   return &state->base;
> > +}
> 
> You didn't add the corresponding checks for the new
> intel_tv_connector_state fields to intel_tv_atomic_check(). I suppose
> that's ok since something resulting in a change in those will force a
> modeset anyway:
> 
> Reviewed-by: Imre Deak 
> 
> > +
> >  static struct intel_tv *enc_to_tv(struct intel_encoder *encoder)
> >  {
> > return container_of(encoder, struct intel_tv, base);
> > @@ -1129,6 +1167,9 @@ intel_tv_compute_config(struct intel_encoder *encoder,
> > struct intel_crtc_state *pipe_config,
> > struct drm_connector_state *conn_state)
> >  {
> > +   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> > +   struct intel_tv_connector_state *tv_conn_state =
> > +   to_intel_tv_connector_state(conn_state);
> > const struct tv_mode *tv_mode = intel_tv_mode_find(conn_state);
> > struct drm_display_mode *adjusted_mode =
> > &pipe_config->base.adjusted_mode;
> > @@ -1149,6 +1190,43 @@ intel_tv_compute_config(struct intel_encoder 
> > *encoder,
> > pipe_config->port_clock = tv_mode->clock;
> >  
> > intel_tv_mode_to_mode(adjusted_mode, tv_mode);
> > +   drm_mode_set_crtcinfo(adjusted_mode, 0);
> > +
> > +   if (IS_GEN3(dev_priv) && hdisplay > 1024) {
> > +   int extra, top, bottom;
> > +
> > +   extra = adjusted_mode->crtc_vdisplay - vdisplay;
> > +
> > +   if (extra < 0) {
> > +   DRM_DEBUG_KMS("No vertical scaling for >1024 pixel wide 
> > modes\n");
> > +   return false;
> > +   }
> > +
> > +   /* Need to turn off the vertical filter and center the image */
> > +
> > +   /* Attempt to maintain the relative sizes of the margins */
> > +   top = conn_state->tv.margins.top;
> > +   bottom = conn_state->tv.margins.bottom;
> > +
> > +   if (top + bottom)
> > +   top = extra * top / (top + bottom);
> > +   else
> > +   top = extra / 2;
> > +   bottom = extra - top;
> > +
> > +   tv_conn_state->margins.top = top;
> > +   tv_conn_state->margins.bottom = bottom;
> > +
> > +  

[Intel-gfx] ✓ Fi.CI.BAT: success for Per context dynamic (sub)slice power-gating (rev20)

2019-01-25 Thread Patchwork
== Series Details ==

Series: Per context dynamic (sub)slice power-gating (rev20)
URL   : https://patchwork.freedesktop.org/series/48194/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5484 -> Patchwork_12042


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/48194/revisions/20/mbox/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@prime_vgem@basic-fence-flip:
- fi-ilk-650: PASS -> FAIL [fdo#104008]

  
 Possible fixes 

  * igt@kms_busy@basic-flip-b:
- fi-gdg-551: FAIL [fdo#103182] -> PASS

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

  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#104008]: https://bugs.freedesktop.org/show_bug.cgi?id=104008
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (44 -> 40)
--

  Additional (1): fi-bsw-n3050 
  Missing(5): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-icl-y 


Build changes
-

* Linux: CI_DRM_5484 -> Patchwork_12042

  CI_DRM_5484: 9f66ac94341eb12501097f9f8991c86aee70981c @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12042: f9d1d6e5f67ada2518736db422785015e0465603 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

f9d1d6e5f67a drm/i915/selftests: Context SSEU reconfiguration tests
eb99a08b265d drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 
only)
464e6b0fe17d drm/i915: Add timeline barrier support
f8dd0fb8513e drm/i915/perf: lock powergating configuration to default when 
active
e1d7e70fd818 drm/i915: Record the sseu configuration per-context & engine

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for Per context dynamic (sub)slice power-gating (rev20)

2019-01-25 Thread Patchwork
== Series Details ==

Series: Per context dynamic (sub)slice power-gating (rev20)
URL   : https://patchwork.freedesktop.org/series/48194/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915: Record the sseu configuration per-context & engine
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3541:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3555:16: warning: expression 
using sizeof(void)

Commit: drm/i915/perf: lock powergating configuration to default when active
Okay!

Commit: drm/i915: Add timeline barrier support
Okay!

Commit: drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 only)
+drivers/gpu/drm/i915/intel_lrc.c:2364:25: warning: expression using 
sizeof(void)

Commit: drm/i915/selftests: Context SSEU reconfiguration tests
+drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression 
using sizeof(void)
-drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression 
using sizeof(void)
-drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression 
using sizeof(void)

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Per context dynamic (sub)slice power-gating (rev20)

2019-01-25 Thread Patchwork
== Series Details ==

Series: Per context dynamic (sub)slice power-gating (rev20)
URL   : https://patchwork.freedesktop.org/series/48194/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
e1d7e70fd818 drm/i915: Record the sseu configuration per-context & engine
f8dd0fb8513e drm/i915/perf: lock powergating configuration to default when 
active
464e6b0fe17d drm/i915: Add timeline barrier support
eb99a08b265d drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 
only)
-:528: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 
'user->min_eus_per_subslice !=
 device->max_eus_per_subslice'
#528: FILE: drivers/gpu/drm/i915/i915_gem_context.c:1175:
+   if ((user->min_eus_per_subslice !=
+device->max_eus_per_subslice) ||
+   (user->max_eus_per_subslice !=
+device->max_eus_per_subslice))

-:528: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 
'user->max_eus_per_subslice !=
 device->max_eus_per_subslice'
#528: FILE: drivers/gpu/drm/i915/i915_gem_context.c:1175:
+   if ((user->min_eus_per_subslice !=
+device->max_eus_per_subslice) ||
+   (user->max_eus_per_subslice !=
+device->max_eus_per_subslice))

total: 0 errors, 0 warnings, 2 checks, 499 lines checked
f9d1d6e5f67a drm/i915/selftests: Context SSEU reconfiguration tests

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


[Intel-gfx] [PATCH v4 3/5] drm/i915: Add timeline barrier support

2019-01-25 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

Timeline barrier allows serialization between different timelines.

After calling i915_timeline_set_barrier with a request, all following
submissions on this timeline will be set up as depending on this request,
or barrier. Once the barrier has been completed it automatically gets
cleared and things continue as normal.

This facility will be used by the upcoming context SSEU code.

v2:
 * Assert barrier has been retired on timeline_fini. (Chris Wilson)
 * Fix mock_timeline.

v3:
 * Improved comment language. (Chris Wilson)

v4:
 * Maintain ordering with previous barriers set on the timeline.

Signed-off-by: Tvrtko Ursulin 
Suggested-by: Chris Wilson 
Cc: Chris Wilson 
Reviewed-by: Chris Wilson 
---
 drivers/gpu/drm/i915/i915_request.c   | 17 ++
 drivers/gpu/drm/i915/i915_timeline.c  | 21 ++
 drivers/gpu/drm/i915/i915_timeline.h  | 22 +++
 .../gpu/drm/i915/selftests/mock_timeline.c|  1 +
 4 files changed, 61 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_request.c 
b/drivers/gpu/drm/i915/i915_request.c
index f4241a17e2ad..894b32258340 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -517,6 +517,19 @@ i915_request_alloc_slow(struct intel_context *ce)
return kmem_cache_alloc(ce->gem_context->i915->requests, GFP_KERNEL);
 }
 
+static int add_barrier(struct i915_request *rq, struct i915_gem_active *active)
+{
+   struct i915_request *barrier =
+   i915_gem_active_raw(active, &rq->i915->drm.struct_mutex);
+
+   return barrier ? i915_request_await_dma_fence(rq, &barrier->fence) : 0;
+}
+
+static int add_timeline_barrier(struct i915_request *rq)
+{
+   return add_barrier(rq, &rq->timeline->barrier);
+}
+
 /**
  * i915_request_alloc - allocate a request structure
  *
@@ -660,6 +673,10 @@ i915_request_alloc(struct intel_engine_cs *engine, struct 
i915_gem_context *ctx)
 */
rq->head = rq->ring->emit;
 
+   ret = add_timeline_barrier(rq);
+   if (ret)
+   goto err_unwind;
+
ret = engine->request_alloc(rq);
if (ret)
goto err_unwind;
diff --git a/drivers/gpu/drm/i915/i915_timeline.c 
b/drivers/gpu/drm/i915/i915_timeline.c
index 4667cc08c416..6d5774cb8504 100644
--- a/drivers/gpu/drm/i915/i915_timeline.c
+++ b/drivers/gpu/drm/i915/i915_timeline.c
@@ -33,6 +33,7 @@ void i915_timeline_init(struct drm_i915_private *i915,
 
spin_lock_init(&timeline->lock);
 
+   init_request_active(&timeline->barrier, NULL);
init_request_active(&timeline->last_request, NULL);
INIT_LIST_HEAD(&timeline->requests);
 
@@ -69,6 +70,7 @@ void i915_timelines_park(struct drm_i915_private *i915)
 void i915_timeline_fini(struct i915_timeline *timeline)
 {
GEM_BUG_ON(!list_empty(&timeline->requests));
+   GEM_BUG_ON(i915_gem_active_isset(&timeline->barrier));
 
i915_syncmap_free(&timeline->sync);
 
@@ -90,6 +92,25 @@ i915_timeline_create(struct drm_i915_private *i915, const 
char *name)
return timeline;
 }
 
+int i915_timeline_set_barrier(struct i915_timeline *tl, struct i915_request 
*rq)
+{
+   struct i915_request *old;
+   int err;
+
+   lockdep_assert_held(&rq->i915->drm.struct_mutex);
+
+   /* Must maintain ordering wrt existing barriers */
+   old = i915_gem_active_raw(&tl->barrier, &rq->i915->drm.struct_mutex);
+   if (old) {
+   err = i915_request_await_dma_fence(rq, &old->fence);
+   if (err)
+   return err;
+   }
+
+   i915_gem_active_set(&tl->barrier, rq);
+   return 0;
+}
+
 void __i915_timeline_free(struct kref *kref)
 {
struct i915_timeline *timeline =
diff --git a/drivers/gpu/drm/i915/i915_timeline.h 
b/drivers/gpu/drm/i915/i915_timeline.h
index 38c1e15e927a..c8d7117bb205 100644
--- a/drivers/gpu/drm/i915/i915_timeline.h
+++ b/drivers/gpu/drm/i915/i915_timeline.h
@@ -64,6 +64,16 @@ struct i915_timeline {
 */
struct i915_syncmap *sync;
 
+   /**
+* Barrier provides the ability to serialize ordering between different
+* timelines.
+*
+* Users can call i915_timeline_set_barrier which will make all
+* subsequent submissions to this timeline be executed only after the
+* barrier has been completed.
+*/
+   struct i915_gem_active barrier;
+
struct list_head link;
const char *name;
 
@@ -136,4 +146,16 @@ static inline bool i915_timeline_sync_is_later(struct 
i915_timeline *tl,
 
 void i915_timelines_park(struct drm_i915_private *i915);
 
+/**
+ * i915_timeline_set_barrier - orders submission between different timelines
+ * @timeline: timeline to set the barrier on
+ * @rq: request after which new submissions can proceed
+ *
+ * Sets the passed in request as the serialization point for all subsequent
+ * submissions on @timeline. Subsequent requests will not be submit

Re: [Intel-gfx] [PATCH 03/26] drm/irq: Ditch DRIVER_IRQ_SHARED

2019-01-25 Thread Daniel Vetter
On Fri, Jan 25, 2019 at 02:46:55PM +, Emil Velikov wrote:
> On Thu, 24 Jan 2019 at 16:58, Daniel Vetter  wrote:
> >
> > This is only used by drm_irq_install(), which is an optional helper.
> > And the right choice is to set it for all pci devices, and not for
> > everything else.
> >
> Can you please add some information (or reference) why it's the right choice?

pci devices can have a shared interrupt line. That's definitely the case
for legacy pci, and I guess carries over to pcie. msi/msi-x interrupts
will give you dedicated interrupts, but it doesn't really hurt to mark
them as shared.

I guess I could rephrase to state:

"This is only used by drm_irq_install(), which is an optional helper.
For legacy pci devices this is required (due to interrupt sharing without
msi/msi-x), and just making this the default exactly matches the behaviour
of all existing drivers using the drm_irq_install() helpers. In case that
ever becomes wrong drivers can roll their own irq handling, as many
drivers already do (for other reasons like needing a threaded interrupt
handler, or having an entire pile of different interrupt sources)."

That better?
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.BAT: failure for Per context dynamic (sub)slice power-gating (rev19)

2019-01-25 Thread Patchwork
== Series Details ==

Series: Per context dynamic (sub)slice power-gating (rev19)
URL   : https://patchwork.freedesktop.org/series/48194/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5484 -> Patchwork_12041


Summary
---

  **FAILURE**

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

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/48194/revisions/19/mbox/

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live_hangcheck:
- fi-cfl-8700k:   PASS -> INCOMPLETE

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_busy@basic-flip-a:
- fi-gdg-551: PASS -> FAIL [fdo#103182]

  * igt@kms_flip@basic-flip-vs-dpms:
- fi-skl-6700hq:  PASS -> DMESG-WARN [fdo#105998]

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

  
 Possible fixes 

  * igt@kms_busy@basic-flip-b:
- fi-gdg-551: FAIL [fdo#103182] -> PASS

  * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c:
- fi-kbl-7567u:   {SKIP} [fdo#109271] -> PASS +27

  
 Warnings 

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7567u:   DMESG-FAIL [fdo#105079] -> DMESG-WARN [fdo#103558] / 
[fdo#105079] / [fdo#105602]

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- fi-kbl-7567u:   {SKIP} [fdo#109271] -> DMESG-WARN [fdo#103558] / 
[fdo#105079] / [fdo#105602] +1

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
- fi-kbl-7567u:   {SKIP} [fdo#109271] -> DMESG-FAIL [fdo#105079]

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

  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103558]: https://bugs.freedesktop.org/show_bug.cgi?id=103558
  [fdo#105079]: https://bugs.freedesktop.org/show_bug.cgi?id=105079
  [fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602
  [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (44 -> 40)
--

  Additional (1): fi-bsw-n3050 
  Missing(5): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 
fi-glk-j4005 


Build changes
-

* Linux: CI_DRM_5484 -> Patchwork_12041

  CI_DRM_5484: 9f66ac94341eb12501097f9f8991c86aee70981c @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12041: e930fd0346d9ccac2db9a53e9bc082d6c98c0209 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

e930fd0346d9 drm/i915/selftests: Context SSEU reconfiguration tests
bcb0cea5b5b1 drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 
only)
1915b804bb44 drm/i915: Add timeline barrier support
56a1aaefc8e7 drm/i915/perf: lock powergating configuration to default when 
active
b46b66196670 drm/i915: Record the sseu configuration per-context & engine

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/icl: Add TypeC ports only if VBT is present

2019-01-25 Thread Patchwork
== Series Details ==

Series: drm/i915/icl: Add TypeC ports only if VBT is present
URL   : https://patchwork.freedesktop.org/series/55733/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5484 -> Patchwork_12040


Summary
---

  **FAILURE**

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

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

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@gem_exec_suspend@basic-s3:
- fi-icl-y:   NOTRUN -> DMESG-WARN

  * igt@i915_selftest@live_contexts:
- fi-icl-y:   NOTRUN -> DMESG-FAIL

  * igt@i915_selftest@live_hangcheck:
- fi-kbl-r:   PASS -> INCOMPLETE
- fi-icl-y:   NOTRUN -> INCOMPLETE

  
 Suppressed 

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

  * igt@kms_flip@basic-flip-vs-modeset:
- fi-icl-y:   NOTRUN -> {SKIP} +79

  
Known issues


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

### IGT changes ###

 Issues hit 

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

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- fi-blb-e6850:   PASS -> INCOMPLETE [fdo#107718]

  
 Possible fixes 

  * igt@kms_busy@basic-flip-b:
- fi-gdg-551: FAIL [fdo#103182] -> PASS

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

  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (44 -> 41)
--

  Additional (1): fi-bsw-n3050 
  Missing(4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


Build changes
-

* Linux: CI_DRM_5484 -> Patchwork_12040

  CI_DRM_5484: 9f66ac94341eb12501097f9f8991c86aee70981c @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12040: 4165b2121372a06987a76a8291b95eacb204f212 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

4165b2121372 drm/i915/icl: Add TypeC ports only if VBT is present

== Logs ==

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


Re: [Intel-gfx] [PATCH 3/5] drm/i915: Add timeline barrier support

2019-01-25 Thread Chris Wilson
Quoting Tvrtko Ursulin (2019-01-25 15:24:39)
> From: Tvrtko Ursulin 
> 
> Timeline barrier allows serialization between different timelines.
> 
> After calling i915_timeline_set_barrier with a request, all following
> submissions on this timeline will be set up as depending on this request,
> or barrier. Once the barrier has been completed it automatically gets
> cleared and things continue as normal.
> 
> This facility will be used by the upcoming context SSEU code.
> 
> v2:
>  * Assert barrier has been retired on timeline_fini. (Chris Wilson)
>  * Fix mock_timeline.
> 
> v3:
>  * Improved comment language. (Chris Wilson)
> 
> Signed-off-by: Tvrtko Ursulin 
> Suggested-by: Chris Wilson 
> Cc: Chris Wilson 
> Reviewed-by: Chris Wilson 

I sent a fix for this yesterday, we need to preserve the earlier barrier
chain setting a new barrier (or else it fails if mix barriers along
different timelines).
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for Per context dynamic (sub)slice power-gating (rev19)

2019-01-25 Thread Patchwork
== Series Details ==

Series: Per context dynamic (sub)slice power-gating (rev19)
URL   : https://patchwork.freedesktop.org/series/48194/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915: Record the sseu configuration per-context & engine
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3541:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3555:16: warning: expression 
using sizeof(void)

Commit: drm/i915/perf: lock powergating configuration to default when active
Okay!

Commit: drm/i915: Add timeline barrier support
Okay!

Commit: drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 only)
+drivers/gpu/drm/i915/intel_lrc.c:2364:25: warning: expression using 
sizeof(void)

Commit: drm/i915/selftests: Context SSEU reconfiguration tests
+drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression 
using sizeof(void)
-drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression 
using sizeof(void)
-drivers/gpu/drm/i915/selftests/i915_gem_context.c:1134:25: warning: expression 
using sizeof(void)

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Per context dynamic (sub)slice power-gating (rev19)

2019-01-25 Thread Patchwork
== Series Details ==

Series: Per context dynamic (sub)slice power-gating (rev19)
URL   : https://patchwork.freedesktop.org/series/48194/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
b46b66196670 drm/i915: Record the sseu configuration per-context & engine
56a1aaefc8e7 drm/i915/perf: lock powergating configuration to default when 
active
1915b804bb44 drm/i915: Add timeline barrier support
bcb0cea5b5b1 drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 
only)
-:528: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 
'user->min_eus_per_subslice !=
 device->max_eus_per_subslice'
#528: FILE: drivers/gpu/drm/i915/i915_gem_context.c:1175:
+   if ((user->min_eus_per_subslice !=
+device->max_eus_per_subslice) ||
+   (user->max_eus_per_subslice !=
+device->max_eus_per_subslice))

-:528: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 
'user->max_eus_per_subslice !=
 device->max_eus_per_subslice'
#528: FILE: drivers/gpu/drm/i915/i915_gem_context.c:1175:
+   if ((user->min_eus_per_subslice !=
+device->max_eus_per_subslice) ||
+   (user->max_eus_per_subslice !=
+device->max_eus_per_subslice))

total: 0 errors, 0 warnings, 2 checks, 499 lines checked
e930fd0346d9 drm/i915/selftests: Context SSEU reconfiguration tests

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


Re: [Intel-gfx] [PATCH] drm/i915: Don't use the second dbuf slice on icl

2019-01-25 Thread Ville Syrjälä
On Tue, Jan 22, 2019 at 02:58:46PM +0530, Mahesh Kumar wrote:
> Hi,
> 
> On Mon, Jan 21, 2019 at 9:01 PM Ville Syrjala
>  wrote:
> >
> > From: Ville Syrjälä 
> >
> > The code managing the dbuf slices is borked and needs some
> > real work to fix. In the meantime let's just stop using the
> > second slice.
> >
> > Signed-off-by: Ville Syrjälä 
> > ---
> >  drivers/gpu/drm/i915/intel_pm.c | 10 --
> >  1 file changed, 8 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_pm.c 
> > b/drivers/gpu/drm/i915/intel_pm.c
> > index 8b63afa3a221..1e41c899ffe2 100644
> > --- a/drivers/gpu/drm/i915/intel_pm.c
> > +++ b/drivers/gpu/drm/i915/intel_pm.c
> > @@ -3618,7 +3618,8 @@ static u8 intel_enabled_dbuf_slices_num(struct 
> > drm_i915_private *dev_priv)
> > enabled_slices = 1;
> >
> > /* Gen prior to GEN11 have only one DBuf slice */
> > -   if (INTEL_GEN(dev_priv) < 11)
> > +   /* FIXME dbuf slice code is broken: see intel_get_ddb_size() */
> > +   if (1 || INTEL_GEN(dev_priv) < 11)
> > return enabled_slices;
> 
> IMHO we may not need this, If we return from above we'll never disable
> second slice in case it's enabled by bios.
> Anyhow code changes in intel_get_ddb_size will take care of enabling
> only one slice.

I suppose. Can't recall if leaving this out caused more warns due
something else getting confused.

> 
> >
> > if (I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE)
> > @@ -3827,8 +3828,13 @@ static u16 intel_get_ddb_size(struct 
> > drm_i915_private *dev_priv,
> >
> > /*
> >  * 12GB/s is maximum BW supported by single DBuf slice.
> > +*
> > +* FIXME dbuf slice code is broken:
> > +* - must wait for planes to stop using the slice before powering 
> > it off
> 
> AFAIR we're  already doing it and disabling slice only after
> update_crtcs, and skl_update_crtcs code is taking care of waiting for
> vblank in case it's required.

skl_update_crtcs() only deals with reallocation between pipes. It won't
do anything when a single pipe is going from two slices to one slice.

> 
> > +* - plane straddling both slices is illegal in multi-pipe scenarios
> 
> This is something new :)
> 
> although this change introduce a major limitation with number and size
> of planes we can display, yet
> As code is broken and mentioned conditions need to be taken care of,
> This change should be ok until proper fix.
> 
> ~Mahesh
> 
> > +* - should validate we stay within the hw bandwidth limits
> >  */
> > -   if (num_active > 1 || total_data_bw >= GBps(12)) {
> > +   if (0 && (num_active > 1 || total_data_bw >= GBps(12))) {
> > ddb->enabled_slices = 2;
> > } else {
> > ddb->enabled_slices = 1;
> > --
> > 2.19.2
> >
> > ___
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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


[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [CI,1/2] drm/i915: Remove manual breadcumb counting

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915: Remove manual breadcumb counting
URL   : https://patchwork.freedesktop.org/series/55726/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5481_full -> Patchwork_12037_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_eio@in-flight-contexts-10ms:
- shard-glk:  PASS -> FAIL [fdo#107799]

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

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

  * igt@kms_busy@extended-modeset-hang-newfb-render-a:
- shard-kbl:  NOTRUN -> DMESG-WARN [fdo#107956] +1

  * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-a:
- shard-snb:  NOTRUN -> DMESG-WARN [fdo#107956] +1

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

  * igt@kms_cursor_crc@cursor-alpha-opaque:
- shard-snb:  NOTRUN -> FAIL [fdo#109350]

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

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

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

  * igt@kms_plane_alpha_blend@pipe-b-alpha-7efc:
- shard-kbl:  NOTRUN -> FAIL [fdo#108145] / [fdo#108590]

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

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

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

  
 Possible fixes 

  * igt@kms_atomic_transition@2x-modeset-transitions:
- shard-hsw:  DMESG-FAIL [fdo#102614] -> PASS

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

  * igt@kms_plane@pixel-format-pipe-c-planes:
- shard-apl:  FAIL [fdo#103166] -> PASS +1

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

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

  * igt@kms_vblank@pipe-a-query-idle:
- shard-hsw:  DMESG-WARN [fdo#102614] -> PASS

  * igt@kms_vblank@pipe-c-ts-continuation-suspend:
- shard-hsw:  FAIL [fdo#104894] -> PASS

  
 Warnings 

  * igt@i915_suspend@shrink:
- shard-hsw:  DMESG-WARN [fdo#109244] -> INCOMPLETE [fdo#103540] / 
[fdo#106886]

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

  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103158]: https://bugs.freedesktop.org/show_bug.cgi?id=103158
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886
  [fdo#107799]: https://bugs.freedesktop.org/show_bug.cgi?id=107799
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108590]: https://bugs.freedesktop.org/show_bug.cgi?id=108590
  [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109350]: https://bugs.freedesktop.org/show_bug.cgi?id=109350
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (7 -> 5)
--

  Missing(2): shard-skl shard-iclb 


Build changes
-

* Linux: CI_DRM_5481 -> Patchwork_12037

  CI_DRM_5481: 192c39147b7a320a73e6f0426ec4a5fe3f9b2a06 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12037: 140a14d76652acb8bfc5011d633e2f387be824d1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12037/
__

[Intel-gfx] [PATCH 1/5] drm/i915: Record the sseu configuration per-context & engine

2019-01-25 Thread Tvrtko Ursulin
From: Lionel Landwerlin 

We want to expose the ability to reconfigure the slices, subslice and
eu per context and per engine. To facilitate that, store the current
configuration on the context for each engine, which is initially set
to the device default upon creation.

v2: record sseu configuration per context & engine (Chris)

v3: introduce the i915_gem_context_sseu to store powergating
programming, sseu_dev_info has grown quite a bit (Lionel)

v4: rename i915_gem_sseu into intel_sseu (Chris)
use to_intel_context() (Chris)

v5: More to_intel_context() (Tvrtko)
Switch intel_sseu from union to struct (Tvrtko)
Move context default sseu in existing loop (Chris)

v6: s/intel_sseu_from_device_sseu/intel_device_default_sseu/ (Tvrtko)

Tvrtko Ursulin:

v7:
 * Pass intel_sseu by pointer instead of value to make_rpcs.
 * Rebase for make_rpcs changes.

v8:
 * Rebase for RPCS edit on pin.

v9:
 * Rebase for context image setup changes.

v10:
 * Rename dev_priv to i915. (Chris Wilson)

v11:
 * Rebase.

v12:
 * Rebase for IS_GEN changes.

v13:
 * Rebase for RUNTIME_INFO.

v14:
 * Rebase for intel_context_init.

Signed-off-by: Chris Wilson 
Signed-off-by: Lionel Landwerlin 
Signed-off-by: Tvrtko Ursulin 
Reviewed-by: Chris Wilson 
Reviewed-by: Joonas Lahtinen 
---
 drivers/gpu/drm/i915/i915_drv.h | 14 +++
 drivers/gpu/drm/i915/i915_gem_context.c |  3 +++
 drivers/gpu/drm/i915/i915_gem_context.h |  4 
 drivers/gpu/drm/i915/i915_request.h | 10 
 drivers/gpu/drm/i915/intel_lrc.c| 31 +
 5 files changed, 47 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 0133d1da3d3c..888cbd3e3899 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -3295,6 +3295,20 @@ mkwrite_device_info(struct drm_i915_private *dev_priv)
return (struct intel_device_info *)INTEL_INFO(dev_priv);
 }
 
+static inline struct intel_sseu
+intel_device_default_sseu(struct drm_i915_private *i915)
+{
+   const struct sseu_dev_info *sseu = &RUNTIME_INFO(i915)->sseu;
+   struct intel_sseu value = {
+   .slice_mask = sseu->slice_mask,
+   .subslice_mask = sseu->subslice_mask[0],
+   .min_eus_per_subslice = sseu->max_eus_per_subslice,
+   .max_eus_per_subslice = sseu->max_eus_per_subslice,
+   };
+
+   return value;
+}
+
 /* modesetting */
 extern void intel_modeset_init_hw(struct drm_device *dev);
 extern int intel_modeset_init(struct drm_device *dev);
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c 
b/drivers/gpu/drm/i915/i915_gem_context.c
index 93e84751370f..c4ebae66eec1 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -327,6 +327,9 @@ intel_context_init(struct intel_context *ce,
   struct intel_engine_cs *engine)
 {
ce->gem_context = ctx;
+
+   /* Use the whole device by default */
+   ce->sseu = intel_device_default_sseu(ctx->i915);
 }
 
 static struct i915_gem_context *
diff --git a/drivers/gpu/drm/i915/i915_gem_context.h 
b/drivers/gpu/drm/i915/i915_gem_context.h
index 3769438228f6..0010e5c32655 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.h
+++ b/drivers/gpu/drm/i915/i915_gem_context.h
@@ -31,6 +31,7 @@
 
 #include "i915_gem.h"
 #include "i915_scheduler.h"
+#include "intel_device_info.h"
 
 struct pid;
 
@@ -171,6 +172,9 @@ struct i915_gem_context {
int pin_count;
 
const struct intel_context_ops *ops;
+
+   /** sseu: Control eu/slice partitioning */
+   struct intel_sseu sseu;
} __engine[I915_NUM_ENGINES];
 
/** ring_size: size for allocating the per-engine ring buffer */
diff --git a/drivers/gpu/drm/i915/i915_request.h 
b/drivers/gpu/drm/i915/i915_request.h
index c0f084ca4f29..52acfac7bef4 100644
--- a/drivers/gpu/drm/i915/i915_request.h
+++ b/drivers/gpu/drm/i915/i915_request.h
@@ -38,6 +38,16 @@ struct drm_i915_gem_object;
 struct i915_request;
 struct i915_timeline;
 
+/*
+ * Powergating configuration for a particular (context,engine).
+ */
+struct intel_sseu {
+   u8 slice_mask;
+   u8 subslice_mask;
+   u8 min_eus_per_subslice;
+   u8 max_eus_per_subslice;
+};
+
 struct intel_wait {
struct rb_node node;
struct task_struct *tsk;
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 185867106c14..58b130ae6322 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -1177,7 +1177,8 @@ static int __context_pin(struct i915_gem_context *ctx, 
struct i915_vma *vma)
return i915_vma_pin(vma, 0, 0, flags);
 }
 
-static u32 make_rpcs(struct drm_i915_private *dev_priv);
+static u32
+make_rpcs(struct drm_i915_private *i915, struct intel_sseu *ctx_sseu);
 
 static void
 __execlists_update_reg_state(struct intel_engine_cs *engine,
@@ -1192,7 +1193,8 @

[Intel-gfx] [PATCH 4/5] drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 only)

2019-01-25 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

We want to allow userspace to reconfigure the subslice configuration on a
per context basis.

This is required for the functional requirement of shutting down non-VME
enabled sub-slices on Gen11 parts.

To do so, we expose a context parameter to allow adjustment of the RPCS
register stored within the context image (and currently not accessible via
LRI).

If the context is adjusted before first use or whilst idle, the adjustment
is for "free"; otherwise if the context is active we queue a request to do
so (using the kernel context), following all other activity by that
context, which is also marked as barrier for all following submission
against the same context.

Since the overhead of device re-configuration during context switching can
be significant, especially in multi-context workloads, we limit this new
uAPI to only support the Gen11 VME use case. In this use case either the
device is fully enabled, and exactly one slice and half of the subslices
are enabled.

Example usage:

struct drm_i915_gem_context_param_sseu sseu = { };
struct drm_i915_gem_context_param arg = {
.param = I915_CONTEXT_PARAM_SSEU,
.ctx_id = gem_context_create(fd),
.size = sizeof(sseu),
.value = to_user_pointer(&sseu)
};

/* Query device defaults. */
gem_context_get_param(fd, &arg);

/* Set VME configuration on a 1x6x8 part. */
sseu.slice_mask = 0x1;
sseu.subslice_mask = 0xe0;
gem_context_set_param(fd, &arg);

v2: Fix offset of CTX_R_PWR_CLK_STATE in intel_lr_context_set_sseu()
(Lionel)

v3: Add ability to program this per engine (Chris)

v4: Move most get_sseu() into i915_gem_context.c (Lionel)

v5: Validate sseu configuration against the device's capabilities (Lionel)

v6: Change context powergating settings through MI_SDM on kernel context
(Chris)

v7: Synchronize the requests following a powergating setting change using
a global dependency (Chris)
Iterate timelines through dev_priv.gt.active_rings (Tvrtko)
Disable RPCS configuration setting for non capable users
(Lionel/Tvrtko)

v8: s/union intel_sseu/struct intel_sseu/ (Lionel)
s/dev_priv/i915/ (Tvrtko)
Change uapi class/instance fields to u16 (Tvrtko)
Bump mask fields to 64bits (Lionel)
Don't return EPERM when dynamic sseu is disabled (Tvrtko)

v9: Import context image into kernel context's ppgtt only when
reconfiguring powergated slice/subslices (Chris)
Use aliasing ppgtt when needed (Michel)

Tvrtko Ursulin:

v10:
 * Update for upstream changes.
 * Request submit needs a RPM reference.
 * Reject on !FULL_PPGTT for simplicity.
 * Pull out get/set param to helpers for readability and less indent.
 * Use i915_request_await_dma_fence in add_global_barrier to skip waits
   on the same timeline and avoid GEM_BUG_ON.
 * No need to explicitly assign a NULL pointer to engine in legacy mode.
 * No need to move gen8_make_rpcs up.
 * Factored out global barrier as prep patch.
 * Allow to only CAP_SYS_ADMIN if !Gen11.

v11:
 * Remove engine vfunc in favour of local helper. (Chris Wilson)
 * Stop retiring requests before updates since it is not needed
   (Chris Wilson)
 * Implement direct CPU update path for idle contexts. (Chris Wilson)
 * Left side dependency needs only be on the same context timeline.
   (Chris Wilson)
 * It is sufficient to order the timeline. (Chris Wilson)
 * Reject !RCS configuration attempts with -ENODEV for now.

v12:
 * Rebase for make_rpcs.

v13:
 * Centralize SSEU normalization to make_rpcs.
 * Type width checking (uAPI <-> implementation).
 * Gen11 restrictions uAPI checks.
 * Gen11 subslice count differences handling.
 Chris Wilson:
 * args->size handling fixes.
 * Update context image from GGTT.
 * Postpone context image update to pinning.
 * Use i915_gem_active_raw instead of last_request_on_engine.

v14:
 * Add activity tracker on intel_context to fix the lifetime issues
   and simplify the code. (Chris Wilson)

v15:
 * Fix context pin leak if no space in ring by simplifying the
   context pinning sequence.

v16:
 * Rebase for context get/set param locking changes.
 * Just -ENODEV on !Gen11. (Joonas)

v17:
 * Fix one Gen11 subslice enablement rule.
 * Handle error from i915_sw_fence_await_sw_fence_gfp. (Chris Wilson)

v18:
 * Update commit message. (Joonas)
 * Restrict uAPI to VME use case. (Joonas)

v19:
 * Rebase.

v20:
 * Rebase for ce->active_tracker.

v21:
 * Rebase for IS_GEN changes.

v22:
 * Reserve uAPI for flags straight away. (Chris Wilson)

v23:
 * Rebase for RUNTIME_INFO.

v24:
 * Added some headline docs for the uapi usage. (Joonas/Chris)

v25:
 * Renamed class/instance to engine_class/engine_instance to avoid clash
   with C++ keyword. (Tony Ye)

v26:
 * Rebased for runtime pm api changes.

v27:
 * Rebased for intel_context_init.
 * Wrap commit msg to 75.

v28:
 (Chris Wilson)
 * Use i915_gem_ggtt.
 * Use i915_request_await_dma_fence to 

[Intel-gfx] [PATCH 2/5] drm/i915/perf: lock powergating configuration to default when active

2019-01-25 Thread Tvrtko Ursulin
From: Lionel Landwerlin 

If some of the contexts submitting workloads to the GPU have been
configured to shutdown slices/subslices, we might loose the NOA
configurations written in the NOA muxes.

One possible solution to this problem is to reprogram the NOA muxes
when we switch to a new context. We initially tried this in the
workaround batchbuffer but some concerns where raised about the cost
of reprogramming at every context switch. This solution is also not
without consequences from the userspace point of view. Reprogramming
of the muxes can only happen once the powergating configuration has
changed (which happens after context switch). This means for a window
of time during the recording, counters recorded by the OA unit might
be invalid. This requires userspace dealing with OA reports to discard
the invalid values.

Minimizing the reprogramming could be implemented by tracking of the
last programmed configuration somewhere in GGTT and use MI_PREDICATE
to discard some of the programming commands, but the command streamer
would still have to parse all the MI_LRI instructions in the
workaround batchbuffer.

Another solution, which this change implements, is to simply disregard
the user requested configuration for the period of time when i915/perf
is active.

On most platforms there are no issues with this apart from a performance
penality for some media workloads that benefit from running on a partially
powergated GPU. We already prevent RC6 from affecting the programming so
it doesn't sound completely unreasonable to hold on powergating for the
same reason.

On Icelake however there would a functional problem if the slices not-
containing the VME block were left enabled with a running media workload
which explicitly disabled them. To avoid a GPU hang in this case, on
Icelake we lock the enablement to only slices which contain VME blocks.
Downside is that it means degraded GPU performance when OA is active but
there is no known alternative solution for this.

v2: Leave RPCS programming in intel_lrc.c (Lionel)

v3: Update for s/union intel_sseu/struct intel_sseu/ (Lionel)
More to_intel_context() (Tvrtko)
s/dev_priv/i915/ (Tvrtko)

Tvrtko Ursulin:

v4:
 * Rebase for make_rpcs changes.

v5:
 * Apply OA restriction from make_rpcs directly.

v6:
 * Rebase for context image setup changes.

v7:
 * Move stream assignment before metric enable.

v8-9:
 * Rebase.

v10:
 * Squashed with ICL support patch.

Bspec: 21140
Co-developed-by: Tvrtko Ursulin 
Signed-off-by: Lionel Landwerlin 
Signed-off-by: Tvrtko Ursulin 
Cc: Lionel Landwerlin 
Reviewed-by: Chris Wilson  # v9
Reviewed-by: Joonas Lahtinen 
---
 drivers/gpu/drm/i915/i915_perf.c | 13 ++---
 drivers/gpu/drm/i915/intel_lrc.c | 46 
 drivers/gpu/drm/i915/intel_lrc.h |  2 ++
 3 files changed, 46 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 727118301f91..9ebf99f3d8d3 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -1677,6 +1677,11 @@ static void gen8_update_reg_state_unlocked(struct 
i915_gem_context *ctx,
 
CTX_REG(reg_state, state_offset, flex_regs[i], value);
}
+
+   CTX_REG(reg_state, CTX_R_PWR_CLK_STATE, GEN8_R_PWR_CLK_STATE,
+   gen8_make_rpcs(dev_priv,
+  &to_intel_context(ctx,
+dev_priv->engine[RCS])->sseu));
 }
 
 /*
@@ -2098,21 +2103,21 @@ static int i915_oa_stream_init(struct i915_perf_stream 
*stream,
if (ret)
goto err_lock;
 
+   stream->ops = &i915_oa_stream_ops;
+   dev_priv->perf.oa.exclusive_stream = stream;
+
ret = dev_priv->perf.oa.ops.enable_metric_set(stream);
if (ret) {
DRM_DEBUG("Unable to enable metric set\n");
goto err_enable;
}
 
-   stream->ops = &i915_oa_stream_ops;
-
-   dev_priv->perf.oa.exclusive_stream = stream;
-
mutex_unlock(&dev_priv->drm.struct_mutex);
 
return 0;
 
 err_enable:
+   dev_priv->perf.oa.exclusive_stream = NULL;
dev_priv->perf.oa.ops.disable_metric_set(dev_priv);
mutex_unlock(&dev_priv->drm.struct_mutex);
 
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 58b130ae6322..0e5892ad62bb 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -1177,9 +1177,6 @@ static int __context_pin(struct i915_gem_context *ctx, 
struct i915_vma *vma)
return i915_vma_pin(vma, 0, 0, flags);
 }
 
-static u32
-make_rpcs(struct drm_i915_private *i915, struct intel_sseu *ctx_sseu);
-
 static void
 __execlists_update_reg_state(struct intel_engine_cs *engine,
 struct intel_context *ce)
@@ -1193,8 +1190,8 @@ __execlists_update_reg_state(struct intel_engine_cs 
*engine,
 
/* RPCS */
if (engine->class == RENDER_CLASS)
-   

[Intel-gfx] [PATCH 5/5] drm/i915/selftests: Context SSEU reconfiguration tests

2019-01-25 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

Exercise the context image reconfiguration logic for idle and busy
contexts, with the resets thrown into the mix as well.

Free from the uAPI restrictions this test runs on all Gen9+ platforms
with slice power gating.

v2:
 * Rename some helpers for clarity.
 * Include subtest names in error logs.
 * Remove unnecessary function export.

v3:
 * Rebase for RUNTIME_INFO.

v4:
 * Fix incomplete unexport from v2. (Chris Wilson)

v5:
 * Rebased for runtime pm api changes.

v6:
 * Rebased for i915_reset.c.

v7:
 * Tidy checkpatch warnings.
 * Consolidate error checking and logging a bit.
 * Skip idle test phase if something failed before it.

v8:
 (Chris Wilson)
 * Fix i915_request_wait error handling.
 * No need to PIN_HIGH the VMA.
 * Remove pointless GEM_BUG_ON before pointer dereference.

v9:
 * Avoid rq leak if rpcs query fails. (Chris)

Signed-off-by: Tvrtko Ursulin 
Reviewed-by: Chris Wilson 
Reviewed-by: Joonas Lahtinen  # v6
---
 drivers/gpu/drm/i915/i915_gem_context.c   |  31 +-
 .../gpu/drm/i915/selftests/i915_gem_context.c | 467 ++
 2 files changed, 488 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_context.c 
b/drivers/gpu/drm/i915/i915_gem_context.c
index 6191cb5bfc8d..9a639d09c0f3 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -1047,23 +1047,19 @@ gen8_modify_rpcs_gpu(struct intel_context *ce,
 }
 
 static int
-i915_gem_context_reconfigure_sseu(struct i915_gem_context *ctx,
- struct intel_engine_cs *engine,
- struct intel_sseu sseu)
+__i915_gem_context_reconfigure_sseu(struct i915_gem_context *ctx,
+   struct intel_engine_cs *engine,
+   struct intel_sseu sseu)
 {
struct intel_context *ce = to_intel_context(ctx, engine);
-   int ret;
+   int ret = 0;
 
GEM_BUG_ON(INTEL_GEN(ctx->i915) < 8);
GEM_BUG_ON(engine->id != RCS);
 
-   ret = mutex_lock_interruptible(&ctx->i915->drm.struct_mutex);
-   if (ret)
-   return ret;
-
/* Nothing to do if unmodified. */
if (!memcmp(&ce->sseu, &sseu, sizeof(sseu)))
-   goto out;
+   return 0;
 
/*
 * If context is not idle we have to submit an ordered request to modify
@@ -1076,7 +1072,22 @@ i915_gem_context_reconfigure_sseu(struct 
i915_gem_context *ctx,
if (!ret)
ce->sseu = sseu;
 
-out:
+   return ret;
+}
+
+static int
+i915_gem_context_reconfigure_sseu(struct i915_gem_context *ctx,
+ struct intel_engine_cs *engine,
+ struct intel_sseu sseu)
+{
+   int ret;
+
+   ret = mutex_lock_interruptible(&ctx->i915->drm.struct_mutex);
+   if (ret)
+   return ret;
+
+   ret = __i915_gem_context_reconfigure_sseu(ctx, engine, sseu);
+
mutex_unlock(&ctx->i915->drm.struct_mutex);
 
return ret;
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_context.c 
b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
index e2c1f0bc2abe..d00d0bb07784 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
@@ -24,10 +24,13 @@
 
 #include 
 
+#include "../i915_reset.h"
 #include "../i915_selftest.h"
 #include "i915_random.h"
 #include "igt_flush_test.h"
 #include "igt_live_test.h"
+#include "igt_reset.h"
+#include "igt_spinner.h"
 
 #include "mock_drm.h"
 #include "mock_gem_device.h"
@@ -576,6 +579,469 @@ static int igt_ctx_exec(void *arg)
return err;
 }
 
+static struct i915_vma *rpcs_query_batch(struct i915_vma *vma)
+{
+   struct drm_i915_gem_object *obj;
+   u32 *cmd;
+   int err;
+
+   if (INTEL_GEN(vma->vm->i915) < 8)
+   return ERR_PTR(-EINVAL);
+
+   obj = i915_gem_object_create_internal(vma->vm->i915, PAGE_SIZE);
+   if (IS_ERR(obj))
+   return ERR_CAST(obj);
+
+   cmd = i915_gem_object_pin_map(obj, I915_MAP_WB);
+   if (IS_ERR(cmd)) {
+   err = PTR_ERR(cmd);
+   goto err;
+   }
+
+   *cmd++ = MI_STORE_REGISTER_MEM_GEN8;
+   *cmd++ = i915_mmio_reg_offset(GEN8_R_PWR_CLK_STATE);
+   *cmd++ = lower_32_bits(vma->node.start);
+   *cmd++ = upper_32_bits(vma->node.start);
+   *cmd = MI_BATCH_BUFFER_END;
+
+   i915_gem_object_unpin_map(obj);
+
+   err = i915_gem_object_set_to_gtt_domain(obj, false);
+   if (err)
+   goto err;
+
+   vma = i915_vma_instance(obj, vma->vm, NULL);
+   if (IS_ERR(vma)) {
+   err = PTR_ERR(vma);
+   goto err;
+   }
+
+   err = i915_vma_pin(vma, 0, 0, PIN_USER);
+   if (err)
+   goto err;
+
+   return vma;
+
+err:
+   i915_gem_object_put(obj);
+   return ERR_PTR(err);
+}
+
+static int
+emit_rpcs_query(struct drm_i915

[Intel-gfx] [PATCH 3/5] drm/i915: Add timeline barrier support

2019-01-25 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

Timeline barrier allows serialization between different timelines.

After calling i915_timeline_set_barrier with a request, all following
submissions on this timeline will be set up as depending on this request,
or barrier. Once the barrier has been completed it automatically gets
cleared and things continue as normal.

This facility will be used by the upcoming context SSEU code.

v2:
 * Assert barrier has been retired on timeline_fini. (Chris Wilson)
 * Fix mock_timeline.

v3:
 * Improved comment language. (Chris Wilson)

Signed-off-by: Tvrtko Ursulin 
Suggested-by: Chris Wilson 
Cc: Chris Wilson 
Reviewed-by: Chris Wilson 
---
 drivers/gpu/drm/i915/i915_request.c   | 13 +
 drivers/gpu/drm/i915/i915_timeline.c  |  3 +++
 drivers/gpu/drm/i915/i915_timeline.h  | 27 +++
 .../gpu/drm/i915/selftests/mock_timeline.c|  2 ++
 4 files changed, 45 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_request.c 
b/drivers/gpu/drm/i915/i915_request.c
index f4241a17e2ad..621356f048df 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -517,6 +517,15 @@ i915_request_alloc_slow(struct intel_context *ce)
return kmem_cache_alloc(ce->gem_context->i915->requests, GFP_KERNEL);
 }
 
+static int add_timeline_barrier(struct i915_request *rq)
+{
+   struct i915_request *barrier =
+   i915_gem_active_raw(&rq->timeline->barrier,
+   &rq->i915->drm.struct_mutex);
+
+   return barrier ? i915_request_await_dma_fence(rq, &barrier->fence) : 0;
+}
+
 /**
  * i915_request_alloc - allocate a request structure
  *
@@ -660,6 +669,10 @@ i915_request_alloc(struct intel_engine_cs *engine, struct 
i915_gem_context *ctx)
 */
rq->head = rq->ring->emit;
 
+   ret = add_timeline_barrier(rq);
+   if (ret)
+   goto err_unwind;
+
ret = engine->request_alloc(rq);
if (ret)
goto err_unwind;
diff --git a/drivers/gpu/drm/i915/i915_timeline.c 
b/drivers/gpu/drm/i915/i915_timeline.c
index 4667cc08c416..5a87c5bd5154 100644
--- a/drivers/gpu/drm/i915/i915_timeline.c
+++ b/drivers/gpu/drm/i915/i915_timeline.c
@@ -37,6 +37,8 @@ void i915_timeline_init(struct drm_i915_private *i915,
INIT_LIST_HEAD(&timeline->requests);
 
i915_syncmap_init(&timeline->sync);
+
+   init_request_active(&timeline->barrier, NULL);
 }
 
 /**
@@ -69,6 +71,7 @@ void i915_timelines_park(struct drm_i915_private *i915)
 void i915_timeline_fini(struct i915_timeline *timeline)
 {
GEM_BUG_ON(!list_empty(&timeline->requests));
+   GEM_BUG_ON(i915_gem_active_isset(&timeline->barrier));
 
i915_syncmap_free(&timeline->sync);
 
diff --git a/drivers/gpu/drm/i915/i915_timeline.h 
b/drivers/gpu/drm/i915/i915_timeline.h
index 38c1e15e927a..af6c05333d76 100644
--- a/drivers/gpu/drm/i915/i915_timeline.h
+++ b/drivers/gpu/drm/i915/i915_timeline.h
@@ -64,6 +64,16 @@ struct i915_timeline {
 */
struct i915_syncmap *sync;
 
+   /**
+* Barrier provides the ability to serialize ordering between different
+* timelines.
+*
+* Users can call i915_timeline_set_barrier which will make all
+* subsequent submissions to this timeline be executed only after the
+* barrier has been completed.
+*/
+   struct i915_gem_active barrier;
+
struct list_head link;
const char *name;
 
@@ -136,4 +146,21 @@ static inline bool i915_timeline_sync_is_later(struct 
i915_timeline *tl,
 
 void i915_timelines_park(struct drm_i915_private *i915);
 
+/**
+ * i915_timeline_set_barrier - orders submission between different timelines
+ * @timeline: timeline to set the barrier on
+ * @rq: request after which new submissions can proceed
+ *
+ * Sets the passed in request as the serialization point for all subsequent
+ * submissions on @timeline. Subsequent requests will not be submitted to GPU
+ * until the barrier has been completed.
+ */
+static inline void
+i915_timeline_set_barrier(struct i915_timeline *timeline,
+ struct i915_request *rq)
+{
+   GEM_BUG_ON(timeline->fence_context == rq->timeline->fence_context);
+   i915_gem_active_set(&timeline->barrier, rq);
+}
+
 #endif
diff --git a/drivers/gpu/drm/i915/selftests/mock_timeline.c 
b/drivers/gpu/drm/i915/selftests/mock_timeline.c
index dcf3b16f5a07..a718b64c988e 100644
--- a/drivers/gpu/drm/i915/selftests/mock_timeline.c
+++ b/drivers/gpu/drm/i915/selftests/mock_timeline.c
@@ -19,6 +19,8 @@ void mock_timeline_init(struct i915_timeline *timeline, u64 
context)
 
i915_syncmap_init(&timeline->sync);
 
+   init_request_active(&timeline->barrier, NULL);
+
INIT_LIST_HEAD(&timeline->link);
 }
 
-- 
2.19.1

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


[Intel-gfx] [PATCH 0/5] Per context dynamic (sub)slice power-gating

2019-01-25 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

Changes since last version:
 * One patch got to drm-tip early so removed from this series.
 * Two small cleanups in the area of request emission.

Lionel Landwerlin (2):
  drm/i915: Record the sseu configuration per-context & engine
  drm/i915/perf: lock powergating configuration to default when active

Tvrtko Ursulin (3):
  drm/i915: Add timeline barrier support
  drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 only)
  drm/i915/selftests: Context SSEU reconfiguration tests

 drivers/gpu/drm/i915/i915_drv.h   |  14 +
 drivers/gpu/drm/i915/i915_gem_context.c   | 354 -
 drivers/gpu/drm/i915/i915_gem_context.h   |  10 +
 drivers/gpu/drm/i915/i915_perf.c  |  13 +-
 drivers/gpu/drm/i915/i915_request.c   |  13 +
 drivers/gpu/drm/i915/i915_request.h   |  10 +
 drivers/gpu/drm/i915/i915_timeline.c  |   3 +
 drivers/gpu/drm/i915/i915_timeline.h  |  27 +
 drivers/gpu/drm/i915/intel_lrc.c  |  61 ++-
 drivers/gpu/drm/i915/intel_lrc.h  |   2 +
 .../gpu/drm/i915/selftests/i915_gem_context.c | 467 ++
 .../gpu/drm/i915/selftests/mock_timeline.c|   2 +
 include/uapi/drm/i915_drm.h   |  64 +++
 13 files changed, 1017 insertions(+), 23 deletions(-)

-- 
2.19.1

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


Re: [Intel-gfx] [PATCH 26/26] drm/: Don't set FBINFO_(FLAG_)DEFAULT

2019-01-25 Thread Thierry Reding
On Thu, Jan 24, 2019 at 05:58:31PM +0100, Daniel Vetter wrote:
> It's 0.
> 
> Signed-off-by: Daniel Vetter 
> Cc: Inki Dae 
> Cc: Joonyoung Shim 
> Cc: Seung-Woo Kim 
> Cc: Kyungmin Park 
> Cc: Kukjin Kim 
> Cc: Krzysztof Kozlowski 
> Cc: Patrik Jakobsson 
> Cc: Ben Skeggs 
> Cc: Sandy Huang 
> Cc: "Heiko Stübner" 
> Cc: Thierry Reding 
> Cc: Jonathan Hunter 
> Cc: Hans de Goede 
> Cc: Greg Kroah-Hartman 
> Cc: Daniel Vetter 
> Cc: Bartlomiej Zolnierkiewicz 
> Cc: Alexander Kapshuk 
> Cc: linux-arm-ker...@lists.infradead.org
> Cc: linux-samsung-...@vger.kernel.org
> Cc: nouv...@lists.freedesktop.org
> Cc: linux-rockc...@lists.infradead.org
> Cc: linux-te...@vger.kernel.org
> ---
>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 1 -
>  drivers/gpu/drm/gma500/framebuffer.c  | 1 -
>  drivers/gpu/drm/nouveau/nouveau_fbcon.c   | 4 ++--
>  drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 1 -
>  drivers/gpu/drm/tegra/fb.c| 1 -
>  5 files changed, 2 insertions(+), 6 deletions(-)

Acked-by: Thierry Reding 


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


Re: [Intel-gfx] [PATCH 22/26] drm/qxl: Use drm_fb_helper_fill_info

2019-01-25 Thread Thierry Reding
On Thu, Jan 24, 2019 at 05:58:27PM +0100, Daniel Vetter wrote:
> Another driver that didn't set fbinfo->fix.id before.
> 
> Signed-off-by: Daniel Vetter 
> Cc: Thierry Reding 
> Cc: Jonathan Hunter 
> Cc: linux-te...@vger.kernel.org
> ---
>  drivers/gpu/drm/tegra/fb.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)

In the subject: drm/qxl -> drm/tegra, with that:

Acked-by: Thierry Reding 


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


Re: [Intel-gfx] [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install

2019-01-25 Thread Emil Velikov
On Thu, 24 Jan 2019 at 16:58, Daniel Vetter  wrote:
>
> If a non-legacy driver calls these it's valid to assume there is
> interrupt support. The flag is really only needed for legacy drivers.

... legacy drivers which issue the IRQ via the DRM_IOCTL_CONTROL legacy IOCTL.

At a later stage, we might as well add LEGACY to the name:
DRIVER_LEGACY_HAVE_IRQ?


>  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c  | 2 +-
>  drivers/gpu/drm/arm/hdlcd_drv.c  | 2 +-
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +-
>  drivers/gpu/drm/drm_irq.c| 6 --
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c| 2 +-
>  drivers/gpu/drm/gma500/psb_drv.c | 2 +-
>  drivers/gpu/drm/i915/i915_drv.c  | 2 +-
>  drivers/gpu/drm/meson/meson_drv.c| 2 +-
>  drivers/gpu/drm/msm/msm_drv.c| 3 +--
>  drivers/gpu/drm/mxsfb/mxsfb_drv.c| 3 +--
>  drivers/gpu/drm/qxl/qxl_drv.c| 2 +-
>  drivers/gpu/drm/radeon/radeon_drv.c  | 2 +-
>  drivers/gpu/drm/shmobile/shmob_drm_drv.c | 2 +-
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c  | 2 +-
>  drivers/gpu/drm/vc4/vc4_drv.c| 1 -
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c  | 2 +-
>  drivers/staging/vboxvideo/vbox_drv.c | 2 +-

Local grep shows one more non-legacy entry in
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c

With that file addressed and trivial comment additions, patches: 1, 2,
3 and 26 are
Reviewed-by: Emil Velikov 

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


Re: [Intel-gfx] [PATCH] drm/i915: Don't use the second dbuf slice on icl

2019-01-25 Thread Imre Deak
On Mon, Jan 21, 2019 at 05:31:43PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> The code managing the dbuf slices is borked and needs some
> real work to fix. In the meantime let's just stop using the
> second slice.
> 
> Signed-off-by: Ville Syrjälä 

Reviewed-by: Imre Deak 

> ---
>  drivers/gpu/drm/i915/intel_pm.c | 10 --
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 8b63afa3a221..1e41c899ffe2 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -3618,7 +3618,8 @@ static u8 intel_enabled_dbuf_slices_num(struct 
> drm_i915_private *dev_priv)
>   enabled_slices = 1;
>  
>   /* Gen prior to GEN11 have only one DBuf slice */
> - if (INTEL_GEN(dev_priv) < 11)
> + /* FIXME dbuf slice code is broken: see intel_get_ddb_size() */
> + if (1 || INTEL_GEN(dev_priv) < 11)
>   return enabled_slices;
>  
>   if (I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE)
> @@ -3827,8 +3828,13 @@ static u16 intel_get_ddb_size(struct drm_i915_private 
> *dev_priv,
>  
>   /*
>* 12GB/s is maximum BW supported by single DBuf slice.
> +  *
> +  * FIXME dbuf slice code is broken:
> +  * - must wait for planes to stop using the slice before powering it off
> +  * - plane straddling both slices is illegal in multi-pipe scenarios
> +  * - should validate we stay within the hw bandwidth limits
>*/
> - if (num_active > 1 || total_data_bw >= GBps(12)) {
> + if (0 && (num_active > 1 || total_data_bw >= GBps(12))) {
>   ddb->enabled_slices = 2;
>   } else {
>   ddb->enabled_slices = 1;
> -- 
> 2.19.2
> 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Don't use the second dbuf slice on icl

2019-01-25 Thread Imre Deak
On Tue, Jan 22, 2019 at 02:49:13PM +0530, Mahesh Kumar wrote:
> Hi,
> 
> 
> On Mon, Jan 21, 2019 at 9:01 PM Ville Syrjala
>  wrote:
> >
> > From: Ville Syrjälä 
> >
> > The code managing the dbuf slices is borked and needs some
> > real work to fix. In the meantime let's just stop using the
> > second slice.
> >
> > Signed-off-by: Ville Syrjälä 
> > ---
> >  drivers/gpu/drm/i915/intel_pm.c | 10 --
> >  1 file changed, 8 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_pm.c
> b/drivers/gpu/drm/i915/intel_pm.c
> > index 8b63afa3a221..1e41c899ffe2 100644
> > --- a/drivers/gpu/drm/i915/intel_pm.c
> > +++ b/drivers/gpu/drm/i915/intel_pm.c
> > @@ -3618,7 +3618,8 @@ static u8
> intel_enabled_dbuf_slices_num(struct drm_i915_private *dev_priv)
> > enabled_slices = 1;
> >
> > /* Gen prior to GEN11 have only one DBuf slice */
> > -   if (INTEL_GEN(dev_priv) < 11)
> > +   /* FIXME dbuf slice code is broken: see intel_get_ddb_size() */
> > +   if (1 || INTEL_GEN(dev_priv) < 11)
> > return enabled_slices;
> 
> IMHO we may not need this,

It's easier to pretend that we have only a single slice. Not sure for
instance if the lack of the above would lead to state check errors (due
to other problems in the dbuf silce implementation).

> If we return from above we'll never disable
> second slice in case it's enabled by bios.

We'll disable whenever we need to, that is during suspend/driver unload.
We can ignore the rest of the cases I think.

> Anyhow code change in intel_get_ddb_size will take care of enabling
> only one slice.
> 
> >
> > if (I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE)
> > @@ -3827,8 +3828,13 @@ static u16 intel_get_ddb_size(struct
> drm_i915_private *dev_priv,
> >
> > /*
> >  * 12GB/s is maximum BW supported by single DBuf slice.
> > +*
> > +* FIXME dbuf slice code is broken:
> > +* - must wait for planes to stop using the slice before
> powering it off
> 
> AFAIR we were already doing it and disabling slice only after
> update_crtcs, and skl_update_crtc code is taking care of waiting for
> vblank in case it's required.
> 
> > +* - plane straddling both slices is illegal in
> multi-pipe scenarios
> 
> This is something new :)
> 
> although this change introduce a major limitation with number and size
> of planes we can display, yet
> As code is broken and mentioned conditions need to be taken care of,
> This change should be ok until proper fix.
> 
> ~Mahesh
> 
> > +* - should validate we stay within the hw bandwidth limits
> >  */
> > -   if (num_active > 1 || total_data_bw >= GBps(12)) {
> > +   if (0 && (num_active > 1 || total_data_bw >= GBps(12))) {
> > ddb->enabled_slices = 2;
> > } else {
> > ddb->enabled_slices = 1;
> > --
> > 2.19.2
> >
> > ___
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 26/26] drm/: Don't set FBINFO_(FLAG_)DEFAULT

2019-01-25 Thread Emil Velikov
On Thu, 24 Jan 2019 at 17:00, Daniel Vetter  wrote:
>
> It's 0.
>
I'd add a bit more information here. Feel free to reuse as much/little
of the following:

Both macros evaluate to 0. At the same time flag is already set to
zero since the struct is kzalloc'd in framebuffer_alloc().
As called by drm_fb_helper_alloc_fbi() in the DRM drivers.


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


Re: [Intel-gfx] [PATCH 03/26] drm/irq: Ditch DRIVER_IRQ_SHARED

2019-01-25 Thread Emil Velikov
On Thu, 24 Jan 2019 at 16:58, Daniel Vetter  wrote:
>
> This is only used by drm_irq_install(), which is an optional helper.
> And the right choice is to set it for all pci devices, and not for
> everything else.
>
Can you please add some information (or reference) why it's the right choice?

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


Re: [Intel-gfx] [PATCH 27/33] drm/i915: Replace global breadcrumbs with per-context interrupt tracking

2019-01-25 Thread Chris Wilson
Quoting Chris Wilson (2019-01-25 14:26:49)
> Quoting Tvrtko Ursulin (2019-01-25 13:54:05)
> > 
> > On 25/01/2019 02:29, Chris Wilson wrote:
> > > +
> > > + requests[n] = i915_request_get(rq);
> > > + i915_request_add(rq);
> > > +
> > > + mutex_unlock(BKL);
> > > +
> > > + if (err >= 0)
> > > + err = i915_sw_fence_await_dma_fence(wait,
> > > + 
> > > &rq->fence,
> > > + 0,
> > > + 
> > > GFP_KERNEL);
> > 
> > If above is true why this can't simply be i915_request_enable_breadcrumbs?
> 
> I was trying to test breadcrumbs at a high level without 'cheating'.
> 
> For i915_request_enable_breadcrumbs, I keep thinking the test should be
> asking if the engine then has it on its signaling list, but that feels
> like a circular argument, directly following the implementation itself
> 
> > > + if (err < 0) {
> > 
> > else if?
> 
> Now where would I be able to copy'n'paste that from? ;)

Actually, no. If it is separate, I'll give you a newline instead.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915/icl: Add TypeC ports only if VBT is present

2019-01-25 Thread Imre Deak
We can't safely probe Type C ports, whether they are a legacy or a
USB/Thunderbolt DP Alternate Type C port. This would require performing
the TypeC connect sequence - as described by the specification - but
that may have unwanted side-effects. These side-effects include at least
- without completeness - timeouts during AUX power well enabling and
subsequent PLL enabling errors.

To safely identify these ports we really need VBT, which has the proper
flag for this (ddi_vbt_port_info::supports_typec_usb, supports_tbt).
Based on the above disable Type C ports if we can't load VBT for some
reason.

Cc: Jani Nikula 
Cc: Paulo Zanoni 
Cc: Jose Roberto de Souza 
Cc: Ville Syrjälä 
Cc: Rodrigo Vivi 
Signed-off-by: Imre Deak 
---
 drivers/gpu/drm/i915/intel_bios.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_bios.c 
b/drivers/gpu/drm/i915/intel_bios.c
index 561a4f9f044c..270e7f0ad5cd 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -1662,10 +1662,12 @@ init_vbt_missing_defaults(struct drm_i915_private 
*dev_priv)
for (port = PORT_A; port < I915_MAX_PORTS; port++) {
struct ddi_vbt_port_info *info =
&dev_priv->vbt.ddi_port_info[port];
+   bool is_tc_port = intel_port_is_tc(dev_priv, port);
 
-   info->supports_dvi = (port != PORT_A && port != PORT_E);
+   info->supports_dvi = (port != PORT_A && port != PORT_E &&
+ !is_tc_port);
info->supports_hdmi = info->supports_dvi;
-   info->supports_dp = (port != PORT_E);
+   info->supports_dp = (port != PORT_E && !is_tc_port);
}
 }
 
-- 
2.13.2

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


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Stop tracking MRU activity on VMA

2019-01-25 Thread Patchwork
== Series Details ==

Series: drm/i915: Stop tracking MRU activity on VMA
URL   : https://patchwork.freedesktop.org/series/55731/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5483 -> Patchwork_12039


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_flip@basic-flip-vs-modeset:
- fi-skl-6700hq:  PASS -> DMESG-WARN [fdo#105998]

  * igt@prime_vgem@basic-fence-flip:
- fi-ilk-650: PASS -> FAIL [fdo#104008]

  
 Possible fixes 

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
- fi-blb-e6850:   INCOMPLETE [fdo#107718] -> PASS

  * igt@pm_rpm@basic-pci-d3-state:
- fi-byt-j1900:   {SKIP} [fdo#109271] -> PASS
- fi-bsw-n3050:   {SKIP} [fdo#109271] -> PASS

  * igt@pm_rpm@basic-rte:
- fi-byt-j1900:   FAIL [fdo#108800] -> PASS
- fi-bsw-n3050:   FAIL [fdo#108800] -> PASS

  * igt@pm_rpm@module-reload:
- fi-skl-6770hq:  FAIL -> PASS

  * igt@prime_vgem@basic-fence-flip:
- fi-gdg-551: FAIL [fdo#103182] -> PASS

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

  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#104008]: https://bugs.freedesktop.org/show_bug.cgi?id=104008
  [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (43 -> 39)
--

  Additional (1): fi-pnv-d510 
  Missing(5): fi-kbl-soraka fi-ilk-m540 fi-bsw-cyan fi-icl-u2 
fi-byt-clapper 


Build changes
-

* Linux: CI_DRM_5483 -> Patchwork_12039

  CI_DRM_5483: 39cde7a859167467e9c4446b70b08a42b5e3345e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12039: dcfcc9eab96656001a0cf108b6e6ad2b42985ef7 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

dcfcc9eab966 drm/i915: Stop tracking MRU activity on VMA

== Logs ==

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


Re: [Intel-gfx] [PATCH 27/33] drm/i915: Replace global breadcrumbs with per-context interrupt tracking

2019-01-25 Thread Chris Wilson
Quoting Tvrtko Ursulin (2019-01-25 13:54:05)
> 
> On 25/01/2019 02:29, Chris Wilson wrote:
> > diff --git a/drivers/gpu/drm/i915/i915_request.c 
> > b/drivers/gpu/drm/i915/i915_request.c
> > index 2171df2d3019..c09a6644a2ab 100644
> > --- a/drivers/gpu/drm/i915/i915_request.c
> > +++ b/drivers/gpu/drm/i915/i915_request.c
> > @@ -60,7 +60,7 @@ static bool i915_fence_signaled(struct dma_fence *fence)
> >   
> >   static bool i915_fence_enable_signaling(struct dma_fence *fence)
> >   {
> > - return intel_engine_enable_signaling(to_request(fence), true);
> > + return i915_request_enable_breadcrumb(to_request(fence));
> 
> enable_signaling would be better IMO, enable_breadcrumb sounds like it 
> could do with breadcrumb emission. And it would align with 
> i915_fence_enable_signaling.

But isn't it to entirely do with our breadcrumbs...

I'm going the other way, while the request/interrupt logic is called
breadcrumbs, we want to link the dma-fence signaling back to
breadcrumbs.

I liked the new name :)

> >   /**
> >* i915_request_started - check if the request has begun being executed
> >* @rq: the request
> > @@ -345,7 +369,23 @@ static inline bool i915_request_started(const struct 
> > i915_request *rq)
> >   return true;
> >   
> >   /* Remember: started but may have since been preempted! */
> > - return i915_seqno_passed(hwsp_seqno(rq), rq->fence.seqno - 1);
> > + return __i915_request_has_started(rq);
> > +}
> 
> Is it worth having both i915_request_started and 
> __i915_request_has_started. AFAIU fence cannot be signaled unless the 
> seqno has advanced, so if __i915_request_has_started would be dropped 
> and the caller just use the former, I don't think there would be any 
> issues. Callers always check for completed before hand. I guess it saves 
> a redundant fence signaled check.

I was trying to consolidate down on the fence->flags logic, and decided
half the checks were redundant.

I was also dipping my toe into the water to see how everyone reacted to
a possible
s/i915_request_completed/i915_request_has_completed/
s/i915_request_started/i915_request_has_started/
i915_request_is_running

> > +static inline bool i915_request_is_running(const struct i915_request *rq)
> > +{
> > + if (!i915_request_is_active(rq))
> > + return false;
> > +
> > + return __i915_request_has_started(rq);
> 
> return i915_request_is_active(rq) && __i915_request_has_started(rq); 
> probably doesn't fit in 80chars to be that attractive?

It keeps the pattern with the other status checks (started, completed,
is_running) though!

> > -static unsigned int __intel_breadcrumbs_wakeup(struct intel_breadcrumbs *b)
> > +static void irq_enable(struct intel_engine_cs *engine)
> > +{
> > + if (!engine->irq_enable)
> > + return;
> > +
> > + /* Caller disables interrupts */
> 
> GEM_BUG_ON(!irqs_disabled); ?

Nah, I thought I had removed it before, but apparently there was more
than one check here.

It doesn't matter if we set the IMR while interrupts are disabled, we
get a hang report. We can't turn off interrupts without parking, and we
can't park without interrupts. That's probably the best point to say
"oi!"

> > + /*
> > +  * We may race with direct invocation of
> > +  * dma_fence_signal(), e.g. i915_request_retire(),
> > +  * in which case we can skip processing it ourselves.
> > +  */
> > + if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT,
> > +  &rq->fence.flags))
> > + continue;
> 
> Doesn't look this is worth it. We could then race a line below and still 
> end up with the already signaled rq on the local list. So would be 
> tempted to drop this for simplicity.

It's virtually free since we already have the exclusive cacheline for
rq->fence.flags. ~o~
(Except when it races and then we skip the atomic and list manipulation)

There's some benefit in having little reminders that many paths lead to
dma_fence_signal.

> > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c 
> > b/drivers/gpu/drm/i915/intel_ringbuffer.c
> > index 3f9f0a5a0f44..d7c31ad1d0ea 100644
> > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> > @@ -486,8 +486,8 @@ static u32 *gen7_xcs_emit_breadcrumb(struct 
> > i915_request *rq, u32 *cs)
> >   
> >   for (i = 0; i < GEN7_XCS_WA; i++) {
> >   *cs++ = MI_STORE_DWORD_INDEX;
> > - *cs++ = I915_GEM_HWS_INDEX_ADDR;
> > - *cs++ = rq->global_seqno;
> > + *cs++ = I915_GEM_HWS_SEQNO_ADDR;
> > + *cs++ = rq->fence.seqno;
> 
> Why this, and in this patch?

A slip of the fingers. Spotted that last night as well and forgot to
move the chunk.

> > + for (n = 0; n < count; n++) {
> > + struct i915_gem_context *ctx =
> > + 

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [CI,1/5] drm/i915: Make all GPU resets atomic

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/5] drm/i915: Make all GPU resets atomic
URL   : https://patchwork.freedesktop.org/series/55730/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5483 -> Patchwork_12038


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u:   PASS -> FAIL [fdo#108767]

  
 Possible fixes 

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
- fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS
- fi-blb-e6850:   INCOMPLETE [fdo#107718] -> PASS

  * igt@pm_rpm@basic-pci-d3-state:
- fi-byt-j1900:   {SKIP} [fdo#109271] -> PASS
- fi-bsw-n3050:   {SKIP} [fdo#109271] -> PASS

  * igt@pm_rpm@basic-rte:
- fi-byt-j1900:   FAIL [fdo#108800] -> PASS
- fi-bsw-n3050:   FAIL [fdo#108800] -> PASS

  * igt@pm_rpm@module-reload:
- fi-skl-6770hq:  FAIL -> PASS

  * igt@prime_vgem@basic-fence-flip:
- fi-gdg-551: FAIL [fdo#103182] -> PASS

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

  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#108767]: https://bugs.freedesktop.org/show_bug.cgi?id=108767
  [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (43 -> 41)
--

  Additional (1): fi-pnv-d510 
  Missing(3): fi-kbl-soraka fi-ilk-m540 fi-bsw-cyan 


Build changes
-

* Linux: CI_DRM_5483 -> Patchwork_12038

  CI_DRM_5483: 39cde7a859167467e9c4446b70b08a42b5e3345e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12038: 3c15a67f2a13a2cc920168b68e4bda85c0fc938e @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

3c15a67f2a13 drm/i915: Issue engine resets onto idle engines
2dfcd913159b drm/i915/selftests: Trim struct_mutex duration for set-wedged 
selftest
839bf6ef05f4 drm/i915: Remove GPU reset dependence on struct_mutex
ea6bc9ab4ea1 drm/i915/guc: Disable global reset
4273a708fc23 drm/i915: Make all GPU resets atomic

== Logs ==

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


Re: [Intel-gfx] [PATCH 26/33] drm/i915: Remove the intel_engine_notify tracepoint

2019-01-25 Thread Tvrtko Ursulin


On 25/01/2019 02:29, Chris Wilson wrote:

The global seqno is defunct and so we have no meaningful indicator of
forward progress for an engine. You need to listen to the request
signaling tracepoints instead.

Signed-off-by: Chris Wilson 
---
  drivers/gpu/drm/i915/i915_irq.c   |  2 --
  drivers/gpu/drm/i915/i915_trace.h | 25 -
  2 files changed, 27 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 7e56611b3d60..bedac6c14928 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1211,8 +1211,6 @@ static void notify_ring(struct intel_engine_cs *engine)
wake_up_process(tsk);
  
  	rcu_read_unlock();

-
-   trace_intel_engine_notify(engine, wait);
  }
  
  static void vlv_c0_read(struct drm_i915_private *dev_priv,

diff --git a/drivers/gpu/drm/i915/i915_trace.h 
b/drivers/gpu/drm/i915/i915_trace.h
index 43da14f08dc0..eab313c3163c 100644
--- a/drivers/gpu/drm/i915/i915_trace.h
+++ b/drivers/gpu/drm/i915/i915_trace.h
@@ -752,31 +752,6 @@ trace_i915_request_out(struct i915_request *rq)
  #endif
  #endif
  
-TRACE_EVENT(intel_engine_notify,

-   TP_PROTO(struct intel_engine_cs *engine, bool waiters),
-   TP_ARGS(engine, waiters),
-
-   TP_STRUCT__entry(
-__field(u32, dev)
-__field(u16, class)
-__field(u16, instance)
-__field(u32, seqno)
-__field(bool, waiters)
-),
-
-   TP_fast_assign(
-  __entry->dev = engine->i915->drm.primary->index;
-  __entry->class = engine->uabi_class;
-  __entry->instance = engine->instance;
-  __entry->seqno = intel_engine_get_seqno(engine);
-  __entry->waiters = waiters;
-  ),
-
-   TP_printk("dev=%u, engine=%u:%u, seqno=%u, waiters=%u",
- __entry->dev, __entry->class, __entry->instance,
- __entry->seqno, __entry->waiters)
-);
-
  DEFINE_EVENT(i915_request, i915_request_retire,
TP_PROTO(struct i915_request *rq),
TP_ARGS(rq)



Reviewed-by: Tvrtko Ursulin 

I think I checked that trace_dma_fence_singal will allow me to fix 
trace.pl.. I think I have.


Regards,

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


Re: [Intel-gfx] [PATCH 07/38] drm/i915: Stop tracking MRU activity on VMA

2019-01-25 Thread Tvrtko Ursulin


On 25/01/2019 13:46, Chris Wilson wrote:

Quoting Chris Wilson (2019-01-25 13:38:09)

Quoting Tvrtko Ursulin (2019-01-25 10:46:19)


On 22/01/2019 14:19, Chris Wilson wrote:

Quoting Tvrtko Ursulin (2019-01-18 16:03:27)


On 18/01/2019 14:00, Chris Wilson wrote:

Our goal is to remove struct_mutex and replace it with fine grained
locking. One of the thorny issues is our eviction logic for reclaiming
space for an execbuffer (or GTT mmaping, among a few other examples).
While eviction itself is easy to move under a per-VM mutex, performing
the activity tracking is less agreeable. One solution is not to do any
MRU tracking and do a simple coarse evaluation during eviction of
active/inactive, with a loose temporal ordering of last
insertion/evaluation. That keeps all the locking constrained to when we
are manipulating the VM itself, neatly avoiding the tricky handling of
possible recursive locking during execbuf and elsewhere.

Note that discarding the MRU is unlikely to impact upon our efficiency
to reclaim VM space (where we think a LRU model is best) as our
current strategy is to use random idle replacement first before doing
a search, and over time the use of softpinned 48b per-ppGTT is growing
(thereby eliminating any need to perform any eviction searches, in
theory at least).


There is still no mention of list consolidation.


"Note that discarding the MRU (currently implemented as a pair of lists,
to avoid scanning the active list for a NONBLOCKING search)"

Is that enough to make it clear?


How about:

"Note that discarding the MRU, which is implemented both by not doing
list operations while tracking activity, and by replacing
active/inactive list with a single bound list, is unlikely..."

?

Plus I really want a changelog and that stale comment which talks about
active/inactive *lists* updated.


But there's active/inactive lists within the list...


@@ -136,17 +136,15 @@ i915_gem_evict_something(struct i915_address_space *vm,
 trace_i915_gem_evict(vm, min_size, alignment, flags);

 /*
-* The goal is to evict objects and amalgamate space in LRU order.
-* The oldest idle objects reside on the inactive list, which is in
-* retirement order. The next objects to retire are those in flight,
-* on the active list, again in retirement order.
+* The goal is to evict objects and amalgamate space in rough LRU order.
+* Since both active and inactive objects reside on the same list,
+* in a mix of creation and last scanned order, as we process the list
+* we sort it into inactive/active, which keeps the active portion
+* in a rough MRU order.
  *
  * The retirement sequence is thus:
  *   1. Inactive objects (already retired, random order)
  *   2. Active objects (will stall on unbinding, oldest scanned first)
-*
-* On each list, the oldest objects lie at the HEAD with the freshest
-* object on the TAIL.
  */


Yep, I'm happy with that.

Regards,

Tvrtko


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


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Measure the required reserved size for request emission (rev2)

2019-01-25 Thread Patchwork
== Series Details ==

Series: drm/i915: Measure the required reserved size for request emission (rev2)
URL   : https://patchwork.freedesktop.org/series/55683/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5480_full -> Patchwork_12036_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

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

  * igt@kms_cursor_crc@cursor-128x42-sliding:
- shard-apl:  PASS -> FAIL [fdo#103232] +1

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

  * igt@kms_plane_alpha_blend@pipe-a-alpha-7efc:
- shard-kbl:  NOTRUN -> FAIL [fdo#108145] / [fdo#108590]

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

  * igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
- shard-apl:  PASS -> FAIL [fdo#108145]

  
 Possible fixes 

  * igt@gem_eio@in-flight-contexts-10ms:
- shard-glk:  FAIL [fdo#107799] -> PASS

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

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

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
- shard-apl:  DMESG-FAIL [fdo#108950] -> PASS

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

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

  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#107799]: https://bugs.freedesktop.org/show_bug.cgi?id=107799
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108590]: https://bugs.freedesktop.org/show_bug.cgi?id=108590
  [fdo#108950]: https://bugs.freedesktop.org/show_bug.cgi?id=108950
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (7 -> 5)
--

  Missing(2): shard-skl shard-iclb 


Build changes
-

* Linux: CI_DRM_5480 -> Patchwork_12036

  CI_DRM_5480: 5c33d663f891b8820a5b983e32dd4f3de0f03eda @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4790: dcdf4b04e16312f8f52ad389388d834f9d74b8f0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12036: 2fb22e6faa1c5e505f7f869aed38fc61adb1f9cb @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


[Intel-gfx] [PATCH] drm/i915: Stop tracking MRU activity on VMA

2019-01-25 Thread Chris Wilson
Our goal is to remove struct_mutex and replace it with fine grained
locking. One of the thorny issues is our eviction logic for reclaiming
space for an execbuffer (or GTT mmaping, among a few other examples).
While eviction itself is easy to move under a per-VM mutex, performing
the activity tracking is less agreeable. One solution is not to do any
MRU tracking and do a simple coarse evaluation during eviction of
active/inactive, with a loose temporal ordering of last
insertion/evaluation. That keeps all the locking constrained to when we
are manipulating the VM itself, neatly avoiding the tricky handling of
possible recursive locking during execbuf and elsewhere.

Note that discarding the MRU (currently implemented as a pair of lists,
to avoid scanning the active list for a NONBLOCKING search) is unlikely
to impact upon our efficiency to reclaim VM space (where we think a LRU
model is best) as our current strategy is to use random idle replacement
first before doing a search, and over time the use of softpinned 48b
per-ppGTT is growing (thereby eliminating any need to perform any eviction
searches, in theory at least) with the remaining users being found on
much older devices (gen2-gen6).

v2: Changelog and commentary rewritten to elaborate on the duality of a
single list being both an inactive and active list.
v3: Consolidate bool parameters into a single set of flags; don't
comment on the duality of a single variable being a multiplicity of
bits.

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/i915_gem.c   | 10 +--
 drivers/gpu/drm/i915/i915_gem_evict.c | 87 +++
 drivers/gpu/drm/i915/i915_gem_gtt.c   | 15 ++--
 drivers/gpu/drm/i915/i915_gem_gtt.h   | 26 +-
 drivers/gpu/drm/i915/i915_gem_shrinker.c  |  8 +-
 drivers/gpu/drm/i915/i915_gem_stolen.c|  3 +-
 drivers/gpu/drm/i915/i915_gpu_error.c | 42 -
 drivers/gpu/drm/i915/i915_vma.c   |  9 +-
 .../gpu/drm/i915/selftests/i915_gem_evict.c   |  4 +-
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c |  2 +-
 10 files changed, 95 insertions(+), 111 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index dcbe644869b3..12a0a80bc989 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -255,10 +255,7 @@ i915_gem_get_aperture_ioctl(struct drm_device *dev, void 
*data,
 
pinned = ggtt->vm.reserved;
mutex_lock(&dev->struct_mutex);
-   list_for_each_entry(vma, &ggtt->vm.active_list, vm_link)
-   if (i915_vma_is_pinned(vma))
-   pinned += vma->node.size;
-   list_for_each_entry(vma, &ggtt->vm.inactive_list, vm_link)
+   list_for_each_entry(vma, &ggtt->vm.bound_list, vm_link)
if (i915_vma_is_pinned(vma))
pinned += vma->node.size;
mutex_unlock(&dev->struct_mutex);
@@ -1541,13 +1538,10 @@ static void i915_gem_object_bump_inactive_ggtt(struct 
drm_i915_gem_object *obj)
GEM_BUG_ON(!i915_gem_object_has_pinned_pages(obj));
 
for_each_ggtt_vma(vma, obj) {
-   if (i915_vma_is_active(vma))
-   continue;
-
if (!drm_mm_node_allocated(&vma->node))
continue;
 
-   list_move_tail(&vma->vm_link, &vma->vm->inactive_list);
+   list_move_tail(&vma->vm_link, &vma->vm->bound_list);
}
 
i915 = to_i915(obj->base.dev);
diff --git a/drivers/gpu/drm/i915/i915_gem_evict.c 
b/drivers/gpu/drm/i915/i915_gem_evict.c
index f6855401f247..d76839670632 100644
--- a/drivers/gpu/drm/i915/i915_gem_evict.c
+++ b/drivers/gpu/drm/i915/i915_gem_evict.c
@@ -126,31 +126,25 @@ i915_gem_evict_something(struct i915_address_space *vm,
struct drm_i915_private *dev_priv = vm->i915;
struct drm_mm_scan scan;
struct list_head eviction_list;
-   struct list_head *phases[] = {
-   &vm->inactive_list,
-   &vm->active_list,
-   NULL,
-   }, **phase;
struct i915_vma *vma, *next;
struct drm_mm_node *node;
enum drm_mm_insert_mode mode;
+   struct i915_vma *active;
int ret;
 
lockdep_assert_held(&vm->i915->drm.struct_mutex);
trace_i915_gem_evict(vm, min_size, alignment, flags);
 
/*
-* The goal is to evict objects and amalgamate space in LRU order.
-* The oldest idle objects reside on the inactive list, which is in
-* retirement order. The next objects to retire are those in flight,
-* on the active list, again in retirement order.
+* The goal is to evict objects and amalgamate space in rough LRU order.
+* Since both active and inactive objects reside on the same list,
+* in a mix of creation and last scanned order, as we process the list
+* we sort it into inactive/active, which keeps the active portion
+* i

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [CI,1/5] drm/i915: Make all GPU resets atomic

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/5] drm/i915: Make all GPU resets atomic
URL   : https://patchwork.freedesktop.org/series/55730/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915: Make all GPU resets atomic
Okay!

Commit: drm/i915/guc: Disable global reset
Okay!

Commit: drm/i915: Remove GPU reset dependence on struct_mutex
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3546:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3541:16: warning: expression 
using sizeof(void)

Commit: drm/i915/selftests: Trim struct_mutex duration for set-wedged selftest
Okay!

Commit: drm/i915: Issue engine resets onto idle engines
Okay!

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [CI,1/5] drm/i915: Make all GPU resets atomic

2019-01-25 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/5] drm/i915: Make all GPU resets atomic
URL   : https://patchwork.freedesktop.org/series/55730/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
4273a708fc23 drm/i915: Make all GPU resets atomic
-:33: CHECK:USLEEP_RANGE: usleep_range is preferred over udelay; see 
Documentation/timers/timers-howto.txt
#33: FILE: drivers/gpu/drm/i915/i915_reset.c:149:
+   udelay(50);

-:39: CHECK:USLEEP_RANGE: usleep_range is preferred over udelay; see 
Documentation/timers/timers-howto.txt
#39: FILE: drivers/gpu/drm/i915/i915_reset.c:154:
+   udelay(50);

total: 0 errors, 0 warnings, 2 checks, 176 lines checked
ea6bc9ab4ea1 drm/i915/guc: Disable global reset
839bf6ef05f4 drm/i915: Remove GPU reset dependence on struct_mutex
-:1289: WARNING:BOOL_BITFIELD: Avoid using bool as bitfield.  Prefer bool 
bitfields as unsigned int or u<8|16|32>
#1289: FILE: drivers/gpu/drm/i915/intel_hangcheck.c:35:
+   bool wedged:1;

-:1290: WARNING:BOOL_BITFIELD: Avoid using bool as bitfield.  Prefer bool 
bitfields as unsigned int or u<8|16|32>
#1290: FILE: drivers/gpu/drm/i915/intel_hangcheck.c:36:
+   bool stalled:1;

total: 0 errors, 2 warnings, 0 checks, 1714 lines checked
2dfcd913159b drm/i915/selftests: Trim struct_mutex duration for set-wedged 
selftest
3c15a67f2a13 drm/i915: Issue engine resets onto idle engines

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


Re: [Intel-gfx] [PATCH 07/38] drm/i915: Stop tracking MRU activity on VMA

2019-01-25 Thread Chris Wilson
Quoting Chris Wilson (2019-01-25 13:38:09)
> Quoting Tvrtko Ursulin (2019-01-25 10:46:19)
> > 
> > On 22/01/2019 14:19, Chris Wilson wrote:
> > > Quoting Tvrtko Ursulin (2019-01-18 16:03:27)
> > >>
> > >> On 18/01/2019 14:00, Chris Wilson wrote:
> > >>> Our goal is to remove struct_mutex and replace it with fine grained
> > >>> locking. One of the thorny issues is our eviction logic for reclaiming
> > >>> space for an execbuffer (or GTT mmaping, among a few other examples).
> > >>> While eviction itself is easy to move under a per-VM mutex, performing
> > >>> the activity tracking is less agreeable. One solution is not to do any
> > >>> MRU tracking and do a simple coarse evaluation during eviction of
> > >>> active/inactive, with a loose temporal ordering of last
> > >>> insertion/evaluation. That keeps all the locking constrained to when we
> > >>> are manipulating the VM itself, neatly avoiding the tricky handling of
> > >>> possible recursive locking during execbuf and elsewhere.
> > >>>
> > >>> Note that discarding the MRU is unlikely to impact upon our efficiency
> > >>> to reclaim VM space (where we think a LRU model is best) as our
> > >>> current strategy is to use random idle replacement first before doing
> > >>> a search, and over time the use of softpinned 48b per-ppGTT is growing
> > >>> (thereby eliminating any need to perform any eviction searches, in
> > >>> theory at least).
> > >>
> > >> There is still no mention of list consolidation.
> > > 
> > > "Note that discarding the MRU (currently implemented as a pair of lists,
> > > to avoid scanning the active list for a NONBLOCKING search)"
> > > 
> > > Is that enough to make it clear?
> > 
> > How about:
> > 
> > "Note that discarding the MRU, which is implemented both by not doing 
> > list operations while tracking activity, and by replacing 
> > active/inactive list with a single bound list, is unlikely..."
> > 
> > ?
> > 
> > Plus I really want a changelog and that stale comment which talks about 
> > active/inactive *lists* updated.
> 
> But there's active/inactive lists within the list...

@@ -136,17 +136,15 @@ i915_gem_evict_something(struct i915_address_space *vm,
trace_i915_gem_evict(vm, min_size, alignment, flags);

/*
-* The goal is to evict objects and amalgamate space in LRU order.
-* The oldest idle objects reside on the inactive list, which is in
-* retirement order. The next objects to retire are those in flight,
-* on the active list, again in retirement order.
+* The goal is to evict objects and amalgamate space in rough LRU order.
+* Since both active and inactive objects reside on the same list,
+* in a mix of creation and last scanned order, as we process the list
+* we sort it into inactive/active, which keeps the active portion
+* in a rough MRU order.
 *
 * The retirement sequence is thus:
 *   1. Inactive objects (already retired, random order)
 *   2. Active objects (will stall on unbinding, oldest scanned first)
-*
-* On each list, the oldest objects lie at the HEAD with the freshest
-* object on the TAIL.
 */
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 07/38] drm/i915: Stop tracking MRU activity on VMA

2019-01-25 Thread Chris Wilson
Quoting Tvrtko Ursulin (2019-01-25 10:46:19)
> 
> On 22/01/2019 14:19, Chris Wilson wrote:
> > Quoting Tvrtko Ursulin (2019-01-18 16:03:27)
> >>
> >> On 18/01/2019 14:00, Chris Wilson wrote:
> >>> Our goal is to remove struct_mutex and replace it with fine grained
> >>> locking. One of the thorny issues is our eviction logic for reclaiming
> >>> space for an execbuffer (or GTT mmaping, among a few other examples).
> >>> While eviction itself is easy to move under a per-VM mutex, performing
> >>> the activity tracking is less agreeable. One solution is not to do any
> >>> MRU tracking and do a simple coarse evaluation during eviction of
> >>> active/inactive, with a loose temporal ordering of last
> >>> insertion/evaluation. That keeps all the locking constrained to when we
> >>> are manipulating the VM itself, neatly avoiding the tricky handling of
> >>> possible recursive locking during execbuf and elsewhere.
> >>>
> >>> Note that discarding the MRU is unlikely to impact upon our efficiency
> >>> to reclaim VM space (where we think a LRU model is best) as our
> >>> current strategy is to use random idle replacement first before doing
> >>> a search, and over time the use of softpinned 48b per-ppGTT is growing
> >>> (thereby eliminating any need to perform any eviction searches, in
> >>> theory at least).
> >>
> >> There is still no mention of list consolidation.
> > 
> > "Note that discarding the MRU (currently implemented as a pair of lists,
> > to avoid scanning the active list for a NONBLOCKING search)"
> > 
> > Is that enough to make it clear?
> 
> How about:
> 
> "Note that discarding the MRU, which is implemented both by not doing 
> list operations while tracking activity, and by replacing 
> active/inactive list with a single bound list, is unlikely..."
> 
> ?
> 
> Plus I really want a changelog and that stale comment which talks about 
> active/inactive *lists* updated.

But there's active/inactive lists within the list...
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [CI 5/5] drm/i915: Issue engine resets onto idle engines

2019-01-25 Thread Chris Wilson
Always perform the requested reset, even if we believe the engine is
idle. Presumably there was a reason the caller wanted the reset, and in
the near future we lose the easy tracking for whether the engine is
idle.

Signed-off-by: Chris Wilson 
Reviewed-by: John Harrison 
---
 drivers/gpu/drm/i915/i915_reset.c |  4 
 .../gpu/drm/i915/selftests/intel_hangcheck.c  | 22 +--
 2 files changed, 6 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_reset.c 
b/drivers/gpu/drm/i915/i915_reset.c
index 68af017ee548..99bd3bc336b3 100644
--- a/drivers/gpu/drm/i915/i915_reset.c
+++ b/drivers/gpu/drm/i915/i915_reset.c
@@ -1076,10 +1076,6 @@ int i915_reset_engine(struct intel_engine_cs *engine, 
const char *msg)
GEM_TRACE("%s flags=%lx\n", engine->name, error->flags);
GEM_BUG_ON(!test_bit(I915_RESET_ENGINE + engine->id, &error->flags));
 
-   if (i915_seqno_passed(intel_engine_get_seqno(engine),
- intel_engine_last_submit(engine)))
-   return 0;
-
reset_prepare_engine(engine);
 
if (msg)
diff --git a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c 
b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
index 8025c7e0bf6c..2c38ea5892d9 100644
--- a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
+++ b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
@@ -449,8 +449,6 @@ static int __igt_reset_engine(struct drm_i915_private 
*i915, bool active)
 
set_bit(I915_RESET_ENGINE + id, &i915->gpu_error.flags);
do {
-   u32 seqno = intel_engine_get_seqno(engine);
-
if (active) {
struct i915_request *rq;
 
@@ -479,8 +477,6 @@ static int __igt_reset_engine(struct drm_i915_private 
*i915, bool active)
break;
}
 
-   GEM_BUG_ON(!rq->global_seqno);
-   seqno = rq->global_seqno - 1;
i915_request_put(rq);
}
 
@@ -496,11 +492,10 @@ static int __igt_reset_engine(struct drm_i915_private 
*i915, bool active)
break;
}
 
-   reset_engine_count += active;
if (i915_reset_engine_count(&i915->gpu_error, engine) !=
-   reset_engine_count) {
-   pr_err("%s engine reset %srecorded!\n",
-  engine->name, active ? "not " : "");
+   ++reset_engine_count) {
+   pr_err("%s engine reset not recorded!\n",
+  engine->name);
err = -EINVAL;
break;
}
@@ -728,7 +723,6 @@ static int __igt_reset_engines(struct drm_i915_private 
*i915,
 
set_bit(I915_RESET_ENGINE + id, &i915->gpu_error.flags);
do {
-   u32 seqno = intel_engine_get_seqno(engine);
struct i915_request *rq = NULL;
 
if (flags & TEST_ACTIVE) {
@@ -756,9 +750,6 @@ static int __igt_reset_engines(struct drm_i915_private 
*i915,
err = -EIO;
break;
}
-
-   GEM_BUG_ON(!rq->global_seqno);
-   seqno = rq->global_seqno - 1;
}
 
err = i915_reset_engine(engine, NULL);
@@ -795,10 +786,9 @@ static int __igt_reset_engines(struct drm_i915_private 
*i915,
 
reported = i915_reset_engine_count(&i915->gpu_error, engine);
reported -= threads[engine->id].resets;
-   if (reported != (flags & TEST_ACTIVE ? count : 0)) {
-   pr_err("i915_reset_engine(%s:%s): reset %lu times, but 
reported %lu, expected %lu reported\n",
-  engine->name, test_name, count, reported,
-  (flags & TEST_ACTIVE ? count : 0));
+   if (reported != count) {
+   pr_err("i915_reset_engine(%s:%s): reset %lu times, but 
reported %lu\n",
+  engine->name, test_name, count, reported);
if (!err)
err = -EINVAL;
}
-- 
2.20.1

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


  1   2   >