[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/wopcm: update default size for gen11+

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915/wopcm: update default size for gen11+
URL   : https://patchwork.freedesktop.org/series/61617/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6189_full -> Patchwork_13176_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_eio@in-flight-suspend:
- shard-glk:  [PASS][1] -> [FAIL][2] ([fdo#110667])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6189/shard-glk3/igt@gem_...@in-flight-suspend.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13176/shard-glk3/igt@gem_...@in-flight-suspend.html

  * igt@gem_softpin@noreloc-s3:
- shard-skl:  [PASS][3] -> [INCOMPLETE][4] ([fdo#104108])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6189/shard-skl8/igt@gem_soft...@noreloc-s3.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13176/shard-skl2/igt@gem_soft...@noreloc-s3.html

  * igt@kms_flip@2x-plain-flip:
- shard-hsw:  [PASS][5] -> [SKIP][6] ([fdo#109271]) +32 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6189/shard-hsw2/igt@kms_f...@2x-plain-flip.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13176/shard-hsw1/igt@kms_f...@2x-plain-flip.html

  * igt@kms_flip@flip-vs-expired-vblank:
- shard-kbl:  [PASS][7] -> [FAIL][8] ([fdo#102887] / [fdo#105363])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6189/shard-kbl3/igt@kms_f...@flip-vs-expired-vblank.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13176/shard-kbl3/igt@kms_f...@flip-vs-expired-vblank.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
- shard-apl:  [PASS][9] -> [DMESG-WARN][10] ([fdo#108566])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6189/shard-apl1/igt@kms_f...@flip-vs-suspend-interruptible.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13176/shard-apl6/igt@kms_f...@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite:
- shard-iclb: [PASS][11] -> [FAIL][12] ([fdo#103167]) +2 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6189/shard-iclb4/igt@kms_frontbuffer_track...@fbc-1p-offscren-pri-shrfb-draw-pwrite.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13176/shard-iclb6/igt@kms_frontbuffer_track...@fbc-1p-offscren-pri-shrfb-draw-pwrite.html

  * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min:
- shard-skl:  [PASS][13] -> [FAIL][14] ([fdo#108145])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6189/shard-skl10/igt@kms_plane_alpha_bl...@pipe-c-constant-alpha-min.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13176/shard-skl5/igt@kms_plane_alpha_bl...@pipe-c-constant-alpha-min.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl:  [PASS][15] -> [FAIL][16] ([fdo#108145] / 
[fdo#110403]) +1 similar issue
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6189/shard-skl9/igt@kms_plane_alpha_bl...@pipe-c-coverage-7efc.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13176/shard-skl9/igt@kms_plane_alpha_bl...@pipe-c-coverage-7efc.html

  
 Possible fixes 

  * {igt@gem_ctx_param@vm}:
- shard-hsw:  [DMESG-WARN][17] ([fdo#110836]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6189/shard-hsw8/igt@gem_ctx_pa...@vm.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13176/shard-hsw8/igt@gem_ctx_pa...@vm.html

  * igt@gem_exec_schedule@in-order-vebox:
- shard-apl:  [INCOMPLETE][19] ([fdo#103927]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6189/shard-apl3/igt@gem_exec_sched...@in-order-vebox.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13176/shard-apl6/igt@gem_exec_sched...@in-order-vebox.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
- shard-apl:  [DMESG-WARN][21] ([fdo#108566]) -> [PASS][22] +2 
similar issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6189/shard-apl5/igt@i915_susp...@fence-restore-tiled2untiled.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13176/shard-apl1/igt@i915_susp...@fence-restore-tiled2untiled.html

  * igt@kms_fbcon_fbt@psr-suspend:
- shard-iclb: [FAIL][23] ([fdo#103833]) -> [PASS][24]
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6189/shard-iclb2/igt@kms_fbcon_...@psr-suspend.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13176/shard-iclb6/igt@kms_fbcon_...@psr-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite:
- shard-hsw:  [SKIP][25] ([fdo#109271]) -> [PASS][26] +39 similar 

Re: [Intel-gfx] [PATCH] drm/i915: rename header test build commands to avoid conflicts

2019-06-05 Thread yamada.masahiro
Hi,

> -Original Message-
> From: Jani Nikula [mailto:jani.nik...@intel.com]
> Sent: Wednesday, June 05, 2019 10:22 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: jani.nik...@intel.com; kbuild test robot ; Chris Wilson
> ; Yamada, Masahiro/山田 真弘
> ; Sam Ravnborg 
> Subject: [PATCH] drm/i915: rename header test build commands to avoid
> conflicts
> 
> We have a local hack to test if headers are self-contained, while
> upstreaming a proper generic solution in kbuild [1]. Now that both have
> found themselves in linux-next, the identical cmd_header_test build
> commands conflict, leading to errors such as:
> 
> >> drivers/gpu/drm/i915/header_test_intel_audio.c:1:10: fatal error:
> >> drivers/gpu/drm/i915/intel_audio.h: No such file or directory
> #include "drivers/gpu/drm/i915/intel_audio.h"
>^~~~
> 
> Rename the i915 local build command until the proper kbuild solution
> finds its way to Linus' master and gets backported to our tree, and we
> can finally switch over.
> 
> Note that since the kbuild header test requires CONFIG_HEADER_TEST=y,
> and our hack requires our debug option CONFIG_DRM_I915_WERROR=y, this is
> likely hit only by build test bots.
> 
> [1] http://marc.info/?i=20190604124248.5564-1-jani.nik...@intel.com
> 
> Reported-by: kbuild test robot 
> Cc: Chris Wilson 
> Cc: Masahiro Yamada 
> Cc: Sam Ravnborg 
> Signed-off-by: Jani Nikula 
> ---


This is not really queued up yet.

So, we can squash fix-up to avoid 0day bot report.


I attached two patches.

1-FIXUP1.patch is a one-liner fixup.
If you want to clean up your Makefile by yourself later,
I will squash it.


If you want to switch to the generic notation now,
I will squash 0001-FIXUP2.patch.


Either is OK for me.


Thanks.

Masahiro Yamada



0001-FIXUP1.patch
Description: 0001-FIXUP1.patch


0001-FIXUP2.patch
Description: 0001-FIXUP2.patch
___
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: Kill INTEL_SUBPLATFORM_AML

2019-06-05 Thread Souza, Jose
This is the same as WHL, we added the AML separated just in case it
needed some different workaround or code path but looks like it don't
need at all.

Any objection with this change Rodrigo?

On Wed, 2019-06-05 at 19:29 +0300, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> All AML parts are either KBL ULX or CFL ULX so there is no point
> in keeping INTEL_SUBPLATFORM_AML around. As these are the only
> CFL ULX parts (normal CFL didn't have Y SKUs) so we'll just
> replace IS_AML_ULX with IS_CFL_ULX (it was already paired with
> IS_KBL_ULX which accounts for the other half of the AML parts).
> 
> Cc: Tvrtko Ursulin 
> Cc: José Roberto de Souza 
> Cc: Rodrigo Vivi 
> Signed-off-by: Ville Syrjälä 
> ---
>  drivers/gpu/drm/i915/i915_drv.h  | 5 ++---
>  drivers/gpu/drm/i915/intel_ddi.c | 8 +---
>  drivers/gpu/drm/i915/intel_device_info.c | 6 --
>  drivers/gpu/drm/i915/intel_device_info.h | 1 -
>  4 files changed, 7 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h
> b/drivers/gpu/drm/i915/i915_drv.h
> index 89bf1e34feaa..16ea0e6077cf 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -2213,9 +2213,6 @@ IS_SUBPLATFORM(const struct drm_i915_private
> *i915,
>   IS_SUBPLATFORM(dev_priv, INTEL_KABYLAKE, INTEL_SUBPLATFORM_ULT)
>  #define IS_KBL_ULX(dev_priv) \
>   IS_SUBPLATFORM(dev_priv, INTEL_KABYLAKE, INTEL_SUBPLATFORM_ULX)
> -#define IS_AML_ULX(dev_priv) \
> - (IS_SUBPLATFORM(dev_priv, INTEL_KABYLAKE,
> INTEL_SUBPLATFORM_AML) || \
> -  IS_SUBPLATFORM(dev_priv, INTEL_COFFEELAKE,
> INTEL_SUBPLATFORM_AML))
>  #define IS_SKL_GT2(dev_priv) (IS_SKYLAKE(dev_priv) && \
>INTEL_INFO(dev_priv)->gt == 2)
>  #define IS_SKL_GT3(dev_priv) (IS_SKYLAKE(dev_priv) && \
> @@ -2228,6 +2225,8 @@ IS_SUBPLATFORM(const struct drm_i915_private
> *i915,
>INTEL_INFO(dev_priv)->gt == 3)
>  #define IS_CFL_ULT(dev_priv) \
>   IS_SUBPLATFORM(dev_priv, INTEL_COFFEELAKE,
> INTEL_SUBPLATFORM_ULT)
> +#define IS_CFL_ULX(dev_priv) \
> + IS_SUBPLATFORM(dev_priv, INTEL_COFFEELAKE,
> INTEL_SUBPLATFORM_ULX)
>  #define IS_CFL_GT2(dev_priv) (IS_COFFEELAKE(dev_priv) && \
>INTEL_INFO(dev_priv)->gt == 2)
>  #define IS_CFL_GT3(dev_priv) (IS_COFFEELAKE(dev_priv) && \
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c
> b/drivers/gpu/drm/i915/intel_ddi.c
> index 350eaf54f01f..65c02b260c98 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -615,7 +615,7 @@ skl_get_buf_trans_dp(struct drm_i915_private
> *dev_priv, int *n_entries)
>  static const struct ddi_buf_trans *
>  kbl_get_buf_trans_dp(struct drm_i915_private *dev_priv, int
> *n_entries)
>  {
> - if (IS_KBL_ULX(dev_priv) || IS_AML_ULX(dev_priv)) {
> + if (IS_KBL_ULX(dev_priv) || IS_CFL_ULX(dev_priv)) {
>   *n_entries = ARRAY_SIZE(kbl_y_ddi_translations_dp);
>   return kbl_y_ddi_translations_dp;
>   } else if (IS_KBL_ULT(dev_priv) || IS_CFL_ULT(dev_priv)) {
> @@ -631,7 +631,8 @@ static const struct ddi_buf_trans *
>  skl_get_buf_trans_edp(struct drm_i915_private *dev_priv, int
> *n_entries)
>  {
>   if (dev_priv->vbt.edp.low_vswing) {
> - if (IS_SKL_ULX(dev_priv) || IS_KBL_ULX(dev_priv) ||
> IS_AML_ULX(dev_priv)) {
> + if (IS_SKL_ULX(dev_priv) || IS_KBL_ULX(dev_priv) ||
> + IS_CFL_ULX(dev_priv)) {
>   *n_entries =
> ARRAY_SIZE(skl_y_ddi_translations_edp);
>   return skl_y_ddi_translations_edp;
>   } else if (IS_SKL_ULT(dev_priv) || IS_KBL_ULT(dev_priv)
> ||
> @@ -653,7 +654,8 @@ skl_get_buf_trans_edp(struct drm_i915_private
> *dev_priv, int *n_entries)
>  static const struct ddi_buf_trans *
>  skl_get_buf_trans_hdmi(struct drm_i915_private *dev_priv, int
> *n_entries)
>  {
> - if (IS_SKL_ULX(dev_priv) || IS_KBL_ULX(dev_priv) ||
> IS_AML_ULX(dev_priv)) {
> + if (IS_SKL_ULX(dev_priv) || IS_KBL_ULX(dev_priv) ||
> + IS_CFL_ULX(dev_priv)) {
>   *n_entries = ARRAY_SIZE(skl_y_ddi_translations_hdmi);
>   return skl_y_ddi_translations_hdmi;
>   } else {
> diff --git a/drivers/gpu/drm/i915/intel_device_info.c
> b/drivers/gpu/drm/i915/intel_device_info.c
> index 19437e8ec6fa..7135d8dc32a7 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.c
> +++ b/drivers/gpu/drm/i915/intel_device_info.c
> @@ -787,9 +787,6 @@ static const u16 subplatform_ulx_ids[] = {
>   INTEL_SKL_ULX_GT2_IDS(0),
>   INTEL_KBL_ULX_GT1_IDS(0),
>   INTEL_KBL_ULX_GT2_IDS(0),
> -};
> -
> -static const u16 subplatform_aml_ids[] = {
>   INTEL_AML_KBL_GT2_IDS(0),
>   INTEL_AML_CFL_GT2_IDS(0),
>  };
> @@ -832,9 +829,6 @@ void intel_device_info_subplatform_init(struct
> drm_i915_private *i915)
>   /* ULX machines are also considered ULT. */
>   mask |= BIT(INTEL_SUBPLATFO

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/dmc: protect against reading random memory

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915/dmc: protect against reading random memory
URL   : https://patchwork.freedesktop.org/series/61695/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6199 -> Patchwork_13187


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13187/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_create@basic-files:
- fi-icl-u2:  [PASS][1] -> [INCOMPLETE][2] ([fdo#107713] / 
[fdo#109100])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6199/fi-icl-u2/igt@gem_ctx_cre...@basic-files.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13187/fi-icl-u2/igt@gem_ctx_cre...@basic-files.html

  * igt@i915_pm_rpm@module-reload:
- fi-icl-dsi: [PASS][3] -> [INCOMPLETE][4] ([fdo#107713] / 
[fdo#108840])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6199/fi-icl-dsi/igt@i915_pm_...@module-reload.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13187/fi-icl-dsi/igt@i915_pm_...@module-reload.html

  
 Possible fixes 

  * igt@debugfs_test@read_all_entries:
- fi-ilk-650: [DMESG-WARN][5] ([fdo#106387]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6199/fi-ilk-650/igt@debugfs_test@read_all_entries.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13187/fi-ilk-650/igt@debugfs_test@read_all_entries.html

  * igt@gem_exec_basic@basic-all:
- fi-icl-y:   [INCOMPLETE][7] ([fdo#107713]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6199/fi-icl-y/igt@gem_exec_ba...@basic-all.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13187/fi-icl-y/igt@gem_exec_ba...@basic-all.html

  * igt@gem_exec_reloc@basic-gtt-read-noreloc:
- fi-icl-u3:  [DMESG-WARN][9] ([fdo#107724]) -> [PASS][10] +1 
similar issue
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6199/fi-icl-u3/igt@gem_exec_re...@basic-gtt-read-noreloc.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13187/fi-icl-u3/igt@gem_exec_re...@basic-gtt-read-noreloc.html

  
 Warnings 

  * igt@i915_pm_rpm@module-reload:
- fi-snb-2600:[SKIP][11] ([fdo#109271]) -> [INCOMPLETE][12] 
([fdo#105411])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6199/fi-snb-2600/igt@i915_pm_...@module-reload.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13187/fi-snb-2600/igt@i915_pm_...@module-reload.html

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

  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#106387]: https://bugs.freedesktop.org/show_bug.cgi?id=106387
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602
  [fdo#108840]: https://bugs.freedesktop.org/show_bug.cgi?id=108840
  [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271


Participating hosts (51 -> 45)
--

  Additional (2): fi-kbl-7500u fi-cml-u 
  Missing(8): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan 
fi-kbl-7560u fi-byt-clapper fi-bdw-samus fi-kbl-r 


Build changes
-

  * Linux: CI_DRM_6199 -> Patchwork_13187

  CI_DRM_6199: 3c7e356549a2286539d91f191196acd734b40729 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5041: 4f2b9f5930fa33d091cf89637dc6e7f76f632a88 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13187: 8417b00f5296d653ef19eebd87960b269ee801b8 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

8417b00f5296 drm/i915/dmc: protect against reading random memory

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13187/
___
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/ehl: Add support for DPLL4 (v6)

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915/ehl: Add support for DPLL4 (v6)
URL   : https://patchwork.freedesktop.org/series/61696/
State : failure

== Summary ==

CALLscripts/checksyscalls.sh
  CALLscripts/atomic/check-atomics.sh
  DESCEND  objtool
  CHK include/generated/compile.h
  CC [M]  drivers/gpu/drm/i915/header_test_intel_dpll_mgr.o
In file included from drivers/gpu/drm/i915/header_test_intel_dpll_mgr.c:1:0:
drivers/gpu/drm/i915/intel_dpll_mgr.h:319:2: error: unknown type name 
‘intel_wakeref_t’
  intel_wakeref_t wakerefs[POWER_DOMAIN_NUM];
  ^~~
drivers/gpu/drm/i915/intel_dpll_mgr.h:319:27: error: ‘POWER_DOMAIN_NUM’ 
undeclared here (not in a function)
  intel_wakeref_t wakerefs[POWER_DOMAIN_NUM];
   ^~~~
scripts/Makefile.build:278: recipe for target 
'drivers/gpu/drm/i915/header_test_intel_dpll_mgr.o' failed
make[4]: *** [drivers/gpu/drm/i915/header_test_intel_dpll_mgr.o] Error 1
scripts/Makefile.build:489: recipe for target 'drivers/gpu/drm/i915' failed
make[3]: *** [drivers/gpu/drm/i915] Error 2
scripts/Makefile.build:489: recipe for target 'drivers/gpu/drm' failed
make[2]: *** [drivers/gpu/drm] Error 2
scripts/Makefile.build:489: recipe for target 'drivers/gpu' failed
make[1]: *** [drivers/gpu] Error 2
Makefile:1071: recipe for target 'drivers' failed
make: *** [drivers] Error 2

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

[Intel-gfx] [PATCH] drm/i915/ehl: Add support for DPLL4 (v6)

2019-06-05 Thread Vivek Kasireddy
This patch adds support for DPLL4 on EHL that include the
following restrictions:

- DPLL4 cannot be used with DDIA (combo port A internal eDP usage).
  DPLL4 can be used with other DDIs, including DDID
  (combo port A external usage).

- DPLL4 cannot be enabled when DC5 or DC6 are enabled.

- The DPLL4 enable, lock, power enabled, and power state are connected
  to the MGPLL1_ENABLE register.

v2: (suggestions from Bob Paauwe)
- Rework ehl_get_dpll() function to call intel_find_shared_dpll() and
  iterate twice: once for Combo plls and once for MG plls.

- Use MG pll funcs for DPLL4 instead of creating new ones and modify
  mg_pll_enable to include the restrictions for EHL.

v3: Fix compilation error

v4: (suggestions from Lucas and Ville)
- Treat DPLL4 as a combo phy PLL and not as MG PLL
- Disable DC states when this DPLL is being enabled
- Reuse icl_get_dpll instead of creating a separate one for EHL

v5: (suggestion from Ville)
- Refcount the DC OFF power domains during the enabling and disabling
  of this DPLL.

v6: rebase

Cc: Lucas De Marchi 
Cc: José Roberto de Souza 
Cc: Ville Syrjälä 
Cc: Matt Roper 
Signed-off-by: Vivek Kasireddy 
---
 drivers/gpu/drm/i915/intel_display_power.c | 20 +++
 drivers/gpu/drm/i915/intel_display_power.h |  6 
 drivers/gpu/drm/i915/intel_dpll_mgr.c  | 40 +++---
 drivers/gpu/drm/i915/intel_dpll_mgr.h  |  5 +++
 4 files changed, 67 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display_power.c 
b/drivers/gpu/drm/i915/intel_display_power.c
index 278a7edc94f5..fd6d0d6a285a 100644
--- a/drivers/gpu/drm/i915/intel_display_power.c
+++ b/drivers/gpu/drm/i915/intel_display_power.c
@@ -4524,6 +4524,26 @@ void intel_power_domains_resume(struct drm_i915_private 
*i915)
intel_power_domains_verify_state(i915);
 }
 
+void icl_disable_dc_states(struct drm_i915_private *dev_priv,
+  struct intel_shared_dpll *pll)
+{
+   enum intel_display_power_domain domain;
+
+   for_each_power_domain(domain, ICL_DISPLAY_DC_OFF_POWER_DOMAINS)
+   pll->wakerefs[domain] = intel_display_power_get(dev_priv,
+   domain);
+}
+
+void icl_enable_dc_states(struct drm_i915_private *dev_priv,
+ struct intel_shared_dpll *pll)
+{
+   enum intel_display_power_domain domain;
+
+   for_each_power_domain(domain, ICL_DISPLAY_DC_OFF_POWER_DOMAINS)
+   intel_display_power_put(dev_priv, domain,
+   pll->wakerefs[domain]);
+}
+
 #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM)
 
 static void intel_power_domains_dump_info(struct drm_i915_private *i915)
diff --git a/drivers/gpu/drm/i915/intel_display_power.h 
b/drivers/gpu/drm/i915/intel_display_power.h
index ff57b0a7fe59..2abaa3806ec6 100644
--- a/drivers/gpu/drm/i915/intel_display_power.h
+++ b/drivers/gpu/drm/i915/intel_display_power.h
@@ -12,6 +12,7 @@
 
 struct drm_i915_private;
 struct intel_encoder;
+struct intel_shared_dpll;
 
 enum intel_display_power_domain {
POWER_DOMAIN_DISPLAY_CORE,
@@ -285,4 +286,9 @@ void chv_phy_powergate_lanes(struct intel_encoder *encoder,
 bool chv_phy_powergate_ch(struct drm_i915_private *dev_priv, enum dpio_phy phy,
  enum dpio_channel ch, bool override);
 
+void icl_disable_dc_states(struct drm_i915_private *dev_priv,
+  struct intel_shared_dpll *pll);
+void icl_enable_dc_states(struct drm_i915_private *dev_priv,
+ struct intel_shared_dpll *pll);
+
 #endif /* __INTEL_DISPLAY_POWER_H__ */
diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.c 
b/drivers/gpu/drm/i915/intel_dpll_mgr.c
index 69787f259677..2829b37e2909 100644
--- a/drivers/gpu/drm/i915/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/intel_dpll_mgr.c
@@ -22,8 +22,8 @@
  */
 
 #include "intel_dpio_phy.h"
-#include "intel_dpll_mgr.h"
 #include "intel_drv.h"
+#include "intel_dpll_mgr.h"
 
 /**
  * DOC: Display PLLs
@@ -2806,6 +2806,12 @@ icl_get_dpll(struct intel_crtc_state *crtc_state,
if (intel_port_is_combophy(dev_priv, port)) {
min = DPLL_ID_ICL_DPLL0;
max = DPLL_ID_ICL_DPLL1;
+
+   if (IS_ELKHARTLAKE(dev_priv)) {
+   if (encoder->type != INTEL_OUTPUT_EDP)
+   max = DPLL_ID_EHL_DPLL4;
+   }
+
ret = icl_calc_dpll_state(crtc_state, encoder);
} else if (intel_port_is_tc(dev_priv, port)) {
if (encoder->type == INTEL_OUTPUT_DP_MST) {
@@ -2945,8 +2951,14 @@ static bool combo_pll_get_hw_state(struct 
drm_i915_private *dev_priv,
   struct intel_shared_dpll *pll,
   struct intel_dpll_hw_state *hw_state)
 {
-   return icl_pll_get_hw_state(dev_priv, pll, hw_state,
-   CNL_DPLL_ENABLE(pll->info->id));
+   i915_reg_t 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dmc: protect against reading random memory

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915/dmc: protect against reading random memory
URL   : https://patchwork.freedesktop.org/series/61695/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
8417b00f5296 drm/i915/dmc: protect against reading random memory
-:23: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#23: 
i915 :00:02.0: Failed to load DMC firmware 
i915/icl_dmc_ver1_07.bin. Disabling runtime power management.

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

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

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/5] drm/i915: Do not touch the PCH SSC reference if a PLL is using it

2019-06-05 Thread Patchwork
== Series Details ==

Series: series starting with [1/5] drm/i915: Do not touch the PCH SSC reference 
if a PLL is using it
URL   : https://patchwork.freedesktop.org/series/61608/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6188_full -> Patchwork_13174_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_flip@flip-vs-expired-vblank:
- shard-glk:  [PASS][1] -> [FAIL][2] ([fdo#102887] / [fdo#105363])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6188/shard-glk6/igt@kms_f...@flip-vs-expired-vblank.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13174/shard-glk1/igt@kms_f...@flip-vs-expired-vblank.html

  * igt@kms_flip_tiling@flip-y-tiled:
- shard-iclb: [PASS][3] -> [FAIL][4] ([fdo#108303])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6188/shard-iclb2/igt@kms_flip_til...@flip-y-tiled.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13174/shard-iclb6/igt@kms_flip_til...@flip-y-tiled.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render:
- shard-iclb: [PASS][5] -> [FAIL][6] ([fdo#103167]) +2 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6188/shard-iclb7/igt@kms_frontbuffer_track...@fbc-1p-primscrn-spr-indfb-draw-render.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13174/shard-iclb8/igt@kms_frontbuffer_track...@fbc-1p-primscrn-spr-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-move:
- shard-hsw:  [PASS][7] -> [SKIP][8] ([fdo#109271]) +10 similar 
issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6188/shard-hsw2/igt@kms_frontbuffer_track...@fbc-2p-scndscrn-cur-indfb-move.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13174/shard-hsw1/igt@kms_frontbuffer_track...@fbc-2p-scndscrn-cur-indfb-move.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- shard-skl:  [PASS][9] -> [INCOMPLETE][10] ([fdo#104108])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6188/shard-skl6/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-a.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13174/shard-skl5/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-a.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
- shard-iclb: [PASS][11] -> [INCOMPLETE][12] ([fdo#107713])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6188/shard-iclb7/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-b.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13174/shard-iclb3/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-b.html

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
- shard-skl:  [PASS][13] -> [FAIL][14] ([fdo#108145] / [fdo#110403])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6188/shard-skl1/igt@kms_plane_alpha_bl...@pipe-b-coverage-7efc.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13174/shard-skl4/igt@kms_plane_alpha_bl...@pipe-b-coverage-7efc.html

  * igt@kms_psr2_su@page_flip:
- shard-iclb: [PASS][15] -> [SKIP][16] ([fdo#109642])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6188/shard-iclb2/igt@kms_psr2_su@page_flip.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13174/shard-iclb5/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_cursor_render:
- shard-iclb: [PASS][17] -> [SKIP][18] ([fdo#109441]) +1 similar 
issue
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6188/shard-iclb2/igt@kms_psr@psr2_cursor_render.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13174/shard-iclb6/igt@kms_psr@psr2_cursor_render.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
- shard-apl:  [PASS][19] -> [DMESG-WARN][20] ([fdo#108566]) +1 
similar issue
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6188/shard-apl5/igt@kms_vbl...@pipe-a-ts-continuation-suspend.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13174/shard-apl6/igt@kms_vbl...@pipe-a-ts-continuation-suspend.html

  
 Possible fixes 

  * igt@kms_atomic_interruptible@universal-setplane-primary:
- shard-iclb: [INCOMPLETE][21] ([fdo#107713]) -> [PASS][22] +1 
similar issue
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6188/shard-iclb7/igt@kms_atomic_interrupti...@universal-setplane-primary.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13174/shard-iclb3/igt@kms_atomic_interrupti...@universal-setplane-primary.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
- shard-skl:  [INCOMPLETE][23] ([fdo#110741]) -> [PASS][24]
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6188/shard-skl3/igt@kms_cursor_...@pipe-b-c

[Intel-gfx] [PATCH] drm/i915/dmc: protect against reading random memory

2019-06-05 Thread Lucas De Marchi
While loading the DMC firmware we were double checking the headers made
sense, but in no place we checked that we were actually reading memory
we were supposed to. This could be wrong in case the firmware file is
truncated or malformed.

Before this patch:
# ls -l /lib/firmware/i915/icl_dmc_ver1_07.bin
-rw-r--r-- 1 root root  25716 Feb  1 12:26 icl_dmc_ver1_07.bin
# truncate -s 25700 /lib/firmware/i915/icl_dmc_ver1_07.bin
# modprobe i915
# dmesg| grep -i dmc
[drm:intel_csr_ucode_init [i915]] Loading i915/icl_dmc_ver1_07.bin
[drm] Finished loading DMC firmware i915/icl_dmc_ver1_07.bin (v1.7)

i.e. it loads random data. Now it fails like below:
[drm:intel_csr_ucode_init [i915]] Loading i915/icl_dmc_ver1_07.bin
[drm:csr_load_work_fn [i915]] *ERROR* Truncated DMC firmware, rejecting.
i915 :00:02.0: Failed to load DMC firmware 
i915/icl_dmc_ver1_07.bin. Disabling runtime power management.
i915 :00:02.0: DMC firmware homepage: 
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915

Before reading any part of the firmware file, validate the input first.

Fixes: eb805623d8b1 ("drm/i915/skl: Add support to load SKL CSR firmware.")
Cc: sta...@vger.kernel.org
Signed-off-by: Lucas De Marchi 
---

This has been extracted from the bigger series
https://patchwork.freedesktop.org/series/61016/ in a way that can be
propagated to stable.

 drivers/gpu/drm/i915/intel_csr.c | 18 ++
 1 file changed, 18 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
index 4527b9662330..bf0eebd385b9 100644
--- a/drivers/gpu/drm/i915/intel_csr.c
+++ b/drivers/gpu/drm/i915/intel_csr.c
@@ -303,10 +303,17 @@ static u32 *parse_csr_fw(struct drm_i915_private 
*dev_priv,
u32 dmc_offset = CSR_DEFAULT_FW_OFFSET, readcount = 0, nbytes;
u32 i;
u32 *dmc_payload;
+   size_t fsize;
 
if (!fw)
return NULL;
 
+   fsize = sizeof(struct intel_css_header) +
+   sizeof(struct intel_package_header) +
+   sizeof(struct intel_dmc_header);
+   if (fsize > fw->size)
+   goto error_truncated;
+
/* Extract CSS Header information*/
css_header = (struct intel_css_header *)fw->data;
if (sizeof(struct intel_css_header) !=
@@ -366,6 +373,9 @@ static u32 *parse_csr_fw(struct drm_i915_private *dev_priv,
/* Convert dmc_offset into number of bytes. By default it is in dwords*/
dmc_offset *= 4;
readcount += dmc_offset;
+   fsize += dmc_offset;
+   if (fsize > fw->size)
+   goto error_truncated;
 
/* Extract dmc_header information. */
dmc_header = (struct intel_dmc_header *)&fw->data[readcount];
@@ -397,6 +407,10 @@ static u32 *parse_csr_fw(struct drm_i915_private *dev_priv,
 
/* fw_size is in dwords, so multiplied by 4 to convert into bytes. */
nbytes = dmc_header->fw_size * 4;
+   fsize += nbytes;
+   if (fsize > fw->size)
+   goto error_truncated;
+
if (nbytes > csr->max_fw_size) {
DRM_ERROR("DMC FW too big (%u bytes)\n", nbytes);
return NULL;
@@ -410,6 +424,10 @@ static u32 *parse_csr_fw(struct drm_i915_private *dev_priv,
}
 
return memcpy(dmc_payload, &fw->data[readcount], nbytes);
+
+error_truncated:
+   DRM_ERROR("Truncated DMC firmware, rejecting.\n");
+   return NULL;
 }
 
 static void intel_csr_runtime_pm_get(struct drm_i915_private *dev_priv)
-- 
2.21.0

___
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/icl: Enable SSC for ICL using panel_use_ssc

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915/icl: Enable SSC for ICL using panel_use_ssc
URL   : https://patchwork.freedesktop.org/series/61692/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6199 -> Patchwork_13186


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13186/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@debugfs_test@read_all_entries:
- fi-cml-u2:  [PASS][1] -> [INCOMPLETE][2] ([fdo#110566])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6199/fi-cml-u2/igt@debugfs_test@read_all_entries.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13186/fi-cml-u2/igt@debugfs_test@read_all_entries.html

  * igt@gem_mmap_gtt@basic-wc:
- fi-icl-u3:  [PASS][3] -> [DMESG-WARN][4] ([fdo#107724]) +1 
similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6199/fi-icl-u3/igt@gem_mmap_...@basic-wc.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13186/fi-icl-u3/igt@gem_mmap_...@basic-wc.html

  * igt@i915_selftest@live_hangcheck:
- fi-icl-u3:  [PASS][5] -> [INCOMPLETE][6] ([fdo#107713] / 
[fdo#108569])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6199/fi-icl-u3/igt@i915_selftest@live_hangcheck.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13186/fi-icl-u3/igt@i915_selftest@live_hangcheck.html

  
 Possible fixes 

  * igt@debugfs_test@read_all_entries:
- fi-ilk-650: [DMESG-WARN][7] ([fdo#106387]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6199/fi-ilk-650/igt@debugfs_test@read_all_entries.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13186/fi-ilk-650/igt@debugfs_test@read_all_entries.html

  * igt@gem_exec_basic@basic-all:
- fi-icl-y:   [INCOMPLETE][9] ([fdo#107713]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6199/fi-icl-y/igt@gem_exec_ba...@basic-all.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13186/fi-icl-y/igt@gem_exec_ba...@basic-all.html

  * igt@gem_exec_reloc@basic-gtt-read-noreloc:
- fi-icl-u3:  [DMESG-WARN][11] ([fdo#107724]) -> [PASS][12] +1 
similar issue
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6199/fi-icl-u3/igt@gem_exec_re...@basic-gtt-read-noreloc.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13186/fi-icl-u3/igt@gem_exec_re...@basic-gtt-read-noreloc.html

  * igt@i915_selftest@live_hangcheck:
- fi-icl-dsi: [INCOMPLETE][13] ([fdo#107713] / [fdo#108569]) -> 
[PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6199/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13186/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html

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

  [fdo#106387]: https://bugs.freedesktop.org/show_bug.cgi?id=106387
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602
  [fdo#110566]: https://bugs.freedesktop.org/show_bug.cgi?id=110566


Participating hosts (51 -> 45)
--

  Additional (2): fi-kbl-7500u fi-cml-u 
  Missing(8): fi-hsw-4770r fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-kbl-7560u fi-byt-clapper fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_6199 -> Patchwork_13186

  CI_DRM_6199: 3c7e356549a2286539d91f191196acd734b40729 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5041: 4f2b9f5930fa33d091cf89637dc6e7f76f632a88 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13186: 2bbb59c67ab3183759aed3728064cd45fc2caaeb @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

2bbb59c67ab3 drm/i915/icl: Enable SSC for ICL using panel_use_ssc

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13186/
___
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/icl: Enable SSC for ICL using panel_use_ssc

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915/icl: Enable SSC for ICL using panel_use_ssc
URL   : https://patchwork.freedesktop.org/series/61692/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
2bbb59c67ab3 drm/i915/icl: Enable SSC for ICL using panel_use_ssc
-:44: WARNING:BRACES: braces {} are not necessary for single statement blocks
#44: FILE: drivers/gpu/drm/i915/intel_dpll_mgr.c:2530:
+   if (intel_panel_use_ssc(dev_priv)) {
+   cfgcr0 |= DPLL_CFGCR0_SSC_ENABLE_ICL;
+   }

-:59: CHECK:LINE_SPACING: Please use a blank line after 
function/struct/union/enum declarations
#59: FILE: drivers/gpu/drm/i915/intel_drv.h:1505:
 }
+static inline bool

-:65: CHECK:LOGICAL_CONTINUATIONS: Logical continuations should be on the 
previous line
#65: FILE: drivers/gpu/drm/i915/intel_drv.h:1511:
+   return dev_priv->vbt.lvds_use_ssc
+   && !(dev_priv->quirks & QUIRK_LVDS_SSC_DISABLE);

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

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

Re: [Intel-gfx] [PATCH] drm/i915/ehl: Support HBR3 on EHL combo PHY

2019-06-05 Thread Matt Roper
On Wed, Jun 05, 2019 at 02:51:08PM -0700, Manasi Navare wrote:
> On Wed, Jun 05, 2019 at 02:18:32PM -0700, Matt Roper wrote:
> > Unlike ICL, EHL's combo PHYs can support HBR3 data rates.  Note that
> > this just extends the upper limit; we will continue to honor the max
> > data rate specified in the VBT in cases where it is lower than HBR3.
> > 
> > Signed-off-by: Matt Roper 
> 
> Yes looks good to me.
> 
> Reviewed-by: Manasi Navare 
> 
> Manasi

Thanks for the quick review.  CI looks happy too, so pushed to dinq.


Matt

> 
> > ---
> >  drivers/gpu/drm/i915/intel_dp.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_dp.c 
> > b/drivers/gpu/drm/i915/intel_dp.c
> > index 24b56b2a76c8..b099a9dc28fd 100644
> > --- a/drivers/gpu/drm/i915/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/intel_dp.c
> > @@ -332,6 +332,7 @@ static int icl_max_source_rate(struct intel_dp 
> > *intel_dp)
> > enum port port = dig_port->base.port;
> >  
> > if (intel_port_is_combophy(dev_priv, port) &&
> > +   !IS_ELKHARTLAKE(dev_priv) &&
> > !intel_dp_is_edp(intel_dp))
> > return 54;
> >  
> > -- 
> > 2.14.5
> > 
> > ___
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
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

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/ehl: Support HBR3 on EHL combo PHY

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915/ehl: Support HBR3 on EHL combo PHY
URL   : https://patchwork.freedesktop.org/series/61690/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6198 -> Patchwork_13185


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13185/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@debugfs_test@read_all_entries:
- fi-icl-u3:  [PASS][1] -> [DMESG-WARN][2] ([fdo#107724])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6198/fi-icl-u3/igt@debugfs_test@read_all_entries.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13185/fi-icl-u3/igt@debugfs_test@read_all_entries.html

  * igt@i915_selftest@live_hangcheck:
- fi-icl-u3:  [PASS][3] -> [INCOMPLETE][4] ([fdo#107713] / 
[fdo#108569])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6198/fi-icl-u3/igt@i915_selftest@live_hangcheck.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13185/fi-icl-u3/igt@i915_selftest@live_hangcheck.html

  * igt@kms_chamelium@dp-crc-fast:
- fi-cml-u2:  [PASS][5] -> [FAIL][6] ([fdo#110627])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6198/fi-cml-u2/igt@kms_chamel...@dp-crc-fast.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13185/fi-cml-u2/igt@kms_chamel...@dp-crc-fast.html

  
 Possible fixes 

  * igt@core_auth@basic-auth:
- fi-icl-u3:  [DMESG-WARN][7] ([fdo#107724]) -> [PASS][8] +2 
similar issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6198/fi-icl-u3/igt@core_a...@basic-auth.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13185/fi-icl-u3/igt@core_a...@basic-auth.html

  * igt@gem_ctx_switch@basic-default:
- {fi-icl-guc}:   [INCOMPLETE][9] ([fdo#107713] / [fdo#108569]) -> 
[PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6198/fi-icl-guc/igt@gem_ctx_swi...@basic-default.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13185/fi-icl-guc/igt@gem_ctx_swi...@basic-default.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-icl-u2:  [FAIL][11] ([fdo#103167]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6198/fi-icl-u2/igt@kms_frontbuffer_track...@basic.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13185/fi-icl-u2/igt@kms_frontbuffer_track...@basic.html

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

  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#110627]: https://bugs.freedesktop.org/show_bug.cgi?id=110627


Participating hosts (52 -> 46)
--

  Additional (1): fi-icl-dsi 
  Missing(7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan 
fi-kbl-7560u fi-byt-clapper fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_6198 -> Patchwork_13185

  CI_DRM_6198: 5550e8de34053c54224724c876cda34db56fc15c @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5041: 4f2b9f5930fa33d091cf89637dc6e7f76f632a88 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13185: 3288b87377675b05d743dee4cf458ba48e6f3e54 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

3288b8737767 drm/i915/ehl: Support HBR3 on EHL combo PHY

== Logs ==

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

[Intel-gfx] [PATCH] drm/i915/icl: Enable SSC for ICL using panel_use_ssc

2019-06-05 Thread Aditya Swarup
To enable SSC for DPLL, we need to set the bit DPLL_CFGCR0_SSC_ENABLE_ICL
while configuring cfgcr0 register. This bit should be set only when we
are enabling SSC using kernel mod parameter panel_use_ssc.

Also, moving intel_panel_use_ssc() declaration to intel_drv.h.

Signed-off-by: Aditya Swarup 
Cc: Lucas De Marchi 
Cc: Clinton Taylor 
Cc: Jani Nikula 
---
 drivers/gpu/drm/i915/intel_display.c  | 8 
 drivers/gpu/drm/i915/intel_dpll_mgr.c | 4 
 drivers/gpu/drm/i915/intel_drv.h  | 8 
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 012ad08f38c3..34c82a17ab1b 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -7377,14 +7377,6 @@ intel_link_compute_m_n(u16 bits_per_pixel, int nlanes,
constant_n);
 }
 
-static inline bool intel_panel_use_ssc(struct drm_i915_private *dev_priv)
-{
-   if (i915_modparams.panel_use_ssc >= 0)
-   return i915_modparams.panel_use_ssc != 0;
-   return dev_priv->vbt.lvds_use_ssc
-   && !(dev_priv->quirks & QUIRK_LVDS_SSC_DISABLE);
-}
-
 static u32 pnv_dpll_compute_fp(struct dpll *dpll)
 {
return (1 << dpll->n) << 16 | dpll->m2;
diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.c 
b/drivers/gpu/drm/i915/intel_dpll_mgr.c
index 897d93537414..6c460fb81d6a 100644
--- a/drivers/gpu/drm/i915/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/intel_dpll_mgr.c
@@ -2527,6 +2527,10 @@ static bool icl_calc_dpll_state(struct intel_crtc_state 
*crtc_state,
cfgcr0 = DPLL_CFGCR0_DCO_FRACTION(pll_params.dco_fraction) |
 pll_params.dco_integer;
 
+   if (intel_panel_use_ssc(dev_priv)) {
+   cfgcr0 |= DPLL_CFGCR0_SSC_ENABLE_ICL;
+   }
+
cfgcr1 = DPLL_CFGCR1_QDIV_RATIO(pll_params.qdiv_ratio) |
 DPLL_CFGCR1_QDIV_MODE(pll_params.qdiv_mode) |
 DPLL_CFGCR1_KDIV(pll_params.kdiv) |
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 270f5bb43d9b..e9af27e841b3 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1497,6 +1497,14 @@ intel_wait_for_vblank(struct drm_i915_private *dev_priv, 
enum pipe pipe)
 {
drm_wait_one_vblank(&dev_priv->drm, pipe);
 }
+static inline bool
+intel_panel_use_ssc(struct drm_i915_private *dev_priv)
+{
+   if (i915_modparams.panel_use_ssc >= 0)
+   return i915_modparams.panel_use_ssc != 0;
+   return dev_priv->vbt.lvds_use_ssc
+   && !(dev_priv->quirks & QUIRK_LVDS_SSC_DISABLE);
+}
 static inline void
 intel_wait_for_vblank_if_active(struct drm_i915_private *dev_priv, int pipe)
 {
-- 
2.17.1

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

Re: [Intel-gfx] [PATCH] drm/i915/ehl: Support HBR3 on EHL combo PHY

2019-06-05 Thread Manasi Navare
On Wed, Jun 05, 2019 at 02:18:32PM -0700, Matt Roper wrote:
> Unlike ICL, EHL's combo PHYs can support HBR3 data rates.  Note that
> this just extends the upper limit; we will continue to honor the max
> data rate specified in the VBT in cases where it is lower than HBR3.
> 
> Signed-off-by: Matt Roper 

Yes looks good to me.

Reviewed-by: Manasi Navare 

Manasi

> ---
>  drivers/gpu/drm/i915/intel_dp.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 24b56b2a76c8..b099a9dc28fd 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -332,6 +332,7 @@ static int icl_max_source_rate(struct intel_dp *intel_dp)
>   enum port port = dig_port->base.port;
>  
>   if (intel_port_is_combophy(dev_priv, port) &&
> + !IS_ELKHARTLAKE(dev_priv) &&
>   !intel_dp_is_edp(intel_dp))
>   return 54;
>  
> -- 
> 2.14.5
> 
> ___
> 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] [PATCH] drm/i915/ehl: Support HBR3 on EHL combo PHY

2019-06-05 Thread Matt Roper
Unlike ICL, EHL's combo PHYs can support HBR3 data rates.  Note that
this just extends the upper limit; we will continue to honor the max
data rate specified in the VBT in cases where it is lower than HBR3.

Signed-off-by: Matt Roper 
---
 drivers/gpu/drm/i915/intel_dp.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 24b56b2a76c8..b099a9dc28fd 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -332,6 +332,7 @@ static int icl_max_source_rate(struct intel_dp *intel_dp)
enum port port = dig_port->base.port;
 
if (intel_port_is_combophy(dev_priv, port) &&
+   !IS_ELKHARTLAKE(dev_priv) &&
!intel_dp_is_edp(intel_dp))
return 54;
 
-- 
2.14.5

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

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

2019-06-05 Thread Sean Paul

Hi Da.*,
Our slow release cycle continues, only 2 contributors since last time! The set
from Helen avoids blocking in async commits and Lucas ensures the sg list is
unmapped with the udmabuf.

drm-misc-fixes-2019-06-05:
- Allow fb changes in async commits (fixes igt failures) (Helen)
- Actually unmap the scatterlist when unmapping udmabuf (Lucas)

Cc: Lucas Stach 
Cc: Helen Koike 

Cheers, Sean


The following changes since commit 2a3e0b716296a504d9e65fea7acb379c86fe4283:

  Merge tag 'imx-drm-fixes-2019-05-29' of 
git://git.pengutronix.de/git/pza/linux into drm-fixes (2019-05-31 09:15:25 
+1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-fixes-2019-06-05

for you to fetch changes up to 283f1e383e91d96fe652fad549537ae15cf31d60:

  udmabuf: actually unmap the scatterlist (2019-06-05 10:41:17 +0200)


- Allow fb changes in async commits (fixes igt failures) (Helen)
- Actually unmap the scatterlist when unmapping udmabuf (Lucas)

Cc: Lucas Stach 
Cc: Helen Koike 


Helen Koike (5):
  drm/rockchip: fix fb references in async update
  drm/amd: fix fb references in async update
  drm/msm: fix fb references in async update
  drm/vc4: fix fb references in async update
  drm: don't block fb changes for async plane updates

Lucas Stach (1):
  udmabuf: actually unmap the scatterlist

 drivers/dma-buf/udmabuf.c |  1 +
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  3 +-
 drivers/gpu/drm/drm_atomic_helper.c   | 22 +-
 drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c|  4 ++
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c   | 51 ---
 drivers/gpu/drm/vc4/vc4_plane.c   |  2 +-
 include/drm/drm_modeset_helper_vtables.h  |  8 
 7 files changed, 53 insertions(+), 38 deletions(-)

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

Re: [Intel-gfx] [igt-dev] [PATCH i-g-t] i915/gem_create: Do not build create-clear for MIPS

2019-06-05 Thread Guillaume Tucker
On 03/04/2019 08:25, Guillaume Tucker wrote:
> On 02/04/2019 09:35, Petri Latvala wrote:
>> On Mon, Apr 01, 2019 at 04:39:24PM +0200, Guillaume Tucker wrote:
>>> The MIPS architecture doesn't provide the hardware atomics that are
>>> required for the "create-clear" sub-test such as
>>> __sync_add_and_fetch().  As a simple and pragmatic solution, disable
>>> this sub-test when building for MIPS.  A better approach would be to
>>> add a fallback implementation for these operations.
>>>
>>> Fixes: 6727e17c00b2 ("i915/gem_create: Verify that all new objects are 
>>> clear")
>>> Signed-off-by: Guillaume Tucker 
>>> ---
>>>  tests/i915/gem_create.c | 4 
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/tests/i915/gem_create.c b/tests/i915/gem_create.c
>>> index 2a861ca8a7ec..8a48496e6c19 100644
>>> --- a/tests/i915/gem_create.c
>>> +++ b/tests/i915/gem_create.c
>>> @@ -142,6 +142,7 @@ static void invalid_nonaligned_size(int fd)
>>> gem_close(fd, handle);
>>>  }
>>>  
>>> +#if !defined(__mips__) /* MIPS doesn't provide the required hardware 
>>> atomics */
>>>  static uint64_t get_npages(uint64_t *global, uint64_t npages)
>>>  {
>>> uint64_t try, old, max;
>>> @@ -208,6 +209,7 @@ static void always_clear(int i915, int timeout)
>>> for (int i = 0; i < ncpus; i++)
>>> pthread_join(thread[i], NULL);
>>>  }
>>> +#endif /* !defined(__mips__) */
>>>  
>>>  igt_main
>>>  {
>>> @@ -231,6 +233,8 @@ igt_main
>>> igt_subtest("create-invalid-nonaligned")
>>> invalid_nonaligned_size(fd);
>>>  
>>> +#if !defined(__mips__)
>>> igt_subtest("create-clear")
>>> always_clear(fd, 30);
>>> +#endif
>>>  }
>>
>>
>> It's a bit ugly. I wonder how much work a fallback mechanism would be?
> 
> Sorry I should have sent this as RFC.
> 
>> The test is i915 specific and using those on non-x86 architectures
>> sounds silly. We could limit building tests/i915/* only if
>> host_machine.cpu_family() is x86 or x86_64. But that requires
>> revisiting this issue if ever the day comes when i915 can be used on
>> other architectures *cough*.
> 
> Right, I thought it might not be worth implementing fallback
> functions if there is no MIPS hardware on which this test can be
> run.  Still it would be a shame to leave i-g-t failing to build
> on MIPS.
> 
>> Apropos, compile-testing on MIPS in gitlab-CI?
> 
> This issue was actually hit while building the KernelCI root file
> system with i-g-t tests.  We're starting to add some MIPS
> platforms, so running the generic DRM/KMS tests on them might
> start to make sense at some point (cc khilman).
> 
> And yes I guess it seems worth considering adding MIPS to
> Gitlab-CI as it only appears to be covering x86, armhf and
> arm64 (although I did fix an armhf build issue a few weeks ago).
> 
>> A compile-tested-only fallback mechanism suggestion, and a bad spot
>> for placing the fallback functions:
> 
> Thanks, I agree that does look like a sustainable way forward.
> We don't quite have a MIPS platform to test that yet in KernelCI,
> so hopefully QEMU can be used to test a fallback implementation.
> 
> I guess adding placeholder functions as in your example with
> igt_assert_f() statements would just add some technical debt with
> little added benefit, so I'll work on a v2 with something that
> works.  Meanwhile we'll just skip i-g-t KernelCI builds on MIPS.
> 
>> diff --git a/meson.build b/meson.build
>> index 557400a5..0552e858 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -246,6 +246,9 @@ endif
>>  have = cc.has_function('memfd_create', prefix : '''#include 
>> ''', args : '-D_GNU_SOURCE')
>>  config.set10('HAVE_MEMFD_CREATE', have)
>>  
>> +have_atomics = cc.compiles('void f() { int x, y; __sync_add_and_fetch(&x, 
>> y); }')
>> +config.set10('HAVE_BUILTIN_ATOMICS', have_atomics)
>> +
>>  add_project_arguments('-D_GNU_SOURCE', language : 'c')
>>  add_project_arguments('-include', 'config.h', language : 'c')
>>  
>> diff --git a/tests/i915/gem_create.c b/tests/i915/gem_create.c
>> index 2a861ca8..615bb475 100644
>> --- a/tests/i915/gem_create.c
>> +++ b/tests/i915/gem_create.c
>> @@ -62,6 +62,18 @@ IGT_TEST_DESCRIPTION("This is a test for the extended & 
>> old gem_create ioctl,"
>>   " that includes allocation of object from stolen memory"
>>   " and shmem.");
>>  
>> +#if !HAVE_BUILTIN_ATOMICS
>> +int __sync_add_and_fetch(void *ptr, uint64_t val)
>> +{
>> +  igt_assert_f(false, "Don't have builtin atomics\n");
>> +}
>> +
>> +int __sync_val_compare_and_swap(void *ptr, uint64_t old, uint64_t new)
>> +{
>> +  igt_assert_f(false, "Don't have builtin atomics\n");
>> +}
>> +#endif
>> +
>>  #define CLEAR(s) memset(&s, 0, sizeof(s))
>>  #define PAGE_SIZE 4096

Just to close this thread, I sent some patches earlier this week
to fix the build on MIPS using the more recent __atomic_*
functions from libatomic as they do have the 64-bit
implementations for MIPS that were missing for the __sync_*
functions (tested w

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/crc-debugfs: User irqsafe spinlock in drm_crtc_add_crc_entry

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/crc-debugfs: User irqsafe spinlock in drm_crtc_add_crc_entry
URL   : https://patchwork.freedesktop.org/series/61687/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6197 -> Patchwork_13184


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13184/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_create@basic-files:
- fi-icl-dsi: [PASS][1] -> [INCOMPLETE][2] ([fdo#107713] / 
[fdo#109100])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6197/fi-icl-dsi/igt@gem_ctx_cre...@basic-files.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13184/fi-icl-dsi/igt@gem_ctx_cre...@basic-files.html

  
 Possible fixes 

  * igt@gem_basic@bad-close:
- {fi-icl-guc}:   [INCOMPLETE][3] ([fdo#107713]) -> [PASS][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6197/fi-icl-guc/igt@gem_ba...@bad-close.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13184/fi-icl-guc/igt@gem_ba...@bad-close.html

  * igt@gem_ctx_create@basic:
- fi-icl-u3:  [DMESG-WARN][5] ([fdo#107724]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6197/fi-icl-u3/igt@gem_ctx_cre...@basic.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13184/fi-icl-u3/igt@gem_ctx_cre...@basic.html

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

  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100


Participating hosts (53 -> 46)
--

  Missing(7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan 
fi-kbl-7560u fi-byt-clapper fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_6197 -> Patchwork_13184

  CI_DRM_6197: 68289d6c8db69b6b6571f191b85b7658bf69c3ee @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5041: 4f2b9f5930fa33d091cf89637dc6e7f76f632a88 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13184: 91ba38231fc18cbb9afdf22a9ba105a44ed8448b @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

91ba38231fc1 drm/crc-debugfs: User irqsafe spinlock in drm_crtc_add_crc_entry

== Logs ==

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

[Intel-gfx] [PATCH i-g-t] gitlab-ci: add build for MIPS

2019-06-05 Thread Guillaume Tucker
Add Docker image and Gitlab CI steps to run builds for the MIPS
architecture using Debian Buster.

Signed-off-by: Guillaume Tucker 
---
 .gitlab-ci.yml | 28 
 Dockerfile.debian-mips | 38 ++
 meson-cross-mips.txt   | 12 
 3 files changed, 78 insertions(+)
 create mode 100644 Dockerfile.debian-mips
 create mode 100644 meson-cross-mips.txt

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 771143a9ea95..e390f8f472d5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -90,6 +90,17 @@ build:tests-debian-meson-arm64:
 paths:
   - build
 
+build:tests-debian-meson-mips:
+  image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips:latest
+  stage: build
+  script:
+- export PKG_CONFIG_PATH=/usr/lib/mips-linux-gnu/pkgconfig/
+- meson --cross-file meson-cross-mips.txt build
+- ninja -C build
+  artifacts:
+paths:
+  - build
+
 build:tests-debian-autotools:
   image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian:latest
   stage: build
@@ -221,6 +232,23 @@ containers:igt-debian-arm64:
 - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64 -f 
Dockerfile.debian-arm64 .
 - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64
 
+containers:igt-debian-mips:
+  stage: containers
+  image: docker:stable
+  only:
+changes:
+  - Dockerfile.debian-mips
+  - .gitlab-ci.yml
+  services:
+- docker:dind
+  variables:
+DOCKER_HOST: tcp://docker:2375
+DOCKER_DRIVER: overlay2
+  script:
+- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
+- docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips -f 
Dockerfile.debian-mips .
+- docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-mips
+
 containers:igt-fedora:
   stage: containers
   image: docker:stable
diff --git a/Dockerfile.debian-mips b/Dockerfile.debian-mips
new file mode 100644
index ..2612b7b148e3
--- /dev/null
+++ b/Dockerfile.debian-mips
@@ -0,0 +1,38 @@
+FROM debian:buster
+
+RUN apt-get update
+RUN apt-get install -y \
+   flex \
+   bison \
+   pkg-config \
+   x11proto-dri2-dev \
+   python-docutils \
+   valgrind \
+   peg
+
+RUN dpkg --add-architecture mips
+RUN apt-get update
+RUN apt-get install -y \
+   gcc-mips-linux-gnu \
+   libpciaccess-dev:mips \
+   libkmod-dev:mips \
+   libprocps-dev:mips \
+   libunwind-dev:mips \
+   libdw-dev:mips \
+   zlib1g-dev:mips \
+   liblzma-dev:mips \
+   libcairo-dev:mips \
+   libpixman-1-dev:mips \
+   libudev-dev:mips \
+   libgsl-dev:mips \
+   libasound2-dev:mips \
+   libjson-c-dev:mips \
+   libcurl4-openssl-dev:mips \
+   libxrandr-dev:mips \
+   libxv-dev:mips
+
+RUN apt-get install -y \
+   meson \
+   libdrm-dev:mips \
+   qemu-user \
+   qemu-user-static
diff --git a/meson-cross-mips.txt b/meson-cross-mips.txt
new file mode 100644
index ..6350d677e0bc
--- /dev/null
+++ b/meson-cross-mips.txt
@@ -0,0 +1,12 @@
+[binaries]
+c = '/usr/bin/mips-linux-gnu-gcc'
+ar = '/usr/bin/mips-linux-gnu-gcc-ar'
+strip = '/usr/bin/mips-linux-gnu-strip'
+pkgconfig = 'pkg-config'
+exe_wrapper = 'qemu-mips'
+
+[host_machine]
+system = 'linux'
+cpu_family = 'mips'
+cpu = 'mips'
+endian = 'big'
-- 
2.20.1

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

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/crc-debugfs: User irqsafe spinlock in drm_crtc_add_crc_entry

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/crc-debugfs: User irqsafe spinlock in drm_crtc_add_crc_entry
URL   : https://patchwork.freedesktop.org/series/61687/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
91ba38231fc1 drm/crc-debugfs: User irqsafe spinlock in drm_crtc_add_crc_entry
-:41: WARNING:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch 
author 'Daniel Vetter '

total: 0 errors, 1 warnings, 0 checks, 18 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: Don't check uv_wm in skl_plane_wm_equals() (rev2)

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Don't check uv_wm in skl_plane_wm_equals() (rev2)
URL   : https://patchwork.freedesktop.org/series/58281/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6187_full -> Patchwork_13173_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Possible new issues
---

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

### IGT changes ###

 Suppressed 

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

  * {igt@gem_ctx_engines@independent}:
- shard-glk:  [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-glk3/igt@gem_ctx_engi...@independent.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13173/shard-glk8/igt@gem_ctx_engi...@independent.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@bcs0-s3:
- shard-apl:  [PASS][3] -> [DMESG-WARN][4] ([fdo#108566]) +3 
similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-apl6/igt@gem_ctx_isolat...@bcs0-s3.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13173/shard-apl7/igt@gem_ctx_isolat...@bcs0-s3.html

  * igt@gem_mmap_gtt@forked-medium-copy-odd:
- shard-iclb: [PASS][5] -> [INCOMPLETE][6] ([fdo#107713])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb4/igt@gem_mmap_...@forked-medium-copy-odd.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13173/shard-iclb5/igt@gem_mmap_...@forked-medium-copy-odd.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
- shard-hsw:  [PASS][7] -> [FAIL][8] ([fdo#105767])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-hsw8/igt@kms_cursor_leg...@2x-long-cursor-vs-flip-legacy.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13173/shard-hsw6/igt@kms_cursor_leg...@2x-long-cursor-vs-flip-legacy.html

  * igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
- shard-glk:  [PASS][9] -> [FAIL][10] ([fdo#106509] / [fdo#107409])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-glk7/igt@kms_cursor_leg...@2x-nonblocking-modeset-vs-cursor-atomic.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13173/shard-glk3/igt@kms_cursor_leg...@2x-nonblocking-modeset-vs-cursor-atomic.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#109349])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb2/igt@kms_dp_...@basic-dsc-enable-edp.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13173/shard-iclb3/igt@kms_dp_...@basic-dsc-enable-edp.html

  * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset:
- shard-hsw:  [PASS][13] -> [SKIP][14] ([fdo#109271]) +32 similar 
issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-hsw5/igt@kms_f...@2x-flip-vs-dpms-off-vs-modeset.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13173/shard-hsw1/igt@kms_f...@2x-flip-vs-dpms-off-vs-modeset.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite:
- shard-iclb: [PASS][15] -> [FAIL][16] ([fdo#103167]) +2 similar 
issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb3/igt@kms_frontbuffer_track...@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13173/shard-iclb7/igt@kms_frontbuffer_track...@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl:  [PASS][17] -> [FAIL][18] ([fdo#108145] / [fdo#110403])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-skl2/igt@kms_plane_alpha_bl...@pipe-c-coverage-7efc.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13173/shard-skl6/igt@kms_plane_alpha_bl...@pipe-c-coverage-7efc.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: [PASS][19] -> [SKIP][20] ([fdo#109441]) +2 similar 
issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13173/shard-iclb8/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_setmode@basic:
- shard-kbl:  [PASS][21] -> [FAIL][22] ([fdo#99912])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-kbl1/igt@kms_setm...@basic.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13173/shard-kbl7/igt@kms_setm...@basic.html

  
 Possible fixes 

  * {igt@gem_ctx_param@vm}:
- shard-hsw:  [DMESG-WARN][23] ([fdo#110836]) -> 

[Intel-gfx] [PATCH] drm/crc-debugfs: User irqsafe spinlock in drm_crtc_add_crc_entry

2019-06-05 Thread Daniel Vetter
We can be called from any context, we need to be prepared.

Noticed this while hacking on vkms, which calls this function from a
normal worker. Which really upsets lockdep.

Cc: Rodrigo Siqueira 
Cc: Tomeu Vizoso 
Cc: Emil Velikov 
Cc: Benjamin Gaignard 
Signed-off-by: Daniel Vetter 
---
 drivers/gpu/drm/drm_debugfs_crc.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/drm_debugfs_crc.c 
b/drivers/gpu/drm/drm_debugfs_crc.c
index 585169f0dcc5..7f35b5ba1924 100644
--- a/drivers/gpu/drm/drm_debugfs_crc.c
+++ b/drivers/gpu/drm/drm_debugfs_crc.c
@@ -396,8 +396,9 @@ int drm_crtc_add_crc_entry(struct drm_crtc *crtc, bool 
has_frame,
struct drm_crtc_crc *crc = &crtc->crc;
struct drm_crtc_crc_entry *entry;
int head, tail;
+   unsigned long flags;
 
-   spin_lock(&crc->lock);
+   spin_lock_irqsave(&crc->lock, flags);
 
/* Caller may not have noticed yet that userspace has stopped reading */
if (!crc->entries) {
@@ -428,7 +429,7 @@ int drm_crtc_add_crc_entry(struct drm_crtc *crtc, bool 
has_frame,
head = (head + 1) & (DRM_CRC_ENTRIES_NR - 1);
crc->head = head;
 
-   spin_unlock(&crc->lock);
+   spin_unlock_irqrestore(&crc->lock, flags);
 
wake_up_interruptible(&crc->wq);
 
-- 
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: failure for drm/i915/ehl: Add support for DPLL4 (v5)

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915/ehl: Add support for DPLL4 (v5)
URL   : https://patchwork.freedesktop.org/series/61684/
State : failure

== Summary ==

Applying: drm/i915/ehl: Add support for DPLL4 (v5)
.git/rebase-apply/patch:146: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Using index info to reconstruct a base tree...
M   drivers/gpu/drm/i915/intel_dpll_mgr.c
M   drivers/gpu/drm/i915/intel_dpll_mgr.h
M   drivers/gpu/drm/i915/intel_runtime_pm.c
M   drivers/gpu/drm/i915/intel_runtime_pm.h
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_runtime_pm.h
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_runtime_pm.h
Auto-merging drivers/gpu/drm/i915/intel_runtime_pm.c
Auto-merging drivers/gpu/drm/i915/intel_dpll_mgr.h
Auto-merging drivers/gpu/drm/i915/intel_dpll_mgr.c
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch' to see the failed patch
Patch failed at 0001 drm/i915/ehl: Add support for DPLL4 (v5)
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

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

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915/dsi: Move logging of DSI VBT parameters to a helper function

2019-06-05 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm/i915/dsi: Move logging of DSI VBT 
parameters to a helper function
URL   : https://patchwork.freedesktop.org/series/61679/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6196 -> Patchwork_13182


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13182/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_selftest@live_evict:
- fi-bsw-kefka:   [PASS][1] -> [DMESG-WARN][2] ([fdo#107709])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6196/fi-bsw-kefka/igt@i915_selftest@live_evict.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13182/fi-bsw-kefka/igt@i915_selftest@live_evict.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-icl-dsi: [PASS][3] -> [FAIL][4] ([fdo#103167])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6196/fi-icl-dsi/igt@kms_frontbuffer_track...@basic.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13182/fi-icl-dsi/igt@kms_frontbuffer_track...@basic.html

  * igt@prime_vgem@basic-fence-flip:
- fi-icl-u3:  [PASS][5] -> [DMESG-WARN][6] ([fdo#107724]) +1 
similar issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6196/fi-icl-u3/igt@prime_v...@basic-fence-flip.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13182/fi-icl-u3/igt@prime_v...@basic-fence-flip.html

  
 Possible fixes 

  * igt@i915_pm_rpm@module-reload:
- fi-skl-6770hq:  [FAIL][7] ([fdo#108511]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6196/fi-skl-6770hq/igt@i915_pm_...@module-reload.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13182/fi-skl-6770hq/igt@i915_pm_...@module-reload.html

  * igt@kms_addfb_basic@basic:
- fi-icl-u3:  [DMESG-WARN][9] ([fdo#107724]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6196/fi-icl-u3/igt@kms_addfb_ba...@basic.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13182/fi-icl-u3/igt@kms_addfb_ba...@basic.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-hsw-peppy:   [DMESG-WARN][11] ([fdo#102614]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6196/fi-hsw-peppy/igt@kms_frontbuffer_track...@basic.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13182/fi-hsw-peppy/igt@kms_frontbuffer_track...@basic.html

  
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#107709]: https://bugs.freedesktop.org/show_bug.cgi?id=107709
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511


Participating hosts (52 -> 46)
--

  Additional (1): fi-cfl-guc 
  Missing(7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan 
fi-kbl-7560u fi-byt-clapper fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_6196 -> Patchwork_13182

  CI_DRM_6196: 7a984cf09665b9ef4c63e82a8551bdde5da229ae @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5040: f190ab5dcd3fa52f4b47bc28c01bcfbbdc26 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13182: 9787f959f37c9f3324dfae43e4c2f0080a553f73 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

9787f959f37c drm/i915/dsi: Read back pclk set by GOP and use that as pclk (v3)
c48843171c41 drm/i915/dsi: Move vlv/icl_dphy_param_init call out of 
intel_dsi_vbt_init (v2)
e5829ea35195 drm/i915/dsi: Move logging of DSI VBT parameters to a helper 
function

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13182/
___
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/gtt: Replace struct_mutex serialisation for allocation (rev2)

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915/gtt: Replace struct_mutex serialisation for allocation (rev2)
URL   : https://patchwork.freedesktop.org/series/61533/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6187_full -> Patchwork_13172_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#109349])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb2/igt@kms_dp_...@basic-dsc-enable-edp.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13172/shard-iclb5/igt@kms_dp_...@basic-dsc-enable-edp.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite:
- shard-hsw:  [PASS][3] -> [SKIP][4] ([fdo#109271]) +25 similar 
issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-hsw4/igt@kms_frontbuffer_track...@fbc-2p-primscrn-cur-indfb-draw-pwrite.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13172/shard-hsw1/igt@kms_frontbuffer_track...@fbc-2p-primscrn-cur-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-shrfb-fliptrack:
- shard-iclb: [PASS][5] -> [FAIL][6] ([fdo#103167]) +4 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb5/igt@kms_frontbuffer_track...@fbcpsr-1p-shrfb-fliptrack.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13172/shard-iclb5/igt@kms_frontbuffer_track...@fbcpsr-1p-shrfb-fliptrack.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl:  [PASS][7] -> [FAIL][8] ([fdo#108145] / [fdo#110403])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-skl2/igt@kms_plane_alpha_bl...@pipe-c-coverage-7efc.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13172/shard-skl1/igt@kms_plane_alpha_bl...@pipe-c-coverage-7efc.html

  * igt@kms_psr@psr2_cursor_plane_move:
- shard-iclb: [PASS][9] -> [SKIP][10] ([fdo#109441]) +1 similar 
issue
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13172/shard-iclb5/igt@kms_psr@psr2_cursor_plane_move.html

  * igt@kms_setmode@basic:
- shard-apl:  [PASS][11] -> [FAIL][12] ([fdo#99912])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-apl3/igt@kms_setm...@basic.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13172/shard-apl2/igt@kms_setm...@basic.html
- shard-kbl:  [PASS][13] -> [FAIL][14] ([fdo#99912])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-kbl1/igt@kms_setm...@basic.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13172/shard-kbl7/igt@kms_setm...@basic.html

  * igt@kms_sysfs_edid_timing:
- shard-hsw:  [PASS][15] -> [FAIL][16] ([fdo#100047])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-hsw4/igt@kms_sysfs_edid_timing.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13172/shard-hsw1/igt@kms_sysfs_edid_timing.html

  
 Possible fixes 

  * igt@gem_softpin@noreloc-s3:
- shard-skl:  [INCOMPLETE][17] ([fdo#104108]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-skl5/igt@gem_soft...@noreloc-s3.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13172/shard-skl8/igt@gem_soft...@noreloc-s3.html

  * igt@kms_busy@extended-modeset-hang-newfb-render-a:
- shard-hsw:  [INCOMPLETE][19] ([fdo#103540]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-hsw4/igt@kms_b...@extended-modeset-hang-newfb-render-a.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13172/shard-hsw2/igt@kms_b...@extended-modeset-hang-newfb-render-a.html

  * igt@kms_draw_crc@draw-method-xrgb2101010-blt-untiled:
- shard-snb:  [SKIP][21] ([fdo#109271]) -> [PASS][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-snb7/igt@kms_draw_...@draw-method-xrgb2101010-blt-untiled.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13172/shard-snb6/igt@kms_draw_...@draw-method-xrgb2101010-blt-untiled.html

  * igt@kms_flip@2x-flip-vs-wf_vblank-interruptible:
- shard-hsw:  [SKIP][23] ([fdo#109271]) -> [PASS][24] +1 similar 
issue
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-hsw1/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13172/shard-hsw6/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
- shard-iclb: [FAIL][25] ([fdo#1

[Intel-gfx] [PATCH] drm/i915/ehl: Add support for DPLL4 (v5)

2019-06-05 Thread Vivek Kasireddy
This patch adds support for DPLL4 on EHL that include the
following restrictions:

- DPLL4 cannot be used with DDIA (combo port A internal eDP usage).
  DPLL4 can be used with other DDIs, including DDID
  (combo port A external usage).

- DPLL4 cannot be enabled when DC5 or DC6 are enabled.

- The DPLL4 enable, lock, power enabled, and power state are connected
  to the MGPLL1_ENABLE register.

v2: (suggestions from Bob Paauwe)
- Rework ehl_get_dpll() function to call intel_find_shared_dpll() and
  iterate twice: once for Combo plls and once for MG plls.

- Use MG pll funcs for DPLL4 instead of creating new ones and modify
  mg_pll_enable to include the restrictions for EHL.

v3: Fix compilation error

v4: (suggestions from Lucas and Ville)
- Treat DPLL4 as a combo phy PLL and not as MG PLL
- Disable DC states when this DPLL is being enabled
- Reuse icl_get_dpll instead of creating a separate one for EHL

v5: (suggestion from Ville)
- Refcount the DC OFF power domains during the enabling and disabling
  of this DPLL.

Cc: Lucas De Marchi 
Cc: José Roberto de Souza 
Cc: Ville Syrjälä 
Cc: Matt Roper 
Signed-off-by: Vivek Kasireddy 
---
 drivers/gpu/drm/i915/intel_dpll_mgr.c   | 40 ++---
 drivers/gpu/drm/i915/intel_dpll_mgr.h   |  5 
 drivers/gpu/drm/i915/intel_runtime_pm.c | 21 +
 drivers/gpu/drm/i915/intel_runtime_pm.h |  5 
 4 files changed, 67 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.c 
b/drivers/gpu/drm/i915/intel_dpll_mgr.c
index 897d93537414..6d89d231b33d 100644
--- a/drivers/gpu/drm/i915/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/intel_dpll_mgr.c
@@ -22,8 +22,8 @@
  */
 
 #include "intel_dpio_phy.h"
-#include "intel_dpll_mgr.h"
 #include "intel_drv.h"
+#include "intel_dpll_mgr.h"
 
 /**
  * DOC: Display PLLs
@@ -2806,6 +2806,12 @@ icl_get_dpll(struct intel_crtc_state *crtc_state,
if (intel_port_is_combophy(dev_priv, port)) {
min = DPLL_ID_ICL_DPLL0;
max = DPLL_ID_ICL_DPLL1;
+
+   if (IS_ELKHARTLAKE(dev_priv)) {
+   if (encoder->type != INTEL_OUTPUT_EDP)
+   max = DPLL_ID_EHL_DPLL4;
+   }
+
ret = icl_calc_dpll_state(crtc_state, encoder);
} else if (intel_port_is_tc(dev_priv, port)) {
if (encoder->type == INTEL_OUTPUT_DP_MST) {
@@ -2945,8 +2951,14 @@ static bool combo_pll_get_hw_state(struct 
drm_i915_private *dev_priv,
   struct intel_shared_dpll *pll,
   struct intel_dpll_hw_state *hw_state)
 {
-   return icl_pll_get_hw_state(dev_priv, pll, hw_state,
-   CNL_DPLL_ENABLE(pll->info->id));
+   i915_reg_t enable_reg = CNL_DPLL_ENABLE(pll->info->id);
+
+   if (IS_ELKHARTLAKE(dev_priv) &&
+   pll->info->id == DPLL_ID_EHL_DPLL4) {
+   enable_reg = MG_PLL_ENABLE(0);
+   }
+
+   return icl_pll_get_hw_state(dev_priv, pll, hw_state, enable_reg);
 }
 
 static bool tbt_pll_get_hw_state(struct drm_i915_private *dev_priv,
@@ -3057,6 +3069,14 @@ static void combo_pll_enable(struct drm_i915_private 
*dev_priv,
 {
i915_reg_t enable_reg = CNL_DPLL_ENABLE(pll->info->id);
 
+   if (IS_ELKHARTLAKE(dev_priv) &&
+   pll->info->id == DPLL_ID_EHL_DPLL4) {
+   enable_reg = MG_PLL_ENABLE(0);
+
+   /* Need to disable DC states when this DPLL is enabled. */
+   icl_disable_dc_states(dev_priv, pll);
+   }
+
icl_pll_power_enable(dev_priv, pll, enable_reg);
 
icl_dpll_write(dev_priv, pll);
@@ -3152,7 +3172,18 @@ static void icl_pll_disable(struct drm_i915_private 
*dev_priv,
 static void combo_pll_disable(struct drm_i915_private *dev_priv,
  struct intel_shared_dpll *pll)
 {
-   icl_pll_disable(dev_priv, pll, CNL_DPLL_ENABLE(pll->info->id));
+   i915_reg_t enable_reg = CNL_DPLL_ENABLE(pll->info->id);
+
+   if (IS_ELKHARTLAKE(dev_priv) &&
+   pll->info->id == DPLL_ID_EHL_DPLL4) {
+   enable_reg = MG_PLL_ENABLE(0);
+   icl_pll_disable(dev_priv, pll, enable_reg);
+
+   icl_enable_dc_states(dev_priv, pll);
+   return;
+   }
+
+   icl_pll_disable(dev_priv, pll, enable_reg);
 }
 
 static void tbt_pll_disable(struct drm_i915_private *dev_priv,
@@ -3230,6 +3261,7 @@ static const struct intel_dpll_mgr icl_pll_mgr = {
 static const struct dpll_info ehl_plls[] = {
{ "DPLL 0", &combo_pll_funcs, DPLL_ID_ICL_DPLL0, 0 },
{ "DPLL 1", &combo_pll_funcs, DPLL_ID_ICL_DPLL1, 0 },
+   { "DPLL 4", &combo_pll_funcs, DPLL_ID_EHL_DPLL4, 0 },
{ },
 };
 
diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.h 
b/drivers/gpu/drm/i915/intel_dpll_mgr.h
index 8835dd20f1d2..5a70134f539f 100644
--- a/drivers/gpu/drm/i915/intel_dpll_mgr.h
+++ b/drivers/gpu/drm/i915/intel_dpll_mgr.h
@@ -117,6 +117,10 @@ enum

Re: [Intel-gfx] [PATCH 2/3] drm/i915/dsi: Move vlv/icl_dphy_param_init call out of intel_dsi_vbt_init (v2)

2019-06-05 Thread Ville Syrjälä
On Wed, Jun 05, 2019 at 08:17:34PM +0200, Hans de Goede wrote:
> The vlv/icl_dphy_param_init calls do various calculations to set dphy
> parameters based on the pclk.
> 
> Move the calling of vlv/icl_dphy_param_init to vlv_dsi_init to give
> vlv_dsi_init a chance to tweak the pclk before these calculations are done.
> 
> Changes in v2:
> -Also moves the icl and vlv specific dphy_param_init functions from the
>  generic intel_dsi_vbt.c file into the icl_ and vlv_dsi.c specific files.
> 
> Note icl_dphy_param_init() and vlv_dphy_param_init() are only moved,
> otherwise they are completely unchanged.
> 
> Signed-off-by: Hans de Goede 

Reviewed-by: Ville Syrjälä 

> ---
>  drivers/gpu/drm/i915/icl_dsi.c   | 108 ++
>  drivers/gpu/drm/i915/intel_dsi.h |   1 +
>  drivers/gpu/drm/i915/intel_dsi_vbt.c | 282 +--
>  drivers/gpu/drm/i915/vlv_dsi.c   | 170 
>  4 files changed, 280 insertions(+), 281 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/icl_dsi.c b/drivers/gpu/drm/i915/icl_dsi.c
> index 9d962ea1e635..511c76e788ef 100644
> --- a/drivers/gpu/drm/i915/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/icl_dsi.c
> @@ -1363,6 +1363,113 @@ static const struct mipi_dsi_host_ops 
> gen11_dsi_host_ops = {
>   .transfer = gen11_dsi_host_transfer,
>  };
>  
> +#define ICL_PREPARE_CNT_MAX  0x7
> +#define ICL_CLK_ZERO_CNT_MAX 0xf
> +#define ICL_TRAIL_CNT_MAX0x7
> +#define ICL_TCLK_PRE_CNT_MAX 0x3
> +#define ICL_TCLK_POST_CNT_MAX0x7
> +#define ICL_HS_ZERO_CNT_MAX  0xf
> +#define ICL_EXIT_ZERO_CNT_MAX0x7
> +
> +static void icl_dphy_param_init(struct intel_dsi *intel_dsi)
> +{
> + struct drm_device *dev = intel_dsi->base.base.dev;
> + struct drm_i915_private *dev_priv = to_i915(dev);
> + struct mipi_config *mipi_config = dev_priv->vbt.dsi.config;
> + u32 tlpx_ns;
> + u32 prepare_cnt, exit_zero_cnt, clk_zero_cnt, trail_cnt;
> + u32 ths_prepare_ns, tclk_trail_ns;
> + u32 hs_zero_cnt;
> + u32 tclk_pre_cnt, tclk_post_cnt;
> +
> + tlpx_ns = intel_dsi_tlpx_ns(intel_dsi);
> +
> + tclk_trail_ns = max(mipi_config->tclk_trail, mipi_config->ths_trail);
> + ths_prepare_ns = max(mipi_config->ths_prepare,
> +  mipi_config->tclk_prepare);
> +
> + /*
> +  * prepare cnt in escape clocks
> +  * this field represents a hexadecimal value with a precision
> +  * of 1.2 – i.e. the most significant bit is the integer
> +  * and the least significant 2 bits are fraction bits.
> +  * so, the field can represent a range of 0.25 to 1.75
> +  */
> + prepare_cnt = DIV_ROUND_UP(ths_prepare_ns * 4, tlpx_ns);
> + if (prepare_cnt > ICL_PREPARE_CNT_MAX) {
> + DRM_DEBUG_KMS("prepare_cnt out of range (%d)\n", prepare_cnt);
> + prepare_cnt = ICL_PREPARE_CNT_MAX;
> + }
> +
> + /* clk zero count in escape clocks */
> + clk_zero_cnt = DIV_ROUND_UP(mipi_config->tclk_prepare_clkzero -
> + ths_prepare_ns, tlpx_ns);
> + if (clk_zero_cnt > ICL_CLK_ZERO_CNT_MAX) {
> + DRM_DEBUG_KMS("clk_zero_cnt out of range (%d)\n", clk_zero_cnt);
> + clk_zero_cnt = ICL_CLK_ZERO_CNT_MAX;
> + }
> +
> + /* trail cnt in escape clocks*/
> + trail_cnt = DIV_ROUND_UP(tclk_trail_ns, tlpx_ns);
> + if (trail_cnt > ICL_TRAIL_CNT_MAX) {
> + DRM_DEBUG_KMS("trail_cnt out of range (%d)\n", trail_cnt);
> + trail_cnt = ICL_TRAIL_CNT_MAX;
> + }
> +
> + /* tclk pre count in escape clocks */
> + tclk_pre_cnt = DIV_ROUND_UP(mipi_config->tclk_pre, tlpx_ns);
> + if (tclk_pre_cnt > ICL_TCLK_PRE_CNT_MAX) {
> + DRM_DEBUG_KMS("tclk_pre_cnt out of range (%d)\n", tclk_pre_cnt);
> + tclk_pre_cnt = ICL_TCLK_PRE_CNT_MAX;
> + }
> +
> + /* tclk post count in escape clocks */
> + tclk_post_cnt = DIV_ROUND_UP(mipi_config->tclk_post, tlpx_ns);
> + if (tclk_post_cnt > ICL_TCLK_POST_CNT_MAX) {
> + DRM_DEBUG_KMS("tclk_post_cnt out of range (%d)\n", 
> tclk_post_cnt);
> + tclk_post_cnt = ICL_TCLK_POST_CNT_MAX;
> + }
> +
> + /* hs zero cnt in escape clocks */
> + hs_zero_cnt = DIV_ROUND_UP(mipi_config->ths_prepare_hszero -
> +ths_prepare_ns, tlpx_ns);
> + if (hs_zero_cnt > ICL_HS_ZERO_CNT_MAX) {
> + DRM_DEBUG_KMS("hs_zero_cnt out of range (%d)\n", hs_zero_cnt);
> + hs_zero_cnt = ICL_HS_ZERO_CNT_MAX;
> + }
> +
> + /* hs exit zero cnt in escape clocks */
> + exit_zero_cnt = DIV_ROUND_UP(mipi_config->ths_exit, tlpx_ns);
> + if (exit_zero_cnt > ICL_EXIT_ZERO_CNT_MAX) {
> + DRM_DEBUG_KMS("exit_zero_cnt out of range (%d)\n", 
> exit_zero_cnt);
> + exit_zero_cnt = ICL_EXIT_ZERO_CNT_MAX;
> + }
> +
> + /* clock lane dphy timings */
> + intel_dsi->dphy_reg = (CLK_PREPARE_OVERRIDE |
> +CLK_PREPARE(

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/3] drm/i915/dsi: Move logging of DSI VBT parameters to a helper function

2019-06-05 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm/i915/dsi: Move logging of DSI VBT 
parameters to a helper function
URL   : https://patchwork.freedesktop.org/series/61679/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915/dsi: Move logging of DSI VBT parameters to a helper function
Okay!

Commit: drm/i915/dsi: Move vlv/icl_dphy_param_init call out of 
intel_dsi_vbt_init (v2)
+drivers/gpu/drm/i915/icl_dsi.c:1404:25: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/icl_dsi.c:1404:25: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/icl_dsi.c:1405:26: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/icl_dsi.c:1405:26: warning: expression using sizeof(void)
-O:drivers/gpu/drm/i915/intel_dsi_vbt.c:599:25: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/intel_dsi_vbt.c:599:25: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/intel_dsi_vbt.c:600:26: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/intel_dsi_vbt.c:600:26: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/intel_dsi_vbt.c:737:26: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/intel_dsi_vbt.c:737:26: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/intel_dsi_vbt.c:779:25: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/intel_dsi_vbt.c:779:25: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/intel_dsi_vbt.c:811:37: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/intel_dsi_vbt.c:811:37: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/vlv_dsi.c:1731:26: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/vlv_dsi.c:1731:26: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/vlv_dsi.c:1773:25: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/vlv_dsi.c:1773:25: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/vlv_dsi.c:1805:37: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/vlv_dsi.c:1805:37: warning: expression using sizeof(void)

Commit: drm/i915/dsi: Read back pclk set by GOP and use that as pclk (v3)
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 [1/3] drm/i915/dsi: Move logging of DSI VBT parameters to a helper function

2019-06-05 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm/i915/dsi: Move logging of DSI VBT 
parameters to a helper function
URL   : https://patchwork.freedesktop.org/series/61679/
State : warning

== Summary ==

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

total: 0 errors, 0 warnings, 1 checks, 101 lines checked
c48843171c41 drm/i915/dsi: Move vlv/icl_dphy_param_init call out of 
intel_dsi_vbt_init (v2)
-:552: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#552: FILE: drivers/gpu/drm/i915/vlv_dsi.c:1743:
+   exit_zero_cnt = DIV_ROUND_UP(

-:572: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#572: FILE: drivers/gpu/drm/i915/vlv_dsi.c:1763:
+   clk_zero_cnt = DIV_ROUND_UP(

-:608: WARNING:BLOCK_COMMENT_STYLE: Block comments use a trailing */ on a 
separate line
#608: FILE: drivers/gpu/drm/i915/vlv_dsi.c:1799:
+* The comment above does not match with the code */

-:627: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#627: FILE: drivers/gpu/drm/i915/vlv_dsi.c:1818:
+   DIV_ROUND_UP(

-:643: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#643: FILE: drivers/gpu/drm/i915/vlv_dsi.c:1834:
+   DIV_ROUND_UP(2 * tlpx_ui + trail_cnt * 2 + 8,
+   8);

total: 0 errors, 1 warnings, 4 checks, 614 lines checked
9787f959f37c drm/i915/dsi: Read back pclk set by GOP and use that as pclk (v3)

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

Re: [Intel-gfx] [PATCH] drm/i915/wopcm: update default size for gen11+

2019-06-05 Thread Michal Wajdeczko
On Wed, 05 Jun 2019 20:21:54 +0200, Daniele Ceraolo Spurio  
 wrote:





On 6/5/19 7:51 AM, Michal Wajdeczko wrote:
On Wed, 05 Jun 2019 01:15:29 +0200, Daniele Ceraolo Spurio  
 wrote:



The size has been increased to 2MB starting from gen11. GuC and HuC FWs

 nit: s/gen11/Gen11


fit in 1MB so we were fine even with the legacy define, but let's still
move to the correct one before the blobs grow to avoid being caught off
guard in the future.

Bspec: 44982

 I think for ICL this should be 12690


Signed-off-by: Daniele Ceraolo Spurio 
Cc: Michal Wajdeczko 
---
 drivers/gpu/drm/i915/intel_wopcm.c | 10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_wopcm.c  
b/drivers/gpu/drm/i915/intel_wopcm.c

index f82a415ea2ba..6cb993eea206 100644
--- a/drivers/gpu/drm/i915/intel_wopcm.c
+++ b/drivers/gpu/drm/i915/intel_wopcm.c
@@ -41,8 +41,9 @@
  * context).
  */
-/* Default WOPCM size 1MB. */
-#define GEN9_WOPCM_SIZE(1024 * 1024)
+/* Default WOPCM size is 2MB from gen11, 1MB on previous platforms */

 nit: s/gen11/Gen11


+#define GEN11_WOPCM_SIZE(SZ_2M)
+#define GEN9_WOPCM_SIZE(SZ_1M)
 /* 16KB WOPCM (RSVD WOPCM) is reserved from HuC firmware top. */
 #define WOPCM_RESERVED_SIZE(16 * 1024)
@@ -71,7 +72,10 @@
  */
 void intel_wopcm_init_early(struct intel_wopcm *wopcm)
 {
-wopcm->size = GEN9_WOPCM_SIZE;
+if (INTEL_GEN(wopcm_to_i915(wopcm)) >= 11)
+wopcm->size = GEN11_WOPCM_SIZE;
+else
+wopcm->size = GEN9_WOPCM_SIZE;

 While here, maybe we should not try to setup WOPCM size on pre-Gen9
platforms ? Then we can drop below log if WOPCM is zero/not available.


Are you ok if I just return early if !HAS_GUC(), to make it not  
gen-specific?


That's even better (and aligned with other intel_wopcm_init functions)

Thanks,
Michal



Daniele




DRM_DEBUG_DRIVER("WOPCM size: %uKiB\n", wopcm->size / 1024);
 }

 With above,
Reviewed-by: Michal Wajdeczko 

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

Re: [Intel-gfx] [PATCH] drm/i915/wopcm: update default size for gen11+

2019-06-05 Thread Daniele Ceraolo Spurio



On 6/5/19 7:51 AM, Michal Wajdeczko wrote:
On Wed, 05 Jun 2019 01:15:29 +0200, Daniele Ceraolo Spurio 
 wrote:



The size has been increased to 2MB starting from gen11. GuC and HuC FWs


nit: s/gen11/Gen11


fit in 1MB so we were fine even with the legacy define, but let's still
move to the correct one before the blobs grow to avoid being caught off
guard in the future.

Bspec: 44982


I think for ICL this should be 12690


Signed-off-by: Daniele Ceraolo Spurio 
Cc: Michal Wajdeczko 
---
 drivers/gpu/drm/i915/intel_wopcm.c | 10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_wopcm.c 
b/drivers/gpu/drm/i915/intel_wopcm.c

index f82a415ea2ba..6cb993eea206 100644
--- a/drivers/gpu/drm/i915/intel_wopcm.c
+++ b/drivers/gpu/drm/i915/intel_wopcm.c
@@ -41,8 +41,9 @@
  * context).
  */
-/* Default WOPCM size 1MB. */
-#define GEN9_WOPCM_SIZE    (1024 * 1024)
+/* Default WOPCM size is 2MB from gen11, 1MB on previous platforms */


nit: s/gen11/Gen11


+#define GEN11_WOPCM_SIZE    (SZ_2M)
+#define GEN9_WOPCM_SIZE    (SZ_1M)
 /* 16KB WOPCM (RSVD WOPCM) is reserved from HuC firmware top. */
 #define WOPCM_RESERVED_SIZE    (16 * 1024)
@@ -71,7 +72,10 @@
  */
 void intel_wopcm_init_early(struct intel_wopcm *wopcm)
 {
-    wopcm->size = GEN9_WOPCM_SIZE;
+    if (INTEL_GEN(wopcm_to_i915(wopcm)) >= 11)
+    wopcm->size = GEN11_WOPCM_SIZE;
+    else
+    wopcm->size = GEN9_WOPCM_SIZE;


While here, maybe we should not try to setup WOPCM size on pre-Gen9
platforms ? Then we can drop below log if WOPCM is zero/not available.


Are you ok if I just return early if !HAS_GUC(), to make it not 
gen-specific?


Daniele




DRM_DEBUG_DRIVER("WOPCM size: %uKiB\n", wopcm->size / 1024);
 }


With above,
Reviewed-by: Michal Wajdeczko 

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

[Intel-gfx] [PATCH 2/3] drm/i915/dsi: Move vlv/icl_dphy_param_init call out of intel_dsi_vbt_init (v2)

2019-06-05 Thread Hans de Goede
The vlv/icl_dphy_param_init calls do various calculations to set dphy
parameters based on the pclk.

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

Changes in v2:
-Also moves the icl and vlv specific dphy_param_init functions from the
 generic intel_dsi_vbt.c file into the icl_ and vlv_dsi.c specific files.

Note icl_dphy_param_init() and vlv_dphy_param_init() are only moved,
otherwise they are completely unchanged.

Signed-off-by: Hans de Goede 
---
 drivers/gpu/drm/i915/icl_dsi.c   | 108 ++
 drivers/gpu/drm/i915/intel_dsi.h |   1 +
 drivers/gpu/drm/i915/intel_dsi_vbt.c | 282 +--
 drivers/gpu/drm/i915/vlv_dsi.c   | 170 
 4 files changed, 280 insertions(+), 281 deletions(-)

diff --git a/drivers/gpu/drm/i915/icl_dsi.c b/drivers/gpu/drm/i915/icl_dsi.c
index 9d962ea1e635..511c76e788ef 100644
--- a/drivers/gpu/drm/i915/icl_dsi.c
+++ b/drivers/gpu/drm/i915/icl_dsi.c
@@ -1363,6 +1363,113 @@ static const struct mipi_dsi_host_ops 
gen11_dsi_host_ops = {
.transfer = gen11_dsi_host_transfer,
 };
 
+#define ICL_PREPARE_CNT_MAX0x7
+#define ICL_CLK_ZERO_CNT_MAX   0xf
+#define ICL_TRAIL_CNT_MAX  0x7
+#define ICL_TCLK_PRE_CNT_MAX   0x3
+#define ICL_TCLK_POST_CNT_MAX  0x7
+#define ICL_HS_ZERO_CNT_MAX0xf
+#define ICL_EXIT_ZERO_CNT_MAX  0x7
+
+static void icl_dphy_param_init(struct intel_dsi *intel_dsi)
+{
+   struct drm_device *dev = intel_dsi->base.base.dev;
+   struct drm_i915_private *dev_priv = to_i915(dev);
+   struct mipi_config *mipi_config = dev_priv->vbt.dsi.config;
+   u32 tlpx_ns;
+   u32 prepare_cnt, exit_zero_cnt, clk_zero_cnt, trail_cnt;
+   u32 ths_prepare_ns, tclk_trail_ns;
+   u32 hs_zero_cnt;
+   u32 tclk_pre_cnt, tclk_post_cnt;
+
+   tlpx_ns = intel_dsi_tlpx_ns(intel_dsi);
+
+   tclk_trail_ns = max(mipi_config->tclk_trail, mipi_config->ths_trail);
+   ths_prepare_ns = max(mipi_config->ths_prepare,
+mipi_config->tclk_prepare);
+
+   /*
+* prepare cnt in escape clocks
+* this field represents a hexadecimal value with a precision
+* of 1.2 – i.e. the most significant bit is the integer
+* and the least significant 2 bits are fraction bits.
+* so, the field can represent a range of 0.25 to 1.75
+*/
+   prepare_cnt = DIV_ROUND_UP(ths_prepare_ns * 4, tlpx_ns);
+   if (prepare_cnt > ICL_PREPARE_CNT_MAX) {
+   DRM_DEBUG_KMS("prepare_cnt out of range (%d)\n", prepare_cnt);
+   prepare_cnt = ICL_PREPARE_CNT_MAX;
+   }
+
+   /* clk zero count in escape clocks */
+   clk_zero_cnt = DIV_ROUND_UP(mipi_config->tclk_prepare_clkzero -
+   ths_prepare_ns, tlpx_ns);
+   if (clk_zero_cnt > ICL_CLK_ZERO_CNT_MAX) {
+   DRM_DEBUG_KMS("clk_zero_cnt out of range (%d)\n", clk_zero_cnt);
+   clk_zero_cnt = ICL_CLK_ZERO_CNT_MAX;
+   }
+
+   /* trail cnt in escape clocks*/
+   trail_cnt = DIV_ROUND_UP(tclk_trail_ns, tlpx_ns);
+   if (trail_cnt > ICL_TRAIL_CNT_MAX) {
+   DRM_DEBUG_KMS("trail_cnt out of range (%d)\n", trail_cnt);
+   trail_cnt = ICL_TRAIL_CNT_MAX;
+   }
+
+   /* tclk pre count in escape clocks */
+   tclk_pre_cnt = DIV_ROUND_UP(mipi_config->tclk_pre, tlpx_ns);
+   if (tclk_pre_cnt > ICL_TCLK_PRE_CNT_MAX) {
+   DRM_DEBUG_KMS("tclk_pre_cnt out of range (%d)\n", tclk_pre_cnt);
+   tclk_pre_cnt = ICL_TCLK_PRE_CNT_MAX;
+   }
+
+   /* tclk post count in escape clocks */
+   tclk_post_cnt = DIV_ROUND_UP(mipi_config->tclk_post, tlpx_ns);
+   if (tclk_post_cnt > ICL_TCLK_POST_CNT_MAX) {
+   DRM_DEBUG_KMS("tclk_post_cnt out of range (%d)\n", 
tclk_post_cnt);
+   tclk_post_cnt = ICL_TCLK_POST_CNT_MAX;
+   }
+
+   /* hs zero cnt in escape clocks */
+   hs_zero_cnt = DIV_ROUND_UP(mipi_config->ths_prepare_hszero -
+  ths_prepare_ns, tlpx_ns);
+   if (hs_zero_cnt > ICL_HS_ZERO_CNT_MAX) {
+   DRM_DEBUG_KMS("hs_zero_cnt out of range (%d)\n", hs_zero_cnt);
+   hs_zero_cnt = ICL_HS_ZERO_CNT_MAX;
+   }
+
+   /* hs exit zero cnt in escape clocks */
+   exit_zero_cnt = DIV_ROUND_UP(mipi_config->ths_exit, tlpx_ns);
+   if (exit_zero_cnt > ICL_EXIT_ZERO_CNT_MAX) {
+   DRM_DEBUG_KMS("exit_zero_cnt out of range (%d)\n", 
exit_zero_cnt);
+   exit_zero_cnt = ICL_EXIT_ZERO_CNT_MAX;
+   }
+
+   /* clock lane dphy timings */
+   intel_dsi->dphy_reg = (CLK_PREPARE_OVERRIDE |
+  CLK_PREPARE(prepare_cnt) |
+  CLK_ZERO_OVERRIDE |
+  CLK_ZERO(clk_zero_cnt) |
+  CLK_PRE_OVERRIDE |
+

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

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

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

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

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

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

Reviewed-by: Ville Syrjälä 
Signed-off-by: Hans de Goede 
---
 drivers/gpu/drm/i915/vlv_dsi.c | 22 ++
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/vlv_dsi.c b/drivers/gpu/drm/i915/vlv_dsi.c
index 59500c838b9d..6d96891984a5 100644
--- a/drivers/gpu/drm/i915/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/vlv_dsi.c
@@ -1865,7 +1865,7 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
struct drm_encoder *encoder;
struct intel_connector *intel_connector;
struct drm_connector *connector;
-   struct drm_display_mode *fixed_mode;
+   struct drm_display_mode *current_mode, *fixed_mode;
enum port port;
 
DRM_DEBUG_KMS("\n");
@@ -1909,6 +1909,9 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
intel_connector->get_hw_state = intel_connector_get_hw_state;
 
intel_encoder->port = port;
+   intel_encoder->type = INTEL_OUTPUT_DSI;
+   intel_encoder->power_domain = POWER_DOMAIN_PORT_DSI;
+   intel_encoder->cloneable = 0;
 
/*
 * On BYT/CHV, pipe A maps to MIPI DSI port A, pipe B maps to MIPI DSI
@@ -1946,6 +1949,20 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
goto err;
}
 
+   /* Use clock read-back from current hw-state for fastboot */
+   current_mode = intel_encoder_current_mode(intel_encoder);
+   if (current_mode) {
+   DRM_DEBUG_KMS("Calculated pclk %d GOP %d\n",
+ intel_dsi->pclk, current_mode->clock);
+   if (intel_fuzzy_clock_check(intel_dsi->pclk,
+   current_mode->clock)) {
+   DRM_DEBUG_KMS("Using GOP pclk\n");
+   intel_dsi->pclk = current_mode->clock;
+   }
+
+   kfree(current_mode);
+   }
+
vlv_dphy_param_init(intel_dsi);
 
/*
@@ -1963,9 +1980,6 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
}
}
 
-   intel_encoder->type = INTEL_OUTPUT_DSI;
-   intel_encoder->power_domain = POWER_DOMAIN_PORT_DSI;
-   intel_encoder->cloneable = 0;
drm_connector_init(dev, connector, &intel_dsi_connector_funcs,
   DRM_MODE_CONNECTOR_DSI);
 
-- 
2.21.0

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

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

2019-06-05 Thread Hans de Goede
This is a preparation patch for moving the calling of *_dphy_param_init()
out of intel_dsi_vbt_init.

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

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

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

2019-06-05 Thread Hans de Goede

Hi,

On 04-06-19 19:35, Ville Syrjälä wrote:

On Fri, May 24, 2019 at 06:30:19PM +0200, Hans de Goede wrote:

The vlv/icl_dphy_param_init calls do various calculations to set dphy
parameters based on the pclk.

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

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

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

diff --git a/drivers/gpu/drm/i915/icl_dsi.c b/drivers/gpu/drm/i915/icl_dsi.c
index 9d962ea1e635..0f43ef07efec 100644
--- a/drivers/gpu/drm/i915/icl_dsi.c
+++ b/drivers/gpu/drm/i915/icl_dsi.c
@@ -1455,6 +1455,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
goto err;
}
  
+	icl_dphy_param_init(intel_dsi);


I think we should move the entire function into this file.


I was thinking the same thing when I was writing the patch, but I was
not 100% sure. I'm glad that you think the same, I will post a
new version with this fixed (both of them).

Regards,

Hans






return;
  
  err:

diff --git a/drivers/gpu/drm/i915/intel_dsi.h b/drivers/gpu/drm/i915/intel_dsi.h
index 705a609050c0..a58d3d988d9f 100644
--- a/drivers/gpu/drm/i915/intel_dsi.h
+++ b/drivers/gpu/drm/i915/intel_dsi.h
@@ -192,5 +192,7 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 
panel_id);
  void intel_dsi_vbt_exec_sequence(struct intel_dsi *intel_dsi,
 enum mipi_seq seq_id);
  void intel_dsi_msleep(struct intel_dsi *intel_dsi, int msec);
+void icl_dphy_param_init(struct intel_dsi *intel_dsi);
+void vlv_dphy_param_init(struct intel_dsi *intel_dsi);
  
  #endif /* _INTEL_DSI_H */

diff --git a/drivers/gpu/drm/i915/intel_dsi_vbt.c 
b/drivers/gpu/drm/i915/intel_dsi_vbt.c
index 3448e8d51057..022bf59418df 100644
--- a/drivers/gpu/drm/i915/intel_dsi_vbt.c
+++ b/drivers/gpu/drm/i915/intel_dsi_vbt.c
@@ -578,7 +578,7 @@ static void intel_dsi_log_params(struct intel_dsi 
*intel_dsi)
  #define ICL_HS_ZERO_CNT_MAX   0xf
  #define ICL_EXIT_ZERO_CNT_MAX 0x7
  
-static void icl_dphy_param_init(struct intel_dsi *intel_dsi)

+void icl_dphy_param_init(struct intel_dsi *intel_dsi)
  {
struct drm_device *dev = intel_dsi->base.base.dev;
struct drm_i915_private *dev_priv = to_i915(dev);
@@ -677,7 +677,7 @@ static void icl_dphy_param_init(struct intel_dsi *intel_dsi)
intel_dsi_log_params(intel_dsi);
  }
  
-static void vlv_dphy_param_init(struct intel_dsi *intel_dsi)

+void vlv_dphy_param_init(struct intel_dsi *intel_dsi)
  {
struct drm_device *dev = intel_dsi->base.base.dev;
struct drm_i915_private *dev_priv = to_i915(dev);
@@ -914,11 +914,6 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 
panel_id)
  
  	intel_dsi->burst_mode_ratio = burst_mode_ratio;
  
-	if (INTEL_GEN(dev_priv) >= 11)

-   icl_dphy_param_init(intel_dsi);
-   else
-   vlv_dphy_param_init(intel_dsi);
-
/* delays in VBT are in unit of 100us, so need to convert
 * here in ms
 * Delay (100us) * 100 /1000 = Delay / 10 (ms) */
diff --git a/drivers/gpu/drm/i915/vlv_dsi.c b/drivers/gpu/drm/i915/vlv_dsi.c
index fce8b58f7f93..3329ccf3b346 100644
--- a/drivers/gpu/drm/i915/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/vlv_dsi.c
@@ -1782,6 +1782,8 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
goto err;
}
  
+	vlv_dphy_param_init(intel_dsi);


ditto


+
/*
 * In case of BYT with CRC PMIC, we need to use GPIO for
 * Panel control.
--
2.21.0



___
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/guc: always use Command Transport Buffers

2019-06-05 Thread Daniele Ceraolo Spurio



On 6/5/19 8:20 AM, Michal Wajdeczko wrote:
On Tue, 04 Jun 2019 22:29:20 +0200, Daniele Ceraolo Spurio 
 wrote:



Now that we've moved the gen9 guc blobs to version 32 we have CTB
support on all gens, so no need to restrict the usage to gen11+.
Note that mmio communication is still required for CTB initialization.


s/gen9/Gen9
s/guc/GuC
s/gen11/Gen11
s/mmio/MMIO



Signed-off-by: Daniele Ceraolo Spurio 
Cc: Michal Wajdeczko 
---


For simple enable_guc=2 mode (HuC auth only) use of CTB might be
viewed as small overkill, but I assume fw prefers that way.



Spoiler alert: I've heard that since huc auth is currently a multi-step 
process within guc/HW, to make debugging HuC loading issues easier the 
guc devs plan to add an extra G2H after the completion of the first 
step, which will only be supported via CTB. This was not the reason why 
I sent this patch (I'm not even sure if the plan is confirmed), but I 
guess it helps reinforcing the argument for using CTB with enable_guc=2.


Daniele


With above commit message nits,
Reviewed-by: Michal Wajdeczko 


___
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: Add missing commas to the end of the subplatform ID arrays

2019-06-05 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915: Add missing commas to the end of 
the subplatform ID arrays
URL   : https://patchwork.freedesktop.org/series/61673/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6196 -> Patchwork_13181


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13181/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
- fi-icl-u3:  [PASS][1] -> [DMESG-WARN][2] ([fdo#107724]) +1 
similar issue
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6196/fi-icl-u3/igt@kms_cursor_leg...@basic-flip-after-cursor-atomic.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13181/fi-icl-u3/igt@kms_cursor_leg...@basic-flip-after-cursor-atomic.html

  * igt@kms_flip@basic-flip-vs-wf_vblank:
- fi-snb-2520m:   [PASS][3] -> [FAIL][4] ([fdo#100368])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6196/fi-snb-2520m/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13181/fi-snb-2520m/igt@kms_flip@basic-flip-vs-wf_vblank.html

  
 Possible fixes 

  * igt@i915_pm_rpm@module-reload:
- fi-skl-6770hq:  [FAIL][5] ([fdo#108511]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6196/fi-skl-6770hq/igt@i915_pm_...@module-reload.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13181/fi-skl-6770hq/igt@i915_pm_...@module-reload.html

  * igt@kms_addfb_basic@basic:
- fi-icl-u3:  [DMESG-WARN][7] ([fdo#107724]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6196/fi-icl-u3/igt@kms_addfb_ba...@basic.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13181/fi-icl-u3/igt@kms_addfb_ba...@basic.html

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

  
  {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#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511


Participating hosts (52 -> 45)
--

  Additional (1): fi-cfl-guc 
  Missing(8): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan 
fi-skl-6260u fi-kbl-7560u fi-byt-clapper fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_6196 -> Patchwork_13181

  CI_DRM_6196: 7a984cf09665b9ef4c63e82a8551bdde5da229ae @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5040: f190ab5dcd3fa52f4b47bc28c01bcfbbdc26 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13181: 24eb1a1ddcd73485f29a4dd7f2d1530f86aea3c5 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

24eb1a1ddcd7 drm/i915: Kill INTEL_SUBPLATFORM_AML
aa238fb22ef4 drm/i915: Add missing commas to the end of the subplatform ID 
arrays

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13181/
___
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: Skip context_barrier emission for unused contexts

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Skip context_barrier emission for unused contexts
URL   : https://patchwork.freedesktop.org/series/61595/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6187_full -> Patchwork_13171_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
- shard-apl:  [PASS][1] -> [DMESG-WARN][2] ([fdo#108566]) +2 
similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-apl2/igt@kms_cursor_...@pipe-b-cursor-suspend.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13171/shard-apl6/igt@kms_cursor_...@pipe-b-cursor-suspend.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#109349])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb2/igt@kms_dp_...@basic-dsc-enable-edp.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13171/shard-iclb3/igt@kms_dp_...@basic-dsc-enable-edp.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move:
- shard-hsw:  [PASS][5] -> [SKIP][6] ([fdo#109271]) +28 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-hsw2/igt@kms_frontbuffer_track...@fbc-2p-scndscrn-spr-indfb-move.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13171/shard-hsw1/igt@kms_frontbuffer_track...@fbc-2p-scndscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite:
- shard-iclb: [PASS][7] -> [FAIL][8] ([fdo#103167]) +4 similar 
issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb7/igt@kms_frontbuffer_track...@fbc-rgb565-draw-pwrite.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13171/shard-iclb1/igt@kms_frontbuffer_track...@fbc-rgb565-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-suspend:
- shard-skl:  [PASS][9] -> [INCOMPLETE][10] ([fdo#104108] / 
[fdo#106978])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-skl3/igt@kms_frontbuffer_track...@psr-suspend.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13171/shard-skl9/igt@kms_frontbuffer_track...@psr-suspend.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
- shard-iclb: [PASS][11] -> [INCOMPLETE][12] ([fdo#107713] / 
[fdo#110042])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb2/igt@kms_pl...@plane-panning-bottom-right-suspend-pipe-a-planes.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13171/shard-iclb3/igt@kms_pl...@plane-panning-bottom-right-suspend-pipe-a-planes.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
- shard-skl:  [PASS][13] -> [INCOMPLETE][14] ([fdo#104108]) +1 
similar issue
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-skl3/igt@kms_pl...@plane-panning-bottom-right-suspend-pipe-c-planes.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13171/shard-skl2/igt@kms_pl...@plane-panning-bottom-right-suspend-pipe-c-planes.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl:  [PASS][15] -> [FAIL][16] ([fdo#108145] / [fdo#110403])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-skl2/igt@kms_plane_alpha_bl...@pipe-c-coverage-7efc.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13171/shard-skl10/igt@kms_plane_alpha_bl...@pipe-c-coverage-7efc.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: [PASS][17] -> [SKIP][18] ([fdo#109441]) +2 similar 
issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13171/shard-iclb6/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_setmode@basic:
- shard-kbl:  [PASS][19] -> [FAIL][20] ([fdo#99912])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-kbl1/igt@kms_setm...@basic.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13171/shard-kbl7/igt@kms_setm...@basic.html

  
 Possible fixes 

  * {igt@gem_ctx_param@vm}:
- shard-hsw:  [DMESG-WARN][21] ([fdo#110836]) -> [PASS][22] +1 
similar issue
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-hsw2/igt@gem_ctx_pa...@vm.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13171/shard-hsw6/igt@gem_ctx_pa...@vm.html

  * igt@gem_softpin@noreloc-s3:
- shard-skl:  [INCOMPLETE][23] ([fdo#104108]) -> [PASS][24]
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-skl5/igt@gem_soft...@noreloc-s3.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Fix TypeC port mode switching

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Fix TypeC port mode switching
URL   : https://patchwork.freedesktop.org/series/61590/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6187_full -> Patchwork_13170_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_eio@reset-stress:
- shard-snb:  [PASS][1] -> ([FAIL][2], [PASS][3]) ([fdo#109661])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-snb6/igt@gem_...@reset-stress.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-snb7/igt@gem_...@reset-stress.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-snb4/igt@gem_...@reset-stress.html

  * igt@gem_eio@unwedge-stress:
- shard-snb:  [PASS][4] -> [FAIL][5] ([fdo#109661])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-snb2/igt@gem_...@unwedge-stress.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-snb2/igt@gem_...@unwedge-stress.html

  * igt@i915_pm_rpm@gem-execbuf:
- shard-iclb: [PASS][6] -> [INCOMPLETE][7] ([fdo#107713] / 
[fdo#108840])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb4/igt@i915_pm_...@gem-execbuf.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-iclb7/igt@i915_pm_...@gem-execbuf.html

  * igt@i915_suspend@debugfs-reader:
- shard-skl:  [PASS][8] -> ([PASS][9], [INCOMPLETE][10]) 
([fdo#104108]) +1 similar issue
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-skl8/igt@i915_susp...@debugfs-reader.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-skl4/igt@i915_susp...@debugfs-reader.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-skl3/igt@i915_susp...@debugfs-reader.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
- shard-apl:  [PASS][11] -> ([PASS][12], [DMESG-WARN][13]) 
([fdo#108566]) +3 similar issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-apl2/igt@kms_cursor_...@pipe-b-cursor-suspend.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-apl8/igt@kms_cursor_...@pipe-b-cursor-suspend.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-apl7/igt@kms_cursor_...@pipe-b-cursor-suspend.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [PASS][14] -> [SKIP][15] ([fdo#109349])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb2/igt@kms_dp_...@basic-dsc-enable-edp.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-iclb8/igt@kms_dp_...@basic-dsc-enable-edp.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
- shard-glk:  [PASS][16] -> ([FAIL][17], [PASS][18]) ([fdo#105363])
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-glk9/igt@kms_f...@2x-flip-vs-expired-vblank.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-glk4/igt@kms_f...@2x-flip-vs-expired-vblank.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-glk1/igt@kms_f...@2x-flip-vs-expired-vblank.html

  * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible:
- shard-glk:  [PASS][19] -> ([FAIL][20], [PASS][21]) ([fdo#103060])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-glk3/igt@kms_f...@2x-modeset-vs-vblank-race-interruptible.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-glk8/igt@kms_f...@2x-modeset-vs-vblank-race-interruptible.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-glk6/igt@kms_f...@2x-modeset-vs-vblank-race-interruptible.html

  * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
- shard-glk:  [PASS][22] -> [FAIL][23] ([fdo#100368])
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-glk2/igt@kms_f...@2x-plain-flip-fb-recreate-interruptible.html
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-glk1/igt@kms_f...@2x-plain-flip-fb-recreate-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-glk:  [PASS][24] -> ([FAIL][25], [PASS][26]) ([fdo#102887] 
/ [fdo#105363])
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-glk4/igt@kms_f...@flip-vs-expired-vblank-interruptible.html
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-glk2/igt@kms_f...@flip-vs-expired-vblank-interruptible.html
   [26]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13170/shard-glk5/igt@kms_f...@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip_tiling@flip-to-x-tiled:
- shard-iclb: [PASS][27] -> [FAIL][28] ([fdo#108134])
   [27]: 
h

[Intel-gfx] [PATCH 2/2] drm/i915: Kill INTEL_SUBPLATFORM_AML

2019-06-05 Thread Ville Syrjala
From: Ville Syrjälä 

All AML parts are either KBL ULX or CFL ULX so there is no point
in keeping INTEL_SUBPLATFORM_AML around. As these are the only
CFL ULX parts (normal CFL didn't have Y SKUs) so we'll just
replace IS_AML_ULX with IS_CFL_ULX (it was already paired with
IS_KBL_ULX which accounts for the other half of the AML parts).

Cc: Tvrtko Ursulin 
Cc: José Roberto de Souza 
Cc: Rodrigo Vivi 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/i915_drv.h  | 5 ++---
 drivers/gpu/drm/i915/intel_ddi.c | 8 +---
 drivers/gpu/drm/i915/intel_device_info.c | 6 --
 drivers/gpu/drm/i915/intel_device_info.h | 1 -
 4 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 89bf1e34feaa..16ea0e6077cf 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2213,9 +2213,6 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
IS_SUBPLATFORM(dev_priv, INTEL_KABYLAKE, INTEL_SUBPLATFORM_ULT)
 #define IS_KBL_ULX(dev_priv) \
IS_SUBPLATFORM(dev_priv, INTEL_KABYLAKE, INTEL_SUBPLATFORM_ULX)
-#define IS_AML_ULX(dev_priv) \
-   (IS_SUBPLATFORM(dev_priv, INTEL_KABYLAKE, INTEL_SUBPLATFORM_AML) || \
-IS_SUBPLATFORM(dev_priv, INTEL_COFFEELAKE, INTEL_SUBPLATFORM_AML))
 #define IS_SKL_GT2(dev_priv)   (IS_SKYLAKE(dev_priv) && \
 INTEL_INFO(dev_priv)->gt == 2)
 #define IS_SKL_GT3(dev_priv)   (IS_SKYLAKE(dev_priv) && \
@@ -2228,6 +2225,8 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
 INTEL_INFO(dev_priv)->gt == 3)
 #define IS_CFL_ULT(dev_priv) \
IS_SUBPLATFORM(dev_priv, INTEL_COFFEELAKE, INTEL_SUBPLATFORM_ULT)
+#define IS_CFL_ULX(dev_priv) \
+   IS_SUBPLATFORM(dev_priv, INTEL_COFFEELAKE, INTEL_SUBPLATFORM_ULX)
 #define IS_CFL_GT2(dev_priv)   (IS_COFFEELAKE(dev_priv) && \
 INTEL_INFO(dev_priv)->gt == 2)
 #define IS_CFL_GT3(dev_priv)   (IS_COFFEELAKE(dev_priv) && \
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 350eaf54f01f..65c02b260c98 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -615,7 +615,7 @@ skl_get_buf_trans_dp(struct drm_i915_private *dev_priv, int 
*n_entries)
 static const struct ddi_buf_trans *
 kbl_get_buf_trans_dp(struct drm_i915_private *dev_priv, int *n_entries)
 {
-   if (IS_KBL_ULX(dev_priv) || IS_AML_ULX(dev_priv)) {
+   if (IS_KBL_ULX(dev_priv) || IS_CFL_ULX(dev_priv)) {
*n_entries = ARRAY_SIZE(kbl_y_ddi_translations_dp);
return kbl_y_ddi_translations_dp;
} else if (IS_KBL_ULT(dev_priv) || IS_CFL_ULT(dev_priv)) {
@@ -631,7 +631,8 @@ static const struct ddi_buf_trans *
 skl_get_buf_trans_edp(struct drm_i915_private *dev_priv, int *n_entries)
 {
if (dev_priv->vbt.edp.low_vswing) {
-   if (IS_SKL_ULX(dev_priv) || IS_KBL_ULX(dev_priv) || 
IS_AML_ULX(dev_priv)) {
+   if (IS_SKL_ULX(dev_priv) || IS_KBL_ULX(dev_priv) ||
+   IS_CFL_ULX(dev_priv)) {
*n_entries = ARRAY_SIZE(skl_y_ddi_translations_edp);
return skl_y_ddi_translations_edp;
} else if (IS_SKL_ULT(dev_priv) || IS_KBL_ULT(dev_priv) ||
@@ -653,7 +654,8 @@ skl_get_buf_trans_edp(struct drm_i915_private *dev_priv, 
int *n_entries)
 static const struct ddi_buf_trans *
 skl_get_buf_trans_hdmi(struct drm_i915_private *dev_priv, int *n_entries)
 {
-   if (IS_SKL_ULX(dev_priv) || IS_KBL_ULX(dev_priv) || 
IS_AML_ULX(dev_priv)) {
+   if (IS_SKL_ULX(dev_priv) || IS_KBL_ULX(dev_priv) ||
+   IS_CFL_ULX(dev_priv)) {
*n_entries = ARRAY_SIZE(skl_y_ddi_translations_hdmi);
return skl_y_ddi_translations_hdmi;
} else {
diff --git a/drivers/gpu/drm/i915/intel_device_info.c 
b/drivers/gpu/drm/i915/intel_device_info.c
index 19437e8ec6fa..7135d8dc32a7 100644
--- a/drivers/gpu/drm/i915/intel_device_info.c
+++ b/drivers/gpu/drm/i915/intel_device_info.c
@@ -787,9 +787,6 @@ static const u16 subplatform_ulx_ids[] = {
INTEL_SKL_ULX_GT2_IDS(0),
INTEL_KBL_ULX_GT1_IDS(0),
INTEL_KBL_ULX_GT2_IDS(0),
-};
-
-static const u16 subplatform_aml_ids[] = {
INTEL_AML_KBL_GT2_IDS(0),
INTEL_AML_CFL_GT2_IDS(0),
 };
@@ -832,9 +829,6 @@ void intel_device_info_subplatform_init(struct 
drm_i915_private *i915)
/* ULX machines are also considered ULT. */
mask |= BIT(INTEL_SUBPLATFORM_ULT);
}
-   } else if (find_devid(devid, subplatform_aml_ids,
- ARRAY_SIZE(subplatform_aml_ids))) {
-   mask = BIT(INTEL_SUBPLATFORM_AML);
} else if (find_devid(devid, subplatform_portf_ids,
  ARRAY_SIZE(subplatform_portf_ids))) {
mask = BIT(INTEL_SUBPLATFORM_PORTF);
diff -

[Intel-gfx] [PATCH 1/2] drm/i915: Add missing commas to the end of the subplatform ID arrays

2019-06-05 Thread Ville Syrjala
From: Ville Syrjälä 

Add a comma after the final entry to make diffs less obnoxious if
we have to add further entries past the last one.

Cc: Tvrtko Ursulin 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/intel_device_info.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_device_info.c 
b/drivers/gpu/drm/i915/intel_device_info.c
index 97f742530fa1..19437e8ec6fa 100644
--- a/drivers/gpu/drm/i915/intel_device_info.c
+++ b/drivers/gpu/drm/i915/intel_device_info.c
@@ -773,7 +773,7 @@ static const u16 subplatform_ult_ids[] = {
INTEL_CFL_U_GT3_IDS(0),
INTEL_WHL_U_GT1_IDS(0),
INTEL_WHL_U_GT2_IDS(0),
-   INTEL_WHL_U_GT3_IDS(0)
+   INTEL_WHL_U_GT3_IDS(0),
 };
 
 static const u16 subplatform_ulx_ids[] = {
@@ -786,17 +786,17 @@ static const u16 subplatform_ulx_ids[] = {
INTEL_SKL_ULX_GT1_IDS(0),
INTEL_SKL_ULX_GT2_IDS(0),
INTEL_KBL_ULX_GT1_IDS(0),
-   INTEL_KBL_ULX_GT2_IDS(0)
+   INTEL_KBL_ULX_GT2_IDS(0),
 };
 
 static const u16 subplatform_aml_ids[] = {
INTEL_AML_KBL_GT2_IDS(0),
-   INTEL_AML_CFL_GT2_IDS(0)
+   INTEL_AML_CFL_GT2_IDS(0),
 };
 
 static const u16 subplatform_portf_ids[] = {
INTEL_CNL_PORT_F_IDS(0),
-   INTEL_ICL_PORT_F_IDS(0)
+   INTEL_ICL_PORT_F_IDS(0),
 };
 
 static bool find_devid(u16 id, const u16 *p, unsigned int num)
-- 
2.21.0

___
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/dsi: Use a fuzzy check for burst mode clock check

2019-06-05 Thread Hans de Goede

Hi,

Thank you for the reviews.

On 04-06-19 19:29, Ville Syrjälä wrote:

On Fri, May 24, 2019 at 07:40:28PM +0200, Hans de Goede wrote:

Prior to this commit we fail to init the DSI panel on the GPD MicroPC:
https://www.indiegogo.com/projects/gpd-micropc-6-inch-handheld-industry-laptop#/

The problem is intel_dsi_vbt_init() failing with the following error:
*ERROR* Burst mode freq is less than computed

The pclk in the VBT panel modeline is 7, together with 24 bpp and
4 lines this results in a bitrate value of 7 * 24 / 4 = 42.
But the target_burst_mode_freq in the VBT is 418000.

This commit works around this problem by adding an intel_fuzzy_clock_check
when target_burst_mode_freq < bitrate and setting target_burst_mode_freq to
bitrate when that checks succeeds, fixing the panel not working.

Cc: sta...@vger.kernel.org
Signed-off-by: Hans de Goede 
---
  drivers/gpu/drm/i915/intel_dsi_vbt.c | 11 +++
  1 file changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_dsi_vbt.c 
b/drivers/gpu/drm/i915/intel_dsi_vbt.c
index 022bf59418df..a2a9b9d0eeaa 100644
--- a/drivers/gpu/drm/i915/intel_dsi_vbt.c
+++ b/drivers/gpu/drm/i915/intel_dsi_vbt.c
@@ -895,6 +895,17 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 
panel_id)
if (mipi_config->target_burst_mode_freq) {
u32 bitrate = intel_dsi_bitrate(intel_dsi);
  
+			/*

+* Sometimes the VBT contains a slightly lower clock,
+* then the bitrate we have calculated, in this case
+* just replace it with the calculated bitrate.
+*/
+   if (mipi_config->target_burst_mode_freq < bitrate &&
+   intel_fuzzy_clock_check(
+   mipi_config->target_burst_mode_freq,
+   bitrate))
+   mipi_config->target_burst_mode_freq = bitrate;


Maybe should squash these patches together to make the stable
backport less painful?


Good idea, done.


Anyways, seems OK to me.
Reviewed-by: Ville Syrjälä 


And pushed with your Reviewed-by.

Regards,

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

Re: [Intel-gfx] [PATCH 2/5] drm/i915: Rename HSW/BDW PLL bits

2019-06-05 Thread Ville Syrjälä
On Wed, Jun 05, 2019 at 04:24:25PM +0200, Maarten Lankhorst wrote:
> Op 04-06-2019 om 22:09 schreef Ville Syrjala:
> > From: Ville Syrjälä 
> >
> > Give the PLL control register bits better names on HSW/BDW.
> >
> > Signed-off-by: Ville Syrjälä 
> > ---
> >  drivers/gpu/drm/i915/i915_reg.h   | 37 ++-
> >  drivers/gpu/drm/i915/intel_ddi.c  | 16 ++--
> >  drivers/gpu/drm/i915/intel_display.c  |  8 +++---
> >  drivers/gpu/drm/i915/intel_dpll_mgr.c |  4 +--
> >  4 files changed, 39 insertions(+), 26 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_reg.h 
> > b/drivers/gpu/drm/i915/i915_reg.h
> > index d5fee72fc079..b7dd42bfffaa 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -9465,24 +9465,33 @@ enum skl_power_gate {
> >  /* SPLL */
> >  #define SPLL_CTL   _MMIO(0x46020)
> >  #define  SPLL_PLL_ENABLE   (1 << 31)
> > -#define  SPLL_PLL_SSC  (1 << 28)
> > -#define  SPLL_PLL_NON_SSC  (2 << 28)
> > -#define  SPLL_PLL_LCPLL(3 << 28)
> > -#define  SPLL_PLL_REF_MASK (3 << 28)
> > -#define  SPLL_PLL_FREQ_810MHz  (0 << 26)
> > -#define  SPLL_PLL_FREQ_1350MHz (1 << 26)
> > -#define  SPLL_PLL_FREQ_2700MHz (2 << 26)
> > -#define  SPLL_PLL_FREQ_MASK(3 << 26)
> > +#define  SPLL_REF_BCLK (0 << 28)
> > +#define  SPLL_REF_MUXED_SSC(1 << 28) /* CPU SSC if fused 
> > enabled, PCH SSC otherwise */
> > +#define  SPLL_REF_NON_SSC_HSW  (2 << 28)
> > +#define  SPLL_REF_PCH_SSC_BDW  (2 << 28)
> > +#define  SPLL_REF_LCPLL(3 << 28)
> > +#define  SPLL_REF_MASK (3 << 28)
> > +#define  SPLL_REF_BCLK (0 << 28)
> > +#define  SPLL_REF_SSC  (1 << 28)
> > +#define  SPLL_REF_NON_SSC  (2 << 28)
> > +#define  SPLL_REF_LCPLL(3 << 28)
> 
> ? Bit unclear or double definitions, at least of SPLL_REF_MASK.

Oh, that one is a copy paste fail. The others are due to HSW
and BDW having slightly different meanings for the bits.

> 
> 
> > +#define  SPLL_REF_MASK (3 << 28)
> > +#define  SPLL_FREQ_810MHz  (0 << 26)
> > +#define  SPLL_FREQ_1350MHz (1 << 26)
> > +#define  SPLL_FREQ_2700MHz (2 << 26)
> > +#define  SPLL_FREQ_MASK(3 << 26)
> >  
> >  /* WRPLL */
> >  #define _WRPLL_CTL10x46040
> >  #define _WRPLL_CTL20x46060
> >  #define WRPLL_CTL(pll) _MMIO_PIPE(pll, _WRPLL_CTL1, 
> > _WRPLL_CTL2)
> >  #define  WRPLL_PLL_ENABLE  (1 << 31)
> > -#define  WRPLL_PLL_SSC (1 << 28)
> > -#define  WRPLL_PLL_NON_SSC (2 << 28)
> > -#define  WRPLL_PLL_LCPLL   (3 << 28)
> > -#define  WRPLL_PLL_REF_MASK(3 << 28)
> > +#define  WRPLL_REF_BCLK(0 << 28)
> > +#define  WRPLL_REF_PCH_SSC (1 << 28)
> > +#define  WRPLL_REF_MUXED_SSC_BDW   (2 << 28) /* CPU SSC if fused enabled, 
> > PCH SSC otherwise */
> > +#define  WRPLL_REF_SPECIAL_HSW (2 << 28) /* muxed SSC (ULT), 
> > non-SSC (non-ULT) */
> > +#define  WRPLL_REF_LCPLL   (3 << 28)
> > +#define  WRPLL_REF_MASK(3 << 28)
> >  /* WRPLL divider programming */
> >  #define  WRPLL_DIVIDER_REFERENCE(x)((x) << 0)
> >  #define  WRPLL_DIVIDER_REF_MASK(0xff)
> > @@ -9548,6 +9557,10 @@ enum skl_power_gate {
> >  #define LCPLL_CTL  _MMIO(0x130040)
> >  #define  LCPLL_PLL_DISABLE (1 << 31)
> >  #define  LCPLL_PLL_LOCK(1 << 30)
> > +#define  LCPLL_REF_NON_SSC (0 << 28)
> > +#define  LCPLL_REF_BCLK(2 << 28)
> > +#define  LCPLL_REF_PCH_SSC (3 << 28)
> > +#define  LCPLL_REF_MASK(3 << 28)
> >  #define  LCPLL_CLK_FREQ_MASK   (3 << 26)
> >  #define  LCPLL_CLK_FREQ_450(0 << 26)
> >  #define  LCPLL_CLK_FREQ_54O_BDW(1 << 26)
> > diff --git a/drivers/gpu/drm/i915/intel_ddi.c 
> > b/drivers/gpu/drm/i915/intel_ddi.c
> > index 350eaf54f01f..183f91abda19 100644
> > --- a/drivers/gpu/drm/i915/intel_ddi.c
> > +++ b/drivers/gpu/drm/i915/intel_ddi.c
> > @@ -1231,9 +1231,9 @@ static int hsw_ddi_calc_wrpll_link(struct 
> > drm_i915_private *dev_priv,
> > u32 wrpll;
> >  
> > wrpll = I915_READ(reg);
> > -   switch (wrpll & WRPLL_PLL_REF_MASK) {
> > -   case WRPLL_PLL_SSC:
> > -   case WRPLL_PLL_NON_SSC:
> > +   switch (wrpll & WRPLL_REF_MASK) {
> > +   case WRPLL_REF_SPECIAL_HSW:
> > +   case WRPLL_REF_PCH_SSC:
> > /*
> >  * We could calculate spread here, but our checking
> >  * code only cares about 5% accuracy, and spread is a max of
> > @@ -1241,7 +1241,7 @@ static int hsw_ddi_calc_wrpll_link(struct 
> > drm_i915_pri

Re: [Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [01/10] drm/i915: Add windowing for primary planes on gen2/3 and chv

2019-06-05 Thread Ville Syrjälä
On Wed, Jun 05, 2019 at 04:01:05PM +0200, Maarten Lankhorst wrote:
> Op 31-05-2019 om 15:05 schreef Ville Syrjälä:
> > On Thu, May 30, 2019 at 05:43:00AM -, Patchwork wrote:
> >> == Series Details ==
> >>
> >> Series: series starting with [01/10] drm/i915: Add windowing for primary 
> >> planes on gen2/3 and chv
> >> URL   : https://patchwork.freedesktop.org/series/61345/
> >> State : failure
> >>
> >> == Summary ==
> >>
> >> CI Bug Log - changes from CI_DRM_6165_full -> Patchwork_13133_full
> >> 
> >>
> >> Summary
> >> ---
> >>
> >>   **FAILURE**
> >>
> >>   Serious unknown changes coming with Patchwork_13133_full absolutely need 
> >> to be
> >>   verified manually.
> >>   
> >>   If you think the reported changes have nothing to do with the changes
> >>   introduced in Patchwork_13133_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_13133_full:
> >>
> >> ### IGT changes ###
> >>
> >>  Possible regressions 
> >>
> >>   * igt@kms_plane@pixel-format-pipe-a-planes:
> >> - shard-glk:  [PASS][1] -> [FAIL][2]
> >>[1]: 
> >> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6165/shard-glk3/igt@kms_pl...@pixel-format-pipe-a-planes.html
> >>[2]: 
> >> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13133/shard-glk8/igt@kms_pl...@pixel-format-pipe-a-planes.html
> > <7> [125.370679] [drm:drm_mode_debug_printmodeline] Modeline "1920x1080": 
> > 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x48 0x5
> > ...
> > <7> [125.542650] [drm:intel_dump_cdclk_state [i915]] Changing CDCLK to 
> > 79200 kHz, VCO 633600 kHz, ref 19200 kHz, bypass 19200 kHz, voltage
> > level 4
> > ...
> > <7> [133.682144] [drm:skl_check_pipe_max_pixel_rate [i915]] Max supported 
> > pixel clock with scaling exceeded
> >
> > Max pixel rate for 64bpp is 79.2*2 * 8/9 = 140.8 Mhz, which we are
> > exceeding. We'd need some way to bump the cdclk for this case, but
> > the kernel will only do that for modesets, and it won't account for
> > that 8/9 factor. Not sure there is a great way to handle these sorts
> > of cases.
> >
> >>   * igt@kms_plane_scaling@pipe-c-scaler-with-pixel-format:
> >> - shard-apl:  [PASS][3] -> [FAIL][4] +4 similar issues
> >>[3]: 
> >> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6165/shard-apl5/igt@kms_plane_scal...@pipe-c-scaler-with-pixel-format.html
> >>[4]: 
> >> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13133/shard-apl7/igt@kms_plane_scal...@pipe-c-scaler-with-pixel-format.html
> > <7> [1749.831610] [drm:drm_atomic_helper_check_plane_state] Invalid scaling 
> > of plane
> > <7> [1749.831620] [drm:drm_rect_debug_print] src: 
> > 8.00x8.00+0.00+0.00
> > <7> [1749.831625] [drm:drm_rect_debug_print] dst: 1920x1080+0+0
> >
> > Not quite sure what's going on here. Unfortunately the debugs don't have
> > enough information to see what's going on.
> 
> For first 6 patches
> 
> Reviewed-by: Maarten Lankhorst 

Thanks.

> 
> What happens on < gen9 btw with half float support?
> 
> Enabling patches look sane, but worried about hw coverage.
> 
> So if you are sure it works on  add my r-b on those too. But I would like to have no regressions so have to 
> get gen9 fixed first before pushing. :)

We do have some missing checks for the cdclk vs. fp16 case on pre-gen9,
as well as missing similar cdclk vs. scaling checks. I think I have some
kind of plan to remedy that. And I can probably tweak that into bumping
the cdclk for fp16 as well (assuming a modeset is allowed for the commit
in question of course).

-- 
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.IGT: failure for series starting with [01/10] drm/i915: Add windowing for primary planes on gen2/3 and chv

2019-06-05 Thread Ville Syrjälä
On Fri, May 31, 2019 at 04:05:51PM +0300, Ville Syrjälä wrote:
> On Thu, May 30, 2019 at 05:43:00AM -, Patchwork wrote:
> > == Series Details ==
> > 
> > Series: series starting with [01/10] drm/i915: Add windowing for primary 
> > planes on gen2/3 and chv
> > URL   : https://patchwork.freedesktop.org/series/61345/
> > State : failure
> > 
> > == Summary ==
> > 
> > CI Bug Log - changes from CI_DRM_6165_full -> Patchwork_13133_full
> > 
> > 
> > Summary
> > ---
> > 
> >   **FAILURE**
> > 
> >   Serious unknown changes coming with Patchwork_13133_full absolutely need 
> > to be
> >   verified manually.
> >   
> >   If you think the reported changes have nothing to do with the changes
> >   introduced in Patchwork_13133_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_13133_full:
> > 
> > ### IGT changes ###
> > 
> >  Possible regressions 
> > 
> >   * igt@kms_plane@pixel-format-pipe-a-planes:
> > - shard-glk:  [PASS][1] -> [FAIL][2]
> >[1]: 
> > https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6165/shard-glk3/igt@kms_pl...@pixel-format-pipe-a-planes.html
> >[2]: 
> > https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13133/shard-glk8/igt@kms_pl...@pixel-format-pipe-a-planes.html
> 
> <7> [125.370679] [drm:drm_mode_debug_printmodeline] Modeline "1920x1080": 60 
> 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x48 0x5
> ...
> <7> [125.542650] [drm:intel_dump_cdclk_state [i915]] Changing CDCLK to 79200 
> kHz, VCO 633600 kHz, ref 19200 kHz, bypass 19200 kHz, voltage
> level 4
> ...
> <7> [133.682144] [drm:skl_check_pipe_max_pixel_rate [i915]] Max supported 
> pixel clock with scaling exceeded
> 
> Max pixel rate for 64bpp is 79.2*2 * 8/9 = 140.8 Mhz, which we are
> exceeding. We'd need some way to bump the cdclk for this case, but
> the kernel will only do that for modesets, and it won't account for
> that 8/9 factor. Not sure there is a great way to handle these sorts
> of cases.
> 
> > 
> >   * igt@kms_plane_scaling@pipe-c-scaler-with-pixel-format:
> > - shard-apl:  [PASS][3] -> [FAIL][4] +4 similar issues
> >[3]: 
> > https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6165/shard-apl5/igt@kms_plane_scal...@pipe-c-scaler-with-pixel-format.html
> >[4]: 
> > https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13133/shard-apl7/igt@kms_plane_scal...@pipe-c-scaler-with-pixel-format.html
> 
> <7> [1749.831610] [drm:drm_atomic_helper_check_plane_state] Invalid scaling 
> of plane
> <7> [1749.831620] [drm:drm_rect_debug_print] src: 
> 8.00x8.00+0.00+0.00
> <7> [1749.831625] [drm:drm_rect_debug_print] dst: 1920x1080+0+0
> 
> Not quite sure what's going on here. Unfortunately the debugs don't have
> enough information to see what's going on.

Doh. That's obviously the "no scaling with fp16" hardware limitation
kicking in. I'll need to adjust the test somehow to make it skip fp16
on these platforms.

-- 
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.BAT: success for drm/i915: Vulkan performance query support (rev4)

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Vulkan performance query support (rev4)
URL   : https://patchwork.freedesktop.org/series/60916/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6195 -> Patchwork_13180


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13180/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_fence@basic-await-default:
- fi-icl-y:   [PASS][1] -> [INCOMPLETE][2] ([fdo#107713] / 
[fdo#110246])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6195/fi-icl-y/igt@gem_exec_fe...@basic-await-default.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13180/fi-icl-y/igt@gem_exec_fe...@basic-await-default.html

  
 Possible fixes 

  * igt@kms_frontbuffer_tracking@basic:
- fi-hsw-peppy:   [DMESG-WARN][3] ([fdo#102614]) -> [PASS][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6195/fi-hsw-peppy/igt@kms_frontbuffer_track...@basic.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13180/fi-hsw-peppy/igt@kms_frontbuffer_track...@basic.html

  * igt@prime_vgem@basic-fence-flip:
- fi-icl-u3:  [DMESG-WARN][5] ([fdo#107724]) -> [PASS][6] +1 
similar issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6195/fi-icl-u3/igt@prime_v...@basic-fence-flip.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13180/fi-icl-u3/igt@prime_v...@basic-fence-flip.html

  
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#110246]: https://bugs.freedesktop.org/show_bug.cgi?id=110246


Participating hosts (52 -> 45)
--

  Additional (1): fi-apl-guc 
  Missing(8): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan 
fi-kbl-7560u fi-icl-guc fi-byt-clapper fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_6195 -> Patchwork_13180

  CI_DRM_6195: 06b71939f2477c76f9eecb1dd5e99dcb25cb8371 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5039: 2d4f470bba1cb51ed116fb80b170f717c6294714 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13180: ce2af5b1a9ca2cbbdb66304b5ad559290fb8dbd3 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

ce2af5b1a9ca drm/i915: add support for perf configuration queries
ccd1cbb63c8e drm/i915/perf: allow holding preemption on filtered ctx
151ed539e4ba drm/i915: add a new perf configuration execbuf parameter
bfa3bc40 drm/i915: add syncobj timeline support
3aef0b772b8a drm/i915: introduce a mechanism to extend execbuf2
32203e3c3c4c drm/i915/perf: allow for CS OA configs to be created lazily
abfe9e305ec9 drm/i915/perf: introduce a versioning of the i915-perf uapi

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13180/
___
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: Move intel_dp->prepare_link_train assignment into ddi code

2019-06-05 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915: Move intel_dp->prepare_link_train 
assignment into ddi code
URL   : https://patchwork.freedesktop.org/series/61586/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6187_full -> Patchwork_13169_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@rcs0-s3:
- shard-iclb: [PASS][1] -> [INCOMPLETE][2] ([fdo#107713] / 
[fdo#109100])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb5/igt@gem_ctx_isolat...@rcs0-s3.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13169/shard-iclb3/igt@gem_ctx_isolat...@rcs0-s3.html

  * igt@gem_eio@unwedge-stress:
- shard-snb:  [PASS][3] -> [FAIL][4] ([fdo#109661])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-snb2/igt@gem_...@unwedge-stress.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13169/shard-snb1/igt@gem_...@unwedge-stress.html

  * igt@gem_mmap_gtt@forked-medium-copy-odd:
- shard-iclb: [PASS][5] -> [INCOMPLETE][6] ([fdo#107713])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb4/igt@gem_mmap_...@forked-medium-copy-odd.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13169/shard-iclb1/igt@gem_mmap_...@forked-medium-copy-odd.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#109349])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb2/igt@kms_dp_...@basic-dsc-enable-edp.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13169/shard-iclb8/igt@kms_dp_...@basic-dsc-enable-edp.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-cpu:
- shard-hsw:  [PASS][9] -> [SKIP][10] ([fdo#109271]) +16 similar 
issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-hsw8/igt@kms_frontbuffer_track...@fbc-2p-primscrn-cur-indfb-draw-mmap-cpu.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13169/shard-hsw1/igt@kms_frontbuffer_track...@fbc-2p-primscrn-cur-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
- shard-iclb: [PASS][11] -> [FAIL][12] ([fdo#103167]) +4 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb4/igt@kms_frontbuffer_track...@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13169/shard-iclb5/igt@kms_frontbuffer_track...@fbcpsr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- shard-apl:  [PASS][13] -> [DMESG-WARN][14] ([fdo#108566])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-apl4/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-a.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13169/shard-apl3/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-a.html

  * igt@kms_psr@psr2_cursor_plane_move:
- shard-iclb: [PASS][15] -> [SKIP][16] ([fdo#109441]) +1 similar 
issue
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13169/shard-iclb8/igt@kms_psr@psr2_cursor_plane_move.html

  * igt@kms_setmode@basic:
- shard-kbl:  [PASS][17] -> [FAIL][18] ([fdo#99912])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-kbl1/igt@kms_setm...@basic.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13169/shard-kbl3/igt@kms_setm...@basic.html

  * igt@tools_test@tools_test:
- shard-snb:  [PASS][19] -> [SKIP][20] ([fdo#109271])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-snb4/igt@tools_test@tools_test.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13169/shard-snb4/igt@tools_test@tools_test.html

  
 Possible fixes 

  * {igt@gem_ctx_param@vm}:
- shard-hsw:  [DMESG-WARN][21] ([fdo#110836]) -> [PASS][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-hsw2/igt@gem_ctx_pa...@vm.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13169/shard-hsw6/igt@gem_ctx_pa...@vm.html

  * igt@gem_softpin@noreloc-s3:
- shard-skl:  [INCOMPLETE][23] ([fdo#104108]) -> [PASS][24]
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6187/shard-skl5/igt@gem_soft...@noreloc-s3.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13169/shard-skl6/igt@gem_soft...@noreloc-s3.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
- shard-hsw:  [FAIL][25] ([fdo#105767]) -> [PASS][26]
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Vulkan performance query support (rev4)

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Vulkan performance query support (rev4)
URL   : https://patchwork.freedesktop.org/series/60916/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915/perf: introduce a versioning of the i915-perf uapi
Okay!

Commit: drm/i915/perf: allow for CS OA configs to be created lazily
+drivers/gpu/drm/i915/i915_perf.c:394:37: warning: expression using sizeof(void)

Commit: drm/i915: introduce a mechanism to extend execbuf2
Okay!

Commit: drm/i915: add syncobj timeline support
+./include/linux/mm.h:652:13: error: not a function 

Commit: drm/i915: add a new perf configuration execbuf parameter
+  ^~
+^~
+drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:2114:40: error: ‘struct 
i915_perf_stream’ has no member named ‘hold_preemption’
+drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:2114:47: error: no member 
'hold_preemption' in struct i915_perf_stream
+drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:2115:14: error: ‘struct 
i915_request’ has no member named ‘has_perf’
+drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:2115:28: error: no member 
'has_perf' in struct i915_request
+drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c: In function ‘eb_oa_config’:
-drivers/gpu/drm/i915/gvt/mmio.c:281: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_gpu_error.c:1006:21: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/i915_gpu_error.c:1006:21: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/i915_gpu_error.c:906:23: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/i915_gpu_error.c:906:23: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/i915_perf.c:1528:15: warning: memset with byte count of 
16777216
-drivers/gpu/drm/i915/i915_perf.c:1586:15: warning: memset with byte count of 
16777216
-drivers/gpu/drm/i915/i915_perf.c:395:37: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/i915_scheduler.h:70:23: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/i915_utils.h:220:16: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/i915_utils.h:220:16: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/i915_utils.h:220:16: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/i915_utils.h:220:16: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/i915_utils.h:220:16: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/i915_utils.h:220:16: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/i915_utils.h:220:16: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/i915_vma.c:565:16: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/i915_vma.c:565:16: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/i915_vma.c:566:21: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/i915_vma.c:566:21: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/i915_vma.c:568:24: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/i915_vma.c:568:24: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/i915_vma.c:569:29: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/i915_vma.c:569:29: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/i915_vma.c:582:23: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/i915_vma.c:582:23: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/i915_vma.c:584:23: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/i915_vma.c:655:37: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/i915_vma.c:655:37: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/icl_dsi.c:135:33: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/intel_audio.c:306:15: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/intel

Re: [Intel-gfx] [PATCH 1/2] drm/i915/guc: always use Command Transport Buffers

2019-06-05 Thread Michal Wajdeczko
On Tue, 04 Jun 2019 22:29:20 +0200, Daniele Ceraolo Spurio  
 wrote:



Now that we've moved the gen9 guc blobs to version 32 we have CTB
support on all gens, so no need to restrict the usage to gen11+.
Note that mmio communication is still required for CTB initialization.


s/gen9/Gen9
s/guc/GuC
s/gen11/Gen11
s/mmio/MMIO



Signed-off-by: Daniele Ceraolo Spurio 
Cc: Michal Wajdeczko 
---


For simple enable_guc=2 mode (HuC auth only) use of CTB might be
viewed as small overkill, but I assume fw prefers that way.

With above commit message nits,
Reviewed-by: Michal Wajdeczko 

___
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: Vulkan performance query support (rev4)

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Vulkan performance query support (rev4)
URL   : https://patchwork.freedesktop.org/series/60916/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
abfe9e305ec9 drm/i915/perf: introduce a versioning of the i915-perf uapi
32203e3c3c4c drm/i915/perf: allow for CS OA configs to be created lazily
-:124: CHECK:SPACING: No space is necessary after a cast
#124: FILE: drivers/gpu/drm/i915/i915_perf.c:395:
+   (u32) MI_LOAD_REGISTER_IMM_MAX_REGS);

total: 0 errors, 0 warnings, 1 checks, 311 lines checked
3aef0b772b8a drm/i915: introduce a mechanism to extend execbuf2
-:126: CHECK:SPACING: spaces preferred around that '<<' (ctx:VxV)
#126: FILE: include/uapi/drm/i915_drm.h:1170:
+#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_EXT<<1))
   ^

total: 0 errors, 0 warnings, 1 checks, 103 lines checked
bfa3bc40 drm/i915: add syncobj timeline support
-:341: WARNING:TYPO_SPELLING: 'transfered' may be misspelled - perhaps 
'transferred'?
#341: FILE: drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:2488:
+* The chain's ownership is transfered to the

-:365: ERROR:CODE_INDENT: code indent should use tabs where possible
#365: FILE: drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:2512:
+[DRM_I915_GEM_EXECBUFFER_EXT_TIMELINE_FENCES] = parse_timeline_fences,$

-:365: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#365: FILE: drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:2512:
+[DRM_I915_GEM_EXECBUFFER_EXT_TIMELINE_FENCES] = parse_timeline_fences,$

total: 1 errors, 2 warnings, 0 checks, 511 lines checked
151ed539e4ba drm/i915: add a new perf configuration execbuf parameter
-:44: CHECK:LINE_SPACING: Please don't use multiple blank lines
#44: FILE: drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:1206:
 
+

-:170: ERROR:CODE_INDENT: code indent should use tabs where possible
#170: FILE: drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:2620:
+[DRM_I915_GEM_EXECBUFFER_EXT_PERF] = parse_perf_config,$

-:170: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#170: FILE: drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:2620:
+[DRM_I915_GEM_EXECBUFFER_EXT_PERF] = parse_perf_config,$

total: 1 errors, 1 warnings, 1 checks, 416 lines checked
ccd1cbb63c8e drm/i915/perf: allow holding preemption on filtered ctx
-:140: WARNING:BRACES: braces {} are not necessary for single statement blocks
#140: FILE: drivers/gpu/drm/i915/i915_perf.c:2727:
+   if (IS_HASWELL(dev_priv) && specific_ctx && !props->hold_preemption) {
privileged_op = false;
+   }

total: 0 errors, 1 warnings, 0 checks, 165 lines checked
ce2af5b1a9ca drm/i915: add support for perf configuration queries

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

Re: [Intel-gfx] [PATCH i-g-t 1/2] i915/gem_exec_latency: Measure the latency of context switching

2019-06-05 Thread Mika Kuoppala
Chris Wilson  writes:

> Measure the baseline latency between contexts in order to directly
> compare that with the additional cost of preemption.
>
> Signed-off-by: Chris Wilson 
> ---
>  tests/i915/gem_exec_latency.c | 230 ++
>  1 file changed, 230 insertions(+)
>
> diff --git a/tests/i915/gem_exec_latency.c b/tests/i915/gem_exec_latency.c
> index e56d62780..e88fbbc6a 100644
> --- a/tests/i915/gem_exec_latency.c
> +++ b/tests/i915/gem_exec_latency.c
> @@ -410,6 +410,86 @@ static void latency_from_ring(int fd,
>   }
>  }
>  
> +static void execution_latency(int i915, unsigned int ring, const char *name)
> +{
> + struct drm_i915_gem_exec_object2 obj = {
> + .handle = gem_create(i915, 4095),
> + };
> + struct drm_i915_gem_execbuffer2 execbuf = {
> + .buffers_ptr = to_user_pointer(&obj),
> + .buffer_count = 1,
> + .flags = ring | LOCAL_I915_EXEC_NO_RELOC | 
> LOCAL_I915_EXEC_HANDLE_LUT,
> + };
> + const unsigned int mmio_base = 0x2000;
> + const unsigned int cs_timestamp = mmio_base + 0x358;
> + volatile uint32_t *timestamp;
> + uint32_t *cs, *result;
> +
> + timestamp =
> + (volatile uint32_t *)((volatile char *)igt_global_mmio + 
> cs_timestamp);
> +
> + obj.handle = gem_create(i915, 4096);
> + obj.flags = EXEC_OBJECT_PINNED;
> + result = gem_mmap__wc(i915, obj.handle, 0, 4096, PROT_WRITE);
> +
> + for (int i = 0; i < 16; i++) {
> + cs = result + 16 * i;
> + *cs++ = 0x24 << 23 | 2; /* SRM */
> + *cs++ = cs_timestamp;
> + *cs++ = 4096 - 16 * 4 + i * 4;
> + *cs++ = 0;
> + *cs++ = 0xa << 23;

Why not MI_BATCH_BUFFER_END? To emphasize that we have
multiple batches inside a bo?

> + }
> +
> + cs = result + 1024 - 16;
> +
> + for (int length = 2; length <= 16; length <<= 1) {
> + struct igt_mean submit, batch, total;
> + int last = length - 1;
> +
> + igt_mean_init(&submit);
> + igt_mean_init(&batch);
> + igt_mean_init(&total);
> +
> + igt_until_timeout(2) {
> + uint32_t now, end;
> +
> + cs[last] = 0;
> +
> + now = *timestamp;
> + for (int i = 0; i < length; i++) {
> + execbuf.batch_start_offset = 64 * i;
> + gem_execbuf(i915, &execbuf);
> + }
> + while (!((volatile uint32_t *)cs)[last])
> + ;
> + end = *timestamp;
> +
> + igt_mean_add(&submit, (cs[0] - now) * rcs_clock);
> + igt_mean_add(&batch, (cs[last] - cs[0]) * rcs_clock / 
> last);

Just curious of what do you use of inter batch latency?

Oh and do we need to to take the rcs_clock resolution into account
on result calculation. Prolly not as it seems to be ticking fast enough
for 0.1us accuracy.

> + igt_mean_add(&total, (end - now) * rcs_clock);
> + }
> +
> + igt_info("%sx%d Submission latency: %.2f±%.2fus\n",
> +  name, length,
> +  1e-3 * igt_mean_get(&submit),
> +  1e-3 * sqrt(igt_mean_get_variance(&submit)));
> +
> + igt_info("%sx%d Inter-batch latency: %.2f±%.2fus\n",
> +  name, length,
> +  1e-3 * igt_mean_get(&batch),
> +  1e-3 * sqrt(igt_mean_get_variance(&batch)));
> +
> + igt_info("%sx%d End-to-end latency: %.2f±%.2fus\n",
> +  name, length,
> +  1e-3 * igt_mean_get(&total),
> +  1e-3 * sqrt(igt_mean_get_variance(&total)));
> + }
> +
> + munmap(result, 4096);
> + gem_close(i915, obj.handle);
> +}
> +
>  static void
>  __submit_spin(int fd, igt_spin_t *spin, unsigned int flags)
>  {
> @@ -616,6 +696,142 @@ rthog_latency_on_ring(int fd, unsigned int engine, 
> const char *name, unsigned in
>   munmap(results, MMAP_SZ);
>  }
>  
> +static void context_switch(int i915,
> +unsigned int engine, const char *name,
> +unsigned int flags)
> +{
> + struct drm_i915_gem_exec_object2 obj[2];
> + struct drm_i915_gem_relocation_entry reloc[5];
> + struct drm_i915_gem_execbuffer2 eb;
> + uint32_t *cs, *bbe, *results, v;
> + unsigned int mmio_base;
> + struct igt_mean mean;
> + uint32_t ctx[2];
> +
> + /* XXX i915_query()! */
> + switch (engine) {
> + case I915_EXEC_DEFAULT:
> + case I915_EXEC_RENDER:
> + mmio_base = 0x2000;
> + break;
> +#if 0
> + case I915_EXEC_BSD:
> + mmio_base = 0x12000;
> + break;
> +#endif

It seems to be there according to bspec. Timestamps don't
work with it?

> + case I915_E

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: rename header test build commands to avoid conflicts

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915: rename header test build commands to avoid conflicts
URL   : https://patchwork.freedesktop.org/series/61655/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6195 -> Patchwork_13179


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13179/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_exec@basic:
- fi-cml-u:   [PASS][1] -> [INCOMPLETE][2] ([fdo#110566])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6195/fi-cml-u/igt@gem_ctx_e...@basic.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13179/fi-cml-u/igt@gem_ctx_e...@basic.html

  
 Possible fixes 

  * igt@kms_frontbuffer_tracking@basic:
- fi-hsw-peppy:   [DMESG-WARN][3] ([fdo#102614]) -> [PASS][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6195/fi-hsw-peppy/igt@kms_frontbuffer_track...@basic.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13179/fi-hsw-peppy/igt@kms_frontbuffer_track...@basic.html

  * igt@prime_vgem@basic-fence-flip:
- fi-icl-u3:  [DMESG-WARN][5] ([fdo#107724]) -> [PASS][6] +1 
similar issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6195/fi-icl-u3/igt@prime_v...@basic-fence-flip.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13179/fi-icl-u3/igt@prime_v...@basic-fence-flip.html

  
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#110566]: https://bugs.freedesktop.org/show_bug.cgi?id=110566


Participating hosts (52 -> 44)
--

  Additional (1): fi-apl-guc 
  Missing(9): fi-ilk-m540 fi-hsw-4200u fi-byt-j1900 fi-byt-squawks 
fi-bsw-cyan fi-pnv-d510 fi-kbl-7560u fi-byt-clapper fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_6195 -> Patchwork_13179

  CI_DRM_6195: 06b71939f2477c76f9eecb1dd5e99dcb25cb8371 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5039: 2d4f470bba1cb51ed116fb80b170f717c6294714 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13179: 372ace4ba9e48be405ce0624313d1fba5e7b76da @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

372ace4ba9e4 drm/i915: rename header test build commands to avoid conflicts

== Logs ==

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

Re: [Intel-gfx] [PATCH] drm/i915/wopcm: update default size for gen11+

2019-06-05 Thread Michal Wajdeczko
On Wed, 05 Jun 2019 01:15:29 +0200, Daniele Ceraolo Spurio  
 wrote:



The size has been increased to 2MB starting from gen11. GuC and HuC FWs


nit: s/gen11/Gen11


fit in 1MB so we were fine even with the legacy define, but let's still
move to the correct one before the blobs grow to avoid being caught off
guard in the future.

Bspec: 44982


I think for ICL this should be 12690


Signed-off-by: Daniele Ceraolo Spurio 
Cc: Michal Wajdeczko 
---
 drivers/gpu/drm/i915/intel_wopcm.c | 10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_wopcm.c  
b/drivers/gpu/drm/i915/intel_wopcm.c

index f82a415ea2ba..6cb993eea206 100644
--- a/drivers/gpu/drm/i915/intel_wopcm.c
+++ b/drivers/gpu/drm/i915/intel_wopcm.c
@@ -41,8 +41,9 @@
  * context).
  */
-/* Default WOPCM size 1MB. */
-#define GEN9_WOPCM_SIZE(1024 * 1024)
+/* Default WOPCM size is 2MB from gen11, 1MB on previous platforms */


nit: s/gen11/Gen11


+#define GEN11_WOPCM_SIZE   (SZ_2M)
+#define GEN9_WOPCM_SIZE(SZ_1M)
 /* 16KB WOPCM (RSVD WOPCM) is reserved from HuC firmware top. */
 #define WOPCM_RESERVED_SIZE(16 * 1024)
@@ -71,7 +72,10 @@
  */
 void intel_wopcm_init_early(struct intel_wopcm *wopcm)
 {
-   wopcm->size = GEN9_WOPCM_SIZE;
+   if (INTEL_GEN(wopcm_to_i915(wopcm)) >= 11)
+   wopcm->size = GEN11_WOPCM_SIZE;
+   else
+   wopcm->size = GEN9_WOPCM_SIZE;


While here, maybe we should not try to setup WOPCM size on pre-Gen9
platforms ? Then we can drop below log if WOPCM is zero/not available.


DRM_DEBUG_DRIVER("WOPCM size: %uKiB\n", wopcm->size / 1024);
 }


With above,
Reviewed-by: Michal Wajdeczko 
___
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/ioctl: Ditch DRM_UNLOCKED except for the legacy vblank ioctl (rev2)

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/ioctl: Ditch DRM_UNLOCKED except for the legacy vblank ioctl (rev2)
URL   : https://patchwork.freedesktop.org/series/61299/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6195 -> Patchwork_13178


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13178/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_cursor_legacy@basic-flip-before-cursor-atomic:
- fi-icl-u3:  [PASS][1] -> [DMESG-WARN][2] ([fdo#107724]) +2 
similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6195/fi-icl-u3/igt@kms_cursor_leg...@basic-flip-before-cursor-atomic.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13178/fi-icl-u3/igt@kms_cursor_leg...@basic-flip-before-cursor-atomic.html

  
 Possible fixes 

  * igt@prime_vgem@basic-fence-flip:
- fi-icl-u3:  [DMESG-WARN][3] ([fdo#107724]) -> [PASS][4] +1 
similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6195/fi-icl-u3/igt@prime_v...@basic-fence-flip.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13178/fi-icl-u3/igt@prime_v...@basic-fence-flip.html

  
 Warnings 

  * igt@kms_frontbuffer_tracking@basic:
- fi-icl-u3:  [FAIL][5] ([fdo#103167]) -> [DMESG-FAIL][6] 
([fdo#103167] / [fdo#107724])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6195/fi-icl-u3/igt@kms_frontbuffer_track...@basic.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13178/fi-icl-u3/igt@kms_frontbuffer_track...@basic.html

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


Participating hosts (52 -> 43)
--

  Missing(9): fi-ilk-m540 fi-hsw-4200u fi-hsw-peppy fi-byt-squawks 
fi-bsw-cyan fi-icl-y fi-kbl-7560u fi-byt-clapper fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_6195 -> Patchwork_13178

  CI_DRM_6195: 06b71939f2477c76f9eecb1dd5e99dcb25cb8371 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5039: 2d4f470bba1cb51ed116fb80b170f717c6294714 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13178: b69c7ced50903ace5eabde3d4a13c30ffb2400d7 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

b69c7ced5090 drm/ioctl: Ditch DRM_UNLOCKED except for the legacy vblank ioctl

== Logs ==

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

Re: [Intel-gfx] [PATCH v2] drm/i915: Fix 90/270 degree rotated RGB565 src coord checks

2019-06-05 Thread Maarten Lankhorst
Op 30-04-2019 om 19:33 schreef Ville Syrjala:
> From: Ville Syrjälä 
>
> Supposedly both src coordinates have to even when doing 90/270
> degree rotation with RGB565. This is definitely true for the
> X coordinate (we just get a black screen when it is odd). My
> experiments didn't show any misbehaviour with an odd
> Y coordinate, but let's trust the spec and reject that one
> as well.
>
> v2: Ignore ccs hsub/vsub
>
> Signed-off-by: Ville Syrjälä 
> ---
>  drivers/gpu/drm/i915/intel_sprite.c | 28 +---
>  1 file changed, 17 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_sprite.c 
> b/drivers/gpu/drm/i915/intel_sprite.c
> index 2913e89280d7..b133f254e26d 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c
> @@ -294,26 +294,32 @@ int intel_plane_check_src_coordinates(struct 
> intel_plane_state *plane_state)
>   src->y1 = src_y << 16;
>   src->y2 = (src_y + src_h) << 16;
>  
> - if (!fb->format->is_yuv)
> - return 0;
> -
> - /* YUV specific checks */
> - if (!rotated) {
> + if (fb->format->format == DRM_FORMAT_RGB565 && rotated) {
> + hsub = 2;
> + vsub = 2;
> + } else if (is_ccs_modifier(fb->modifier)) {
> + hsub = 1;
> + vsub = 1;

Just return 0 here, with a comment how ccs sets vsub/hsub. Less confusing.

Other than that.

Reviewed-by: Maarten Lankhorst 

> + } else {
>   hsub = fb->format->hsub;
>   vsub = fb->format->vsub;
> - } else {
> - hsub = vsub = max(fb->format->hsub, fb->format->vsub);
>   }
>  
> + if (rotated)
> + hsub = vsub = max(hsub, vsub);
> +
> + if (hsub == 1 && vsub == 1)
> + return 0;
> +
>   if (src_x % hsub || src_w % hsub) {
> - DRM_DEBUG_KMS("src x/w (%u, %u) must be a multiple of %u for 
> %sYUV planes\n",
> -   src_x, src_w, hsub, rotated ? "rotated " : "");
> + DRM_DEBUG_KMS("src x/w (%u, %u) must be a multiple of %u 
> (rotated: %s)\n",
> +   src_x, src_w, hsub, yesno(rotated));
>   return -EINVAL;
>   }
>  
>   if (src_y % vsub || src_h % vsub) {
> - DRM_DEBUG_KMS("src y/h (%u, %u) must be a multiple of %u for 
> %sYUV planes\n",
> -   src_y, src_h, vsub, rotated ? "rotated " : "");
> + DRM_DEBUG_KMS("src y/h (%u, %u) must be a multiple of %u 
> (rotated: %s)\n",
> +   src_y, src_h, vsub, yesno(rotated));
>   return -EINVAL;
>   }
>  


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

Re: [Intel-gfx] [PATCH 5/5] drm/i915: Improve WRPLL reference clock readout on HSW/BDW

2019-06-05 Thread Maarten Lankhorst
Op 04-06-2019 om 22:09 schreef Ville Syrjala:
> From: Ville Syrjälä 
>
> On non-ULT HSW the "special" WRPLL reference clock select
> actually means non-SSC. Take that into account when reading
> out the WRPLL state.
>
> Also the non-SSC reference may be either 24MHz or 135MHz,
> which we can read out from FUSE_STRAP3. The BDW docs actually
> say: "also indicates whether the CPU and PCH are in a single
> package or separate packages", so it may be that this is not
> actually required and we could just assume 135 MHz (just like
> the code already did). But it doesn't really hurt to read this
> out as the HSW docs aren't quite so clear.
>
> Signed-off-by: Ville Syrjälä 
> ---
>  drivers/gpu/drm/i915/i915_reg.h  |  3 +++
>  drivers/gpu/drm/i915/intel_ddi.c | 15 ++-
>  2 files changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index b7dd42bfffaa..533b1d8d23cb 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -7513,6 +7513,9 @@ enum {
>  #define  ILK_DESKTOP (1 << 23)
>  #define  HSW_CPU_SSC_ENABLE  (1 << 21)
>  
> +#define FUSE_STRAP3  _MMIO(0x42020)
> +#define  HSW_REF_CLK_SELECT  (1 << 1)
> +
>  #define ILK_DSPCLK_GATE_D_MMIO(0x42020)
>  #define   ILK_VRHUNIT_CLOCK_GATE_DISABLE (1 << 28)
>  #define   ILK_DPFCUNIT_CLOCK_GATE_DISABLE(1 << 9)
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c 
> b/drivers/gpu/drm/i915/intel_ddi.c
> index fc9bcbd75c3a..49dab3e72019 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -1231,6 +1231,19 @@ static int hsw_ddi_calc_wrpll_link(struct 
> drm_i915_private *dev_priv,
>   wrpll = I915_READ(reg);
>   switch (wrpll & WRPLL_REF_MASK) {
>   case WRPLL_REF_SPECIAL_HSW:
> + /*
> +  * muxed-SSC for BDW.
> +  * non-SSC for non-ULT HSW. Check FUSE_STRAP3
> +  * for the non-SSC reference frequency.
> +  */
> + if (IS_HASWELL(dev_priv) && !IS_HSW_ULT(dev_priv)) {
> + if (I915_READ(FUSE_STRAP3) & HSW_REF_CLK_SELECT)
> + refclk = 24;
> + else
> + refclk = 135;
> + break;
> + }
> + /* fall through */
>   case WRPLL_REF_PCH_SSC:
>   /*
>* We could calculate spread here, but our checking
> @@ -1243,7 +1256,7 @@ static int hsw_ddi_calc_wrpll_link(struct 
> drm_i915_private *dev_priv,
>   refclk = 2700;
>   break;
>   default:
> - WARN(1, "bad wrpll refclk\n");
> + MISSING_CASE(wrpll);
>   return 0;
>   }
>  

Other patches look sane.

Reviewed-by: Maarten Lankhorst 

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

Re: [Intel-gfx] [PATCH 2/5] drm/i915: Rename HSW/BDW PLL bits

2019-06-05 Thread Maarten Lankhorst
Op 04-06-2019 om 22:09 schreef Ville Syrjala:
> From: Ville Syrjälä 
>
> Give the PLL control register bits better names on HSW/BDW.
>
> Signed-off-by: Ville Syrjälä 
> ---
>  drivers/gpu/drm/i915/i915_reg.h   | 37 ++-
>  drivers/gpu/drm/i915/intel_ddi.c  | 16 ++--
>  drivers/gpu/drm/i915/intel_display.c  |  8 +++---
>  drivers/gpu/drm/i915/intel_dpll_mgr.c |  4 +--
>  4 files changed, 39 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index d5fee72fc079..b7dd42bfffaa 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -9465,24 +9465,33 @@ enum skl_power_gate {
>  /* SPLL */
>  #define SPLL_CTL _MMIO(0x46020)
>  #define  SPLL_PLL_ENABLE (1 << 31)
> -#define  SPLL_PLL_SSC(1 << 28)
> -#define  SPLL_PLL_NON_SSC(2 << 28)
> -#define  SPLL_PLL_LCPLL  (3 << 28)
> -#define  SPLL_PLL_REF_MASK   (3 << 28)
> -#define  SPLL_PLL_FREQ_810MHz(0 << 26)
> -#define  SPLL_PLL_FREQ_1350MHz   (1 << 26)
> -#define  SPLL_PLL_FREQ_2700MHz   (2 << 26)
> -#define  SPLL_PLL_FREQ_MASK  (3 << 26)
> +#define  SPLL_REF_BCLK   (0 << 28)
> +#define  SPLL_REF_MUXED_SSC  (1 << 28) /* CPU SSC if fused enabled, 
> PCH SSC otherwise */
> +#define  SPLL_REF_NON_SSC_HSW(2 << 28)
> +#define  SPLL_REF_PCH_SSC_BDW(2 << 28)
> +#define  SPLL_REF_LCPLL  (3 << 28)
> +#define  SPLL_REF_MASK   (3 << 28)
> +#define  SPLL_REF_BCLK   (0 << 28)
> +#define  SPLL_REF_SSC(1 << 28)
> +#define  SPLL_REF_NON_SSC(2 << 28)
> +#define  SPLL_REF_LCPLL  (3 << 28)

? Bit unclear or double definitions, at least of SPLL_REF_MASK.


> +#define  SPLL_REF_MASK   (3 << 28)
> +#define  SPLL_FREQ_810MHz(0 << 26)
> +#define  SPLL_FREQ_1350MHz   (1 << 26)
> +#define  SPLL_FREQ_2700MHz   (2 << 26)
> +#define  SPLL_FREQ_MASK  (3 << 26)
>  
>  /* WRPLL */
>  #define _WRPLL_CTL1  0x46040
>  #define _WRPLL_CTL2  0x46060
>  #define WRPLL_CTL(pll)   _MMIO_PIPE(pll, _WRPLL_CTL1, 
> _WRPLL_CTL2)
>  #define  WRPLL_PLL_ENABLE(1 << 31)
> -#define  WRPLL_PLL_SSC   (1 << 28)
> -#define  WRPLL_PLL_NON_SSC   (2 << 28)
> -#define  WRPLL_PLL_LCPLL (3 << 28)
> -#define  WRPLL_PLL_REF_MASK  (3 << 28)
> +#define  WRPLL_REF_BCLK  (0 << 28)
> +#define  WRPLL_REF_PCH_SSC   (1 << 28)
> +#define  WRPLL_REF_MUXED_SSC_BDW (2 << 28) /* CPU SSC if fused enabled, 
> PCH SSC otherwise */
> +#define  WRPLL_REF_SPECIAL_HSW   (2 << 28) /* muxed SSC (ULT), 
> non-SSC (non-ULT) */
> +#define  WRPLL_REF_LCPLL (3 << 28)
> +#define  WRPLL_REF_MASK  (3 << 28)
>  /* WRPLL divider programming */
>  #define  WRPLL_DIVIDER_REFERENCE(x)  ((x) << 0)
>  #define  WRPLL_DIVIDER_REF_MASK  (0xff)
> @@ -9548,6 +9557,10 @@ enum skl_power_gate {
>  #define LCPLL_CTL_MMIO(0x130040)
>  #define  LCPLL_PLL_DISABLE   (1 << 31)
>  #define  LCPLL_PLL_LOCK  (1 << 30)
> +#define  LCPLL_REF_NON_SSC   (0 << 28)
> +#define  LCPLL_REF_BCLK  (2 << 28)
> +#define  LCPLL_REF_PCH_SSC   (3 << 28)
> +#define  LCPLL_REF_MASK  (3 << 28)
>  #define  LCPLL_CLK_FREQ_MASK (3 << 26)
>  #define  LCPLL_CLK_FREQ_450  (0 << 26)
>  #define  LCPLL_CLK_FREQ_54O_BDW  (1 << 26)
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c 
> b/drivers/gpu/drm/i915/intel_ddi.c
> index 350eaf54f01f..183f91abda19 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -1231,9 +1231,9 @@ static int hsw_ddi_calc_wrpll_link(struct 
> drm_i915_private *dev_priv,
>   u32 wrpll;
>  
>   wrpll = I915_READ(reg);
> - switch (wrpll & WRPLL_PLL_REF_MASK) {
> - case WRPLL_PLL_SSC:
> - case WRPLL_PLL_NON_SSC:
> + switch (wrpll & WRPLL_REF_MASK) {
> + case WRPLL_REF_SPECIAL_HSW:
> + case WRPLL_REF_PCH_SSC:
>   /*
>* We could calculate spread here, but our checking
>* code only cares about 5% accuracy, and spread is a max of
> @@ -1241,7 +1241,7 @@ static int hsw_ddi_calc_wrpll_link(struct 
> drm_i915_private *dev_priv,
>*/
>   refclk = 135;
>   break;
> - case WRPLL_PLL_LCPLL:
> + case WRPLL_REF_LCPLL:
>   refclk = LC_FREQ;
>   break;
>   default:
> @@ -1613,12 +1613,12 @@ static void hsw_ddi_clock_get(struct intel_encoder 
> *encoder,
>   link_cloc

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/ioctl: Ditch DRM_UNLOCKED except for the legacy vblank ioctl (rev2)

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/ioctl: Ditch DRM_UNLOCKED except for the legacy vblank ioctl (rev2)
URL   : https://patchwork.freedesktop.org/series/61299/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
b69c7ced5090 drm/ioctl: Ditch DRM_UNLOCKED except for the legacy vblank ioctl
-:14: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ 
chars of sha1> ("")' - ie: 'commit ea487835e887 ("drm: Enforce 
unlocked ioctl operation for kms driver ioctls")'
#14: 
commit ea487835e8876abf7ad909636e308c801a2bcda6

-:24: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ 
chars of sha1> ("")' - ie: 'commit ed8b67040965 ("drm: convert 
drm_ioctl to unlocked_ioctl")'
#24: 
commit ed8b67040965e4fe695db333d5914e18ea5f146f

-:42: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ 
chars of sha1> ("")' - ie: 'commit 8f4ff2b06afc ("drm: do not sleep 
on vblank while holding a mutex")'
#42: 
commit 8f4ff2b06afcd6f151868474a432c603057eaf56

-:52: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ 
chars of sha1> ("")' - ie: 'commit fdd5b877e9eb ("drm: Enforce 
BKL-less ioctls for modern drivers")'
#52: 
commit fdd5b877e9ebc2029e1373b4a3cd057329a9ab7a

-:231: WARNING:LONG_LINE: line over 100 characters
#231: FILE: drivers/gpu/drm/drm_ioctl.c:650:
+   DRM_IOCTL_DEF(DRM_IOCTL_PRIME_HANDLE_TO_FD, 
drm_prime_handle_to_fd_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),

-:231: CHECK:SPACING: spaces preferred around that '|' (ctx:VxV)
#231: FILE: drivers/gpu/drm/drm_ioctl.c:650:
+   DRM_IOCTL_DEF(DRM_IOCTL_PRIME_HANDLE_TO_FD, 
drm_prime_handle_to_fd_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),

  ^

-:232: WARNING:LONG_LINE: line over 100 characters
#232: FILE: drivers/gpu/drm/drm_ioctl.c:651:
+   DRM_IOCTL_DEF(DRM_IOCTL_PRIME_FD_TO_HANDLE, 
drm_prime_fd_to_handle_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),

-:232: CHECK:SPACING: spaces preferred around that '|' (ctx:VxV)
#232: FILE: drivers/gpu/drm/drm_ioctl.c:651:
+   DRM_IOCTL_DEF(DRM_IOCTL_PRIME_FD_TO_HANDLE, 
drm_prime_fd_to_handle_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),

  ^

-:335: WARNING:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch 
author 'Daniel Vetter '

total: 4 errors, 3 warnings, 2 checks, 240 lines checked

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

Re: [Intel-gfx] [PATCH 3/7] drm/i915: Allow page pinning to be in the background

2019-06-05 Thread Matthew Auld
On Mon, 3 Jun 2019 at 18:49, Chris Wilson  wrote:
>
> Assume that pages may be pinned in a background task and use a
> completion event to synchronise with callers that must access the pages
> immediately.
>
> Signed-off-by: Chris Wilson 
> ---
>  drivers/gpu/drm/i915/gem/i915_gem_object.c|  1 +
>  drivers/gpu/drm/i915/gem/i915_gem_object.h|  7 +--
>  .../gpu/drm/i915/gem/i915_gem_object_types.h  |  3 ++
>  drivers/gpu/drm/i915/gem/i915_gem_pages.c | 53 +++
>  4 files changed, 52 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c 
> b/drivers/gpu/drm/i915/gem/i915_gem_object.c
> index 2702e060102e..2c5a02274170 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_object.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c
> @@ -79,6 +79,7 @@ void i915_gem_object_init(struct drm_i915_gem_object *obj,
> obj->mm.madv = I915_MADV_WILLNEED;
> INIT_RADIX_TREE(&obj->mm.get_page.radix, GFP_KERNEL | __GFP_NOWARN);
> mutex_init(&obj->mm.get_page.lock);
> +   init_completion(&obj->mm.completion);
>  }
>
>  /**
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h 
> b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> index 7cb1871d7128..194e4fb6a259 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> @@ -240,7 +240,7 @@ int i915_gem_object_get_pages(struct 
> drm_i915_gem_object *obj);
>  int __i915_gem_object_get_pages(struct drm_i915_gem_object *obj);
>
>  static inline int __must_check
> -i915_gem_object_pin_pages(struct drm_i915_gem_object *obj)
> +i915_gem_object_pin_pages_async(struct drm_i915_gem_object *obj)
>  {
> might_lock(&obj->mm.lock);
>
> @@ -250,6 +250,9 @@ i915_gem_object_pin_pages(struct drm_i915_gem_object *obj)
> return __i915_gem_object_get_pages(obj);
>  }
>
> +int __must_check
> +i915_gem_object_pin_pages(struct drm_i915_gem_object *obj);
> +
>  static inline bool
>  i915_gem_object_has_pages(struct drm_i915_gem_object *obj)
>  {
> @@ -273,9 +276,7 @@ i915_gem_object_has_pinned_pages(struct 
> drm_i915_gem_object *obj)
>  static inline void
>  __i915_gem_object_unpin_pages(struct drm_i915_gem_object *obj)
>  {
> -   GEM_BUG_ON(!i915_gem_object_has_pages(obj));
> GEM_BUG_ON(!i915_gem_object_has_pinned_pages(obj));
> -
> atomic_dec(&obj->mm.pages_pin_count);
>  }
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h 
> b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
> index 41d2e7c8e332..615a59b927d6 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
> @@ -7,6 +7,7 @@
>  #ifndef __I915_GEM_OBJECT_TYPES_H__
>  #define __I915_GEM_OBJECT_TYPES_H__
>
> +#include 
>  #include 
>
>  #include 
> @@ -211,6 +212,8 @@ struct drm_i915_gem_object {
>  */
> struct list_head link;
>
> +   struct completion completion;
> +
> /**
>  * Advice: are the backing pages purgeable?
>  */
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pages.c 
> b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
> index 7868dd48d931..68262231f56f 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_pages.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
> @@ -72,21 +72,18 @@ void __i915_gem_object_set_pages(struct 
> drm_i915_gem_object *obj,
>
> spin_unlock(&i915->mm.obj_lock);
> }
> +
> +   complete_all(&obj->mm.completion);
>  }

Worth having  __i915_gem_object_set_pages_error(struct
drm_i915_gem_object, int err) at some point?

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

Re: [Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [01/10] drm/i915: Add windowing for primary planes on gen2/3 and chv

2019-06-05 Thread Maarten Lankhorst
Op 31-05-2019 om 15:05 schreef Ville Syrjälä:
> On Thu, May 30, 2019 at 05:43:00AM -, Patchwork wrote:
>> == Series Details ==
>>
>> Series: series starting with [01/10] drm/i915: Add windowing for primary 
>> planes on gen2/3 and chv
>> URL   : https://patchwork.freedesktop.org/series/61345/
>> State : failure
>>
>> == Summary ==
>>
>> CI Bug Log - changes from CI_DRM_6165_full -> Patchwork_13133_full
>> 
>>
>> Summary
>> ---
>>
>>   **FAILURE**
>>
>>   Serious unknown changes coming with Patchwork_13133_full absolutely need 
>> to be
>>   verified manually.
>>   
>>   If you think the reported changes have nothing to do with the changes
>>   introduced in Patchwork_13133_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_13133_full:
>>
>> ### IGT changes ###
>>
>>  Possible regressions 
>>
>>   * igt@kms_plane@pixel-format-pipe-a-planes:
>> - shard-glk:  [PASS][1] -> [FAIL][2]
>>[1]: 
>> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6165/shard-glk3/igt@kms_pl...@pixel-format-pipe-a-planes.html
>>[2]: 
>> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13133/shard-glk8/igt@kms_pl...@pixel-format-pipe-a-planes.html
> <7> [125.370679] [drm:drm_mode_debug_printmodeline] Modeline "1920x1080": 60 
> 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x48 0x5
> ...
> <7> [125.542650] [drm:intel_dump_cdclk_state [i915]] Changing CDCLK to 79200 
> kHz, VCO 633600 kHz, ref 19200 kHz, bypass 19200 kHz, voltage
> level 4
> ...
> <7> [133.682144] [drm:skl_check_pipe_max_pixel_rate [i915]] Max supported 
> pixel clock with scaling exceeded
>
> Max pixel rate for 64bpp is 79.2*2 * 8/9 = 140.8 Mhz, which we are
> exceeding. We'd need some way to bump the cdclk for this case, but
> the kernel will only do that for modesets, and it won't account for
> that 8/9 factor. Not sure there is a great way to handle these sorts
> of cases.
>
>>   * igt@kms_plane_scaling@pipe-c-scaler-with-pixel-format:
>> - shard-apl:  [PASS][3] -> [FAIL][4] +4 similar issues
>>[3]: 
>> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6165/shard-apl5/igt@kms_plane_scal...@pipe-c-scaler-with-pixel-format.html
>>[4]: 
>> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13133/shard-apl7/igt@kms_plane_scal...@pipe-c-scaler-with-pixel-format.html
> <7> [1749.831610] [drm:drm_atomic_helper_check_plane_state] Invalid scaling 
> of plane
> <7> [1749.831620] [drm:drm_rect_debug_print] src: 
> 8.00x8.00+0.00+0.00
> <7> [1749.831625] [drm:drm_rect_debug_print] dst: 1920x1080+0+0
>
> Not quite sure what's going on here. Unfortunately the debugs don't have
> enough information to see what's going on.

For first 6 patches

Reviewed-by: Maarten Lankhorst 

What happens on < gen9 btw with half float support?

Enabling patches look sane, but worried about hw coverage.

So if you are sure it works on >   
>>  Suppressed 
>>
>>   The following results come from untrusted machines, tests, or statuses.
>>   They do not affect the overall result.
>>
>>   * igt@gem_workarounds@suspend-resume-context:
>> - {shard-iclb}:   [PASS][5] -> [FAIL][6] +1 similar issue
>>[5]: 
>> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6165/shard-iclb3/igt@gem_workarou...@suspend-resume-context.html
>>[6]: 
>> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13133/shard-iclb2/igt@gem_workarou...@suspend-resume-context.html
>>
>>   
>> Known issues
>> 
>>
>>   Here are the changes found in Patchwork_13133_full that come from known 
>> issues:
>>
>> ### IGT changes ###
>>
>>  Issues hit 
>>
>>   * igt@gem_ctx_switch@basic-all-heavy:
>> - shard-hsw:  [PASS][7] -> [INCOMPLETE][8] ([fdo#103540])
>>[7]: 
>> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6165/shard-hsw5/igt@gem_ctx_swi...@basic-all-heavy.html
>>[8]: 
>> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13133/shard-hsw1/igt@gem_ctx_swi...@basic-all-heavy.html
>>
>>   * igt@i915_pm_rc6_residency@rc6-accuracy:
>> - shard-kbl:  [PASS][9] -> [SKIP][10] ([fdo#109271])
>>[9]: 
>> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6165/shard-kbl3/igt@i915_pm_rc6_reside...@rc6-accuracy.html
>>[10]: 
>> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13133/shard-kbl2/igt@i915_pm_rc6_reside...@rc6-accuracy.html
>> - shard-snb:  [PASS][11] -> [SKIP][12] ([fdo#109271])
>>[11]: 
>> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6165/shard-snb7/igt@i915_pm_rc6_reside...@rc6-accuracy.html
>>[12]: 
>> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13133/shard-snb6/igt@i915_pm_rc6_reside...@rc6-accuracy.html
>>
>>   * igt@i915_suspend@fence-restore-untiled:
>> - shard-apl:  [PASS

[Intel-gfx] [PATCH v4 6/7] drm/i915/perf: allow holding preemption on filtered ctx

2019-06-05 Thread Lionel Landwerlin
We would like to make use of perf in Vulkan. The Vulkan API is much
lower level than OpenGL, with applications directly exposed to the
concept of command buffers (pretty much equivalent to our batch
buffers). In Vulkan, queries are always limited in scope to a command
buffer. In OpenGL, the lack of command buffer concept meant that
queries' duration could span multiple command buffers.

With that restriction gone in Vulkan, we would like to simplify
measuring performance just by measuring the deltas between the counter
snapshots written by 2 MI_RECORD_PERF_COUNT commands, rather than the
more complex scheme we currently have in the GL driver, using 2
MI_RECORD_PERF_COUNT commands and doing some post processing on the
stream of OA reports, coming from the global OA buffer, to remove any
unrelated deltas in between the 2 MI_RECORD_PERF_COUNT.

Disabling preemption only apply to a single context with which want to
query performance counters for and is considered a privileged
operation, by default protected by CAP_SYS_ADMIN. It is possible to
enable it for a normal user by disabling the paranoid stream setting.

v2: Store preemption setting in intel_context (Chris)

v3: Use priorities to avoid preemption rather than the HW mechanism

v4: Just modify the port priority reporting function

Signed-off-by: Lionel Landwerlin 
---
 drivers/gpu/drm/i915/gt/intel_lrc.c |  7 ++-
 drivers/gpu/drm/i915/i915_drv.c |  2 +-
 drivers/gpu/drm/i915/i915_drv.h | 13 
 drivers/gpu/drm/i915/i915_perf.c| 22 +++--
 drivers/gpu/drm/i915/i915_priolist_types.h  |  7 +++
 drivers/gpu/drm/i915/i915_request.c |  1 +
 drivers/gpu/drm/i915/i915_request.h |  1 +
 drivers/gpu/drm/i915/intel_guc_submission.c | 10 +-
 include/uapi/drm/i915_drm.h | 11 +++
 9 files changed, 69 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index ed19f4e53d31..b32b04b268eb 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -233,7 +233,12 @@ static inline int rq_prio(const struct i915_request *rq)
 
 static int effective_prio(const struct i915_request *rq)
 {
-   int prio = rq_prio(rq);
+   int prio;
+
+   if (rq->has_perf)
+   prio = I915_USER_PRIORITY(I915_PRIORITY_PERF);
+   else
+   prio = rq_prio(rq);
 
/*
 * On unwinding the active request, we give it a priority bump
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 75029d1a3802..984b76a09cfa 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -476,7 +476,7 @@ static int i915_getparam_ioctl(struct drm_device *dev, void 
*data,
value = INTEL_INFO(dev_priv)->has_coherent_ggtt;
break;
case I915_PARAM_PERF_REVISION:
-   value = 1;
+   value = 2;
break;
case I915_PARAM_HAS_EXEC_PERF_CONFIG:
/* Obviously requires perf support. */
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 7b82bb85e45d..1cb41f398c05 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1292,6 +1292,19 @@ struct i915_perf_stream {
 */
bool enabled;
 
+   /**
+* @hold_preemption: Whether preemption is put on hold for command
+* submissions done on the @ctx. This is useful for some drivers that
+* cannot easily post process the OA buffer context to subtract delta
+* of performance counters not associated with @ctx.
+*/
+   bool hold_preemption;
+
+   /**
+* @last_config_request
+*/
+   struct i915_request *last_config_request;
+
/**
 * @ops: The callbacks providing the implementation of this specific
 * type of configured stream.
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 4e69266bba61..0755746d416e 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -343,6 +343,8 @@ static const struct i915_oa_format 
gen8_plus_oa_formats[I915_OA_FORMAT_MAX] = {
  * struct perf_open_properties - for validated properties given to open a 
stream
  * @sample_flags: `DRM_I915_PERF_PROP_SAMPLE_*` properties are tracked as flags
  * @single_context: Whether a single or all gpu contexts should be monitored
+ * @hold_preemption: Whether the preemption is disabled for the filtered
+ *   context
  * @ctx_handle: A gem ctx handle for use with @single_context
  * @metrics_set: An ID for an OA unit metric set advertised via sysfs
  * @oa_format: An OA unit HW report format
@@ -357,6 +359,7 @@ struct perf_open_properties {
u32 sample_flags;
 
u64 single_context:1;
+   u64 hold_preemption:1;
u64 ctx_handle;
 
   

[Intel-gfx] [PATCH v4 1/7] drm/i915/perf: introduce a versioning of the i915-perf uapi

2019-06-05 Thread Lionel Landwerlin
Reporting this version will help application figure out what level of
the support the running kernel provides.

Signed-off-by: Lionel Landwerlin 
---
 drivers/gpu/drm/i915/i915_drv.c |  3 +++
 include/uapi/drm/i915_drm.h | 21 +
 2 files changed, 24 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 1af6751e1b36..9ed4d0016ee1 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -474,6 +474,9 @@ static int i915_getparam_ioctl(struct drm_device *dev, void 
*data,
case I915_PARAM_MMAP_GTT_COHERENT:
value = INTEL_INFO(dev_priv)->has_coherent_ggtt;
break;
+   case I915_PARAM_PERF_REVISION:
+   value = 1;
+   break;
default:
DRM_DEBUG("Unknown parameter %d\n", param->param);
return -EINVAL;
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
index 328d05e77d9f..e27a8eda9121 100644
--- a/include/uapi/drm/i915_drm.h
+++ b/include/uapi/drm/i915_drm.h
@@ -610,6 +610,13 @@ typedef struct drm_i915_irq_wait {
  * See I915_EXEC_FENCE_OUT and I915_EXEC_FENCE_SUBMIT.
  */
 #define I915_PARAM_HAS_EXEC_SUBMIT_FENCE 53
+
+/*
+ * Revision of the i915-perf uAPI. The value returned helps determine what
+ * i915-perf features are available. See drm_i915_perf_property_id.
+ */
+#define I915_PARAM_PERF_REVISION   54
+
 /* Must be kept compact -- no holes and well documented */
 
 typedef struct drm_i915_getparam {
@@ -1843,23 +1850,31 @@ enum drm_i915_perf_property_id {
 * Open the stream for a specific context handle (as used with
 * execbuffer2). A stream opened for a specific context this way
 * won't typically require root privileges.
+*
+* This property is available in perf revision 1.
 */
DRM_I915_PERF_PROP_CTX_HANDLE = 1,
 
/**
 * A value of 1 requests the inclusion of raw OA unit reports as
 * part of stream samples.
+*
+* This property is available in perf revision 1.
 */
DRM_I915_PERF_PROP_SAMPLE_OA,
 
/**
 * The value specifies which set of OA unit metrics should be
 * be configured, defining the contents of any OA unit reports.
+*
+* This property is available in perf revision 1.
 */
DRM_I915_PERF_PROP_OA_METRICS_SET,
 
/**
 * The value specifies the size and layout of OA unit reports.
+*
+* This property is available in perf revision 1.
 */
DRM_I915_PERF_PROP_OA_FORMAT,
 
@@ -1869,6 +1884,8 @@ enum drm_i915_perf_property_id {
 * from this exponent as follows:
 *
 *   80ns * 2^(period_exponent + 1)
+*
+* This property is available in perf revision 1.
 */
DRM_I915_PERF_PROP_OA_EXPONENT,
 
@@ -1900,6 +1917,8 @@ struct drm_i915_perf_open_param {
  * to close and re-open a stream with the same configuration.
  *
  * It's undefined whether any pending data for the stream will be lost.
+ *
+ * This ioctl is available in perf revision 1.
  */
 #define I915_PERF_IOCTL_ENABLE _IO('i', 0x0)
 
@@ -1907,6 +1926,8 @@ struct drm_i915_perf_open_param {
  * Disable data capture for a stream.
  *
  * It is an error to try and read a stream that is disabled.
+ *
+ * This ioctl is available in perf revision 1.
  */
 #define I915_PERF_IOCTL_DISABLE_IO('i', 0x1)
 
-- 
2.21.0.392.gf8f6787159e

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

[Intel-gfx] [PATCH v4 3/7] drm/i915: introduce a mechanism to extend execbuf2

2019-06-05 Thread Lionel Landwerlin
We're planning to use this for a couple of new feature where we need
to provide additional parameters to execbuf.

Signed-off-by: Lionel Landwerlin 
---
 .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 30 ++-
 include/uapi/drm/i915_drm.h   | 25 ++--
 2 files changed, 51 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index ed522fdfbe7f..a961fab70fb2 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -20,6 +20,7 @@
 #include "i915_gem_clflush.h"
 #include "i915_gem_context.h"
 #include "i915_trace.h"
+#include "i915_user_extensions.h"
 #include "intel_drv.h"
 #include "intel_frontbuffer.h"
 
@@ -269,6 +270,10 @@ struct i915_execbuffer {
 */
int lut_size;
struct hlist_head *buckets; /** ht for relocation handles */
+
+   struct {
+   u64 flags; /** Available extensions parameters */
+   } extensions;
 };
 
 #define exec_entry(EB, VMA) (&(EB)->exec[(VMA)->exec_flags - (EB)->flags])
@@ -1958,7 +1963,7 @@ static bool i915_gem_check_execbuffer(struct 
drm_i915_gem_execbuffer2 *exec)
return false;
 
/* Kernel clipping was a DRI1 misfeature */
-   if (!(exec->flags & I915_EXEC_FENCE_ARRAY)) {
+   if (!(exec->flags & (I915_EXEC_FENCE_ARRAY | I915_EXEC_EXT))) {
if (exec->num_cliprects || exec->cliprects_ptr)
return false;
}
@@ -2336,6 +2341,22 @@ signal_fence_array(struct i915_execbuffer *eb,
}
 }
 
+static const i915_user_extension_fn execbuf_extensions[] = {
+};
+
+static int
+parse_execbuf2_extensions(struct drm_i915_gem_execbuffer2 *args,
+ struct i915_execbuffer *eb)
+{
+   if (args->num_cliprects != 0)
+   return -EINVAL;
+
+   return i915_user_extensions(u64_to_user_ptr(args->cliprects_ptr),
+   execbuf_extensions,
+   ARRAY_SIZE(execbuf_extensions),
+   eb);
+}
+
 static int
 i915_gem_do_execbuffer(struct drm_device *dev,
   struct drm_file *file,
@@ -2382,6 +2403,13 @@ i915_gem_do_execbuffer(struct drm_device *dev,
if (args->flags & I915_EXEC_IS_PINNED)
eb.batch_flags |= I915_DISPATCH_PINNED;
 
+   eb.extensions.flags = 0;
+   if (args->flags & I915_EXEC_EXT) {
+   err = parse_execbuf2_extensions(args, &eb);
+   if (err)
+   return err;
+   }
+
if (args->flags & I915_EXEC_FENCE_IN) {
in_fence = sync_file_get_fence(lower_32_bits(args->rsvd2));
if (!in_fence)
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
index e27a8eda9121..efa195d6994e 100644
--- a/include/uapi/drm/i915_drm.h
+++ b/include/uapi/drm/i915_drm.h
@@ -1013,6 +1013,10 @@ struct drm_i915_gem_exec_fence {
__u32 flags;
 };
 
+enum drm_i915_gem_execbuffer_ext {
+   DRM_I915_GEM_EXECBUFFER_EXT_MAX /* non-ABI */
+};
+
 struct drm_i915_gem_execbuffer2 {
/**
 * List of gem_exec_object2 structs
@@ -1029,8 +1033,14 @@ struct drm_i915_gem_execbuffer2 {
__u32 num_cliprects;
/**
 * This is a struct drm_clip_rect *cliprects if I915_EXEC_FENCE_ARRAY
-* is not set.  If I915_EXEC_FENCE_ARRAY is set, then this is a
-* struct drm_i915_gem_exec_fence *fences.
+* & I915_EXEC_EXT are not set.
+*
+* If I915_EXEC_FENCE_ARRAY is set, then this is a pointer to an array
+* of struct drm_i915_gem_exec_fence and num_cliprects is the length
+* of the array.
+*
+* If I915_EXEC_EXT is set, then this is a pointer to a single struct
+* drm_i915_gem_base_execbuffer_ext and num_cliprects is 0.
 */
__u64 cliprects_ptr;
 #define I915_EXEC_RING_MASK  (0x3f)
@@ -1148,7 +1158,16 @@ struct drm_i915_gem_execbuffer2 {
  */
 #define I915_EXEC_FENCE_SUBMIT (1 << 20)
 
-#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_FENCE_SUBMIT << 1))
+/*
+ * Setting I915_EXEC_EXT implies that drm_i915_gem_execbuffer2.cliprects_ptr
+ * is treated as a pointer to an linked list of i915_user_extension. Each
+ * i915_user_extension node is the base of a larger structure. The list of
+ * supported structures are listed in the drm_i915_gem_execbuffer_ext
+ * enum.
+ */
+#define I915_EXEC_EXT  (1 << 21)
+
+#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_EXT<<1))
 
 #define I915_EXEC_CONTEXT_ID_MASK  (0x)
 #define i915_execbuffer2_set_context_id(eb2, context) \
-- 
2.21.0.392.gf8f6787159e

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

[Intel-gfx] [PATCH v4 7/7] drm/i915: add support for perf configuration queries

2019-06-05 Thread Lionel Landwerlin
Listing configurations at the moment is supported only through sysfs.
This might cause issues for applications wanting to list
configurations from a container where sysfs isn't available.

This change adds a way to query the number of configurations and their
content through the i915 query uAPI.

v2: Fix sparse warnings (Lionel)
Add support to query configuration using uuid (Lionel)

v3: Fix some inconsistency in uapi header (Lionel)
Fix unlocking when not locked issue (Lionel)
Add debug messages (Lionel)

v4: Fix missing unlock (Dan)

Signed-off-by: Lionel Landwerlin 
---
 drivers/gpu/drm/i915/i915_drv.h   |   6 +
 drivers/gpu/drm/i915/i915_perf.c  |   4 +
 drivers/gpu/drm/i915/i915_query.c | 279 ++
 include/uapi/drm/i915_drm.h   |  62 ++-
 4 files changed, 350 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 1cb41f398c05..eb34d7cb857e 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1793,6 +1793,12 @@ struct drm_i915_private {
 */
struct list_head metrics_buffers;
 
+   /*
+* Number of dynamic configurations, you need to hold
+* dev_priv->perf.metrics_lock to access it.
+*/
+   u32 n_metrics;
+
/*
 * Lock associated with anything below within this structure
 * except exclusive_stream.
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 0755746d416e..4a767087de27 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -3417,6 +3417,8 @@ int i915_perf_add_config_ioctl(struct drm_device *dev, 
void *data,
goto sysfs_err;
}
 
+   dev_priv->perf.n_metrics++;
+
mutex_unlock(&dev_priv->perf.metrics_lock);
 
DRM_DEBUG("Added config %s id=%i\n", oa_config->uuid, oa_config->id);
@@ -3478,6 +3480,8 @@ int i915_perf_remove_config_ioctl(struct drm_device *dev, 
void *data,
 
idr_remove(&dev_priv->perf.metrics_idr, *arg);
 
+   dev_priv->perf.n_metrics--;
+
DRM_DEBUG("Removed config %s id=%i\n", oa_config->uuid, oa_config->id);
 
i915_oa_config_put(oa_config);
diff --git a/drivers/gpu/drm/i915/i915_query.c 
b/drivers/gpu/drm/i915/i915_query.c
index 7b7016171057..c1e203c7b2c2 100644
--- a/drivers/gpu/drm/i915/i915_query.c
+++ b/drivers/gpu/drm/i915/i915_query.c
@@ -143,10 +143,289 @@ query_engine_info(struct drm_i915_private *i915,
return len;
 }
 
+static int can_copy_perf_config_registers_or_number(u32 user_n_regs,
+   u64 user_regs_ptr,
+   u32 kernel_n_regs)
+{
+   /*
+* We'll just put the number of registers, and won't copy the
+* register.
+*/
+   if (user_n_regs == 0)
+   return 0;
+
+   if (user_n_regs < kernel_n_regs)
+   return -EINVAL;
+
+   if (!access_ok(u64_to_user_ptr(user_regs_ptr),
+  2 * sizeof(u32) * kernel_n_regs))
+   return -EFAULT;
+
+   return 0;
+}
+
+static int copy_perf_config_registers_or_number(const struct i915_oa_reg 
*kernel_regs,
+   u32 kernel_n_regs,
+   u64 user_regs_ptr,
+   u32 *user_n_regs)
+{
+   u32 r;
+
+   if (*user_n_regs == 0) {
+   *user_n_regs = kernel_n_regs;
+   return 0;
+   }
+
+   *user_n_regs = kernel_n_regs;
+
+   for (r = 0; r < kernel_n_regs; r++) {
+   u32 __user *user_reg_ptr =
+   u64_to_user_ptr(user_regs_ptr + sizeof(u32) * r * 2);
+   u32 __user *user_val_ptr =
+   u64_to_user_ptr(user_regs_ptr + sizeof(u32) * r * 2 +
+   sizeof(u32));
+   int ret;
+
+   ret = __put_user(i915_mmio_reg_offset(kernel_regs[r].addr),
+user_reg_ptr);
+   if (ret)
+   return -EFAULT;
+
+   ret = __put_user(kernel_regs[r].value, user_val_ptr);
+   if (ret)
+   return -EFAULT;
+   }
+
+   return 0;
+}
+
+static int query_perf_config_data(struct drm_i915_private *i915,
+ struct drm_i915_query_item *query_item,
+ bool use_uuid)
+{
+   struct drm_i915_query_perf_config __user *user_query_config_ptr =
+   u64_to_user_ptr(query_item->data_ptr);
+   struct drm_i915_perf_oa_config __user *user_config_ptr =
+   u64_to_user_ptr(query_item->data_ptr +
+   sizeof(struct drm_i915_query_perf_config));
+   struct drm_i915_perf_o

[Intel-gfx] [PATCH v4 4/7] drm/i915: add syncobj timeline support

2019-06-05 Thread Lionel Landwerlin
Introduces a new parameters to execbuf so that we can specify syncobj
handles as well as timeline points.

v2: Reuse i915_user_extension_fn

Signed-off-by: Lionel Landwerlin 
---
 .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 279 ++
 drivers/gpu/drm/i915/i915_drv.c   |   4 +-
 include/uapi/drm/i915_drm.h   |  37 +++
 3 files changed, 263 insertions(+), 57 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index a961fab70fb2..86864ec76a8b 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -211,6 +211,13 @@ enum {
  * the batchbuffer in trusted mode, otherwise the ioctl is rejected.
  */
 
+struct i915_drm_dma_fences {
+   struct drm_syncobj *syncobj; /* Use with ptr_mask_bits() */
+   struct dma_fence *dma_fence;
+   u64 value;
+   struct dma_fence_chain *chain_fence;
+};
+
 struct i915_execbuffer {
struct drm_i915_private *i915; /** i915 backpointer */
struct drm_file *file; /** per-file lookup tables and limits */
@@ -273,6 +280,7 @@ struct i915_execbuffer {
 
struct {
u64 flags; /** Available extensions parameters */
+   struct drm_i915_gem_execbuffer_ext_timeline_fences 
timeline_fences;
} extensions;
 };
 
@@ -2213,67 +2221,193 @@ eb_select_engine(struct i915_execbuffer *eb,
 }
 
 static void
-__free_fence_array(struct drm_syncobj **fences, unsigned int n)
+__free_fence_array(struct i915_drm_dma_fences *fences, unsigned int n)
 {
-   while (n--)
-   drm_syncobj_put(ptr_mask_bits(fences[n], 2));
+   while (n--) {
+   drm_syncobj_put(ptr_mask_bits(fences[n].syncobj, 2));
+   dma_fence_put(fences[n].dma_fence);
+   kfree(fences[n].chain_fence);
+   }
kvfree(fences);
 }
 
-static struct drm_syncobj **
-get_fence_array(struct drm_i915_gem_execbuffer2 *args,
-   struct drm_file *file)
+static struct i915_drm_dma_fences *
+get_timeline_fence_array(struct i915_execbuffer *eb, int *out_n_fences)
+{
+   struct drm_i915_gem_execbuffer_ext_timeline_fences *timeline_fences =
+   &eb->extensions.timeline_fences;
+   struct drm_i915_gem_exec_fence __user *user_fences;
+   struct i915_drm_dma_fences *fences;
+   u64 __user *user_values;
+   unsigned long n;
+   int err;
+
+   *out_n_fences = timeline_fences->handle_count;
+
+   /* Check multiplication overflow for access_ok() and kvmalloc_array() */
+   BUILD_BUG_ON(sizeof(size_t) > sizeof(unsigned long));
+   if (*out_n_fences > min_t(unsigned long,
+ ULONG_MAX / sizeof(*user_fences),
+ SIZE_MAX / sizeof(*fences)))
+   return ERR_PTR(-EINVAL);
+
+   user_fences = u64_to_user_ptr(timeline_fences->handles_ptr);
+   if (!access_ok(user_fences, *out_n_fences * sizeof(*user_fences)))
+   return ERR_PTR(-EFAULT);
+
+   user_values = u64_to_user_ptr(timeline_fences->values_ptr);
+   if (!access_ok(user_values, *out_n_fences * sizeof(*user_values)))
+   return ERR_PTR(-EFAULT);
+
+   fences = kvmalloc_array(*out_n_fences, sizeof(*fences),
+   __GFP_NOWARN | GFP_KERNEL);
+   if (!fences)
+   return ERR_PTR(-ENOMEM);
+
+   BUILD_BUG_ON(~(ARCH_KMALLOC_MINALIGN - 1) &
+~__I915_EXEC_FENCE_UNKNOWN_FLAGS);
+
+   for (n = 0; n < *out_n_fences; n++) {
+   struct drm_i915_gem_exec_fence user_fence;
+   struct drm_syncobj *syncobj;
+   struct dma_fence *fence = NULL;
+   u64 point;
+
+   if (__copy_from_user(&user_fence, user_fences++, 
sizeof(user_fence))) {
+   err = -EFAULT;
+   goto err;
+   }
+
+   if (user_fence.flags & __I915_EXEC_FENCE_UNKNOWN_FLAGS) {
+   err = -EINVAL;
+   goto err;
+   }
+
+   if (__get_user(point, user_values++)) {
+   err = -EFAULT;
+   goto err;
+   }
+
+   syncobj = drm_syncobj_find(eb->file, user_fence.handle);
+   if (!syncobj) {
+   DRM_DEBUG("Invalid syncobj handle provided\n");
+   err = -EINVAL;
+   goto err;
+   }
+
+   if (user_fence.flags & I915_EXEC_FENCE_WAIT) {
+   fence = drm_syncobj_fence_get(syncobj);
+   if (!fence) {
+   DRM_DEBUG("Syncobj handle has no fence\n");
+   drm_syncobj_put(syncobj);
+   err = -EINVAL;
+   goto err;
+   }
+
+

[Intel-gfx] [PATCH v4 5/7] drm/i915: add a new perf configuration execbuf parameter

2019-06-05 Thread Lionel Landwerlin
We want the ability to dispatch a set of command buffer to the
hardware, each with a different OA configuration. To achieve this, we
reuse a couple of fields from the execbuf2 struct (I CAN HAZ
execbuf3?) to notify what OA configuration should be used for a batch
buffer. This requires the process making the execbuf with this flag to
also own the perf fd at the time of execbuf.

v2: Add a emit_oa_config() vfunc in the intel_engine_cs (Chris)
Move oa_config vma to active (Chris)

v3: Don't drop the lock for engine lookup (Chris)
Move OA config vma to active before writing the ringbuffer (Chris)

v4: Reuse i915_user_extension_fn
Serialize requests with OA config updates

Signed-off-by: Lionel Landwerlin 
---
 .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 130 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c |   2 +
 drivers/gpu/drm/i915/gt/intel_engine_types.h  |   9 ++
 drivers/gpu/drm/i915/gt/intel_lrc.c   |   1 +
 drivers/gpu/drm/i915/gt/intel_ringbuffer.c|   4 +-
 drivers/gpu/drm/i915/i915_drv.c   |   4 +
 drivers/gpu/drm/i915/i915_drv.h   |  10 +-
 drivers/gpu/drm/i915/i915_perf.c  |  26 ++--
 include/uapi/drm/i915_drm.h   |  37 +
 9 files changed, 208 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index 86864ec76a8b..dc7e765edf4b 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -281,7 +281,11 @@ struct i915_execbuffer {
struct {
u64 flags; /** Available extensions parameters */
struct drm_i915_gem_execbuffer_ext_timeline_fences 
timeline_fences;
+   struct drm_i915_gem_execbuffer_ext_perf perf_config;
} extensions;
+
+   struct i915_oa_config *oa_config; /** HW configuration for OA, NULL is 
not needed. */
+   struct drm_i915_gem_object *oa_bo;
 };
 
 #define exec_entry(EB, VMA) (&(EB)->exec[(VMA)->exec_flags - (EB)->flags])
@@ -1199,6 +1203,34 @@ static int reloc_move_to_gpu(struct i915_request *rq, 
struct i915_vma *vma)
return err;
 }
 
+
+static int
+get_execbuf_oa_config(struct drm_i915_private *dev_priv,
+ s32 perf_fd, u64 oa_config_id,
+ struct i915_oa_config **out_oa_config,
+ struct drm_i915_gem_object **out_oa_obj)
+{
+   struct file *perf_file;
+   int ret;
+
+   if (!dev_priv->perf.oa.exclusive_stream)
+   return -EINVAL;
+
+   perf_file = fget(perf_fd);
+   if (!perf_file)
+   return -EINVAL;
+
+   if (perf_file->private_data != dev_priv->perf.oa.exclusive_stream)
+   return -EINVAL;
+
+   fput(perf_file);
+
+   ret = i915_perf_get_oa_config(dev_priv, oa_config_id,
+ out_oa_config, out_oa_obj);
+
+   return ret;
+}
+
 static int __reloc_gpu_alloc(struct i915_execbuffer *eb,
 struct i915_vma *vma,
 unsigned int len)
@@ -2061,6 +2093,64 @@ add_to_client(struct i915_request *rq, struct drm_file 
*file)
list_add_tail(&rq->client_link, &rq->file_priv->mm.request_list);
 }
 
+static int eb_oa_config(struct i915_execbuffer *eb)
+{
+   struct i915_vma *oa_vma;
+   int err;
+
+   if (!eb->oa_config)
+   return 0;
+
+   err = i915_active_request_set(&eb->engine->last_oa_config,
+ eb->request);
+   if (err)
+   return err;
+
+   /*
+* If the perf stream was opened with hold preemption, flag the
+* request properly so that the priority of the request is bumped once
+* it reaches the execlist ports.
+*/
+   if (eb->i915->perf.oa.exclusive_stream->hold_preemption)
+   eb->request->has_perf = true;
+
+   /*
+* If the config hasn't changed, skip reconfiguring the HW (this is
+* subject to a delay we want to avoid has much as possible).
+*/
+   if (eb->oa_config == eb->i915->perf.oa.exclusive_stream->oa_config)
+   return 0;
+
+   oa_vma = i915_vma_instance(eb->oa_bo,
+  &eb->engine->i915->ggtt.vm, NULL);
+   if (unlikely(IS_ERR(oa_vma)))
+   return PTR_ERR(oa_vma);
+
+   err = i915_vma_pin(oa_vma, 0, 0, PIN_GLOBAL);
+   if (err)
+   return err;
+
+   err = i915_vma_move_to_active(oa_vma, eb->request, 0);
+   if (err) {
+   i915_vma_unpin(oa_vma);
+   return err;
+   }
+
+   err = eb->engine->emit_bb_start(eb->request,
+   oa_vma->node.start,
+   0, I915_DISPATCH_SECURE);
+   if (err) {
+   i915_vma_unpin(oa_vma);
+   return err;
+   }
+
+   i915_vma_unpin(oa_vm

[Intel-gfx] [PATCH v4 0/7] drm/i915: Vulkan performance query support

2019-06-05 Thread Lionel Landwerlin
Hi all,

Here is a list of changes in this iteration :

  - Reuse i915_user_extension_fn

  - Serialize OA configuration updates

  - Report the perf priority through the effective_prio() helper
rather than updating the value

Cheers,

Lionel Landwerlin (7):
  drm/i915/perf: introduce a versioning of the i915-perf uapi
  drm/i915/perf: allow for CS OA configs to be created lazily
  drm/i915: introduce a mechanism to extend execbuf2
  drm/i915: add syncobj timeline support
  drm/i915: add a new perf configuration execbuf parameter
  drm/i915/perf: allow holding preemption on filtered ctx
  drm/i915: add support for perf configuration queries

 .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 439 +++---
 drivers/gpu/drm/i915/gt/intel_engine_cs.c |   2 +
 drivers/gpu/drm/i915/gt/intel_engine_types.h  |   9 +
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h  |   1 +
 drivers/gpu/drm/i915/gt/intel_lrc.c   |   8 +-
 drivers/gpu/drm/i915/gt/intel_ringbuffer.c|   4 +-
 drivers/gpu/drm/i915/i915_drv.c   |  11 +-
 drivers/gpu/drm/i915/i915_drv.h   |  51 +-
 drivers/gpu/drm/i915/i915_perf.c  | 203 ++--
 drivers/gpu/drm/i915/i915_priolist_types.h|   7 +
 drivers/gpu/drm/i915/i915_query.c | 279 +++
 drivers/gpu/drm/i915/i915_request.c   |   1 +
 drivers/gpu/drm/i915/i915_request.h   |   1 +
 drivers/gpu/drm/i915/intel_guc_submission.c   |  10 +-
 include/uapi/drm/i915_drm.h   | 193 +++-
 15 files changed, 1116 insertions(+), 103 deletions(-)

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

[Intel-gfx] [PATCH v4 2/7] drm/i915/perf: allow for CS OA configs to be created lazily

2019-06-05 Thread Lionel Landwerlin
Here we introduce a mechanism by which the execbuf part of the i915
driver will be able to request that a batch buffer containing the
programming for a particular OA config be created.

We'll execute these OA configuration buffers right before executing a
set of userspace commands so that a particular user batchbuffer be
executed with a given OA configuration.

This mechanism essentially allows the userspace driver to go through
several OA configuration without having to open/close the i915/perf
stream.

v2: No need for locking on object OA config object creation (Chris)
Flush cpu mapping of OA config (Chris)

Signed-off-by: Lionel Landwerlin 
---
 drivers/gpu/drm/i915/gt/intel_gpu_commands.h |   1 +
 drivers/gpu/drm/i915/i915_drv.h  |  22 ++-
 drivers/gpu/drm/i915/i915_perf.c | 171 +++
 3 files changed, 162 insertions(+), 32 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_gpu_commands.h 
b/drivers/gpu/drm/i915/gt/intel_gpu_commands.h
index eec31e36aca7..e7eff9db343e 100644
--- a/drivers/gpu/drm/i915/gt/intel_gpu_commands.h
+++ b/drivers/gpu/drm/i915/gt/intel_gpu_commands.h
@@ -126,6 +126,7 @@
  */
 #define MI_LOAD_REGISTER_IMM(x)MI_INSTR(0x22, 2*(x)-1)
 #define   MI_LRI_FORCE_POSTED  (1<<12)
+#define MI_LOAD_REGISTER_IMM_MAX_REGS (126)
 #define MI_STORE_REGISTER_MEMMI_INSTR(0x24, 1)
 #define MI_STORE_REGISTER_MEM_GEN8   MI_INSTR(0x24, 2)
 #define   MI_SRM_LRM_GLOBAL_GTT(1<<22)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 89bf1e34feaa..83a32e9d86b5 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1170,6 +1170,10 @@ struct i915_oa_config {
struct attribute *attrs[2];
struct device_attribute sysfs_metric_id;
 
+   struct drm_i915_gem_object *obj;
+
+   struct list_head vma_link;
+
atomic_t ref_count;
 };
 
@@ -1759,11 +1763,21 @@ struct drm_i915_private {
struct mutex metrics_lock;
 
/*
-* List of dynamic configurations, you need to hold
-* dev_priv->perf.metrics_lock to access it.
+* List of dynamic configurations (struct i915_oa_config), you
+* need to hold dev_priv->perf.metrics_lock to access it.
 */
struct idr metrics_idr;
 
+   /*
+* List of dynamic configurations (struct i915_oa_config)
+* which have an allocated buffer in GGTT for reconfiguration,
+* you need to hold dev_priv->perf.metrics_lock to access it.
+* Elements are added to the list lazilly on execbuf (when a
+* particular configuration is requested). The list is freed
+* upon closing the perf stream.
+*/
+   struct list_head metrics_buffers;
+
/*
 * Lock associated with anything below within this structure
 * except exclusive_stream.
@@ -2709,6 +2723,10 @@ int i915_perf_remove_config_ioctl(struct drm_device 
*dev, void *data,
 void i915_oa_init_reg_state(struct intel_engine_cs *engine,
struct intel_context *ce,
u32 *reg_state);
+int i915_perf_get_oa_config(struct drm_i915_private *i915,
+   int metrics_set,
+   struct i915_oa_config **out_config,
+   struct drm_i915_gem_object **out_obj);
 
 /* i915_gem_evict.c */
 int __must_check i915_gem_evict_something(struct i915_address_space *vm,
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 2e33a9b4eae7..e0071e44de3d 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -366,9 +366,16 @@ struct perf_open_properties {
int oa_period_exponent;
 };
 
-static void free_oa_config(struct drm_i915_private *dev_priv,
-  struct i915_oa_config *oa_config)
+static void put_oa_config(struct i915_oa_config *oa_config)
 {
+   if (!atomic_dec_and_test(&oa_config->ref_count))
+   return;
+
+   if (oa_config->obj) {
+   list_del(&oa_config->vma_link);
+   i915_gem_object_put(oa_config->obj);
+   }
+
if (!PTR_ERR(oa_config->flex_regs))
kfree(oa_config->flex_regs);
if (!PTR_ERR(oa_config->b_counter_regs))
@@ -378,38 +385,126 @@ static void free_oa_config(struct drm_i915_private 
*dev_priv,
kfree(oa_config);
 }
 
-static void put_oa_config(struct drm_i915_private *dev_priv,
- struct i915_oa_config *oa_config)
+static u32 *write_cs_mi_lri(u32 *cs, const struct i915_oa_reg *reg_data, u32 
n_regs)
 {
-   if (!atomic_dec_and_test(&oa_config->ref_count))
-   return;
+   u32 i;
 
-   free_oa_config(dev_priv, oa_config);
+   for (i = 0; i < n_regs; i++) 

Re: [Intel-gfx] [PATCH] drm/i915: rename header test build commands to avoid conflicts

2019-06-05 Thread Sam Ravnborg
Hi Jani.

On Wed, Jun 05, 2019 at 04:21:37PM +0300, Jani Nikula wrote:
> We have a local hack to test if headers are self-contained, while
> upstreaming a proper generic solution in kbuild [1]. Now that both have
> found themselves in linux-next, the identical cmd_header_test build
> commands conflict, leading to errors such as:
> 
> >> drivers/gpu/drm/i915/header_test_intel_audio.c:1:10: fatal error:
> >> drivers/gpu/drm/i915/intel_audio.h: No such file or directory
> #include "drivers/gpu/drm/i915/intel_audio.h"
>^~~~
> 
> Rename the i915 local build command until the proper kbuild solution
> finds its way to Linus' master and gets backported to our tree, and we
> can finally switch over.
You could also ihave switched over now, and accpet that this only would be used
in -next for a few months.

Then at least you did not have to rememebr to change it again.

Any way works for me, just a suggestion.

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

[Intel-gfx] [PATCH] drm/i915: rename header test build commands to avoid conflicts

2019-06-05 Thread Jani Nikula
We have a local hack to test if headers are self-contained, while
upstreaming a proper generic solution in kbuild [1]. Now that both have
found themselves in linux-next, the identical cmd_header_test build
commands conflict, leading to errors such as:

>> drivers/gpu/drm/i915/header_test_intel_audio.c:1:10: fatal error:
>> drivers/gpu/drm/i915/intel_audio.h: No such file or directory
#include "drivers/gpu/drm/i915/intel_audio.h"
 ^~~~

Rename the i915 local build command until the proper kbuild solution
finds its way to Linus' master and gets backported to our tree, and we
can finally switch over.

Note that since the kbuild header test requires CONFIG_HEADER_TEST=y,
and our hack requires our debug option CONFIG_DRM_I915_WERROR=y, this is
likely hit only by build test bots.

[1] http://marc.info/?i=20190604124248.5564-1-jani.nik...@intel.com

Reported-by: kbuild test robot 
Cc: Chris Wilson 
Cc: Masahiro Yamada 
Cc: Sam Ravnborg 
Signed-off-by: Jani Nikula 
---
 drivers/gpu/drm/i915/Makefile.header-test | 6 +++---
 drivers/gpu/drm/i915/gem/Makefile.header-test | 6 +++---
 drivers/gpu/drm/i915/gt/Makefile.header-test  | 6 +++---
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/Makefile.header-test 
b/drivers/gpu/drm/i915/Makefile.header-test
index 6ef3b647ac65..1b4537405b4b 100644
--- a/drivers/gpu/drm/i915/Makefile.header-test
+++ b/drivers/gpu/drm/i915/Makefile.header-test
@@ -63,11 +63,11 @@ header_test := \
intel_vdsc.h \
intel_wakeref.h
 
-quiet_cmd_header_test = HDRTEST $@
-  cmd_header_test = echo "\#include \"$( $@
+quiet_cmd_i915_header_test = HDRTEST $@
+  cmd_i915_header_test = echo "\#include \"$( $@
 
 header_test_%.c: %.h
-   $(call cmd,header_test)
+   $(call cmd,i915_header_test)
 
 i915-$(CONFIG_DRM_I915_WERROR) += $(foreach h,$(header_test),$(patsubst 
%.h,header_test_%.o,$(h)))
 
diff --git a/drivers/gpu/drm/i915/gem/Makefile.header-test 
b/drivers/gpu/drm/i915/gem/Makefile.header-test
index 61e06cbb4b32..50a3aa983659 100644
--- a/drivers/gpu/drm/i915/gem/Makefile.header-test
+++ b/drivers/gpu/drm/i915/gem/Makefile.header-test
@@ -4,11 +4,11 @@
 # Test the headers are compilable as standalone units
 header_test := $(notdir $(wildcard $(src)/*.h))
 
-quiet_cmd_header_test = HDRTEST $@
-  cmd_header_test = echo "\#include \"$( $@
+quiet_cmd_i915_header_test = HDRTEST $@
+  cmd_i915_header_test = echo "\#include \"$( $@
 
 header_test_%.c: %.h
-   $(call cmd,header_test)
+   $(call cmd,i915_header_test)
 
 extra-$(CONFIG_DRM_I915_WERROR) += \
$(foreach h,$(header_test),$(patsubst %.h,header_test_%.o,$(h)))
diff --git a/drivers/gpu/drm/i915/gt/Makefile.header-test 
b/drivers/gpu/drm/i915/gt/Makefile.header-test
index 61e06cbb4b32..50a3aa983659 100644
--- a/drivers/gpu/drm/i915/gt/Makefile.header-test
+++ b/drivers/gpu/drm/i915/gt/Makefile.header-test
@@ -4,11 +4,11 @@
 # Test the headers are compilable as standalone units
 header_test := $(notdir $(wildcard $(src)/*.h))
 
-quiet_cmd_header_test = HDRTEST $@
-  cmd_header_test = echo "\#include \"$( $@
+quiet_cmd_i915_header_test = HDRTEST $@
+  cmd_i915_header_test = echo "\#include \"$( $@
 
 header_test_%.c: %.h
-   $(call cmd,header_test)
+   $(call cmd,i915_header_test)
 
 extra-$(CONFIG_DRM_I915_WERROR) += \
$(foreach h,$(header_test),$(patsubst %.h,header_test_%.o,$(h)))
-- 
2.20.1

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

Re: [Intel-gfx] [PATCH 2/2] drm/i915: fix documentation build warnings

2019-06-05 Thread Mika Kuoppala
Jani Nikula  writes:

> Just a straightforward bag of fixes for a clean htmldocs build.
>
> Signed-off-by: Jani Nikula 

Reviewed-by: Mika Kuoppala 



[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] Documentation/i915: Fix kernel-doc references to moved gem files

2019-06-05 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] Documentation/i915: Fix kernel-doc 
references to moved gem files
URL   : https://patchwork.freedesktop.org/series/61645/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6194 -> Patchwork_13177


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13177/

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_basic@basic-all:
- fi-icl-u2:  [PASS][1] -> [INCOMPLETE][2] ([fdo#107713])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6194/fi-icl-u2/igt@gem_exec_ba...@basic-all.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13177/fi-icl-u2/igt@gem_exec_ba...@basic-all.html

  * igt@i915_module_load@reload:
- fi-blb-e6850:   [PASS][3] -> [INCOMPLETE][4] ([fdo#107718])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6194/fi-blb-e6850/igt@i915_module_l...@reload.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13177/fi-blb-e6850/igt@i915_module_l...@reload.html

  
 Possible fixes 

  * igt@gem_ctx_switch@basic-default:
- {fi-icl-guc}:   [INCOMPLETE][5] ([fdo#107713] / [fdo#108569]) -> 
[PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6194/fi-icl-guc/igt@gem_ctx_swi...@basic-default.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13177/fi-icl-guc/igt@gem_ctx_swi...@basic-default.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u:   [FAIL][7] ([fdo#109485]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6194/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13177/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html

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

  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485


Participating hosts (49 -> 46)
--

  Additional (5): fi-kbl-7567u fi-skl-gvtdvm fi-byt-j1900 fi-icl-u3 
fi-skl-6600u 
  Missing(8): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y 
fi-kbl-7560u fi-byt-clapper fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_6194 -> Patchwork_13177

  CI_DRM_6194: 10a75edfc43885387e1e9e2bc50f9678e9bf59d6 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5038: a34cbc9834aed017d1a452ba42d3e53f9258f8d2 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13177: 8d6b14e486a1afd738663c23ea4f2bc00dfbaf4f @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

8d6b14e486a1 drm/i915: fix documentation build warnings
8e81a681b8ce Documentation/i915: Fix kernel-doc references to moved gem files

== Logs ==

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

Re: [Intel-gfx] [PATCH 01/13] drm/i915/bios: make child device order the priority order

2019-06-05 Thread Jani Nikula
On Fri, 31 May 2019, Ville Syrjälä  wrote:
> On Fri, May 31, 2019 at 04:14:51PM +0300, Jani Nikula wrote:
>> Make the child device order the priority order in sanitizing DDC pin and
>> AUX CH. First come, first served.
>> 
>> Cc: Ville Syrjälä 
>> Signed-off-by: Jani Nikula 
>> ---
>>  drivers/gpu/drm/i915/intel_bios.c | 32 +++
>>  1 file changed, 15 insertions(+), 17 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/intel_bios.c 
>> b/drivers/gpu/drm/i915/intel_bios.c
>> index a0b708f7f384..0a1b9a4a1b71 100644
>> --- a/drivers/gpu/drm/i915/intel_bios.c
>> +++ b/drivers/gpu/drm/i915/intel_bios.c
>> @@ -1242,8 +1242,7 @@ static u8 translate_iboost(u8 val)
>>  static void sanitize_ddc_pin(struct drm_i915_private *dev_priv,
>>   enum port port)
>>  {
>> -const struct ddi_vbt_port_info *info =
>> -&dev_priv->vbt.ddi_port_info[port];
>> +struct ddi_vbt_port_info *info = &dev_priv->vbt.ddi_port_info[port];
>>  enum port p;
>>  
>>  if (!info->alternate_ddc_pin)
>> @@ -1258,8 +1257,8 @@ static void sanitize_ddc_pin(struct drm_i915_private 
>> *dev_priv,
>>  
>>  DRM_DEBUG_KMS("port %c trying to use the same DDC pin (0x%x) as 
>> port %c, "
>>"disabling port %c DVI/HDMI support\n",
>> -  port_name(p), i->alternate_ddc_pin,
>> -  port_name(port), port_name(p));
>> +  port_name(port), info->alternate_ddc_pin,
>> +  port_name(p), port_name(port));
>>  
>>  /*
>>   * If we have multiple ports supposedly sharing the
>> @@ -1267,20 +1266,19 @@ static void sanitize_ddc_pin(struct drm_i915_private 
>> *dev_priv,
>>   * port. Otherwise they share the same ddc bin and
>>   * system couldn't communicate with them separately.
>>   *
>> - * Due to parsing the ports in child device order,
>> - * a later device will always clobber an earlier one.
>> + * Give child device order the priority, first come first
>> + * served.
>>   */
>> -i->supports_dvi = false;
>> -i->supports_hdmi = false;
>> -i->alternate_ddc_pin = 0;
>> +info->supports_dvi = false;
>> +info->supports_hdmi = false;
>> +info->alternate_ddc_pin = 0;
>
> 'i' can now be const I think.

I ignored that because 'i' gets removed a couple of patches later
anyway.

>
> Series is
> Reviewed-by: Ville Syrjälä 
>
> Though I only glanced at the header reorganization things instead
> of reading through it all in detail.

Thanks, pushed the lot.

BR,
Jani.

>
>>  }
>>  }
>>  
>>  static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
>>  enum port port)
>>  {
>> -const struct ddi_vbt_port_info *info =
>> -&dev_priv->vbt.ddi_port_info[port];
>> +struct ddi_vbt_port_info *info = &dev_priv->vbt.ddi_port_info[port];
>>  enum port p;
>>  
>>  if (!info->alternate_aux_channel)
>> @@ -1295,8 +1293,8 @@ static void sanitize_aux_ch(struct drm_i915_private 
>> *dev_priv,
>>  
>>  DRM_DEBUG_KMS("port %c trying to use the same AUX CH (0x%x) as 
>> port %c, "
>>"disabling port %c DP support\n",
>> -  port_name(p), i->alternate_aux_channel,
>> -  port_name(port), port_name(p));
>> +  port_name(port), info->alternate_aux_channel,
>> +  port_name(p), port_name(port));
>>  
>>  /*
>>   * If we have multiple ports supposedlt sharing the
>> @@ -1304,11 +1302,11 @@ static void sanitize_aux_ch(struct drm_i915_private 
>> *dev_priv,
>>   * port. Otherwise they share the same aux channel
>>   * and system couldn't communicate with them separately.
>>   *
>> - * Due to parsing the ports in child device order,
>> - * a later device will always clobber an earlier one.
>> + * Give child device order the priority, first come first
>> + * served.
>>   */
>> -i->supports_dp = false;
>> -i->alternate_aux_channel = 0;
>> +info->supports_dp = false;
>> +info->alternate_aux_channel = 0;
>>  }
>>  }
>>  
>> -- 
>> 2.20.1

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

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Vulkan performance query support (rev3)

2019-06-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Vulkan performance query support (rev3)
URL   : https://patchwork.freedesktop.org/series/60916/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6186_full -> Patchwork_13168_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Possible new issues
---

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

### IGT changes ###

 Suppressed 

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

  * {igt@gem_ctx_shared@exec-shared-gtt-render}:
- shard-glk:  [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-glk9/igt@gem_ctx_sha...@exec-shared-gtt-render.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13168/shard-glk2/igt@gem_ctx_sha...@exec-shared-gtt-render.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_softpin@noreloc-s3:
- shard-kbl:  [PASS][3] -> [DMESG-WARN][4] ([fdo#108566])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-kbl3/igt@gem_soft...@noreloc-s3.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13168/shard-kbl3/igt@gem_soft...@noreloc-s3.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
- shard-skl:  [PASS][5] -> [INCOMPLETE][6] ([fdo#110741])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-skl5/igt@kms_cursor_...@pipe-b-cursor-suspend.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13168/shard-skl6/igt@kms_cursor_...@pipe-b-cursor-suspend.html

  * igt@kms_draw_crc@draw-method-xrgb-mmap-cpu-xtiled:
- shard-iclb: [PASS][7] -> [INCOMPLETE][8] ([fdo#107713])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-iclb5/igt@kms_draw_...@draw-method-xrgb-mmap-cpu-xtiled.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13168/shard-iclb7/igt@kms_draw_...@draw-method-xrgb-mmap-cpu-xtiled.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
- shard-apl:  [PASS][9] -> [DMESG-WARN][10] ([fdo#108566]) +1 
similar issue
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-apl4/igt@kms_f...@flip-vs-suspend-interruptible.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13168/shard-apl6/igt@kms_f...@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move:
- shard-hsw:  [PASS][11] -> [SKIP][12] ([fdo#109271]) +36 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-hsw5/igt@kms_frontbuffer_track...@fbc-2p-scndscrn-spr-indfb-move.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13168/shard-hsw1/igt@kms_frontbuffer_track...@fbc-2p-scndscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
- shard-iclb: [PASS][13] -> [FAIL][14] ([fdo#103167]) +4 similar 
issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-iclb1/igt@kms_frontbuffer_track...@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13168/shard-iclb4/igt@kms_frontbuffer_track...@fbcpsr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
- shard-iclb: [PASS][15] -> [INCOMPLETE][16] ([fdo#106978] / 
[fdo#107713])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-iclb3/igt@kms_frontbuffer_track...@fbcpsr-rgb101010-draw-mmap-wc.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13168/shard-iclb7/igt@kms_frontbuffer_track...@fbcpsr-rgb101010-draw-mmap-wc.html

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
- shard-skl:  [PASS][17] -> [FAIL][18] ([fdo#108145] / [fdo#110403])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-skl3/igt@kms_plane_alpha_bl...@pipe-b-coverage-7efc.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13168/shard-skl2/igt@kms_plane_alpha_bl...@pipe-b-coverage-7efc.html

  * igt@kms_psr@psr2_cursor_plane_onoff:
- shard-iclb: [PASS][19] -> [SKIP][20] ([fdo#109441])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13168/shard-iclb4/igt@kms_psr@psr2_cursor_plane_onoff.html

  
 Possible fixes 

  * {igt@gem_ctx_param@vm}:
- shard-hsw:  [DMESG-WARN][21] ([fdo#110836]) -> [PASS][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-hsw6/igt@gem_ctx_pa...@vm.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13168/shard-hsw8/igt@gem_ctx_pa...@vm.html

  * igt@gem_m

[Intel-gfx] [PATCH] drm/ioctl: Ditch DRM_UNLOCKED except for the legacy vblank ioctl

2019-06-05 Thread Daniel Vetter
This completes Emil's series of removing DRM_UNLOCKED from modern
drivers. It's entirely cargo-culted since we ignore it on
non-DRIVER_LEGACY drivers since:

commit ea487835e8876abf7ad909636e308c801a2bcda6
Author: Daniel Vetter 
Date:   Mon Sep 28 21:42:40 2015 +0200

drm: Enforce unlocked ioctl operation for kms driver ioctls

Now justifying why we can do this for legacy drives too (and hence
close the source of all the bogus copypasting) is a bit more involved.
DRM_UNLOCKED was introduced in:

commit ed8b67040965e4fe695db333d5914e18ea5f146f
Author: Arnd Bergmann 
Date:   Wed Dec 16 22:17:09 2009 +

drm: convert drm_ioctl to unlocked_ioctl

As a immediate hack to keep i810 happy, which would have deadlocked
without this trickery. The old BKL is automatically dropped in
schedule(), and hence the i810 vs. mmap_sem deadlock didn't actually
cause a real deadlock. But with a mutex it would. The solution was to
annotate these as DRM_UNLOCKED and mark i810 unsafe on SMP machines.

This conversion caused a regression, because unlike the BKL a mutex
isn't dropped over schedule (that thing again), which caused a vblank
wait in one thread to block the entire desktop and all its apps. Back
then we did vblank scheduling by blocking in the client, awesome isn't
it. This was fixed quickly in (ok not so quickly, took 2 years):

commit 8f4ff2b06afcd6f151868474a432c603057eaf56
Author: Ilija Hadzic 
Date:   Mon Oct 31 17:46:18 2011 -0400

drm: do not sleep on vblank while holding a mutex

All the other DRM_UNLOCKED annotations for all the core ioctls was
work to reach finer-grained locking for modern drivers. This took
years, and culminated in:

commit fdd5b877e9ebc2029e1373b4a3cd057329a9ab7a
Author: Daniel Vetter 
Date:   Sat Dec 10 22:52:54 2016 +0100

drm: Enforce BKL-less ioctls for modern drivers

DRM_UNLOCKED was never required by any legacy drivers, except for the
vblank_wait IOCTL. Therefore we will not regress these old drivers by
going back to where we've been in 2011. For all modern drivers nothing
will change.

To make this perfectly clear, also add a comment to DRM_UNLOCKED.

v2: Don't forget about drm_ioc32.c (Michel). Not a source of copypasta
mistakes when creating driver ioctl tables, but better to be
consistent.

Cc: Michel Dänzer 
Cc: Emil Velikov 
Signed-off-by: Daniel Vetter 
---
 drivers/gpu/drm/drm_ioc32.c |  13 ++--
 drivers/gpu/drm/drm_ioctl.c | 139 ++--
 include/drm/drm_ioctl.h |   3 +
 3 files changed, 78 insertions(+), 77 deletions(-)

diff --git a/drivers/gpu/drm/drm_ioc32.c b/drivers/gpu/drm/drm_ioc32.c
index 586aa28024c5..e1371f30f065 100644
--- a/drivers/gpu/drm/drm_ioc32.c
+++ b/drivers/gpu/drm/drm_ioc32.c
@@ -108,7 +108,7 @@ static int compat_drm_version(struct file *file, unsigned 
int cmd,
.desc = compat_ptr(v32.desc),
};
err = drm_ioctl_kernel(file, drm_version, &v,
-  DRM_UNLOCKED|DRM_RENDER_ALLOW);
+  DRM_RENDER_ALLOW);
if (err)
return err;
 
@@ -142,7 +142,7 @@ static int compat_drm_getunique(struct file *file, unsigned 
int cmd,
.unique = compat_ptr(uq32.unique),
};
 
-   err = drm_ioctl_kernel(file, drm_getunique, &uq, DRM_UNLOCKED);
+   err = drm_ioctl_kernel(file, drm_getunique, &uq, 0);
if (err)
return err;
 
@@ -181,7 +181,7 @@ static int compat_drm_getmap(struct file *file, unsigned 
int cmd,
return -EFAULT;
 
map.offset = m32.offset;
-   err = drm_ioctl_kernel(file, drm_legacy_getmap_ioctl, &map, 
DRM_UNLOCKED);
+   err = drm_ioctl_kernel(file, drm_legacy_getmap_ioctl, &map, 0);
if (err)
return err;
 
@@ -267,7 +267,7 @@ static int compat_drm_getclient(struct file *file, unsigned 
int cmd,
 
client.idx = c32.idx;
 
-   err = drm_ioctl_kernel(file, drm_getclient, &client, DRM_UNLOCKED);
+   err = drm_ioctl_kernel(file, drm_getclient, &client, 0);
if (err)
return err;
 
@@ -297,7 +297,7 @@ static int compat_drm_getstats(struct file *file, unsigned 
int cmd,
drm_stats32_t __user *argp = (void __user *)arg;
int err;
 
-   err = drm_ioctl_kernel(file, drm_noop, NULL, DRM_UNLOCKED);
+   err = drm_ioctl_kernel(file, drm_noop, NULL, 0);
if (err)
return err;
 
@@ -892,8 +892,7 @@ static int compat_drm_mode_addfb2(struct file *file, 
unsigned int cmd,
   sizeof(req64.modifier)))
return -EFAULT;
 
-   err = drm_ioctl_kernel(file, drm_mode_addfb2, &req64,
-  DRM_UNLOCKED);
+   err = drm_ioctl_kernel(file, drm_mode_addfb2, &req64, 0);
if (err)
return err;
 
diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
index a1eb422a5711..365d7a5629f6 100644
--- a/drivers/gpu/drm/drm_ioctl.c
+++ b/drivers/gpu/drm/drm_ioctl

Re: [Intel-gfx] [PATCH 07/15] drm/i915: Move object close under its own lock

2019-06-05 Thread Matthew Auld
On Mon, 3 Jun 2019 at 15:00, Chris Wilson  wrote:
>
> Use i915_gem_object_lock() to guard the LUT and active reference to
> allow us to break free of struct_mutex for handling GEM_CLOSE.
>
> Testcase: igt/gem_close_race
> Testcase: igt/gem_exec_parallel
> Signed-off-by: Chris Wilson 
> ---
>  drivers/gpu/drm/i915/gem/i915_gem_context.c   | 75 ++-
>  .../gpu/drm/i915/gem/i915_gem_context_types.h | 12 +--
>  .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 25 +--
>  drivers/gpu/drm/i915/gem/i915_gem_object.c| 38 ++
>  .../gpu/drm/i915/gem/i915_gem_object_types.h  |  1 -
>  .../gpu/drm/i915/gem/selftests/mock_context.c |  1 -
>  drivers/gpu/drm/i915/i915_drv.h   |  4 +-
>  drivers/gpu/drm/i915/i915_gem.c   |  1 +
>  drivers/gpu/drm/i915/i915_gem_gtt.c   |  1 +
>  drivers/gpu/drm/i915/i915_timeline.c  | 13 ++--
>  drivers/gpu/drm/i915/i915_vma.c   | 42 +++
>  drivers/gpu/drm/i915/i915_vma.h   | 17 ++---
>  .../gpu/drm/i915/selftests/mock_gem_device.c  |  1 +
>  13 files changed, 131 insertions(+), 100 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c 
> b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> index 08721ef62e4e..fb03a19932cf 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> @@ -95,24 +95,40 @@ void i915_lut_handle_free(struct i915_lut_handle *lut)
>
>  static void lut_close(struct i915_gem_context *ctx)
>  {
> -   struct i915_lut_handle *lut, *ln;
> struct radix_tree_iter iter;
> void __rcu **slot;
>
> -   list_for_each_entry_safe(lut, ln, &ctx->handles_list, ctx_link) {
> -   list_del(&lut->obj_link);
> -   i915_lut_handle_free(lut);
> -   }
> -   INIT_LIST_HEAD(&ctx->handles_list);
> +   lockdep_assert_held(&ctx->mutex);
>
> rcu_read_lock();
> radix_tree_for_each_slot(slot, &ctx->handles_vma, &iter, 0) {
> struct i915_vma *vma = rcu_dereference_raw(*slot);
> +   struct drm_i915_gem_object *obj = vma->obj;
> +   struct i915_lut_handle *lut;
> +
> +   rcu_read_unlock();
> +   i915_gem_object_lock(obj);
> +   list_for_each_entry(lut, &obj->lut_list, obj_link) {
> +   if (lut->ctx != ctx)
> +   continue;
>
> -   radix_tree_iter_delete(&ctx->handles_vma, &iter, slot);
> +   if (lut->handle != iter.index)
> +   continue;
>
> -   vma->open_count--;
> -   i915_vma_put(vma);
> +   list_del(&lut->obj_link);
> +   break;
> +   }
> +   i915_gem_object_unlock(obj);
> +   rcu_read_lock();
> +
> +   if (&lut->obj_link != &obj->lut_list) {

So mean.

Fwiw,
Reviewed-by: Matthew Auld 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Re: [Intel-gfx] [PATCH] drm/ioctl: Ditch DRM_UNLOCKED except for the legacy vblank ioctl

2019-06-05 Thread Daniel Vetter
On Wed, Jun 5, 2019 at 12:50 PM Michel Dänzer  wrote:
>
> On 2019-05-29 11:30 a.m., Daniel Vetter wrote:
> > This completes Emil's series of removing DRM_UNLOCKED from modern
> > drivers. It's entirely cargo-culted since we ignore it on
> > non-DRIVER_LEGACY drivers since:
> >
> > commit ea487835e8876abf7ad909636e308c801a2bcda6
> > Author: Daniel Vetter 
> > Date:   Mon Sep 28 21:42:40 2015 +0200
> >
> > drm: Enforce unlocked ioctl operation for kms driver ioctls
> >
> > Now justifying why we can do this for legacy drives too (and hence
> > close the source of all the bogus copypasting) is a bit more involved.
> > DRM_UNLOCKED was introduced in:
> >
> > commit ed8b67040965e4fe695db333d5914e18ea5f146f
> > Author: Arnd Bergmann 
> > Date:   Wed Dec 16 22:17:09 2009 +
> >
> > drm: convert drm_ioctl to unlocked_ioctl
> >
> > As a immediate hack to keep i810 happy, which would have deadlocked
> > without this trickery. The old BKL is automatically dropped in
> > schedule(), and hence the i810 vs. mmap_sem deadlock didn't actually
> > cause a real deadlock. But with a mutex it would. The solution was to
> > annotate these as DRM_UNLOCKED and mark i810 unsafe on SMP machines.
> >
> > This conversion caused a regression, because unlike the BKL a mutex
> > isn't dropped over schedule (that thing again), which caused a vblank
> > wait in one thread to block the entire desktop and all its apps. Back
> > then we did vblank scheduling by blocking in the client, awesome isn't
> > it. This was fixed quickly in (ok not so quickly, took 2 years):
> >
> > commit 8f4ff2b06afcd6f151868474a432c603057eaf56
> > Author: Ilija Hadzic 
> > Date:   Mon Oct 31 17:46:18 2011 -0400
> >
> > drm: do not sleep on vblank while holding a mutex
> >
> > All the other DRM_UNLOCKED annotations for all the core ioctls was
> > work to reach finer-grained locking for modern drivers. This took
> > years, and culminated in:
> >
> > commit fdd5b877e9ebc2029e1373b4a3cd057329a9ab7a
> > Author: Daniel Vetter 
> > Date:   Sat Dec 10 22:52:54 2016 +0100
> >
> > drm: Enforce BKL-less ioctls for modern drivers
> >
> > DRM_UNLOCKED was never required by any legacy drivers, except for the
> > vblank_wait IOCTL. Therefore we will not regress these old drivers by
> > going back to where we've been in 2011. For all modern drivers nothing
> > will change.
> >
> > To make this perfectly clear, also add a comment to DRM_UNLOCKED.
> >
> > Cc: Emil Velikov 
> > Signed-off-by: Daniel Vetter 
> > ---
> >  drivers/gpu/drm/drm_ioctl.c | 139 ++--
> >  include/drm/drm_ioctl.h |   3 +
> >  2 files changed, 72 insertions(+), 70 deletions(-)
>
> Did you miss drivers/gpu/drm/drm_ioc32.c ?

Hm indeed. Not a worry from a copypasta-spreading pov, since hopefully
no one copypastes ioc32 compat code. But from a consistency side
should definitely make sure ioctls work the same whether userspace is
32bit or 64bit. I'll respin, thanks for spotting this.
-Daniel

>
>
> --
> Earthling Michel Dänzer   |  https://www.amd.com
> Libre software enthusiast | Mesa and X developer



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - 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.IGT: success for dma-buf: Discard old fence_excl on retrying get_fences_rcu for realloc (rev3)

2019-06-05 Thread Patchwork
== Series Details ==

Series: dma-buf: Discard old fence_excl on retrying get_fences_rcu for realloc 
(rev3)
URL   : https://patchwork.freedesktop.org/series/61581/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6186_full -> Patchwork_13167_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_softpin@noreloc-s3:
- shard-apl:  [PASS][1] -> [DMESG-WARN][2] ([fdo#108566]) +2 
similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-apl4/igt@gem_soft...@noreloc-s3.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13167/shard-apl8/igt@gem_soft...@noreloc-s3.html
- shard-kbl:  [PASS][3] -> [DMESG-WARN][4] ([fdo#103313])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-kbl3/igt@gem_soft...@noreloc-s3.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13167/shard-kbl6/igt@gem_soft...@noreloc-s3.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-gtt:
- shard-iclb: [PASS][5] -> [FAIL][6] ([fdo#103167]) +4 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-iclb6/igt@kms_frontbuffer_track...@fbc-1p-offscren-pri-indfb-draw-mmap-gtt.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13167/shard-iclb6/igt@kms_frontbuffer_track...@fbc-1p-offscren-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-pwrite:
- shard-hsw:  [PASS][7] -> [SKIP][8] ([fdo#109271]) +19 similar 
issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-hsw2/igt@kms_frontbuffer_track...@fbc-2p-scndscrn-cur-indfb-draw-pwrite.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13167/shard-hsw1/igt@kms_frontbuffer_track...@fbc-2p-scndscrn-cur-indfb-draw-pwrite.html

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
- shard-skl:  [PASS][9] -> [FAIL][10] ([fdo#108145] / [fdo#110403])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-skl3/igt@kms_plane_alpha_bl...@pipe-b-coverage-7efc.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13167/shard-skl3/igt@kms_plane_alpha_bl...@pipe-b-coverage-7efc.html

  * igt@kms_sequence@get-forked:
- shard-snb:  [PASS][11] -> [SKIP][12] ([fdo#109271]) +3 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-snb1/igt@kms_seque...@get-forked.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13167/shard-snb7/igt@kms_seque...@get-forked.html

  * igt@prime_self_import@export-vs-gem_close-race:
- shard-hsw:  [PASS][13] -> [INCOMPLETE][14] ([fdo#103540])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-hsw7/igt@prime_self_import@export-vs-gem_close-race.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13167/shard-hsw5/igt@prime_self_import@export-vs-gem_close-race.html

  
 Possible fixes 

  * igt@gem_mmap_gtt@forked-medium-copy-odd:
- shard-iclb: [INCOMPLETE][15] ([fdo#107713]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-iclb8/igt@gem_mmap_...@forked-medium-copy-odd.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13167/shard-iclb2/igt@gem_mmap_...@forked-medium-copy-odd.html

  * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible:
- shard-glk:  [FAIL][17] ([fdo#103060]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-glk3/igt@kms_f...@2x-modeset-vs-vblank-race-interruptible.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13167/shard-glk6/igt@kms_f...@2x-modeset-vs-vblank-race-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-skl:  [FAIL][19] ([fdo#105363]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-skl5/igt@kms_f...@flip-vs-expired-vblank-interruptible.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13167/shard-skl1/igt@kms_f...@flip-vs-expired-vblank-interruptible.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render:
- shard-iclb: [FAIL][21] ([fdo#103167]) -> [PASS][22] +4 similar 
issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-iclb2/igt@kms_frontbuffer_track...@fbcpsr-1p-primscrn-cur-indfb-draw-render.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13167/shard-iclb6/igt@kms_frontbuffer_track...@fbcpsr-1p-primscrn-cur-indfb-draw-render.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl:  [FAIL][23] ([fdo#108145] / [fdo#110403]) -> [PASS][24]
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/sh

Re: [Intel-gfx] [PATCH] drm/ioctl: Ditch DRM_UNLOCKED except for the legacy vblank ioctl

2019-06-05 Thread Michel Dänzer
On 2019-05-29 11:30 a.m., Daniel Vetter wrote:
> This completes Emil's series of removing DRM_UNLOCKED from modern
> drivers. It's entirely cargo-culted since we ignore it on
> non-DRIVER_LEGACY drivers since:
> 
> commit ea487835e8876abf7ad909636e308c801a2bcda6
> Author: Daniel Vetter 
> Date:   Mon Sep 28 21:42:40 2015 +0200
> 
> drm: Enforce unlocked ioctl operation for kms driver ioctls
> 
> Now justifying why we can do this for legacy drives too (and hence
> close the source of all the bogus copypasting) is a bit more involved.
> DRM_UNLOCKED was introduced in:
> 
> commit ed8b67040965e4fe695db333d5914e18ea5f146f
> Author: Arnd Bergmann 
> Date:   Wed Dec 16 22:17:09 2009 +
> 
> drm: convert drm_ioctl to unlocked_ioctl
> 
> As a immediate hack to keep i810 happy, which would have deadlocked
> without this trickery. The old BKL is automatically dropped in
> schedule(), and hence the i810 vs. mmap_sem deadlock didn't actually
> cause a real deadlock. But with a mutex it would. The solution was to
> annotate these as DRM_UNLOCKED and mark i810 unsafe on SMP machines.
> 
> This conversion caused a regression, because unlike the BKL a mutex
> isn't dropped over schedule (that thing again), which caused a vblank
> wait in one thread to block the entire desktop and all its apps. Back
> then we did vblank scheduling by blocking in the client, awesome isn't
> it. This was fixed quickly in (ok not so quickly, took 2 years):
> 
> commit 8f4ff2b06afcd6f151868474a432c603057eaf56
> Author: Ilija Hadzic 
> Date:   Mon Oct 31 17:46:18 2011 -0400
> 
> drm: do not sleep on vblank while holding a mutex
> 
> All the other DRM_UNLOCKED annotations for all the core ioctls was
> work to reach finer-grained locking for modern drivers. This took
> years, and culminated in:
> 
> commit fdd5b877e9ebc2029e1373b4a3cd057329a9ab7a
> Author: Daniel Vetter 
> Date:   Sat Dec 10 22:52:54 2016 +0100
> 
> drm: Enforce BKL-less ioctls for modern drivers
> 
> DRM_UNLOCKED was never required by any legacy drivers, except for the
> vblank_wait IOCTL. Therefore we will not regress these old drivers by
> going back to where we've been in 2011. For all modern drivers nothing
> will change.
> 
> To make this perfectly clear, also add a comment to DRM_UNLOCKED.
> 
> Cc: Emil Velikov 
> Signed-off-by: Daniel Vetter 
> ---
>  drivers/gpu/drm/drm_ioctl.c | 139 ++--
>  include/drm/drm_ioctl.h |   3 +
>  2 files changed, 72 insertions(+), 70 deletions(-)

Did you miss drivers/gpu/drm/drm_ioc32.c ?


-- 
Earthling Michel Dänzer   |  https://www.amd.com
Libre software enthusiast | Mesa and X developer
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Re: [Intel-gfx] [PATCH] drm/i915: Skip context_barrier emission for unused contexts

2019-06-05 Thread Tvrtko Ursulin


On 04/06/2019 16:24, Chris Wilson wrote:

The intent was to skip unused HW contexts by checking ce->state.
However, this only works for execlists where the ppGTT pointers is
stored inside the HW context. For gen7, the ppGTT is alongside the
logical state and must be updated on all active engines but, crucially,
only on active engines. As we need different checks, and to keep
context_barrier_task() agnostic, pass in the predicate.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110836
Fixes: 62c8e423450d ("drm/i915: Skip unused contexts for 
context_barrier_task()")
Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
  drivers/gpu/drm/i915/gem/i915_gem_context.c   | 15 ++-
  .../drm/i915/gem/selftests/i915_gem_context.c | 19 +++
  2 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c 
b/drivers/gpu/drm/i915/gem/i915_gem_context.c
index 08721ef62e4e..6819b598d226 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
@@ -902,6 +902,7 @@ static void cb_retire(struct i915_active *base)
  I915_SELFTEST_DECLARE(static intel_engine_mask_t 
context_barrier_inject_fault);
  static int context_barrier_task(struct i915_gem_context *ctx,
intel_engine_mask_t engines,
+   bool (*skip)(struct intel_context *ce, void 
*data),
int (*emit)(struct i915_request *rq, void 
*data),
void (*task)(void *data),
void *data)
@@ -931,7 +932,10 @@ static int context_barrier_task(struct i915_gem_context 
*ctx,
break;
}
  
-		if (!(ce->engine->mask & engines) || !ce->state)

+   if (!(ce->engine->mask & engines))
+   continue;
+
+   if (skip && skip(ce, data))
continue;
  
  		rq = intel_context_create_request(ce);

@@ -1058,6 +1062,14 @@ static int emit_ppgtt_update(struct i915_request *rq, 
void *data)
return 0;
  }
  
+static bool skip_ppgtt_update(struct intel_context *ce, void *data)

+{
+   if (HAS_LOGICAL_RING_CONTEXTS(ce->engine->i915))
+   return !ce->state;
+   else
+   return !atomic_read(&ce->pin_count);


Would "return !atomic_read(&ce->pin_count) || !ce->state;" work and 
avoid the somewhat irky HAS_LOGICAL_RING_CONTEXTS check?


Regards,

Tvrtko


+}
+
  static int set_ppgtt(struct drm_i915_file_private *file_priv,
 struct i915_gem_context *ctx,
 struct drm_i915_gem_context_param *args)
@@ -1103,6 +1115,7 @@ static int set_ppgtt(struct drm_i915_file_private 
*file_priv,
 * only indirectly through the context.
 */
err = context_barrier_task(ctx, ALL_ENGINES,
+  skip_ppgtt_update,
   emit_ppgtt_update,
   set_ppgtt_barrier,
   old);
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c 
b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
index 1bc3b8026400..41105f6ed206 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
@@ -1619,6 +1619,11 @@ __engine_name(struct drm_i915_private *i915, 
intel_engine_mask_t engines)
return "none";
  }
  
+static bool skip_unused_engines(struct intel_context *ce, void *data)

+{
+   return !ce->state;
+}
+
  static void mock_barrier_task(void *data)
  {
unsigned int *counter = data;
@@ -1651,7 +1656,7 @@ static int mock_context_barrier(void *arg)
  
  	counter = 0;

err = context_barrier_task(ctx, 0,
-  NULL, mock_barrier_task, &counter);
+  NULL, NULL, mock_barrier_task, &counter);
if (err) {
pr_err("Failed at line %d, err=%d\n", __LINE__, err);
goto out;
@@ -1664,7 +1669,10 @@ static int mock_context_barrier(void *arg)
  
  	counter = 0;

err = context_barrier_task(ctx, ALL_ENGINES,
-  NULL, mock_barrier_task, &counter);
+  skip_unused_engines,
+  NULL,
+  mock_barrier_task,
+  &counter);
if (err) {
pr_err("Failed at line %d, err=%d\n", __LINE__, err);
goto out;
@@ -1685,7 +1693,7 @@ static int mock_context_barrier(void *arg)
counter = 0;
context_barrier_inject_fault = BIT(RCS0);
err = context_barrier_task(ctx, ALL_ENGINES,
-  NULL, mock_barrier_task, &counter);
+  NULL, NULL, mock_barrier_task, &counter);
context_barrier_inject_fault = 0;
   

Re: [Intel-gfx] [PATCH 1/2] Documentation/i915: Fix kernel-doc references to moved gem files

2019-06-05 Thread Mika Kuoppala
Jani Nikula  writes:

> The error messages could be more descriptive, but fix these caused by
> file moves:
>
> WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -internal
> ./drivers/gpu/drm/i915/i915_gem_shrinker.c' failed with return code 2
> WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -function
> User command execution ./drivers/gpu/drm/i915/i915_gem_execbuffer.c'
> failed with return code 1
> WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -internal
> ./drivers/gpu/drm/i915/i915_gem_tiling.c' failed with return code 2
> WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -function
> buffer object tiling ./drivers/gpu/drm/i915/i915_gem_tiling.c'
> failed with return code 1
>
> Fixes: 10be98a77c55 ("drm/i915: Move more GEM objects under gem/")
> Cc: Chris Wilson 
> Cc: Mika Kuoppala 
> Signed-off-by: Jani Nikula 

/o\

Reviewed-by: Mika Kuoppala 

> ---
>  Documentation/gpu/i915.rst | 11 ---
>  1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
> index 6c75380b2928..f98ee95da90f 100644
> --- a/Documentation/gpu/i915.rst
> +++ b/Documentation/gpu/i915.rst
> @@ -349,7 +349,7 @@ of buffer object caches. Shrinking is used to make main 
> memory
>  available. Note that this is mostly orthogonal to evicting buffer
>  objects, which has the goal to make space in gpu virtual address spaces.
>  
> -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_shrinker.c
> +.. kernel-doc:: drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> :internal:
>  
>  Batchbuffer Parsing
> @@ -373,7 +373,7 @@ Batchbuffer Pools
>  User Batchbuffer Execution
>  --
>  
> -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_execbuffer.c
> +.. kernel-doc:: drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
> :doc: User command execution
>  
>  Logical Rings, Logical Ring Contexts and Execlists
> @@ -382,9 +382,6 @@ Logical Rings, Logical Ring Contexts and Execlists
>  .. kernel-doc:: drivers/gpu/drm/i915/gt/intel_lrc.c
> :doc: Logical Rings, Logical Ring Contexts and Execlists
>  
> -.. kernel-doc:: drivers/gpu/drm/i915/gt/intel_lrc.c
> -   :internal:
> -
>  Global GTT views
>  
>  
> @@ -415,10 +412,10 @@ Hardware Tiling and Swizzling Details
>  Object Tiling IOCTLs
>  
>  
> -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c
> +.. kernel-doc:: drivers/gpu/drm/i915/gem/i915_gem_tiling.c
> :internal:
>  
> -.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c
> +.. kernel-doc:: drivers/gpu/drm/i915/gem/i915_gem_tiling.c
> :doc: buffer object tiling
>  
>  WOPCM
> -- 
> 2.20.1
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Re: [Intel-gfx] [v7][PATCH 02/12] drm/i915: Enable intel_color_get_config()

2019-06-05 Thread Jani Nikula
On Wed, 29 May 2019, Swati Sharma  wrote:
> In this patch, intel_color_get_config() is enabled and support
> for read_luts() will be added platform by platform incrementally
> in the follow-up patches.
>
> v4: -Renamed intel_get_color_config to intel_color_get_config [Jani]
> -Added the user early on such that support for get_color_config()
>  can be added platform by platform incrementally [Jani]
> v5: -Incorrect place for calling intel_color_get_config() in
>  haswell_get_pipe_config() [Ville]
> v6: -Renamed intel_color_read_luts() to intel_color_get_config()
>  [Jani and Ville]
>
> Signed-off-by: Swati Sharma 

I pushed patches 1 and 2, thanks for the patches.

BR,
Jani.


> ---
>  drivers/gpu/drm/i915/intel_display.c | 4 
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c 
> b/drivers/gpu/drm/i915/intel_display.c
> index 05177f3..3e01028 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -8351,6 +8351,7 @@ static bool i9xx_get_pipe_config(struct intel_crtc 
> *crtc,
>   pipe_config->cgm_mode = I915_READ(CGM_PIPE_MODE(crtc->pipe));
>  
>   i9xx_get_pipe_color_config(pipe_config);
> + intel_color_get_config(pipe_config);
>  
>   if (INTEL_GEN(dev_priv) < 4)
>   pipe_config->double_wide = tmp & PIPECONF_DOUBLE_WIDE;
> @@ -9426,6 +9427,7 @@ static bool ironlake_get_pipe_config(struct intel_crtc 
> *crtc,
>   pipe_config->csc_mode = I915_READ(PIPE_CSC_MODE(crtc->pipe));
>  
>   i9xx_get_pipe_color_config(pipe_config);
> + intel_color_get_config(pipe_config);
>  
>   if (I915_READ(PCH_TRANSCONF(crtc->pipe)) & TRANS_ENABLE) {
>   struct intel_shared_dpll *pll;
> @@ -9874,6 +9876,8 @@ static bool haswell_get_pipe_config(struct intel_crtc 
> *crtc,
>   i9xx_get_pipe_color_config(pipe_config);
>   }
>  
> + intel_color_get_config(pipe_config);
> +
>   power_domain = POWER_DOMAIN_PIPE_PANEL_FITTER(crtc->pipe);
>   WARN_ON(power_domain_mask & BIT_ULL(power_domain));

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

Re: [Intel-gfx] [v7][PATCH 03/12] drm/i915: Add func to compare hw/sw gamma lut

2019-06-05 Thread Jani Nikula
On Wed, 29 May 2019, Swati Sharma  wrote:
> v3: -Rebase
> v4: -Renamed intel_compare_color_lut() to intel_color_lut_equal() [Jani]
> -Added the default label above the correct label [Jani]
> -Corrected smatch warn "variable dereferenced before check"
>  [Dan Carpenter]
> v5: -Added condition (!blob1 && !blob2) return true [Jani]
> -Called PIPE_CONF_CHECK_COLOR_LUT inside if (!adjust) [Jani]
> -Added #undef PIPE_CONF_CHECK_COLOR_LUT [Jani]
> v6: -Added func intel_color_get_bit_precision() to get bit precision for
>  gamma and degamma lut readout depending upon platform and
>  corresponding to load_luts() [Ankit]
> -Added debug log for color para in intel_dump_pipe_config [Jani]
> -Made patch11 as patch3 [Jani]
> v7: -Renamed func intel_color_get_bit_precision() to
>  intel_color_get_gamma_bit_precision()
> -Added separate function/platform for gamma bit precision [Ville]
> -Corrected checkpatch warnings

The patch revisions are great, but you do need to add an actual commit
message first as well.

In general, please don't reference "this patch" because on the one hand
it's kind of obvious and on the other hand it ceases to be a patch when
it gets applied and becomes a commit.

Please also use the imperative style in the commit message like you have
in the title/subject line.

So instead of "In this patch, foo is added." use "Add foo."

BR,
Jani.


>
> Signed-off-by: Swati Sharma 
> ---
>  drivers/gpu/drm/i915/intel_color.c   | 166 
> +++
>  drivers/gpu/drm/i915/intel_color.h   |   7 ++
>  drivers/gpu/drm/i915/intel_display.c |  24 +
>  3 files changed, 197 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_color.c 
> b/drivers/gpu/drm/i915/intel_color.c
> index 50b98ee..b20a2c6 100644
> --- a/drivers/gpu/drm/i915/intel_color.c
> +++ b/drivers/gpu/drm/i915/intel_color.c
> @@ -1251,6 +1251,172 @@ static int icl_color_check(struct intel_crtc_state 
> *crtc_state)
>   return 0;
>  }
>  
> +static int i9xx_gamma_precision(struct intel_crtc_state *crtc_state)
> +{
> + if (!crtc_state->gamma_enable)
> + return 0;
> +
> + switch (crtc_state->gamma_mode) {
> + case GAMMA_MODE_MODE_8BIT:
> + return 8;
> + case GAMMA_MODE_MODE_10BIT:
> + return 16;
> + default:
> + MISSING_CASE(crtc_state->gamma_mode);
> + return 0;
> + }
> +}
> +
> +static int chv_gamma_precision(struct intel_crtc_state *crtc_state)
> +{
> + if (crtc_state->cgm_mode & CGM_PIPE_MODE_GAMMA)
> + return 10;
> + else
> + return i9xx_gamma_precision(crtc_state);
> +}
> +
> +static int ilk_gamma_precision(struct intel_crtc_state *crtc_state)
> +{
> + if (!crtc_state->gamma_enable)
> + return 0;
> +
> + if ((crtc_state->csc_mode & CSC_POSITION_BEFORE_GAMMA) == 0)
> + return 0;
> +
> + switch (crtc_state->gamma_mode) {
> + case GAMMA_MODE_MODE_8BIT:
> + return 8;
> + case GAMMA_MODE_MODE_10BIT:
> + return 10;
> + default:
> + MISSING_CASE(crtc_state->gamma_mode);
> + return 0;
> + }
> +}
> +
> +static int ivb_gamma_precision(struct intel_crtc_state *crtc_state)
> +{
> + if (!crtc_state->gamma_enable)
> + return 0;
> +
> + if ((crtc_state->csc_mode & CSC_POSITION_BEFORE_GAMMA) == 0)
> + return 0;
> +
> + switch (crtc_state->gamma_mode) {
> + case GAMMA_MODE_MODE_8BIT:
> + return 8;
> + case GAMMA_MODE_MODE_SPLIT:
> + case GAMMA_MODE_MODE_10BIT:
> + return 10;
> + default:
> + MISSING_CASE(crtc_state->gamma_mode);
> + return 0;
> + }
> +}
> +
> +static int glk_gamma_precision(struct intel_crtc_state *crtc_state)
> +{
> + if (!crtc_state->gamma_enable)
> + return 0;
> +
> + if ((crtc_state->csc_mode & CSC_POSITION_BEFORE_GAMMA) == 0)
> + return 0;
> +
> + switch (crtc_state->gamma_mode) {
> + case GAMMA_MODE_MODE_8BIT:
> + return 8;
> + case GAMMA_MODE_MODE_10BIT:
> + return 10;
> + default:
> + MISSING_CASE(crtc_state->gamma_mode);
> + return 0;
> + }
> +}
> +
> +static int icl_gamma_precision(struct intel_crtc_state *crtc_state)
> +{
> + if ((crtc_state->gamma_mode & PRE_CSC_GAMMA_ENABLE) == 0)
> + return 0;
> +
> + switch (crtc_state->gamma_mode & GAMMA_MODE_MODE_MASK) {
> + case GAMMA_MODE_MODE_8BIT:
> + return 8;
> + case GAMMA_MODE_MODE_10BIT:
> + return 10;
> + default:
> + MISSING_CASE(crtc_state->gamma_mode);
> + return 0;
> + }
> +}
> +
> +int intel_color_get_gamma_bit_precision(struct intel_crtc_state *crtc_state)
> +{
> + struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
> + struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +
> 

[PATCH 2/2] drm/i915: fix documentation build warnings

2019-06-05 Thread Jani Nikula
Just a straightforward bag of fixes for a clean htmldocs build.

Signed-off-by: Jani Nikula 
---
 Documentation/gpu/i915.rst  | 6 --
 drivers/gpu/drm/i915/i915_reg.h | 2 +-
 drivers/gpu/drm/i915/i915_vma.h | 2 ++
 drivers/gpu/drm/i915/intel_guc_fwif.h   | 2 ++
 drivers/gpu/drm/i915/intel_runtime_pm.c | 2 --
 5 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
index f98ee95da90f..300220c4b498 100644
--- a/Documentation/gpu/i915.rst
+++ b/Documentation/gpu/i915.rst
@@ -475,12 +475,6 @@ i915_context_create and i915_context_free
 .. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
:doc: i915_context_create and i915_context_free tracepoints
 
-switch_mm
--
-
-.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
-   :doc: switch_mm tracepoint
-
 Perf
 
 
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 07e3f861a92e..b7c13d5deb15 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -153,7 +153,7 @@
  * REG_FIELD_PREP() - Prepare a u32 bitfield value
  * @__mask: shifted mask defining the field's length and position
  * @__val: value to put in the field
-
+ *
  * Local copy of FIELD_PREP() to generate an integer constant expression, force
  * u32 and for consistency with REG_FIELD_GET(), REG_BIT() and REG_GENMASK().
  *
diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h
index 2657c99fe187..bc15083bd479 100644
--- a/drivers/gpu/drm/i915/i915_vma.h
+++ b/drivers/gpu/drm/i915/i915_vma.h
@@ -40,6 +40,8 @@
 enum i915_cache_level;
 
 /**
+ * DOC: Virtual Memory Address
+ *
  * A VMA represents a GEM BO that is bound into an address space. Therefore, a
  * VMA's presence cannot be guaranteed before binding, or after unbinding the
  * object into/from the address space.
diff --git a/drivers/gpu/drm/i915/intel_guc_fwif.h 
b/drivers/gpu/drm/i915/intel_guc_fwif.h
index 3d1de288d96c..f55f3bc8524d 100644
--- a/drivers/gpu/drm/i915/intel_guc_fwif.h
+++ b/drivers/gpu/drm/i915/intel_guc_fwif.h
@@ -500,6 +500,8 @@ enum guc_log_buffer_type {
 };
 
 /**
+ * struct guc_log_buffer_state - GuC log buffer state
+ *
  * Below state structure is used for coordination of retrieval of GuC firmware
  * logs. Separate state is maintained for each log buffer type.
  * read_ptr points to the location where i915 read last in log buffer and
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c 
b/drivers/gpu/drm/i915/intel_runtime_pm.c
index 3bdeea596ad5..af3c1ada1b2e 100644
--- a/drivers/gpu/drm/i915/intel_runtime_pm.c
+++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
@@ -391,8 +391,6 @@ static intel_wakeref_t __intel_runtime_pm_get(struct 
drm_i915_private *i915,
  * asynchronous PM management from display code) and ensures that it is powered
  * up. Raw references are not considered during wakelock assert checks.
  *
- * Returns:
- * True when the power domain is enabled, false otherwise.
  * Any runtime pm reference obtained by this function must have a symmetric
  * call to intel_runtime_pm_put_raw() to release the reference again.
  *
-- 
2.20.1



[PATCH 1/2] Documentation/i915: Fix kernel-doc references to moved gem files

2019-06-05 Thread Jani Nikula
The error messages could be more descriptive, but fix these caused by
file moves:

WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -internal
./drivers/gpu/drm/i915/i915_gem_shrinker.c' failed with return code 2
WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -function
User command execution ./drivers/gpu/drm/i915/i915_gem_execbuffer.c'
failed with return code 1
WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -internal
./drivers/gpu/drm/i915/i915_gem_tiling.c' failed with return code 2
WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -function
buffer object tiling ./drivers/gpu/drm/i915/i915_gem_tiling.c'
failed with return code 1

Fixes: 10be98a77c55 ("drm/i915: Move more GEM objects under gem/")
Cc: Chris Wilson 
Cc: Mika Kuoppala 
Signed-off-by: Jani Nikula 
---
 Documentation/gpu/i915.rst | 11 ---
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
index 6c75380b2928..f98ee95da90f 100644
--- a/Documentation/gpu/i915.rst
+++ b/Documentation/gpu/i915.rst
@@ -349,7 +349,7 @@ of buffer object caches. Shrinking is used to make main 
memory
 available. Note that this is mostly orthogonal to evicting buffer
 objects, which has the goal to make space in gpu virtual address spaces.
 
-.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_shrinker.c
+.. kernel-doc:: drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
:internal:
 
 Batchbuffer Parsing
@@ -373,7 +373,7 @@ Batchbuffer Pools
 User Batchbuffer Execution
 --
 
-.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_execbuffer.c
+.. kernel-doc:: drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
:doc: User command execution
 
 Logical Rings, Logical Ring Contexts and Execlists
@@ -382,9 +382,6 @@ Logical Rings, Logical Ring Contexts and Execlists
 .. kernel-doc:: drivers/gpu/drm/i915/gt/intel_lrc.c
:doc: Logical Rings, Logical Ring Contexts and Execlists
 
-.. kernel-doc:: drivers/gpu/drm/i915/gt/intel_lrc.c
-   :internal:
-
 Global GTT views
 
 
@@ -415,10 +412,10 @@ Hardware Tiling and Swizzling Details
 Object Tiling IOCTLs
 
 
-.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c
+.. kernel-doc:: drivers/gpu/drm/i915/gem/i915_gem_tiling.c
:internal:
 
-.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c
+.. kernel-doc:: drivers/gpu/drm/i915/gem/i915_gem_tiling.c
:doc: buffer object tiling
 
 WOPCM
-- 
2.20.1



Re: [Intel-gfx] [PATCH v2 08/22] gpu: i915.rst: Fix references to renamed files

2019-06-05 Thread Jani Nikula
On Tue, 04 Jun 2019, Mauro Carvalho Chehab  wrote:
> WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -function 
> Hardware workarounds ./drivers/gpu/drm/i915/intel_workarounds.c' failed with 
> return code 1
> WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -function 
> Logical Rings, Logical Ring Contexts and Execlists 
> ./drivers/gpu/drm/i915/intel_lrc.c' failed with return code 1
> WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -internal 
> ./drivers/gpu/drm/i915/intel_lrc.c' failed with return code 2
>
> Fixes: 112ed2d31a46 ("drm/i915: Move GraphicsTechnology files under gt/")
> Signed-off-by: Mauro Carvalho Chehab 

Thanks for the patch, I picked this via drm-intel because the commit
being fixed is not in Linus' tree yet.

BR,
Jani.


> ---
>  Documentation/gpu/i915.rst | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
> index 055df45596c1..6c75380b2928 100644
> --- a/Documentation/gpu/i915.rst
> +++ b/Documentation/gpu/i915.rst
> @@ -61,7 +61,7 @@ Intel GVT-g Host Support(vGPU device model)
>  Workarounds
>  ---
>  
> -.. kernel-doc:: drivers/gpu/drm/i915/intel_workarounds.c
> +.. kernel-doc:: drivers/gpu/drm/i915/gt/intel_workarounds.c
> :doc: Hardware workarounds
>  
>  Display Hardware Handling
> @@ -379,10 +379,10 @@ User Batchbuffer Execution
>  Logical Rings, Logical Ring Contexts and Execlists
>  --
>  
> -.. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c
> +.. kernel-doc:: drivers/gpu/drm/i915/gt/intel_lrc.c
> :doc: Logical Rings, Logical Ring Contexts and Execlists
>  
> -.. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c
> +.. kernel-doc:: drivers/gpu/drm/i915/gt/intel_lrc.c
> :internal:
>  
>  Global GTT views

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

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

2019-06-05 Thread Maarten Lankhorst
drm-misc-next-2019-06-05:
drm-misc-next for v5.3:

UAPI Changes:

Cross-subsystem Changes:
- Add devicetree bindings for new panels.
- Convert allwinner's DT bindings to a schema.
- Drop video/hdmi static functions from kernel docs.
- Discard old fence when reserving space in reservation_object_get_fences_rcu.

Core Changes:
- Add missing -ENOMEM handling in edid loading.
- Fix null pointer deref in scheduler.
- Header cleanups, making them self-contained.
- Remove drmP.h inclusion from core.
- Fix make htmldocs warning in scheduler and HDR metadata.
- Fix a few warnings in the uapi header and add a doc section for it.
- Small MST sideband error handling fix.
- Clarify userspace review requirements.
- Clarify implicit/explicit fencing in docs.
- Flush output polling on shutdown.

Driver Changes:
- Small cleanups to stm.
- Add new driver for ST-Ericsson MCDE
- Kconfig fix for meson HDMI.
- Add support for Armadeus ST0700 Adapt panel.
- Add KOE tx14d24vm1bpa panel.
- Update timings for st7701.
- Fix compile error in mcde.
- Big series of tc358767 fixes, and enabling support for IRQ and HPD handling.
- Assorted fixes to sii902x, and implementing HDMI audio support.
- Enable HDR metadata support on amdgpu.
- Assorted fixes to atmel-hlcdc, and add sam9x60 LCD controller support.


The following changes since commit 14ee642c2ab0a3d8a1ded11fade692d8b77172b9:

  Merge tag 'drm-intel-next-2019-05-24' of 
git://anongit.freedesktop.org/drm/drm-intel into drm-next (2019-05-28 09:26:52 
+1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-next-2019-06-05

for you to fetch changes up to f5b07b04e5f090a85d1e96938520f2b2b58e4a8e:

  dma-buf: Discard old fence_excl on retrying get_fences_rcu for realloc 
(2019-06-05 07:38:37 +0100)


drm-misc-next for v5.3:

UAPI Changes:

Cross-subsystem Changes:
- Add devicetree bindings for new panels.
- Convert allwinner's DT bindings to a schema.
- Drop video/hdmi static functions from kernel docs.
- Discard old fence when reserving space in reservation_object_get_fences_rcu.

Core Changes:
- Add missing -ENOMEM handling in edid loading.
- Fix null pointer deref in scheduler.
- Header cleanups, making them self-contained.
- Remove drmP.h inclusion from core.
- Fix make htmldocs warning in scheduler and HDR metadata.
- Fix a few warnings in the uapi header and add a doc section for it.
- Small MST sideband error handling fix.
- Clarify userspace review requirements.
- Clarify implicit/explicit fencing in docs.
- Flush output polling on shutdown.

Driver Changes:
- Small cleanups to stm.
- Add new driver for ST-Ericsson MCDE
- Kconfig fix for meson HDMI.
- Add support for Armadeus ST0700 Adapt panel.
- Add KOE tx14d24vm1bpa panel.
- Update timings for st7701.
- Fix compile error in mcde.
- Big series of tc358767 fixes, and enabling support for IRQ and HPD handling.
- Assorted fixes to sii902x, and implementing HDMI audio support.
- Enable HDR metadata support on amdgpu.
- Assorted fixes to atmel-hlcdc, and add sam9x60 LCD controller support.


Andrey Grodzovsky (2):
  drm/sched: Fix static checker warning for potential NULL ptr
  drm/sched: Fix make htmldocs warnings.

Benjamin Gaignard (1):
  drm/stm: ltdc: restore calls to clk_{enable/disable}

Chris Wilson (2):
  drm: Flush output polling on shutdown
  dma-buf: Discard old fence_excl on retrying get_fences_rcu for realloc

Claudiu Beznea (3):
  drm: atmel-hlcdc: add config option for clock selection
  drm: atmel-hlcdc: avoid initializing cfg with zero
  drm/atmel-hlcdc: revert shift by 8

Daniel Vetter (2):
  drm/doc: More fine-tuning on userspace review requirements
  drm/docs: More links for implicit/explicit fencing.

Fabio Estevam (1):
  drm/damage-helper: Use NULL instead of 0

Gen Zhang (1):
  drm/edid: Fix a missing-check bug in drm_load_edid_firmware()

Imre Deak (1):
  drm/mst: Fix MST sideband up-reply failure handling

Jagan Teki (1):
  drm/panel: st7701: Swap vertical front and back porch timings

Jerome Brunet (1):
  drm/meson: imply dw-hdmi i2s audio for meson hdmi

Jyri Sarha (5):
  drm/bridge: sii902x: Set output mode to HDMI or DVI according to EDID
  drm/bridge: sii902x: pixel clock unit is 10kHz instead of 1kHz
  dt-bindings: display: sii902x: Remove trailing white space
  dt-bindings: display: sii902x: Add HDMI audio bindings
  drm/bridge: sii902x: Implement HDMI audio support

Linus Walleij (1):
  drm/mcde: Add new driver for ST-Ericsson MCDE

Lukasz Majewski (2):
  dt-bindings: display/panel: Add KOE tx14d24vm1bpa display description
  drm/panel: simple: Add KOE tx14d24vm1bpa display support (320x240)

Maarten Lankhorst (1):
  Merge remote-tracking branch 'drm/drm-next' into drm-misc-next

Maxime Ripard (1):
  dt-bindings: display: Co

Re: [Intel-gfx] [PATCH i-g-t 1/5] lib/tests: fix conflicting args test

2019-06-05 Thread Petri Latvala


On 6/5/19 12:38 AM, Lucas De Marchi wrote:

On Fri, May 31, 2019 at 07:55:45AM -0700, Lucas De Marchi wrote:

On Fri, May 31, 2019 at 12:59:35PM +0300, Petri Latvala wrote:

On Wed, May 29, 2019 at 04:27:33PM -0700, Lucas De Marchi wrote:

We want to check if the long option conflicts with one from the core.
The check for conflicting short option already exists just above.


No, this one is checking that the val (the 0) doesn't conflict.


My point is that this check is already done above. We don't need to do
it again.



There's two val conflict tests. One checks for conflicts against core 
short options, the latter (modified here) checks for conflicts against 
core long option values.






If you insist, then we will need to raise it to magic number 500,
because 0 won't be a conflict after this series.


Yeah that would be the correct change.



Petri


___
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/3] drm/i915/selftests: Flush partial-tiling object once

2019-06-05 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/3] drm/i915/selftests: Flush partial-tiling 
object once
URL   : https://patchwork.freedesktop.org/series/61578/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6186_full -> Patchwork_13166_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset:
- shard-hsw:  [PASS][1] -> [SKIP][2] ([fdo#109271]) +28 similar 
issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-hsw6/igt@kms_f...@2x-flip-vs-dpms-off-vs-modeset.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13166/shard-hsw1/igt@kms_f...@2x-flip-vs-dpms-off-vs-modeset.html

  * igt@kms_flip@flip-vs-expired-vblank:
- shard-glk:  [PASS][3] -> [FAIL][4] ([fdo#102887] / [fdo#105363])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-glk4/igt@kms_f...@flip-vs-expired-vblank.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13166/shard-glk4/igt@kms_f...@flip-vs-expired-vblank.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
- shard-skl:  [PASS][5] -> [INCOMPLETE][6] ([fdo#109507])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-skl6/igt@kms_f...@flip-vs-suspend-interruptible.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13166/shard-skl3/igt@kms_f...@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-pwrite:
- shard-iclb: [PASS][7] -> [FAIL][8] ([fdo#103167]) +4 similar 
issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-iclb7/igt@kms_frontbuffer_track...@fbc-1p-primscrn-pri-indfb-draw-pwrite.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13166/shard-iclb2/igt@kms_frontbuffer_track...@fbc-1p-primscrn-pri-indfb-draw-pwrite.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
- shard-apl:  [PASS][9] -> [DMESG-WARN][10] ([fdo#108566]) +4 
similar issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-apl2/igt@kms_pl...@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13166/shard-apl6/igt@kms_pl...@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
- shard-skl:  [PASS][11] -> [FAIL][12] ([fdo#108145] / [fdo#110403])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-skl3/igt@kms_plane_alpha_bl...@pipe-b-coverage-7efc.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13166/shard-skl8/igt@kms_plane_alpha_bl...@pipe-b-coverage-7efc.html

  * igt@kms_psr@psr2_cursor_plane_onoff:
- shard-iclb: [PASS][13] -> [SKIP][14] ([fdo#109441])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13166/shard-iclb6/igt@kms_psr@psr2_cursor_plane_onoff.html

  * igt@kms_rotation_crc@primary-rotation-270:
- shard-iclb: [PASS][15] -> [INCOMPLETE][16] ([fdo#107713] / 
[fdo#110026] / [fdo#110040 ])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-iclb2/igt@kms_rotation_...@primary-rotation-270.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13166/shard-iclb5/igt@kms_rotation_...@primary-rotation-270.html

  * igt@kms_setmode@basic:
- shard-apl:  [PASS][17] -> [FAIL][18] ([fdo#99912])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-apl8/igt@kms_setm...@basic.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13166/shard-apl8/igt@kms_setm...@basic.html

  * igt@perf@blocking:
- shard-skl:  [PASS][19] -> [FAIL][20] ([fdo#110728]) +1 similar 
issue
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-skl8/igt@p...@blocking.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13166/shard-skl6/igt@p...@blocking.html

  * igt@perf@polling:
- shard-iclb: [PASS][21] -> [FAIL][22] ([fdo#110728])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-iclb1/igt@p...@polling.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13166/shard-iclb7/igt@p...@polling.html

  
 Possible fixes 

  * {igt@gem_ctx_param@vm}:
- shard-hsw:  [DMESG-WARN][23] ([fdo#110836]) -> [PASS][24]
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6186/shard-hsw6/igt@gem_ctx_pa...@vm.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13166/shard-hsw2/igt@gem_ctx_pa...@vm.html

  * igt@gem_mmap_gtt@forked-medium-copy-odd:
- shard-iclb: [INCOMPLETE][25] ([fdo#107713]) 

[Intel-gfx] [PULL] gvt-fixes

2019-06-05 Thread Zhenyu Wang

Hi,

More gvt fixes for 5.2-rc. This fixed one regression when enabling
debug build of i915 guest, guest ring state fix after execution
for hang check, and with two misc fixes from klocwork check.

Thanks
--
The following changes since commit 3035e8cd6c316cb633b45bc9b38052ba2dfd299b:

  drm/i915/gvt: Fix cmd length of VEB_DI_IECP (2019-05-30 11:31:43 +0800)

are available in the Git repository at:

  https://github.com/intel/gvt-linux tags/gvt-fixes-2019-06-05

for you to fetch changes up to 15e7f52a4596b496ce3da2fa4c1f94c6fb0023f2:

  drm/i915/gvt: save RING_HEAD into vreg when vgpu switched out (2019-06-03 
13:18:36 +0800)


gvt-fixes-2019-06-05

- Fix i915 guest debug build for register command access (Weinan)
- Fix guest ring state after execution for hangcheck (Xiaolin)
- klocwork static check fixes (Alek)


Aleksei Gimbitskii (2):
  drm/i915/gvt: Check if cur_pt_type is valid
  drm/i915/gvt: Assign NULL to the pointer after memory free.

Weinan Li (1):
  drm/i915/gvt: add F_CMD_ACCESS flag for wa regs

Xiaolin Zhang (1):
  drm/i915/gvt: save RING_HEAD into vreg when vgpu switched out

 drivers/gpu/drm/i915/gvt/gtt.c   | 12 +++-
 drivers/gpu/drm/i915/gvt/handlers.c  | 13 +++--
 drivers/gpu/drm/i915/gvt/reg.h   |  2 ++
 drivers/gpu/drm/i915/gvt/scheduler.c | 25 +
 drivers/gpu/drm/i915/gvt/scheduler.h |  1 +
 5 files changed, 46 insertions(+), 7 deletions(-)

-- 
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827


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