Re: [Intel-gfx] [PATCH v5 01/24] drm: Include ddc adapter pointer in struct drm_connector

2019-07-25 Thread Sam Ravnborg
Hi Andrzej.

Patch looks good, but one kernel-doc detail.

On Wed, Jul 24, 2019 at 03:59:23PM +0200, Andrzej Pietrasiewicz wrote:
> Add generic code which creates symbolic links in sysfs, pointing to ddc
> interface used by a particular video output. For example:
> 
> ls -l /sys/class/drm/card0-HDMI-A-1/ddc
> lrwxrwxrwx 1 root root 0 Jun 24 10:42 /sys/class/drm/card0-HDMI-A-1/ddc \
>   -> ../../../../soc/1388.i2c/i2c-2
> 
> This makes it easy for user to associate a display with its ddc adapter
> and use e.g. ddcutil to control the chosen monitor.
> 
> This patch adds an i2c_adapter pointer to struct drm_connector. Particular
> drivers can then use it instead of using their own private instance. If a
> connector contains a ddc, then create a symbolic link in sysfs.
> 
> Signed-off-by: Andrzej Pietrasiewicz 
> Acked-by: Daniel Vetter 
> Reviewed-by: Andrzej Hajda 
> ---
>  drivers/gpu/drm/drm_sysfs.c |  8 
>  include/drm/drm_connector.h | 11 +++
>  2 files changed, 19 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
> index ad10810bc972..e962a9d45f7e 100644
> --- a/drivers/gpu/drm/drm_sysfs.c
> +++ b/drivers/gpu/drm/drm_sysfs.c
> @@ -14,6 +14,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>  #include 
>  #include 
>  
> @@ -294,6 +295,9 @@ int drm_sysfs_connector_add(struct drm_connector 
> *connector)
>   /* Let userspace know we have a new connector */
>   drm_sysfs_hotplug_event(dev);
>  
> + if (connector->ddc)
> + return sysfs_create_link(&connector->kdev->kobj,
> +  &connector->ddc->dev.kobj, "ddc");
>   return 0;
>  }
>  
> @@ -301,6 +305,10 @@ void drm_sysfs_connector_remove(struct drm_connector 
> *connector)
>  {
>   if (!connector->kdev)
>   return;
> +
> + if (connector->ddc)
> + sysfs_remove_link(&connector->kdev->kobj, "ddc");
> +
>   DRM_DEBUG("removing \"%s\" from sysfs\n",
> connector->name);
>  
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index 4c30d751487a..33a6fff85fdb 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -41,6 +41,7 @@ struct drm_property;
>  struct drm_property_blob;
>  struct drm_printer;
>  struct edid;
> +struct i2c_adapter;
>  
>  enum drm_connector_force {
>   DRM_FORCE_UNSPECIFIED,
> @@ -1311,6 +1312,16 @@ struct drm_connector {
>* [0]: progressive, [1]: interlaced
>*/
>   int audio_latency[2];
> +
> + /**
> +  * @ddc: associated ddc adapter.
> +  * A connector usually has its associated ddc adapter. If a driver uses
> +  * this field, then an appropriate symbolic link is created in connector
> +  * sysfs directory to make it easy for the user to tell which i2c
> +  * adapter is for a particular display.
> +  */
> + struct i2c_adapter *ddc;

To help the reader could you add in the above a reference to
drm_connector_init_with_ddc() sp the reader is told how to init this
field.

Either add it in PATCH 2 - or merge patch 1 and 2.

Sam

> +
>   /**
>* @null_edid_counter: track sinks that give us all zeros for the EDID.
>* Needed to workaround some HW bugs where we get all 0s
> -- 
> 2.17.1
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Re: [Intel-gfx] [PATCH v5 02/24] drm: Add drm_connector_init() variant with ddc

2019-07-25 Thread Sam Ravnborg
Hi Andrzej.

On Wed, Jul 24, 2019 at 03:59:24PM +0200, Andrzej Pietrasiewicz wrote:
> Allow passing ddc adapter pointer to the init function. Even if
> drm_connector_init() sometime in the future decides to e.g. memset() all
> connector fields to zeros, the newly added function ensures that at its
> completion the ddc member of connector is correctly set.
> 
> Signed-off-by: Andrzej Pietrasiewicz 
> ---
>  drivers/gpu/drm/drm_connector.c | 19 +++
>  include/drm/drm_connector.h |  5 +
>  2 files changed, 24 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index 068d4b05f1be..06fbfc44fb48 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -296,6 +296,25 @@ int drm_connector_init(struct drm_device *dev,
>  }
>  EXPORT_SYMBOL(drm_connector_init);
>  
> +int drm_connector_init_with_ddc(struct drm_device *dev,
> + struct drm_connector *connector,
> + const struct drm_connector_funcs *funcs,
> + int connector_type,
> + struct i2c_adapter *ddc)
> +{

This is good, with this helper there is no longer any confusion about
ordering.

drm_connector_init_with_ddc() is part of the public interface for
drm_connector and needs kernel-doc documentation.

Sam

> + int ret;
> +
> + ret = drm_connector_init(dev, connector, funcs, connector_type);
> + if (ret)
> + return ret;
> +
> + /* provide ddc symlink in sysfs */
> + connector->ddc = ddc;
> +
> + return ret;
> +}
> +EXPORT_SYMBOL(drm_connector_init_with_ddc);
> +
>  /**
>   * drm_connector_attach_edid_property - attach edid property.
>   * @connector: the connector
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index 33a6fff85fdb..937fda9c1374 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -1410,6 +1410,11 @@ int drm_connector_init(struct drm_device *dev,
>  struct drm_connector *connector,
>  const struct drm_connector_funcs *funcs,
>  int connector_type);
> +int drm_connector_init_with_ddc(struct drm_device *dev,
> + struct drm_connector *connector,
> + const struct drm_connector_funcs *funcs,
> + int connector_type,
> + struct i2c_adapter *ddc);
>  void drm_connector_attach_edid_property(struct drm_connector *connector);
>  int drm_connector_register(struct drm_connector *connector);
>  void drm_connector_unregister(struct drm_connector *connector);
> -- 
> 2.17.1
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [v2,1/3] drm/i915: Fix GuC documentation links

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

Series: series starting with [v2,1/3] drm/i915: Fix GuC documentation links
URL   : https://patchwork.freedesktop.org/series/64237/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6551_full -> Patchwork_13751_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@kms_color@pipe-a-ctm-0-5:
- shard-glk:  [PASS][1] -> [DMESG-WARN][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-glk7/igt@kms_co...@pipe-a-ctm-0-5.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/shard-glk2/igt@kms_co...@pipe-a-ctm-0-5.html

  

### Piglit changes ###

 Possible regressions 

  * spec@!opengl 1.1@copypixels-draw-sync (NEW):
- {pig-snb-2600}: NOTRUN -> [FAIL][3]
   [3]: None

  
New tests
-

  New tests have been introduced between CI_DRM_6551_full and 
Patchwork_13751_full:

### New Piglit tests (1) ###

  * spec@!opengl 1.1@copypixels-draw-sync:
- Statuses : 1 fail(s)
- Exec time: [11.20] s

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@drm_import_export@import-close-race-flink:
- shard-iclb: [PASS][4] -> [INCOMPLETE][5] ([fdo#107713])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-iclb7/igt@drm_import_exp...@import-close-race-flink.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/shard-iclb7/igt@drm_import_exp...@import-close-race-flink.html

  * igt@gem_ctx_isolation@vcs0-s3:
- shard-iclb: [PASS][6] -> [INCOMPLETE][7] ([fdo#107713] / 
[fdo#109100])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-iclb7/igt@gem_ctx_isolat...@vcs0-s3.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/shard-iclb3/igt@gem_ctx_isolat...@vcs0-s3.html

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

  * igt@gem_tiled_swapping@non-threaded:
- shard-hsw:  [PASS][10] -> [FAIL][11] ([fdo#108686])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-hsw4/igt@gem_tiled_swapp...@non-threaded.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/shard-hsw7/igt@gem_tiled_swapp...@non-threaded.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-180:
- shard-kbl:  [PASS][12] -> [DMESG-WARN][13] ([fdo#105604] / 
[fdo#105763])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-kbl4/igt@kms_big...@x-tiled-32bpp-rotate-180.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/shard-kbl6/igt@kms_big...@x-tiled-32bpp-rotate-180.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
- shard-kbl:  [PASS][14] -> [DMESG-WARN][15] ([fdo#108566]) +1 
similar issue
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-kbl4/igt@kms_cursor_...@pipe-a-cursor-suspend.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/shard-kbl6/igt@kms_cursor_...@pipe-a-cursor-suspend.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-glk:  [PASS][16] -> [FAIL][17] ([fdo#105363])
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-glk6/igt@kms_f...@flip-vs-expired-vblank-interruptible.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/shard-glk7/igt@kms_f...@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@flip-vs-suspend:
- shard-hsw:  [PASS][18] -> [INCOMPLETE][19] ([fdo#103540])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-hsw8/igt@kms_f...@flip-vs-suspend.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/shard-hsw4/igt@kms_f...@flip-vs-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
- shard-apl:  [PASS][20] -> [DMESG-WARN][21] ([fdo#108566]) +7 
similar issues
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-apl7/igt@kms_frontbuffer_track...@fbc-suspend.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/shard-apl7/igt@kms_frontbuffer_track...@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcp

Re: [Intel-gfx] [PATCH] drm/i915/guc: init submission structures as part of guc_init

2019-07-25 Thread Michal Wajdeczko
On Thu, 25 Jul 2019 19:46:55 +0200, Daniele Ceraolo Spurio  
 wrote:



guc->stage_desc_pool is required as part of the init parameters and
there is no reason we have to init them after HuC. This fixes a NULL
ptr dereference due to guc->stage_desc_pool not being set (no fixes
tag since GuC submission can't be enabled yet).

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


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/uc: Don't sanitize guc_log_level modparam

2019-07-25 Thread Michal Wajdeczko
On Thu, 25 Jul 2019 23:44:08 +0200, Chris Wilson  
 wrote:



Quoting Michal Wajdeczko (2019-07-25 21:51:06)

We are already storing runtime value of log level in private
field, so there is no need to modify modparam.


There is an aspect of communicating the clamped value back to the user.
Does that have any value or alternative?


Actual (clamped or default) value of the GuC log level is exposed in
i915_guc_log_level debugfs entry. User can modify it from there too.

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

Re: [Intel-gfx] [PATCH 1/3] drm/i915/tgl: Add and use new DC5 and DC6 residency counter registers

2019-07-25 Thread Gupta, Anshuman



On 7/26/2019 5:54 AM, Lucas De Marchi wrote:

From: José Roberto de Souza 

Tiger Lake has a new register offset for DC5 and DC6 residency counters.

v2:
   - Rename registers since they are not in the CSR memory range
 (requested by Anshuman)
   - Fix type (requested by Matthew)

Signed-off-by: José Roberto de Souza 
Signed-off-by: Lucas De Marchi 

Looks Good to me.
Reviewed-by: Anshuman Gupta 


---
  drivers/gpu/drm/i915/i915_debugfs.c | 21 +
  drivers/gpu/drm/i915/i915_reg.h |  2 ++
  2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index 24787bb48c9f..6dbd85b38759 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2465,6 +2465,7 @@ static int i915_dmc_info(struct seq_file *m, void *unused)
struct drm_i915_private *dev_priv = node_to_i915(m->private);
intel_wakeref_t wakeref;
struct intel_csr *csr;
+   i915_reg_t dc5_reg, dc6_reg = {};
  
  	if (!HAS_CSR(dev_priv))

return -ENODEV;
@@ -2482,15 +2483,19 @@ static int i915_dmc_info(struct seq_file *m, void 
*unused)
seq_printf(m, "version: %d.%d\n", CSR_VERSION_MAJOR(csr->version),
   CSR_VERSION_MINOR(csr->version));
  
-	if (WARN_ON(INTEL_GEN(dev_priv) > 11))

-   goto out;
+   if (INTEL_GEN(dev_priv) >= 12) {
+   dc5_reg = TGL_DMC_DEBUG_DC5_COUNT;
+   dc6_reg = TGL_DMC_DEBUG_DC6_COUNT;
+   } else {
+   dc5_reg = IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT :
+SKL_CSR_DC3_DC5_COUNT;
+   if (!IS_GEN9_LP(dev_priv))
+   dc6_reg = SKL_CSR_DC5_DC6_COUNT;
+   }
  
-	seq_printf(m, "DC3 -> DC5 count: %d\n",

-  I915_READ(IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT :
-   SKL_CSR_DC3_DC5_COUNT));
-   if (!IS_GEN9_LP(dev_priv))
-   seq_printf(m, "DC5 -> DC6 count: %d\n",
-  I915_READ(SKL_CSR_DC5_DC6_COUNT));
+   seq_printf(m, "DC3 -> DC5 count: %d\n", I915_READ(dc5_reg));
+   if (dc6_reg.reg)
+   seq_printf(m, "DC5 -> DC6 count: %d\n", I915_READ(dc6_reg));
  
  out:

seq_printf(m, "program base: 0x%08x\n", I915_READ(CSR_PROGRAM(0)));
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 24f2a52a2b42..e999ce94b45c 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -7268,6 +7268,8 @@ enum {
  #define SKL_CSR_DC3_DC5_COUNT _MMIO(0x80030)
  #define SKL_CSR_DC5_DC6_COUNT _MMIO(0x8002C)
  #define BXT_CSR_DC3_DC5_COUNT _MMIO(0x80038)
+#define TGL_DMC_DEBUG_DC5_COUNT_MMIO(0x101084)
+#define TGL_DMC_DEBUG_DC6_COUNT_MMIO(0x101088)
  
  /* interrupts */

  #define DE_MASTER_IRQ_CONTROL   (1 << 31)


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

[Intel-gfx] ✓ Fi.CI.BAT: success for Tiger Lake: register moves

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

Series: Tiger Lake: register moves
URL   : https://patchwork.freedesktop.org/series/64277/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6557 -> Patchwork_13767


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

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

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

  * igt@vgem_basic@unload:
- fi-icl-u3:  [PASS][5] -> [DMESG-WARN][6] ([fdo#107724])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-u3/igt@vgem_ba...@unload.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13767/fi-icl-u3/igt@vgem_ba...@unload.html

  
 Possible fixes 

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

  * igt@i915_selftest@live_blt:
- fi-icl-dsi: [DMESG-FAIL][9] ([fdo#110899]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-dsi/igt@i915_selftest@live_blt.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13767/fi-icl-dsi/igt@i915_selftest@live_blt.html

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

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7567u:   [WARN][13] ([fdo#109380]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13767/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-c:
- fi-kbl-7567u:   [SKIP][15] ([fdo#109271]) -> [PASS][16] +23 similar 
issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13767/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html

  
 Warnings 

  * igt@i915_module_load@reload:
- fi-icl-u3:  [TIMEOUT][17] ([fdo#109673] / [fdo#111214]) -> 
[TIMEOUT][18] ([fdo#111214])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-u3/igt@i915_module_l...@reload.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13767/fi-icl-u3/igt@i915_module_l...@reload.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#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109380]: https://bugs.freedesktop.org/show_bug.cgi?id=109380
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#109673]: https://bugs.freedesktop.org/show_bug.cgi?id=109673
  [fdo#110899]: https://bugs.freedesktop.org/show_bug.cgi?id=110899
  [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
  [fdo#111214]: https://bugs.freedesktop.org/show_bug.cgi?id=111214


Participating hosts (53 -> 46)
--

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


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6557 -> Patchwork_13767

  CI-20190529: 20190529
  CI_DRM_6557: 2ebd69f583d23b295265832f168e39427a8bd863 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5112: 7e4d10

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/2] drm/i915/gt: Add to timeline requires the timeline mutex

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

Series: series starting with [1/2] drm/i915/gt: Add to timeline requires the 
timeline mutex
URL   : https://patchwork.freedesktop.org/series/64227/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6551_full -> Patchwork_13750_full


Summary
---

  **SUCCESS**

  No regressions found.

  

New tests
-

  New tests have been introduced between CI_DRM_6551_full and 
Patchwork_13750_full:

### New IGT tests (2) ###

  * igt@i915_selftest@live_gem_contexts:
- Statuses : 6 pass(s)
- Exec time: [5.25, 34.05] s

  * igt@i915_selftest@live_gt_contexts:
- Statuses : 6 pass(s)
- Exec time: [0.44, 2.26] s

  

Known issues


  Here are the changes found in Patchwork_13750_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_6551/shard-iclb2/igt@gem_ctx_isolat...@rcs0-s3.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/shard-iclb7/igt@gem_ctx_isolat...@rcs0-s3.html

  * igt@gem_exec_balancer@smoke:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#110854])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-iclb2/igt@gem_exec_balan...@smoke.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/shard-iclb8/igt@gem_exec_balan...@smoke.html

  * igt@gem_tiled_swapping@non-threaded:
- shard-apl:  [PASS][5] -> [DMESG-WARN][6] ([fdo#108686])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-apl6/igt@gem_tiled_swapp...@non-threaded.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/shard-apl4/igt@gem_tiled_swapp...@non-threaded.html

  * igt@gem_workarounds@suspend-resume-context:
- shard-apl:  [PASS][7] -> [DMESG-WARN][8] ([fdo#108566]) +6 
similar issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-apl3/igt@gem_workarou...@suspend-resume-context.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/shard-apl5/igt@gem_workarou...@suspend-resume-context.html

  * igt@i915_suspend@fence-restore-untiled:
- shard-kbl:  [PASS][9] -> [DMESG-WARN][10] ([fdo#108566])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-kbl2/igt@i915_susp...@fence-restore-untiled.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/shard-kbl2/igt@i915_susp...@fence-restore-untiled.html

  * igt@kms_draw_crc@draw-method-xrgb-mmap-gtt-untiled:
- shard-apl:  [PASS][11] -> [INCOMPLETE][12] ([fdo#103927])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-apl3/igt@kms_draw_...@draw-method-xrgb-mmap-gtt-untiled.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/shard-apl5/igt@kms_draw_...@draw-method-xrgb-mmap-gtt-untiled.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-glk:  [PASS][13] -> [FAIL][14] ([fdo#105363])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-glk6/igt@kms_f...@flip-vs-expired-vblank-interruptible.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/shard-glk7/igt@kms_f...@flip-vs-expired-vblank-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
- shard-iclb: [PASS][15] -> [FAIL][16] ([fdo#103167]) +7 similar 
issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-iclb1/igt@kms_frontbuffer_track...@fbc-1p-primscrn-spr-indfb-draw-pwrite.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/shard-iclb6/igt@kms_frontbuffer_track...@fbc-1p-primscrn-spr-indfb-draw-pwrite.html

  * igt@kms_plane@plane-position-covered-pipe-a-planes:
- shard-snb:  [PASS][17] -> [SKIP][18] ([fdo#109271]) +2 similar 
issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-snb2/igt@kms_pl...@plane-position-covered-pipe-a-planes.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/shard-snb2/igt@kms_pl...@plane-position-covered-pipe-a-planes.html

  * igt@kms_plane_lowres@pipe-a-tiling-y:
- shard-iclb: [PASS][19] -> [FAIL][20] ([fdo#103166])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-iclb2/igt@kms_plane_low...@pipe-a-tiling-y.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/shard-iclb8/igt@kms_plane_low...@pipe-a-tiling-y.html

  * igt@kms_psr@psr2_cursor_render:
- shard-iclb: [PASS][21] -> [SKIP][22] ([fdo#109441]) +4 similar 
issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-iclb2/igt@kms_psr@psr2_cursor_render.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/shard-iclb7/igt@kms_psr@psr2_cursor_render.html

  
 Possible fixes 

  

[Intel-gfx] ✓ Fi.CI.BAT: success for Tiger Lake: MOCS table handling

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

Series: Tiger Lake: MOCS table handling
URL   : https://patchwork.freedesktop.org/series/64275/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6557 -> Patchwork_13766


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_module_load@reload-with-fault-injection:
- fi-snb-2520m:   [PASS][1] -> [INCOMPLETE][2] ([fdo#105411])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-snb-2520m/igt@i915_module_l...@reload-with-fault-injection.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13766/fi-snb-2520m/igt@i915_module_l...@reload-with-fault-injection.html

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

  
 Possible fixes 

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

  * igt@i915_selftest@live_blt:
- fi-icl-dsi: [DMESG-FAIL][7] ([fdo#110899]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-dsi/igt@i915_selftest@live_blt.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13766/fi-icl-dsi/igt@i915_selftest@live_blt.html

  * igt@kms_busy@basic-flip-a:
- fi-kbl-7567u:   [SKIP][9] ([fdo#109271] / [fdo#109278]) -> [PASS][10] 
+2 similar issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13766/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- {fi-icl-u4}:[FAIL][11] ([fdo#109485]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-u4/igt@kms_chamel...@hdmi-hpd-fast.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13766/fi-icl-u4/igt@kms_chamel...@hdmi-hpd-fast.html

  
 Warnings 

  * igt@i915_module_load@reload:
- fi-icl-u3:  [TIMEOUT][13] ([fdo#109673] / [fdo#111214]) -> 
[TIMEOUT][14] ([fdo#111214])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-u3/igt@i915_module_l...@reload.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13766/fi-icl-u3/igt@i915_module_l...@reload.html

  * igt@i915_selftest@live_hangcheck:
- fi-icl-dsi: [INCOMPLETE][15] ([fdo#107713] / [fdo#108569]) -> 
[DMESG-FAIL][16] ([fdo#44])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13766/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#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [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#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#109635 ]: https://bugs.freedesktop.org/show_bug.cgi?id=109635 
  [fdo#109673]: https://bugs.freedesktop.org/show_bug.cgi?id=109673
  [fdo#110899]: https://bugs.freedesktop.org/show_bug.cgi?id=110899
  [fdo#44]: https://bugs.freedesktop.org/show_bug.cgi?id=44
  [fdo#111214]: https://bugs.freedesktop.org/show_bug.cgi?id=111214


Participating hosts (53 -> 44)
--

  Additional (1): fi-pnv-d510 
  Missing(10): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-apl-guc fi-cfl-8109u fi-icl-y fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6557 -> Patchwork_13766

  CI-20190529: 20190529
  CI_DRM_6557: 2ebd69f583d23b295265832f168e39427a8bd863 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5112: 7e4d10507088055413769a020dd674f52b4bc1b0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13766: f17795a44dfc9451d3c550ab014ffacacf8e28f7 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linu

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Tiger Lake: MOCS table handling

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

Series: Tiger Lake: MOCS table handling
URL   : https://patchwork.freedesktop.org/series/64275/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
80a9b7285063 drm/i915/tgl: Move fault registers to their new offset
9efbb1606638 drm/i915/tgl: Define MOCS entries for Tigerlake
-:16: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#16: 
terminology to what it actually is: L1 is implicitly enabled (from Daniele)

total: 0 errors, 1 warnings, 0 checks, 65 lines checked
169b3fd24700 drm/i915/tgl: Tigerlake only has global MOCS registers
-:17: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#17: 
v2: Move the changes to the fault registers to a separate commit - the old ones

total: 0 errors, 1 warnings, 0 checks, 123 lines checked
f17795a44dfc drm/i915: Move MOCS setup to intel_mocs.c

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

[Intel-gfx] ✓ Fi.CI.BAT: success for Tiger Lake: add workarounds

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

Series: Tiger Lake: add workarounds
URL   : https://patchwork.freedesktop.org/series/64274/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6557 -> Patchwork_13765


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

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

  * igt@i915_selftest@live_client:
- fi-icl-dsi: [PASS][3] -> [INCOMPLETE][4] ([fdo#107713])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-dsi/igt@i915_selftest@live_client.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13765/fi-icl-dsi/igt@i915_selftest@live_client.html

  * igt@kms_chamelium@dp-edid-read:
- fi-icl-u2:  [PASS][5] -> [FAIL][6] ([fdo#109483] / [fdo#109635 ])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-u2/igt@kms_chamel...@dp-edid-read.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13765/fi-icl-u2/igt@kms_chamel...@dp-edid-read.html

  
 Possible fixes 

  * igt@i915_selftest@live_blt:
- fi-icl-dsi: [DMESG-FAIL][7] ([fdo#110899]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-dsi/igt@i915_selftest@live_blt.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13765/fi-icl-dsi/igt@i915_selftest@live_blt.html

  * igt@kms_busy@basic-flip-a:
- fi-kbl-7567u:   [SKIP][9] ([fdo#109271] / [fdo#109278]) -> [PASS][10] 
+2 similar issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13765/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7567u:   [WARN][11] ([fdo#109380]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13765/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html

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

  * igt@kms_pipe_crc_basic@read-crc-pipe-c:
- fi-kbl-7567u:   [SKIP][15] ([fdo#109271]) -> [PASS][16] +23 similar 
issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13765/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.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#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109380]: https://bugs.freedesktop.org/show_bug.cgi?id=109380
  [fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483
  [fdo#109635 ]: https://bugs.freedesktop.org/show_bug.cgi?id=109635 
  [fdo#110899]: https://bugs.freedesktop.org/show_bug.cgi?id=110899


Participating hosts (53 -> 45)
--

  Additional (1): fi-pnv-d510 
  Missing(9): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-cfl-8109u fi-icl-y fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6557 -> Patchwork_13765

  CI-20190529: 20190529
  CI_DRM_6557: 2ebd69f583d23b295265832f168e39427a8bd863 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5112: 7e4d10507088055413769a020dd674f52b4bc1b0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13765: 8cbecca9298f056e49ab192affdce16880baf9b8 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

8cbecca9298f drm/i915/tgl: Implement Wa_1406941453
603fa049e1f1 drm/i915/tgl: Implement Wa_1604555607
385a308bbf68 drm/i915/tgl: Introduce initial T

[Intel-gfx] ✓ Fi.CI.BAT: success for Tiger Lake: DKL phy PLLs

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

Series: Tiger Lake: DKL phy PLLs
URL   : https://patchwork.freedesktop.org/series/64273/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6557 -> Patchwork_13764


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

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

  * igt@i915_module_load@reload-with-fault-injection:
- fi-snb-2600:[PASS][3] -> [INCOMPLETE][4] ([fdo#105411])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-snb-2600/igt@i915_module_l...@reload-with-fault-injection.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13764/fi-snb-2600/igt@i915_module_l...@reload-with-fault-injection.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_6557/fi-icl-u3/igt@i915_selftest@live_hangcheck.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13764/fi-icl-u3/igt@i915_selftest@live_hangcheck.html

  
 Possible fixes 

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

  * igt@i915_selftest@live_blt:
- fi-icl-dsi: [DMESG-FAIL][9] ([fdo#110899]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-dsi/igt@i915_selftest@live_blt.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13764/fi-icl-dsi/igt@i915_selftest@live_blt.html

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

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7567u:   [WARN][13] ([fdo#109380]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13764/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html

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

  * igt@kms_pipe_crc_basic@read-crc-pipe-c:
- fi-kbl-7567u:   [SKIP][17] ([fdo#109271]) -> [PASS][18] +23 similar 
issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13764/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html

  
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [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#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109380]: https://bugs.freedesktop.org/show_bug.cgi?id=109380
  [fdo#110899]: https://bugs.freedesktop.org/show_bug.cgi?id=110899


Participating hosts (53 -> 45)
--

  Additional (1): fi-pnv-d510 
  Missing(9): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-cfl-8109u fi-icl-y fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6557 -> Patchwork_13764

  CI-20190529: 20190529
  CI_DRM_6557: 2ebd69f583d23b295265832f168e39427a8bd863 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5112: 7e4d10507088055413769a020dd674f52b4bc1b0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13764: 547d8a64866c1c4f5dc2dd468a06e1acba7e56a1 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

547d8a64866c drm/i915/tgl: Add support for dkl pll write
6839f83e8899 drm/i915/tgl: start 

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Do not rely on for loop caching the mask

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

Series: drm/i915: Do not rely on for loop caching the mask
URL   : https://patchwork.freedesktop.org/series/64225/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6551_full -> Patchwork_13749_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@vecs0-dirty-create:
- shard-iclb: [PASS][1] -> [INCOMPLETE][2] ([fdo#107713])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-iclb2/igt@gem_ctx_isolat...@vecs0-dirty-create.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/shard-iclb7/igt@gem_ctx_isolat...@vecs0-dirty-create.html

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

  * igt@gem_tiled_swapping@non-threaded:
- shard-glk:  [PASS][5] -> [DMESG-WARN][6] ([fdo#108686])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-glk4/igt@gem_tiled_swapp...@non-threaded.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/shard-glk4/igt@gem_tiled_swapp...@non-threaded.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
- shard-kbl:  [PASS][7] -> [DMESG-WARN][8] ([fdo#108566]) +4 
similar issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-kbl4/igt@kms_cursor_...@pipe-a-cursor-suspend.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/shard-kbl4/igt@kms_cursor_...@pipe-a-cursor-suspend.html

  * igt@kms_flip@flip-vs-suspend:
- shard-skl:  [PASS][9] -> [INCOMPLETE][10] ([fdo#109507])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-skl5/igt@kms_f...@flip-vs-suspend.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/shard-skl2/igt@kms_f...@flip-vs-suspend.html

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

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
- shard-iclb: [PASS][13] -> [FAIL][14] ([fdo#103167]) +3 similar 
issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-iclb6/igt@kms_frontbuffer_track...@fbc-1p-primscrn-spr-indfb-draw-blt.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/shard-iclb6/igt@kms_frontbuffer_track...@fbc-1p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_plane_lowres@pipe-a-tiling-y:
- shard-iclb: [PASS][15] -> [FAIL][16] ([fdo#103166])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-iclb2/igt@kms_plane_low...@pipe-a-tiling-y.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/shard-iclb6/igt@kms_plane_low...@pipe-a-tiling-y.html

  * igt@kms_psr@no_drrs:
- shard-iclb: [PASS][17] -> [FAIL][18] ([fdo#108341])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-iclb8/igt@kms_psr@no_drrs.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/shard-iclb1/igt@kms_psr@no_drrs.html

  * igt@kms_psr@psr2_cursor_render:
- shard-iclb: [PASS][19] -> [SKIP][20] ([fdo#109441]) +3 similar 
issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-iclb2/igt@kms_psr@psr2_cursor_render.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/shard-iclb6/igt@kms_psr@psr2_cursor_render.html

  * igt@kms_setmode@basic:
- shard-apl:  [PASS][21] -> [FAIL][22] ([fdo#99912])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-apl4/igt@kms_setm...@basic.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/shard-apl8/igt@kms_setm...@basic.html
- shard-skl:  [PASS][23] -> [FAIL][24] ([fdo#99912])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-skl8/igt@kms_setm...@basic.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/shard-skl6/igt@kms_setm...@basic.html

  
 Possible fixes 

  * igt@gem_eio@reset-stress:
- shard-snb:  [FAIL][25] ([fdo#109661]) -> [PASS][26]
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/shard-snb7/igt@gem_...@reset-stress.html
   [26]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/shard-snb7/igt@gem_...@reset-stress.html

  * igt@gem_softpin@noreloc-s3:
-

[Intel-gfx] ✓ Fi.CI.BAT: success for Tiger Lake: interrupts

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

Series: Tiger Lake: interrupts
URL   : https://patchwork.freedesktop.org/series/64272/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6557 -> Patchwork_13763


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_busy@busy-all:
- fi-icl-u3:  [PASS][1] -> [DMESG-WARN][2] ([fdo#107724])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-u3/igt@gem_b...@busy-all.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13763/fi-icl-u3/igt@gem_b...@busy-all.html

  * igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850:   [PASS][3] -> [INCOMPLETE][4] ([fdo#107718])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-blb-e6850/igt@gem_exec_susp...@basic-s3.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13763/fi-blb-e6850/igt@gem_exec_susp...@basic-s3.html

  * igt@kms_addfb_basic@small-bo:
- fi-icl-dsi: [PASS][5] -> [DMESG-WARN][6] ([fdo#106107])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-dsi/igt@kms_addfb_ba...@small-bo.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13763/fi-icl-dsi/igt@kms_addfb_ba...@small-bo.html

  
 Possible fixes 

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

  * igt@i915_selftest@live_blt:
- fi-icl-dsi: [DMESG-FAIL][9] ([fdo#110899]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-dsi/igt@i915_selftest@live_blt.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13763/fi-icl-dsi/igt@i915_selftest@live_blt.html

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

  * igt@kms_chamelium@hdmi-hpd-fast:
- {fi-icl-u4}:[FAIL][13] ([fdo#109485]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-u4/igt@kms_chamel...@hdmi-hpd-fast.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13763/fi-icl-u4/igt@kms_chamel...@hdmi-hpd-fast.html

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

  
 Warnings 

  * igt@i915_module_load@reload:
- fi-icl-u3:  [TIMEOUT][17] ([fdo#109673] / [fdo#111214]) -> 
[TIMEOUT][18] ([fdo#111214])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-u3/igt@i915_module_l...@reload.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13763/fi-icl-u3/igt@i915_module_l...@reload.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#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#109673]: https://bugs.freedesktop.org/show_bug.cgi?id=109673
  [fdo#110899]: https://bugs.freedesktop.org/show_bug.cgi?id=110899
  [fdo#111214]: https://bugs.freedesktop.org/show_bug.cgi?id=111214


Participating hosts (53 -> 44)
--

  Additional (1): fi-pnv-d510 
  Missing(10): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-cfl-8109u fi-icl-y fi-bdw-samus fi-byt-clapper fi-skl-6600u 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6557 -> Patchwork_13763

  CI-20190529: 20190529
  CI_DRM_6557: 2ebd69f583d23b295265832f168e39427a8bd863 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5112: 7e4d10507088055413769a020dd674f52b4bc1b0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13763: 9a914e22b8745e91590459f767fe35

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [CI,1/3] drm/i915/tgl: skip setting PORT_CL_DW12_* on initialization

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

Series: series starting with [CI,1/3] drm/i915/tgl: skip setting PORT_CL_DW12_* 
on initialization
URL   : https://patchwork.freedesktop.org/series/64271/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6557 -> Patchwork_13762


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


  Here are the changes found in Patchwork_13762 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_6557/fi-icl-u2/igt@gem_ctx_cre...@basic-files.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13762/fi-icl-u2/igt@gem_ctx_cre...@basic-files.html

  
 Possible fixes 

  * igt@gem_ctx_exec@basic:
- fi-icl-u3:  [DMESG-WARN][3] ([fdo#107724]) -> [PASS][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-u3/igt@gem_ctx_e...@basic.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13762/fi-icl-u3/igt@gem_ctx_e...@basic.html

  * igt@i915_selftest@live_blt:
- fi-icl-dsi: [DMESG-FAIL][5] ([fdo#110899]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-dsi/igt@i915_selftest@live_blt.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13762/fi-icl-dsi/igt@i915_selftest@live_blt.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_6557/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13762/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html
- {fi-icl-u4}:[FAIL][9] ([fdo#109485]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-u4/igt@kms_chamel...@hdmi-hpd-fast.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13762/fi-icl-u4/igt@kms_chamel...@hdmi-hpd-fast.html

  
 Warnings 

  * igt@i915_module_load@reload:
- fi-icl-u3:  [TIMEOUT][11] ([fdo#109673] / [fdo#111214]) -> 
[TIMEOUT][12] ([fdo#111214])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6557/fi-icl-u3/igt@i915_module_l...@reload.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13762/fi-icl-u3/igt@i915_module_l...@reload.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
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#109673]: https://bugs.freedesktop.org/show_bug.cgi?id=109673
  [fdo#110899]: https://bugs.freedesktop.org/show_bug.cgi?id=110899
  [fdo#111214]: https://bugs.freedesktop.org/show_bug.cgi?id=111214


Participating hosts (53 -> 45)
--

  Additional (1): fi-pnv-d510 
  Missing(9): fi-kbl-soraka fi-hsw-4770r fi-ilk-m540 fi-hsw-4200u 
fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6557 -> Patchwork_13762

  CI-20190529: 20190529
  CI_DRM_6557: 2ebd69f583d23b295265832f168e39427a8bd863 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5112: 7e4d10507088055413769a020dd674f52b4bc1b0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13762: db0eba333e54d2da09958333d2157d509a89ec16 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

db0eba333e54 drm/i915/tgl: update ddi/tc clock_off bits
1ef0fa9d7e98 drm/i915/tgl: select correct bit for port select
43f991ca3886 drm/i915/tgl: skip setting PORT_CL_DW12_* on initialization

== Logs ==

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

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [CI,1/3] drm/i915/tgl: skip setting PORT_CL_DW12_* on initialization

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

Series: series starting with [CI,1/3] drm/i915/tgl: skip setting PORT_CL_DW12_* 
on initialization
URL   : https://patchwork.freedesktop.org/series/64271/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
43f991ca3886 drm/i915/tgl: skip setting PORT_CL_DW12_* on initialization
1ef0fa9d7e98 drm/i915/tgl: select correct bit for port select
db0eba333e54 drm/i915/tgl: update ddi/tc clock_off bits
-:27: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'tc_port' - possible 
side-effects?
#27: FILE: drivers/gpu/drm/i915/i915_reg.h:9745:
+#define  ICL_DPCLKA_CFGCR0_TC_CLK_OFF(tc_port) (1 << ((tc_port) < PORT_TC4 ? \
+  (tc_port) + 12 : \
+  (tc_port) - PORT_TC4 + 
21))

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

___
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: Replace hangcheck by heartbeats

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

Series: drm/i915: Replace hangcheck by heartbeats
URL   : https://patchwork.freedesktop.org/series/64269/
State : failure

== Summary ==

Applying: drm/i915: Replace hangcheck by heartbeats
Using index info to reconstruct a base tree...
M   drivers/gpu/drm/i915/Kconfig.profile
Falling back to patching base and 3-way merge...
Removing drivers/gpu/drm/i915/gt/intel_hangcheck.c
Auto-merging drivers/gpu/drm/i915/Kconfig.profile
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/Kconfig.profile
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: Replace hangcheck by heartbeats
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

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

Re: [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/uc: Reorder params in intel_uc_fw_fetch

2019-07-25 Thread Chris Wilson
Quoting Patchwork (2019-07-26 00:51:44)
> == Series Details ==
> 
> Series: drm/i915/uc: Reorder params in intel_uc_fw_fetch
> URL   : https://patchwork.freedesktop.org/series/64265/
> State : success
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_6555 -> Patchwork_13758
> 
> 
> Summary
> ---
> 
>   **SUCCESS**

And with sanity confirmed, pushed.  Thanks,
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] [PATCH 0/3] Tiger Lake: register moves

2019-07-25 Thread Lucas De Marchi
Patches extracted from https://patchwork.freedesktop.org/series/63670/
and rebased.

Jordan Justen (1):
  drm/i915/tgl: allow the reg_read ioctl to read the RCS TIMESTAMP
register

José Roberto de Souza (1):
  drm/i915/tgl: Add and use new DC5 and DC6 residency counter registers

Michel Thierry (1):
  drm/i915/tgl: add support for reading the timestamp frequency

 drivers/gpu/drm/i915/i915_debugfs.c  | 21 +
 drivers/gpu/drm/i915/i915_reg.h  |  2 ++
 drivers/gpu/drm/i915/intel_device_info.c |  2 +-
 drivers/gpu/drm/i915/intel_uncore.c  |  2 +-
 4 files changed, 17 insertions(+), 10 deletions(-)

-- 
2.21.0

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

[Intel-gfx] [PATCH 3/3] drm/i915/tgl: add support for reading the timestamp frequency

2019-07-25 Thread Lucas De Marchi
From: Michel Thierry 

There are no changes with respect to GEN11, which Paulo wrote.

This gets rid of the "Missing switch case in read_timestamp_frequency"
message at boot for Tiger Lake.

Cc: Paulo Zanoni 
Cc: Lionel Landwerlin 
Signed-off-by: Michel Thierry 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/intel_device_info.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_device_info.c 
b/drivers/gpu/drm/i915/intel_device_info.c
index f99c9fd497b2..a3017d16b7f3 100644
--- a/drivers/gpu/drm/i915/intel_device_info.c
+++ b/drivers/gpu/drm/i915/intel_device_info.c
@@ -716,7 +716,7 @@ static u32 read_timestamp_frequency(struct drm_i915_private 
*dev_priv)
}
 
return freq;
-   } else if (INTEL_GEN(dev_priv) <= 11) {
+   } else if (INTEL_GEN(dev_priv) <= 12) {
u32 ctc_reg = I915_READ(CTC_MODE);
u32 freq = 0;
 
-- 
2.21.0

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

[Intel-gfx] [PATCH 2/3] drm/i915/tgl: allow the reg_read ioctl to read the RCS TIMESTAMP register

2019-07-25 Thread Lucas De Marchi
From: Jordan Justen 

This enables the Mesa driver to advertise support for ARB_timer_query,
and thus an OpenGL version higher than 3.2.

Based on the ICL patch by Paulo Zanoni and CNL patch by Nanley Chery.

Cc: Joonas Lahtinen 
Cc: Rodrigo Vivi 
Signed-off-by: Jordan Justen 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/intel_uncore.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_uncore.c 
b/drivers/gpu/drm/i915/intel_uncore.c
index 475ab3d4d91d..2b839acfa0f6 100644
--- a/drivers/gpu/drm/i915/intel_uncore.c
+++ b/drivers/gpu/drm/i915/intel_uncore.c
@@ -1776,7 +1776,7 @@ static const struct reg_whitelist {
 } reg_read_whitelist[] = { {
.offset_ldw = RING_TIMESTAMP(RENDER_RING_BASE),
.offset_udw = RING_TIMESTAMP_UDW(RENDER_RING_BASE),
-   .gen_mask = INTEL_GEN_MASK(4, 11),
+   .gen_mask = INTEL_GEN_MASK(4, 12),
.size = 8
 } };
 
-- 
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/tgl: Add and use new DC5 and DC6 residency counter registers

2019-07-25 Thread Lucas De Marchi
From: José Roberto de Souza 

Tiger Lake has a new register offset for DC5 and DC6 residency counters.

v2:
  - Rename registers since they are not in the CSR memory range
(requested by Anshuman)
  - Fix type (requested by Matthew)

Signed-off-by: José Roberto de Souza 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/i915_debugfs.c | 21 +
 drivers/gpu/drm/i915/i915_reg.h |  2 ++
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index 24787bb48c9f..6dbd85b38759 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2465,6 +2465,7 @@ static int i915_dmc_info(struct seq_file *m, void *unused)
struct drm_i915_private *dev_priv = node_to_i915(m->private);
intel_wakeref_t wakeref;
struct intel_csr *csr;
+   i915_reg_t dc5_reg, dc6_reg = {};
 
if (!HAS_CSR(dev_priv))
return -ENODEV;
@@ -2482,15 +2483,19 @@ static int i915_dmc_info(struct seq_file *m, void 
*unused)
seq_printf(m, "version: %d.%d\n", CSR_VERSION_MAJOR(csr->version),
   CSR_VERSION_MINOR(csr->version));
 
-   if (WARN_ON(INTEL_GEN(dev_priv) > 11))
-   goto out;
+   if (INTEL_GEN(dev_priv) >= 12) {
+   dc5_reg = TGL_DMC_DEBUG_DC5_COUNT;
+   dc6_reg = TGL_DMC_DEBUG_DC6_COUNT;
+   } else {
+   dc5_reg = IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT :
+SKL_CSR_DC3_DC5_COUNT;
+   if (!IS_GEN9_LP(dev_priv))
+   dc6_reg = SKL_CSR_DC5_DC6_COUNT;
+   }
 
-   seq_printf(m, "DC3 -> DC5 count: %d\n",
-  I915_READ(IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT :
-   SKL_CSR_DC3_DC5_COUNT));
-   if (!IS_GEN9_LP(dev_priv))
-   seq_printf(m, "DC5 -> DC6 count: %d\n",
-  I915_READ(SKL_CSR_DC5_DC6_COUNT));
+   seq_printf(m, "DC3 -> DC5 count: %d\n", I915_READ(dc5_reg));
+   if (dc6_reg.reg)
+   seq_printf(m, "DC5 -> DC6 count: %d\n", I915_READ(dc6_reg));
 
 out:
seq_printf(m, "program base: 0x%08x\n", I915_READ(CSR_PROGRAM(0)));
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 24f2a52a2b42..e999ce94b45c 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -7268,6 +7268,8 @@ enum {
 #define SKL_CSR_DC3_DC5_COUNT  _MMIO(0x80030)
 #define SKL_CSR_DC5_DC6_COUNT  _MMIO(0x8002C)
 #define BXT_CSR_DC3_DC5_COUNT  _MMIO(0x80038)
+#define TGL_DMC_DEBUG_DC5_COUNT_MMIO(0x101084)
+#define TGL_DMC_DEBUG_DC6_COUNT_MMIO(0x101088)
 
 /* interrupts */
 #define DE_MASTER_IRQ_CONTROL   (1 << 31)
-- 
2.21.0

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

Re: [Intel-gfx] [PATCH 4/4] drm/i915: Move MOCS setup to intel_mocs.c

2019-07-25 Thread Chris Wilson
Quoting Lucas De Marchi (2019-07-26 01:12:08)
> From: Tvrtko Ursulin 
> 
> Hide the details of MOCS setup from i915_gem by moving both current calls
> into one in intel_mocs_init.
> 
> Cc: Stuart Summers 
> Signed-off-by: Tvrtko Ursulin 
> Signed-off-by: Lucas De Marchi 
> Reviewed-by: Stuart Summers 
> Link: 
> https://patchwork.freedesktop.org/patch/msgid/20190713010940.17711-21-lucas.demar...@intel.com
> ---
>  drivers/gpu/drm/i915/gt/intel_mocs.c | 15 +++
>  drivers/gpu/drm/i915/gt/intel_mocs.h |  3 +--
>  drivers/gpu/drm/i915/i915_gem.c  |  3 +--
>  3 files changed, 13 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c 
> b/drivers/gpu/drm/i915/gt/intel_mocs.c
> index 9399c0ec08f1..d437d35f3347 100644
> --- a/drivers/gpu/drm/i915/gt/intel_mocs.c
> +++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
> @@ -411,14 +411,13 @@ void intel_mocs_init_engine(struct intel_engine_cs 
> *engine)
>   *
>   * This function initializes the MOCS global registers.
>   */
> -void intel_mocs_init_global(struct intel_gt *gt)
> +static void intel_mocs_init_global(struct intel_gt *gt)
>  {
> struct intel_uncore *uncore = gt->uncore;
> struct drm_i915_mocs_table table;
> unsigned int index;
>  
> -   if (!HAS_GLOBAL_MOCS_REGISTERS(gt->i915))
> -   return;
> +   GEM_BUG_ON(!HAS_GLOBAL_MOCS_REGISTERS(gt->i915));
>  
> if (!get_mocs_settings(gt, &table))
> return;
> @@ -587,7 +586,7 @@ static int emit_mocs_l3cc_table(struct i915_request *rq,
>   *
>   * Return: Nothing.
>   */
> -void intel_mocs_init_l3cc_table(struct intel_gt *gt)
> +static void intel_mocs_init_l3cc_table(struct intel_gt *gt)
>  {
> struct intel_uncore *uncore = gt->uncore;
> struct drm_i915_mocs_table table;
> @@ -665,3 +664,11 @@ int intel_rcs_context_init_mocs(struct i915_request *rq)
>  
> return 0;
>  }
> +
> +void intel_mocs_init(struct intel_gt *gt)

* quietly mutters intel_gt_init_mocs() (to be called from
intel_gt_init() [or better name], formerly known as i915_gem_init_hw).
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/5] drm/i915: Capture vma contents outside of spinlock

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

Series: series starting with [1/5] drm/i915: Capture vma contents outside of 
spinlock
URL   : https://patchwork.freedesktop.org/series/64268/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6555 -> Patchwork_13760


Summary
---

  **FAILURE**

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

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

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@gem_exec_create@basic:
- fi-bsw-kefka:   [PASS][1] -> [TIMEOUT][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-bsw-kefka/igt@gem_exec_cre...@basic.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-bsw-kefka/igt@gem_exec_cre...@basic.html

  * igt@gem_exec_suspend@basic-s3:
- fi-bdw-5557u:   [PASS][3] -> [DMESG-WARN][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-bdw-5557u/igt@gem_exec_susp...@basic-s3.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-bdw-5557u/igt@gem_exec_susp...@basic-s3.html
- fi-kbl-r:   [PASS][5] -> [DMESG-WARN][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-kbl-r/igt@gem_exec_susp...@basic-s3.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-kbl-r/igt@gem_exec_susp...@basic-s3.html
- fi-skl-6770hq:  [PASS][7] -> [DMESG-WARN][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-skl-6770hq/igt@gem_exec_susp...@basic-s3.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-skl-6770hq/igt@gem_exec_susp...@basic-s3.html
- fi-byt-n2820:   [PASS][9] -> [DMESG-WARN][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-byt-n2820/igt@gem_exec_susp...@basic-s3.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-byt-n2820/igt@gem_exec_susp...@basic-s3.html
- fi-skl-lmem:[PASS][11] -> [DMESG-WARN][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-skl-lmem/igt@gem_exec_susp...@basic-s3.html
- fi-skl-6260u:   [PASS][13] -> [DMESG-WARN][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-skl-6260u/igt@gem_exec_susp...@basic-s3.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-skl-6260u/igt@gem_exec_susp...@basic-s3.html
- fi-snb-2600:[PASS][15] -> [DMESG-WARN][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-snb-2600/igt@gem_exec_susp...@basic-s3.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-snb-2600/igt@gem_exec_susp...@basic-s3.html
- fi-whl-u:   [PASS][17] -> [DMESG-WARN][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-whl-u/igt@gem_exec_susp...@basic-s3.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-whl-u/igt@gem_exec_susp...@basic-s3.html
- fi-ilk-650: [PASS][19] -> [DMESG-WARN][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-ilk-650/igt@gem_exec_susp...@basic-s3.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-ilk-650/igt@gem_exec_susp...@basic-s3.html
- fi-elk-e7500:   [PASS][21] -> [DMESG-WARN][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-elk-e7500/igt@gem_exec_susp...@basic-s3.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-elk-e7500/igt@gem_exec_susp...@basic-s3.html
- fi-bdw-gvtdvm:  [PASS][23] -> [DMESG-WARN][24]
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-bdw-gvtdvm/igt@gem_exec_susp...@basic-s3.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-bdw-gvtdvm/igt@gem_exec_susp...@basic-s3.html
- fi-cfl-guc: [PASS][25] -> [DMESG-WARN][26]
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-cfl-guc/igt@gem_exec_susp...@basic-s3.html
   [26]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-cfl-guc/igt@gem_exec_susp...@basic-s3.html
- fi-skl-iommu:   [PASS][27] -> [DMESG-WARN][28]
   [27]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-skl-iommu/igt@gem_exec_susp...@basic-s3.html
   [28]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13760/fi-skl-iommu/igt@gem_exec_susp...@basic-s3.html
- fi-kbl-7567u:   [PASS][29] -> [DMESG-WARN][30]
   [29]: 
https://intel-gfx-ci.01.org/tree/drm-ti

[Intel-gfx] [PATCH 4/4] drm/i915: Move MOCS setup to intel_mocs.c

2019-07-25 Thread Lucas De Marchi
From: Tvrtko Ursulin 

Hide the details of MOCS setup from i915_gem by moving both current calls
into one in intel_mocs_init.

Cc: Stuart Summers 
Signed-off-by: Tvrtko Ursulin 
Signed-off-by: Lucas De Marchi 
Reviewed-by: Stuart Summers 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20190713010940.17711-21-lucas.demar...@intel.com
---
 drivers/gpu/drm/i915/gt/intel_mocs.c | 15 +++
 drivers/gpu/drm/i915/gt/intel_mocs.h |  3 +--
 drivers/gpu/drm/i915/i915_gem.c  |  3 +--
 3 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c 
b/drivers/gpu/drm/i915/gt/intel_mocs.c
index 9399c0ec08f1..d437d35f3347 100644
--- a/drivers/gpu/drm/i915/gt/intel_mocs.c
+++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
@@ -411,14 +411,13 @@ void intel_mocs_init_engine(struct intel_engine_cs 
*engine)
  *
  * This function initializes the MOCS global registers.
  */
-void intel_mocs_init_global(struct intel_gt *gt)
+static void intel_mocs_init_global(struct intel_gt *gt)
 {
struct intel_uncore *uncore = gt->uncore;
struct drm_i915_mocs_table table;
unsigned int index;
 
-   if (!HAS_GLOBAL_MOCS_REGISTERS(gt->i915))
-   return;
+   GEM_BUG_ON(!HAS_GLOBAL_MOCS_REGISTERS(gt->i915));
 
if (!get_mocs_settings(gt, &table))
return;
@@ -587,7 +586,7 @@ static int emit_mocs_l3cc_table(struct i915_request *rq,
  *
  * Return: Nothing.
  */
-void intel_mocs_init_l3cc_table(struct intel_gt *gt)
+static void intel_mocs_init_l3cc_table(struct intel_gt *gt)
 {
struct intel_uncore *uncore = gt->uncore;
struct drm_i915_mocs_table table;
@@ -665,3 +664,11 @@ int intel_rcs_context_init_mocs(struct i915_request *rq)
 
return 0;
 }
+
+void intel_mocs_init(struct intel_gt *gt)
+{
+   intel_mocs_init_l3cc_table(gt);
+
+   if (HAS_GLOBAL_MOCS_REGISTERS(gt->i915))
+   intel_mocs_init_global(gt);
+}
diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.h 
b/drivers/gpu/drm/i915/gt/intel_mocs.h
index aa3a2df07c82..2c5cbf213819 100644
--- a/drivers/gpu/drm/i915/gt/intel_mocs.h
+++ b/drivers/gpu/drm/i915/gt/intel_mocs.h
@@ -55,8 +55,7 @@ struct intel_engine_cs;
 struct intel_gt;
 
 int intel_rcs_context_init_mocs(struct i915_request *rq);
-void intel_mocs_init_l3cc_table(struct intel_gt *gt);
-void intel_mocs_init_global(struct intel_gt *gt);
+void intel_mocs_init(struct intel_gt *gt);
 void intel_mocs_init_engine(struct intel_engine_cs *engine);
 
 #endif
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 323218854b94..f57ce0d560dd 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1252,8 +1252,7 @@ int i915_gem_init_hw(struct drm_i915_private *i915)
goto out;
}
 
-   intel_mocs_init_global(gt);
-   intel_mocs_init_l3cc_table(gt);
+   intel_mocs_init(gt);
 
intel_engines_set_scheduler_caps(i915);
 
-- 
2.21.0

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

[Intel-gfx] [PATCH 0/4] Tiger Lake: MOCS table handling

2019-07-25 Thread Lucas De Marchi
v2 of the MOCS patches originally at
https://patchwork.freedesktop.org/series/63670/ handling the review
comments received.

This needs the accompanying IGT patches so it doesn't regress on Ice
Lake: https://patchwork.freedesktop.org/series/64263/

Lucas De Marchi (1):
  drm/i915/tgl: Move fault registers to their new offset

Michel Thierry (1):
  drm/i915/tgl: Tigerlake only has global MOCS registers

Tomasz Lis (1):
  drm/i915/tgl: Define MOCS entries for Tigerlake

Tvrtko Ursulin (1):
  drm/i915: Move MOCS setup to intel_mocs.c

 drivers/gpu/drm/i915/gt/intel_gt.c   | 24 +-
 drivers/gpu/drm/i915/gt/intel_mocs.c | 93 +++-
 drivers/gpu/drm/i915/gt/intel_mocs.h |  2 +-
 drivers/gpu/drm/i915/i915_drv.h  |  2 +
 drivers/gpu/drm/i915/i915_gem.c  |  2 +-
 drivers/gpu/drm/i915/i915_gpu_error.c| 18 -
 drivers/gpu/drm/i915/i915_pci.c  |  3 +-
 drivers/gpu/drm/i915/i915_reg.h  |  5 ++
 drivers/gpu/drm/i915/intel_device_info.h |  1 +
 9 files changed, 135 insertions(+), 15 deletions(-)

-- 
2.21.0

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

[Intel-gfx] [PATCH 3/4] drm/i915/tgl: Tigerlake only has global MOCS registers

2019-07-25 Thread Lucas De Marchi
From: Michel Thierry 

Until Icelake, each engine had its own set of 64 MOCS registers. In
order to simplify, Tigerlake moves to only 64 Global MOCS registers,
which are no longer part of the engine context. Since these registers
are now global, they also only need to be initialized once.

From Gen12 onwards, MOCS must specify the target cache (3:2) and LRU
management (5:4) fields and cannot be programmed to 'use the value from
Private PAT', because these fields are no longer part of the PPAT. Also
cacheability control (1:0) field has changed, 00 no longer means 'use
controls from page table', but uncacheable (UC).

v2: Move the changes to the fault registers to a separate commit - the old ones
overlap with the range used by the new global MOCS (requested by
Daniele)

Cc: Daniele Ceraolo Spurio 
Cc: Tomasz Lis 
Signed-off-by: Michel Thierry 
Signed-off-by: Tvrtko Ursulin 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/gt/intel_mocs.c | 47 
 drivers/gpu/drm/i915/gt/intel_mocs.h |  1 +
 drivers/gpu/drm/i915/i915_drv.h  |  2 +
 drivers/gpu/drm/i915/i915_gem.c  |  1 +
 drivers/gpu/drm/i915/i915_gpu_error.c|  6 ++-
 drivers/gpu/drm/i915/i915_pci.c  |  3 +-
 drivers/gpu/drm/i915/i915_reg.h  |  2 +
 drivers/gpu/drm/i915/intel_device_info.h |  1 +
 8 files changed, 60 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c 
b/drivers/gpu/drm/i915/gt/intel_mocs.c
index ca370c7487f9..9399c0ec08f1 100644
--- a/drivers/gpu/drm/i915/gt/intel_mocs.c
+++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
@@ -377,6 +377,10 @@ void intel_mocs_init_engine(struct intel_engine_cs *engine)
unsigned int index;
u32 unused_value;
 
+   /* Platforms with global MOCS do not need per-engine initialization. */
+   if (HAS_GLOBAL_MOCS_REGISTERS(gt->i915))
+   return;
+
/* Called under a blanket forcewake */
assert_forcewakes_active(uncore, FORCEWAKE_ALL);
 
@@ -401,6 +405,46 @@ void intel_mocs_init_engine(struct intel_engine_cs *engine)
  unused_value);
 }
 
+/**
+ * intel_mocs_init_global() - program the global mocs registers
+ * gt:  pointer to struct intel_gt
+ *
+ * This function initializes the MOCS global registers.
+ */
+void intel_mocs_init_global(struct intel_gt *gt)
+{
+   struct intel_uncore *uncore = gt->uncore;
+   struct drm_i915_mocs_table table;
+   unsigned int index;
+
+   if (!HAS_GLOBAL_MOCS_REGISTERS(gt->i915))
+   return;
+
+   if (!get_mocs_settings(gt, &table))
+   return;
+
+   if (GEM_DEBUG_WARN_ON(table.size > table.n_entries))
+   return;
+
+   for (index = 0; index < table.size; index++)
+   intel_uncore_write(uncore,
+  GEN12_GLOBAL_MOCS(index),
+  table.table[index].control_value);
+
+   /*
+* Ok, now set the unused entries to uncached. These entries
+* are officially undefined and no contract for the contents
+* and settings is given for these entries.
+*
+* Entry 0 in the table is uncached - so we are just writing
+* that value to all the used entries.
+*/
+   for (; index < table.n_entries; index++)
+   intel_uncore_write(uncore,
+  GEN12_GLOBAL_MOCS(index),
+  table.table[0].control_value);
+}
+
 /**
  * emit_mocs_control_table() - emit the mocs control table
  * @rq:Request to set up the MOCS table for.
@@ -604,6 +648,9 @@ int intel_rcs_context_init_mocs(struct i915_request *rq)
struct drm_i915_mocs_table t;
int ret;
 
+   if (HAS_GLOBAL_MOCS_REGISTERS(rq->i915))
+   return 0;
+
if (get_mocs_settings(rq->engine->gt, &t)) {
/* Program the RCS control registers */
ret = emit_mocs_control_table(rq, &t);
diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.h 
b/drivers/gpu/drm/i915/gt/intel_mocs.h
index 8b9813e6f9ac..aa3a2df07c82 100644
--- a/drivers/gpu/drm/i915/gt/intel_mocs.h
+++ b/drivers/gpu/drm/i915/gt/intel_mocs.h
@@ -56,6 +56,7 @@ struct intel_gt;
 
 int intel_rcs_context_init_mocs(struct i915_request *rq);
 void intel_mocs_init_l3cc_table(struct intel_gt *gt);
+void intel_mocs_init_global(struct intel_gt *gt);
 void intel_mocs_init_engine(struct intel_engine_cs *engine);
 
 #endif
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 59d4a1146039..a9509bdeb2fa 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2280,6 +2280,8 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
 
 #define HAS_POOLED_EU(dev_priv)(INTEL_INFO(dev_priv)->has_pooled_eu)
 
+#define HAS_GLOBAL_MOCS_REGISTERS(dev_priv)
(INTEL_INFO(dev_priv)->has_global_mocs)
+
 #define INTEL_PCH_DEVICE_ID_MASK   

[Intel-gfx] [PATCH 1/4] drm/i915/tgl: Move fault registers to their new offset

2019-07-25 Thread Lucas De Marchi
The fault registers moved to another offset. The old location is now
taken by the global MOCS registers, to be added in a follow up change.

Based on previous patches by Michel Thierry .

Cc: Daniele Ceraolo Spurio 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/gt/intel_gt.c| 24 
 drivers/gpu/drm/i915/i915_gpu_error.c | 12 ++--
 drivers/gpu/drm/i915/i915_reg.h   |  3 +++
 3 files changed, 33 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c 
b/drivers/gpu/drm/i915/gt/intel_gt.c
index f7e69db4019d..caa07eb20a64 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt.c
@@ -79,7 +79,10 @@ intel_gt_clear_error_registers(struct intel_gt *gt,
   I915_MASTER_ERROR_INTERRUPT);
}
 
-   if (INTEL_GEN(i915) >= 8) {
+   if (INTEL_GEN(i915) >= 12) {
+   rmw_clear(uncore, GEN12_RING_FAULT_REG, RING_FAULT_VALID);
+   intel_uncore_posting_read(uncore, GEN12_RING_FAULT_REG);
+   } else if (INTEL_GEN(i915) >= 8) {
rmw_clear(uncore, GEN8_RING_FAULT_REG, RING_FAULT_VALID);
intel_uncore_posting_read(uncore, GEN8_RING_FAULT_REG);
} else if (INTEL_GEN(i915) >= 6) {
@@ -117,14 +120,27 @@ static void gen6_check_faults(struct intel_gt *gt)
 static void gen8_check_faults(struct intel_gt *gt)
 {
struct intel_uncore *uncore = gt->uncore;
-   u32 fault = intel_uncore_read(uncore, GEN8_RING_FAULT_REG);
+   i915_reg_t fault_reg, fault_data0_reg, fault_data1_reg;
+   u32 fault;
+
+   if (INTEL_GEN(gt->i915) >= 12) {
+   fault_reg = GEN12_RING_FAULT_REG;
+   fault_data0_reg = GEN12_FAULT_TLB_DATA0;
+   fault_data1_reg = GEN12_FAULT_TLB_DATA1;
+   } else {
+   fault_reg = GEN8_RING_FAULT_REG;
+   fault_data0_reg = GEN8_FAULT_TLB_DATA0;
+   fault_data1_reg = GEN8_FAULT_TLB_DATA1;
+   }
 
+   fault = intel_uncore_read(uncore, fault_reg);
if (fault & RING_FAULT_VALID) {
u32 fault_data0, fault_data1;
u64 fault_addr;
 
-   fault_data0 = intel_uncore_read(uncore, GEN8_FAULT_TLB_DATA0);
-   fault_data1 = intel_uncore_read(uncore, GEN8_FAULT_TLB_DATA1);
+   fault_data0 = intel_uncore_read(uncore, fault_data0_reg);
+   fault_data1 = intel_uncore_read(uncore, fault_data1_reg);
+
fault_addr = ((u64)(fault_data1 & FAULT_VA_HIGH_BITS) << 44) |
 ((u64)fault_data0 << 12);
 
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c 
b/drivers/gpu/drm/i915/i915_gpu_error.c
index 56dfc2650836..41a14f40a8c7 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -1106,7 +1106,10 @@ static void error_record_engine_registers(struct 
i915_gpu_state *error,
 
if (INTEL_GEN(dev_priv) >= 6) {
ee->rc_psmi = ENGINE_READ(engine, RING_PSMI_CTL);
-   if (INTEL_GEN(dev_priv) >= 8)
+
+   if (INTEL_GEN(dev_priv) >= 12)
+   ee->fault_reg = I915_READ(GEN12_RING_FAULT_REG);
+   else if (INTEL_GEN(dev_priv) >= 8)
ee->fault_reg = I915_READ(GEN8_RING_FAULT_REG);
else
ee->fault_reg = GEN6_RING_FAULT_REG_READ(engine);
@@ -1497,7 +1500,12 @@ static void capture_reg_state(struct i915_gpu_state 
*error)
if (IS_GEN(i915, 7))
error->err_int = intel_uncore_read(uncore, GEN7_ERR_INT);
 
-   if (INTEL_GEN(i915) >= 8) {
+   if (INTEL_GEN(i915) >= 12) {
+   error->fault_data0 = intel_uncore_read(uncore,
+  GEN12_FAULT_TLB_DATA0);
+   error->fault_data1 = intel_uncore_read(uncore,
+  GEN12_FAULT_TLB_DATA1);
+   } else if (INTEL_GEN(i915) >= 8) {
error->fault_data0 = intel_uncore_read(uncore,
   GEN8_FAULT_TLB_DATA0);
error->fault_data1 = intel_uncore_read(uncore,
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 24f2a52a2b42..19e72f0c73d8 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -2490,6 +2490,7 @@ enum i915_power_well_id {
 #define RENDER_HWS_PGA_GEN7_MMIO(0x04080)
 #define RING_FAULT_REG(engine) _MMIO(0x4094 + 0x100 * (engine)->hw_id)
 #define GEN8_RING_FAULT_REG_MMIO(0x4094)
+#define GEN12_RING_FAULT_REG   _MMIO(0xcec4)
 #define   GEN8_RING_FAULT_ENGINE_ID(x) (((x) >> 12) & 0x7)
 #define   RING_FAULT_GTTSEL_MASK (1 << 11)
 #define   RING_FAULT_SRCID(x)  (((x) >> 3) & 0xff)
@@ -2633,6 +2634,8 @@ enum i915_power_well_id {
 
 #define GEN8_FAULT_TLB_DATA0   _MMIO(0x4b10)
 #define GEN8_FAULT_TLB_DATA1   _MMIO(0x4b1

[Intel-gfx] [PATCH 2/4] drm/i915/tgl: Define MOCS entries for Tigerlake

2019-07-25 Thread Lucas De Marchi
From: Tomasz Lis 

The MOCS table is published as part of bspec, and versioned. Entries
are supposed to never be modified, but new ones can be added. Adding
entries increases table version. The patch includes version 1 entries.

Two of the 3 legacy entries used for gen9 are no longer expected to work.
Although we are changing the gen11 table, those changes are supposed to
be backward compatible since we are only touching previously undefined
entries.

v2: Add the missing entries in 49-51 range and replace "HW reserved"
terminology to what it actually is: L1 is implicitly enabled (from Daniele)

Cc: Joonas Lahtinen 
Cc: Mika Kuoppala 
Cc: Daniele Ceraolo Spurio 
Signed-off-by: Tomasz Lis 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/gt/intel_mocs.c | 37 +---
 1 file changed, 34 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c 
b/drivers/gpu/drm/i915/gt/intel_mocs.c
index 290a5e9b90b9..ca370c7487f9 100644
--- a/drivers/gpu/drm/i915/gt/intel_mocs.c
+++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
@@ -62,6 +62,10 @@ struct drm_i915_mocs_table {
 #define GEN11_NUM_MOCS_ENTRIES 64  /* 63-64 are reserved, but configured. */
 
 /* (e)LLC caching options */
+/*
+ * Note: LE_0_PAGETABLE works only up to Gen11; for newer gens it means
+ * the same as LE_UC
+ */
 #define LE_0_PAGETABLE _LE_CACHEABILITY(0)
 #define LE_1_UC_LE_CACHEABILITY(1)
 #define LE_2_WT_LE_CACHEABILITY(2)
@@ -100,8 +104,9 @@ struct drm_i915_mocs_table {
  * of bspec.
  *
  * Entries not part of the following tables are undefined as far as
- * userspace is concerned and shouldn't be relied upon.  For the time
- * being they will be initialized to PTE.
+ * userspace is concerned and shouldn't be relied upon.  For Gen < 12
+ * they will be initialized to PTE. Gen >= 12 onwards don't have a setting for
+ * PTE. We use the same value, but that actually means Uncached.
  *
  * The last two entries are reserved by the hardware. For ICL+ they
  * should be initialized according to bspec and never used, for older
@@ -137,11 +142,13 @@ static const struct drm_i915_mocs_entry 
broxton_mocs_table[] = {
 };
 
 #define GEN11_MOCS_ENTRIES \
-   /* Base - Uncached (Deprecated) */ \
+   /* Gen11: Base - Uncached (Deprecated) */ \
+   /* Gen12+: Base - Error (Reserved for Non-Use) */ \
MOCS_ENTRY(I915_MOCS_UNCACHED, \
   LE_1_UC | LE_TC_1_LLC, \
   L3_1_UC), \
/* Base - L3 + LeCC:PAT (Deprecated) */ \
+   /* Gen12+: Base - Reserved */ \
MOCS_ENTRY(I915_MOCS_PTE, \
   LE_0_PAGETABLE | LE_TC_1_LLC, \
   L3_3_WB), \
@@ -233,6 +240,30 @@ static const struct drm_i915_mocs_entry 
broxton_mocs_table[] = {
MOCS_ENTRY(23, \
   LE_3_WB | LE_TC_1_LLC | LE_LRUM(3) | LE_RSC(1) | LE_SCC(7), \
   L3_3_WB), \
+   /* Gen12+: Implicitly enable L1 - HDC:L1 + L3 + LLC */ \
+   MOCS_ENTRY(48, \
+  LE_3_WB | LE_TC_1_LLC | LE_LRUM(3), \
+  L3_3_WB), \
+   /* Gen12+: Implicitly enable L1 - HDC:L1 + L3 */ \
+   MOCS_ENTRY(49, \
+  LE_1_UC | LE_TC_1_LLC, \
+  L3_3_WB), \
+   /* Gen12+: Implicitly enable L1 - HDC:L1 + LLC */ \
+   MOCS_ENTRY(50, \
+  LE_3_WB | LE_TC_1_LLC | LE_LRUM(3), \
+  L3_1_UC), \
+   /* Gen12+: Implicitly enable L1 - HDC:L1 */ \
+   MOCS_ENTRY(51, \
+  LE_1_UC | LE_TC_1_LLC, \
+  L3_1_UC), \
+   /* Gen12+: HW Reserved - HW Special Case (CCS) */ \
+   MOCS_ENTRY(60, \
+  LE_3_WB | LE_TC_1_LLC | LE_LRUM(3), \
+  L3_1_UC), \
+   /* Gen12+: HW Reserved - HW Special Case (Displayable) */ \
+   MOCS_ENTRY(61, \
+  LE_1_UC | LE_TC_1_LLC | LE_SCF(1), \
+  L3_3_WB), \
/* HW Reserved - SW program but never use */ \
MOCS_ENTRY(62, \
   LE_3_WB | LE_TC_1_LLC | LE_LRUM(3), \
-- 
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/3] drm/i915/tgl: Implement Wa_1604555607

2019-07-25 Thread Chris Wilson
Quoting Lucas De Marchi (2019-07-26 01:02:25)
> From: Michel Thierry 
> 
> Implement Wa_1604555607 (set the DS pairing timer to 128 cycles).
> FF_MODE2 is part of the register state context, that's why it is
> implemented here.
> 
> Signed-off-by: Michel Thierry 
> Signed-off-by: Lucas De Marchi 
> ---
>  drivers/gpu/drm/i915/gt/intel_workarounds.c | 7 +++
>  drivers/gpu/drm/i915/i915_reg.h | 5 +
>  2 files changed, 12 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c 
> b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> index a6eb9c6e87ec..3235ef355dfd 100644
> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> @@ -572,6 +572,13 @@ static void icl_ctx_workarounds_init(struct 
> intel_engine_cs *engine,
>  static void tgl_ctx_workarounds_init(struct intel_engine_cs *engine,
>  struct i915_wa_list *wal)
>  {
> +   u32 val;
> +
> +   /* Wa_1604555607:tgl */
> +   val = intel_uncore_read(engine->uncore, FF_MODE2);
> +   val &= ~FF_MODE2_TDS_TIMER_MASK;
> +   val |= FF_MODE2_TDS_TIMER_128;
> +   wa_write_masked_or(wal, FF_MODE2, FF_MODE2_TDS_TIMER_MASK, val);

It will do a rmw on application, so you just need
wa_write_masked_or(wal, FF_MODE2,
   FF_MODE2_TDS_TIMER_MASK, FF_MODE2_TDS_TIMER_128);

>  }
>  
>  static void
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 54ea25be..fbbb89f6ca2f 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -7771,6 +7771,11 @@ enum {
>  #define   PIXEL_ROUNDING_TRUNC_FB_PASSTHRU (1 << 15)
>  #define   PER_PIXEL_ALPHA_BYPASS_EN(1 << 7)
>  
> +#define FF_MODE2   _MMIO(0x6604)
> +#define   FF_MODE2_TDS_TIMER_SHIFT (16)
> +#define   FF_MODE2_TDS_TIMER_128   (4 << FF_MODE2_TDS_TIMER_SHIFT)
> +#define   FF_MODE2_TDS_TIMER_MASK  (0xff << FF_MODE2_TDS_TIMER_SHIFT)

#define FF_MODE2_TDS_TIMER_MASK REG_GENMASK(23, 16)
#define FF_MODE2_TDS_TIMER_128 REG_FIELD_PREP(FF_MODE2_TDS_TIMER_MASK, 4)
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/5] drm/i915: Capture vma contents outside of spinlock

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

Series: series starting with [1/5] drm/i915: Capture vma contents outside of 
spinlock
URL   : https://patchwork.freedesktop.org/series/64268/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915: Capture vma contents outside of spinlock
-O:drivers/gpu/drm/i915/i915_gpu_error.c:1007:21: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_gpu_error.c:1007:21: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_gpu_error.c:1007:21: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_gpu_error.c:1007:21: warning: expression using 
sizeof(void)

Commit: drm/i915/gt: Add to timeline requires the timeline mutex
Okay!

Commit: drm/i915: Unshare the idle-barrier from other kernel requests
Okay!

Commit: drm/i915/execlists: Force preemption
+
+./drivers/gpu/drm/i915/i915_utils.h:232:16: warning: expression using 
sizeof(void)
+Error in reading or end of file.

Commit: drm/i915: Replace hangcheck by heartbeats
+
+Error in reading or end of file.

___
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: Capture vma contents outside of spinlock (rev2)

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

Series: drm/i915: Capture vma contents outside of spinlock (rev2)
URL   : https://patchwork.freedesktop.org/series/64256/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6555 -> Patchwork_13759


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_reloc@basic-gtt-read:
- fi-icl-u3:  [PASS][1] -> [DMESG-WARN][2] ([fdo#107724])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-icl-u3/igt@gem_exec_re...@basic-gtt-read.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13759/fi-icl-u3/igt@gem_exec_re...@basic-gtt-read.html

  * igt@kms_chamelium@dp-edid-read:
- fi-cml-u2:  [PASS][3] -> [FAIL][4] ([fdo#109483])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-cml-u2/igt@kms_chamel...@dp-edid-read.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13759/fi-cml-u2/igt@kms_chamel...@dp-edid-read.html

  
 Possible fixes 

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

  * igt@i915_selftest@live_contexts:
- fi-icl-dsi: [INCOMPLETE][7] ([fdo#107713] / [fdo#108569]) -> 
[PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-icl-dsi/igt@i915_selftest@live_contexts.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13759/fi-icl-dsi/igt@i915_selftest@live_contexts.html

  * igt@i915_selftest@live_hangcheck:
- fi-kbl-guc: [INCOMPLETE][9] ([fdo#108744]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-kbl-guc/igt@i915_selftest@live_hangcheck.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13759/fi-kbl-guc/igt@i915_selftest@live_hangcheck.html

  * igt@kms_busy@basic-flip-a:
- fi-kbl-7567u:   [SKIP][11] ([fdo#109271] / [fdo#109278]) -> 
[PASS][12] +2 similar issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13759/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-icl-u3:  [FAIL][13] ([fdo#103167]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-icl-u3/igt@kms_frontbuffer_track...@basic.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13759/fi-icl-u3/igt@kms_frontbuffer_track...@basic.html
- fi-icl-u2:  [FAIL][15] ([fdo#103167]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-icl-u2/igt@kms_frontbuffer_track...@basic.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13759/fi-icl-u2/igt@kms_frontbuffer_track...@basic.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- fi-skl-6600u:   [INCOMPLETE][17] ([fdo#104108]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-skl-6600u/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-a.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13759/fi-skl-6600u/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-a.html

  * igt@prime_vgem@basic-gtt:
- fi-icl-u3:  [DMESG-WARN][19] ([fdo#107724]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-icl-u3/igt@prime_v...@basic-gtt.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13759/fi-icl-u3/igt@prime_v...@basic-gtt.html

  
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483


Participating hosts (52 -> 45)
--

  Missing(7): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-icl-y fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6555 -> Patchwork_13759

  CI-20190529: 20190529
  CI_DRM_6555: 6272e6f4ea0ac59d6fde2d7af908c797cc56366a @ 
git://anongit.f

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/5] drm/i915: Capture vma contents outside of spinlock

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

Series: series starting with [1/5] drm/i915: Capture vma contents outside of 
spinlock
URL   : https://patchwork.freedesktop.org/series/64268/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
7bdf4e249991 drm/i915: Capture vma contents outside of spinlock
4e2d37f6031f drm/i915/gt: Add to timeline requires the timeline mutex
37c72d9a4ebe drm/i915: Unshare the idle-barrier from other kernel requests
-:112: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#112: 
new file mode 100644

-:117: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier 
tag in line 1
#117: FILE: drivers/gpu/drm/i915/gt/selftest_context.c:1:
+/*

-:118: WARNING:SPDX_LICENSE_TAG: Misplaced SPDX-License-Identifier tag - use 
line 1 instead
#118: FILE: drivers/gpu/drm/i915/gt/selftest_context.c:2:
+ * SPDX-License-Identifier: GPL-2.0

total: 0 errors, 3 warnings, 0 checks, 519 lines checked
f74342594bf0 drm/i915/execlists: Force preemption
163441e2261a drm/i915: Replace hangcheck by heartbeats
-:123: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#123: 
new file mode 100644

-:128: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier 
tag in line 1
#128: FILE: drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c:1:
+/*

-:129: WARNING:SPDX_LICENSE_TAG: Misplaced SPDX-License-Identifier tag - use 
line 1 instead
#129: FILE: drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c:2:
+ * SPDX-License-Identifier: MIT

-:171: WARNING:EMBEDDED_FUNCTION_NAME: Prefer using '"%s...", __func__' to 
using 'heartbeat', this function's name, in a string
#171: FILE: drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c:44:
+ "stopped heartbeat on %s", engine->name);

-:230: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier 
tag in line 1
#230: FILE: drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h:1:
+/*

-:231: WARNING:SPDX_LICENSE_TAG: Misplaced SPDX-License-Identifier tag - use 
line 1 instead
#231: FILE: drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h:2:
+ * SPDX-License-Identifier: MIT

total: 0 errors, 6 warnings, 0 checks, 551 lines checked

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

[Intel-gfx] [PATCH 2/3] drm/i915/tgl: Implement Wa_1604555607

2019-07-25 Thread Lucas De Marchi
From: Michel Thierry 

Implement Wa_1604555607 (set the DS pairing timer to 128 cycles).
FF_MODE2 is part of the register state context, that's why it is
implemented here.

Signed-off-by: Michel Thierry 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 7 +++
 drivers/gpu/drm/i915/i915_reg.h | 5 +
 2 files changed, 12 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c 
b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index a6eb9c6e87ec..3235ef355dfd 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -572,6 +572,13 @@ static void icl_ctx_workarounds_init(struct 
intel_engine_cs *engine,
 static void tgl_ctx_workarounds_init(struct intel_engine_cs *engine,
 struct i915_wa_list *wal)
 {
+   u32 val;
+
+   /* Wa_1604555607:tgl */
+   val = intel_uncore_read(engine->uncore, FF_MODE2);
+   val &= ~FF_MODE2_TDS_TIMER_MASK;
+   val |= FF_MODE2_TDS_TIMER_128;
+   wa_write_masked_or(wal, FF_MODE2, FF_MODE2_TDS_TIMER_MASK, val);
 }
 
 static void
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 54ea25be..fbbb89f6ca2f 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -7771,6 +7771,11 @@ enum {
 #define   PIXEL_ROUNDING_TRUNC_FB_PASSTHRU (1 << 15)
 #define   PER_PIXEL_ALPHA_BYPASS_EN(1 << 7)
 
+#define FF_MODE2   _MMIO(0x6604)
+#define   FF_MODE2_TDS_TIMER_SHIFT (16)
+#define   FF_MODE2_TDS_TIMER_128   (4 << FF_MODE2_TDS_TIMER_SHIFT)
+#define   FF_MODE2_TDS_TIMER_MASK  (0xff << FF_MODE2_TDS_TIMER_SHIFT)
+
 /* PCH */
 
 #define PCH_DISPLAY_BASE   0xcu
-- 
2.21.0

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

[Intel-gfx] [PATCH 0/3] Tiger Lake: add workarounds

2019-07-25 Thread Lucas De Marchi
Same patches as extracted from https://patchwork.freedesktop.org/series/63670/
and rebased.

Michel Thierry (3):
  drm/i915/tgl: Introduce initial Tigerlake Workarounds
  drm/i915/tgl: Implement Wa_1604555607
  drm/i915/tgl: Implement Wa_1406941453

 drivers/gpu/drm/i915/gt/intel_lrc.c |  2 +
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 52 +++--
 drivers/gpu/drm/i915/i915_reg.h | 11 +
 drivers/gpu/drm/i915/intel_pm.c |  4 +-
 drivers/gpu/drm/i915/intel_uncore.c |  2 +-
 5 files changed, 66 insertions(+), 5 deletions(-)

-- 
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/tgl: Introduce initial Tigerlake Workarounds

2019-07-25 Thread Lucas De Marchi
From: Michel Thierry 

Inherit workarounds from previous platforms that are still valid for
Tigerlake.

  WaPipelineFlushCoherentLines:tgl (changed register but has same name)
  WaSendPushConstantsFromMMIO:tgl
  WaAllowUMDToModifySamplerMode:tgl
  WaRsForcewakeAddDelayForAck:tgl

Cc: Daniele Ceraolo Spurio 
Signed-off-by: Michel Thierry 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/gt/intel_lrc.c |  2 ++
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 40 +++--
 drivers/gpu/drm/i915/i915_reg.h |  3 ++
 drivers/gpu/drm/i915/intel_pm.c |  4 ++-
 drivers/gpu/drm/i915/intel_uncore.c |  2 +-
 5 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 884dfc1cb033..893c58df8be0 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -2069,6 +2069,8 @@ static int intel_init_workaround_bb(struct 
intel_engine_cs *engine)
return 0;
 
switch (INTEL_GEN(engine->i915)) {
+   case 12:
+   return 0;
case 11:
return 0;
case 10:
diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c 
b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 704ace01e7f5..a6eb9c6e87ec 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -569,6 +569,11 @@ static void icl_ctx_workarounds_init(struct 
intel_engine_cs *engine,
  GEN11_SAMPLER_ENABLE_HEADLESS_MSG);
 }
 
+static void tgl_ctx_workarounds_init(struct intel_engine_cs *engine,
+struct i915_wa_list *wal)
+{
+}
+
 static void
 __intel_engine_init_ctx_wa(struct intel_engine_cs *engine,
   struct i915_wa_list *wal,
@@ -581,7 +586,9 @@ __intel_engine_init_ctx_wa(struct intel_engine_cs *engine,
 
wa_init_start(wal, name, engine->name);
 
-   if (IS_GEN(i915, 11))
+   if (IS_GEN(i915, 12))
+   tgl_ctx_workarounds_init(engine, wal);
+   else if (IS_GEN(i915, 11))
icl_ctx_workarounds_init(engine, wal);
else if (IS_CANNONLAKE(i915))
cnl_ctx_workarounds_init(engine, wal);
@@ -890,10 +897,17 @@ icl_gt_workarounds_init(struct drm_i915_private *i915, 
struct i915_wa_list *wal)
GAMT_CHKN_DISABLE_L3_COH_PIPE);
 }
 
+static void
+tgl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list 
*wal)
+{
+}
+
 static void
 gt_init_workarounds(struct drm_i915_private *i915, struct i915_wa_list *wal)
 {
-   if (IS_GEN(i915, 11))
+   if (IS_GEN(i915, 12))
+   tgl_gt_workarounds_init(i915, wal);
+   else if (IS_GEN(i915, 11))
icl_gt_workarounds_init(i915, wal);
else if (IS_CANNONLAKE(i915))
cnl_gt_workarounds_init(i915, wal);
@@ -1183,6 +1197,17 @@ static void icl_whitelist_build(struct intel_engine_cs 
*engine)
}
 }
 
+static void tgl_whitelist_build(struct intel_engine_cs *engine)
+{
+   struct i915_wa_list *w = &engine->whitelist;
+
+   /* WaSendPushConstantsFromMMIO:tgl */
+   whitelist_reg(w, COMMON_SLICE_CHICKEN2);
+
+   /* WaAllowUMDToModifySamplerMode:tgl */
+   whitelist_reg(w, GEN10_SAMPLER_MODE);
+}
+
 void intel_engine_init_whitelist(struct intel_engine_cs *engine)
 {
struct drm_i915_private *i915 = engine->i915;
@@ -1190,7 +1215,9 @@ void intel_engine_init_whitelist(struct intel_engine_cs 
*engine)
 
wa_init_start(w, "whitelist", engine->name);
 
-   if (IS_GEN(i915, 11))
+   if (IS_GEN(i915, 12))
+   tgl_whitelist_build(engine);
+   else if (IS_GEN(i915, 11))
icl_whitelist_build(engine);
else if (IS_CANNONLAKE(i915))
cnl_whitelist_build(engine);
@@ -1240,6 +1267,13 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, 
struct i915_wa_list *wal)
 {
struct drm_i915_private *i915 = engine->i915;
 
+   if (IS_GEN(i915, 12)) {
+   /* WaPipelineFlushCoherentLines:tgl */
+   wa_write_or(wal,
+   GEN12_L3SQCREG2,
+   GEN12_LQSC_FLUSH_COHERENT_LINES);
+   }
+
if (IS_GEN(i915, 11)) {
/* This is not an Wa. Enable for better image quality */
wa_masked_en(wal,
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 24f2a52a2b42..54ea25be 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -7729,6 +7729,9 @@ enum {
 #define  GEN8_LQSC_RO_PERF_DIS (1 << 27)
 #define  GEN8_LQSC_FLUSH_COHERENT_LINES(1 << 21)
 
+#define GEN12_L3SQCREG2_MMIO(0xb104)
+#define  GEN12_LQSC_FLUSH_COHERENT_LINES   (1 << 24)
+
 /* GEN8 chicken */
 #define HDC_CHICKEN0   _MMIO(0x7300)
 #def

[Intel-gfx] [PATCH 3/3] drm/i915/tgl: Implement Wa_1406941453

2019-07-25 Thread Lucas De Marchi
From: Michel Thierry 

Enable Small PL for power benefit.

Signed-off-by: Michel Thierry 
Signed-off-by: Lucas De Marchi 
Reviewed-by: Stuart Summers 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20190713010940.17711-18-lucas.demar...@intel.com
---
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 5 +
 drivers/gpu/drm/i915/i915_reg.h | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c 
b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 3235ef355dfd..830ccd416a29 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -1279,6 +1279,11 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, 
struct i915_wa_list *wal)
wa_write_or(wal,
GEN12_L3SQCREG2,
GEN12_LQSC_FLUSH_COHERENT_LINES);
+
+   /* Wa_1406941453:tgl */
+   wa_masked_en(wal,
+SAMPLER_MODE,
+SAMPLER_ENABLE_SMALL_PL);
}
 
if (IS_GEN(i915, 11)) {
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index fbbb89f6ca2f..71efb37f54a3 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -8965,6 +8965,9 @@ enum {
 #define   GEN9_DG_MIRROR_FIX_ENABLE(1 << 5)
 #define   GEN9_CCS_TLB_PREFETCH_ENABLE (1 << 3)
 
+#define SAMPLER_MODE   _MMIO(0xe18c)
+#define   SAMPLER_ENABLE_SMALL_PL  (1 << 15)
+
 #define GEN8_ROW_CHICKEN   _MMIO(0xe4f0)
 #define   FLOW_CONTROL_ENABLE  (1 << 15)
 #define   PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE(1 << 8)
-- 
2.21.0

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

[Intel-gfx] [PATCH 3/5] drm/i915/tgl: Add DKL phy pll state calculations

2019-07-25 Thread Lucas De Marchi
From: Vandita Kulkarni 

Reuse the existing calculate icl_calc_mg_pll_state() function.
Since the pll variables are calculated differently for DKL phy, add
support for the same.

Signed-off-by: Vandita Kulkarni 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 59 ---
 1 file changed, 50 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c 
b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
index 7eefd63a8b7e..3a1348ea6714 100644
--- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
@@ -2625,7 +2625,8 @@ enum intel_dpll_id icl_tc_port_to_pll_id(enum tc_port 
tc_port)
 
 static bool icl_mg_pll_find_divisors(int clock_khz, bool is_dp, bool use_ssc,
 u32 *target_dco_khz,
-struct intel_dpll_hw_state *state)
+struct intel_dpll_hw_state *state,
+bool is_dkl)
 {
u32 dco_min_freq, dco_max_freq;
int div1_vals[] = {7, 5, 3, 2};
@@ -2647,8 +2648,13 @@ static bool icl_mg_pll_find_divisors(int clock_khz, bool 
is_dp, bool use_ssc,
continue;
 
if (div2 >= 2) {
-   a_divratio = is_dp ? 10 : 5;
-   tlinedrv = 2;
+   if (is_dkl) {
+   a_divratio = 5;
+   tlinedrv = 1;
+   } else {
+   a_divratio = is_dp ? 10 : 5;
+   tlinedrv = 2;
+   }
} else {
a_divratio = 5;
tlinedrv = 0;
@@ -2698,7 +2704,8 @@ static bool icl_mg_pll_find_divisors(int clock_khz, bool 
is_dp, bool use_ssc,
  * adapted to integer-only calculation, that's why it looks so different.
  */
 static bool icl_calc_mg_pll_state(struct intel_crtc_state *crtc_state,
- struct intel_dpll_hw_state *pll_state)
+ struct intel_dpll_hw_state *pll_state,
+ bool is_dkl)
 {
struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev);
int refclk_khz = dev_priv->cdclk.hw.ref;
@@ -2715,7 +2722,7 @@ static bool icl_calc_mg_pll_state(struct intel_crtc_state 
*crtc_state,
memset(pll_state, 0, sizeof(*pll_state));
 
if (!icl_mg_pll_find_divisors(clock, is_dp, use_ssc, &dco_khz,
- pll_state)) {
+ pll_state, is_dkl)) {
DRM_DEBUG_KMS("Failed to find divisors for clock %d\n", clock);
return false;
}
@@ -2723,8 +2730,11 @@ static bool icl_calc_mg_pll_state(struct 
intel_crtc_state *crtc_state,
m1div = 2;
m2div_int = dco_khz / (refclk_khz * m1div);
if (m2div_int > 255) {
-   m1div = 4;
-   m2div_int = dco_khz / (refclk_khz * m1div);
+   if (!is_dkl) {
+   m1div = 4;
+   m2div_int = dco_khz / (refclk_khz * m1div);
+   }
+
if (m2div_int > 255) {
DRM_DEBUG_KMS("Failed to find mdiv for clock %d\n",
  clock);
@@ -2753,6 +2763,12 @@ static bool icl_calc_mg_pll_state(struct 
intel_crtc_state *crtc_state,
iref_trim = 28;
iref_pulse_w = 1;
break;
+
+   /*
+* TODO: spec adds a case for ndiv = 4 when refclk > 80MHz,
+* however this doesn't seem possible from the input.
+* See Issue 17526.
+*/
default:
MISSING_CASE(refclk_khz);
return false;
@@ -2805,7 +2821,31 @@ static bool icl_calc_mg_pll_state(struct 
intel_crtc_state *crtc_state,
ssc_steplog = 4;
 
/* write pll_state calculations */
-   {
+   if (is_dkl) {
+   pll_state->mg_pll_div0 =
+   DKL_PLL_DIV0_INTEG_COEFF(int_coeff) |
+   DKL_PLL_DIV0_PROP_COEFF(prop_coeff) |
+   DKL_PLL_DIV0_FBPREDIV(m1div) |
+   DKL_PLL_DIV0_FBDIV_INT(m2div_int);
+
+   pll_state->mg_pll_div1 =
+   DKL_PLL_DIV1_IREF_TRIM(iref_trim) |
+   DKL_PLL_DIV1_TDC_TARGET_CNT(tdc_targetcnt);
+
+   pll_state->mg_pll_ssc =
+   DKL_PLL_SSC_IREF_NDIV_RATIO(iref_ndiv) |
+   DKL_PLL_SSC_STEP_LEN(ssc_steplen) |
+   DKL_PLL_SSC_STEP_NUM(ssc_steplog) |
+   (use_ssc ? DKL_PLL_SSC_EN : 0);
+
+   pll_state->mg_pll_tdc_coldst

[Intel-gfx] [PATCH 1/5] drm/i915/tgl: Add DKL phy pll registers

2019-07-25 Thread Lucas De Marchi
From: Vandita Kulkarni 

These are the registers needed to program Dekel PHY. Some register
definitions reuse the MG PHY definitions. Add a comment on those so we
don't need to duplicate the functions for programming them.

Signed-off-by: Vandita Kulkarni 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/i915_reg.h | 94 +
 1 file changed, 94 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 24f2a52a2b42..0ea556abee1a 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -9976,6 +9976,100 @@ enum skl_power_gate {
   _TGL_DPLL1_CFGCR1, \
   _TGL_TBTPLL_CFGCR1)
 
+#define _DKL_PHY1_BASE 0x168000
+#define _DKL_PHY2_BASE 0x169000
+#define _DKL_PHY3_BASE 0x16A000
+#define _DKL_PHY4_BASE 0x16B000
+#define _DKL_PHY5_BASE 0x16C000
+#define _DKL_PHY6_BASE 0x16D000
+
+/* DEKEL PHY MMIO Address = Phy base + (internal address & ~index_mask) */
+#define _DKL_PLL_DIV0  0x200
+#define   DKL_PLL_DIV0_INTEG_COEFF(x)  ((x) << 16)
+#define   DKL_PLL_DIV0_INTEG_COEFF_MASK(0x1F << 16)
+#define   DKL_PLL_DIV0_PROP_COEFF(x)   ((x) << 12)
+#define   DKL_PLL_DIV0_PROP_COEFF_MASK (0xF << 12)
+#define   DKL_PLL_DIV0_FBPREDIV(x) ((x) << 8)
+#define   DKL_PLL_DIV0_FBPREDIV_MASK   (0xF << 8)
+#define   DKL_PLL_DIV0_FBDIV_INT(x)((x) << 0)
+#define   DKL_PLL_DIV0_FBDIV_INT_MASK  (0xFF << 0)
+#define DKL_PLL_DIV0(tc_port)  _MMIO(_PORT(tc_port, _DKL_PHY1_BASE, \
+   _DKL_PHY2_BASE) + \
+   _DKL_PLL_DIV0)
+
+#define _DKL_PLL_DIV1  0x204
+#define   DKL_PLL_DIV1_IREF_TRIM(x)((x) << 16)
+#define   DKL_PLL_DIV1_IREF_TRIM_MASK  (0x1F << 16)
+#define   DKL_PLL_DIV1_TDC_TARGET_CNT(x)   ((x) << 0)
+#define   DKL_PLL_DIV1_TDC_TARGET_CNT_MASK (0xFF << 0)
+#define DKL_PLL_DIV1(tc_port)  _MMIO(_PORT(tc_port, _DKL_PHY1_BASE, \
+   _DKL_PHY2_BASE) + \
+   _DKL_PLL_DIV1)
+
+#define _DKL_PLL_SSC   0x210
+#define   DKL_PLL_SSC_IREF_NDIV_RATIO(x)   ((x) << 29)
+#define   DKL_PLL_SSC_IREF_NDIV_RATIO_MASK (0x7 << 29)
+#define   DKL_PLL_SSC_STEP_LEN(x)  ((x) << 16)
+#define   DKL_PLL_SSC_STEP_LEN_MASK(0xFF << 16)
+#define   DKL_PLL_SSC_STEP_NUM(x)  ((x) << 11)
+#define   DKL_PLL_SSC_STEP_NUM_MASK(0x7 << 11)
+#define   DKL_PLL_SSC_EN   (1 << 9)
+#define DKL_PLL_SSC(tc_port)   _MMIO(_PORT(tc_port, _DKL_PHY1_BASE, \
+   _DKL_PHY2_BASE) + \
+   _DKL_PLL_SSC)
+
+#define _DKL_PLL_BIAS  0x214
+#define   DKL_PLL_BIAS_FRAC_EN_H   (1 << 30)
+#define   DKL_PLL_BIAS_FBDIV_FRAC(x)   ((x) << 8)
+#define   DKL_PLL_BIAS_FBDIV_FRAC_MASK (0xFF << 8)
+#define DKL_PLL_BIAS(tc_port)  _MMIO(_PORT(tc_port, _DKL_PHY1_BASE, \
+   _DKL_PHY2_BASE) + \
+   _DKL_PLL_BIAS)
+
+#define _DKL_PLL_TDC_COLDST_BIAS   0x218
+#define   DKL_PLL_TDC_SSC_STEP_SIZE(x) ((x) << 8)
+#define   DKL_PLL_TDC_SSC_STEP_SIZE_MASK   (0xFF << 8)
+#define   DKL_PLL_TDC_FEED_FWD_GAIN(x) ((x) << 0)
+#define   DKL_PLL_TDC_FEED_FWD_GAIN_MASK   (0xFF << 0)
+#define DKL_PLL_TDC_COLDST_BIAS(tc_port) _MMIO(_PORT(tc_port, \
+_DKL_PHY1_BASE, \
+_DKL_PHY2_BASE) + \
+_DKL_PLL_TDC_COLDST_BIAS)
+
+#define _DKL_REFCLKIN_CTL  0x12C
+/* Bits are the same as MG_REFCLKIN_CTL */
+#define DKL_REFCLKIN_CTL(tc_port)  _MMIO(_PORT(tc_port, \
+   _DKL_PHY1_BASE, \
+   _DKL_PHY2_BASE) + \
+ _DKL_REFCLKIN_CTL)
+
+#define _DKL_CLKTOP2_HSCLKCTL  0xD4
+/* Bits are the same as MG_CLKTOP2_HSCLKCTL */
+#define DKL_CLKTOP2_HSCLKCTL(tc_port)  _MMIO(_PORT(tc_port, \
+   _DKL_PHY1_BASE, \
+   _DKL_PHY2_BASE) + \
+ _DKL_CLKTOP2_HSCLKCTL)
+
+#define _DKL_CLKTOP2_CORECLKCTL1   0xD8
+/* Bits are the same as MG_CLKTOP2_CORECLKCTL1 */
+#define DKL_CLKTOP2_CORECLKCTL1(tc_port)   _MMIO(_PORT(tc_port, \
+

[Intel-gfx] [PATCH 0/5] Tiger Lake: DKL phy PLLs

2019-07-25 Thread Lucas De Marchi
Mostly the same patches as https://patchwork.freedesktop.org/series/63670/.
Rebased.

Lucas De Marchi (2):
  drm/i915/tgl: re-indent code to prepare for DKL changes
  drm/i915/tgl: start adding the DKL PLLs to use on TC ports

Vandita Kulkarni (3):
  drm/i915/tgl: Add DKL phy pll registers
  drm/i915/tgl: Add DKL phy pll state calculations
  drm/i915/tgl: Add support for dkl pll write

 drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 335 ++
 drivers/gpu/drm/i915/i915_reg.h   |  94 +
 2 files changed, 368 insertions(+), 61 deletions(-)

-- 
2.21.0

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

[Intel-gfx] [PATCH 4/5] drm/i915/tgl: start adding the DKL PLLs to use on TC ports

2019-07-25 Thread Lucas De Marchi
The disable function can be the same as for MG phy since the same
registers are used. The others are different as registers change -
prepare for that using an empty dkl_pll_write() to be implemented later.

Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 98 ++-
 1 file changed, 97 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c 
b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
index 3a1348ea6714..049b68e0c61c 100644
--- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
@@ -3158,6 +3158,60 @@ static bool mg_pll_get_hw_state(struct drm_i915_private 
*dev_priv,
return ret;
 }
 
+static bool dkl_pll_get_hw_state(struct drm_i915_private *dev_priv,
+struct intel_shared_dpll *pll,
+struct intel_dpll_hw_state *hw_state)
+{
+   const enum intel_dpll_id id = pll->info->id;
+   enum tc_port tc_port = icl_pll_id_to_tc_port(id);
+   intel_wakeref_t wakeref;
+   bool ret = false;
+   u32 val;
+
+   wakeref = intel_display_power_get_if_enabled(dev_priv,
+POWER_DOMAIN_DISPLAY_CORE);
+   if (!wakeref)
+   return false;
+
+   val = I915_READ(MG_PLL_ENABLE(tc_port));
+   if (!(val & PLL_ENABLE))
+   goto out;
+
+   /*
+* All registers read here have the same HIP_INDEX_REG even though
+* they are on different building blocks
+*/
+   I915_WRITE(HIP_INDEX_REG(tc_port), 0x2);
+
+   hw_state->mg_refclkin_ctl = I915_READ(DKL_REFCLKIN_CTL(tc_port));
+   hw_state->mg_refclkin_ctl &= MG_REFCLKIN_CTL_OD_2_MUX_MASK;
+
+   hw_state->mg_clktop2_hsclkctl =
+   I915_READ(DKL_CLKTOP2_HSCLKCTL(tc_port));
+   hw_state->mg_clktop2_hsclkctl &=
+   MG_CLKTOP2_HSCLKCTL_TLINEDRV_CLKSEL_MASK |
+   MG_CLKTOP2_HSCLKCTL_CORE_INPUTSEL_MASK |
+   MG_CLKTOP2_HSCLKCTL_HSDIV_RATIO_MASK |
+   MG_CLKTOP2_HSCLKCTL_DSDIV_RATIO_MASK;
+
+   hw_state->mg_clktop2_coreclkctl1 =
+   I915_READ(DKL_CLKTOP2_CORECLKCTL1(tc_port));
+   hw_state->mg_clktop2_coreclkctl1 &=
+   MG_CLKTOP2_CORECLKCTL1_A_DIVRATIO_MASK;
+
+   hw_state->mg_pll_div0 = I915_READ(DKL_PLL_DIV0(tc_port));
+   hw_state->mg_pll_div1 = I915_READ(DKL_PLL_DIV1(tc_port));
+   hw_state->mg_pll_ssc = I915_READ(DKL_PLL_SSC(tc_port));
+   hw_state->mg_pll_bias = I915_READ(DKL_PLL_BIAS(tc_port));
+   hw_state->mg_pll_tdc_coldst_bias =
+   I915_READ(DKL_PLL_TDC_COLDST_BIAS(tc_port));
+
+   ret = true;
+out:
+   intel_display_power_put(dev_priv, POWER_DOMAIN_DISPLAY_CORE, wakeref);
+   return ret;
+}
+
 static bool icl_pll_get_hw_state(struct drm_i915_private *dev_priv,
 struct intel_shared_dpll *pll,
 struct intel_dpll_hw_state *hw_state,
@@ -3292,6 +3346,12 @@ static void icl_mg_pll_write(struct drm_i915_private 
*dev_priv,
POSTING_READ(MG_PLL_TDC_COLDST_BIAS(tc_port));
 }
 
+static void dkl_pll_write(struct drm_i915_private *dev_priv,
+ struct intel_shared_dpll *pll)
+{
+   /* TODO */
+}
+
 static void icl_pll_power_enable(struct drm_i915_private *dev_priv,
 struct intel_shared_dpll *pll,
 i915_reg_t enable_reg)
@@ -3399,6 +3459,31 @@ static void mg_pll_enable(struct drm_i915_private 
*dev_priv,
/* DVFS post sequence would be here. See the comment above. */
 }
 
+static void dkl_pll_enable(struct drm_i915_private *dev_priv,
+  struct intel_shared_dpll *pll)
+{
+   /*
+* From spec: MG register instances are being used for TypeC in 
general. The
+* same MG register instances should be programmed for Dekel PLLs as 
well
+*/
+   i915_reg_t enable_reg =
+   MG_PLL_ENABLE(icl_pll_id_to_tc_port(pll->info->id));
+
+   icl_pll_power_enable(dev_priv, pll, enable_reg);
+
+   dkl_pll_write(dev_priv, pll);
+
+   /*
+* DVFS pre sequence would be here, but in our driver the cdclk code
+* paths should already be setting the appropriate voltage, hence we do
+* nothing here.
+*/
+
+   icl_pll_enable(dev_priv, pll, enable_reg);
+
+   /* DVFS post sequence would be here. See the comment above. */
+}
+
 static void icl_pll_disable(struct drm_i915_private *dev_priv,
struct intel_shared_dpll *pll,
i915_reg_t enable_reg)
@@ -3543,11 +3628,22 @@ static const struct intel_dpll_mgr ehl_pll_mgr = {
.dump_hw_state = icl_dump_hw_state,
 };
 
+static const struct intel_shared_dpll_funcs dkl_pll_funcs = {
+   .enable = dkl_pll_enable,
+   .disable = mg_pll_disable,
+   .get_hw_s

[Intel-gfx] [PATCH 2/5] drm/i915/tgl: re-indent code to prepare for DKL changes

2019-07-25 Thread Lucas De Marchi
The final save operation into pll_state of the calculations done will
be different for DKL PHY. Prepare for that by reindenting code so it's
easier to check for correctness. This one has no change in behavior.

Signed-off-by: Lucas De Marchi 
Reviewed-by: Matt Atwood 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20190713010940.17711-10-lucas.demar...@intel.com
---
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 119 ++
 1 file changed, 66 insertions(+), 53 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c 
b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
index f9bdf8514a53..7eefd63a8b7e 100644
--- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
@@ -2804,60 +2804,73 @@ static bool icl_calc_mg_pll_state(struct 
intel_crtc_state *crtc_state,
}
ssc_steplog = 4;
 
-   pll_state->mg_pll_div0 = (m2div_rem > 0 ? MG_PLL_DIV0_FRACNEN_H : 0) |
- MG_PLL_DIV0_FBDIV_FRAC(m2div_frac) |
- MG_PLL_DIV0_FBDIV_INT(m2div_int);
-
-   pll_state->mg_pll_div1 = MG_PLL_DIV1_IREF_NDIVRATIO(iref_ndiv) |
-MG_PLL_DIV1_DITHER_DIV_2 |
-MG_PLL_DIV1_NDIVRATIO(1) |
-MG_PLL_DIV1_FBPREDIV(m1div);
-
-   pll_state->mg_pll_lf = MG_PLL_LF_TDCTARGETCNT(tdc_targetcnt) |
-  MG_PLL_LF_AFCCNTSEL_512 |
-  MG_PLL_LF_GAINCTRL(1) |
-  MG_PLL_LF_INT_COEFF(int_coeff) |
-  MG_PLL_LF_PROP_COEFF(prop_coeff);
-
-   pll_state->mg_pll_frac_lock = MG_PLL_FRAC_LOCK_TRUELOCK_CRIT_32 |
- MG_PLL_FRAC_LOCK_EARLYLOCK_CRIT_32 |
- MG_PLL_FRAC_LOCK_LOCKTHRESH(10) |
- MG_PLL_FRAC_LOCK_DCODITHEREN |
- MG_PLL_FRAC_LOCK_FEEDFWRDGAIN(feedfwgain);
-   if (use_ssc || m2div_rem > 0)
-   pll_state->mg_pll_frac_lock |= MG_PLL_FRAC_LOCK_FEEDFWRDCAL_EN;
-
-   pll_state->mg_pll_ssc = (use_ssc ? MG_PLL_SSC_EN : 0) |
-   MG_PLL_SSC_TYPE(2) |
-   MG_PLL_SSC_STEPLENGTH(ssc_steplen) |
-   MG_PLL_SSC_STEPNUM(ssc_steplog) |
-   MG_PLL_SSC_FLLEN |
-   MG_PLL_SSC_STEPSIZE(ssc_stepsize);
-
-   pll_state->mg_pll_tdc_coldst_bias = MG_PLL_TDC_COLDST_COLDSTART |
-   MG_PLL_TDC_COLDST_IREFINT_EN |
-   
MG_PLL_TDC_COLDST_REFBIAS_START_PULSE_W(iref_pulse_w) |
-   MG_PLL_TDC_TDCOVCCORR_EN |
-   MG_PLL_TDC_TDCSEL(3);
-
-   pll_state->mg_pll_bias = MG_PLL_BIAS_BIAS_GB_SEL(3) |
-MG_PLL_BIAS_INIT_DCOAMP(0x3F) |
-MG_PLL_BIAS_BIAS_BONUS(10) |
-MG_PLL_BIAS_BIASCAL_EN |
-MG_PLL_BIAS_CTRIM(12) |
-MG_PLL_BIAS_VREF_RDAC(4) |
-MG_PLL_BIAS_IREFTRIM(iref_trim);
-
-   if (refclk_khz == 38400) {
-   pll_state->mg_pll_tdc_coldst_bias_mask = 
MG_PLL_TDC_COLDST_COLDSTART;
-   pll_state->mg_pll_bias_mask = 0;
-   } else {
-   pll_state->mg_pll_tdc_coldst_bias_mask = -1U;
-   pll_state->mg_pll_bias_mask = -1U;
-   }
+   /* write pll_state calculations */
+   {
+   pll_state->mg_pll_div0 =
+   (m2div_rem > 0 ? MG_PLL_DIV0_FRACNEN_H : 0) |
+   MG_PLL_DIV0_FBDIV_FRAC(m2div_frac) |
+   MG_PLL_DIV0_FBDIV_INT(m2div_int);
+
+   pll_state->mg_pll_div1 =
+   MG_PLL_DIV1_IREF_NDIVRATIO(iref_ndiv) |
+   MG_PLL_DIV1_DITHER_DIV_2 |
+   MG_PLL_DIV1_NDIVRATIO(1) |
+   MG_PLL_DIV1_FBPREDIV(m1div);
+
+   pll_state->mg_pll_lf =
+   MG_PLL_LF_TDCTARGETCNT(tdc_targetcnt) |
+   MG_PLL_LF_AFCCNTSEL_512 |
+   MG_PLL_LF_GAINCTRL(1) |
+   MG_PLL_LF_INT_COEFF(int_coeff) |
+   MG_PLL_LF_PROP_COEFF(prop_coeff);
+
+   pll_state->mg_pll_frac_lock =
+   MG_PLL_FRAC_LOCK_TRUELOCK_CRIT_32 |
+   MG_PLL_FRAC_LOCK_EARLYLOCK_CRIT_32 |
+   MG_PLL_FRAC_LOCK_LOCKTHRESH(10) |
+   MG_PLL_FRAC_LOCK_DCODITHEREN |
+   MG_PLL_FRAC_LOCK_FEEDFWRDGAIN(feedfwgain);
+   if (use_ssc || m2div_rem > 0)
+   pll_state->mg_pll_frac_lock |=
+   

[Intel-gfx] [PATCH 5/5] drm/i915/tgl: Add support for dkl pll write

2019-07-25 Thread Lucas De Marchi
From: Vandita Kulkarni 

Add a new function to write to dkl phy pll registers. As per the
spec all the registers are read modify write.

Signed-off-by: Vandita Kulkarni 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 65 ++-
 1 file changed, 64 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c 
b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
index 049b68e0c61c..5606a83326e1 100644
--- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
@@ -3349,7 +3349,70 @@ static void icl_mg_pll_write(struct drm_i915_private 
*dev_priv,
 static void dkl_pll_write(struct drm_i915_private *dev_priv,
  struct intel_shared_dpll *pll)
 {
-   /* TODO */
+   struct intel_dpll_hw_state *hw_state = &pll->state.hw_state;
+   enum tc_port tc_port = icl_pll_id_to_tc_port(pll->info->id);
+   u32 val;
+
+   /*
+* All registers programmed here have the same HIP_INDEX_REG even
+* though on different building block
+*/
+   I915_WRITE(HIP_INDEX_REG(tc_port), 0x2);
+
+   /* All the registers are RMW */
+   val = I915_READ(DKL_REFCLKIN_CTL(tc_port));
+   val &= ~MG_REFCLKIN_CTL_OD_2_MUX_MASK;
+   val |= hw_state->mg_refclkin_ctl;
+   I915_WRITE(DKL_REFCLKIN_CTL(tc_port), val);
+
+   val = I915_READ(DKL_CLKTOP2_CORECLKCTL1(tc_port));
+   val &= ~MG_CLKTOP2_CORECLKCTL1_A_DIVRATIO_MASK;
+   val |= hw_state->mg_clktop2_coreclkctl1;
+   I915_WRITE(DKL_CLKTOP2_CORECLKCTL1(tc_port), val);
+
+   val = I915_READ(DKL_CLKTOP2_HSCLKCTL(tc_port));
+   val &= ~(MG_CLKTOP2_HSCLKCTL_TLINEDRV_CLKSEL_MASK |
+  MG_CLKTOP2_HSCLKCTL_CORE_INPUTSEL_MASK |
+  MG_CLKTOP2_HSCLKCTL_HSDIV_RATIO_MASK |
+  MG_CLKTOP2_HSCLKCTL_DSDIV_RATIO_MASK);
+   val |= hw_state->mg_clktop2_hsclkctl;
+   I915_WRITE(DKL_CLKTOP2_HSCLKCTL(tc_port), val);
+
+   val = I915_READ(DKL_PLL_DIV0(tc_port));
+   val &= ~(DKL_PLL_DIV0_INTEG_COEFF_MASK |
+   DKL_PLL_DIV0_PROP_COEFF_MASK |
+   DKL_PLL_DIV0_FBPREDIV_MASK |
+   DKL_PLL_DIV0_FBDIV_INT_MASK);
+   val |= hw_state->mg_pll_div0;
+   I915_WRITE(DKL_PLL_DIV0(tc_port), val);
+
+   val = I915_READ(DKL_PLL_DIV1(tc_port));
+   val = ~(DKL_PLL_DIV1_IREF_TRIM_MASK |
+   DKL_PLL_DIV1_TDC_TARGET_CNT_MASK);
+   val |= hw_state->mg_pll_div1;
+   I915_WRITE(DKL_PLL_DIV1(tc_port), val);
+
+   val = I915_READ(DKL_PLL_SSC(tc_port));
+   val &= ~(DKL_PLL_SSC_IREF_NDIV_RATIO_MASK |
+   DKL_PLL_SSC_STEP_LEN_MASK |
+   DKL_PLL_SSC_STEP_NUM_MASK |
+   DKL_PLL_SSC_EN);
+   val |= hw_state->mg_pll_ssc;
+   I915_WRITE(DKL_PLL_SSC(tc_port), val);
+
+   val = I915_READ(DKL_PLL_BIAS(tc_port));
+   val &= ~(DKL_PLL_BIAS_FRAC_EN_H |
+   DKL_PLL_BIAS_FBDIV_FRAC_MASK);
+   val |= hw_state->mg_pll_bias;
+   I915_WRITE(DKL_PLL_BIAS(tc_port), val);
+
+   val = I915_READ(DKL_PLL_TDC_COLDST_BIAS(tc_port));
+   val &= ~(DKL_PLL_TDC_SSC_STEP_SIZE_MASK |
+   DKL_PLL_TDC_FEED_FWD_GAIN_MASK);
+   val |= hw_state->mg_pll_tdc_coldst_bias;
+   I915_WRITE(DKL_PLL_TDC_COLDST_BIAS(tc_port), val);
+
+   POSTING_READ(DKL_PLL_TDC_COLDST_BIAS(tc_port));
 }
 
 static void icl_pll_power_enable(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

Re: [Intel-gfx] [PATCH] drm/i915: Replace hangcheck by heartbeats

2019-07-25 Thread Chris Wilson
Quoting Bloomfield, Jon (2019-07-26 00:41:49)
> > -Original Message-
> > From: Chris Wilson 
> > Sent: Thursday, July 25, 2019 4:28 PM
> > To: Bloomfield, Jon ; intel-
> > g...@lists.freedesktop.org
> > Cc: Joonas Lahtinen ; Ursulin, Tvrtko
> > 
> > Subject: RE: [PATCH] drm/i915: Replace hangcheck by heartbeats
> > 
> > Quoting Bloomfield, Jon (2019-07-26 00:21:47)
> > > > -Original Message-
> > > > From: Chris Wilson 
> > > > Sent: Thursday, July 25, 2019 4:17 PM
> > > > To: intel-gfx@lists.freedesktop.org
> > > > Cc: Chris Wilson ; Joonas Lahtinen
> > > > ; Ursulin, Tvrtko
> > ;
> > > > Bloomfield, Jon 
> > > > Subject: [PATCH] drm/i915: Replace hangcheck by heartbeats
> > > >
> > > > Replace sampling the engine state every so often with a periodic
> > > > heartbeat request to measure the health of an engine. This is coupled
> > > > with the forced-preemption to allow long running requests to survive so
> > > > long as they do not block other users.
> > >
> > > Can you explain why we would need this at all if we have 
> > > forced-preemption?
> > > Forced preemption guarantees that an engine cannot interfere with the
> > timely
> > > execution of other contexts. If it hangs, but nothing else wants to use 
> > > the
> > engine
> > > then do we care?
> > 
> > We may not have something else waiting to use the engine, but we may
> > have users waiting for the response where we need to detect the GPU hang
> > to prevent an infinite wait / stuck processes and infinite power drain.
> 
> I'm not sure I buy that logic. Being able to pre-empt doesn't imply it will
> ever end. As written a context can sit forever, apparently making progress
> but never actually returning a response to the user. If the user isn't happy
> with the progress they will kill the process. So we haven't solved the
> user responsiveness here. All we've done is eliminated the potential to
> run one class of otherwise valid workload.

Indeed, one of the conditions I have in mind for endless is rlimits. The
user + admin should be able to specify that a context not exceed so much
runtime, and if we ever get a scheduler, we can write that as a budget
(along with deadlines).
 
> Same argument goes for power. Just because it yields when other contexts
> want to run doesn't mean it won't consume lots of power indefinitely. I can
> equally write a CPU program to burn lots of power, forever, and it won't get
> nuked.

I agree, and continue to dislike letting hogs have free reign.

> TDR made sense when it was the only way to ensure contexts could always
> make forward progress. But force-preemption does everything we need to
> ensure that as far as I can tell.

No. Force-preemption (preemption-by-reset) is arbitrarily shooting mostly
innocent contexts, that had the misfortune to not yield quick enough. It
is data loss and a dos (given enough concentration could probably be used
by third parties to shoot down completely innocent clients), and so
should be used as a last resort shotgun and not be confused as being a
scalpel. And given our history and current situation, resets are still a
liability.
-Chris
___
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/uc: Reorder params in intel_uc_fw_fetch

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

Series: drm/i915/uc: Reorder params in intel_uc_fw_fetch
URL   : https://patchwork.freedesktop.org/series/64265/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6555 -> Patchwork_13758


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Possible fixes 

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

  * igt@i915_module_load@reload-with-fault-injection:
- fi-snb-2520m:   [INCOMPLETE][3] ([fdo#105411]) -> [PASS][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-snb-2520m/igt@i915_module_l...@reload-with-fault-injection.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13758/fi-snb-2520m/igt@i915_module_l...@reload-with-fault-injection.html

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

  * igt@i915_selftest@live_hangcheck:
- fi-kbl-guc: [INCOMPLETE][7] ([fdo#108744]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-kbl-guc/igt@i915_selftest@live_hangcheck.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13758/fi-kbl-guc/igt@i915_selftest@live_hangcheck.html

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7567u:   [WARN][9] ([fdo#109380]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13758/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u:   [FAIL][11] ([fdo#109485]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13758/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html
- {fi-icl-u4}:[FAIL][13] ([fdo#109485]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-icl-u4/igt@kms_chamel...@hdmi-hpd-fast.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13758/fi-icl-u4/igt@kms_chamel...@hdmi-hpd-fast.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-c:
- fi-kbl-7567u:   [SKIP][15] ([fdo#109271]) -> [PASS][16] +23 similar 
issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13758/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- fi-skl-6600u:   [INCOMPLETE][17] ([fdo#104108]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-skl-6600u/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-a.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13758/fi-skl-6600u/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-a.html

  * igt@prime_vgem@basic-gtt:
- fi-icl-u3:  [DMESG-WARN][19] ([fdo#107724]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6555/fi-icl-u3/igt@prime_v...@basic-gtt.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13758/fi-icl-u3/igt@prime_v...@basic-gtt.html

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

  [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109380]: https://bugs.freedesktop.org/show_bug.cgi?id=109380
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485


Participating hosts (52 -> 45)
--

  Additional (1): fi-cfl-8109u 
  Missing(8): fi-kbl-soraka fi-ilk-m540 fi-hsw-

[Intel-gfx] [PATCH 3/3] drm/i915/tgl: handle DP aux interrupts

2019-07-25 Thread Lucas De Marchi
For Tiger Lake the DE Port Interrupt Definition bits changed, so use the
new bit definitions.

Cc: Jose Souza 
Signed-off-by: Lucas De Marchi 
Reviewed-by: Anusha Srivatsa 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20190713010940.17711-7-lucas.demar...@intel.com
---
 drivers/gpu/drm/i915/i915_irq.c | 16 +++-
 drivers/gpu/drm/i915/i915_reg.h |  3 +++
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index e43582be24e6..fbe13bacd5b7 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -2951,19 +2951,25 @@ static void gen11_hpd_irq_handler(struct 
drm_i915_private *dev_priv, u32 iir)
 
 static u32 gen8_de_port_aux_mask(struct drm_i915_private *dev_priv)
 {
-   u32 mask = GEN8_AUX_CHANNEL_A;
+   u32 mask;
+
+   if (INTEL_GEN(dev_priv) >= 12)
+   /* TODO: Add AUX entries for USBC */
+   return TGL_DE_PORT_AUX_DDIA |
+   TGL_DE_PORT_AUX_DDIB |
+   TGL_DE_PORT_AUX_DDIC;
 
+   mask = GEN8_AUX_CHANNEL_A;
if (INTEL_GEN(dev_priv) >= 9)
mask |= GEN9_AUX_CHANNEL_B |
GEN9_AUX_CHANNEL_C |
GEN9_AUX_CHANNEL_D;
 
-   if (IS_CNL_WITH_PORT_F(dev_priv))
+   if (IS_CNL_WITH_PORT_F(dev_priv) || IS_GEN(dev_priv, 11))
mask |= CNL_AUX_CHANNEL_F;
 
-   if (INTEL_GEN(dev_priv) >= 11)
-   mask |= ICL_AUX_CHANNEL_E |
-   CNL_AUX_CHANNEL_F;
+   if (IS_GEN(dev_priv, 11))
+   mask |= ICL_AUX_CHANNEL_E;
 
return mask;
 }
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index cf1d3a2f17a9..7126e3466b58 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -7418,6 +7418,9 @@ enum {
 #define  GEN8_PORT_DP_A_HOTPLUG(1 << 3)
 #define  BXT_DE_PORT_GMBUS (1 << 1)
 #define  GEN8_AUX_CHANNEL_A(1 << 0)
+#define  TGL_DE_PORT_AUX_DDIC  (1 << 2)
+#define  TGL_DE_PORT_AUX_DDIB  (1 << 1)
+#define  TGL_DE_PORT_AUX_DDIA  (1 << 0)
 
 #define GEN8_DE_MISC_ISR _MMIO(0x44460)
 #define GEN8_DE_MISC_IMR _MMIO(0x44464)
-- 
2.21.0

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

[Intel-gfx] [PATCH 2/3] drm/i915/tgl: Update north display hotplug detection to TGL connections

2019-07-25 Thread Lucas De Marchi
From: José Roberto de Souza 

TGL has 3 combophys and 6 TC/TBT ports, so it has 2 more TC/TBT ports
than ICL and the PORT_C on TGL is a combophy.
So here adding a new hpd north table and function to detect long
pulse for TGL.

Signed-off-by: José Roberto de Souza 
Signed-off-by: Lucas De Marchi 
Reviewed-by: Anusha Srivatsa 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20190713010940.17711-6-lucas.demar...@intel.com
---
 drivers/gpu/drm/i915/i915_irq.c | 51 +
 drivers/gpu/drm/i915/i915_reg.h | 12 ++--
 2 files changed, 56 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 34527cdd9388..e43582be24e6 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -58,6 +58,8 @@
  * and related files, but that will be described in separate chapters.
  */
 
+typedef bool (*long_pulse_detect_func)(enum hpd_pin pin, u32 val);
+
 static const u32 hpd_ilk[HPD_NUM_PINS] = {
[HPD_PORT_A] = DE_DP_A_HOTPLUG,
 };
@@ -135,6 +137,15 @@ static const u32 hpd_gen11[HPD_NUM_PINS] = {
[HPD_PORT_F] = GEN11_TC4_HOTPLUG | GEN11_TBT4_HOTPLUG
 };
 
+static const u32 hpd_gen12[HPD_NUM_PINS] = {
+   [HPD_PORT_D] = GEN11_TC1_HOTPLUG | GEN11_TBT1_HOTPLUG,
+   [HPD_PORT_E] = GEN11_TC2_HOTPLUG | GEN11_TBT2_HOTPLUG,
+   [HPD_PORT_F] = GEN11_TC3_HOTPLUG | GEN11_TBT3_HOTPLUG,
+   [HPD_PORT_G] = GEN11_TC4_HOTPLUG | GEN11_TBT4_HOTPLUG,
+   [HPD_PORT_H] = GEN12_TC5_HOTPLUG | GEN12_TBT5_HOTPLUG,
+   [HPD_PORT_I] = GEN12_TC6_HOTPLUG | GEN12_TBT6_HOTPLUG
+};
+
 static const u32 hpd_icp[HPD_NUM_PINS] = {
[HPD_PORT_A] = SDE_DDIA_HOTPLUG_ICP,
[HPD_PORT_B] = SDE_DDIB_HOTPLUG_ICP,
@@ -1694,6 +1705,26 @@ static bool gen11_port_hotplug_long_detect(enum hpd_pin 
pin, u32 val)
}
 }
 
+static bool gen12_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
+{
+   switch (pin) {
+   case HPD_PORT_D:
+   return val & GEN11_HOTPLUG_CTL_LONG_DETECT(PORT_TC1);
+   case HPD_PORT_E:
+   return val & GEN11_HOTPLUG_CTL_LONG_DETECT(PORT_TC2);
+   case HPD_PORT_F:
+   return val & GEN11_HOTPLUG_CTL_LONG_DETECT(PORT_TC3);
+   case HPD_PORT_G:
+   return val & GEN11_HOTPLUG_CTL_LONG_DETECT(PORT_TC4);
+   case HPD_PORT_H:
+   return val & GEN11_HOTPLUG_CTL_LONG_DETECT(PORT_TC5);
+   case HPD_PORT_I:
+   return val & GEN11_HOTPLUG_CTL_LONG_DETECT(PORT_TC6);
+   default:
+   return false;
+   }
+}
+
 static bool bxt_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
 {
switch (pin) {
@@ -2881,6 +2912,16 @@ static void gen11_hpd_irq_handler(struct 
drm_i915_private *dev_priv, u32 iir)
u32 pin_mask = 0, long_mask = 0;
u32 trigger_tc = iir & GEN11_DE_TC_HOTPLUG_MASK;
u32 trigger_tbt = iir & GEN11_DE_TBT_HOTPLUG_MASK;
+   long_pulse_detect_func long_pulse_detect;
+   const u32 *hpd;
+
+   if (INTEL_GEN(dev_priv) >= 12) {
+   long_pulse_detect = gen12_port_hotplug_long_detect;
+   hpd = hpd_gen12;
+   } else {
+   long_pulse_detect = gen11_port_hotplug_long_detect;
+   hpd = hpd_gen11;
+   }
 
if (trigger_tc) {
u32 dig_hotplug_reg;
@@ -2889,8 +2930,7 @@ static void gen11_hpd_irq_handler(struct drm_i915_private 
*dev_priv, u32 iir)
I915_WRITE(GEN11_TC_HOTPLUG_CTL, dig_hotplug_reg);
 
intel_get_hpd_pins(dev_priv, &pin_mask, &long_mask, trigger_tc,
-  dig_hotplug_reg, hpd_gen11,
-  gen11_port_hotplug_long_detect);
+  dig_hotplug_reg, hpd, long_pulse_detect);
}
 
if (trigger_tbt) {
@@ -2900,8 +2940,7 @@ static void gen11_hpd_irq_handler(struct drm_i915_private 
*dev_priv, u32 iir)
I915_WRITE(GEN11_TBT_HOTPLUG_CTL, dig_hotplug_reg);
 
intel_get_hpd_pins(dev_priv, &pin_mask, &long_mask, trigger_tbt,
-  dig_hotplug_reg, hpd_gen11,
-  gen11_port_hotplug_long_detect);
+  dig_hotplug_reg, hpd, long_pulse_detect);
}
 
if (pin_mask)
@@ -3928,9 +3967,11 @@ static void gen11_hpd_detection_setup(struct 
drm_i915_private *dev_priv)
 static void gen11_hpd_irq_setup(struct drm_i915_private *dev_priv)
 {
u32 hotplug_irqs, enabled_irqs;
+   const u32 *hpd;
u32 val;
 
-   enabled_irqs = intel_hpd_enabled_irqs(dev_priv, hpd_gen11);
+   hpd = INTEL_GEN(dev_priv) >= 12 ? hpd_gen12 : hpd_gen11;
+   enabled_irqs = intel_hpd_enabled_irqs(dev_priv, hpd);
hotplug_irqs = GEN11_DE_TC_HOTPLUG_MASK | GEN11_DE_TBT_HOTPLUG_MASK;
 
val = I915_READ(GEN11_DE_HPD_IMR);
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index c5

[Intel-gfx] [PATCH 0/3] Tiger Lake: interrupts

2019-07-25 Thread Lucas De Marchi
North and south interrupts. Updated version of the patches extracted
from https://patchwork.freedesktop.org/series/63670/

José Roberto de Souza (1):
  drm/i915/tgl: Update north display hotplug detection to TGL
connections

Lucas De Marchi (2):
  drm/i915/tgl: Add hpd interrupt handling
  drm/i915/tgl: handle DP aux interrupts

 drivers/gpu/drm/i915/display/intel_hotplug.c |   6 +
 drivers/gpu/drm/i915/i915_drv.h  |   4 +
 drivers/gpu/drm/i915/i915_irq.c  | 195 +--
 drivers/gpu/drm/i915/i915_reg.h  |  43 +++-
 4 files changed, 224 insertions(+), 24 deletions(-)

-- 
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/tgl: Add hpd interrupt handling

2019-07-25 Thread Lucas De Marchi
Add hotdplug detection for all ports on TGP. icp_hpd_detection_setup()
is refactored to be shared with TGP.

While we increase the number of pins, add a BUILD_BUG_ON() to avoid
going over the number of bits allowed.

v2: use BITS_PER_TYPE and correct type for BUILD_BUG_ON() check
(requested by Ville)

Cc: Ville Syrjälä 
Cc: Jose Souza 
Cc: Rodrigo Vivi 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/display/intel_hotplug.c |   6 +
 drivers/gpu/drm/i915/i915_drv.h  |   4 +
 drivers/gpu/drm/i915/i915_irq.c  | 128 +--
 drivers/gpu/drm/i915/i915_reg.h  |  28 +++-
 4 files changed, 154 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c 
b/drivers/gpu/drm/i915/display/intel_hotplug.c
index 342587d91d57..c844ae4480af 100644
--- a/drivers/gpu/drm/i915/display/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
@@ -104,6 +104,12 @@ enum hpd_pin intel_hpd_pin_default(struct drm_i915_private 
*dev_priv,
if (IS_CNL_WITH_PORT_F(dev_priv))
return HPD_PORT_E;
return HPD_PORT_F;
+   case PORT_G:
+   return HPD_PORT_G;
+   case PORT_H:
+   return HPD_PORT_H;
+   case PORT_I:
+   return HPD_PORT_I;
default:
MISSING_CASE(port);
return HPD_NONE;
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 59d4a1146039..a2e6b495f033 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -153,6 +153,10 @@ enum hpd_pin {
HPD_PORT_D,
HPD_PORT_E,
HPD_PORT_F,
+   HPD_PORT_G,
+   HPD_PORT_H,
+   HPD_PORT_I,
+
HPD_NUM_PINS
 };
 
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index a17d4fd17962..34527cdd9388 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -150,6 +150,18 @@ static const u32 hpd_mcc[HPD_NUM_PINS] = {
[HPD_PORT_C] = SDE_TC1_HOTPLUG_ICP
 };
 
+static const u32 hpd_tgp[HPD_NUM_PINS] = {
+   [HPD_PORT_A] = SDE_DDIA_HOTPLUG_ICP,
+   [HPD_PORT_B] = SDE_DDIB_HOTPLUG_ICP,
+   [HPD_PORT_C] = SDE_DDIC_HOTPLUG_TGP,
+   [HPD_PORT_D] = SDE_TC1_HOTPLUG_ICP,
+   [HPD_PORT_E] = SDE_TC2_HOTPLUG_ICP,
+   [HPD_PORT_F] = SDE_TC3_HOTPLUG_ICP,
+   [HPD_PORT_G] = SDE_TC4_HOTPLUG_ICP,
+   [HPD_PORT_H] = SDE_TC5_HOTPLUG_TGP,
+   [HPD_PORT_I] = SDE_TC6_HOTPLUG_TGP,
+};
+
 static void gen3_irq_reset(struct intel_uncore *uncore, i915_reg_t imr,
   i915_reg_t iir, i915_reg_t ier)
 {
@@ -1724,6 +1736,40 @@ static bool icp_tc_port_hotplug_long_detect(enum hpd_pin 
pin, u32 val)
}
 }
 
+static bool tgp_ddi_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
+{
+   switch (pin) {
+   case HPD_PORT_A:
+   return val & ICP_DDIA_HPD_LONG_DETECT;
+   case HPD_PORT_B:
+   return val & ICP_DDIB_HPD_LONG_DETECT;
+   case HPD_PORT_C:
+   return val & TGP_DDIC_HPD_LONG_DETECT;
+   default:
+   return false;
+   }
+}
+
+static bool tgp_tc_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
+{
+   switch (pin) {
+   case HPD_PORT_D:
+   return val & ICP_TC_HPD_LONG_DETECT(PORT_TC1);
+   case HPD_PORT_E:
+   return val & ICP_TC_HPD_LONG_DETECT(PORT_TC2);
+   case HPD_PORT_F:
+   return val & ICP_TC_HPD_LONG_DETECT(PORT_TC3);
+   case HPD_PORT_G:
+   return val & ICP_TC_HPD_LONG_DETECT(PORT_TC4);
+   case HPD_PORT_H:
+   return val & ICP_TC_HPD_LONG_DETECT(PORT_TC5);
+   case HPD_PORT_I:
+   return val & ICP_TC_HPD_LONG_DETECT(PORT_TC6);
+   default:
+   return false;
+   }
+}
+
 static bool spt_port_hotplug2_long_detect(enum hpd_pin pin, u32 val)
 {
switch (pin) {
@@ -1803,6 +1849,8 @@ static void intel_get_hpd_pins(struct drm_i915_private 
*dev_priv,
 {
enum hpd_pin pin;
 
+   BUILD_BUG_ON(BITS_PER_TYPE(*pin_mask) < HPD_NUM_PINS);
+
for_each_hpd_pin(pin) {
if ((hpd[pin] & hotplug_trigger) == 0)
continue;
@@ -2561,6 +2609,43 @@ static void icp_irq_handler(struct drm_i915_private 
*dev_priv, u32 pch_iir,
gmbus_irq_handler(dev_priv);
 }
 
+static void tgp_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
+{
+   u32 ddi_hotplug_trigger = pch_iir & SDE_DDI_MASK_TGP;
+   u32 tc_hotplug_trigger = pch_iir & SDE_TC_MASK_TGP;
+   u32 pin_mask = 0, long_mask = 0;
+
+   if (ddi_hotplug_trigger) {
+   u32 dig_hotplug_reg;
+
+   dig_hotplug_reg = I915_READ(SHOTPLUG_CTL_DDI);
+   I915_WRITE(SHOTPLUG_CTL_DDI, dig_hotplug_reg);
+
+   intel_get_hpd_pins(dev_priv, &pin_mask, &long_mask,
+  ddi_hotplug_trigg

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Capture vma contents outside of spinlock (rev2)

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

Series: drm/i915: Capture vma contents outside of spinlock (rev2)
URL   : https://patchwork.freedesktop.org/series/64256/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915: Capture vma contents outside of spinlock
-O:drivers/gpu/drm/i915/i915_gpu_error.c:1007:21: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_gpu_error.c:1007:21: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_gpu_error.c:1007:21: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_gpu_error.c:1007:21: warning: expression using 
sizeof(void)

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

[Intel-gfx] [CI 1/3] drm/i915/tgl: skip setting PORT_CL_DW12_* on initialization

2019-07-25 Thread Lucas De Marchi
According to the spec when initializing the display in TGL we should not
set PORT_CL_DW12 for the Aux channel of the combo PHYs. We will re-use the
power well hooks from ICL so only set this register on gen < 12.

v2: Generalize check for gen 12 (suggested by José)
v3: Rebase after enum phy introduction

Cc: Imre Deak 
Cc: Matt Roper 
Signed-off-by: Lucas De Marchi 
Reviewed-by: José Roberto de Souza 
Reviewed-by: Matt Atwood 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20190713010940.17711-2-lucas.demar...@intel.com
---
 drivers/gpu/drm/i915/display/intel_display_power.c | 12 
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c 
b/drivers/gpu/drm/i915/display/intel_display_power.c
index 93a148684c53..dd2a50b8ba0a 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -458,8 +458,10 @@ icl_combo_phy_aux_power_well_enable(struct 
drm_i915_private *dev_priv,
val = I915_READ(regs->driver);
I915_WRITE(regs->driver, val | HSW_PWR_WELL_CTL_REQ(pw_idx));
 
-   val = I915_READ(ICL_PORT_CL_DW12(phy));
-   I915_WRITE(ICL_PORT_CL_DW12(phy), val | ICL_LANE_ENABLE_AUX);
+   if (INTEL_GEN(dev_priv) < 12) {
+   val = I915_READ(ICL_PORT_CL_DW12(phy));
+   I915_WRITE(ICL_PORT_CL_DW12(phy), val | ICL_LANE_ENABLE_AUX);
+   }
 
hsw_wait_for_power_well_enable(dev_priv, power_well);
 
@@ -487,8 +489,10 @@ icl_combo_phy_aux_power_well_disable(struct 
drm_i915_private *dev_priv,
enum phy phy = ICL_AUX_PW_TO_PHY(pw_idx);
u32 val;
 
-   val = I915_READ(ICL_PORT_CL_DW12(phy));
-   I915_WRITE(ICL_PORT_CL_DW12(phy), val & ~ICL_LANE_ENABLE_AUX);
+   if (INTEL_GEN(dev_priv) < 12) {
+   val = I915_READ(ICL_PORT_CL_DW12(phy));
+   I915_WRITE(ICL_PORT_CL_DW12(phy), val & ~ICL_LANE_ENABLE_AUX);
+   }
 
val = I915_READ(regs->driver);
I915_WRITE(regs->driver, val & ~HSW_PWR_WELL_CTL_REQ(pw_idx));
-- 
2.21.0

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

[Intel-gfx] [CI 3/3] drm/i915/tgl: update ddi/tc clock_off bits

2019-07-25 Thread Lucas De Marchi
From: Mahesh Kumar 

In GEN 12 PORT_C DDI clk_off bit is not equally distanced to A/B,
it's at offset 24. Similarly TC port (5/6) clk off bits are at
offset 22/23. Extend the macros to cover the additional ports.

Cc: Matt Roper 
Signed-off-by: Mahesh Kumar 
Signed-off-by: Lucas De Marchi 
Reviewed-by: Anusha Srivatsa 
Reviewed-by: Matt Atwood 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20190713010940.17711-4-lucas.demar...@intel.com
---
 drivers/gpu/drm/i915/i915_reg.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 3035a48a2527..d2b76121d863 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -9742,8 +9742,9 @@ enum skl_power_gate {
 
 #define ICL_DPCLKA_CFGCR0  _MMIO(0x164280)
 #define  ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy)(1 << _PICK(phy, 10, 11, 24))
-#define  ICL_DPCLKA_CFGCR0_TC_CLK_OFF(tc_port) (1 << ((tc_port) == PORT_TC4 ? \
- 21 : (tc_port) + 12))
+#define  ICL_DPCLKA_CFGCR0_TC_CLK_OFF(tc_port) (1 << ((tc_port) < PORT_TC4 ? \
+  (tc_port) + 12 : \
+  (tc_port) - PORT_TC4 + 
21))
 #define  ICL_DPCLKA_CFGCR0_DDI_CLK_SEL_SHIFT(phy)  ((phy) * 2)
 #define  ICL_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy)   (3 << 
ICL_DPCLKA_CFGCR0_DDI_CLK_SEL_SHIFT(phy))
 #define  ICL_DPCLKA_CFGCR0_DDI_CLK_SEL(pll, phy)   ((pll) << 
ICL_DPCLKA_CFGCR0_DDI_CLK_SEL_SHIFT(phy))
-- 
2.21.0

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

Re: [Intel-gfx] [PATCH] drm/i915: Replace hangcheck by heartbeats

2019-07-25 Thread Bloomfield, Jon
> -Original Message-
> From: Chris Wilson 
> Sent: Thursday, July 25, 2019 4:28 PM
> To: Bloomfield, Jon ; intel-
> g...@lists.freedesktop.org
> Cc: Joonas Lahtinen ; Ursulin, Tvrtko
> 
> Subject: RE: [PATCH] drm/i915: Replace hangcheck by heartbeats
> 
> Quoting Bloomfield, Jon (2019-07-26 00:21:47)
> > > -Original Message-
> > > From: Chris Wilson 
> > > Sent: Thursday, July 25, 2019 4:17 PM
> > > To: intel-gfx@lists.freedesktop.org
> > > Cc: Chris Wilson ; Joonas Lahtinen
> > > ; Ursulin, Tvrtko
> ;
> > > Bloomfield, Jon 
> > > Subject: [PATCH] drm/i915: Replace hangcheck by heartbeats
> > >
> > > Replace sampling the engine state every so often with a periodic
> > > heartbeat request to measure the health of an engine. This is coupled
> > > with the forced-preemption to allow long running requests to survive so
> > > long as they do not block other users.
> >
> > Can you explain why we would need this at all if we have forced-preemption?
> > Forced preemption guarantees that an engine cannot interfere with the
> timely
> > execution of other contexts. If it hangs, but nothing else wants to use the
> engine
> > then do we care?
> 
> We may not have something else waiting to use the engine, but we may
> have users waiting for the response where we need to detect the GPU hang
> to prevent an infinite wait / stuck processes and infinite power drain.

I'm not sure I buy that logic. Being able to pre-empt doesn't imply it will
ever end. As written a context can sit forever, apparently making progress
but never actually returning a response to the user. If the user isn't happy
with the progress they will kill the process. So we haven't solved the
user responsiveness here. All we've done is eliminated the potential to
run one class of otherwise valid workload.

Same argument goes for power. Just because it yields when other contexts
want to run doesn't mean it won't consume lots of power indefinitely. I can
equally write a CPU program to burn lots of power, forever, and it won't get
nuked.

TDR made sense when it was the only way to ensure contexts could always
make forward progress. But force-preemption does everything we need to
ensure that as far as I can tell.

> 
> There is also the secondary task of flushing idle barriers.
> 
> > Power, obviously. But I'm not everything can be pre-empted. If a compute
> > context is running on an engine, and no other contexts require that engine,
> > then is it  right to nuke it just because it's busy in a long running 
> > thread?
> 
> Yes. Unless you ask that we implement GPU-isolation where not even the
> kernel is allowed to use a particular set of engines.
> -Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] [CI 2/3] drm/i915/tgl: select correct bit for port select

2019-07-25 Thread Lucas De Marchi
From: Mahesh Kumar 

Bit definitions for port-select got changed for TRANS_CLK_SEL &
TRANS_DDI_FUNC_CTL registers in TGL.

v2 (Lucas):
  - Nuke TRANS_DDI_PORT_NONE since it's 0: we are already clearing
{TGL_,}TRANS_DDI_PORT_MASK (suggested by Ville)
  - Also cover haswell_get_ddi_port_state() in intel_display.c that was
missing
  - Define macros using the _SHIFT macros so we don't lose other users

Cc: Ville Syrjälä 
Signed-off-by: Mahesh Kumar 
Signed-off-by: Lucas De Marchi 
Reviewed-by: Anusha Srivatsa 
Reviewed-by: Matt Atwood 
Link: 
https://patchwork.freedesktop.org/patch/msgid/20190713010940.17711-3-lucas.demar...@intel.com
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 47 +++-
 drivers/gpu/drm/i915/display/intel_display.c |  6 ++-
 drivers/gpu/drm/i915/i915_reg.h  | 11 +++--
 3 files changed, 50 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 18bc0f2690c9..c6f38c7b397d 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -1773,7 +1773,10 @@ void intel_ddi_enable_transcoder_func(const struct 
intel_crtc_state *crtc_state)
 
/* Enable TRANS_DDI_FUNC_CTL for the pipe to work in HDMI mode */
temp = TRANS_DDI_FUNC_ENABLE;
-   temp |= TRANS_DDI_SELECT_PORT(port);
+   if (INTEL_GEN(dev_priv) >= 12)
+   temp |= TGL_TRANS_DDI_SELECT_PORT(port);
+   else
+   temp |= TRANS_DDI_SELECT_PORT(port);
 
switch (crtc_state->pipe_bpp) {
case 18:
@@ -1853,8 +1856,13 @@ void intel_ddi_disable_transcoder_func(const struct 
intel_crtc_state *crtc_state
i915_reg_t reg = TRANS_DDI_FUNC_CTL(cpu_transcoder);
u32 val = I915_READ(reg);
 
-   val &= ~(TRANS_DDI_FUNC_ENABLE | TRANS_DDI_PORT_MASK | 
TRANS_DDI_DP_VC_PAYLOAD_ALLOC);
-   val |= TRANS_DDI_PORT_NONE;
+   if (INTEL_GEN(dev_priv) >= 12) {
+   val &= ~(TRANS_DDI_FUNC_ENABLE | TGL_TRANS_DDI_PORT_MASK |
+TRANS_DDI_DP_VC_PAYLOAD_ALLOC);
+   } else {
+   val &= ~(TRANS_DDI_FUNC_ENABLE | TRANS_DDI_PORT_MASK |
+TRANS_DDI_DP_VC_PAYLOAD_ALLOC);
+   }
I915_WRITE(reg, val);
 
if (dev_priv->quirks & QUIRK_INCREASE_DDI_DISABLED_TIME &&
@@ -2006,10 +2014,19 @@ static void intel_ddi_get_encoder_pipes(struct 
intel_encoder *encoder,
mst_pipe_mask = 0;
for_each_pipe(dev_priv, p) {
enum transcoder cpu_transcoder = (enum transcoder)p;
+   unsigned int port_mask, ddi_select;
+
+   if (INTEL_GEN(dev_priv) >= 12) {
+   port_mask = TGL_TRANS_DDI_PORT_MASK;
+   ddi_select = TGL_TRANS_DDI_SELECT_PORT(port);
+   } else {
+   port_mask = TRANS_DDI_PORT_MASK;
+   ddi_select = TRANS_DDI_SELECT_PORT(port);
+   }
 
tmp = I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder));
 
-   if ((tmp & TRANS_DDI_PORT_MASK) != TRANS_DDI_SELECT_PORT(port))
+   if ((tmp & port_mask) != ddi_select)
continue;
 
if ((tmp & TRANS_DDI_MODE_SELECT_MASK) ==
@@ -2126,9 +2143,14 @@ void intel_ddi_enable_pipe_clock(const struct 
intel_crtc_state *crtc_state)
enum port port = encoder->port;
enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
 
-   if (cpu_transcoder != TRANSCODER_EDP)
-   I915_WRITE(TRANS_CLK_SEL(cpu_transcoder),
-  TRANS_CLK_SEL_PORT(port));
+   if (cpu_transcoder != TRANSCODER_EDP) {
+   if (INTEL_GEN(dev_priv) >= 12)
+   I915_WRITE(TRANS_CLK_SEL(cpu_transcoder),
+  TGL_TRANS_CLK_SEL_PORT(port));
+   else
+   I915_WRITE(TRANS_CLK_SEL(cpu_transcoder),
+  TRANS_CLK_SEL_PORT(port));
+   }
 }
 
 void intel_ddi_disable_pipe_clock(const struct intel_crtc_state *crtc_state)
@@ -2136,9 +2158,14 @@ void intel_ddi_disable_pipe_clock(const struct 
intel_crtc_state *crtc_state)
struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev);
enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
 
-   if (cpu_transcoder != TRANSCODER_EDP)
-   I915_WRITE(TRANS_CLK_SEL(cpu_transcoder),
-  TRANS_CLK_SEL_DISABLED);
+   if (cpu_transcoder != TRANSCODER_EDP) {
+   if (INTEL_GEN(dev_priv) >= 12)
+   I915_WRITE(TRANS_CLK_SEL(cpu_transcoder),
+  TGL_TRANS_CLK_SEL_DISABLED);
+   else
+   I915_WRITE(TRANS_CLK_SEL(cpu_transcoder),
+  TRANS_CLK_SEL_DISABLED);
+   }
 }
 
 static void _skl_ddi_set_iboost(struct drm_i915_private *dev_priv,
di

Re: [Intel-gfx] [PATCH] drm/i915: Replace hangcheck by heartbeats

2019-07-25 Thread Chris Wilson
Quoting Bloomfield, Jon (2019-07-26 00:21:47)
> > -Original Message-
> > From: Chris Wilson 
> > Sent: Thursday, July 25, 2019 4:17 PM
> > To: intel-gfx@lists.freedesktop.org
> > Cc: Chris Wilson ; Joonas Lahtinen
> > ; Ursulin, Tvrtko 
> > ;
> > Bloomfield, Jon 
> > Subject: [PATCH] drm/i915: Replace hangcheck by heartbeats
> > 
> > Replace sampling the engine state every so often with a periodic
> > heartbeat request to measure the health of an engine. This is coupled
> > with the forced-preemption to allow long running requests to survive so
> > long as they do not block other users.
> 
> Can you explain why we would need this at all if we have forced-preemption?
> Forced preemption guarantees that an engine cannot interfere with the timely
> execution of other contexts. If it hangs, but nothing else wants to use the 
> engine
> then do we care?

We may not have something else waiting to use the engine, but we may
have users waiting for the response where we need to detect the GPU hang
to prevent an infinite wait / stuck processes and infinite power drain.

There is also the secondary task of flushing idle barriers.

> Power, obviously. But I'm not everything can be pre-empted. If a compute
> context is running on an engine, and no other contexts require that engine,
> then is it  right to nuke it just because it's busy in a long running thread?

Yes. Unless you ask that we implement GPU-isolation where not even the
kernel is allowed to use a particular set of engines.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Re: [Intel-gfx] [PATCH] drm/i915: Replace hangcheck by heartbeats

2019-07-25 Thread Bloomfield, Jon
> -Original Message-
> From: Chris Wilson 
> Sent: Thursday, July 25, 2019 4:17 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: Chris Wilson ; Joonas Lahtinen
> ; Ursulin, Tvrtko ;
> Bloomfield, Jon 
> Subject: [PATCH] drm/i915: Replace hangcheck by heartbeats
> 
> Replace sampling the engine state every so often with a periodic
> heartbeat request to measure the health of an engine. This is coupled
> with the forced-preemption to allow long running requests to survive so
> long as they do not block other users.

Can you explain why we would need this at all if we have forced-preemption?
Forced preemption guarantees that an engine cannot interfere with the timely
execution of other contexts. If it hangs, but nothing else wants to use the 
engine
then do we care?

Power, obviously. But I'm not everything can be pre-empted. If a compute
context is running on an engine, and no other contexts require that engine,
then is it  right to nuke it just because it's busy in a long running thread?

> 
> Signed-off-by: Chris Wilson 
> Cc: Joonas Lahtinen 
> Cc: Tvrtko Ursulin 
> Cc: Jon Bloomfield 
> ---
> Note, strictly this still requires struct_mutex-free retirement for the
> corner case where the idle-worker is ineffective and we get a backlog of
> requests on the kernel ring. Or if the legacy ringbuffer is full...
> When we are able to retire from outside of struct_mutex we can do the
> full idle-barrier and idle-work from here.
> ---
>  drivers/gpu/drm/i915/Kconfig.profile  |  11 +
>  drivers/gpu/drm/i915/Makefile |   2 +-
>  drivers/gpu/drm/i915/gem/i915_gem_pm.c|   2 -
>  drivers/gpu/drm/i915/gt/intel_engine.h|  32 --
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c |  10 +-
>  .../gpu/drm/i915/gt/intel_engine_heartbeat.c  |  99 +
>  .../gpu/drm/i915/gt/intel_engine_heartbeat.h  |  17 +
>  drivers/gpu/drm/i915/gt/intel_engine_pm.c |   5 +-
>  drivers/gpu/drm/i915/gt/intel_engine_types.h  |  14 +-
>  drivers/gpu/drm/i915/gt/intel_gt.c|   1 -
>  drivers/gpu/drm/i915/gt/intel_gt.h|   4 -
>  drivers/gpu/drm/i915/gt/intel_gt_pm.c |   2 -
>  drivers/gpu/drm/i915/gt/intel_gt_types.h  |   9 -
>  drivers/gpu/drm/i915/gt/intel_hangcheck.c | 360 --
>  drivers/gpu/drm/i915/gt/intel_reset.c |   3 +-
>  drivers/gpu/drm/i915/gt/selftest_hangcheck.c  |   4 -
>  drivers/gpu/drm/i915/i915_debugfs.c   |  86 -
>  drivers/gpu/drm/i915/i915_drv.c   |   6 +-
>  drivers/gpu/drm/i915/i915_drv.h   |   1 -
>  drivers/gpu/drm/i915/i915_gpu_error.c |  37 +-
>  drivers/gpu/drm/i915/i915_gpu_error.h |   2 -
>  drivers/gpu/drm/i915/i915_params.c|   5 -
>  drivers/gpu/drm/i915/i915_params.h|   1 -
>  23 files changed, 151 insertions(+), 562 deletions(-)
>  create mode 100644 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
>  create mode 100644 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h
>  delete mode 100644 drivers/gpu/drm/i915/gt/intel_hangcheck.c
> 
> diff --git a/drivers/gpu/drm/i915/Kconfig.profile
> b/drivers/gpu/drm/i915/Kconfig.profile
> index 3184e8491333..aafb57f84169 100644
> --- a/drivers/gpu/drm/i915/Kconfig.profile
> +++ b/drivers/gpu/drm/i915/Kconfig.profile
> @@ -37,3 +37,14 @@ config DRM_I915_PREEMPT_TIMEOUT
> to execute.
> 
> May be 0 to disable the timeout.
> +
> +config DRM_I915_HEARTBEAT_INTERVAL
> + int "Interval between heartbeat pulses (ms)"
> + default 2500 # microseconds
> + help
> +   While active the driver uses a periodic request, a heartbeat, to
> +   check the wellness of the GPU and to regularly flush state changes
> +   (idle barriers).
> +
> +   May be 0 to disable heartbeats and therefore disable automatic GPU
> +   hang detection.
> diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
> index 524516251a40..18201852d68d 100644
> --- a/drivers/gpu/drm/i915/Makefile
> +++ b/drivers/gpu/drm/i915/Makefile
> @@ -73,10 +73,10 @@ gt-y += \
>   gt/intel_breadcrumbs.o \
>   gt/intel_context.o \
>   gt/intel_engine_cs.o \
> + gt/intel_engine_heartbeat.o \
>   gt/intel_engine_pm.o \
>   gt/intel_gt.o \
>   gt/intel_gt_pm.o \
> - gt/intel_hangcheck.o \
>   gt/intel_lrc.o \
>   gt/intel_renderstate.o \
>   gt/intel_reset.o \
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pm.c
> b/drivers/gpu/drm/i915/gem/i915_gem_pm.c
> index b5561cbdc5ea..a5a0aefcc04c 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_pm.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_pm.c
> @@ -170,8 +170,6 @@ void i915_gem_suspend(struct drm_i915_private
> *i915)
>   GEM_BUG_ON(i915->gt.awake);
>   flush_work(&i915->gem.idle_work);
> 
> - cancel_delayed_work_sync(&i915->gt.hangcheck.work);
> -
>   i915_gem_drain_freed_objects(i915);
> 
>   intel_uc_suspend(&i915->gt.uc);
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h
> b

[Intel-gfx] [PATCH] drm/i915: Replace hangcheck by heartbeats

2019-07-25 Thread Chris Wilson
Replace sampling the engine state every so often with a periodic
heartbeat request to measure the health of an engine. This is coupled
with the forced-preemption to allow long running requests to survive so
long as they do not block other users.

Signed-off-by: Chris Wilson 
Cc: Joonas Lahtinen 
Cc: Tvrtko Ursulin 
Cc: Jon Bloomfield 
---
Note, strictly this still requires struct_mutex-free retirement for the
corner case where the idle-worker is ineffective and we get a backlog of
requests on the kernel ring. Or if the legacy ringbuffer is full...
When we are able to retire from outside of struct_mutex we can do the
full idle-barrier and idle-work from here.
---
 drivers/gpu/drm/i915/Kconfig.profile  |  11 +
 drivers/gpu/drm/i915/Makefile |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_pm.c|   2 -
 drivers/gpu/drm/i915/gt/intel_engine.h|  32 --
 drivers/gpu/drm/i915/gt/intel_engine_cs.c |  10 +-
 .../gpu/drm/i915/gt/intel_engine_heartbeat.c  |  99 +
 .../gpu/drm/i915/gt/intel_engine_heartbeat.h  |  17 +
 drivers/gpu/drm/i915/gt/intel_engine_pm.c |   5 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h  |  14 +-
 drivers/gpu/drm/i915/gt/intel_gt.c|   1 -
 drivers/gpu/drm/i915/gt/intel_gt.h|   4 -
 drivers/gpu/drm/i915/gt/intel_gt_pm.c |   2 -
 drivers/gpu/drm/i915/gt/intel_gt_types.h  |   9 -
 drivers/gpu/drm/i915/gt/intel_hangcheck.c | 360 --
 drivers/gpu/drm/i915/gt/intel_reset.c |   3 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c  |   4 -
 drivers/gpu/drm/i915/i915_debugfs.c   |  86 -
 drivers/gpu/drm/i915/i915_drv.c   |   6 +-
 drivers/gpu/drm/i915/i915_drv.h   |   1 -
 drivers/gpu/drm/i915/i915_gpu_error.c |  37 +-
 drivers/gpu/drm/i915/i915_gpu_error.h |   2 -
 drivers/gpu/drm/i915/i915_params.c|   5 -
 drivers/gpu/drm/i915/i915_params.h|   1 -
 23 files changed, 151 insertions(+), 562 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h
 delete mode 100644 drivers/gpu/drm/i915/gt/intel_hangcheck.c

diff --git a/drivers/gpu/drm/i915/Kconfig.profile 
b/drivers/gpu/drm/i915/Kconfig.profile
index 3184e8491333..aafb57f84169 100644
--- a/drivers/gpu/drm/i915/Kconfig.profile
+++ b/drivers/gpu/drm/i915/Kconfig.profile
@@ -37,3 +37,14 @@ config DRM_I915_PREEMPT_TIMEOUT
  to execute.
 
  May be 0 to disable the timeout.
+
+config DRM_I915_HEARTBEAT_INTERVAL
+   int "Interval between heartbeat pulses (ms)"
+   default 2500 # microseconds
+   help
+ While active the driver uses a periodic request, a heartbeat, to
+ check the wellness of the GPU and to regularly flush state changes
+ (idle barriers).
+
+ May be 0 to disable heartbeats and therefore disable automatic GPU
+ hang detection.
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 524516251a40..18201852d68d 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -73,10 +73,10 @@ gt-y += \
gt/intel_breadcrumbs.o \
gt/intel_context.o \
gt/intel_engine_cs.o \
+   gt/intel_engine_heartbeat.o \
gt/intel_engine_pm.o \
gt/intel_gt.o \
gt/intel_gt_pm.o \
-   gt/intel_hangcheck.o \
gt/intel_lrc.o \
gt/intel_renderstate.o \
gt/intel_reset.o \
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pm.c 
b/drivers/gpu/drm/i915/gem/i915_gem_pm.c
index b5561cbdc5ea..a5a0aefcc04c 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_pm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_pm.c
@@ -170,8 +170,6 @@ void i915_gem_suspend(struct drm_i915_private *i915)
GEM_BUG_ON(i915->gt.awake);
flush_work(&i915->gem.idle_work);
 
-   cancel_delayed_work_sync(&i915->gt.hangcheck.work);
-
i915_gem_drain_freed_objects(i915);
 
intel_uc_suspend(&i915->gt.uc);
diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h 
b/drivers/gpu/drm/i915/gt/intel_engine.h
index db5c73ce86ee..38eeb4320c97 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine.h
@@ -90,38 +90,6 @@ struct drm_printer;
 /* seqno size is actually only a uint32, but since we plan to use MI_FLUSH_DW 
to
  * do the writes, and that must have qw aligned offsets, simply pretend it's 
8b.
  */
-enum intel_engine_hangcheck_action {
-   ENGINE_IDLE = 0,
-   ENGINE_WAIT,
-   ENGINE_ACTIVE_SEQNO,
-   ENGINE_ACTIVE_HEAD,
-   ENGINE_ACTIVE_SUBUNITS,
-   ENGINE_WAIT_KICK,
-   ENGINE_DEAD,
-};
-
-static inline const char *
-hangcheck_action_to_str(const enum intel_engine_hangcheck_action a)
-{
-   switch (a) {
-   case ENGINE_IDLE:
-   return "idle";
-   case ENGINE_WAIT:
-   return "wait";
-   case ENGINE_ACTIVE_SEQNO:
-   

[Intel-gfx] [PATCH 3/5] drm/i915: Unshare the idle-barrier from other kernel requests

2019-07-25 Thread Chris Wilson
Under some circumstances (see intel_context_prepare_remote_request), we
may use a request along a kernel context to modify the logical state of
another. To keep the target context in place while the request executes,
we take an active reference on it using the kernel timeline. This is the
same timeline as we use for the idle-barrier, and so we end up reusing
the same active node. Except that the idle barrier is special and cannot
be reused in this manner! Give the idle-barrier a reserved timeline
index (0) so that it will always be unique (give or take we may issue
multiple idle barriers across multiple engines).

Reported-by: Lionel Landwerlin 
Fixes: ce476c80b8bf ("drm/i915: Keep contexts pinned until after the next 
kernel context switch")
Fixes: a9877da2d629 ("drm/i915/oa: Reconfigure contexts on the fly")
Signed-off-by: Chris Wilson 
Cc: Lionel Landwerlin 
Cc: Tvrtko Ursulin 
Tested-by: Lionel Landwerlin 
---
 drivers/gpu/drm/i915/gt/intel_context.c   |  40 ++-
 drivers/gpu/drm/i915/gt/intel_context.h   |  13 +-
 drivers/gpu/drm/i915/gt/selftest_context.c| 310 ++
 drivers/gpu/drm/i915/i915_active.c|  69 +++-
 .../drm/i915/selftests/i915_live_selftests.h  |   3 +-
 5 files changed, 398 insertions(+), 37 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/selftest_context.c

diff --git a/drivers/gpu/drm/i915/gt/intel_context.c 
b/drivers/gpu/drm/i915/gt/intel_context.c
index d64b45f7ec6d..211ac6568a5d 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.c
+++ b/drivers/gpu/drm/i915/gt/intel_context.c
@@ -162,23 +162,41 @@ static int __intel_context_active(struct i915_active 
*active)
if (err)
goto err_ring;
 
+   return 0;
+
+err_ring:
+   intel_ring_unpin(ce->ring);
+err_put:
+   intel_context_put(ce);
+   return err;
+}
+
+int intel_context_active_acquire(struct intel_context *ce)
+{
+   int err;
+
+   err = i915_active_acquire(&ce->active);
+   if (err)
+   return err;
+
/* Preallocate tracking nodes */
if (!i915_gem_context_is_kernel(ce->gem_context)) {
err = i915_active_acquire_preallocate_barrier(&ce->active,
  ce->engine);
-   if (err)
-   goto err_state;
+   if (err) {
+   i915_active_release(&ce->active);
+   return err;
+   }
}
 
return 0;
+}
 
-err_state:
-   __context_unpin_state(ce->state);
-err_ring:
-   intel_ring_unpin(ce->ring);
-err_put:
-   intel_context_put(ce);
-   return err;
+void intel_context_active_release(struct intel_context *ce)
+{
+   /* Nodes preallocated in intel_context_active() */
+   i915_active_acquire_barrier(&ce->active);
+   i915_active_release(&ce->active);
 }
 
 void
@@ -297,3 +315,7 @@ struct i915_request *intel_context_create_request(struct 
intel_context *ce)
 
return rq;
 }
+
+#if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
+#include "selftest_context.c"
+#endif
diff --git a/drivers/gpu/drm/i915/gt/intel_context.h 
b/drivers/gpu/drm/i915/gt/intel_context.h
index 23c7e4c0ce7c..07f9924de48f 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.h
+++ b/drivers/gpu/drm/i915/gt/intel_context.h
@@ -104,17 +104,8 @@ static inline void intel_context_exit(struct intel_context 
*ce)
ce->ops->exit(ce);
 }
 
-static inline int intel_context_active_acquire(struct intel_context *ce)
-{
-   return i915_active_acquire(&ce->active);
-}
-
-static inline void intel_context_active_release(struct intel_context *ce)
-{
-   /* Nodes preallocated in intel_context_active() */
-   i915_active_acquire_barrier(&ce->active);
-   i915_active_release(&ce->active);
-}
+int intel_context_active_acquire(struct intel_context *ce);
+void intel_context_active_release(struct intel_context *ce);
 
 static inline struct intel_context *intel_context_get(struct intel_context *ce)
 {
diff --git a/drivers/gpu/drm/i915/gt/selftest_context.c 
b/drivers/gpu/drm/i915/gt/selftest_context.c
new file mode 100644
index ..e3b45fe747ae
--- /dev/null
+++ b/drivers/gpu/drm/i915/gt/selftest_context.c
@@ -0,0 +1,310 @@
+/*
+ * SPDX-License-Identifier: GPL-2.0
+ *
+ * Copyright © 2019 Intel Corporation
+ */
+
+#include "i915_selftest.h"
+#include "intel_gt.h"
+
+#include "gem/selftests/mock_context.h"
+#include "selftests/igt_flush_test.h"
+#include "selftests/mock_drm.h"
+
+static int request_sync(struct i915_request *rq)
+{
+   long timeout;
+   int err = 0;
+
+   i915_request_get(rq);
+
+   i915_request_add(rq);
+   timeout = i915_request_wait(rq, 0, HZ / 10);
+   if (timeout < 0)
+   err = timeout;
+   else
+   i915_request_retire_upto(rq);
+
+   i915_request_put(rq);
+
+   return err;
+}
+
+static int context_sync(struct intel_context *ce)
+{
+   struct intel_timeline *tl = c

[Intel-gfx] [PATCH 1/5] drm/i915: Capture vma contents outside of spinlock

2019-07-25 Thread Chris Wilson
Currently we use the engine->active.lock to ensure that the request is
not retired as we capture the data. However, we only need to ensure that
the vma are not removed prior to use acquiring their contents, and
since we have already relinquished our stop-machine protection, we
assume that the user will not be overwriting the contents before we are
able to record them.

In order to capture the vma outside of the spinlock, we acquire a
reference and mark the vma as active to prevent it from being unbound.
However, since it is tricky allocate an entry in the fence tree (doing
so would require taking a mutex) while inside the engine spinlock, we
use an atomic bit and special case the handling for i915_active_wait.

The core benefit is that we can use some non-atomic methods for mapping
the device pages, we can remove the slow compression phase out of atomic
context (i.e. stop antagonising the nmi-watchdog), and no we longer need
large reserves of atomic pages.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111215
Signed-off-by: Chris Wilson 
Reviewed-by: Matthew Auld 
---
 drivers/gpu/drm/i915/i915_active.c   |  34 ++-
 drivers/gpu/drm/i915/i915_active.h   |   3 +
 drivers/gpu/drm/i915/i915_active_types.h |   3 +
 drivers/gpu/drm/i915/i915_gpu_error.c| 112 ---
 4 files changed, 117 insertions(+), 35 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_active.c 
b/drivers/gpu/drm/i915/i915_active.c
index 13f304a29fc8..22341c62c204 100644
--- a/drivers/gpu/drm/i915/i915_active.c
+++ b/drivers/gpu/drm/i915/i915_active.c
@@ -196,6 +196,7 @@ void __i915_active_init(struct drm_i915_private *i915,
debug_active_init(ref);
 
ref->i915 = i915;
+   ref->flags = 0;
ref->active = active;
ref->retire = retire;
ref->tree = RB_ROOT;
@@ -262,6 +263,34 @@ void i915_active_release(struct i915_active *ref)
active_retire(ref);
 }
 
+static void __active_ungrab(struct i915_active *ref)
+{
+   clear_and_wake_up_bit(I915_ACTIVE_GRAB_BIT, &ref->flags);
+}
+
+bool i915_active_trygrab(struct i915_active *ref)
+{
+   debug_active_assert(ref);
+
+   if (test_and_set_bit(I915_ACTIVE_GRAB_BIT, &ref->flags))
+   return false;
+
+   if (!atomic_add_unless(&ref->count, 1, 0)) {
+   __active_ungrab(ref);
+   return false;
+   }
+
+   return true;
+}
+
+void i915_active_ungrab(struct i915_active *ref)
+{
+   GEM_BUG_ON(!test_bit(I915_ACTIVE_GRAB_BIT, &ref->flags));
+
+   active_retire(ref);
+   __active_ungrab(ref);
+}
+
 int i915_active_wait(struct i915_active *ref)
 {
struct active_node *it, *n;
@@ -270,7 +299,7 @@ int i915_active_wait(struct i915_active *ref)
might_sleep();
might_lock(&ref->mutex);
 
-   if (RB_EMPTY_ROOT(&ref->tree))
+   if (i915_active_is_idle(ref))
return 0;
 
err = mutex_lock_interruptible(&ref->mutex);
@@ -292,6 +321,9 @@ int i915_active_wait(struct i915_active *ref)
if (err)
return err;
 
+   if (wait_on_bit(&ref->flags, I915_ACTIVE_GRAB_BIT, TASK_KILLABLE))
+   return -EINTR;
+
if (!i915_active_is_idle(ref))
return -EBUSY;
 
diff --git a/drivers/gpu/drm/i915/i915_active.h 
b/drivers/gpu/drm/i915/i915_active.h
index 134166d31251..ba68b077ec6c 100644
--- a/drivers/gpu/drm/i915/i915_active.h
+++ b/drivers/gpu/drm/i915/i915_active.h
@@ -395,6 +395,9 @@ int i915_active_acquire(struct i915_active *ref);
 void i915_active_release(struct i915_active *ref);
 void __i915_active_release_nested(struct i915_active *ref, int subclass);
 
+bool i915_active_trygrab(struct i915_active *ref);
+void i915_active_ungrab(struct i915_active *ref);
+
 static inline bool
 i915_active_is_idle(const struct i915_active *ref)
 {
diff --git a/drivers/gpu/drm/i915/i915_active_types.h 
b/drivers/gpu/drm/i915/i915_active_types.h
index 5b0a3024ce24..74743dd0d5f0 100644
--- a/drivers/gpu/drm/i915/i915_active_types.h
+++ b/drivers/gpu/drm/i915/i915_active_types.h
@@ -36,6 +36,9 @@ struct i915_active {
struct mutex mutex;
atomic_t count;
 
+   unsigned long flags;
+#define I915_ACTIVE_GRAB_BIT 0
+
int (*active)(struct i915_active *ref);
void (*retire)(struct i915_active *ref);
 
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c 
b/drivers/gpu/drm/i915/i915_gpu_error.c
index 56dfc2650836..674d341a23f6 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -298,7 +298,7 @@ static void *compress_next_page(struct compress *c,
if (dst->page_count >= dst->num_pages)
return ERR_PTR(-ENOSPC);
 
-   page = pool_alloc(&c->pool, ATOMIC_MAYFAIL);
+   page = pool_alloc(&c->pool, ALLOW_FAIL);
if (!page)
return ERR_PTR(-ENOMEM);
 
@@ -327,8 +327,6 @@ static int compress_page(struct compress *c,
 
if (zlib_deflate(zstream, Z_NO_FLUSH) != 

[Intel-gfx] [PATCH 4/5] drm/i915/execlists: Force preemption

2019-07-25 Thread Chris Wilson
If the preempted context takes too long to relinquish control, e.g. it
is stuck inside a shader with arbitration disabled, evict that context
with an engine reset. This ensures that preemptions are reasonably
responsive, providing a tighter QoS for the more important context at
the cost of flagging unresponsive contexts more frequently (i.e. instead
of using an ~10s hangcheck, we now evict at ~100ms).  The challenge of
lies in picking a timeout that can be reasonably serviced by HW for
typical workloads, balancing the existing clients against the needs for
responsiveness.

Signed-off-by: Chris Wilson 
Cc: Mika Kuoppala 
Cc: Tvrtko Ursulin 
Reviewed-by: Mika Kuoppala 
---
 drivers/gpu/drm/i915/Kconfig.profile | 12 ++
 drivers/gpu/drm/i915/gt/intel_lrc.c  | 62 ++--
 2 files changed, 71 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/Kconfig.profile 
b/drivers/gpu/drm/i915/Kconfig.profile
index 48df8889a88a..3184e8491333 100644
--- a/drivers/gpu/drm/i915/Kconfig.profile
+++ b/drivers/gpu/drm/i915/Kconfig.profile
@@ -25,3 +25,15 @@ config DRM_I915_SPIN_REQUEST
  May be 0 to disable the initial spin. In practice, we estimate
  the cost of enabling the interrupt (if currently disabled) to be
  a few microseconds.
+
+config DRM_I915_PREEMPT_TIMEOUT
+   int "Preempt timeout (ms)"
+   default 100 # milliseconds
+   help
+ How long to wait (in milliseconds) for a preemption event to occur
+ when submitting a new context via execlists. If the current context
+ does not hit an arbitration point and yield to HW before the timer
+ expires, the HW will be reset to allow the more important context
+ to execute.
+
+ May be 0 to disable the timeout.
diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 884dfc1cb033..b85ee12c2451 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -945,6 +945,21 @@ static void record_preemption(struct 
intel_engine_execlists *execlists)
(void)I915_SELFTEST_ONLY(execlists->preempt_hang.count++);
 }
 
+static unsigned long preempt_expires(void)
+{
+   const unsigned long timeout =
+   msecs_to_jiffies_timeout(CONFIG_DRM_I915_PREEMPT_TIMEOUT);
+
+   /*
+* Paranoia to make sure the compiler computes the timeout before
+* loading 'jiffies' as jiffies is volatile and may be updated in
+* the background by a timer tick. All to reduce the complexity
+* of the addition and reduce the risk of losing a jiffie.
+*/
+   barrier();
+   return jiffies + timeout;
+}
+
 static void execlists_dequeue(struct intel_engine_cs *engine)
 {
struct intel_engine_execlists * const execlists = &engine->execlists;
@@ -1283,6 +1298,8 @@ static void execlists_dequeue(struct intel_engine_cs 
*engine)
*port = execlists_schedule_in(last, port - execlists->pending);
memset(port + 1, 0, (last_port - port) * sizeof(*port));
execlists_submit_ports(engine);
+   if (CONFIG_DRM_I915_PREEMPT_TIMEOUT)
+   mod_timer(&execlists->timer, preempt_expires());
} else {
ring_set_paused(engine, 0);
}
@@ -1467,13 +1484,45 @@ static void process_csb(struct intel_engine_cs *engine)
invalidate_csb_entries(&buf[0], &buf[num_entries - 1]);
 }
 
-static void __execlists_submission_tasklet(struct intel_engine_cs *const 
engine)
+static bool __execlists_submission_tasklet(struct intel_engine_cs *const 
engine)
 {
lockdep_assert_held(&engine->active.lock);
 
process_csb(engine);
-   if (!engine->execlists.pending[0])
+   if (!engine->execlists.pending[0]) {
execlists_dequeue(engine);
+   return true;
+   }
+
+   return false;
+}
+
+static void preempt_reset(struct intel_engine_cs *engine)
+{
+   const unsigned int bit = I915_RESET_ENGINE + engine->id;
+   unsigned long *lock = &engine->gt->reset.flags;
+
+   if (test_and_set_bit(bit, lock))
+   return;
+
+   /* Mark this tasklet as disabled to avoid waiting for it to complete */
+   tasklet_disable_nosync(&engine->execlists.tasklet);
+
+   intel_engine_reset(engine, "preemption time out");
+
+   tasklet_enable(&engine->execlists.tasklet);
+   clear_and_wake_up_bit(bit, lock);
+}
+
+static bool preempt_timeout(struct intel_engine_cs *const engine)
+{
+   if (!CONFIG_DRM_I915_PREEMPT_TIMEOUT)
+   return false;
+
+   if (!intel_engine_has_preemption(engine))
+   return false;
+
+   return !timer_pending(&engine->execlists.timer);
 }
 
 /*
@@ -1484,10 +1533,17 @@ static void execlists_submission_tasklet(unsigned long 
data)
 {
struct intel_engine_cs * const engine = (struct intel_engine_cs *)data;
unsigned long flags;
+   bool reset = false;

[Intel-gfx] [PATCH 2/5] drm/i915/gt: Add to timeline requires the timeline mutex

2019-07-25 Thread Chris Wilson
Modifying a remote context requires careful serialisation with requests
on that context, and that serialisation requires us to take their
timeline->mutex. Make it so.

Note that while struct_mutex rules, we can't create more than one
request in parallel, but that age is soon coming to an end.

v2: Though it doesn't affect the current users, contexts may share
timelines so check if we already hold the right mutex.

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/gt/intel_context.c | 23 ++-
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_context.c 
b/drivers/gpu/drm/i915/gt/intel_context.c
index 9292b6ca5e9c..d64b45f7ec6d 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.c
+++ b/drivers/gpu/drm/i915/gt/intel_context.c
@@ -254,10 +254,18 @@ int intel_context_prepare_remote_request(struct 
intel_context *ce,
/* Only suitable for use in remotely modifying this context */
GEM_BUG_ON(rq->hw_context == ce);
 
-   /* Queue this switch after all other activity by this context. */
-   err = i915_active_request_set(&tl->last_request, rq);
-   if (err)
-   return err;
+   if (rq->timeline != tl) { /* beware timeline sharing */
+   err = mutex_lock_interruptible_nested(&tl->mutex,
+ SINGLE_DEPTH_NESTING);
+   if (err)
+   return err;
+
+   /* Queue this switch after current activity by this context. */
+   err = i915_active_request_set(&tl->last_request, rq);
+   if (err)
+   goto unlock;
+   }
+   lockdep_assert_held(&tl->mutex);
 
/*
 * Guarantee context image and the timeline remains pinned until the
@@ -267,7 +275,12 @@ int intel_context_prepare_remote_request(struct 
intel_context *ce,
 * words transfer the pinned ce object to tracked active request.
 */
GEM_BUG_ON(i915_active_is_idle(&ce->active));
-   return i915_active_ref(&ce->active, rq->fence.context, rq);
+   err = i915_active_ref(&ce->active, rq->fence.context, rq);
+
+unlock:
+   if (rq->timeline != tl)
+   mutex_unlock(&tl->mutex);
+   return err;
 }
 
 struct i915_request *intel_context_create_request(struct intel_context *ce)
-- 
2.22.0

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

[Intel-gfx] [PATCH 5/5] drm/i915: Replace hangcheck by heartbeats

2019-07-25 Thread Chris Wilson
Replace sampling the engine state every so often with a periodic
heartbeat request to measure the health of an engine. This is coupled
with the forced-preemption to allow long running requests to survive so
long as they do not block other users.

Signed-off-by: Chris Wilson 
Cc: Joonas Lahtinen 
Cc: Tvrtko Ursulin 
Cc: Jon Bloomfield 
---
Note, strictly this still requires struct_mutex-free retirement for the
corner case where the idle-worker is ineffective and we get a backlog of
requests on the kernel ring. Or if the legacy ringbuffer is full...
When we are able to retire from outside of struct_mutex we can do the
full idle-barrier and idle-work from here.
---
 drivers/gpu/drm/i915/Kconfig.profile  |  11 +
 drivers/gpu/drm/i915/Makefile |   2 +-
 drivers/gpu/drm/i915/gt/intel_engine.h|  32 --
 drivers/gpu/drm/i915/gt/intel_engine_cs.c |  10 +-
 .../gpu/drm/i915/gt/intel_engine_heartbeat.c  |  96 +
 .../gpu/drm/i915/gt/intel_engine_heartbeat.h  |  17 +
 drivers/gpu/drm/i915/gt/intel_engine_pm.c |   5 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h  |  14 +-
 drivers/gpu/drm/i915/gt/intel_gt.c|   1 -
 drivers/gpu/drm/i915/gt/intel_gt.h|   4 -
 drivers/gpu/drm/i915/gt/intel_gt_pm.c |   2 -
 drivers/gpu/drm/i915/gt/intel_hangcheck.c | 360 --
 drivers/gpu/drm/i915/gt/intel_reset.c |   3 +-
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c  |   3 -
 drivers/gpu/drm/i915/i915_debugfs.c   |  86 -
 drivers/gpu/drm/i915/i915_drv.c   |   3 +-
 drivers/gpu/drm/i915/i915_drv.h   |   1 -
 drivers/gpu/drm/i915/i915_gpu_error.c |  37 +-
 drivers/gpu/drm/i915/i915_gpu_error.h |   2 -
 drivers/gpu/drm/i915/i915_params.c|   5 -
 drivers/gpu/drm/i915/i915_params.h|   1 -
 21 files changed, 148 insertions(+), 547 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
 create mode 100644 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h
 delete mode 100644 drivers/gpu/drm/i915/gt/intel_hangcheck.c

diff --git a/drivers/gpu/drm/i915/Kconfig.profile 
b/drivers/gpu/drm/i915/Kconfig.profile
index 3184e8491333..aafb57f84169 100644
--- a/drivers/gpu/drm/i915/Kconfig.profile
+++ b/drivers/gpu/drm/i915/Kconfig.profile
@@ -37,3 +37,14 @@ config DRM_I915_PREEMPT_TIMEOUT
  to execute.
 
  May be 0 to disable the timeout.
+
+config DRM_I915_HEARTBEAT_INTERVAL
+   int "Interval between heartbeat pulses (ms)"
+   default 2500 # microseconds
+   help
+ While active the driver uses a periodic request, a heartbeat, to
+ check the wellness of the GPU and to regularly flush state changes
+ (idle barriers).
+
+ May be 0 to disable heartbeats and therefore disable automatic GPU
+ hang detection.
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 524516251a40..18201852d68d 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -73,10 +73,10 @@ gt-y += \
gt/intel_breadcrumbs.o \
gt/intel_context.o \
gt/intel_engine_cs.o \
+   gt/intel_engine_heartbeat.o \
gt/intel_engine_pm.o \
gt/intel_gt.o \
gt/intel_gt_pm.o \
-   gt/intel_hangcheck.o \
gt/intel_lrc.o \
gt/intel_renderstate.o \
gt/intel_reset.o \
diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h 
b/drivers/gpu/drm/i915/gt/intel_engine.h
index db5c73ce86ee..38eeb4320c97 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine.h
@@ -90,38 +90,6 @@ struct drm_printer;
 /* seqno size is actually only a uint32, but since we plan to use MI_FLUSH_DW 
to
  * do the writes, and that must have qw aligned offsets, simply pretend it's 
8b.
  */
-enum intel_engine_hangcheck_action {
-   ENGINE_IDLE = 0,
-   ENGINE_WAIT,
-   ENGINE_ACTIVE_SEQNO,
-   ENGINE_ACTIVE_HEAD,
-   ENGINE_ACTIVE_SUBUNITS,
-   ENGINE_WAIT_KICK,
-   ENGINE_DEAD,
-};
-
-static inline const char *
-hangcheck_action_to_str(const enum intel_engine_hangcheck_action a)
-{
-   switch (a) {
-   case ENGINE_IDLE:
-   return "idle";
-   case ENGINE_WAIT:
-   return "wait";
-   case ENGINE_ACTIVE_SEQNO:
-   return "active seqno";
-   case ENGINE_ACTIVE_HEAD:
-   return "active head";
-   case ENGINE_ACTIVE_SUBUNITS:
-   return "active subunits";
-   case ENGINE_WAIT_KICK:
-   return "wait kick";
-   case ENGINE_DEAD:
-   return "dead";
-   }
-
-   return "unknown";
-}
 
 void intel_engines_set_scheduler_caps(struct drm_i915_private *i915);
 
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c 
b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
index 65cbf1d9118d..89f4a3825b77 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/inte

[Intel-gfx] [CI] drm/i915: Capture vma contents outside of spinlock

2019-07-25 Thread Chris Wilson
Currently we use the engine->active.lock to ensure that the request is
not retired as we capture the data. However, we only need to ensure that
the vma are not removed prior to use acquiring their contents, and
since we have already relinquished our stop-machine protection, we
assume that the user will not be overwriting the contents before we are
able to record them.

In order to capture the vma outside of the spinlock, we acquire a
reference and mark the vma as active to prevent it from being unbound.
However, since it is tricky allocate an entry in the fence tree (doing
so would require taking a mutex) while inside the engine spinlock, we
use an atomic bit and special case the handling for i915_active_wait.

The core benefit is that we can use some non-atomic methods for mapping
the device pages, we can remove the slow compression phase out of atomic
context (i.e. stop antagonising the nmi-watchdog), and no we longer need
large reserves of atomic pages.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111215
Signed-off-by: Chris Wilson 
Reviewed-by: Matthew Auld 
---
 drivers/gpu/drm/i915/i915_active.c   |  34 ++-
 drivers/gpu/drm/i915/i915_active.h   |   3 +
 drivers/gpu/drm/i915/i915_active_types.h |   3 +
 drivers/gpu/drm/i915/i915_gpu_error.c| 112 ---
 4 files changed, 117 insertions(+), 35 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_active.c 
b/drivers/gpu/drm/i915/i915_active.c
index 13f304a29fc8..22341c62c204 100644
--- a/drivers/gpu/drm/i915/i915_active.c
+++ b/drivers/gpu/drm/i915/i915_active.c
@@ -196,6 +196,7 @@ void __i915_active_init(struct drm_i915_private *i915,
debug_active_init(ref);
 
ref->i915 = i915;
+   ref->flags = 0;
ref->active = active;
ref->retire = retire;
ref->tree = RB_ROOT;
@@ -262,6 +263,34 @@ void i915_active_release(struct i915_active *ref)
active_retire(ref);
 }
 
+static void __active_ungrab(struct i915_active *ref)
+{
+   clear_and_wake_up_bit(I915_ACTIVE_GRAB_BIT, &ref->flags);
+}
+
+bool i915_active_trygrab(struct i915_active *ref)
+{
+   debug_active_assert(ref);
+
+   if (test_and_set_bit(I915_ACTIVE_GRAB_BIT, &ref->flags))
+   return false;
+
+   if (!atomic_add_unless(&ref->count, 1, 0)) {
+   __active_ungrab(ref);
+   return false;
+   }
+
+   return true;
+}
+
+void i915_active_ungrab(struct i915_active *ref)
+{
+   GEM_BUG_ON(!test_bit(I915_ACTIVE_GRAB_BIT, &ref->flags));
+
+   active_retire(ref);
+   __active_ungrab(ref);
+}
+
 int i915_active_wait(struct i915_active *ref)
 {
struct active_node *it, *n;
@@ -270,7 +299,7 @@ int i915_active_wait(struct i915_active *ref)
might_sleep();
might_lock(&ref->mutex);
 
-   if (RB_EMPTY_ROOT(&ref->tree))
+   if (i915_active_is_idle(ref))
return 0;
 
err = mutex_lock_interruptible(&ref->mutex);
@@ -292,6 +321,9 @@ int i915_active_wait(struct i915_active *ref)
if (err)
return err;
 
+   if (wait_on_bit(&ref->flags, I915_ACTIVE_GRAB_BIT, TASK_KILLABLE))
+   return -EINTR;
+
if (!i915_active_is_idle(ref))
return -EBUSY;
 
diff --git a/drivers/gpu/drm/i915/i915_active.h 
b/drivers/gpu/drm/i915/i915_active.h
index 134166d31251..ba68b077ec6c 100644
--- a/drivers/gpu/drm/i915/i915_active.h
+++ b/drivers/gpu/drm/i915/i915_active.h
@@ -395,6 +395,9 @@ int i915_active_acquire(struct i915_active *ref);
 void i915_active_release(struct i915_active *ref);
 void __i915_active_release_nested(struct i915_active *ref, int subclass);
 
+bool i915_active_trygrab(struct i915_active *ref);
+void i915_active_ungrab(struct i915_active *ref);
+
 static inline bool
 i915_active_is_idle(const struct i915_active *ref)
 {
diff --git a/drivers/gpu/drm/i915/i915_active_types.h 
b/drivers/gpu/drm/i915/i915_active_types.h
index 5b0a3024ce24..74743dd0d5f0 100644
--- a/drivers/gpu/drm/i915/i915_active_types.h
+++ b/drivers/gpu/drm/i915/i915_active_types.h
@@ -36,6 +36,9 @@ struct i915_active {
struct mutex mutex;
atomic_t count;
 
+   unsigned long flags;
+#define I915_ACTIVE_GRAB_BIT 0
+
int (*active)(struct i915_active *ref);
void (*retire)(struct i915_active *ref);
 
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c 
b/drivers/gpu/drm/i915/i915_gpu_error.c
index 56dfc2650836..674d341a23f6 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -298,7 +298,7 @@ static void *compress_next_page(struct compress *c,
if (dst->page_count >= dst->num_pages)
return ERR_PTR(-ENOSPC);
 
-   page = pool_alloc(&c->pool, ATOMIC_MAYFAIL);
+   page = pool_alloc(&c->pool, ALLOW_FAIL);
if (!page)
return ERR_PTR(-ENOMEM);
 
@@ -327,8 +327,6 @@ static int compress_page(struct compress *c,
 
if (zlib_deflate(zstream, Z_NO_FLUSH) != 

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/uc: Don't sanitize guc_log_level modparam

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

Series: drm/i915/uc: Don't sanitize guc_log_level modparam
URL   : https://patchwork.freedesktop.org/series/64264/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6553 -> Patchwork_13757


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

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

  * igt@i915_module_load@reload-with-fault-injection:
- fi-snb-2520m:   [PASS][3] -> [INCOMPLETE][4] ([fdo#105411])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-snb-2520m/igt@i915_module_l...@reload-with-fault-injection.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13757/fi-snb-2520m/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@i915_selftest@live_execlists:
- fi-bwr-2160:[PASS][5] -> [DMESG-WARN][6] ([fdo#15])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-bwr-2160/igt@i915_selftest@live_execlists.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13757/fi-bwr-2160/igt@i915_selftest@live_execlists.html

  * igt@i915_selftest@live_hangcheck:
- fi-bwr-2160:[PASS][7] -> [DMESG-FAIL][8] ([fdo#15])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-bwr-2160/igt@i915_selftest@live_hangcheck.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13757/fi-bwr-2160/igt@i915_selftest@live_hangcheck.html

  * igt@kms_busy@basic-flip-c:
- fi-kbl-7500u:   [PASS][9] -> [SKIP][10] ([fdo#109271] / [fdo#109278]) 
+2 similar issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-kbl-7500u/igt@kms_b...@basic-flip-c.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13757/fi-kbl-7500u/igt@kms_b...@basic-flip-c.html

  
 Possible fixes 

  * igt@i915_selftest@live_contexts:
- fi-icl-dsi: [DMESG-WARN][11] -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-icl-dsi/igt@i915_selftest@live_contexts.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13757/fi-icl-dsi/igt@i915_selftest@live_contexts.html

  * igt@i915_selftest@live_hangcheck:
- fi-kbl-guc: [INCOMPLETE][13] ([fdo#108744]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-kbl-guc/igt@i915_selftest@live_hangcheck.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13757/fi-kbl-guc/igt@i915_selftest@live_hangcheck.html

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

  
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744
  [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#15]: https://bugs.freedesktop.org/show_bug.cgi?id=15


Participating hosts (55 -> 46)
--

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


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6553 -> Patchwork_13757

  CI-20190529: 20190529
  CI_DRM_6553: 2480f03103d155b398d2a4f3bb8245877f9b1b8e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5112: 7e4d10507088055413769a020dd674f52b4bc1b0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13757: 126a500d97cf450bc82f52d602fe2396002ad4d7 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

126a500d97cf drm/i915/uc: Don't sanitize guc_log_level modparam

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13757/
___
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: Remove redundant user_access_end() from __copy_from_user() error path

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

Series: drm/i915: Remove redundant user_access_end() from __copy_from_user() 
error path
URL   : https://patchwork.freedesktop.org/series/64262/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6553 -> Patchwork_13756


Summary
---

  **WARNING**

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

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

Possible new issues
---

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

### IGT changes ###

 Warnings 

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

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_busy@basic-flip-a:
- fi-kbl-7567u:   [PASS][3] -> [SKIP][4] ([fdo#109271] / [fdo#109278]) 
+2 similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13756/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html

  * igt@kms_busy@basic-flip-c:
- fi-kbl-7500u:   [PASS][5] -> [SKIP][6] ([fdo#109271] / [fdo#109278]) 
+2 similar issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-kbl-7500u/igt@kms_b...@basic-flip-c.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13756/fi-kbl-7500u/igt@kms_b...@basic-flip-c.html

  * igt@kms_chamelium@hdmi-edid-read:
- fi-kbl-7500u:   [PASS][7] -> [FAIL][8] ([fdo#109569])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-kbl-7500u/igt@kms_chamel...@hdmi-edid-read.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13756/fi-kbl-7500u/igt@kms_chamel...@hdmi-edid-read.html

  
 Possible fixes 

  * igt@gem_exec_reloc@basic-gtt:
- fi-icl-u3:  [DMESG-WARN][9] ([fdo#107724]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-icl-u3/igt@gem_exec_re...@basic-gtt.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13756/fi-icl-u3/igt@gem_exec_re...@basic-gtt.html

  * igt@i915_selftest@live_contexts:
- fi-icl-dsi: [DMESG-WARN][11] -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-icl-dsi/igt@i915_selftest@live_contexts.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13756/fi-icl-dsi/igt@i915_selftest@live_contexts.html

  * igt@i915_selftest@live_hangcheck:
- fi-kbl-guc: [INCOMPLETE][13] ([fdo#108744]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-kbl-guc/igt@i915_selftest@live_hangcheck.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13756/fi-kbl-guc/igt@i915_selftest@live_hangcheck.html

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7567u:   [WARN][15] ([fdo#109380]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13756/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html

  * igt@kms_chamelium@hdmi-crc-fast:
- {fi-icl-u4}:[FAIL][17] ([fdo#111045] / [fdo#111046 ]) -> 
[PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-icl-u4/igt@kms_chamel...@hdmi-crc-fast.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13756/fi-icl-u4/igt@kms_chamel...@hdmi-crc-fast.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-c:
- fi-kbl-7567u:   [SKIP][19] ([fdo#109271]) -> [PASS][20] +23 similar 
issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6553/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13756/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html

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

  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109380]: https://bugs.freedesktop.org/show_bug.cgi?id=109380
  [fdo#

Re: [Intel-gfx] [PATCH] drm/i915: Remove redundant user_access_end() from __copy_from_user() error path

2019-07-25 Thread Thomas Gleixner
On Thu, 25 Jul 2019, Josh Poimboeuf wrote:

> Objtool reports:
> 
>   drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o: warning: objtool: 
> .altinstr_replacement+0x36: redundant UACCESS disable
> 
> __copy_from_user() already does both STAC and CLAC, so the
> user_access_end() in its error path adds an extra unnecessary CLAC.
> 
> Fixes: 0b2c8f8b6b0c ("i915: fix missing user_access_end() in page fault 
> exception case")
> Reported-by: Thomas Gleixner 
> Reported-by: Sedat Dilek 
> Acked-by: Peter Zijlstra (Intel) 
> Tested-by: Nick Desaulniers 
> Tested-by: Sedat Dilek 
> Link: https://github.com/ClangBuiltLinux/linux/issues/617
> Signed-off-by: Josh Poimboeuf 

Reviewed-by: Thomas Gleixner 

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

Re: [Intel-gfx] [PATCH] drm/i915/uc: Don't sanitize guc_log_level modparam

2019-07-25 Thread Chris Wilson
Quoting Michal Wajdeczko (2019-07-25 21:51:06)
> We are already storing runtime value of log level in private
> field, so there is no need to modify modparam.

There is an aspect of communicating the clamped value back to the user.
Does that have any value or alternative?
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Re: [Intel-gfx] [PATCH] drm/i915/uc: Reorder params in intel_uc_fw_fetch

2019-07-25 Thread Chris Wilson
Quoting Michal Wajdeczko (2019-07-25 22:03:14)
> All intel_uc_fw_* functions are taking uc_fw as first param
> except intel_uc_fw_fetch() which is taking i915. Fix that.
> 
> Signed-off-by: Michal Wajdeczko 
> Cc: Daniele Ceraolo Spurio 

Has a certain logic to it,
Reviewed-by: Chris Wilson 
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Re: [Intel-gfx] [PATCH 07/23] drm/i915/gt: Move the [class][inst] lookup for engines onto the GT

2019-07-25 Thread Daniele Ceraolo Spurio



On 7/23/19 11:38 AM, Chris Wilson wrote:

To maintain a fast lookup from a GT centric irq handler, we want the
engine lookup tables on the intel_gt. To avoid having multiple copies of
the same multi-dimension lookup table, move the generic user engine
lookup into an rbtree (for fast and flexible indexing).

v2: Split uabi_instance cf uabi_class

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
Cc: Daniele Ceraolo Spurio 


Reviewed-by: Daniele Ceraolo Spurio 

But I'd like an ack from Tvrtko as well since I know he has some similar 
planned changes around this as well.


Daniele


---
  drivers/gpu/drm/i915/Makefile|  1 +
  drivers/gpu/drm/i915/gem/i915_gem_context.c  |  3 +-
  drivers/gpu/drm/i915/gt/intel_engine.h   |  3 -
  drivers/gpu/drm/i915/gt/intel_engine_cs.c| 53 +---
  drivers/gpu/drm/i915/gt/intel_engine_types.h |  9 ++-
  drivers/gpu/drm/i915/gt/intel_engine_user.c  | 66 
  drivers/gpu/drm/i915/gt/intel_engine_user.h  | 20 ++
  drivers/gpu/drm/i915/gt/intel_gt_types.h |  4 ++
  drivers/gpu/drm/i915/gt/selftest_lrc.c   | 15 +++--
  drivers/gpu/drm/i915/i915_drv.h  |  7 ++-
  drivers/gpu/drm/i915/i915_irq.c  |  2 +-
  drivers/gpu/drm/i915/i915_pmu.c  |  3 +-
  drivers/gpu/drm/i915/i915_query.c|  2 +-
  drivers/gpu/drm/i915/i915_trace.h| 10 +--
  14 files changed, 138 insertions(+), 60 deletions(-)
  create mode 100644 drivers/gpu/drm/i915/gt/intel_engine_user.c
  create mode 100644 drivers/gpu/drm/i915/gt/intel_engine_user.h

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 524516251a40..fafc3763dc2d 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -74,6 +74,7 @@ gt-y += \
gt/intel_context.o \
gt/intel_engine_cs.o \
gt/intel_engine_pm.o \
+   gt/intel_engine_user.o \
gt/intel_gt.o \
gt/intel_gt_pm.o \
gt/intel_hangcheck.o \
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c 
b/drivers/gpu/drm/i915/gem/i915_gem_context.c
index 18b226bc5e3a..e31431fa141e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
@@ -70,6 +70,7 @@
  #include 
  
  #include "gt/intel_lrc_reg.h"

+#include "gt/intel_engine_user.h"
  
  #include "i915_gem_context.h"

  #include "i915_globals.h"
@@ -1740,7 +1741,7 @@ get_engines(struct i915_gem_context *ctx,
  
  		if (e->engines[n]) {

ci.engine_class = e->engines[n]->engine->uabi_class;
-   ci.engine_instance = e->engines[n]->engine->instance;
+   ci.engine_instance = 
e->engines[n]->engine->uabi_instance;
}
  
  		if (copy_to_user(&user->engines[n], &ci, sizeof(ci))) {

diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h 
b/drivers/gpu/drm/i915/gt/intel_engine.h
index db5c73ce86ee..30856383e4c5 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine.h
@@ -432,9 +432,6 @@ void intel_engine_dump(struct intel_engine_cs *engine,
   struct drm_printer *m,
   const char *header, ...);
  
-struct intel_engine_cs *

-intel_engine_lookup_user(struct drm_i915_private *i915, u8 class, u8 instance);
-
  static inline void intel_engine_context_in(struct intel_engine_cs *engine)
  {
unsigned long flags;
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c 
b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
index 65cbf1d9118d..ed5c4e161e6e 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
@@ -32,6 +32,7 @@
  
  #include "intel_engine.h"

  #include "intel_engine_pm.h"
+#include "intel_engine_user.h"
  #include "intel_context.h"
  #include "intel_lrc.h"
  #include "intel_reset.h"
@@ -285,9 +286,7 @@ static void intel_engine_sanitize_mmio(struct 
intel_engine_cs *engine)
intel_engine_set_hwsp_writemask(engine, ~0u);
  }
  
-static int

-intel_engine_setup(struct drm_i915_private *dev_priv,
-  enum intel_engine_id id)
+static int intel_engine_setup(struct intel_gt *gt, enum intel_engine_id id)
  {
const struct engine_info *info = &intel_engines[id];
struct intel_engine_cs *engine;
@@ -303,10 +302,9 @@ intel_engine_setup(struct drm_i915_private *dev_priv,
if (GEM_DEBUG_WARN_ON(info->instance > MAX_ENGINE_INSTANCE))
return -EINVAL;
  
-	if (GEM_DEBUG_WARN_ON(dev_priv->engine_class[info->class][info->instance]))

+   if (GEM_DEBUG_WARN_ON(gt->engine_class[info->class][info->instance]))
return -EINVAL;
  
-	GEM_BUG_ON(dev_priv->engine[id]);

engine = kzalloc(sizeof(*engine), GFP_KERNEL);
if (!engine)
return -ENOMEM;
@@ -315,12 +313,12 @@ intel_engine_setup(struct drm_i915_private *dev_priv,
  
  	engine->id = id;

engine->mask = BIT(id);
-   engine->i915 =

Re: [Intel-gfx] [PATCH] drm/i915: Capture vma contents outside of spinlock

2019-07-25 Thread Chris Wilson
Quoting Matthew Auld (2019-07-25 22:04:33)
> On Thu, 25 Jul 2019 at 19:24, Chris Wilson  wrote:
> >
> > Currently we use the engine->active.lock to ensure that the request is
> > not retired as we capture the data. However, we only need to ensure that
> > the vma are not removed prior to use acquiring their contents, and
> > since we have already relinquished our stop-machine protection, we
> > assume that the user will not be overwriting the contents before we are
> > able to record them.
> >
> > In order to capture the vma outside of the spinlock, we acquire a
> > reference and mark the vma as active to prevent it from being unbound.
> > However, since it is tricky allocate an entry in the fence tree (doing
> > so would require taking a mutex) while inside the engine spinlock, we
> > use an atomic bit and special case the handling for i915_active_wait.
> >
> > The core benefit is that we can use some non-atomic methods for mapping
> > the device pages, we can remove the slow compression phase out of atomic
> > context (i.e. stop antagonising the nmi-watchdog), and no we longer need
> > large reserves of atomic pages.
> >
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111215
> > Signed-off-by: Chris Wilson 
> > ---
> >  drivers/gpu/drm/i915/i915_active.c   |  34 ++-
> >  drivers/gpu/drm/i915/i915_active.h   |   3 +
> >  drivers/gpu/drm/i915/i915_active_types.h |   3 +
> >  drivers/gpu/drm/i915/i915_gpu_error.c| 113 ---
> >  4 files changed, 118 insertions(+), 35 deletions(-)
> 
> 
> 
> >
> >  static struct drm_i915_error_object *
> > @@ -1370,6 +1399,7 @@ gem_record_rings(struct i915_gpu_state *error, struct 
> > compress *compress)
> > struct intel_engine_cs *engine = i915->engine[i];
> > struct drm_i915_error_engine *ee = &error->engine[i];
> > struct i915_request *request;
> > +   struct capture_vma *capture;
> 
> Not even setting capture = NULL?

gcc is a very forgiving compiler it seems. Well spotted,
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Re: [Intel-gfx] [PATCH] drm/i915: Capture vma contents outside of spinlock

2019-07-25 Thread Matthew Auld
On Thu, 25 Jul 2019 at 19:24, Chris Wilson  wrote:
>
> Currently we use the engine->active.lock to ensure that the request is
> not retired as we capture the data. However, we only need to ensure that
> the vma are not removed prior to use acquiring their contents, and
> since we have already relinquished our stop-machine protection, we
> assume that the user will not be overwriting the contents before we are
> able to record them.
>
> In order to capture the vma outside of the spinlock, we acquire a
> reference and mark the vma as active to prevent it from being unbound.
> However, since it is tricky allocate an entry in the fence tree (doing
> so would require taking a mutex) while inside the engine spinlock, we
> use an atomic bit and special case the handling for i915_active_wait.
>
> The core benefit is that we can use some non-atomic methods for mapping
> the device pages, we can remove the slow compression phase out of atomic
> context (i.e. stop antagonising the nmi-watchdog), and no we longer need
> large reserves of atomic pages.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111215
> Signed-off-by: Chris Wilson 
> ---
>  drivers/gpu/drm/i915/i915_active.c   |  34 ++-
>  drivers/gpu/drm/i915/i915_active.h   |   3 +
>  drivers/gpu/drm/i915/i915_active_types.h |   3 +
>  drivers/gpu/drm/i915/i915_gpu_error.c| 113 ---
>  4 files changed, 118 insertions(+), 35 deletions(-)



>
>  static struct drm_i915_error_object *
> @@ -1370,6 +1399,7 @@ gem_record_rings(struct i915_gpu_state *error, struct 
> compress *compress)
> struct intel_engine_cs *engine = i915->engine[i];
> struct drm_i915_error_engine *ee = &error->engine[i];
> struct i915_request *request;
> +   struct capture_vma *capture;

Not even setting capture = NULL?

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

[Intel-gfx] [PATCH] drm/i915/uc: Reorder params in intel_uc_fw_fetch

2019-07-25 Thread Michal Wajdeczko
All intel_uc_fw_* functions are taking uc_fw as first param
except intel_uc_fw_fetch() which is taking i915. Fix that.

Signed-off-by: Michal Wajdeczko 
Cc: Daniele Ceraolo Spurio 
---
 drivers/gpu/drm/i915/gt/uc/intel_uc.c| 4 ++--
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 8 +++-
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h | 4 ++--
 3 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c 
b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
index b1815abecf30..8205b3c81048 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
@@ -355,10 +355,10 @@ void intel_uc_fetch_firmwares(struct intel_uc *uc)
if (!intel_uc_is_using_guc(uc))
return;
 
-   intel_uc_fw_fetch(i915, &uc->guc.fw);
+   intel_uc_fw_fetch(&uc->guc.fw, i915);
 
if (intel_uc_is_using_huc(uc))
-   intel_uc_fw_fetch(i915, &uc->huc.fw);
+   intel_uc_fw_fetch(&uc->huc.fw, i915);
 }
 
 void intel_uc_cleanup_firmwares(struct intel_uc *uc)
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c 
b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
index 168d368bcd3e..676ee84ef6ab 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
@@ -190,10 +190,8 @@ void intel_uc_fw_init_early(struct intel_uc_fw *uc_fw,
  *
  * Fetch uC firmware into GEM obj.
  */
-void intel_uc_fw_fetch(struct drm_i915_private *dev_priv,
-  struct intel_uc_fw *uc_fw)
+void intel_uc_fw_fetch(struct intel_uc_fw *uc_fw, struct drm_i915_private 
*i915)
 {
-   struct pci_dev *pdev = dev_priv->drm.pdev;
struct drm_i915_gem_object *obj;
const struct firmware *fw = NULL;
struct uc_css_header *css;
@@ -202,7 +200,7 @@ void intel_uc_fw_fetch(struct drm_i915_private *dev_priv,
 
GEM_BUG_ON(!intel_uc_fw_supported(uc_fw));
 
-   err = request_firmware(&fw, uc_fw->path, &pdev->dev);
+   err = request_firmware(&fw, uc_fw->path, i915->drm.dev);
if (err)
goto fail;
 
@@ -295,7 +293,7 @@ void intel_uc_fw_fetch(struct drm_i915_private *dev_priv,
goto fail;
}
 
-   obj = i915_gem_object_create_shmem_from_data(dev_priv,
+   obj = i915_gem_object_create_shmem_from_data(i915,
 fw->data, fw->size);
if (IS_ERR(obj)) {
err = PTR_ERR(obj);
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h 
b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
index ff684c0c808e..eddbb237fabe 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
@@ -169,8 +169,8 @@ static inline u32 intel_uc_fw_get_upload_size(struct 
intel_uc_fw *uc_fw)
 void intel_uc_fw_init_early(struct intel_uc_fw *uc_fw,
enum intel_uc_fw_type type,
struct drm_i915_private *i915);
-void intel_uc_fw_fetch(struct drm_i915_private *i915,
-  struct intel_uc_fw *uc_fw);
+void intel_uc_fw_fetch(struct intel_uc_fw *uc_fw,
+  struct drm_i915_private *i915);
 void intel_uc_fw_cleanup_fetch(struct intel_uc_fw *uc_fw);
 int intel_uc_fw_upload(struct intel_uc_fw *uc_fw, struct intel_gt *gt,
   u32 wopcm_offset, u32 dma_flags);
-- 
2.19.2

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

[Intel-gfx] [PATCH] drm/i915/uc: Don't sanitize guc_log_level modparam

2019-07-25 Thread Michal Wajdeczko
We are already storing runtime value of log level in private
field, so there is no need to modify modparam.

Signed-off-by: Michal Wajdeczko 
Cc: Daniele Ceraolo Spurio 
---
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 29 -
 drivers/gpu/drm/i915/gt/uc/intel_uc.c  | 50 --
 2 files changed, 28 insertions(+), 51 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
index 77fda1e85d3b..3460deca12c8 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
@@ -443,6 +443,29 @@ static void guc_log_capture_logs(struct intel_guc_log *log)
guc_action_flush_log_complete(guc);
 }
 
+static u32 __get_default_log_level(struct intel_guc_log *log)
+{
+   /* A negative value means "use platform/config default" */
+   if (i915_modparams.guc_log_level < 0) {
+   return (IS_ENABLED(CONFIG_DRM_I915_DEBUG) ||
+   IS_ENABLED(CONFIG_DRM_I915_DEBUG_GEM)) ?
+   GUC_LOG_LEVEL_MAX : GUC_LOG_LEVEL_NON_VERBOSE;
+   }
+
+   if (i915_modparams.guc_log_level > GUC_LOG_LEVEL_MAX) {
+   DRM_WARN("Incompatible option detected: %s=%d, %s!\n",
+"guc_log_level", i915_modparams.guc_log_level,
+"verbosity too high");
+   return (IS_ENABLED(CONFIG_DRM_I915_DEBUG) ||
+   IS_ENABLED(CONFIG_DRM_I915_DEBUG_GEM)) ?
+   GUC_LOG_LEVEL_MAX : GUC_LOG_LEVEL_DISABLED;
+   }
+
+   GEM_BUG_ON(i915_modparams.guc_log_level < GUC_LOG_LEVEL_DISABLED);
+   GEM_BUG_ON(i915_modparams.guc_log_level > GUC_LOG_LEVEL_MAX);
+   return i915_modparams.guc_log_level;
+}
+
 int intel_guc_log_create(struct intel_guc_log *log)
 {
struct intel_guc *guc = log_to_guc(log);
@@ -482,7 +505,11 @@ int intel_guc_log_create(struct intel_guc_log *log)
 
log->vma = vma;
 
-   log->level = i915_modparams.guc_log_level;
+   log->level = __get_default_log_level(log);
+   DRM_DEBUG_DRIVER("guc_log_level=%d (%s, verbose:%s, verbosity:%d)\n",
+log->level, enableddisabled(log->level),
+yesno(GUC_LOG_LEVEL_IS_VERBOSE(log->level)),
+GUC_LOG_LEVEL_TO_VERBOSITY(log->level));
 
return 0;
 
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c 
b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
index b1815abecf30..4ace47c0978f 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
@@ -74,23 +74,6 @@ static int __get_platform_enable_guc(struct intel_uc *uc)
return enable_guc;
 }
 
-static int __get_default_guc_log_level(struct intel_uc *uc)
-{
-   int guc_log_level;
-
-   if (!intel_uc_fw_supported(&uc->guc.fw) || !intel_uc_is_using_guc(uc))
-   guc_log_level = GUC_LOG_LEVEL_DISABLED;
-   else if (IS_ENABLED(CONFIG_DRM_I915_DEBUG) ||
-IS_ENABLED(CONFIG_DRM_I915_DEBUG_GEM))
-   guc_log_level = GUC_LOG_LEVEL_MAX;
-   else
-   guc_log_level = GUC_LOG_LEVEL_NON_VERBOSE;
-
-   /* Any platform specific fine-tuning can be done here */
-
-   return guc_log_level;
-}
-
 /**
  * sanitize_options_early - sanitize uC related modparam options
  * @uc: the intel_uc structure
@@ -100,13 +83,6 @@ static int __get_default_guc_log_level(struct intel_uc *uc)
  * modparam varies between platforms and it is hardcoded in driver code.
  * Any other modparam value is only monitored against availability of the
  * related hardware or firmware definitions.
- *
- * In case of "guc_log_level" option this function will attempt to modify
- * it only if it was initially set to "auto(-1)" or if initial value was
- * "enable(1..4)" on platforms without the GuC. Default value for this
- * modparam varies between platforms and is usually set to "disable(0)"
- * unless GuC is enabled on given platform and the driver is compiled with
- * debug config when this modparam will default to "enable(1..4)".
  */
 static void sanitize_options_early(struct intel_uc *uc)
 {
@@ -149,34 +125,8 @@ static void sanitize_options_early(struct intel_uc *uc)
i915_modparams.enable_guc &= ~ENABLE_GUC_SUBMISSION;
}
 
-   /* A negative value means "use platform/config default" */
-   if (i915_modparams.guc_log_level < 0)
-   i915_modparams.guc_log_level =
-   __get_default_guc_log_level(uc);
-
-   if (i915_modparams.guc_log_level > 0 && !intel_uc_is_using_guc(uc)) {
-   DRM_WARN("Incompatible option detected: guc_log_level=%d, "
-"but GuC is not enabled!\n",
-i915_modparams.guc_log_level);
-   i915_modparams.guc_log_level = 0;
-   }
-
-   if (i915_modparams.guc_log_level > GUC_LOG_LEVEL_MAX) {
-   DRM_WARN("Incompatible option detected: %

[Intel-gfx] ✓ Fi.CI.IGT: success for Revert "ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips" (rev3)

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

Series: Revert "ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips" 
(rev3)
URL   : https://patchwork.freedesktop.org/series/64212/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6549_full -> Patchwork_13748_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_balancer@smoke:
- shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#110854])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-iclb4/igt@gem_exec_balan...@smoke.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13748/shard-iclb3/igt@gem_exec_balan...@smoke.html

  * igt@kms_cursor_crc@pipe-a-cursor-128x42-offscreen:
- shard-iclb: [PASS][3] -> [INCOMPLETE][4] ([fdo#107713])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-iclb4/igt@kms_cursor_...@pipe-a-cursor-128x42-offscreen.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13748/shard-iclb7/igt@kms_cursor_...@pipe-a-cursor-128x42-offscreen.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
- shard-kbl:  [PASS][5] -> [DMESG-WARN][6] ([fdo#108566]) +5 
similar issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-kbl2/igt@kms_cursor_...@pipe-a-cursor-suspend.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13748/shard-kbl2/igt@kms_cursor_...@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
- shard-skl:  [PASS][7] -> [INCOMPLETE][8] ([fdo#110741])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-skl1/igt@kms_cursor_...@pipe-b-cursor-suspend.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13748/shard-skl5/igt@kms_cursor_...@pipe-b-cursor-suspend.html

  * igt@kms_flip@flip-vs-expired-vblank:
- shard-skl:  [PASS][9] -> [FAIL][10] ([fdo#105363])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-skl1/igt@kms_f...@flip-vs-expired-vblank.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13748/shard-skl9/igt@kms_f...@flip-vs-expired-vblank.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
- shard-iclb: [PASS][11] -> [INCOMPLETE][12] ([fdo#107713] / 
[fdo#109507])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-iclb4/igt@kms_f...@flip-vs-suspend-interruptible.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13748/shard-iclb3/igt@kms_f...@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw:
- shard-iclb: [PASS][13] -> [FAIL][14] ([fdo#103167]) +4 similar 
issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-iclb1/igt@kms_frontbuffer_track...@fbc-1p-pri-indfb-multidraw.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13748/shard-iclb2/igt@kms_frontbuffer_track...@fbc-1p-pri-indfb-multidraw.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
- shard-apl:  [PASS][15] -> [DMESG-WARN][16] ([fdo#108566]) +1 
similar issue
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-apl1/igt@kms_pl...@plane-panning-bottom-right-suspend-pipe-c-planes.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13748/shard-apl1/igt@kms_pl...@plane-panning-bottom-right-suspend-pipe-c-planes.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
- shard-iclb: [PASS][17] -> [FAIL][18] ([fdo#103166])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-iclb8/igt@kms_plane_low...@pipe-a-tiling-x.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13748/shard-iclb4/igt@kms_plane_low...@pipe-a-tiling-x.html

  * igt@kms_psr2_su@page_flip:
- shard-iclb: [PASS][19] -> [SKIP][20] ([fdo#109642] / [fdo#111068])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-iclb2/igt@kms_psr2_su@page_flip.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13748/shard-iclb6/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_primary_page_flip:
- shard-iclb: [PASS][21] -> [SKIP][22] ([fdo#109441]) +3 similar 
issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13748/shard-iclb1/igt@kms_psr@psr2_primary_page_flip.html

  
 Possible fixes 

  * igt@gem_tiled_swapping@non-threaded:
- shard-kbl:  [DMESG-WARN][23] ([fdo#108686]) -> [PASS][24]
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-kbl3/igt@gem_tiled_swapp...@non-threaded.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13748/shard-kbl4/igt@gem_tiled_swapp...@non-threaded.html

  * igt@i915_self

[Intel-gfx] [PATCH] drm/i915: Remove redundant user_access_end() from __copy_from_user() error path

2019-07-25 Thread Josh Poimboeuf
Objtool reports:

  drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o: warning: objtool: 
.altinstr_replacement+0x36: redundant UACCESS disable

__copy_from_user() already does both STAC and CLAC, so the
user_access_end() in its error path adds an extra unnecessary CLAC.

Fixes: 0b2c8f8b6b0c ("i915: fix missing user_access_end() in page fault 
exception case")
Reported-by: Thomas Gleixner 
Reported-by: Sedat Dilek 
Acked-by: Peter Zijlstra (Intel) 
Tested-by: Nick Desaulniers 
Tested-by: Sedat Dilek 
Link: https://github.com/ClangBuiltLinux/linux/issues/617
Signed-off-by: Josh Poimboeuf 
---
 .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 20 +--
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index 5fae0e50aad0..41dab9ea33cd 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -1628,6 +1628,7 @@ static int check_relocations(const struct 
drm_i915_gem_exec_object2 *entry)
 
 static int eb_copy_relocations(const struct i915_execbuffer *eb)
 {
+   struct drm_i915_gem_relocation_entry *relocs;
const unsigned int count = eb->buffer_count;
unsigned int i;
int err;
@@ -1635,7 +1636,6 @@ static int eb_copy_relocations(const struct 
i915_execbuffer *eb)
for (i = 0; i < count; i++) {
const unsigned int nreloc = eb->exec[i].relocation_count;
struct drm_i915_gem_relocation_entry __user *urelocs;
-   struct drm_i915_gem_relocation_entry *relocs;
unsigned long size;
unsigned long copied;
 
@@ -1663,14 +1663,8 @@ static int eb_copy_relocations(const struct 
i915_execbuffer *eb)
 
if (__copy_from_user((char *)relocs + copied,
 (char __user *)urelocs + copied,
-len)) {
-end_user:
-   user_access_end();
-end:
-   kvfree(relocs);
-   err = -EFAULT;
-   goto err;
-   }
+len))
+   goto end;
 
copied += len;
} while (copied < size);
@@ -1699,10 +1693,14 @@ static int eb_copy_relocations(const struct 
i915_execbuffer *eb)
 
return 0;
 
+end_user:
+   user_access_end();
+end:
+   kvfree(relocs);
+   err = -EFAULT;
 err:
while (i--) {
-   struct drm_i915_gem_relocation_entry *relocs =
-   u64_to_ptr(typeof(*relocs), eb->exec[i].relocs_ptr);
+   relocs = u64_to_ptr(typeof(*relocs), eb->exec[i].relocs_ptr);
if (eb->exec[i].relocation_count)
kvfree(relocs);
}
-- 
2.20.1

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

Re: [Intel-gfx] [PATCH v2 2/3] drm/i915/uc: Update drawing for firmware layout

2019-07-25 Thread Chris Wilson
Quoting Daniele Ceraolo Spurio (2019-07-25 21:16:23)
> 
> 
> On 7/25/19 7:13 AM, Michal Wajdeczko wrote:
> > Sphinx was rendering firmware layout as html table, but since
> > we want to add sizes relations switch to plain text graphics.
> > 
> > v2: also update text and do it before move (Daniele)
> > 
> > Signed-off-by: Michal Wajdeczko 
> > Cc: Daniele Ceraolo Spurio 
> 
> Reviewed-by: Daniele Ceraolo Spurio 

And pushed, thanks for the fixes and updates.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Re: [Intel-gfx] [PATCH v2 2/3] drm/i915/uc: Update drawing for firmware layout

2019-07-25 Thread Daniele Ceraolo Spurio



On 7/25/19 7:13 AM, Michal Wajdeczko wrote:

Sphinx was rendering firmware layout as html table, but since
we want to add sizes relations switch to plain text graphics.

v2: also update text and do it before move (Daniele)

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


Reviewed-by: Daniele Ceraolo Spurio 


---
  Documentation/gpu/i915.rst  | 12 
  drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h | 31 ++---
  2 files changed, 20 insertions(+), 23 deletions(-)

diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
index c2173d120492..3e233f9d675f 100644
--- a/Documentation/gpu/i915.rst
+++ b/Documentation/gpu/i915.rst
@@ -430,6 +430,12 @@ WOPCM Layout
  GuC
  ===
  
+Firmware Layout

+---
+
+.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
+   :doc: Firmware Layout
+
  GuC-specific firmware loader
  
  
@@ -445,12 +451,6 @@ GuC-based command submission

  .. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
 :internal:
  
-GuC Firmware Layout


-
-.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
-   :doc: GuC Firmware Layout
-
  GuC Address Space
  -
  
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h

index 30cca3a29323..108b386c52ec 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
@@ -122,23 +122,20 @@
  #define GUC_CTL_MAX_DWORDS(SOFT_SCRATCH_COUNT - 2) /* [1..14] */
  
  /**

- * DOC: GuC Firmware Layout
+ * DOC: Firmware Layout
   *
- * The GuC firmware layout looks like this:
+ * The GuC/HuC firmware layout looks like this::
   *
- * +---+
- * | uc_css_header |
- * |   |
- * | contains major/minor version  |
- * +---+
- * | uCode |
- * +---+
- * | RSA signature |
- * +---+
- * |  modulus key  |
- * +---+
- * |  exponent val |
- * +---+
+ *  
+==+
+ *  |  Firmware blob   
|
+ *  
+===+===++++
+ *  |  CSS header   | uCode |  RSA key   |  modulus   |  exponent  
|
+ *  
+===+===++++
+ *   <-header size-> <---header size continued --->
+ *   <--- size --->
+ *   <-key size->
+ *<-mod size->
+ * <-exp size->
   *
   * The firmware may or may not have modulus key and exponent data. The header,
   * uCode and RSA signature are must-have components that will be used by 
driver.
@@ -155,8 +152,8 @@
   * 4. Modulus and exponent key are not required by driver. They may not appear
   *in fw. So driver will load a truncated firmware in this case.
   *
- * HuC firmware layout is same as GuC firmware.
- * Only HuC version information is saved in a different way.
+ * The only difference between GuC and HuC firmwares is how the version
+ * information is saved.
   */
  
  struct uc_css_header {



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

[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: Vulkan performance query support (rev10)

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

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

== Summary ==

CI Bug Log - changes from CI_DRM_6549_full -> Patchwork_13747_full


Summary
---

  **FAILURE**

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

### IGT changes ###

 Possible regressions 

  * igt@perf@blocking:
- shard-hsw:  [PASS][1] -> [DMESG-WARN][2] +11 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-hsw1/igt@p...@blocking.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13747/shard-hsw5/igt@p...@blocking.html
- shard-apl:  NOTRUN -> [DMESG-WARN][3] +1 similar issue
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13747/shard-apl7/igt@p...@blocking.html

  * igt@perf@create-destroy-userspace-config:
- shard-glk:  [PASS][4] -> [DMESG-WARN][5] +9 similar issues
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-glk4/igt@p...@create-destroy-userspace-config.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13747/shard-glk1/igt@p...@create-destroy-userspace-config.html

  * igt@perf@enable-disable:
- shard-iclb: [PASS][6] -> [DMESG-WARN][7] +9 similar issues
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-iclb3/igt@p...@enable-disable.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13747/shard-iclb2/igt@p...@enable-disable.html

  * igt@perf@gen8-unprivileged-single-ctx-counters:
- shard-skl:  [PASS][8] -> [DMESG-WARN][9] +6 similar issues
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-skl10/igt@p...@gen8-unprivileged-single-ctx-counters.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13747/shard-skl10/igt@p...@gen8-unprivileged-single-ctx-counters.html

  * igt@perf@invalid-oa-format-id:
- shard-kbl:  [PASS][10] -> [DMESG-WARN][11] +9 similar issues
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-kbl2/igt@p...@invalid-oa-format-id.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13747/shard-kbl2/igt@p...@invalid-oa-format-id.html

  * igt@perf@low-oa-exponent-permissions:
- shard-apl:  [PASS][12] -> [DMESG-WARN][13] +8 similar issues
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-apl7/igt@p...@low-oa-exponent-permissions.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13747/shard-apl4/igt@p...@low-oa-exponent-permissions.html
- shard-skl:  [PASS][14] -> [TIMEOUT][15]
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-skl6/igt@p...@low-oa-exponent-permissions.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13747/shard-skl8/igt@p...@low-oa-exponent-permissions.html

  * igt@perf@non-sampling-read-error:
- shard-skl:  [PASS][16] -> [INCOMPLETE][17] +4 similar issues
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-skl4/igt@p...@non-sampling-read-error.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13747/shard-skl7/igt@p...@non-sampling-read-error.html

  * igt@perf@short-reads:
- shard-skl:  NOTRUN -> [DMESG-WARN][18]
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13747/shard-skl6/igt@p...@short-reads.html

  
 Warnings 

  * igt@perf@short-reads:
- shard-kbl:  [FAIL][19] ([fdo#103183]) -> [DMESG-WARN][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-kbl6/igt@p...@short-reads.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13747/shard-kbl6/igt@p...@short-reads.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_persistent_relocs@forked-interruptible-thrash-inactive:
- shard-iclb: [PASS][21] -> [INCOMPLETE][22] ([fdo#107713] / 
[fdo#109100])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-iclb8/igt@gem_persistent_rel...@forked-interruptible-thrash-inactive.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13747/shard-iclb7/igt@gem_persistent_rel...@forked-interruptible-thrash-inactive.html

  * igt@gem_softpin@noreloc-s3:
- shard-apl:  [PASS][23] -> [DMESG-WARN][24] ([fdo#108566]) +2 
similar issues
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-apl2/igt@g

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Capture vma contents outside of spinlock

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

Series: drm/i915: Capture vma contents outside of spinlock
URL   : https://patchwork.freedesktop.org/series/64256/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6552 -> Patchwork_13755


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

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

  * igt@kms_chamelium@dp-edid-read:
- fi-icl-u2:  [PASS][3] -> [FAIL][4] ([fdo#109483] / [fdo#109635 ])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-icl-u2/igt@kms_chamel...@dp-edid-read.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13755/fi-icl-u2/igt@kms_chamel...@dp-edid-read.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-icl-u3:  [PASS][5] -> [FAIL][6] ([fdo#103167])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-icl-u3/igt@kms_frontbuffer_track...@basic.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13755/fi-icl-u3/igt@kms_frontbuffer_track...@basic.html
- fi-icl-dsi: [PASS][7] -> [DMESG-WARN][8] ([fdo#106107])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-icl-dsi/igt@kms_frontbuffer_track...@basic.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13755/fi-icl-dsi/igt@kms_frontbuffer_track...@basic.html

  
 Possible fixes 

  * igt@gem_exec_reloc@basic-write-gtt:
- fi-icl-u3:  [DMESG-WARN][9] ([fdo#107724]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-icl-u3/igt@gem_exec_re...@basic-write-gtt.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13755/fi-icl-u3/igt@gem_exec_re...@basic-write-gtt.html

  * igt@kms_busy@basic-flip-a:
- fi-kbl-7567u:   [SKIP][11] ([fdo#109271] / [fdo#109278]) -> 
[PASS][12] +2 similar issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13755/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7567u:   [WARN][13] ([fdo#109380]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13755/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-c:
- fi-kbl-7567u:   [SKIP][15] ([fdo#109271]) -> [PASS][16] +23 similar 
issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13755/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html

  
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
  [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#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109380]: https://bugs.freedesktop.org/show_bug.cgi?id=109380
  [fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483
  [fdo#109635 ]: https://bugs.freedesktop.org/show_bug.cgi?id=109635 


Participating hosts (55 -> 46)
--

  Additional (1): fi-pnv-d510 
  Missing(10): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-ctg-p8600 fi-icl-y fi-icl-guc fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6552 -> Patchwork_13755

  CI-20190529: 20190529
  CI_DRM_6552: f9b5c6777cb0082fb7461ea8a57206b8de2d70dd @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5112: 7e4d10507088055413769a020dd674f52b4bc1b0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13755: d93e6d5f8083fdfa299c7e7da283a88802094607 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

d93e6d5f8083 drm/i915: Capture vma contents outside of spinlock

== Logs ==

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

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Capture vma contents outside of spinlock

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

Series: drm/i915: Capture vma contents outside of spinlock
URL   : https://patchwork.freedesktop.org/series/64256/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915: Capture vma contents outside of spinlock
-O:drivers/gpu/drm/i915/i915_gpu_error.c:1007:21: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_gpu_error.c:1007:21: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_gpu_error.c:1007:21: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_gpu_error.c:1007:21: warning: expression using 
sizeof(void)

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

Re: [Intel-gfx] [PATCH 18/22] drm/i915/tgl: Define MOCS entries for Tigerlake

2019-07-25 Thread Lis, Tomasz



On 2019-07-25 00:32, Lucas De Marchi wrote:

On Thu, Jul 18, 2019 at 10:09:27AM -0700, Daniele Ceraolo Spurio wrote:



On 7/18/19 6:08 AM, Ville Syrjälä wrote:

On Fri, Jul 12, 2019 at 06:09:36PM -0700, Lucas De Marchi wrote:

From: Tomasz Lis 

The MOCS table is published as part of bspec, and versioned. Entries
are supposed to never be modified, but new ones can be added. Adding
entries increases table version. The patch includes version 1 entries.

Two of the 3 legacy entries used for gen9 are no longer expected to 
work.
Although we are changing the gen11 table, those changes are 
supposed to

be backward compatible since we are only touching previously undefined
entries.

Cc: Joonas Lahtinen 
Cc: Mika Kuoppala 
Cc: Daniele Ceraolo Spurio 
Signed-off-by: Tomasz Lis 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/gt/intel_mocs.c | 25 ++---
 1 file changed, 22 insertions(+), 3 deletions(-)

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

index 290a5e9b90b9..259e7bec0a63 100644
--- a/drivers/gpu/drm/i915/gt/intel_mocs.c
+++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
@@ -62,6 +62,10 @@ struct drm_i915_mocs_table {
 #define GEN11_NUM_MOCS_ENTRIES    64  /* 63-64 are reserved, but 
configured. */

 /* (e)LLC caching options */
+/*
+ * Note: LE_0_PAGETABLE works only up to Gen11; for newer gens it 
means

+ * the same as LE_UC
+ */
 #define LE_0_PAGETABLE    _LE_CACHEABILITY(0)
 #define LE_1_UC    _LE_CACHEABILITY(1)
 #define LE_2_WT    _LE_CACHEABILITY(2)
@@ -100,8 +104,9 @@ struct drm_i915_mocs_table {
  * of bspec.
  *
  * Entries not part of the following tables are undefined as far as
- * userspace is concerned and shouldn't be relied upon. For the time
- * being they will be initialized to PTE.
+ * userspace is concerned and shouldn't be relied upon. For Gen < 12
+ * they will be initialized to PTE. Gen >= 12 onwards don't have a 
setting for

+ * PTE. We use the same value, but that actually means Uncached.
  *
  * The last two entries are reserved by the hardware. For ICL+ they
  * should be initialized according to bspec and never used, for older
@@ -137,11 +142,13 @@ static const struct drm_i915_mocs_entry 
broxton_mocs_table[] = {

 };
 #define GEN11_MOCS_ENTRIES \
-    /* Base - Uncached (Deprecated) */ \
+    /* Gen11: Base - Uncached (Deprecated) */ \
+    /* Gen12+: Base - Error (Reserved for Non-Use) */ \
 MOCS_ENTRY(I915_MOCS_UNCACHED, \
    LE_1_UC | LE_TC_1_LLC, \
    L3_1_UC), \
 /* Base - L3 + LeCC:PAT (Deprecated) */ \
+    /* Gen12+: Base - Reserved */ \
 MOCS_ENTRY(I915_MOCS_PTE, \
    LE_0_PAGETABLE | LE_TC_1_LLC, \
    L3_3_WB), \
@@ -233,6 +240,18 @@ static const struct drm_i915_mocs_entry 
broxton_mocs_table[] = {

 MOCS_ENTRY(23, \
    LE_3_WB | LE_TC_1_LLC | LE_LRUM(3) | LE_RSC(1) | 
LE_SCC(7), \

    L3_3_WB), \
+    /* Gen12+: HW Reserved - HDC:L1 + L3 + LLC */ \


Why is this marked as reserved? From the looks of things 48-61 should
just be normal entries that userspace can select to get HDC L1$. And
looks like icl already has that stuff. So someone should probably 
figure

out if Mesa/etc. can make use of the HDC L1$, and if so we should add
the relevant MOCS entries for icl as well.


Here the reserved terminology is indeed misleading. The 48-59 range 
is a "special" range where L1 usage is implicitly enabled by the HW, 
as there is no explicit L1 toggle in the MOCS registers. The reserved 
here means that the range shouldn't be used for "normal" MOCS 
settings, but SW can freely use these entries as needed. Similarly, 
MOCS 60 and 61 are reserved for other special purposes, but are still 
usable by SW. The only entries SW shouldn't touch are 62 and 63.


Regarding ICL, Gen11 HW doesn't have the capability so no new entries 
are required there.
It might be a good idea to find a better word for it than "reserved". 
Not only for this patch, but to be used everywhere, especially the spec.

But that exceeds the scope of this review.





+    MOCS_ENTRY(48, \
+   LE_3_WB | LE_TC_1_LLC | LE_LRUM(3), \
+   L3_3_WB), \
+    /* Gen12+: HW Reserved - HW Special Case (CCS) */ \


The specs have MOCS 49-51 defined as well.


humn... it seems they got added later.

I'm not sure anymore if we should update igt so it doesn't expect those
entries to be set to PTE or if we should stop reusing the same table for
ICL and TGL. Spec doesn't mention the compatibility of this table with
gen 11 anymore. Thoughts?



It doesn't sound right to change the implementation decision to keep them
together, only because this allows to keep tests intact.

I don't believe there's a reason to verify undefined entries in IGT.
Sometimes we do want to verify our specific implementation instead of
pure specs compliance; but I don't see a reason for this should be the 
case here.


The existing MOCS entries are supposed to be unchangeable (in 

[Intel-gfx] [PATCH] drm/i915: Capture vma contents outside of spinlock

2019-07-25 Thread Chris Wilson
Currently we use the engine->active.lock to ensure that the request is
not retired as we capture the data. However, we only need to ensure that
the vma are not removed prior to use acquiring their contents, and
since we have already relinquished our stop-machine protection, we
assume that the user will not be overwriting the contents before we are
able to record them.

In order to capture the vma outside of the spinlock, we acquire a
reference and mark the vma as active to prevent it from being unbound.
However, since it is tricky allocate an entry in the fence tree (doing
so would require taking a mutex) while inside the engine spinlock, we
use an atomic bit and special case the handling for i915_active_wait.

The core benefit is that we can use some non-atomic methods for mapping
the device pages, we can remove the slow compression phase out of atomic
context (i.e. stop antagonising the nmi-watchdog), and no we longer need
large reserves of atomic pages.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111215
Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/i915_active.c   |  34 ++-
 drivers/gpu/drm/i915/i915_active.h   |   3 +
 drivers/gpu/drm/i915/i915_active_types.h |   3 +
 drivers/gpu/drm/i915/i915_gpu_error.c| 113 ---
 4 files changed, 118 insertions(+), 35 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_active.c 
b/drivers/gpu/drm/i915/i915_active.c
index 13f304a29fc8..9cf2d5fe5eae 100644
--- a/drivers/gpu/drm/i915/i915_active.c
+++ b/drivers/gpu/drm/i915/i915_active.c
@@ -196,6 +196,7 @@ void __i915_active_init(struct drm_i915_private *i915,
debug_active_init(ref);
 
ref->i915 = i915;
+   ref->flags = 0;
ref->active = active;
ref->retire = retire;
ref->tree = RB_ROOT;
@@ -262,6 +263,34 @@ void i915_active_release(struct i915_active *ref)
active_retire(ref);
 }
 
+static void __active_ungrab(struct i915_active *ref)
+{
+   clear_and_wake_up_bit(I915_ACTIVE_GRAB, &ref->flags);
+}
+
+bool i915_active_trygrab(struct i915_active *ref)
+{
+   debug_active_assert(ref);
+
+   if (test_and_set_bit(I915_ACTIVE_GRAB, &ref->flags))
+   return false;
+
+   if (!atomic_add_unless(&ref->count, 1, 0)) {
+   __active_ungrab(ref);
+   return false;
+   }
+
+   return true;
+}
+
+void i915_active_ungrab(struct i915_active *ref)
+{
+   GEM_BUG_ON(!test_bit(I915_ACTIVE_GRAB, &ref->flags));
+
+   active_retire(ref);
+   __active_ungrab(ref);
+}
+
 int i915_active_wait(struct i915_active *ref)
 {
struct active_node *it, *n;
@@ -270,7 +299,7 @@ int i915_active_wait(struct i915_active *ref)
might_sleep();
might_lock(&ref->mutex);
 
-   if (RB_EMPTY_ROOT(&ref->tree))
+   if (i915_active_is_idle(ref))
return 0;
 
err = mutex_lock_interruptible(&ref->mutex);
@@ -292,6 +321,9 @@ int i915_active_wait(struct i915_active *ref)
if (err)
return err;
 
+   if (wait_on_bit(&ref->flags, I915_ACTIVE_GRAB, TASK_KILLABLE))
+   return -EINTR;
+
if (!i915_active_is_idle(ref))
return -EBUSY;
 
diff --git a/drivers/gpu/drm/i915/i915_active.h 
b/drivers/gpu/drm/i915/i915_active.h
index 134166d31251..ba68b077ec6c 100644
--- a/drivers/gpu/drm/i915/i915_active.h
+++ b/drivers/gpu/drm/i915/i915_active.h
@@ -395,6 +395,9 @@ int i915_active_acquire(struct i915_active *ref);
 void i915_active_release(struct i915_active *ref);
 void __i915_active_release_nested(struct i915_active *ref, int subclass);
 
+bool i915_active_trygrab(struct i915_active *ref);
+void i915_active_ungrab(struct i915_active *ref);
+
 static inline bool
 i915_active_is_idle(const struct i915_active *ref)
 {
diff --git a/drivers/gpu/drm/i915/i915_active_types.h 
b/drivers/gpu/drm/i915/i915_active_types.h
index 5b0a3024ce24..967bdf2f5dda 100644
--- a/drivers/gpu/drm/i915/i915_active_types.h
+++ b/drivers/gpu/drm/i915/i915_active_types.h
@@ -36,6 +36,9 @@ struct i915_active {
struct mutex mutex;
atomic_t count;
 
+   unsigned long flags;
+#define I915_ACTIVE_GRAB 0
+
int (*active)(struct i915_active *ref);
void (*retire)(struct i915_active *ref);
 
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c 
b/drivers/gpu/drm/i915/i915_gpu_error.c
index 56dfc2650836..4d01ae1461ea 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -298,7 +298,7 @@ static void *compress_next_page(struct compress *c,
if (dst->page_count >= dst->num_pages)
return ERR_PTR(-ENOSPC);
 
-   page = pool_alloc(&c->pool, ATOMIC_MAYFAIL);
+   page = pool_alloc(&c->pool, ALLOW_FAIL);
if (!page)
return ERR_PTR(-ENOMEM);
 
@@ -327,8 +327,6 @@ static int compress_page(struct compress *c,
 
if (zlib_deflate(zstream, Z_NO_FLUSH) != Z_OK)
return -EIO;
-
- 

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/guc: init submission structures as part of guc_init

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

Series: drm/i915/guc: init submission structures as part of guc_init
URL   : https://patchwork.freedesktop.org/series/64254/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6552 -> Patchwork_13754


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_selftest@live_hangcheck:
- fi-icl-u2:  [PASS][1] -> [INCOMPLETE][2] ([fdo#107713] / 
[fdo#108569])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-icl-u2/igt@i915_selftest@live_hangcheck.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13754/fi-icl-u2/igt@i915_selftest@live_hangcheck.html

  * igt@kms_chamelium@dp-crc-fast:
- fi-cml-u2:  [PASS][3] -> [FAIL][4] ([fdo#110387])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-cml-u2/igt@kms_chamel...@dp-crc-fast.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13754/fi-cml-u2/igt@kms_chamel...@dp-crc-fast.html

  
 Possible fixes 

  * igt@gem_exec_reloc@basic-write-gtt:
- fi-icl-u3:  [DMESG-WARN][5] ([fdo#107724]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-icl-u3/igt@gem_exec_re...@basic-write-gtt.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13754/fi-icl-u3/igt@gem_exec_re...@basic-write-gtt.html

  * igt@kms_busy@basic-flip-a:
- fi-kbl-7567u:   [SKIP][7] ([fdo#109271] / [fdo#109278]) -> [PASS][8] 
+2 similar issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13754/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7567u:   [WARN][9] ([fdo#109380]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13754/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-c:
- fi-kbl-7567u:   [SKIP][11] ([fdo#109271]) -> [PASS][12] +23 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13754/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html

  * igt@prime_vgem@basic-fence-flip:
- fi-kbl-7500u:   [SKIP][13] ([fdo#109271]) -> [PASS][14] +23 similar 
issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-kbl-7500u/igt@prime_v...@basic-fence-flip.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13754/fi-kbl-7500u/igt@prime_v...@basic-fence-flip.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#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109380]: https://bugs.freedesktop.org/show_bug.cgi?id=109380
  [fdo#110387]: https://bugs.freedesktop.org/show_bug.cgi?id=110387


Participating hosts (55 -> 46)
--

  Additional (1): fi-pnv-d510 
  Missing(10): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-ctg-p8600 fi-icl-y fi-icl-guc fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6552 -> Patchwork_13754

  CI-20190529: 20190529
  CI_DRM_6552: f9b5c6777cb0082fb7461ea8a57206b8de2d70dd @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5112: 7e4d10507088055413769a020dd674f52b4bc1b0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13754: 55c45b08bcdcbb9d63b91b9181370dc82e009dd4 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

55c45b08bcdc drm/i915/guc: init submission structures as part of guc_init

== Logs ==

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

[Intel-gfx] ✗ Fi.CI.BAT: failure for Revert "ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips" (rev4)

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

Series: Revert "ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips" 
(rev4)
URL   : https://patchwork.freedesktop.org/series/64212/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6552 -> Patchwork_13753


Summary
---

  **FAILURE**

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

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

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@i915_module_load@reload:
- fi-skl-6700k2:  [PASS][1] -> [DMESG-WARN][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-skl-6700k2/igt@i915_module_l...@reload.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13753/fi-skl-6700k2/igt@i915_module_l...@reload.html
- fi-skl-guc: [PASS][3] -> [DMESG-WARN][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-skl-guc/igt@i915_module_l...@reload.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13753/fi-skl-guc/igt@i915_module_l...@reload.html

  * igt@runner@aborted:
- fi-bxt-j4205:   NOTRUN -> [FAIL][5]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13753/fi-bxt-j4205/igt@run...@aborted.html
- fi-whl-u:   NOTRUN -> [FAIL][6]
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13753/fi-whl-u/igt@run...@aborted.html
- fi-cml-u2:  NOTRUN -> [FAIL][7]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13753/fi-cml-u2/igt@run...@aborted.html
- fi-cml-u:   NOTRUN -> [FAIL][8]
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13753/fi-cml-u/igt@run...@aborted.html
- fi-bxt-dsi: NOTRUN -> [FAIL][9]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13753/fi-bxt-dsi/igt@run...@aborted.html
- fi-apl-guc: NOTRUN -> [FAIL][10]
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13753/fi-apl-guc/igt@run...@aborted.html
- fi-bdw-5557u:   NOTRUN -> [FAIL][11]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13753/fi-bdw-5557u/igt@run...@aborted.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850:   [PASS][12] -> [INCOMPLETE][13] ([fdo#107718])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-blb-e6850/igt@gem_exec_susp...@basic-s3.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13753/fi-blb-e6850/igt@gem_exec_susp...@basic-s3.html

  
 Possible fixes 

  * igt@gem_exec_reloc@basic-write-gtt:
- fi-icl-u3:  [DMESG-WARN][14] ([fdo#107724]) -> [PASS][15]
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-icl-u3/igt@gem_exec_re...@basic-write-gtt.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13753/fi-icl-u3/igt@gem_exec_re...@basic-write-gtt.html

  * igt@i915_module_load@reload:
- fi-icl-u3:  [TIMEOUT][16] ([fdo#111214]) -> [PASS][17]
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-icl-u3/igt@i915_module_l...@reload.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13753/fi-icl-u3/igt@i915_module_l...@reload.html

  
 Warnings 

  * igt@i915_module_load@reload:
- fi-icl-u2:  [TIMEOUT][18] ([fdo#111214]) -> [DMESG-WARN][19] 
([fdo#110595])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-icl-u2/igt@i915_module_l...@reload.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13753/fi-icl-u2/igt@i915_module_l...@reload.html

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


Participating hosts (55 -> 45)
--

  Additional (1): fi-pnv-d510 
  Missing(11): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-icl-y fi-icl-guc fi-icl-dsi 
fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6552 -> Patchwork_13753

  CI-20190529: 20190529
  CI_DRM_6552: f9b5c6777cb0082fb7461ea8a57206b8de2d70dd @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5112: 7e4d10507088055413769a020dd674f52b4bc1b0 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_13753: 4c375059e361b3b8

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Unshare the idle-barrier from other kernel requests (rev4)

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

Series: drm/i915: Unshare the idle-barrier from other kernel requests (rev4)
URL   : https://patchwork.freedesktop.org/series/64171/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6549_full -> Patchwork_13746_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * {igt@i915_selftest@live_gt_contexts} (NEW):
- shard-hsw:  NOTRUN -> [DMESG-FAIL][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13746/shard-hsw2/igt@i915_selftest@live_gt_contexts.html
- shard-snb:  NOTRUN -> [DMESG-FAIL][2]
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13746/shard-snb5/igt@i915_selftest@live_gt_contexts.html

  
New tests
-

  New tests have been introduced between CI_DRM_6549_full and 
Patchwork_13746_full:

### New IGT tests (2) ###

  * igt@i915_selftest@live_gem_contexts:
- Statuses : 7 pass(s)
- Exec time: [5.06, 34.34] s

  * igt@i915_selftest@live_gt_contexts:
- Statuses : 2 dmesg-fail(s) 5 pass(s)
- Exec time: [0.39, 2.33] s

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@rcs0-s3:
- shard-skl:  [PASS][3] -> [INCOMPLETE][4] ([fdo#104108])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-skl10/igt@gem_ctx_isolat...@rcs0-s3.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13746/shard-skl4/igt@gem_ctx_isolat...@rcs0-s3.html

  * igt@i915_pm_rpm@i2c:
- shard-hsw:  [PASS][5] -> [FAIL][6] ([fdo#104097])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-hsw4/igt@i915_pm_...@i2c.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13746/shard-hsw2/igt@i915_pm_...@i2c.html

  * igt@i915_suspend@debugfs-reader:
- shard-apl:  [PASS][7] -> [DMESG-WARN][8] ([fdo#108566])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-apl3/igt@i915_susp...@debugfs-reader.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13746/shard-apl5/igt@i915_susp...@debugfs-reader.html

  * igt@kms_busy@basic-modeset-a:
- shard-apl:  [PASS][9] -> [INCOMPLETE][10] ([fdo#103927])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-apl3/igt@kms_b...@basic-modeset-a.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13746/shard-apl1/igt@kms_b...@basic-modeset-a.html

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

  * igt@kms_plane_lowres@pipe-a-tiling-y:
- shard-iclb: [PASS][13] -> [FAIL][14] ([fdo#103166])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-iclb2/igt@kms_plane_low...@pipe-a-tiling-y.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13746/shard-iclb4/igt@kms_plane_low...@pipe-a-tiling-y.html

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

  * igt@kms_psr@no_drrs:
- shard-iclb: [PASS][17] -> [FAIL][18] ([fdo#108341])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-iclb6/igt@kms_psr@no_drrs.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13746/shard-iclb1/igt@kms_psr@no_drrs.html

  * igt@kms_psr@psr2_primary_page_flip:
- shard-iclb: [PASS][19] -> [SKIP][20] ([fdo#109441]) +5 similar 
issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6549/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13746/shard-iclb4/igt@kms_psr@psr2_primary_page_flip.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_6549/shard-kbl6/igt@kms_setm...@basic.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13746/shard-kbl4/igt@kms_setm...@basic.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
- shard-kbl:  [PASS][23] -> [DMESG-WARN][24] ([fdo#108566]) +5 
similar issues
   [23]: 
https://intel-gfx-ci.01.org/t

[Intel-gfx] [PATCH] drm/i915/guc: init submission structures as part of guc_init

2019-07-25 Thread Daniele Ceraolo Spurio
guc->stage_desc_pool is required as part of the init parameters and
there is no reason we have to init them after HuC. This fixes a NULL
ptr dereference due to guc->stage_desc_pool not being set (no fixes
tag since GuC submission can't be enabled yet).

Signed-off-by: Daniele Ceraolo Spurio 
Cc: Michal Wajdeczko 
Cc: Chris Wilson 
---
 drivers/gpu/drm/i915/gt/uc/intel_guc.c | 15 +++
 drivers/gpu/drm/i915/gt/uc/intel_uc.c  | 16 
 2 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
index 1ea6a9e50c02..13fbbffd05c7 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
@@ -290,6 +290,16 @@ int intel_guc_init(struct intel_guc *guc)
if (ret)
goto err_ads;
 
+   if (intel_uc_is_using_guc_submission(>->uc)) {
+   /*
+* This is stuff we need to have available at fw load time
+* if we are planning to enable submission later
+*/
+   ret = intel_guc_submission_init(guc);
+   if (ret)
+   goto err_ct;
+   }
+
/* now that everything is perma-pinned, initialize the parameters */
guc_init_params(guc);
 
@@ -298,6 +308,8 @@ int intel_guc_init(struct intel_guc *guc)
 
return 0;
 
+err_ct:
+   intel_guc_ct_fini(&guc->ct);
 err_ads:
intel_guc_ads_destroy(guc);
 err_log:
@@ -317,6 +329,9 @@ void intel_guc_fini(struct intel_guc *guc)
 
i915_ggtt_disable_guc(gt->ggtt);
 
+   if (intel_uc_is_using_guc_submission(>->uc))
+   intel_guc_submission_fini(guc);
+
intel_guc_ct_fini(&guc->ct);
 
intel_guc_ads_destroy(guc);
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c 
b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
index b1815abecf30..8eef85696ec2 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
@@ -397,21 +397,8 @@ int intel_uc_init(struct intel_uc *uc)
goto err_guc;
}
 
-   if (intel_uc_is_using_guc_submission(uc)) {
-   /*
-* This is stuff we need to have available at fw load time
-* if we are planning to enable submission later
-*/
-   ret = intel_guc_submission_init(guc);
-   if (ret)
-   goto err_huc;
-   }
-
return 0;
 
-err_huc:
-   if (intel_uc_is_using_huc(uc))
-   intel_huc_fini(huc);
 err_guc:
intel_guc_fini(guc);
return ret;
@@ -426,9 +413,6 @@ void intel_uc_fini(struct intel_uc *uc)
 
GEM_BUG_ON(!intel_uc_fw_supported(&guc->fw));
 
-   if (intel_uc_is_using_guc_submission(uc))
-   intel_guc_submission_fini(guc);
-
if (intel_uc_is_using_huc(uc))
intel_huc_fini(&uc->huc);
 
-- 
2.22.0

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

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Revert "ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips" (rev4)

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

Series: Revert "ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips" 
(rev4)
URL   : https://patchwork.freedesktop.org/series/64212/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
4c375059e361 Revert "ALSA: hda - Fix intermittent CORB/RIRB stall on Intel 
chips"
-:13: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#13: 
> > > https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13745/fi-icl-u2/igt@i915_module_l...@reload.html

-:117: WARNING:IF_0: Consider removing the code enclosed by this #if 0 and its 
#endif
#117: FILE: sound/pci/hda/patch_hdmi.c:2578:
+#if 0 // XXX

-:130: WARNING:IF_0: Consider removing the code enclosed by this #if 0 and its 
#endif
#130: FILE: sound/pci/hda/patch_hdmi.c:2600:
+#if 0 // XXX

-:141: ERROR:MISSING_SIGN_OFF: Missing Signed-off-by: line(s)

total: 1 errors, 3 warnings, 0 checks, 36 lines checked

___
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/guc: Define GuC firmware version for Comet Lake (rev5)

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

Series: drm/i915/guc: Define GuC firmware version for Comet Lake (rev5)
URL   : https://patchwork.freedesktop.org/series/62969/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6552 -> Patchwork_13752


Summary
---

  **FAILURE**

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

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

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@kms_chamelium@dp-crc-fast:
- fi-cml-u2:  [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-cml-u2/igt@kms_chamel...@dp-crc-fast.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13752/fi-cml-u2/igt@kms_chamel...@dp-crc-fast.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_basic@bad-close:
- fi-icl-u3:  [PASS][3] -> [DMESG-WARN][4] ([fdo#107724])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-icl-u3/igt@gem_ba...@bad-close.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13752/fi-icl-u3/igt@gem_ba...@bad-close.html

  * igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850:   [PASS][5] -> [INCOMPLETE][6] ([fdo#107718])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-blb-e6850/igt@gem_exec_susp...@basic-s3.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13752/fi-blb-e6850/igt@gem_exec_susp...@basic-s3.html

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

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

  
 Possible fixes 

  * igt@gem_exec_reloc@basic-write-gtt:
- fi-icl-u3:  [DMESG-WARN][11] ([fdo#107724]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-icl-u3/igt@gem_exec_re...@basic-write-gtt.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13752/fi-icl-u3/igt@gem_exec_re...@basic-write-gtt.html

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7567u:   [WARN][13] ([fdo#109380]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13752/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html

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

  * igt@kms_pipe_crc_basic@read-crc-pipe-c:
- fi-kbl-7567u:   [SKIP][17] ([fdo#109271]) -> [PASS][18] +23 similar 
issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6552/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13752/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html

  
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108840]: https://bugs.freedesktop.org/show_bug.cgi?id=108840
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109380]: https://bugs.freedesktop.org/show_bug.cgi?id=109380
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485


Participating hosts (55 -> 46)
--

  Additional (1): fi-pnv-d510 
  Missing(10): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-ctg-p8600 fi-icl-y fi-icl-guc fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6552 -> Patchw

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2,1/3] drm/i915: Fix GuC documentation links

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

Series: series starting with [v2,1/3] drm/i915: Fix GuC documentation links
URL   : https://patchwork.freedesktop.org/series/64237/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6551 -> Patchwork_13751


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


  Here are the changes found in Patchwork_13751 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_6551/fi-icl-dsi/igt@gem_ctx_cre...@basic-files.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/fi-icl-dsi/igt@gem_ctx_cre...@basic-files.html

  * igt@kms_busy@basic-flip-a:
- fi-kbl-7567u:   [PASS][3] -> [SKIP][4] ([fdo#109271] / [fdo#109278]) 
+2 similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html

  * igt@kms_busy@basic-flip-c:
- fi-kbl-7500u:   [PASS][5] -> [SKIP][6] ([fdo#109271] / [fdo#109278]) 
+2 similar issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-kbl-7500u/igt@kms_b...@basic-flip-c.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/fi-kbl-7500u/igt@kms_b...@basic-flip-c.html

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7567u:   [PASS][7] -> [WARN][8] ([fdo#109380])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html

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

  * igt@kms_pipe_crc_basic@read-crc-pipe-c:
- fi-kbl-7567u:   [PASS][11] -> [SKIP][12] ([fdo#109271]) +23 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html

  
 Possible fixes 

  * igt@gem_ctx_create@basic-files:
- fi-skl-gvtdvm:  [TIMEOUT][13] -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-skl-gvtdvm/igt@gem_ctx_cre...@basic-files.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/fi-skl-gvtdvm/igt@gem_ctx_cre...@basic-files.html

  * {igt@gem_ctx_switch@rcs0}:
- {fi-icl-guc}:   [INCOMPLETE][15] ([fdo#107713]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-icl-guc/igt@gem_ctx_swi...@rcs0.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/fi-icl-guc/igt@gem_ctx_swi...@rcs0.html

  * igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850:   [INCOMPLETE][17] ([fdo#107718]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-blb-e6850/igt@gem_exec_susp...@basic-s3.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/fi-blb-e6850/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_module_load@reload-with-fault-injection:
- fi-snb-2520m:   [INCOMPLETE][19] ([fdo#105411]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-snb-2520m/igt@i915_module_l...@reload-with-fault-injection.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/fi-snb-2520m/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@kms_chamelium@hdmi-crc-fast:
- {fi-icl-u4}:[FAIL][21] ([fdo#111045] / [fdo#111046 ]) -> 
[PASS][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-icl-u4/igt@kms_chamel...@hdmi-crc-fast.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/fi-icl-u4/igt@kms_chamel...@hdmi-crc-fast.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-icl-u3:  [FAIL][23] ([fdo#103167]) -> [PASS][24]
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-icl-u3/igt@kms_frontbuffer_track...@basic.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751/fi-icl-u3/igt@kms_frontbuffer_track...@basic.html
- fi-icl-u2:  [FAIL][25] ([fdo#103167]) -> [PASS][26]
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-icl-u2/igt@kms_frontbuffer_track...@basic.html
   [26]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13751

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

2019-07-25 Thread Sean Paul

Hi all,
Substitute-Maarten here for another pull request. This week is pretty light, as
you would expect. I merged a leftover nugget from drm-misc-next that didn't make
-rc1 and am abusing covering for Maarten by sneaking in a handful of msm
changes to avoid having to send 2 pulls.


drm-misc-fixes-2019-07-25:
- pick up the cmdline fix which missed the merge window (Dmitry)
- a handful of msm fixes so i don't have to spin up msm-fixes (Various)
- fix -Wunused-but-set-variable warning in drm_framebuffer (Qian)

Cc: Dmitry Osipenko 
Cc: Rob Clark 
Cc: Qian Cai 

Cheers, Sean


The following changes since commit 5f9e832c137075045d15cd6899ab0505cfb2ca4b:

  Linus 5.3-rc1 (2019-07-21 14:05:38 -0700)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-fixes-2019-07-25

for you to fetch changes up to bbb6fc43f131f77fcb7ae8081f6d7c51396a2120:

  drm: silence variable 'conn' set but not used (2019-07-22 16:04:53 -0400)


- pick up the cmdline fix which missed the merge window (Dmitry)
- a handful of msm fixes so i don't have to spin up msm-fixes (Various)
- fix -Wunused-but-set-variable warning in drm_framebuffer (Qian)

Cc: Dmitry Osipenko 
Cc: Rob Clark 
Cc: Qian Cai 


Brian Masney (1):
  drm/msm: correct NULL pointer dereference in context_init

Dmitry Osipenko (1):
  drm/modes: Don't apply cmdline's rotation if it wasn't specified

Qian Cai (1):
  drm: silence variable 'conn' set but not used

Rob Clark (1):
  drm/msm: stop abusing dma_map/unmap for cache

Sean Paul (1):
  Merge drm-misc-next-fixes-2019-07-18 into drm-misc-fixes

Shubhashree Dhar (1):
  drm/msm/dpu: Correct dpu encoder spinlock initialization

 drivers/gpu/drm/drm_client_modeset.c| 2 +-
 drivers/gpu/drm/drm_framebuffer.c   | 2 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 3 +--
 drivers/gpu/drm/msm/msm_drv.c   | 2 +-
 drivers/gpu/drm/msm/msm_gem.c   | 4 ++--
 5 files changed, 6 insertions(+), 7 deletions(-)

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

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v2,1/3] drm/i915: Fix GuC documentation links

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

Series: series starting with [v2,1/3] drm/i915: Fix GuC documentation links
URL   : https://patchwork.freedesktop.org/series/64237/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
5ed7463b65ac drm/i915: Fix GuC documentation links
-:9: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#9: 
References: commit 0f261b241d9c ("drm/i915/uc: move GuC and HuC files under 
gt/uc/")

total: 0 errors, 1 warnings, 0 checks, 33 lines checked
e6ce40273824 drm/i915/uc: Update drawing for firmware layout
e1e2f6e499d8 drm/i915/uc: Move uc firmware layout definitions to dedicated file
-:120: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#120: 
new file mode 100644

-:173: WARNING:BLOCK_COMMENT_STYLE: Block comments use a trailing */ on a 
separate line
#173: FILE: drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h:49:
+* key, modulus key and exponent data. */

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

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

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915/gt: Add to timeline requires the timeline mutex

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

Series: series starting with [1/2] drm/i915/gt: Add to timeline requires the 
timeline mutex
URL   : https://patchwork.freedesktop.org/series/64227/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6551 -> Patchwork_13750


Summary
---

  **SUCCESS**

  No regressions found.

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

New tests
-

  New tests have been introduced between CI_DRM_6551 and Patchwork_13750:

### New IGT tests (2) ###

  * igt@i915_selftest@live_gem_contexts:
- Statuses : 46 pass(s)
- Exec time: [0.40, 28.30] s

  * igt@i915_selftest@live_gt_contexts:
- Statuses : 46 pass(s)
- Exec time: [0.38, 1.34] s

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_busy@basic-flip-a:
- fi-kbl-7567u:   [PASS][1] -> [SKIP][2] ([fdo#109271] / [fdo#109278]) 
+2 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/fi-kbl-7567u/igt@kms_b...@basic-flip-a.html

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7567u:   [PASS][3] -> [WARN][4] ([fdo#109380])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-c:
- fi-kbl-7567u:   [PASS][5] -> [SKIP][6] ([fdo#109271]) +23 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html

  
 Possible fixes 

  * igt@gem_ctx_create@basic-files:
- fi-skl-gvtdvm:  [TIMEOUT][7] -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-skl-gvtdvm/igt@gem_ctx_cre...@basic-files.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/fi-skl-gvtdvm/igt@gem_ctx_cre...@basic-files.html

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

  * igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850:   [INCOMPLETE][11] ([fdo#107718]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-blb-e6850/igt@gem_exec_susp...@basic-s3.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/fi-blb-e6850/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_module_load@reload-with-fault-injection:
- fi-snb-2520m:   [INCOMPLETE][13] ([fdo#105411]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-snb-2520m/igt@i915_module_l...@reload-with-fault-injection.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/fi-snb-2520m/igt@i915_module_l...@reload-with-fault-injection.html

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

  * igt@kms_chamelium@hdmi-hpd-fast:
- {fi-icl-u4}:[FAIL][17] ([fdo#109485]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-icl-u4/igt@kms_chamel...@hdmi-hpd-fast.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/fi-icl-u4/igt@kms_chamel...@hdmi-hpd-fast.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-icl-u3:  [FAIL][19] ([fdo#103167]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-icl-u3/igt@kms_frontbuffer_track...@basic.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/fi-icl-u3/igt@kms_frontbuffer_track...@basic.html
- fi-icl-u2:  [FAIL][21] ([fdo#103167]) -> [PASS][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-icl-u2/igt@kms_frontbuffer_track...@basic.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/fi-icl-u2/igt@kms_frontbuffer_track...@basic.html

  * igt@vgem_basic@setversion:
- fi-icl-dsi: [DMESG-WARN][23] ([fdo#106107]) -> [PASS][24]
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-icl-dsi/igt@vgem_ba...@setversion.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13750/fi-icl-dsi/igt@vgem_ba...@set

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Do not rely on for loop caching the mask

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

Series: drm/i915: Do not rely on for loop caching the mask
URL   : https://patchwork.freedesktop.org/series/64225/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6551 -> Patchwork_13749


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@kms_addfb_basic@invalid-set-prop-any:
- fi-icl-dsi: [PASS][1] -> [INCOMPLETE][2] ([fdo#107713])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-icl-dsi/igt@kms_addfb_ba...@invalid-set-prop-any.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/fi-icl-dsi/igt@kms_addfb_ba...@invalid-set-prop-any.html

  * igt@kms_busy@basic-flip-c:
- fi-kbl-7500u:   [PASS][3] -> [SKIP][4] ([fdo#109271] / [fdo#109278]) 
+2 similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-kbl-7500u/igt@kms_b...@basic-flip-c.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/fi-kbl-7500u/igt@kms_b...@basic-flip-c.html

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7567u:   [PASS][5] -> [WARN][6] ([fdo#109380])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/fi-kbl-7567u/igt@kms_chamel...@common-hpd-after-suspend.html

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

  * igt@kms_pipe_crc_basic@read-crc-pipe-c:
- fi-kbl-7567u:   [PASS][9] -> [SKIP][10] ([fdo#109271]) +23 similar 
issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/fi-kbl-7567u/igt@kms_pipe_crc_ba...@read-crc-pipe-c.html

  
 Possible fixes 

  * igt@gem_ctx_create@basic-files:
- fi-skl-gvtdvm:  [TIMEOUT][11] -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-skl-gvtdvm/igt@gem_ctx_cre...@basic-files.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/fi-skl-gvtdvm/igt@gem_ctx_cre...@basic-files.html

  * {igt@gem_ctx_switch@rcs0}:
- {fi-icl-guc}:   [INCOMPLETE][13] ([fdo#107713]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-icl-guc/igt@gem_ctx_swi...@rcs0.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/fi-icl-guc/igt@gem_ctx_swi...@rcs0.html

  * igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850:   [INCOMPLETE][15] ([fdo#107718]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-blb-e6850/igt@gem_exec_susp...@basic-s3.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/fi-blb-e6850/igt@gem_exec_susp...@basic-s3.html

  * igt@i915_module_load@reload-with-fault-injection:
- fi-snb-2520m:   [INCOMPLETE][17] ([fdo#105411]) -> [PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-snb-2520m/igt@i915_module_l...@reload-with-fault-injection.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/fi-snb-2520m/igt@i915_module_l...@reload-with-fault-injection.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-icl-u3:  [FAIL][19] ([fdo#103167]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-icl-u3/igt@kms_frontbuffer_track...@basic.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/fi-icl-u3/igt@kms_frontbuffer_track...@basic.html

  * igt@prime_vgem@basic-fence-flip:
- fi-kbl-7500u:   [SKIP][21] ([fdo#109271]) -> [PASS][22] +23 similar 
issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6551/fi-kbl-7500u/igt@prime_v...@basic-fence-flip.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13749/fi-kbl-7500u/igt@prime_v...@basic-fence-flip.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#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109380]: https://bug

Re: [Intel-gfx] [PATCH] drm/i915/guc: Define GuC firmware version for Comet Lake

2019-07-25 Thread Daniele Ceraolo Spurio



On 7/25/19 7:27 AM, Michal Wajdeczko wrote:

 From GT perspective, Comet Lake is just Coffe Lake rev 5,
but there is dedicated GuC firmware for it.


According to Anusha there is also a dedicated HuC FW for it, which 
should be coming out soon, so we should probably wait and add them both 
at the same time since we still don't have a use for GuC by itself 
(because submission is still off).


Daniele



Signed-off-by: Michal Wajdeczko 
Cc: Daniele Ceraolo Spurio 
Cc: Anusha Srivatsa 
---
  drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c 
b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
index 789b3d7228a4..3519418b17ce 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
@@ -35,6 +35,7 @@
   */
  #define INTEL_UC_FIRMWARE_DEFS(fw_def, guc_def, huc_def) \
fw_def(ICELAKE,0, guc_def(icl, 33, 0, 0), huc_def(icl,  8,  4, 
3238)) \
+   fw_def(COFFEELAKE, 5, guc_def(cml, 33, 0, 0), huc_def(kbl, 02, 00, 
1810)) \
fw_def(COFFEELAKE, 0, guc_def(kbl, 33, 0, 0), huc_def(kbl, 02, 00, 
1810)) \
fw_def(GEMINILAKE, 0, guc_def(glk, 33, 0, 0), huc_def(glk, 03, 01, 
2893)) \
fw_def(KABYLAKE,   0, guc_def(kbl, 33, 0, 0), huc_def(kbl, 02, 00, 
1810)) \


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

Re: [Intel-gfx] [PATCH] Revert "ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips"

2019-07-25 Thread Takashi Iwai
On Thu, 25 Jul 2019 15:57:10 +0200,
Chris Wilson wrote:
> 
> Quoting Takashi Iwai (2019-07-25 14:45:10)
> > On Thu, 25 Jul 2019 12:49:12 +0200,
> > Chris Wilson wrote:
> > > https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13745/fi-icl-u2/igt@i915_module_l...@reload.html
> > > <4> [383.858354] snd_hda_intel :00:1f.3: azx_get_response timeout, 
> > > switching to polling mode: last cmd=0x20170500
> > > <4> [384.860261] snd_hda_intel :00:1f.3: No response from codec, 
> > > disabling MSI: last cmd=0x20170500
> > > <3> [556.636243] snd_hda_codec_hdmi hdaudioC0D2: Unable to sync register 
> > > 0x2f8100. -11
> > 
> > Looking at the logs around this, you can find:
> > 
> > <7>[  380.741747] [IGT] i915_module_load: executing
> > <7>[  380.745788] [IGT] i915_module_load: starting subtest reload
> > <4>[  383.858354] snd_hda_intel :00:1f.3: azx_get_response timeout, 
> > switching to polling mode: last cmd=0x20170500
> > <4>[  384.860261] snd_hda_intel :00:1f.3: No response from codec, 
> > disabling MSI: last cmd=0x20170500
> > <3>[  556.636243] snd_hda_codec_hdmi hdaudioC0D2: Unable to sync register 
> > 0x2f8100. -11
> > <3>[  556.636243] snd_hda_codec_hdmi hdaudioC0D2: Unable to sync register 
> > 0x2f8100. -11
> > <7>[  556.636556] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port B
> > <7>[  556.636681] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port B
> > <7>[  556.636775] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port B
> > <7>[  556.636865] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port C
> > <7>[  556.636959] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port C
> > <7>[  556.637042] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port C
> > <7>[  556.637134] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port D
> > <7>[  556.637312] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port D
> > <7>[  556.637445] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port E
> > <7>[  556.637557] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port E
> > <7>[  556.637664] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port E
> > <7>[  556.637751] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port F
> > <7>[  556.637825] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port F
> > <7>[  556.637900] [drm:i915_audio_component_get_eld [i915]] Not valid for 
> > port F
> > <7>[  556.679134] [IGT] i915_module_load: executing
> > <7>[  556.681585] [IGT] i915_module_load: starting subtest reload-no-display
> > 
> > What does it actually do?  First off, there is a big gap in the
> > timestamps between 384 and 556.
> 
> Therein is where our current problem lies. Looking at the run just before
> this pair of commits,
> 
> <6> [405.838716] [IGT] i915_module_load: executing
> <6> [405.841651] [IGT] i915_module_load: starting subtest reload
> <4> [408.976245] snd_hda_intel :00:1f.3: azx_get_response timeout, 
> switching to polling mode: last cmd=0x202f8100
> <4> [409.980171] snd_hda_intel :00:1f.3: No response from codec, 
> disabling MSI: last cmd=0x202f8100
> <3> [410.985180] snd_hda_intel :00:1f.3: azx_get_response timeout, 
> switching to single_cmd mode: last cmd=0x202f8100
> <3> [411.227736] snd_hda_codec_hdmi hdaudioC0D2: Unable to sync register 
> 0x2f8100. -5
> <7> [411.227849] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> B
> <7> [411.227886] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> B
> <7> [411.227917] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> C
> <7> [411.227947] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> C
> <7> [411.228004] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> C
> <7> [411.228041] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> D
> <7> [411.228077] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> D
> <7> [411.228125] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> D
> <7> [411.228160] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> E
> <7> [411.228187] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> E
> <7> [411.228214] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> E
> <7> [411.228239] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> F
> <7> [411.228265] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> F
> <7> [411.228291] [drm:i915_audio_component_get_eld [i915]] Not valid for port 
> F
> 
> Same error, but no delay.

OK, that sheds some light.  With the recent fix using the write-sync,
each verb execution is synchronous and waits for the codec response.
And judging from the log, at this state, the codec doesn't respond
properly, so each verb execution gets some delay.  This accumulated as
a large delay in the end, now appearing as a significant timeout
error.

S

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915/gt: Add to timeline requires the timeline mutex

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

Series: series starting with [1/2] drm/i915/gt: Add to timeline requires the 
timeline mutex
URL   : https://patchwork.freedesktop.org/series/64227/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
400f113b3b2b drm/i915/gt: Add to timeline requires the timeline mutex
7b3634ed02fa drm/i915: Unshare the idle-barrier from other kernel requests
-:112: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#112: 
new file mode 100644

-:117: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier 
tag in line 1
#117: FILE: drivers/gpu/drm/i915/gt/selftest_context.c:1:
+/*

-:118: WARNING:SPDX_LICENSE_TAG: Misplaced SPDX-License-Identifier tag - use 
line 1 instead
#118: FILE: drivers/gpu/drm/i915/gt/selftest_context.c:2:
+ * SPDX-License-Identifier: GPL-2.0

-:372: WARNING:LONG_LINE: line over 100 characters
#372: FILE: drivers/gpu/drm/i915/gt/selftest_context.c:256:
+   pr_err("remote context is not active; expected 
idle-barrier (pass %d)\n", pass);

total: 0 errors, 4 warnings, 0 checks, 528 lines checked

___
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 2/2] i915/gem_ctx_shared: Avoid clflush by using WC for readback

2019-07-25 Thread Matthew Auld
On Tue, 23 Jul 2019 at 17:17, Chris Wilson  wrote:
>
> As we never officially write to the scratch buffer, the kernel will
> leave it in the CPU read domain upon execution. Our attempt to
> invalidate the CPU cache on !llc is therefore skipped as the kernel
> doesn't believe the backing store has been invalidated. Use a WC mmap to
> avoid the CPU cache for readback, and add an extra sanity check that the
> scratch buffer is found at the same location after execution. (This
> sanity check does not affect the failure rate on bsw, that is only fixed
> after realising that we do not clflush for the invalidate prior to the
> read).
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87
> Signed-off-by: Chris Wilson 
Reviewed-by: Matthew Auld 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] [PATCH] drm/i915/guc: Define GuC firmware version for Comet Lake

2019-07-25 Thread Michal Wajdeczko
From GT perspective, Comet Lake is just Coffe Lake rev 5,
but there is dedicated GuC firmware for it.

Signed-off-by: Michal Wajdeczko 
Cc: Daniele Ceraolo Spurio 
Cc: Anusha Srivatsa 
---
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c 
b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
index 789b3d7228a4..3519418b17ce 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
@@ -35,6 +35,7 @@
  */
 #define INTEL_UC_FIRMWARE_DEFS(fw_def, guc_def, huc_def) \
fw_def(ICELAKE,0, guc_def(icl, 33, 0, 0), huc_def(icl,  8,  4, 
3238)) \
+   fw_def(COFFEELAKE, 5, guc_def(cml, 33, 0, 0), huc_def(kbl, 02, 00, 
1810)) \
fw_def(COFFEELAKE, 0, guc_def(kbl, 33, 0, 0), huc_def(kbl, 02, 00, 
1810)) \
fw_def(GEMINILAKE, 0, guc_def(glk, 33, 0, 0), huc_def(glk, 03, 01, 
2893)) \
fw_def(KABYLAKE,   0, guc_def(kbl, 33, 0, 0), huc_def(kbl, 02, 00, 
1810)) \
-- 
2.19.2

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

[Intel-gfx] [PATCH v2 3/3] drm/i915/uc: Move uc firmware layout definitions to dedicated file

2019-07-25 Thread Michal Wajdeczko
Generic uc firmware layout definitions are unlikely to change and
are separate to other GuC specific definitions.

v2: reordered

Signed-off-by: Michal Wajdeczko 
Cc: Daniele Ceraolo Spurio 
Reviewed-by: Daniele Ceraolo Spurio 
---
 Documentation/gpu/i915.rst   |  2 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h  | 67 -
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c |  1 +
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h | 78 
 4 files changed, 80 insertions(+), 68 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h

diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
index 3e233f9d675f..0e322688be5c 100644
--- a/Documentation/gpu/i915.rst
+++ b/Documentation/gpu/i915.rst
@@ -433,7 +433,7 @@ GuC
 Firmware Layout
 ---
 
-.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
+.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h
:doc: Firmware Layout
 
 GuC-specific firmware loader
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
index 108b386c52ec..06a9bdfb0faf 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
@@ -121,73 +121,6 @@
 
 #define GUC_CTL_MAX_DWORDS (SOFT_SCRATCH_COUNT - 2) /* [1..14] */
 
-/**
- * DOC: Firmware Layout
- *
- * The GuC/HuC firmware layout looks like this::
- *
- *  
+==+
- *  |  Firmware blob   
|
- *  
+===+===++++
- *  |  CSS header   | uCode |  RSA key   |  modulus   |  exponent  
|
- *  
+===+===++++
- *   <-header size-> <---header size continued --->
- *   <--- size --->
- *   <-key size->
- *<-mod size->
- * <-exp size->
- *
- * The firmware may or may not have modulus key and exponent data. The header,
- * uCode and RSA signature are must-have components that will be used by 
driver.
- * Length of each components, which is all in dwords, can be found in header.
- * In the case that modulus and exponent are not present in fw, a.k.a truncated
- * image, the length value still appears in header.
- *
- * Driver will do some basic fw size validation based on the following rules:
- *
- * 1. Header, uCode and RSA are must-have components.
- * 2. All firmware components, if they present, are in the sequence illustrated
- *in the layout table above.
- * 3. Length info of each component can be found in header, in dwords.
- * 4. Modulus and exponent key are not required by driver. They may not appear
- *in fw. So driver will load a truncated firmware in this case.
- *
- * The only difference between GuC and HuC firmwares is how the version
- * information is saved.
- */
-
-struct uc_css_header {
-   u32 module_type;
-   /* header_size includes all non-uCode bits, including css_header, rsa
-* key, modulus key and exponent data. */
-   u32 header_size_dw;
-   u32 header_version;
-   u32 module_id;
-   u32 module_vendor;
-   u32 date;
-#define CSS_DATE_DAY   (0xFF << 0)
-#define CSS_DATE_MONTH (0xFF << 8)
-#define CSS_DATE_YEAR  (0x << 16)
-   u32 size_dw; /* uCode plus header_size_dw */
-   u32 key_size_dw;
-   u32 modulus_size_dw;
-   u32 exponent_size_dw;
-   u32 time;
-#define CSS_TIME_HOUR  (0xFF << 0)
-#define CSS_DATE_MIN   (0xFF << 8)
-#define CSS_DATE_SEC   (0x << 16)
-   char username[8];
-   char buildnumber[12];
-   u32 sw_version;
-#define CSS_SW_VERSION_GUC_MAJOR   (0xFF << 16)
-#define CSS_SW_VERSION_GUC_MINOR   (0xFF << 8)
-#define CSS_SW_VERSION_GUC_PATCH   (0xFF << 0)
-#define CSS_SW_VERSION_HUC_MAJOR   (0x << 16)
-#define CSS_SW_VERSION_HUC_MINOR   (0x << 0)
-   u32 reserved[14];
-   u32 header_info;
-} __packed;
-
 /* Work item for submitting workloads into work queue of GuC. */
 struct guc_wq_item {
u32 header;
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c 
b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
index 789b3d7228a4..168d368bcd3e 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
@@ -27,6 +27,7 @@
 #include 
 
 #include "intel_uc_fw.h"
+#include "intel_uc_fw_abi.h"
 #include "i915_drv.h"
 
 /*
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h 
b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h
new file mode 100644
index ..e58d8c1

[Intel-gfx] [PATCH v2 2/3] drm/i915/uc: Update drawing for firmware layout

2019-07-25 Thread Michal Wajdeczko
Sphinx was rendering firmware layout as html table, but since
we want to add sizes relations switch to plain text graphics.

v2: also update text and do it before move (Daniele)

Signed-off-by: Michal Wajdeczko 
Cc: Daniele Ceraolo Spurio 
---
 Documentation/gpu/i915.rst  | 12 
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h | 31 ++---
 2 files changed, 20 insertions(+), 23 deletions(-)

diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
index c2173d120492..3e233f9d675f 100644
--- a/Documentation/gpu/i915.rst
+++ b/Documentation/gpu/i915.rst
@@ -430,6 +430,12 @@ WOPCM Layout
 GuC
 ===
 
+Firmware Layout
+---
+
+.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
+   :doc: Firmware Layout
+
 GuC-specific firmware loader
 
 
@@ -445,12 +451,6 @@ GuC-based command submission
 .. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
:internal:
 
-GuC Firmware Layout

-
-.. kernel-doc:: drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
-   :doc: GuC Firmware Layout
-
 GuC Address Space
 -
 
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
index 30cca3a29323..108b386c52ec 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
@@ -122,23 +122,20 @@
 #define GUC_CTL_MAX_DWORDS (SOFT_SCRATCH_COUNT - 2) /* [1..14] */
 
 /**
- * DOC: GuC Firmware Layout
+ * DOC: Firmware Layout
  *
- * The GuC firmware layout looks like this:
+ * The GuC/HuC firmware layout looks like this::
  *
- * +---+
- * | uc_css_header |
- * |   |
- * | contains major/minor version  |
- * +---+
- * | uCode |
- * +---+
- * | RSA signature |
- * +---+
- * |  modulus key  |
- * +---+
- * |  exponent val |
- * +---+
+ *  
+==+
+ *  |  Firmware blob   
|
+ *  
+===+===++++
+ *  |  CSS header   | uCode |  RSA key   |  modulus   |  exponent  
|
+ *  
+===+===++++
+ *   <-header size-> <---header size continued --->
+ *   <--- size --->
+ *   <-key size->
+ *<-mod size->
+ * <-exp size->
  *
  * The firmware may or may not have modulus key and exponent data. The header,
  * uCode and RSA signature are must-have components that will be used by 
driver.
@@ -155,8 +152,8 @@
  * 4. Modulus and exponent key are not required by driver. They may not appear
  *in fw. So driver will load a truncated firmware in this case.
  *
- * HuC firmware layout is same as GuC firmware.
- * Only HuC version information is saved in a different way.
+ * The only difference between GuC and HuC firmwares is how the version
+ * information is saved.
  */
 
 struct uc_css_header {
-- 
2.19.2

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

  1   2   >