[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: allow to load DMC firmware on next gen

2018-11-16 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915: allow to load DMC firmware on next 
gen
URL   : https://patchwork.freedesktop.org/series/52639/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_5154 -> Patchwork_10845 =

== Summary - FAILURE ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Possible regressions 

igt@i915_selftest@live_gtt:
  fi-kbl-7560u:   PASS -> INCOMPLETE


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-blb-e6850:   PASS -> INCOMPLETE (fdo#107718)


 Possible fixes 

igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence:
  fi-byt-clapper: FAIL (fdo#107362, fdo#103191) -> PASS

igt@kms_pipe_crc_basic@read-crc-pipe-b:
  fi-byt-clapper: FAIL (fdo#107362) -> PASS


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


== Participating hosts (50 -> 46) ==

  Missing(4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_5154 -> Patchwork_10845

  CI_DRM_5154: 2ba924da1cb3a684f538e0c25e2409b942a5a35a @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4718: 8ac5cfb4db9c7bc593beec18a6be1e2ff163106c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10845: 0ba6788d0bf95c105ec437f6bc649c2c0885eeea @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

0ba6788d0bf9 drm/i915: Downgrade unknown CSR firmware warnings
ac7ff8ccff7a drm/i915: allow to load DMC firmware on next gen

== Logs ==

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


[Intel-gfx] ✓ Fi.CI.BAT: success for Remove all bad dp_mst_port uses and hide struct def

2018-11-16 Thread Patchwork
== Series Details ==

Series: Remove all bad dp_mst_port uses and hide struct def
URL   : https://patchwork.freedesktop.org/series/52636/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5154 -> Patchwork_10844 =

== Summary - SUCCESS ==

  No regressions found.

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

== Known issues ==

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

  === IGT changes ===

 Possible fixes 

igt@gem_ctx_create@basic-files:
  fi-bsw-kefka:   FAIL (fdo#108656) -> PASS

igt@i915_module_load@reload:
  fi-blb-e6850:   INCOMPLETE (fdo#107718) -> PASS

igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence:
  fi-byt-clapper: FAIL (fdo#103191, fdo#107362) -> PASS

igt@kms_pipe_crc_basic@read-crc-pipe-b:
  fi-byt-clapper: FAIL (fdo#107362) -> PASS


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


== Participating hosts (50 -> 46) ==

  Missing(4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_5154 -> Patchwork_10844

  CI_DRM_5154: 2ba924da1cb3a684f538e0c25e2409b942a5a35a @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4718: 8ac5cfb4db9c7bc593beec18a6be1e2ff163106c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10844: af900c99ec9037164b46a79abadd6d22d02af78e @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

af900c99ec90 drm/i915: Start using struct drm_dp_mst_port again
f7e93f99d599 drm/dp_mst: Hide drm_dp_mst_port contents from drivers
1affa2235cf2 drm/nouveau: Stop reading port->mgr in nv50_mstc_detect()
010aca1e996b drm/nouveau: Stop reading port->mgr in nv50_mstc_get_modes()
81eb3aab81da drm/nouveau: Use drm_dp_get_payload_info() for getting payload/vcpi
268300d13d06 drm/dp_mst: Add drm_dp_get_payload_info()

== Logs ==

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


[Intel-gfx] [PATCH 1/2] drm/i915: allow to load DMC firmware on next gen

2018-11-16 Thread Lucas De Marchi
Before commit d8a5b7d79fb7 ("drm/i915/csr: keep max firmware size together
with firmare name and version") it was possible to load the firmware for
testing purposes via parameter. Let's use the size of the last known
platform to recover that behavior.

Cc: Jani Nikula 
Cc: Rodrigo Vivi 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/intel_csr.c | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
index c1ca6596ff5c..b4476d891fa3 100644
--- a/drivers/gpu/drm/i915/intel_csr.c
+++ b/drivers/gpu/drm/i915/intel_csr.c
@@ -34,6 +34,8 @@
  * low-power state and comes back to normal.
  */
 
+#define GEN12_CSR_MAX_FW_SIZE  ICL_CSR_MAX_FW_SIZE
+
 #define ICL_CSR_PATH   "i915/icl_dmc_ver1_07.bin"
 #define ICL_CSR_VERSION_REQUIRED   CSR_VERSION(1, 7)
 #define ICL_CSR_MAX_FW_SIZE0x6000
@@ -467,7 +469,10 @@ void intel_csr_ucode_init(struct drm_i915_private 
*dev_priv)
 */
intel_display_power_get(dev_priv, POWER_DOMAIN_INIT);
 
-   if (IS_ICELAKE(dev_priv)) {
+   if (INTEL_GEN(dev_priv) >= 12) {
+   /* Allow to load fw via parameter using the last known size */
+   csr->max_fw_size = GEN12_CSR_MAX_FW_SIZE;
+   } else if (IS_ICELAKE(dev_priv)) {
csr->fw_path = ICL_CSR_PATH;
csr->required_version = ICL_CSR_VERSION_REQUIRED;
csr->max_fw_size = ICL_CSR_MAX_FW_SIZE;
-- 
2.19.1.1.g56c4683e68

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


[Intel-gfx] [PATCH 2/2] drm/i915: Downgrade unknown CSR firmware warnings

2018-11-16 Thread Lucas De Marchi
Like it was done in commit 9e180d9991dc ("drm/i915: Downgrade unknown
firmware warnings") for huc and guc: downgrade CSR firmware warnings. If
we have released no firmware yet for a platform, stop scaring the
consumer and merely note its expected absence.

By simply removing the warning and early return we hit the condition
with the appropriate message.

Cc: Chris Wilson 
Cc: Joonas Lahtinen 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/intel_csr.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
index b4476d891fa3..a516697bf57d 100644
--- a/drivers/gpu/drm/i915/intel_csr.c
+++ b/drivers/gpu/drm/i915/intel_csr.c
@@ -496,9 +496,6 @@ void intel_csr_ucode_init(struct drm_i915_private *dev_priv)
csr->fw_path = BXT_CSR_PATH;
csr->required_version = BXT_CSR_VERSION_REQUIRED;
csr->max_fw_size = BXT_CSR_MAX_FW_SIZE;
-   } else {
-   MISSING_CASE(INTEL_REVID(dev_priv));
-   return;
}
 
if (i915_modparams.dmc_firmware_path) {
-- 
2.19.1.1.g56c4683e68

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


[Intel-gfx] [PATCH 3/6] drm/nouveau: Stop reading port->mgr in nv50_mstc_get_modes()

2018-11-16 Thread Lyude Paul
mstc->port isn't validated here so it could be null or worse when we
access it. And drivers aren't ever supposed to be looking at it's
contents anyway. Plus, we can already get the MST manager from
>mstm->mgr.

Signed-off-by: Lyude Paul 
Cc: sta...@vger.kernel.org
---
 drivers/gpu/drm/nouveau/dispnv50/disp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c 
b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index e6f72ca0b1fa..66c40b56a0cb 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -893,7 +893,8 @@ nv50_mstc_get_modes(struct drm_connector *connector)
struct nv50_mstc *mstc = nv50_mstc(connector);
int ret = 0;
 
-   mstc->edid = drm_dp_mst_get_edid(>connector, mstc->port->mgr, 
mstc->port);
+   mstc->edid = drm_dp_mst_get_edid(>connector,
+>mstm->mgr, mstc->port);
drm_connector_update_edid_property(>connector, mstc->edid);
if (mstc->edid)
ret = drm_add_edid_modes(>connector, mstc->edid);
-- 
2.19.1

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


[Intel-gfx] [PATCH 1/6] drm/dp_mst: Add drm_dp_get_payload_info()

2018-11-16 Thread Lyude Paul
Some hardware (nvidia hardware in particular) needs to be notified of
the exact VCPI and payload settings that the topology manager decided on
for each mstb port. Since there isn't currently any way to get this
information without going through port (which drivers are very much not
supposed to do by themselves, ever), let's add one.

Signed-off-by: Lyude Paul 
---
 drivers/gpu/drm/drm_dp_mst_topology.c | 56 +++
 include/drm/drm_dp_mst_helper.h   |  5 ++-
 2 files changed, 60 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c 
b/drivers/gpu/drm/drm_dp_mst_topology.c
index 529414556962..4336d17ce904 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -1982,6 +1982,62 @@ int drm_dp_update_payload_part2(struct 
drm_dp_mst_topology_mgr *mgr)
 }
 EXPORT_SYMBOL(drm_dp_update_payload_part2);
 
+/**
+ * drm_dp_get_payload_info() - Retrieve payload/vcpi information for the given
+ * @port
+ * @mgr: manager to use
+ * @port: the port to get the relevant payload information for
+ * @vcpi_out: where to copy the port's VCPI information to
+ * @payload_out: where to copy the port's payload information to
+ *
+ * Searches the current payloads for @mgr and finds the relevant payload and
+ * VCPI information that was programmed by the topology mgr, then copies it
+ * into @vcpi_out and @payload_out. Drivers which need to know this
+ * information must use this helper as opposed to checking @port themselves,
+ * as this helper will ensure the port reference is still valid and grab the
+ * appropriate locks in @mgr.
+ *
+ * Returns:
+ * 0 on success, negative error code if the port is no longer valid or a
+ * programmed payload could not be found for @port.
+ */
+int drm_dp_get_payload_info(struct drm_dp_mst_topology_mgr *mgr,
+   struct drm_dp_mst_port *port,
+   struct drm_dp_vcpi *vcpi_out,
+   struct drm_dp_payload *payload_out)
+{
+   struct drm_dp_payload *payload = NULL;
+   int i;
+   int ret = 0;
+
+   port = drm_dp_get_validated_port_ref(mgr, port);
+   if (!port)
+   return -EINVAL;
+
+   mutex_lock(>payload_lock);
+   /* Figure out which of the payloads belongs to this port */
+   for (i = 0; i < mgr->max_payloads; i++) {
+   if (mgr->payloads[i].vcpi == port->vcpi.vcpi) {
+   payload = >payloads[i];
+   break;
+   }
+   }
+
+   if (!payload) {
+   DRM_DEBUG_KMS("Failed to find payload for port %p\n", port);
+   ret = -EINVAL;
+   goto out;
+   }
+
+   *payload_out = *payload;
+   *vcpi_out = port->vcpi;
+out:
+   mutex_unlock(>payload_lock);
+   drm_dp_put_port(port);
+   return ret;
+}
+EXPORT_SYMBOL(drm_dp_get_payload_info);
+
 #if 0 /* unused as of yet */
 static int drm_dp_send_dpcd_read(struct drm_dp_mst_topology_mgr *mgr,
 struct drm_dp_mst_port *port,
diff --git a/include/drm/drm_dp_mst_helper.h b/include/drm/drm_dp_mst_helper.h
index 59f005b419cf..9cc93ea60e7e 100644
--- a/include/drm/drm_dp_mst_helper.h
+++ b/include/drm/drm_dp_mst_helper.h
@@ -592,7 +592,10 @@ bool drm_dp_mst_allocate_vcpi(struct 
drm_dp_mst_topology_mgr *mgr,
  struct drm_dp_mst_port *port, int pbn, int slots);
 
 int drm_dp_mst_get_vcpi_slots(struct drm_dp_mst_topology_mgr *mgr, struct 
drm_dp_mst_port *port);
-
+int drm_dp_get_payload_info(struct drm_dp_mst_topology_mgr *mgr,
+   struct drm_dp_mst_port *port,
+   struct drm_dp_vcpi *vcpi_out,
+   struct drm_dp_payload *payload_out);
 
 void drm_dp_mst_reset_vcpi_slots(struct drm_dp_mst_topology_mgr *mgr, struct 
drm_dp_mst_port *port);
 
-- 
2.19.1

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


[Intel-gfx] [PATCH 5/6] drm/dp_mst: Hide drm_dp_mst_port contents from drivers

2018-11-16 Thread Lyude Paul
It hasn't been OK to access any of the contents of struct
drm_dp_mst_port without validating the port first for quite a long time
now, since a drm_dp_mst_port structure can be freed at any given moment
in time outside of the driver's contorl. Any kind of information a
driver needs from drm_dp_mst_port should be exposed through a helper
function instead that handles validating the port pointer, along with
anything else that's needed.

Since we've removed the last dangerous remanents of ->port accesses in
the DRM tree, let's finish this off and move the struct drm_dp_mst_port
definition out of drm_dp_mst_helper.h, into drm_dp_mst_topology.c, and
then replace it's header definition with an incomplete struct type. This
way drivers can still use the struct type, and no one else will make the
mistake of trying to access the contents of port.

Signed-off-by: Lyude Paul 
---
 drivers/gpu/drm/drm_dp_mst_topology.c | 59 ++
 include/drm/drm_dp_mst_helper.h   | 60 +--
 2 files changed, 60 insertions(+), 59 deletions(-)

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c 
b/drivers/gpu/drm/drm_dp_mst_topology.c
index 4336d17ce904..5fa898a8a64d 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -41,6 +41,65 @@
  * protocol. The helpers contain a topology manager and bandwidth manager.
  * The helpers encapsulate the sending and received of sideband msgs.
  */
+
+/**
+ * struct drm_dp_mst_port - MST port
+ * @kref: reference count for this port.
+ * @port_num: port number
+ * @input: if this port is an input port.
+ * @mcs: message capability status - DP 1.2 spec.
+ * @ddps: DisplayPort Device Plug Status - DP 1.2
+ * @pdt: Peer Device Type
+ * @ldps: Legacy Device Plug Status
+ * @dpcd_rev: DPCD revision of device on this port
+ * @num_sdp_streams: Number of simultaneous streams
+ * @num_sdp_stream_sinks: Number of stream sinks
+ * @available_pbn: Available bandwidth for this port.
+ * @next: link to next port on this branch device
+ * @mstb: branch device attach below this port
+ * @aux: i2c aux transport to talk to device connected to this port.
+ * @parent: branch device parent of this port
+ * @vcpi: Virtual Channel Payload info for this port.
+ * @connector: DRM connector this port is connected to.
+ * @mgr: topology manager this port lives under.
+ *
+ * This structure represents an MST port endpoint on a device somewhere
+ * in the MST topology.
+ */
+struct drm_dp_mst_port {
+   struct kref kref;
+
+   u8 port_num;
+   bool input;
+   bool mcs;
+   bool ddps;
+   u8 pdt;
+   bool ldps;
+   u8 dpcd_rev;
+   u8 num_sdp_streams;
+   u8 num_sdp_stream_sinks;
+   uint16_t available_pbn;
+   struct list_head next;
+   struct drm_dp_mst_branch *mstb; /* pointer to an mstb if this port has 
one */
+   struct drm_dp_aux aux; /* i2c bus for this port? */
+   struct drm_dp_mst_branch *parent;
+
+   struct drm_dp_vcpi vcpi;
+   struct drm_connector *connector;
+   struct drm_dp_mst_topology_mgr *mgr;
+
+   /**
+* @cached_edid: for DP logical ports - make tiling work by ensuring
+* that the EDID for all connectors is read immediately.
+*/
+   struct edid *cached_edid;
+   /**
+* @has_audio: Tracks whether the sink connector to this port is
+* audio-capable.
+*/
+   bool has_audio;
+};
+
 static bool dump_dp_payload_table(struct drm_dp_mst_topology_mgr *mgr,
  char *buf);
 static int test_calc_pbn_mode(void);
diff --git a/include/drm/drm_dp_mst_helper.h b/include/drm/drm_dp_mst_helper.h
index 9cc93ea60e7e..3076a45aef4d 100644
--- a/include/drm/drm_dp_mst_helper.h
+++ b/include/drm/drm_dp_mst_helper.h
@@ -26,7 +26,7 @@
 #include 
 #include 
 
-struct drm_dp_mst_branch;
+struct drm_dp_mst_port;
 
 /**
  * struct drm_dp_vcpi - Virtual Channel Payload Identifier
@@ -42,64 +42,6 @@ struct drm_dp_vcpi {
int num_slots;
 };
 
-/**
- * struct drm_dp_mst_port - MST port
- * @kref: reference count for this port.
- * @port_num: port number
- * @input: if this port is an input port.
- * @mcs: message capability status - DP 1.2 spec.
- * @ddps: DisplayPort Device Plug Status - DP 1.2
- * @pdt: Peer Device Type
- * @ldps: Legacy Device Plug Status
- * @dpcd_rev: DPCD revision of device on this port
- * @num_sdp_streams: Number of simultaneous streams
- * @num_sdp_stream_sinks: Number of stream sinks
- * @available_pbn: Available bandwidth for this port.
- * @next: link to next port on this branch device
- * @mstb: branch device attach below this port
- * @aux: i2c aux transport to talk to device connected to this port.
- * @parent: branch device parent of this port
- * @vcpi: Virtual Channel Payload info for this port.
- * @connector: DRM connector this port is connected to.
- * @mgr: topology manager this port lives under.
- *
- * This structure represents an MST port 

[Intel-gfx] [PATCH 4/6] drm/nouveau: Stop reading port->mgr in nv50_mstc_detect()

2018-11-16 Thread Lyude Paul
Same as the previous commit, but for nv50_mstc_detect() this time.

Signed-off-by: Lyude Paul 
Cc: sta...@vger.kernel.org
---
 drivers/gpu/drm/nouveau/dispnv50/disp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c 
b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index 66c40b56a0cb..a08dd827e892 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -930,7 +930,7 @@ nv50_mstc_detect(struct drm_connector *connector, bool 
force)
if (ret < 0 && ret != -EACCES)
return connector_status_disconnected;
 
-   conn_status = drm_dp_mst_detect_port(connector, mstc->port->mgr,
+   conn_status = drm_dp_mst_detect_port(connector, >mstm->mgr,
 mstc->port);
 
pm_runtime_mark_last_busy(connector->dev->dev);
-- 
2.19.1

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


[Intel-gfx] [PATCH 6/6] drm/i915: Start using struct drm_dp_mst_port again

2018-11-16 Thread Lyude Paul
Originally we started storing pointers to the drm_dp_mst_port struct for
each intel_connector as void* to stop people from trying to dereference
them. Now that we've removed the public struct definition for
drm_dp_mst_port however, it's no longer possible to dereference the port
structure even when using the proper type. So, move back to struct
drm_dp_mst_port from void* for clarity.

Signed-off-by: Lyude Paul 
---
 drivers/gpu/drm/i915/intel_dp_mst.c | 2 +-
 drivers/gpu/drm/i915/intel_drv.h| 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c 
b/drivers/gpu/drm/i915/intel_dp_mst.c
index 4de247ddf05f..3408efe67694 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -39,7 +39,7 @@ static bool intel_dp_mst_compute_config(struct intel_encoder 
*encoder,
struct intel_digital_port *intel_dig_port = intel_mst->primary;
struct intel_dp *intel_dp = _dig_port->dp;
struct drm_connector *connector = conn_state->connector;
-   void *port = to_intel_connector(connector)->port;
+   struct drm_dp_mst_port *port = to_intel_connector(connector)->port;
struct drm_atomic_state *state = pipe_config->base.state;
int bpp;
int lane_count, slots = 0;
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index f575ba2a59da..1bb69097d6cb 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -415,7 +415,7 @@ struct intel_connector {
   state of connector->polled in case hotplug storm detection changes 
it */
u8 polled;
 
-   void *port; /* store this opaque as its illegal to dereference it */
+   struct drm_dp_mst_port *port;
 
struct intel_dp *mst_port;
 
-- 
2.19.1

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


[Intel-gfx] [PATCH 2/6] drm/nouveau: Use drm_dp_get_payload_info() for getting payload/vcpi

2018-11-16 Thread Lyude Paul
Currently, nouveau tries to go through the drm_dp_mst_port structures
itself in order to retrieve the relevant payload and VCPI information
that it needs to report to the GPU. This is wrong: mstc->port could be
destroyed at any point, and additionally the payload could be changed at
any point because it doesn't bother trying to grab the payload lock. So;
remove nv50_msto_payload entirely and use the new
drm_dp_get_payload_info() helper.

Signed-off-by: Lyude Paul 
---
 drivers/gpu/drm/nouveau/dispnv50/disp.c | 55 ++---
 1 file changed, 21 insertions(+), 34 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c 
b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index 6cbbae3f438b..e6f72ca0b1fa 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -665,41 +665,24 @@ struct nv50_msto {
bool disabled;
 };
 
-static struct drm_dp_payload *
-nv50_msto_payload(struct nv50_msto *msto)
-{
-   struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev);
-   struct nv50_mstc *mstc = msto->mstc;
-   struct nv50_mstm *mstm = mstc->mstm;
-   int vcpi = mstc->port->vcpi.vcpi, i;
-
-   NV_ATOMIC(drm, "%s: vcpi %d\n", msto->encoder.name, vcpi);
-   for (i = 0; i < mstm->mgr.max_payloads; i++) {
-   struct drm_dp_payload *payload = >mgr.payloads[i];
-   NV_ATOMIC(drm, "%s: %d: vcpi %d start 0x%02x slots 0x%02x\n",
- mstm->outp->base.base.name, i, payload->vcpi,
- payload->start_slot, payload->num_slots);
-   }
-
-   for (i = 0; i < mstm->mgr.max_payloads; i++) {
-   struct drm_dp_payload *payload = >mgr.payloads[i];
-   if (payload->vcpi == vcpi)
-   return payload;
-   }
-
-   return NULL;
-}
-
 static void
 nv50_msto_cleanup(struct nv50_msto *msto)
 {
struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev);
struct nv50_mstc *mstc = msto->mstc;
struct nv50_mstm *mstm = mstc->mstm;
+   struct drm_dp_payload payload;
+   struct drm_dp_vcpi vcpi;
+   int ret;
 
NV_ATOMIC(drm, "%s: msto cleanup\n", msto->encoder.name);
-   if (mstc->port && mstc->port->vcpi.vcpi > 0 && !nv50_msto_payload(msto))
-   drm_dp_mst_deallocate_vcpi(>mgr, mstc->port);
+   if (mstc->port) {
+   ret = drm_dp_get_payload_info(>mgr, mstc->port,
+ , );
+   if (!ret)
+   drm_dp_mst_deallocate_vcpi(>mgr, mstc->port);
+   }
+
if (msto->disabled) {
msto->mstc = NULL;
msto->head = NULL;
@@ -713,6 +696,9 @@ nv50_msto_prepare(struct nv50_msto *msto)
struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev);
struct nv50_mstc *mstc = msto->mstc;
struct nv50_mstm *mstm = mstc->mstm;
+   struct drm_dp_payload payload;
+   struct drm_dp_vcpi vcpi;
+   int ret;
struct {
struct nv50_disp_mthd_v1 base;
struct nv50_disp_sor_dp_mst_vcpi_v0 vcpi;
@@ -725,13 +711,14 @@ nv50_msto_prepare(struct nv50_msto *msto)
};
 
NV_ATOMIC(drm, "%s: msto prepare\n", msto->encoder.name);
-   if (mstc->port && mstc->port->vcpi.vcpi > 0) {
-   struct drm_dp_payload *payload = nv50_msto_payload(msto);
-   if (payload) {
-   args.vcpi.start_slot = payload->start_slot;
-   args.vcpi.num_slots = payload->num_slots;
-   args.vcpi.pbn = mstc->port->vcpi.pbn;
-   args.vcpi.aligned_pbn = mstc->port->vcpi.aligned_pbn;
+   if (mstc->port) {
+   ret = drm_dp_get_payload_info(>mgr, mstc->port,
+ , );
+   if (!ret) {
+   args.vcpi.start_slot = payload.start_slot;
+   args.vcpi.num_slots = payload.num_slots;
+   args.vcpi.pbn = vcpi.pbn;
+   args.vcpi.aligned_pbn = vcpi.aligned_pbn;
}
}
 
-- 
2.19.1

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


[Intel-gfx] [PATCH 0/6] Remove all bad dp_mst_port uses and hide struct def

2018-11-16 Thread Lyude Paul
So we don't ever have to worry about drivers touching drm_dp_mst_port
structs without verifying them and crashing again.

Lyude Paul (6):
  drm/dp_mst: Add drm_dp_get_payload_info()
  drm/nouveau: Use drm_dp_get_payload_info() for getting payload/vcpi
  drm/nouveau: Stop reading port->mgr in nv50_mstc_get_modes()
  drm/nouveau: Stop reading port->mgr in nv50_mstc_detect()
  drm/dp_mst: Hide drm_dp_mst_port contents from drivers
  drm/i915: Start using struct drm_dp_mst_port again

 drivers/gpu/drm/drm_dp_mst_topology.c   | 115 
 drivers/gpu/drm/i915/intel_dp_mst.c |   2 +-
 drivers/gpu/drm/i915/intel_drv.h|   2 +-
 drivers/gpu/drm/nouveau/dispnv50/disp.c |  60 +
 include/drm/drm_dp_mst_helper.h |  65 ++
 5 files changed, 146 insertions(+), 98 deletions(-)

-- 
2.19.1

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


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Hide enable_gvt modparam when not compiled in

2018-11-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Hide enable_gvt modparam when not compiled in
URL   : https://patchwork.freedesktop.org/series/52616/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5151_full -> Patchwork_10841_full =

== Summary - WARNING ==

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

  === IGT changes ===

 Warnings 

igt@kms_busy@basic-flip-b:
  shard-snb:  SKIP -> PASS

igt@tools_test@sysfs_l3_parity:
  shard-hsw:  SKIP -> PASS


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_exec_schedule@pi-ringfull-bsd:
  shard-skl:  NOTRUN -> FAIL (fdo#103158)

igt@gem_userptr_blits@readonly-unsync:
  shard-skl:  PASS -> INCOMPLETE (fdo#108074)

igt@kms_busy@extended-modeset-hang-newfb-render-a:
  shard-skl:  NOTRUN -> DMESG-WARN (fdo#107956)

igt@kms_ccs@pipe-b-crc-sprite-planes-basic:
  shard-skl:  NOTRUN -> FAIL (fdo#108145, fdo#107725)

igt@kms_cursor_crc@cursor-128x128-random:
  shard-glk:  PASS -> FAIL (fdo#103232)

igt@kms_cursor_crc@cursor-128x42-random:
  shard-skl:  NOTRUN -> FAIL (fdo#103232)

igt@kms_cursor_crc@cursor-256x256-dpms:
  shard-apl:  PASS -> FAIL (fdo#103232)

igt@kms_cursor_crc@cursor-64x64-suspend:
  shard-skl:  NOTRUN -> FAIL (fdo#103232, fdo#103191)

igt@kms_cursor_legacy@flip-vs-cursor-legacy:
  shard-glk:  PASS -> FAIL (fdo#102670)

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move:
  shard-glk:  PASS -> FAIL (fdo#103167) +2

igt@kms_frontbuffer_tracking@fbc-stridechange:
  shard-skl:  NOTRUN -> FAIL (fdo#105683)

igt@kms_frontbuffer_tracking@psr-suspend:
  shard-skl:  PASS -> INCOMPLETE (fdo#106978, fdo#104108)

igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
  shard-skl:  NOTRUN -> FAIL (fdo#108145, fdo#107815)

igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
  shard-glk:  PASS -> FAIL (fdo#103166) +3

igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
  shard-skl:  NOTRUN -> FAIL (fdo#107815, fdo#103166)

igt@kms_setmode@basic:
  shard-kbl:  PASS -> FAIL (fdo#99912)

igt@pm_rpm@fences:
  shard-skl:  PASS -> INCOMPLETE (fdo#107807) +2

igt@pm_rpm@pm-caching:
  shard-skl:  NOTRUN -> INCOMPLETE (fdo#107807)


 Possible fixes 

igt@kms_available_modes_crc@available_mode_test_crc:
  shard-apl:  FAIL (fdo#106641) -> PASS

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

igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c:
  shard-hsw:  DMESG-WARN (fdo#107956) -> PASS

igt@kms_color@pipe-a-gamma:
  shard-skl:  FAIL (fdo#104782) -> PASS

igt@kms_color@pipe-b-legacy-gamma:
  shard-apl:  FAIL (fdo#104782) -> PASS

igt@kms_cursor_crc@cursor-64x64-onscreen:
  shard-skl:  FAIL (fdo#103232) -> PASS

igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-xtiled:
  shard-skl:  FAIL (fdo#103184) -> PASS

igt@kms_flip@flip-vs-expired-vblank:
  shard-skl:  FAIL (fdo#105363) -> PASS

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render:
  shard-apl:  FAIL (fdo#103167) -> PASS +2

igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff:
  shard-glk:  FAIL (fdo#103167) -> PASS +3

igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-cpu:
  shard-skl:  FAIL (fdo#103167) -> PASS +3

igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
  shard-skl:  FAIL (fdo#108145, fdo#107815) -> PASS

igt@kms_plane_multiple@atomic-pipe-a-tiling-y:
  shard-glk:  FAIL (fdo#103166) -> PASS +2
  shard-apl:  FAIL (fdo#103166) -> PASS

igt@kms_vblank@pipe-a-wait-busy:
  shard-glk:  DMESG-WARN (fdo#106538, fdo#105763) -> PASS +1

igt@kms_vblank@pipe-c-ts-continuation-suspend:
  shard-skl:  INCOMPLETE (fdo#104108, fdo#107773) -> PASS +1


  fdo#102670 https://bugs.freedesktop.org/show_bug.cgi?id=102670
  fdo#103158 https://bugs.freedesktop.org/show_bug.cgi?id=103158
  fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103184 

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Disable LP3 watermarks on all SNB machines (rev2)

2018-11-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Disable LP3 watermarks on all SNB machines (rev2)
URL   : https://patchwork.freedesktop.org/series/52440/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5150_full -> Patchwork_10839_full =

== Summary - SUCCESS ==

  No regressions found.

  

== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@drm_import_export@import-close-race-flink:
  shard-skl:  PASS -> TIMEOUT (fdo#108667)

igt@gem_exec_schedule@pi-ringfull-bsd:
  shard-skl:  NOTRUN -> FAIL (fdo#103158) +1

igt@gem_exec_schedule@pi-ringfull-render:
  shard-kbl:  NOTRUN -> FAIL (fdo#103158)

igt@gem_ppgtt@blt-vs-render-ctx0:
  shard-skl:  NOTRUN -> TIMEOUT (fdo#108039)

igt@gem_ppgtt@blt-vs-render-ctxn:
  shard-kbl:  PASS -> INCOMPLETE (fdo#106023, fdo#106887, 
fdo#103665)

igt@gem_softpin@noreloc-s3:
  shard-skl:  PASS -> INCOMPLETE (fdo#107773, fdo#104108)

igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-c:
  shard-skl:  NOTRUN -> DMESG-WARN (fdo#107956) +2

igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b:
  shard-snb:  NOTRUN -> DMESG-WARN (fdo#107956)

igt@kms_cursor_crc@cursor-64x21-onscreen:
  shard-apl:  PASS -> FAIL (fdo#103232)

igt@kms_flip@flip-vs-expired-vblank:
  shard-skl:  PASS -> FAIL (fdo#105363) +1

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move:
  shard-apl:  PASS -> FAIL (fdo#103167)

igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff:
  shard-glk:  PASS -> FAIL (fdo#103167) +3

igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
  shard-skl:  PASS -> FAIL (fdo#103167)

igt@kms_frontbuffer_tracking@fbcpsr-stridechange:
  shard-skl:  NOTRUN -> FAIL (fdo#105683)

igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc:
  shard-skl:  NOTRUN -> FAIL (fdo#103167) +1

igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
  shard-skl:  PASS -> FAIL (fdo#103166)

igt@kms_plane@plane-position-covered-pipe-a-planes:
  shard-apl:  PASS -> FAIL (fdo#103166) +1

igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
  shard-skl:  NOTRUN -> FAIL (fdo#108145) +4

igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max:
  shard-kbl:  NOTRUN -> FAIL (fdo#108145)

igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
  shard-skl:  NOTRUN -> FAIL (fdo#107815, fdo#108145) +3

igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
  shard-skl:  PASS -> FAIL (fdo#107815)

igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
  shard-skl:  NOTRUN -> FAIL (fdo#103166, fdo#107815)

igt@kms_rotation_crc@primary-rotation-90:
  shard-skl:  PASS -> FAIL (fdo#103925, fdo#107815)

igt@kms_sysfs_edid_timing:
  shard-skl:  NOTRUN -> FAIL (fdo#100047)

igt@pm_backlight@fade_with_suspend:
  shard-skl:  NOTRUN -> FAIL (fdo#107847)


 Possible fixes 

igt@drv_suspend@shrink:
  shard-glk:  INCOMPLETE (fdo#106886, k.org#198133, fdo#103359) -> 
PASS

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

igt@kms_cursor_crc@cursor-256x256-random:
  shard-apl:  FAIL (fdo#103232) -> PASS +2

igt@kms_cursor_crc@cursor-64x64-suspend:
  shard-apl:  FAIL (fdo#103232, fdo#103191) -> PASS

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

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move:
  shard-glk:  FAIL (fdo#103167) -> PASS

igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
  shard-skl:  FAIL (fdo#107815, fdo#108145) -> PASS

igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
  shard-glk:  FAIL (fdo#108145) -> PASS

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

igt@kms_setmode@basic:
  shard-hsw:  FAIL (fdo#99912) -> PASS

igt@perf@oa-exponents:
  shard-kbl:  INCOMPLETE (fdo#103665) -> PASS


  fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
  fdo#103158 https://bugs.freedesktop.org/show_bug.cgi?id=103158
  fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#103925 

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [v2,1/5] drm/i915: extract fixed point math to i915_fixed.h

2018-11-16 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/5] drm/i915: extract fixed point math to 
i915_fixed.h
URL   : https://patchwork.freedesktop.org/series/52608/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5150_full -> Patchwork_10838_full =

== Summary - SUCCESS ==

  No regressions found.

  

== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@drm_import_export@import-close-race-flink:
  shard-skl:  PASS -> TIMEOUT (fdo#108667)

igt@gem_exec_schedule@pi-ringfull-bsd:
  shard-skl:  NOTRUN -> FAIL (fdo#103158) +1

igt@gem_exec_schedule@pi-ringfull-render:
  shard-kbl:  NOTRUN -> FAIL (fdo#103158)

igt@gem_ppgtt@blt-vs-render-ctx0:
  shard-skl:  NOTRUN -> TIMEOUT (fdo#108039)

igt@gem_ppgtt@blt-vs-render-ctxn:
  shard-kbl:  PASS -> INCOMPLETE (fdo#106887, fdo#103665, 
fdo#106023)

igt@gem_workarounds@suspend-resume-fd:
  shard-skl:  PASS -> INCOMPLETE (fdo#104108, fdo#107773)

igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-c:
  shard-skl:  NOTRUN -> DMESG-WARN (fdo#107956) +2

igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b:
  shard-snb:  NOTRUN -> DMESG-WARN (fdo#107956)

igt@kms_cursor_crc@cursor-256x256-dpms:
  shard-apl:  PASS -> FAIL (fdo#103232) +1

igt@kms_cursor_crc@cursor-256x256-suspend:
  shard-skl:  NOTRUN -> INCOMPLETE (fdo#104108)

igt@kms_cursor_legacy@cursora-vs-flipa-toggle:
  shard-glk:  PASS -> DMESG-WARN (fdo#105763, fdo#106538)

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
  shard-apl:  PASS -> FAIL (fdo#103167)

igt@kms_frontbuffer_tracking@fbc-1p-rte:
  shard-apl:  PASS -> DMESG-WARN (fdo#108131, fdo#103558)

igt@kms_frontbuffer_tracking@fbcpsr-stridechange:
  shard-skl:  NOTRUN -> FAIL (fdo#105683)

igt@kms_frontbuffer_tracking@fbcpsr-suspend:
  shard-skl:  NOTRUN -> INCOMPLETE (fdo#106978, fdo#104108)

igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc:
  shard-skl:  NOTRUN -> FAIL (fdo#103167) +1

igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
  shard-skl:  PASS -> FAIL (fdo#103166)

igt@kms_plane@plane-position-covered-pipe-a-planes:
  shard-apl:  PASS -> FAIL (fdo#103166) +1

igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max:
  shard-kbl:  NOTRUN -> FAIL (fdo#108145)

igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
  shard-skl:  NOTRUN -> FAIL (fdo#108145, fdo#107815) +3

igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb:
  shard-skl:  NOTRUN -> FAIL (fdo#108145) +3

igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
  shard-skl:  PASS -> FAIL (fdo#107815)

igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
  shard-skl:  NOTRUN -> FAIL (fdo#103166, fdo#107815)

igt@kms_rotation_crc@primary-rotation-90:
  shard-skl:  PASS -> FAIL (fdo#103925, fdo#107815)

igt@kms_setmode@basic:
  shard-apl:  PASS -> FAIL (fdo#99912)

igt@kms_sysfs_edid_timing:
  shard-skl:  NOTRUN -> FAIL (fdo#100047)

igt@perf@blocking:
  shard-hsw:  PASS -> FAIL (fdo#102252)

igt@pm_backlight@fade_with_suspend:
  shard-skl:  NOTRUN -> FAIL (fdo#107847)

igt@pm_rpm@dpms-mode-unset-lpsp:
  shard-skl:  NOTRUN -> INCOMPLETE (fdo#107807)

igt@pm_rpm@gem-mmap-cpu:
  shard-apl:  PASS -> DMESG-WARN (fdo#103558, fdo#105602) +5


 Possible fixes 

igt@kms_cursor_crc@cursor-256x85-onscreen:
  shard-apl:  FAIL (fdo#103232) -> PASS +2

igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
  shard-skl:  FAIL (fdo#108145, fdo#107815) -> PASS

igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
  shard-skl:  FAIL (fdo#107815) -> PASS

igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
  shard-glk:  FAIL (fdo#103166) -> PASS

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

igt@kms_setmode@basic:
  shard-kbl:  FAIL (fdo#99912) -> PASS

igt@perf@oa-exponents:
  shard-kbl:  INCOMPLETE (fdo#103665) -> PASS


  fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
  fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
  fdo#103158 https://bugs.freedesktop.org/show_bug.cgi?id=103158
  fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
  fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
  fdo#103665 

Re: [Intel-gfx] [PATCH 4/5] drm/cma-helper: Add DRM_GEM_CMA_VMAP_DRIVER_OPS

2018-11-16 Thread Eric Anholt
Noralf Trønnes  writes:

> This adds functionality to the CMA helper which ensures that the kernel
> virtual address is set on the CMA GEM object also for imported buffers.
>
> The drivers have been audited to ensure that none set ->vaddr on imported
> buffers, making the conditional dma_buf_vunmap() call in
> drm_gem_cma_free_object() safe.
>
> Signed-off-by: Noralf Trønnes 

I didn't look through 1-3 much since they had acks, but 4/5 get my:

Reviewed-by: Eric Anholt 


signature.asc
Description: PGP signature
___
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/dp_mst: Improve VCPI helpers, use in nouveau (rev6)

2018-11-16 Thread Patchwork
== Series Details ==

Series: drm/dp_mst: Improve VCPI helpers, use in nouveau (rev6)
URL   : https://patchwork.freedesktop.org/series/51412/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5152 -> Patchwork_10843 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/51412/revisions/6/mbox/

== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_ctx_create@basic-files:
  fi-icl-u2:  PASS -> DMESG-WARN (fdo#107724)

igt@i915_selftest@live_contexts:
  fi-bsw-kefka:   PASS -> DMESG-FAIL (fdo#108626, fdo#108656)

igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence:
  fi-byt-clapper: PASS -> FAIL (fdo#107362, fdo#103191) +1


 Possible fixes 

igt@kms_frontbuffer_tracking@basic:
  fi-hsw-peppy:   DMESG-WARN (fdo#102614) -> PASS


 Warnings 

igt@i915_selftest@live_contexts:
  fi-icl-u:   DMESG-FAIL (fdo#108569) -> INCOMPLETE (fdo#108315)


  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107724 https://bugs.freedesktop.org/show_bug.cgi?id=107724
  fdo#108315 https://bugs.freedesktop.org/show_bug.cgi?id=108315
  fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569
  fdo#108626 https://bugs.freedesktop.org/show_bug.cgi?id=108626
  fdo#108656 https://bugs.freedesktop.org/show_bug.cgi?id=108656


== Participating hosts (51 -> 47) ==

  Missing(4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_5152 -> Patchwork_10843

  CI_DRM_5152: 458538284af8fa513c9d1404a8651931d6c79ddf @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4718: 8ac5cfb4db9c7bc593beec18a6be1e2ff163106c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10843: 06eec138d7d531a074fb79592bb9cacbe2302bb7 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

06eec138d7d5 drm/nouveau: Use atomic VCPI helpers for MST
92a67542920b drm/nouveau: Stop unsetting mstc->port, check connector 
registration
b8566f9fea49 drm/dp_mst: Check payload count in drm_dp_mst_atomic_check()
29194b8b74f3 drm/dp_mst: Start tracking per-port VCPI allocations
849758e12551 drm/dp_mst: Return kref_put() result from drm_dp_put_port()
cec677f01b2c drm/dp_mst: Add some atomic state iterator macros

== Logs ==

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


Re: [Intel-gfx] [PATCH] drm/i915/glk: Use cached RCOMP value when re-enabling DPIO Phy

2018-11-16 Thread Rodrigo Vivi
On Thu, Nov 15, 2018 at 11:48:06AM -0800, clinton.a.tay...@intel.com wrote:
> From: Clint Taylor 
> 
> The calibration RCOMP value in PORT_TX_DW6 in stored in dev_priv during
> driver init. Use this value instead of reading the register again as the
> power well for PORTA RCOMP register may not be enabled and will return
> 0x instead of the computed value.

I have the feeling this is not the right fix for the issue.

The function where this is stored is the same function this patch is
changing. just a little bit earlier. So if power well is not enabled
now it was probably not enabled a few cycles earlier.

Also if it is just a matter of power well it is just to make sure
that we make sure to grab the right power domain and relase when
this is not needed.

Thanks,
Rodrigo.

> 
> Cc: Ville Syrjälä 
> Signed-off-by: Clint Taylor 
> ---
>  drivers/gpu/drm/i915/intel_dpio_phy.c | 8 ++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dpio_phy.c 
> b/drivers/gpu/drm/i915/intel_dpio_phy.c
> index 3c7f10d..7cee57f 100644
> --- a/drivers/gpu/drm/i915/intel_dpio_phy.c
> +++ b/drivers/gpu/drm/i915/intel_dpio_phy.c
> @@ -422,8 +422,12 @@ static void _bxt_ddi_phy_init(struct drm_i915_private 
> *dev_priv,
>* the corresponding calibrated value from PHY1, and disable
>* the automatic calibration on PHY0.
>*/
> - val = dev_priv->bxt_phy_grc = bxt_get_grc(dev_priv,
> -   phy_info->rcomp_phy);
> + if (!dev_priv->bxt_phy_grc)
> + val = dev_priv->bxt_phy_grc = bxt_get_grc(dev_priv,
> +   
> phy_info->rcomp_phy);
> + else
> + val = dev_priv->bxt_phy_grc;
> +
>   grc_code = val << GRC_CODE_FAST_SHIFT |
>  val << GRC_CODE_SLOW_SHIFT |
>  val;
> -- 
> 1.9.1
> 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915/glk: Use cached RCOMP value when re-enabling DPIO Phy

2018-11-16 Thread Imre Deak
On Thu, Nov 15, 2018 at 11:48:06AM -0800, clinton.a.tay...@intel.com wrote:
> From: Clint Taylor 
> 
> The calibration RCOMP value in PORT_TX_DW6 in stored in dev_priv during
> driver init. Use this value instead of reading the register again as the
> power well for PORTA RCOMP register may not be enabled and will return
> 0x instead of the computed value.

PORT_REF_DW6 for both the port A and the port B/C PHYs are in power well
#0, which is always on whenever we are runtime resumed (which is always
the case during _bxt_ddi_phy_init). Also the PHY for port A always gets
enabled before we read out the comp value.

What are the other port A PHY registers in the above case?

Could it be that the port A PHY power gating in PORT_CL1CM_DW28 causes
this?

Not sure how good it is to reuse the same comp value across multiple
off/on cycles, it could change in theory. There could also be some other
issue with the port A PHY init.

> 
> Cc: Ville Syrjälä 
> Signed-off-by: Clint Taylor 
> ---
>  drivers/gpu/drm/i915/intel_dpio_phy.c | 8 ++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dpio_phy.c 
> b/drivers/gpu/drm/i915/intel_dpio_phy.c
> index 3c7f10d..7cee57f 100644
> --- a/drivers/gpu/drm/i915/intel_dpio_phy.c
> +++ b/drivers/gpu/drm/i915/intel_dpio_phy.c
> @@ -422,8 +422,12 @@ static void _bxt_ddi_phy_init(struct drm_i915_private 
> *dev_priv,
>* the corresponding calibrated value from PHY1, and disable
>* the automatic calibration on PHY0.
>*/
> - val = dev_priv->bxt_phy_grc = bxt_get_grc(dev_priv,
> -   phy_info->rcomp_phy);
> + if (!dev_priv->bxt_phy_grc)
> + val = dev_priv->bxt_phy_grc = bxt_get_grc(dev_priv,
> +   
> phy_info->rcomp_phy);
> + else
> + val = dev_priv->bxt_phy_grc;
> +
>   grc_code = val << GRC_CODE_FAST_SHIFT |
>  val << GRC_CODE_SLOW_SHIFT |
>  val;
> -- 
> 1.9.1
> 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v2 2/5] drm/i915/fixed: prefer kernel types over stdint types

2018-11-16 Thread Rodrigo Vivi
On Fri, Nov 16, 2018 at 02:07:26PM +0200, Jani Nikula wrote:
> While at it, conform to kernel spacing (i.e. no space) after cast. No
> functional changes.

could we do a sed or cocinelle patch for a massive update on this?

> 
> Reviewed-by: Joonas Lahtinen 
> Signed-off-by: Jani Nikula 
> ---
>  drivers/gpu/drm/i915/i915_fixed.h | 61 
> +++
>  1 file changed, 29 insertions(+), 32 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_fixed.h 
> b/drivers/gpu/drm/i915/i915_fixed.h
> index c974e51c6d8b..6c914940b4a9 100644
> --- a/drivers/gpu/drm/i915/i915_fixed.h
> +++ b/drivers/gpu/drm/i915/i915_fixed.h
> @@ -7,7 +7,7 @@
>  #define _I915_FIXED_H_
>  
>  typedef struct {
> - uint32_t val;
> + u32 val;
>  } uint_fixed_16_16_t;
>  
>  #define FP_16_16_MAX ({ \
> @@ -23,7 +23,7 @@ static inline bool is_fixed16_zero(uint_fixed_16_16_t val)
>   return false;
>  }
>  
> -static inline uint_fixed_16_16_t u32_to_fixed16(uint32_t val)
> +static inline uint_fixed_16_16_t u32_to_fixed16(u32 val)
>  {
>   uint_fixed_16_16_t fp;
>  
> @@ -33,12 +33,12 @@ static inline uint_fixed_16_16_t u32_to_fixed16(uint32_t 
> val)
>   return fp;
>  }
>  
> -static inline uint32_t fixed16_to_u32_round_up(uint_fixed_16_16_t fp)
> +static inline u32 fixed16_to_u32_round_up(uint_fixed_16_16_t fp)
>  {
>   return DIV_ROUND_UP(fp.val, 1 << 16);
>  }
>  
> -static inline uint32_t fixed16_to_u32(uint_fixed_16_16_t fp)
> +static inline u32 fixed16_to_u32(uint_fixed_16_16_t fp)
>  {
>   return fp.val >> 16;
>  }
> @@ -61,86 +61,83 @@ static inline uint_fixed_16_16_t 
> max_fixed16(uint_fixed_16_16_t max1,
>   return max;
>  }
>  
> -static inline uint_fixed_16_16_t clamp_u64_to_fixed16(uint64_t val)
> +static inline uint_fixed_16_16_t clamp_u64_to_fixed16(u64 val)
>  {
>   uint_fixed_16_16_t fp;
>   WARN_ON(val > U32_MAX);
> - fp.val = (uint32_t) val;
> + fp.val = (u32)val;
>   return fp;
>  }
>  
> -static inline uint32_t div_round_up_fixed16(uint_fixed_16_16_t val,
> - uint_fixed_16_16_t d)
> +static inline u32 div_round_up_fixed16(uint_fixed_16_16_t val,
> +uint_fixed_16_16_t d)
>  {
>   return DIV_ROUND_UP(val.val, d.val);
>  }
>  
> -static inline uint32_t mul_round_up_u32_fixed16(uint32_t val,
> - uint_fixed_16_16_t mul)
> +static inline u32 mul_round_up_u32_fixed16(u32 val, uint_fixed_16_16_t mul)
>  {
> - uint64_t intermediate_val;
> + u64 intermediate_val;
>  
> - intermediate_val = (uint64_t) val * mul.val;
> + intermediate_val = (u64)val * mul.val;
>   intermediate_val = DIV_ROUND_UP_ULL(intermediate_val, 1 << 16);
>   WARN_ON(intermediate_val > U32_MAX);
> - return (uint32_t) intermediate_val;
> + return (u32)intermediate_val;
>  }
>  
>  static inline uint_fixed_16_16_t mul_fixed16(uint_fixed_16_16_t val,
>uint_fixed_16_16_t mul)
>  {
> - uint64_t intermediate_val;
> + u64 intermediate_val;
>  
> - intermediate_val = (uint64_t) val.val * mul.val;
> + intermediate_val = (u64)val.val * mul.val;
>   intermediate_val = intermediate_val >> 16;
>   return clamp_u64_to_fixed16(intermediate_val);
>  }
>  
> -static inline uint_fixed_16_16_t div_fixed16(uint32_t val, uint32_t d)
> +static inline uint_fixed_16_16_t div_fixed16(u32 val, u32 d)
>  {
> - uint64_t interm_val;
> + u64 interm_val;
>  
> - interm_val = (uint64_t)val << 16;
> + interm_val = (u64)val << 16;
>   interm_val = DIV_ROUND_UP_ULL(interm_val, d);
>   return clamp_u64_to_fixed16(interm_val);
>  }
>  
> -static inline uint32_t div_round_up_u32_fixed16(uint32_t val,
> - uint_fixed_16_16_t d)
> +static inline u32 div_round_up_u32_fixed16(u32 val, uint_fixed_16_16_t d)
>  {
> - uint64_t interm_val;
> + u64 interm_val;
>  
> - interm_val = (uint64_t)val << 16;
> + interm_val = (u64)val << 16;
>   interm_val = DIV_ROUND_UP_ULL(interm_val, d.val);
>   WARN_ON(interm_val > U32_MAX);
> - return (uint32_t) interm_val;
> + return (u32)interm_val;
>  }
>  
> -static inline uint_fixed_16_16_t mul_u32_fixed16(uint32_t val,
> -  uint_fixed_16_16_t mul)
> +static inline uint_fixed_16_16_t mul_u32_fixed16(u32 val, uint_fixed_16_16_t 
> mul)
>  {
> - uint64_t intermediate_val;
> + u64 intermediate_val;
>  
> - intermediate_val = (uint64_t) val * mul.val;
> + intermediate_val = (u64)val * mul.val;
>   return clamp_u64_to_fixed16(intermediate_val);
>  }
>  
>  static inline uint_fixed_16_16_t add_fixed16(uint_fixed_16_16_t add1,
>uint_fixed_16_16_t add2)
>  {
> - uint64_t interm_sum;
> + u64 interm_sum;
>  
> - interm_sum = (uint64_t) add1.val + add2.val;
> + 

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915/icl: Release TC ports when unloading or suspending driver

2018-11-16 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm/i915/icl: Release TC ports when 
unloading or suspending driver
URL   : https://patchwork.freedesktop.org/series/52195/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5152 -> Patchwork_10842 =

== Summary - SUCCESS ==

  No regressions found.

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

== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_ctx_create@basic-files:
  fi-icl-u2:  PASS -> DMESG-WARN (fdo#107724)

igt@gem_exec_suspend@basic-s3:
  fi-icl-u2:  PASS -> DMESG-WARN (fdo#107732, fdo#108070)

igt@i915_selftest@live_contexts:
  fi-bsw-kefka:   PASS -> DMESG-FAIL (fdo#108656)

igt@i915_selftest@live_hangcheck:
  fi-icl-u:   PASS -> INCOMPLETE (fdo#108315)

igt@kms_frontbuffer_tracking@basic:
  fi-byt-clapper: PASS -> FAIL (fdo#103167)

igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b:
  fi-byt-clapper: PASS -> FAIL (fdo#107362)

igt@prime_vgem@basic-fence-flip:
  fi-gdg-551: PASS -> DMESG-FAIL (fdo#103182)


 Possible fixes 

igt@i915_module_load@reload:
  fi-blb-e6850:   INCOMPLETE (fdo#107718) -> PASS

igt@kms_frontbuffer_tracking@basic:
  fi-hsw-peppy:   DMESG-WARN (fdo#102614) -> PASS


  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103182 https://bugs.freedesktop.org/show_bug.cgi?id=103182
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718
  fdo#107724 https://bugs.freedesktop.org/show_bug.cgi?id=107724
  fdo#107732 https://bugs.freedesktop.org/show_bug.cgi?id=107732
  fdo#108070 https://bugs.freedesktop.org/show_bug.cgi?id=108070
  fdo#108315 https://bugs.freedesktop.org/show_bug.cgi?id=108315
  fdo#108656 https://bugs.freedesktop.org/show_bug.cgi?id=108656


== Participating hosts (51 -> 47) ==

  Missing(4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_5152 -> Patchwork_10842

  CI_DRM_5152: 458538284af8fa513c9d1404a8651931d6c79ddf @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4718: 8ac5cfb4db9c7bc593beec18a6be1e2ff163106c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10842: 717b90b72bc3f8c6e369bdfcf74399204481a380 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

717b90b72bc3 drm/i915/icl: Delay hotplug processing for tc ports
dcd4650c2e3b drm/i915: Call intel_hpd_cancel_work() from intel_hpd_suspend()
b59497b57993 drm/i915/icl: Release TC ports when unloading or suspending driver

== Logs ==

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


Re: [Intel-gfx] [PATCH v3] drm/i915: Remove partial attempt to swizzle on pread/pwrite

2018-11-16 Thread Kenneth Graunke
On Friday, November 16, 2018 7:02:04 AM PST Joonas Lahtinen wrote:
> Quoting Chris Wilson (2018-10-12 14:56:21)
> > Our attempt to account for bit17 swizzling of pread/pwrite onto tiled
> > objects was flawed due to the simple fact that we do not always know the
> > swizzling for a particular page (due to the swizzling varying based on
> > location in certain unbalanced configurations). Furthermore, the
> > pread/pwrite paths are now unbalanced in that we are required to use the
> > GTT as in some cases we do not have direct CPU access to the backing
> > physical pages (thus some paths trying to account for the swizzle, but
> > others neglecting, chaos ensues).
> > 
> > There are no known users who do use pread/pwrite into a tiled object
> > (you need to manually detile anyway, so why now just use mmap and avoid
> > the copy?) and no user bug reports to indicate that it is being used in
> > the wild. As no one is hitting the buggy path, we can just remove the
> > buggy code.
> 
> Adding a few Mesa folks for an Ack, they should remember if they've done it
> in the past.

Eheheh...bit17 and 9xx hardware are before my time. :(  I've copied Ian
in case he remembers anything from that era.

It looks like the only users of pwrite and pread in Mesa's i915 driver
are for linear buffer objects, not miptrees which could be tiled.

So I think this is fine...(famous last words...)
Acked-by: Kenneth Graunke 

> If we have good enough confidence that it was unused in the userspace
> drivers, should be OK to be dropped. And it would have been broken
> anyway, which pretty much automatically means it didn't see use, but
> doesn't hurt to hear from them.
> 
> Regards, Joonas
> 
> > 
> > v2: Just use the fault allowing kmap() + normal copy_(to|from)_user
> > v3: Avoid int overflow in computing 'length' from 'remain' (Tvrtko)
> > 
> > References: fe115628d567 ("drm/i915: Implement pwrite without struct-mutex")
> > Signed-off-by: Chris Wilson 
> > Cc: Joonas Lahtinen 
> > Cc: Tvrtko Ursulin 
> > ---
> >  drivers/gpu/drm/i915/i915_gem.c | 195 
> >  1 file changed, 25 insertions(+), 170 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_gem.c 
> > b/drivers/gpu/drm/i915/i915_gem.c
> > index 7d45e71100bc..8049458ab6ac 100644
> > --- a/drivers/gpu/drm/i915/i915_gem.c
> > +++ b/drivers/gpu/drm/i915/i915_gem.c
> > @@ -859,58 +859,6 @@ flush_write_domain(struct drm_i915_gem_object *obj, 
> > unsigned int flush_domains)
> > obj->write_domain = 0;
> >  }
> >  
> > -static inline int
> > -__copy_to_user_swizzled(char __user *cpu_vaddr,
> > -   const char *gpu_vaddr, int gpu_offset,
> > -   int length)
> > -{
> > -   int ret, cpu_offset = 0;
> > -
> > -   while (length > 0) {
> > -   int cacheline_end = ALIGN(gpu_offset + 1, 64);
> > -   int this_length = min(cacheline_end - gpu_offset, length);
> > -   int swizzled_gpu_offset = gpu_offset ^ 64;
> > -
> > -   ret = __copy_to_user(cpu_vaddr + cpu_offset,
> > -gpu_vaddr + swizzled_gpu_offset,
> > -this_length);
> > -   if (ret)
> > -   return ret + length;
> > -
> > -   cpu_offset += this_length;
> > -   gpu_offset += this_length;
> > -   length -= this_length;
> > -   }
> > -
> > -   return 0;
> > -}
> > -
> > -static inline int
> > -__copy_from_user_swizzled(char *gpu_vaddr, int gpu_offset,
> > - const char __user *cpu_vaddr,
> > - int length)
> > -{
> > -   int ret, cpu_offset = 0;
> > -
> > -   while (length > 0) {
> > -   int cacheline_end = ALIGN(gpu_offset + 1, 64);
> > -   int this_length = min(cacheline_end - gpu_offset, length);
> > -   int swizzled_gpu_offset = gpu_offset ^ 64;
> > -
> > -   ret = __copy_from_user(gpu_vaddr + swizzled_gpu_offset,
> > -  cpu_vaddr + cpu_offset,
> > -  this_length);
> > -   if (ret)
> > -   return ret + length;
> > -
> > -   cpu_offset += this_length;
> > -   gpu_offset += this_length;
> > -   length -= this_length;
> > -   }
> > -
> > -   return 0;
> > -}
> > -
> >  /*
> >   * Pins the specified object's pages and synchronizes the object with
> >   * GPU accesses. Sets needs_clflush to non-zero if the caller should
> > @@ -1030,72 +978,23 @@ int i915_gem_obj_prepare_shmem_write(struct 
> > drm_i915_gem_object *obj,
> > return ret;
> >  }
> >  
> > -static void
> > -shmem_clflush_swizzled_range(char *addr, unsigned long length,
> > -bool swizzled)
> > -{
> > -   if (unlikely(swizzled)) {
> > -   unsigned long start = (unsigned long) addr;
> > -   

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Hide enable_gvt modparam when not compiled in

2018-11-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Hide enable_gvt modparam when not compiled in
URL   : https://patchwork.freedesktop.org/series/52616/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5151 -> Patchwork_10841 =

== Summary - SUCCESS ==

  No regressions found.

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

== Possible new issues ==

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

  === IGT changes ===

 Possible regressions 

{igt@runner@aborted}:
  fi-icl-u:   NOTRUN -> FAIL


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_exec_suspend@basic-s3:
  fi-icl-u2:  PASS -> DMESG-WARN (fdo#107724)


 Possible fixes 

igt@i915_selftest@live_coherency:
  fi-gdg-551: DMESG-FAIL (fdo#107164) -> PASS

igt@i915_selftest@live_hangcheck:
  fi-skl-iommu:   INCOMPLETE (fdo#108602) -> PASS

igt@kms_frontbuffer_tracking@basic:
  fi-hsw-peppy:   DMESG-WARN (fdo#102614) -> PASS
  fi-byt-clapper: FAIL (fdo#103167) -> PASS

igt@kms_pipe_crc_basic@read-crc-pipe-a:
  fi-byt-clapper: FAIL (fdo#107362) -> PASS


 Warnings 

igt@i915_selftest@live_contexts:
  fi-icl-u:   DMESG-FAIL (fdo#108569) -> INCOMPLETE (fdo#108315)


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

  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#107164 https://bugs.freedesktop.org/show_bug.cgi?id=107164
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107724 https://bugs.freedesktop.org/show_bug.cgi?id=107724
  fdo#108315 https://bugs.freedesktop.org/show_bug.cgi?id=108315
  fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569
  fdo#108602 https://bugs.freedesktop.org/show_bug.cgi?id=108602


== Participating hosts (48 -> 46) ==

  Additional (1): fi-byt-j1900 
  Missing(3): fi-ilk-m540 fi-byt-squawks fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_5151 -> Patchwork_10841

  CI_DRM_5151: 65d1ff82ff3c9c20c78bd66f19f0f20f0fd46c4e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4718: 8ac5cfb4db9c7bc593beec18a6be1e2ff163106c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10841: fa91c9f62ba9c96a7b2f86dcd39c7e6617918805 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

fa91c9f62ba9 drm/i915: Hide enable_gvt modparam when not compiled in

== Logs ==

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


Re: [Intel-gfx] [PATCH] drm/i915: Downgrade unknown firmware warnings

2018-11-16 Thread Joonas Lahtinen
Quoting Chris Wilson (2018-10-09 14:12:59)
> If we have released no firmware yet for a platform, stop scaring the
> consumer and merely note its expected absence.
> 
> Signed-off-by: Chris Wilson 
> Cc: Petri Latvala 

Reviewed-by: Joonas Lahtinen 

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


Re: [Intel-gfx] [PATCH v3] drm/i915: Remove partial attempt to swizzle on pread/pwrite

2018-11-16 Thread Joonas Lahtinen
Quoting Chris Wilson (2018-10-12 14:56:21)
> Our attempt to account for bit17 swizzling of pread/pwrite onto tiled
> objects was flawed due to the simple fact that we do not always know the
> swizzling for a particular page (due to the swizzling varying based on
> location in certain unbalanced configurations). Furthermore, the
> pread/pwrite paths are now unbalanced in that we are required to use the
> GTT as in some cases we do not have direct CPU access to the backing
> physical pages (thus some paths trying to account for the swizzle, but
> others neglecting, chaos ensues).
> 
> There are no known users who do use pread/pwrite into a tiled object
> (you need to manually detile anyway, so why now just use mmap and avoid
> the copy?) and no user bug reports to indicate that it is being used in
> the wild. As no one is hitting the buggy path, we can just remove the
> buggy code.

Adding a few Mesa folks for an Ack, they should remember if they've done it
in the past.

If we have good enough confidence that it was unused in the userspace
drivers, should be OK to be dropped. And it would have been broken
anyway, which pretty much automatically means it didn't see use, but
doesn't hurt to hear from them.

Regards, Joonas

> 
> v2: Just use the fault allowing kmap() + normal copy_(to|from)_user
> v3: Avoid int overflow in computing 'length' from 'remain' (Tvrtko)
> 
> References: fe115628d567 ("drm/i915: Implement pwrite without struct-mutex")
> Signed-off-by: Chris Wilson 
> Cc: Joonas Lahtinen 
> Cc: Tvrtko Ursulin 
> ---
>  drivers/gpu/drm/i915/i915_gem.c | 195 
>  1 file changed, 25 insertions(+), 170 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 7d45e71100bc..8049458ab6ac 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -859,58 +859,6 @@ flush_write_domain(struct drm_i915_gem_object *obj, 
> unsigned int flush_domains)
> obj->write_domain = 0;
>  }
>  
> -static inline int
> -__copy_to_user_swizzled(char __user *cpu_vaddr,
> -   const char *gpu_vaddr, int gpu_offset,
> -   int length)
> -{
> -   int ret, cpu_offset = 0;
> -
> -   while (length > 0) {
> -   int cacheline_end = ALIGN(gpu_offset + 1, 64);
> -   int this_length = min(cacheline_end - gpu_offset, length);
> -   int swizzled_gpu_offset = gpu_offset ^ 64;
> -
> -   ret = __copy_to_user(cpu_vaddr + cpu_offset,
> -gpu_vaddr + swizzled_gpu_offset,
> -this_length);
> -   if (ret)
> -   return ret + length;
> -
> -   cpu_offset += this_length;
> -   gpu_offset += this_length;
> -   length -= this_length;
> -   }
> -
> -   return 0;
> -}
> -
> -static inline int
> -__copy_from_user_swizzled(char *gpu_vaddr, int gpu_offset,
> - const char __user *cpu_vaddr,
> - int length)
> -{
> -   int ret, cpu_offset = 0;
> -
> -   while (length > 0) {
> -   int cacheline_end = ALIGN(gpu_offset + 1, 64);
> -   int this_length = min(cacheline_end - gpu_offset, length);
> -   int swizzled_gpu_offset = gpu_offset ^ 64;
> -
> -   ret = __copy_from_user(gpu_vaddr + swizzled_gpu_offset,
> -  cpu_vaddr + cpu_offset,
> -  this_length);
> -   if (ret)
> -   return ret + length;
> -
> -   cpu_offset += this_length;
> -   gpu_offset += this_length;
> -   length -= this_length;
> -   }
> -
> -   return 0;
> -}
> -
>  /*
>   * Pins the specified object's pages and synchronizes the object with
>   * GPU accesses. Sets needs_clflush to non-zero if the caller should
> @@ -1030,72 +978,23 @@ int i915_gem_obj_prepare_shmem_write(struct 
> drm_i915_gem_object *obj,
> return ret;
>  }
>  
> -static void
> -shmem_clflush_swizzled_range(char *addr, unsigned long length,
> -bool swizzled)
> -{
> -   if (unlikely(swizzled)) {
> -   unsigned long start = (unsigned long) addr;
> -   unsigned long end = (unsigned long) addr + length;
> -
> -   /* For swizzling simply ensure that we always flush both
> -* channels. Lame, but simple and it works. Swizzled
> -* pwrite/pread is far from a hotpath - current userspace
> -* doesn't use it at all. */
> -   start = round_down(start, 128);
> -   end = round_up(end, 128);
> -
> -   drm_clflush_virt_range((void *)start, end - start);
> -   } else {
> -   drm_clflush_virt_range(addr, length);
> -   }
> -
> -}
> -
> -/* Only difference to the fast-path 

Re: [Intel-gfx] [PATCH] drm/i915: Hide enable_gvt modparam when not compiled in

2018-11-16 Thread Chris Wilson
Quoting Joonas Lahtinen (2018-11-16 14:44:47)
> Hide the enable_gvt modparam in the default scenario where
> support has not been compiled in.
> 
> Cc: Zhenyu Wang 
> Cc: Zhi Wang 
> Cc: Chris Wilson 
> Signed-off-by: Joonas Lahtinen 

Alternative would be to move the param into a gvt-only file.c

Reviewed-by: Chris Wilson 

Random thought: Also a lot of the error state will be garbage for gvt
clients.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: Hide enable_gvt modparam when not compiled in

2018-11-16 Thread Joonas Lahtinen
Hide the enable_gvt modparam in the default scenario where
support has not been compiled in.

Cc: Zhenyu Wang 
Cc: Zhi Wang 
Cc: Chris Wilson 
Signed-off-by: Joonas Lahtinen 
---
 drivers/gpu/drm/i915/i915_params.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_params.c 
b/drivers/gpu/drm/i915/i915_params.c
index 8d71886b5f03..2e0356561839 100644
--- a/drivers/gpu/drm/i915/i915_params.c
+++ b/drivers/gpu/drm/i915/i915_params.c
@@ -167,8 +167,10 @@ i915_param_named_unsafe(inject_load_failure, uint, 0400,
 i915_param_named(enable_dpcd_backlight, bool, 0600,
"Enable support for DPCD backlight control (default:false)");
 
+#if IS_ENABLED(CONFIG_DRM_I915_GVT)
 i915_param_named(enable_gvt, bool, 0400,
"Enable support for Intel GVT-g graphics virtualization host 
support(default:false)");
+#endif
 
 static __always_inline void _print_param(struct drm_printer *p,
 const char *name,
-- 
2.17.2

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


Re: [Intel-gfx] [GVT-g] [ANNOUNCE] 2018-Q3 release of KVMGT (Intel GVT-g for KVM)

2018-11-16 Thread Joonas Lahtinen
Quoting Xu, Terrence (2018-10-19 10:04:47)
> Platform Support:
> 
> -Server platforms: Intel(r) Xeon(r) E3_v4, E3_v5 and E3_v6 with Intel
> Graphics processor
> 
> -Client platforms: Intel(r) Core(tm) 5th generation (code name: 
> Broadwell),
> 6th generation (code name: Skylake), 7th generation (code name: Kabylake) and
> 7th SoC generation (code name: Broxton), the Broxton is new supported platform

Does this mean that all SKUs from those platforms are supported so that when
users report bugs, they will be worked on?

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


[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/2] Revert "drm/i915/perf: add a parameter to control the size of OA buffer"

2018-11-16 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] Revert "drm/i915/perf: add a parameter to 
control the size of OA buffer"
URL   : https://patchwork.freedesktop.org/series/52612/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_5150 -> Patchwork_10840 =

== Summary - FAILURE ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Possible regressions 

igt@drv_selftest@live_contexts:
  fi-kbl-7560u:   PASS -> INCOMPLETE

igt@kms_chamelium@hdmi-hpd-fast:
  {fi-kbl-7500u}: SKIP -> FAIL +2


 Warnings 

igt@kms_chamelium@common-hpd-after-suspend:
  {fi-kbl-7500u}: DMESG-WARN (fdo#102505, fdo#105079, fdo#105602) -> 
FAIL


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_ctx_create@basic-files:
  fi-bsw-n3050:   PASS -> FAIL (fdo#108656)

igt@gem_ctx_switch@basic-default:
  fi-icl-u2:  PASS -> DMESG-WARN (fdo#107724)

igt@kms_frontbuffer_tracking@basic:
  fi-byt-clapper: PASS -> FAIL (fdo#103167)

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
  fi-byt-clapper: PASS -> FAIL (fdo#103191, fdo#107362) +1

igt@prime_vgem@basic-fence-flip:
  fi-gdg-551: PASS -> DMESG-FAIL (fdo#103182)


 Possible fixes 

igt@drv_selftest@live_coherency:
  fi-gdg-551: DMESG-FAIL (fdo#107164) -> PASS

igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
  fi-snb-2520m:   DMESG-FAIL (fdo#103713) -> PASS


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

  fdo#102505 https://bugs.freedesktop.org/show_bug.cgi?id=102505
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103182 https://bugs.freedesktop.org/show_bug.cgi?id=103182
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#105079 https://bugs.freedesktop.org/show_bug.cgi?id=105079
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#107164 https://bugs.freedesktop.org/show_bug.cgi?id=107164
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107724 https://bugs.freedesktop.org/show_bug.cgi?id=107724
  fdo#108656 https://bugs.freedesktop.org/show_bug.cgi?id=108656


== Participating hosts (50 -> 46) ==

  Missing(4): fi-ilk-m540 fi-byt-squawks fi-hsw-4200u fi-pnv-d510 


== Build changes ==

* Linux: CI_DRM_5150 -> Patchwork_10840

  CI_DRM_5150: ab97324c7fb98fc8cadbe5ae4e50f36fb0137308 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4716: 111593c49d812a4f4ff9ab0ef053a3ab88a6f73f @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10840: 11e9d279512d627d39c256358323ee8b32eab5e7 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

11e9d279512d Revert "drm/i915/perf: Fix warning in documentation"
b808c374682f Revert "drm/i915/perf: add a parameter to control the size of OA 
buffer"

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10840/issues.html
___
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/2] Revert "drm/i915/perf: add a parameter to control the size of OA buffer"

2018-11-16 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] Revert "drm/i915/perf: add a parameter to 
control the size of OA buffer"
URL   : https://patchwork.freedesktop.org/series/52612/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: Revert "drm/i915/perf: add a parameter to control the size of OA buffer"
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_perf.c:2665:17: warning: 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] Revert "drm/i915/perf: add a parameter to control the size of OA buffer"

2018-11-16 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] Revert "drm/i915/perf: add a parameter to 
control the size of OA buffer"
URL   : https://patchwork.freedesktop.org/series/52612/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
b808c374682f Revert "drm/i915/perf: add a parameter to control the size of OA 
buffer"
-:42: CHECK:MACRO_ARG_PRECEDENCE: Macro argument 'tail' may be better as 
'(tail)' to avoid precedence issues
#42: FILE: drivers/gpu/drm/i915/i915_perf.c:221:
+#define OA_TAKEN(tail, head)   ((tail - head) & (OA_BUFFER_SIZE - 1))

-:42: CHECK:MACRO_ARG_PRECEDENCE: Macro argument 'head' may be better as 
'(head)' to avoid precedence issues
#42: FILE: drivers/gpu/drm/i915/i915_perf.c:221:
+#define OA_TAKEN(tail, head)   ((tail - head) & (OA_BUFFER_SIZE - 1))

total: 0 errors, 0 warnings, 2 checks, 272 lines checked
11e9d279512d Revert "drm/i915/perf: Fix warning in documentation"

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


[Intel-gfx] [PATCH 1/2] Revert "drm/i915/perf: add a parameter to control the size of OA buffer"

2018-11-16 Thread Joonas Lahtinen
Userspace portion is still missing.

This reverts commit cd956bfcd0f58d20485ac0a785415f7d9327a95f.

Cc: Lionel Landwerlin 
Cc: Matthew Auld 
Signed-off-by: Joonas Lahtinen 
---
 drivers/gpu/drm/i915/i915_drv.h  |  1 -
 drivers/gpu/drm/i915/i915_perf.c | 99 +++-
 drivers/gpu/drm/i915/i915_reg.h  |  2 -
 include/uapi/drm/i915_drm.h  |  7 ---
 4 files changed, 33 insertions(+), 76 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index d69b71d368d3..017f851a586a 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2004,7 +2004,6 @@ struct drm_i915_private {
u32 last_ctx_id;
int format;
int format_size;
-   int size_exponent;
 
/**
 * Locks reads and writes to all head/tail state
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 2c2b63be7a6c..c762418d3b01 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -212,7 +212,13 @@
 #include "i915_oa_icl.h"
 #include "intel_lrc_reg.h"
 
-#define OA_TAKEN(tail, head)   (((tail) - (head)) & 
(dev_priv->perf.oa.oa_buffer.vma->size - 1))
+/* HW requires this to be a power of two, between 128k and 16M, though driver
+ * is currently generally designed assuming the largest 16M size is used such
+ * that the overflow cases are unlikely in normal operation.
+ */
+#define OA_BUFFER_SIZE SZ_16M
+
+#define OA_TAKEN(tail, head)   ((tail - head) & (OA_BUFFER_SIZE - 1))
 
 /**
  * DOC: OA Tail Pointer Race
@@ -356,7 +362,6 @@ struct perf_open_properties {
int oa_format;
bool oa_periodic;
int oa_period_exponent;
-   u32 oa_buffer_size_exponent;
 };
 
 static void free_oa_config(struct drm_i915_private *dev_priv,
@@ -519,7 +524,7 @@ static bool oa_buffer_check_unlocked(struct 
drm_i915_private *dev_priv)
 * could put the tail out of bounds...
 */
if (hw_tail >= gtt_offset &&
-   hw_tail < (gtt_offset + 
dev_priv->perf.oa.oa_buffer.vma->size)) {
+   hw_tail < (gtt_offset + OA_BUFFER_SIZE)) {
dev_priv->perf.oa.oa_buffer.tails[!aged_idx].offset =
aging_tail = hw_tail;
dev_priv->perf.oa.oa_buffer.aging_timestamp = now;
@@ -648,7 +653,7 @@ static int gen8_append_oa_reports(struct i915_perf_stream 
*stream,
int report_size = dev_priv->perf.oa.oa_buffer.format_size;
u8 *oa_buf_base = dev_priv->perf.oa.oa_buffer.vaddr;
u32 gtt_offset = i915_ggtt_offset(dev_priv->perf.oa.oa_buffer.vma);
-   u32 mask = (dev_priv->perf.oa.oa_buffer.vma->size - 1);
+   u32 mask = (OA_BUFFER_SIZE - 1);
size_t start_offset = *offset;
unsigned long flags;
unsigned int aged_tail_idx;
@@ -688,8 +693,8 @@ static int gen8_append_oa_reports(struct i915_perf_stream 
*stream,
 * only be incremented by multiples of the report size (notably also
 * all a power of two).
 */
-   if (WARN_ONCE(head > dev_priv->perf.oa.oa_buffer.vma->size || head % 
report_size ||
- tail > dev_priv->perf.oa.oa_buffer.vma->size || tail % 
report_size,
+   if (WARN_ONCE(head > OA_BUFFER_SIZE || head % report_size ||
+ tail > OA_BUFFER_SIZE || tail % report_size,
  "Inconsistent OA buffer pointers: head = %u, tail = %u\n",
  head, tail))
return -EIO;
@@ -712,7 +717,7 @@ static int gen8_append_oa_reports(struct i915_perf_stream 
*stream,
 * here would imply a driver bug that would result
 * in an overrun.
 */
-   if (WARN_ON((dev_priv->perf.oa.oa_buffer.vma->size - head) < 
report_size)) {
+   if (WARN_ON((OA_BUFFER_SIZE - head) < report_size)) {
DRM_ERROR("Spurious OA head ptr: non-integral report 
offset\n");
break;
}
@@ -871,6 +876,11 @@ static int gen8_oa_read(struct i915_perf_stream *stream,
 * automatically triggered reports in this condition and so we
 * have to assume that old reports are now being trampled
 * over.
+*
+* Considering how we don't currently give userspace control
+* over the OA buffer size and always configure a large 16MB
+* buffer, then a buffer overflow does anyway likely indicate
+* that something has gone quite badly wrong.
 */
if (oastatus & GEN8_OASTATUS_OABUFFER_OVERFLOW) {
ret = append_oa_status(stream, buf, count, offset,
@@ -932,7 +942,7 @@ static int gen7_append_oa_reports(struct i915_perf_stream 
*stream,
int report_size = 

[Intel-gfx] [PATCH 2/2] Revert "drm/i915/perf: Fix warning in documentation"

2018-11-16 Thread Joonas Lahtinen
Userspace portion is still missing.

This reverts commit 9fa6e2f7609fdbb7d6f86be86371a5719bec0376.

Cc: Lionel Landwerlin 
Cc: Matthew Auld 
Signed-off-by: Joonas Lahtinen 
---
 drivers/gpu/drm/i915/i915_perf.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index c762418d3b01..4529edfdcfc8 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -345,7 +345,6 @@ static const struct i915_oa_format 
gen8_plus_oa_formats[I915_OA_FORMAT_MAX] = {
  * @oa_format: An OA unit HW report format
  * @oa_periodic: Whether to enable periodic OA unit sampling
  * @oa_period_exponent: The OA unit sampling period is derived from this
- * @oa_buffer_size_exponent: The OA buffer size is derived from this
  *
  * As read_properties_unlocked() enumerates and validates the properties given
  * to open a stream of metrics the configuration is built up in the structure
-- 
2.17.2

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


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Disable LP3 watermarks on all SNB machines (rev2)

2018-11-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Disable LP3 watermarks on all SNB machines (rev2)
URL   : https://patchwork.freedesktop.org/series/52440/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5150_full -> Patchwork_10837_full =

== Summary - WARNING ==

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

  === IGT changes ===

 Warnings 

igt@tools_test@tools_test:
  shard-kbl:  PASS -> SKIP


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@drm_import_export@import-close-race-flink:
  shard-skl:  PASS -> TIMEOUT (fdo#108667)

igt@gem_exec_schedule@pi-ringfull-bsd:
  shard-skl:  NOTRUN -> FAIL (fdo#103158) +1

igt@gem_exec_schedule@pi-ringfull-render:
  shard-kbl:  NOTRUN -> FAIL (fdo#103158)

igt@gem_ppgtt@blt-vs-render-ctx0:
  shard-skl:  NOTRUN -> TIMEOUT (fdo#108039)

igt@kms_busy@extended-modeset-hang-newfb-render-b:
  shard-skl:  NOTRUN -> DMESG-WARN (fdo#107956) +1

igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b:
  shard-snb:  NOTRUN -> DMESG-WARN (fdo#107956)

igt@kms_cursor_crc@cursor-128x128-suspend:
  shard-skl:  PASS -> INCOMPLETE (fdo#104108)

igt@kms_cursor_crc@cursor-64x21-sliding:
  shard-apl:  PASS -> FAIL (fdo#103232) +1

igt@kms_flip@2x-flip-vs-expired-vblank:
  shard-glk:  PASS -> FAIL (fdo#105363)

igt@kms_flip@flip-vs-expired-vblank-interruptible:
  shard-skl:  PASS -> FAIL (fdo#105363)

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff:
  shard-glk:  PASS -> FAIL (fdo#103167)

igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
  shard-skl:  PASS -> FAIL (fdo#103167)

igt@kms_frontbuffer_tracking@fbcpsr-stridechange:
  shard-skl:  NOTRUN -> FAIL (fdo#105683)

igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc:
  shard-skl:  NOTRUN -> FAIL (fdo#103167) +1

igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
  shard-skl:  NOTRUN -> FAIL (fdo#108145) +2

igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max:
  shard-kbl:  NOTRUN -> FAIL (fdo#108145)

igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
  shard-skl:  NOTRUN -> FAIL (fdo#108145, fdo#107815) +2

igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
  shard-skl:  PASS -> FAIL (fdo#107815)

igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
  shard-skl:  NOTRUN -> FAIL (fdo#103166, fdo#107815)

igt@kms_rotation_crc@primary-rotation-90:
  shard-skl:  PASS -> FAIL (fdo#103925, fdo#107815)

igt@kms_setmode@basic:
  shard-apl:  PASS -> FAIL (fdo#99912)

igt@pm_backlight@fade_with_suspend:
  shard-skl:  NOTRUN -> FAIL (fdo#107847)

igt@pm_rpm@system-suspend-modeset:
  shard-skl:  PASS -> INCOMPLETE (fdo#104108, fdo#107807)

igt@syncobj_wait@invalid-signal-one-illegal-handle:
  shard-glk:  PASS -> DMESG-WARN (fdo#105763, fdo#106538) +1


 Possible fixes 

igt@drv_suspend@shrink:
  shard-glk:  INCOMPLETE (k.org#198133, fdo#103359, fdo#106886) -> 
PASS

igt@gem_userptr_blits@readonly-unsync:
  shard-skl:  INCOMPLETE (fdo#108074) -> PASS

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

igt@kms_cursor_crc@cursor-256x256-random:
  shard-apl:  FAIL (fdo#103232) -> PASS +2

igt@kms_cursor_crc@cursor-64x64-suspend:
  shard-apl:  FAIL (fdo#103232, fdo#103191) -> PASS

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move:
  shard-glk:  FAIL (fdo#103167) -> PASS

igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
  shard-skl:  FAIL (fdo#108145, fdo#107815) -> PASS

igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
  shard-glk:  FAIL (fdo#108145) -> PASS

igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
  shard-skl:  FAIL (fdo#107815) -> PASS

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

igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
  shard-glk:  FAIL (fdo#103166) -> PASS

igt@perf@oa-exponents:
  shard-kbl:  INCOMPLETE (fdo#103665) -> PASS


 Warnings 


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Disable LP3 watermarks on all SNB machines (rev2)

2018-11-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Disable LP3 watermarks on all SNB machines (rev2)
URL   : https://patchwork.freedesktop.org/series/52440/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5150 -> Patchwork_10839 =

== Summary - SUCCESS ==

  No regressions found.

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

== Possible new issues ==

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

  === IGT changes ===

 Possible regressions 

igt@kms_chamelium@hdmi-hpd-fast:
  {fi-kbl-7500u}: SKIP -> FAIL +2


 Warnings 

igt@kms_chamelium@common-hpd-after-suspend:
  {fi-kbl-7500u}: DMESG-WARN (fdo#105079, fdo#102505, fdo#105602) -> 
FAIL


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_pipe_crc_basic@read-crc-pipe-b:
  fi-byt-clapper: PASS -> FAIL (fdo#107362)

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-icl-u:   PASS -> INCOMPLETE (fdo#107713)


 Possible fixes 

igt@drv_selftest@live_coherency:
  fi-gdg-551: DMESG-FAIL (fdo#107164) -> PASS

igt@gem_ctx_create@basic-files:
  fi-bsw-kefka:   FAIL (fdo#108656) -> PASS

igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
  fi-snb-2520m:   DMESG-FAIL (fdo#103713) -> PASS


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

  fdo#102505 https://bugs.freedesktop.org/show_bug.cgi?id=102505
  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#105079 https://bugs.freedesktop.org/show_bug.cgi?id=105079
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#107164 https://bugs.freedesktop.org/show_bug.cgi?id=107164
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107713 https://bugs.freedesktop.org/show_bug.cgi?id=107713
  fdo#108656 https://bugs.freedesktop.org/show_bug.cgi?id=108656


== Participating hosts (50 -> 47) ==

  Missing(3): fi-ilk-m540 fi-byt-squawks fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_5150 -> Patchwork_10839

  CI_DRM_5150: ab97324c7fb98fc8cadbe5ae4e50f36fb0137308 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4716: 111593c49d812a4f4ff9ab0ef053a3ab88a6f73f @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10839: 659bb5412af212c8320764c4743d8f52bebdf44f @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

659bb5412af2 drm/i915: Disable LP3 watermarks on all SNB machines

== Logs ==

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


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2,1/5] drm/i915: extract fixed point math to i915_fixed.h

2018-11-16 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/5] drm/i915: extract fixed point math to 
i915_fixed.h
URL   : https://patchwork.freedesktop.org/series/52608/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5150 -> Patchwork_10838 =

== Summary - SUCCESS ==

  No regressions found.

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

== Possible new issues ==

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

  === IGT changes ===

 Possible regressions 

igt@kms_chamelium@hdmi-hpd-fast:
  {fi-kbl-7500u}: SKIP -> FAIL +2


 Warnings 

igt@kms_chamelium@common-hpd-after-suspend:
  {fi-kbl-7500u}: DMESG-WARN (fdo#105602, fdo#105079, fdo#102505) -> 
FAIL


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_ctx_create@basic-files:
  fi-bsw-n3050:   PASS -> FAIL (fdo#108656)
  fi-icl-u2:  PASS -> DMESG-WARN (fdo#107724)

igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a:
  fi-byt-clapper: PASS -> FAIL (fdo#107362)


 Possible fixes 

igt@drv_selftest@live_coherency:
  fi-gdg-551: DMESG-FAIL (fdo#107164) -> PASS

igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
  fi-snb-2520m:   DMESG-FAIL (fdo#103713) -> PASS


 Warnings 

igt@drv_selftest@live_contexts:
  fi-icl-u:   DMESG-FAIL (fdo#108569) -> INCOMPLETE (fdo#108315)


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

  fdo#102505 https://bugs.freedesktop.org/show_bug.cgi?id=102505
  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#105079 https://bugs.freedesktop.org/show_bug.cgi?id=105079
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#107164 https://bugs.freedesktop.org/show_bug.cgi?id=107164
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107724 https://bugs.freedesktop.org/show_bug.cgi?id=107724
  fdo#108315 https://bugs.freedesktop.org/show_bug.cgi?id=108315
  fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569
  fdo#108656 https://bugs.freedesktop.org/show_bug.cgi?id=108656


== Participating hosts (50 -> 46) ==

  Missing(4): fi-ilk-m540 fi-byt-squawks fi-hsw-4200u fi-pnv-d510 


== Build changes ==

* Linux: CI_DRM_5150 -> Patchwork_10838

  CI_DRM_5150: ab97324c7fb98fc8cadbe5ae4e50f36fb0137308 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4716: 111593c49d812a4f4ff9ab0ef053a3ab88a6f73f @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10838: 50d2d523f15e654ef6f95c65b1637cf78518d31a @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

50d2d523f15e drm/i915/fixed: cosmetic cleanup
6224a283b3bb drm/i915/fixed: simplify is_fixed16_zero()
a16ca22d5f12 drm/i915/fixed: simplify FP_16_16_MAX definition
6f246d68ba40 drm/i915/fixed: prefer kernel types over stdint types
8b6b415c312d drm/i915: extract fixed point math to i915_fixed.h

== Logs ==

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


Re: [Intel-gfx] [PATCH v4 4/4] drm/i915/perf: add a parameter to control the size of OA buffer

2018-11-16 Thread Joonas Lahtinen
Quoting Lionel Landwerlin (2018-10-23 13:07:07)
> The way our hardware is designed doesn't seem to let us use the
> MI_RECORD_PERF_COUNT command without setting up a circular buffer.
> 
> In the case where the user didn't request OA reports to be available
> through the i915 perf stream, we can set the OA buffer to the minimum
> size to avoid consuming memory which won't be used by the driver.
> 
> v2: Simplify oa buffer size exponent selection (Chris)
> Reuse vma size field (Lionel)
> 
> v3: Restrict size opening parameter to values supported by HW (Chris)
> 
> v4: Drop out of date comment (Matt)
> Add debug message when buffer size is rejected (Matt)
> 
> Signed-off-by: Lionel Landwerlin 
> Reviewed-by: Matthew Auld 

For anything that alters the uAPI, please provide a link to the
userspace counterpart.

Regards, Joonas
___
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 [v2,1/5] drm/i915: extract fixed point math to i915_fixed.h

2018-11-16 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/5] drm/i915: extract fixed point math to 
i915_fixed.h
URL   : https://patchwork.freedesktop.org/series/52608/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915: extract fixed point math to i915_fixed.h
-O:drivers/gpu/drm/i915/i915_drv.h:172:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:172:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:172:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:172:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:181:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:181:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:181:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:181:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:181:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:181:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:181:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:181:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:181:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:181:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:181:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_drv.h:181:19: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:51:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:51:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:51:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:51:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:60:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:60:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:60:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:60:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:60:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:60:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:60:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:60:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:60:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:60:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:60:19: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:60:19: warning: expression using sizeof(void)
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3705:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3568:16: warning: expression 
using sizeof(void)

Commit: drm/i915/fixed: prefer kernel types over stdint types
Okay!

Commit: drm/i915/fixed: simplify FP_16_16_MAX definition
Okay!

Commit: drm/i915/fixed: simplify is_fixed16_zero()
Okay!

Commit: drm/i915/fixed: cosmetic cleanup
-O:drivers/gpu/drm/i915/i915_fixed.h:45:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:45:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:45:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:45:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:54:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:54:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:54:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:54:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:54:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:54:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:54:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:54:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:54:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:54:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:54:19: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/i915_fixed.h:54:19: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:42:43: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:42:43: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:42:43: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/i915_fixed.h:42:43: warning: 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v2,1/5] drm/i915: extract fixed point math to i915_fixed.h

2018-11-16 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/5] drm/i915: extract fixed point math to 
i915_fixed.h
URL   : https://patchwork.freedesktop.org/series/52608/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
8b6b415c312d drm/i915: extract fixed point math to i915_fixed.h
-:172: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#172: 
new file mode 100644

-:185: WARNING:NEW_TYPEDEFS: do not add new typedefs
#185: FILE: drivers/gpu/drm/i915/i915_fixed.h:9:
+typedef struct {

-:243: WARNING:LINE_SPACING: Missing a blank line after declarations
#243: FILE: drivers/gpu/drm/i915/i915_fixed.h:67:
+   uint_fixed_16_16_t fp;
+   WARN_ON(val > U32_MAX);

-:244: CHECK:SPACING: No space is necessary after a cast
#244: FILE: drivers/gpu/drm/i915/i915_fixed.h:68:
+   fp.val = (uint32_t) val;

-:259: CHECK:SPACING: No space is necessary after a cast
#259: FILE: drivers/gpu/drm/i915/i915_fixed.h:83:
+   intermediate_val = (uint64_t) val * mul.val;

-:262: CHECK:SPACING: No space is necessary after a cast
#262: FILE: drivers/gpu/drm/i915/i915_fixed.h:86:
+   return (uint32_t) intermediate_val;

-:270: CHECK:SPACING: No space is necessary after a cast
#270: FILE: drivers/gpu/drm/i915/i915_fixed.h:94:
+   intermediate_val = (uint64_t) val.val * mul.val;

-:292: CHECK:SPACING: No space is necessary after a cast
#292: FILE: drivers/gpu/drm/i915/i915_fixed.h:116:
+   return (uint32_t) interm_val;

-:300: CHECK:SPACING: No space is necessary after a cast
#300: FILE: drivers/gpu/drm/i915/i915_fixed.h:124:
+   intermediate_val = (uint64_t) val * mul.val;

-:309: CHECK:SPACING: No space is necessary after a cast
#309: FILE: drivers/gpu/drm/i915/i915_fixed.h:133:
+   interm_sum = (uint64_t) add1.val + add2.val;

-:319: CHECK:SPACING: No space is necessary after a cast
#319: FILE: drivers/gpu/drm/i915/i915_fixed.h:143:
+   interm_sum = (uint64_t) add1.val + interm_add2.val;

total: 0 errors, 3 warnings, 8 checks, 298 lines checked
6f246d68ba40 drm/i915/fixed: prefer kernel types over stdint types
a16ca22d5f12 drm/i915/fixed: simplify FP_16_16_MAX definition
6224a283b3bb drm/i915/fixed: simplify is_fixed16_zero()
50d2d523f15e drm/i915/fixed: cosmetic cleanup

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


[Intel-gfx] [PATCH v2 2/5] drm/i915/fixed: prefer kernel types over stdint types

2018-11-16 Thread Jani Nikula
While at it, conform to kernel spacing (i.e. no space) after cast. No
functional changes.

Reviewed-by: Joonas Lahtinen 
Signed-off-by: Jani Nikula 
---
 drivers/gpu/drm/i915/i915_fixed.h | 61 +++
 1 file changed, 29 insertions(+), 32 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_fixed.h 
b/drivers/gpu/drm/i915/i915_fixed.h
index c974e51c6d8b..6c914940b4a9 100644
--- a/drivers/gpu/drm/i915/i915_fixed.h
+++ b/drivers/gpu/drm/i915/i915_fixed.h
@@ -7,7 +7,7 @@
 #define _I915_FIXED_H_
 
 typedef struct {
-   uint32_t val;
+   u32 val;
 } uint_fixed_16_16_t;
 
 #define FP_16_16_MAX ({ \
@@ -23,7 +23,7 @@ static inline bool is_fixed16_zero(uint_fixed_16_16_t val)
return false;
 }
 
-static inline uint_fixed_16_16_t u32_to_fixed16(uint32_t val)
+static inline uint_fixed_16_16_t u32_to_fixed16(u32 val)
 {
uint_fixed_16_16_t fp;
 
@@ -33,12 +33,12 @@ static inline uint_fixed_16_16_t u32_to_fixed16(uint32_t 
val)
return fp;
 }
 
-static inline uint32_t fixed16_to_u32_round_up(uint_fixed_16_16_t fp)
+static inline u32 fixed16_to_u32_round_up(uint_fixed_16_16_t fp)
 {
return DIV_ROUND_UP(fp.val, 1 << 16);
 }
 
-static inline uint32_t fixed16_to_u32(uint_fixed_16_16_t fp)
+static inline u32 fixed16_to_u32(uint_fixed_16_16_t fp)
 {
return fp.val >> 16;
 }
@@ -61,86 +61,83 @@ static inline uint_fixed_16_16_t 
max_fixed16(uint_fixed_16_16_t max1,
return max;
 }
 
-static inline uint_fixed_16_16_t clamp_u64_to_fixed16(uint64_t val)
+static inline uint_fixed_16_16_t clamp_u64_to_fixed16(u64 val)
 {
uint_fixed_16_16_t fp;
WARN_ON(val > U32_MAX);
-   fp.val = (uint32_t) val;
+   fp.val = (u32)val;
return fp;
 }
 
-static inline uint32_t div_round_up_fixed16(uint_fixed_16_16_t val,
-   uint_fixed_16_16_t d)
+static inline u32 div_round_up_fixed16(uint_fixed_16_16_t val,
+  uint_fixed_16_16_t d)
 {
return DIV_ROUND_UP(val.val, d.val);
 }
 
-static inline uint32_t mul_round_up_u32_fixed16(uint32_t val,
-   uint_fixed_16_16_t mul)
+static inline u32 mul_round_up_u32_fixed16(u32 val, uint_fixed_16_16_t mul)
 {
-   uint64_t intermediate_val;
+   u64 intermediate_val;
 
-   intermediate_val = (uint64_t) val * mul.val;
+   intermediate_val = (u64)val * mul.val;
intermediate_val = DIV_ROUND_UP_ULL(intermediate_val, 1 << 16);
WARN_ON(intermediate_val > U32_MAX);
-   return (uint32_t) intermediate_val;
+   return (u32)intermediate_val;
 }
 
 static inline uint_fixed_16_16_t mul_fixed16(uint_fixed_16_16_t val,
 uint_fixed_16_16_t mul)
 {
-   uint64_t intermediate_val;
+   u64 intermediate_val;
 
-   intermediate_val = (uint64_t) val.val * mul.val;
+   intermediate_val = (u64)val.val * mul.val;
intermediate_val = intermediate_val >> 16;
return clamp_u64_to_fixed16(intermediate_val);
 }
 
-static inline uint_fixed_16_16_t div_fixed16(uint32_t val, uint32_t d)
+static inline uint_fixed_16_16_t div_fixed16(u32 val, u32 d)
 {
-   uint64_t interm_val;
+   u64 interm_val;
 
-   interm_val = (uint64_t)val << 16;
+   interm_val = (u64)val << 16;
interm_val = DIV_ROUND_UP_ULL(interm_val, d);
return clamp_u64_to_fixed16(interm_val);
 }
 
-static inline uint32_t div_round_up_u32_fixed16(uint32_t val,
-   uint_fixed_16_16_t d)
+static inline u32 div_round_up_u32_fixed16(u32 val, uint_fixed_16_16_t d)
 {
-   uint64_t interm_val;
+   u64 interm_val;
 
-   interm_val = (uint64_t)val << 16;
+   interm_val = (u64)val << 16;
interm_val = DIV_ROUND_UP_ULL(interm_val, d.val);
WARN_ON(interm_val > U32_MAX);
-   return (uint32_t) interm_val;
+   return (u32)interm_val;
 }
 
-static inline uint_fixed_16_16_t mul_u32_fixed16(uint32_t val,
-uint_fixed_16_16_t mul)
+static inline uint_fixed_16_16_t mul_u32_fixed16(u32 val, uint_fixed_16_16_t 
mul)
 {
-   uint64_t intermediate_val;
+   u64 intermediate_val;
 
-   intermediate_val = (uint64_t) val * mul.val;
+   intermediate_val = (u64)val * mul.val;
return clamp_u64_to_fixed16(intermediate_val);
 }
 
 static inline uint_fixed_16_16_t add_fixed16(uint_fixed_16_16_t add1,
 uint_fixed_16_16_t add2)
 {
-   uint64_t interm_sum;
+   u64 interm_sum;
 
-   interm_sum = (uint64_t) add1.val + add2.val;
+   interm_sum = (u64)add1.val + add2.val;
return clamp_u64_to_fixed16(interm_sum);
 }
 
 static inline uint_fixed_16_16_t add_fixed16_u32(uint_fixed_16_16_t add1,
-uint32_t add2)
+u32 add2)
 {
-   uint64_t 

[Intel-gfx] [PATCH v2 3/5] drm/i915/fixed: simplify FP_16_16_MAX definition

2018-11-16 Thread Jani Nikula
No need to use a compound statement enclosed in parenthesis where a C99
compound literal will do. No functional changes.

Reviewed-by: Joonas Lahtinen 
Signed-off-by: Jani Nikula 
---
 drivers/gpu/drm/i915/i915_fixed.h | 6 +-
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_fixed.h 
b/drivers/gpu/drm/i915/i915_fixed.h
index 6c914940b4a9..da43c930dfa2 100644
--- a/drivers/gpu/drm/i915/i915_fixed.h
+++ b/drivers/gpu/drm/i915/i915_fixed.h
@@ -10,11 +10,7 @@ typedef struct {
u32 val;
 } uint_fixed_16_16_t;
 
-#define FP_16_16_MAX ({ \
-   uint_fixed_16_16_t fp; \
-   fp.val = UINT_MAX; \
-   fp; \
-})
+#define FP_16_16_MAX ((uint_fixed_16_16_t){ .val = UINT_MAX })
 
 static inline bool is_fixed16_zero(uint_fixed_16_16_t val)
 {
-- 
2.11.0

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


[Intel-gfx] [PATCH v2 5/5] drm/i915/fixed: cosmetic cleanup

2018-11-16 Thread Jani Nikula
Clean up fixed point temp variable initialization, use the more
conventional tmp name for temp variables, add empty lines before
return. No functional changes.

Reviewed-by: Joonas Lahtinen 
Signed-off-by: Jani Nikula 
---
 drivers/gpu/drm/i915/i915_fixed.h | 77 +--
 1 file changed, 41 insertions(+), 36 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_fixed.h 
b/drivers/gpu/drm/i915/i915_fixed.h
index cb099701a75e..591dd89ba7af 100644
--- a/drivers/gpu/drm/i915/i915_fixed.h
+++ b/drivers/gpu/drm/i915/i915_fixed.h
@@ -19,11 +19,10 @@ static inline bool is_fixed16_zero(uint_fixed_16_16_t val)
 
 static inline uint_fixed_16_16_t u32_to_fixed16(u32 val)
 {
-   uint_fixed_16_16_t fp;
+   uint_fixed_16_16_t fp = { .val = val << 16 };
 
WARN_ON(val > U16_MAX);
 
-   fp.val = val << 16;
return fp;
 }
 
@@ -40,26 +39,25 @@ static inline u32 fixed16_to_u32(uint_fixed_16_16_t fp)
 static inline uint_fixed_16_16_t min_fixed16(uint_fixed_16_16_t min1,
 uint_fixed_16_16_t min2)
 {
-   uint_fixed_16_16_t min;
+   uint_fixed_16_16_t min = { .val = min(min1.val, min2.val) };
 
-   min.val = min(min1.val, min2.val);
return min;
 }
 
 static inline uint_fixed_16_16_t max_fixed16(uint_fixed_16_16_t max1,
 uint_fixed_16_16_t max2)
 {
-   uint_fixed_16_16_t max;
+   uint_fixed_16_16_t max = { .val = max(max1.val, max2.val) };
 
-   max.val = max(max1.val, max2.val);
return max;
 }
 
 static inline uint_fixed_16_16_t clamp_u64_to_fixed16(u64 val)
 {
-   uint_fixed_16_16_t fp;
+   uint_fixed_16_16_t fp = { .val = (u32)val };
+
WARN_ON(val > U32_MAX);
-   fp.val = (u32)val;
+
return fp;
 }
 
@@ -71,68 +69,75 @@ static inline u32 div_round_up_fixed16(uint_fixed_16_16_t 
val,
 
 static inline u32 mul_round_up_u32_fixed16(u32 val, uint_fixed_16_16_t mul)
 {
-   u64 intermediate_val;
+   u64 tmp;
+
+   tmp = (u64)val * mul.val;
+   tmp = DIV_ROUND_UP_ULL(tmp, 1 << 16);
+   WARN_ON(tmp > U32_MAX);
 
-   intermediate_val = (u64)val * mul.val;
-   intermediate_val = DIV_ROUND_UP_ULL(intermediate_val, 1 << 16);
-   WARN_ON(intermediate_val > U32_MAX);
-   return (u32)intermediate_val;
+   return (u32)tmp;
 }
 
 static inline uint_fixed_16_16_t mul_fixed16(uint_fixed_16_16_t val,
 uint_fixed_16_16_t mul)
 {
-   u64 intermediate_val;
+   u64 tmp;
 
-   intermediate_val = (u64)val.val * mul.val;
-   intermediate_val = intermediate_val >> 16;
-   return clamp_u64_to_fixed16(intermediate_val);
+   tmp = (u64)val.val * mul.val;
+   tmp = tmp >> 16;
+
+   return clamp_u64_to_fixed16(tmp);
 }
 
 static inline uint_fixed_16_16_t div_fixed16(u32 val, u32 d)
 {
-   u64 interm_val;
+   u64 tmp;
+
+   tmp = (u64)val << 16;
+   tmp = DIV_ROUND_UP_ULL(tmp, d);
 
-   interm_val = (u64)val << 16;
-   interm_val = DIV_ROUND_UP_ULL(interm_val, d);
-   return clamp_u64_to_fixed16(interm_val);
+   return clamp_u64_to_fixed16(tmp);
 }
 
 static inline u32 div_round_up_u32_fixed16(u32 val, uint_fixed_16_16_t d)
 {
-   u64 interm_val;
+   u64 tmp;
 
-   interm_val = (u64)val << 16;
-   interm_val = DIV_ROUND_UP_ULL(interm_val, d.val);
-   WARN_ON(interm_val > U32_MAX);
-   return (u32)interm_val;
+   tmp = (u64)val << 16;
+   tmp = DIV_ROUND_UP_ULL(tmp, d.val);
+   WARN_ON(tmp > U32_MAX);
+
+   return (u32)tmp;
 }
 
 static inline uint_fixed_16_16_t mul_u32_fixed16(u32 val, uint_fixed_16_16_t 
mul)
 {
-   u64 intermediate_val;
+   u64 tmp;
+
+   tmp = (u64)val * mul.val;
 
-   intermediate_val = (u64)val * mul.val;
-   return clamp_u64_to_fixed16(intermediate_val);
+   return clamp_u64_to_fixed16(tmp);
 }
 
 static inline uint_fixed_16_16_t add_fixed16(uint_fixed_16_16_t add1,
 uint_fixed_16_16_t add2)
 {
-   u64 interm_sum;
+   u64 tmp;
 
-   interm_sum = (u64)add1.val + add2.val;
-   return clamp_u64_to_fixed16(interm_sum);
+   tmp = (u64)add1.val + add2.val;
+
+   return clamp_u64_to_fixed16(tmp);
 }
 
 static inline uint_fixed_16_16_t add_fixed16_u32(uint_fixed_16_16_t add1,
 u32 add2)
 {
-   u64 interm_sum;
-   uint_fixed_16_16_t interm_add2 = u32_to_fixed16(add2);
+   uint_fixed_16_16_t tmp_add2 = u32_to_fixed16(add2);
+   u64 tmp;
+
+   tmp = (u64)add1.val + tmp_add2.val;
 
-   interm_sum = (u64)add1.val + interm_add2.val;
-   return clamp_u64_to_fixed16(interm_sum);
+   return clamp_u64_to_fixed16(tmp);
 }
 
 #endif /* _I915_FIXED_H_ */
-- 
2.11.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org

[Intel-gfx] [PATCH v2 1/5] drm/i915: extract fixed point math to i915_fixed.h

2018-11-16 Thread Jani Nikula
Reduce bloat in one of the bigger header files. Fix some indentation
while at it. No functional changes.

v2: Add include guards (Joonas)

Reviewed-by: Joonas Lahtinen 
Signed-off-by: Jani Nikula 
---
 drivers/gpu/drm/i915/i915_drv.h   | 139 +--
 drivers/gpu/drm/i915/i915_fixed.h | 147 ++
 2 files changed, 148 insertions(+), 138 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/i915_fixed.h

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index d69b71d368d3..9c2597a2784c 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -54,6 +54,7 @@
 #include 
 #include 
 
+#include "i915_fixed.h"
 #include "i915_params.h"
 #include "i915_reg.h"
 #include "i915_utils.h"
@@ -127,144 +128,6 @@ bool i915_error_injected(void);
__i915_printk(i915, i915_error_injected() ? KERN_DEBUG : KERN_ERR, \
  fmt, ##__VA_ARGS__)
 
-typedef struct {
-   uint32_t val;
-} uint_fixed_16_16_t;
-
-#define FP_16_16_MAX ({ \
-   uint_fixed_16_16_t fp; \
-   fp.val = UINT_MAX; \
-   fp; \
-})
-
-static inline bool is_fixed16_zero(uint_fixed_16_16_t val)
-{
-   if (val.val == 0)
-   return true;
-   return false;
-}
-
-static inline uint_fixed_16_16_t u32_to_fixed16(uint32_t val)
-{
-   uint_fixed_16_16_t fp;
-
-   WARN_ON(val > U16_MAX);
-
-   fp.val = val << 16;
-   return fp;
-}
-
-static inline uint32_t fixed16_to_u32_round_up(uint_fixed_16_16_t fp)
-{
-   return DIV_ROUND_UP(fp.val, 1 << 16);
-}
-
-static inline uint32_t fixed16_to_u32(uint_fixed_16_16_t fp)
-{
-   return fp.val >> 16;
-}
-
-static inline uint_fixed_16_16_t min_fixed16(uint_fixed_16_16_t min1,
-uint_fixed_16_16_t min2)
-{
-   uint_fixed_16_16_t min;
-
-   min.val = min(min1.val, min2.val);
-   return min;
-}
-
-static inline uint_fixed_16_16_t max_fixed16(uint_fixed_16_16_t max1,
-uint_fixed_16_16_t max2)
-{
-   uint_fixed_16_16_t max;
-
-   max.val = max(max1.val, max2.val);
-   return max;
-}
-
-static inline uint_fixed_16_16_t clamp_u64_to_fixed16(uint64_t val)
-{
-   uint_fixed_16_16_t fp;
-   WARN_ON(val > U32_MAX);
-   fp.val = (uint32_t) val;
-   return fp;
-}
-
-static inline uint32_t div_round_up_fixed16(uint_fixed_16_16_t val,
-   uint_fixed_16_16_t d)
-{
-   return DIV_ROUND_UP(val.val, d.val);
-}
-
-static inline uint32_t mul_round_up_u32_fixed16(uint32_t val,
-   uint_fixed_16_16_t mul)
-{
-   uint64_t intermediate_val;
-
-   intermediate_val = (uint64_t) val * mul.val;
-   intermediate_val = DIV_ROUND_UP_ULL(intermediate_val, 1 << 16);
-   WARN_ON(intermediate_val > U32_MAX);
-   return (uint32_t) intermediate_val;
-}
-
-static inline uint_fixed_16_16_t mul_fixed16(uint_fixed_16_16_t val,
-uint_fixed_16_16_t mul)
-{
-   uint64_t intermediate_val;
-
-   intermediate_val = (uint64_t) val.val * mul.val;
-   intermediate_val = intermediate_val >> 16;
-   return clamp_u64_to_fixed16(intermediate_val);
-}
-
-static inline uint_fixed_16_16_t div_fixed16(uint32_t val, uint32_t d)
-{
-   uint64_t interm_val;
-
-   interm_val = (uint64_t)val << 16;
-   interm_val = DIV_ROUND_UP_ULL(interm_val, d);
-   return clamp_u64_to_fixed16(interm_val);
-}
-
-static inline uint32_t div_round_up_u32_fixed16(uint32_t val,
-   uint_fixed_16_16_t d)
-{
-   uint64_t interm_val;
-
-   interm_val = (uint64_t)val << 16;
-   interm_val = DIV_ROUND_UP_ULL(interm_val, d.val);
-   WARN_ON(interm_val > U32_MAX);
-   return (uint32_t) interm_val;
-}
-
-static inline uint_fixed_16_16_t mul_u32_fixed16(uint32_t val,
-uint_fixed_16_16_t mul)
-{
-   uint64_t intermediate_val;
-
-   intermediate_val = (uint64_t) val * mul.val;
-   return clamp_u64_to_fixed16(intermediate_val);
-}
-
-static inline uint_fixed_16_16_t add_fixed16(uint_fixed_16_16_t add1,
-uint_fixed_16_16_t add2)
-{
-   uint64_t interm_sum;
-
-   interm_sum = (uint64_t) add1.val + add2.val;
-   return clamp_u64_to_fixed16(interm_sum);
-}
-
-static inline uint_fixed_16_16_t add_fixed16_u32(uint_fixed_16_16_t add1,
-uint32_t add2)
-{
-   uint64_t interm_sum;
-   uint_fixed_16_16_t interm_add2 = u32_to_fixed16(add2);
-
-   interm_sum = (uint64_t) add1.val + interm_add2.val;
-   return clamp_u64_to_fixed16(interm_sum);
-}
-
 enum hpd_pin {
HPD_NONE = 0,
HPD_TV = HPD_NONE, /* TV is known to be unreliable */
diff --git 

[Intel-gfx] [PATCH v2 4/5] drm/i915/fixed: simplify is_fixed16_zero()

2018-11-16 Thread Jani Nikula
Simply return the condition. No functional changes.

Reviewed-by: Joonas Lahtinen 
Signed-off-by: Jani Nikula 
---
 drivers/gpu/drm/i915/i915_fixed.h | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_fixed.h 
b/drivers/gpu/drm/i915/i915_fixed.h
index da43c930dfa2..cb099701a75e 100644
--- a/drivers/gpu/drm/i915/i915_fixed.h
+++ b/drivers/gpu/drm/i915/i915_fixed.h
@@ -14,9 +14,7 @@ typedef struct {
 
 static inline bool is_fixed16_zero(uint_fixed_16_16_t val)
 {
-   if (val.val == 0)
-   return true;
-   return false;
+   return val.val == 0;
 }
 
 static inline uint_fixed_16_16_t u32_to_fixed16(u32 val)
-- 
2.11.0

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


Re: [Intel-gfx] [PATCH 05/25] drm/i915: Prevent machine hang from Broxton's vtd w/a and error capture

2018-11-16 Thread Joonas Lahtinen
Quoting Chris Wilson (2018-11-02 18:12:12)
> Since capturing the error state requires fiddling around with the GGTT
> to read arbitrary buffers and is itself run under stop_machine(), it
> deadlocks the machine (effectively a hard hang) when run in conjunction
> with Broxton's VTd workaround to serialize GGTT access.
> 
> v2: Store the ERR_PTR in first_error so that the error can be reported
> to the user via sysfs.
> 
> Fixes: 0ef34ad6222a ("drm/i915: Serialize GTT/Aperture accesses on BXT")
> Signed-off-by: Chris Wilson 
> Cc: Jon Bloomfield 
> Cc: John Harrison 
> Cc: Tvrtko Ursulin 
> Cc: Joonas Lahtinen 
> Cc: Daniel Vetter 

Might be worthy splurting something to the dmesg?

Reviewed-by: Joonas Lahtinen 

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


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/amdgpu: Reorder uvd ring init before uvd resume

2018-11-16 Thread Patchwork
== Series Details ==

Series: drm/amdgpu: Reorder uvd ring init before uvd resume
URL   : https://patchwork.freedesktop.org/series/52601/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5150_full -> Patchwork_10836_full =

== Summary - SUCCESS ==

  No regressions found.

  

== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_ctx_isolation@bcs0-s3:
  shard-apl:  PASS -> DMESG-WARN (fdo#108566)

igt@gem_exec_schedule@pi-ringfull-bsd:
  shard-skl:  NOTRUN -> FAIL (fdo#103158) +1

igt@gem_exec_schedule@pi-ringfull-render:
  shard-kbl:  NOTRUN -> FAIL (fdo#103158)

igt@gem_ppgtt@blt-vs-render-ctxn:
  shard-kbl:  PASS -> INCOMPLETE (fdo#106887, fdo#106023, 
fdo#103665)

igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-c:
  shard-skl:  NOTRUN -> DMESG-WARN (fdo#107956)

igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b:
  shard-snb:  NOTRUN -> DMESG-WARN (fdo#107956)

igt@kms_cursor_crc@cursor-64x21-sliding:
  shard-apl:  PASS -> FAIL (fdo#103232) +2

igt@kms_cursor_crc@cursor-size-change:
  shard-glk:  PASS -> FAIL (fdo#103232) +2

igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
  shard-glk:  PASS -> DMESG-WARN (fdo#105763, fdo#106538) +1

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
  shard-apl:  PASS -> FAIL (fdo#103167) +1

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen:
  shard-glk:  PASS -> FAIL (fdo#103167) +2

igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-pgflip-blt:
  shard-glk:  PASS -> DMESG-FAIL (fdo#105763, fdo#106538)

igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
  shard-skl:  PASS -> FAIL (fdo#103167)

igt@kms_frontbuffer_tracking@fbcpsr-stridechange:
  shard-skl:  NOTRUN -> FAIL (fdo#105683)

igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
  shard-skl:  PASS -> FAIL (fdo#103166)

igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
  shard-skl:  NOTRUN -> FAIL (fdo#108145) +3

igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max:
  shard-kbl:  NOTRUN -> FAIL (fdo#108145)

igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
  shard-skl:  NOTRUN -> FAIL (fdo#108145, fdo#107815) +2

igt@kms_setmode@basic:
  shard-apl:  PASS -> FAIL (fdo#99912)

igt@kms_sysfs_edid_timing:
  shard-skl:  NOTRUN -> FAIL (fdo#100047)

igt@kms_vblank@pipe-a-ts-continuation-idle-hang:
  shard-kbl:  PASS -> DMESG-WARN (fdo#106107)

igt@kms_vblank@pipe-c-ts-continuation-suspend:
  shard-skl:  NOTRUN -> INCOMPLETE (fdo#107773, fdo#104108) +1

igt@pm_backlight@fade_with_suspend:
  shard-skl:  NOTRUN -> FAIL (fdo#107847)

igt@pm_rpm@modeset-non-lpsp:
  shard-skl:  NOTRUN -> INCOMPLETE (fdo#107807)


 Possible fixes 

igt@drv_suspend@shrink:
  shard-glk:  INCOMPLETE (fdo#106886, fdo#103359, k.org#198133) -> 
PASS

igt@kms_available_modes_crc@available_mode_test_crc:
  shard-apl:  FAIL (fdo#106641) -> PASS

igt@kms_color@pipe-c-gamma:
  shard-skl:  FAIL (fdo#104782, fdo#108228) -> PASS

igt@kms_cursor_crc@cursor-256x256-random:
  shard-apl:  FAIL (fdo#103232) -> PASS +1

igt@kms_cursor_crc@cursor-64x21-onscreen:
  shard-glk:  FAIL (fdo#103232) -> PASS

igt@kms_cursor_crc@cursor-64x64-suspend:
  shard-apl:  FAIL (fdo#103191, fdo#103232) -> PASS

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc:
  shard-glk:  FAIL (fdo#103167) -> PASS +2

igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
  shard-glk:  FAIL (fdo#108145) -> PASS

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

igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
  shard-apl:  FAIL (fdo#103166) -> PASS +3

igt@kms_setmode@basic:
  shard-kbl:  FAIL (fdo#99912) -> PASS

igt@perf@oa-exponents:
  shard-kbl:  INCOMPLETE (fdo#103665) -> PASS


  fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
  fdo#103158 https://bugs.freedesktop.org/show_bug.cgi?id=103158
  fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#104108 https://bugs.freedesktop.org/show_bug.cgi?id=104108
  

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Disable LP3 watermarks on all SNB machines (rev2)

2018-11-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Disable LP3 watermarks on all SNB machines (rev2)
URL   : https://patchwork.freedesktop.org/series/52440/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5150 -> Patchwork_10837 =

== Summary - SUCCESS ==

  No regressions found.

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

== Possible new issues ==

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

  === IGT changes ===

 Possible regressions 

igt@kms_chamelium@hdmi-hpd-fast:
  {fi-kbl-7500u}: SKIP -> FAIL +2


 Warnings 

igt@kms_chamelium@common-hpd-after-suspend:
  {fi-kbl-7500u}: DMESG-WARN (fdo#102505, fdo#105079, fdo#105602) -> 
FAIL


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@drv_selftest@live_hangcheck:
  fi-kbl-7560u:   PASS -> INCOMPLETE (fdo#108044)

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-byt-clapper: PASS -> FAIL (fdo#103191, fdo#107362)

igt@prime_vgem@basic-fence-flip:
  fi-ilk-650: PASS -> FAIL (fdo#104008)


 Possible fixes 

igt@drv_selftest@live_coherency:
  fi-gdg-551: DMESG-FAIL (fdo#107164) -> PASS

igt@gem_ctx_create@basic-files:
  fi-bsw-kefka:   FAIL (fdo#108656) -> PASS


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

  fdo#102505 https://bugs.freedesktop.org/show_bug.cgi?id=102505
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#105079 https://bugs.freedesktop.org/show_bug.cgi?id=105079
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#107164 https://bugs.freedesktop.org/show_bug.cgi?id=107164
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#108044 https://bugs.freedesktop.org/show_bug.cgi?id=108044
  fdo#108656 https://bugs.freedesktop.org/show_bug.cgi?id=108656


== Participating hosts (50 -> 45) ==

  Missing(5): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-snb-2520m 
fi-pnv-d510 


== Build changes ==

* Linux: CI_DRM_5150 -> Patchwork_10837

  CI_DRM_5150: ab97324c7fb98fc8cadbe5ae4e50f36fb0137308 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4716: 111593c49d812a4f4ff9ab0ef053a3ab88a6f73f @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10837: 9bdb6ed0115d596f01584f4e824f125e396f3f34 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

9bdb6ed0115d drm/i915: Disable LP3 watermarks on all SNB machines

== Logs ==

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


Re: [Intel-gfx] [PATCH 36/36] drm/i915: Support per-context user requests for GPU frequency control

2018-11-16 Thread Lionel Landwerlin

On 16/11/2018 11:14, Joonas Lahtinen wrote:

Quoting Lionel Landwerlin (2018-11-09 19:51:17)

I think we have some interest in reviving this for the performance query
use case.

How are performance queries related?



People want performance measured at a given frequency (usually max).




Regards, Joonas


Is that on anybody's todo list?

Thanks,

-
Lionel

On 14/03/2018 09:37, Chris Wilson wrote:

Often, we find ourselves facing a workload where the user knows in
advance what GPU frequency they require for it to complete in a timely
manner, and using past experience they can outperform the HW assisted
RPS autotuning. An example might be kodi (HTPC) where they know that
video decoding and compositing require a minimum frequency to avoid ever
dropping a frame, or conversely know when they are in a powersaving mode
and would rather have slower updates than ramp up the GPU frequency and
power consumption. Other workloads may defeat the autotuning entirely
and need manual control to meet their performance goals, e.g. bursty
applications which require low latency.

To accommodate the varying needs of different applications, that may be
running concurrently, we want a more flexible system than a global limit
supplied by sysfs. To this end, we offer the application the option to
set their desired frequency bounds on the context itself, and apply those
bounds when we execute commands from the application, switching between
bounds just as easily as we switch between the clients themselves.

The clients can query the range supported by the HW, or at least the
range they are restricted to, and then freely select frequencies within
that range that they want to run at. (They can select just a single
frequency if they so choose.) As this is subject to the global limit
supplied by the user in sysfs, and a client can only reduce the range of
frequencies they allow the HW to run at, we allow all clients to adjust
their request (and not restrict raising the minimum to privileged
CAP_SYS_NICE clients).

Testcase: igt/gem_ctx_freq
Signed-off-by: Chris Wilson 
Cc: Joonas Lahtinen 
Cc: Tvrtko Ursulin 
Cc: Praveen Paneri 
Cc: Sagar A Kamble 
---
   drivers/gpu/drm/i915/i915_debugfs.c|  16 ++-
   drivers/gpu/drm/i915/i915_drv.h|   5 +
   drivers/gpu/drm/i915/i915_gem_context.c|  54 +
   drivers/gpu/drm/i915/i915_gem_context.h|   3 +
   drivers/gpu/drm/i915/intel_gt_pm.c | 121 ---
   drivers/gpu/drm/i915/intel_gt_pm.h |   4 +
   drivers/gpu/drm/i915/intel_guc_submission.c|  16 ++-
   drivers/gpu/drm/i915/intel_lrc.c   |  15 +++
   .../gpu/drm/i915/selftests/i915_mock_selftests.h   |   1 +
   drivers/gpu/drm/i915/selftests/intel_gt_pm.c   | 130 
+
   include/uapi/drm/i915_drm.h|  20 
   11 files changed, 368 insertions(+), 17 deletions(-)
   create mode 100644 drivers/gpu/drm/i915/selftests/intel_gt_pm.c

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index 7c7afdac8c8c..a21b9164ade8 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2191,6 +2191,7 @@ static int i915_rps_boost_info(struct seq_file *m, void 
*data)
   struct drm_device *dev = _priv->drm;
   struct intel_rps *rps = _priv->gt_pm.rps;
   struct drm_file *file;
+ int n;
   
   seq_printf(m, "GPU busy? %s [%d requests]\n",

  yesno(dev_priv->gt.awake), dev_priv->gt.active_requests);
@@ -2198,17 +2199,30 @@ static int i915_rps_boost_info(struct seq_file *m, void 
*data)
   seq_printf(m, "CPU waiting? %d\n", count_irq_waiters(dev_priv));
   seq_printf(m, "Boosts outstanding? %d\n",
  atomic_read(>num_waiters));
+ seq_printf(m, "Worker pending? %s\n", yesno(work_busy(>work)));
   seq_printf(m, "Frequency requested %d [%d, %d]\n",
  intel_gpu_freq(dev_priv, rps->freq),
  intel_gpu_freq(dev_priv, rps->min),
  intel_gpu_freq(dev_priv, rps->max));
- seq_printf(m, "  min hard:%d, soft:%d user:%d; max user:%d, soft: %d 
hard:%d\n",
+ seq_printf(m, "  min hard:%d, soft:%d, ctx:%d, user:%d; max user:%d, ctx:%d, 
soft:%d, hard:%d\n",
  intel_gpu_freq(dev_priv, rps->min_freq_hw),
  intel_gpu_freq(dev_priv, rps->min_freq_soft),
+intel_gpu_freq(dev_priv, rps->min_freq_context),
  intel_gpu_freq(dev_priv, rps->min_freq_user),
  intel_gpu_freq(dev_priv, rps->max_freq_user),
+intel_gpu_freq(dev_priv, rps->max_freq_context),
  intel_gpu_freq(dev_priv, rps->max_freq_soft),
  intel_gpu_freq(dev_priv, rps->max_freq_hw));
+ seq_printf(m, "  engines min: [");
+ for (n = 0; n < ARRAY_SIZE(rps->min_freq_engine); n++)
+ seq_printf(m, "%s%d", n ? ", " : "",

Re: [Intel-gfx] [PATCH 36/36] drm/i915: Support per-context user requests for GPU frequency control

2018-11-16 Thread Joonas Lahtinen
Quoting Lionel Landwerlin (2018-11-09 19:51:17)
> I think we have some interest in reviving this for the performance query 
> use case.

How are performance queries related?

Regards, Joonas

> Is that on anybody's todo list?
> 
> Thanks,
> 
> -
> Lionel
> 
> On 14/03/2018 09:37, Chris Wilson wrote:
> > Often, we find ourselves facing a workload where the user knows in
> > advance what GPU frequency they require for it to complete in a timely
> > manner, and using past experience they can outperform the HW assisted
> > RPS autotuning. An example might be kodi (HTPC) where they know that
> > video decoding and compositing require a minimum frequency to avoid ever
> > dropping a frame, or conversely know when they are in a powersaving mode
> > and would rather have slower updates than ramp up the GPU frequency and
> > power consumption. Other workloads may defeat the autotuning entirely
> > and need manual control to meet their performance goals, e.g. bursty
> > applications which require low latency.
> >
> > To accommodate the varying needs of different applications, that may be
> > running concurrently, we want a more flexible system than a global limit
> > supplied by sysfs. To this end, we offer the application the option to
> > set their desired frequency bounds on the context itself, and apply those
> > bounds when we execute commands from the application, switching between
> > bounds just as easily as we switch between the clients themselves.
> >
> > The clients can query the range supported by the HW, or at least the
> > range they are restricted to, and then freely select frequencies within
> > that range that they want to run at. (They can select just a single
> > frequency if they so choose.) As this is subject to the global limit
> > supplied by the user in sysfs, and a client can only reduce the range of
> > frequencies they allow the HW to run at, we allow all clients to adjust
> > their request (and not restrict raising the minimum to privileged
> > CAP_SYS_NICE clients).
> >
> > Testcase: igt/gem_ctx_freq
> > Signed-off-by: Chris Wilson 
> > Cc: Joonas Lahtinen 
> > Cc: Tvrtko Ursulin 
> > Cc: Praveen Paneri 
> > Cc: Sagar A Kamble 
> > ---
> >   drivers/gpu/drm/i915/i915_debugfs.c|  16 ++-
> >   drivers/gpu/drm/i915/i915_drv.h|   5 +
> >   drivers/gpu/drm/i915/i915_gem_context.c|  54 +
> >   drivers/gpu/drm/i915/i915_gem_context.h|   3 +
> >   drivers/gpu/drm/i915/intel_gt_pm.c | 121 
> > ---
> >   drivers/gpu/drm/i915/intel_gt_pm.h |   4 +
> >   drivers/gpu/drm/i915/intel_guc_submission.c|  16 ++-
> >   drivers/gpu/drm/i915/intel_lrc.c   |  15 +++
> >   .../gpu/drm/i915/selftests/i915_mock_selftests.h   |   1 +
> >   drivers/gpu/drm/i915/selftests/intel_gt_pm.c   | 130 
> > +
> >   include/uapi/drm/i915_drm.h|  20 
> >   11 files changed, 368 insertions(+), 17 deletions(-)
> >   create mode 100644 drivers/gpu/drm/i915/selftests/intel_gt_pm.c
> >
> > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
> > b/drivers/gpu/drm/i915/i915_debugfs.c
> > index 7c7afdac8c8c..a21b9164ade8 100644
> > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > @@ -2191,6 +2191,7 @@ static int i915_rps_boost_info(struct seq_file *m, 
> > void *data)
> >   struct drm_device *dev = _priv->drm;
> >   struct intel_rps *rps = _priv->gt_pm.rps;
> >   struct drm_file *file;
> > + int n;
> >   
> >   seq_printf(m, "GPU busy? %s [%d requests]\n",
> >  yesno(dev_priv->gt.awake), dev_priv->gt.active_requests);
> > @@ -2198,17 +2199,30 @@ static int i915_rps_boost_info(struct seq_file *m, 
> > void *data)
> >   seq_printf(m, "CPU waiting? %d\n", count_irq_waiters(dev_priv));
> >   seq_printf(m, "Boosts outstanding? %d\n",
> >  atomic_read(>num_waiters));
> > + seq_printf(m, "Worker pending? %s\n", yesno(work_busy(>work)));
> >   seq_printf(m, "Frequency requested %d [%d, %d]\n",
> >  intel_gpu_freq(dev_priv, rps->freq),
> >  intel_gpu_freq(dev_priv, rps->min),
> >  intel_gpu_freq(dev_priv, rps->max));
> > - seq_printf(m, "  min hard:%d, soft:%d user:%d; max user:%d, soft: %d 
> > hard:%d\n",
> > + seq_printf(m, "  min hard:%d, soft:%d, ctx:%d, user:%d; max user:%d, 
> > ctx:%d, soft:%d, hard:%d\n",
> >  intel_gpu_freq(dev_priv, rps->min_freq_hw),
> >  intel_gpu_freq(dev_priv, rps->min_freq_soft),
> > +intel_gpu_freq(dev_priv, rps->min_freq_context),
> >  intel_gpu_freq(dev_priv, rps->min_freq_user),
> >  intel_gpu_freq(dev_priv, rps->max_freq_user),
> > +intel_gpu_freq(dev_priv, rps->max_freq_context),
> >  intel_gpu_freq(dev_priv, rps->max_freq_soft),
> >   

Re: [Intel-gfx] [PATCH] drm/i915: use appropriate integer types for flags

2018-11-16 Thread Ville Syrjälä
On Fri, Nov 16, 2018 at 10:43:39AM +, Lionel Landwerlin wrote:
> On 14/11/2018 13:22, Ville Syrjälä wrote:
> > On Wed, Nov 14, 2018 at 12:08:06PM +, Lionel Landwerlin wrote:
> >> We've been dealing a number of 32/64 bits flags issues lately :
> >>
> >>   - 085603287452fc ("drm/i915: Compare user's 64b GTT offset even on 32b")
> >>   - c58281056a8b26 ("drm/i915: Mark up GTT sizes as u64")
> >>   - 83b466b1dc5f0b ("drm/i915: Mark pin flags as u64")
> >>
> >> As userspace and in particular Mesa pulls in the uAPI headers and
> >> builds up flags using the uAPI defines we should probably make those
> >> more explicitly 32/64bits aware.
> >>
> >> Signed-off-by: Lionel Landwerlin 
> >> ---
> >>   include/uapi/drm/i915_drm.h | 90 ++---
> >>   1 file changed, 45 insertions(+), 45 deletions(-)
> >>
> >> diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
> >> index e477ef8c644e..f562c4239bd8 100644
> >> --- a/include/uapi/drm/i915_drm.h
> >> +++ b/include/uapi/drm/i915_drm.h
> >> @@ -895,12 +895,12 @@ struct drm_i915_gem_exec_object2 {
> >> */
> >>__u64 offset;
> >>   
> >> -#define EXEC_OBJECT_NEEDS_FENCE(1<<0)
> >> -#define EXEC_OBJECT_NEEDS_GTT  (1<<1)
> >> -#define EXEC_OBJECT_WRITE  (1<<2)
> >> -#define EXEC_OBJECT_SUPPORTS_48B_ADDRESS (1<<3)
> >> -#define EXEC_OBJECT_PINNED (1<<4)
> >> -#define EXEC_OBJECT_PAD_TO_SIZE(1<<5)
> >> +#define EXEC_OBJECT_NEEDS_FENCE(1ULL<<0)
> >> +#define EXEC_OBJECT_NEEDS_GTT  (1ULL<<1)
> >> +#define EXEC_OBJECT_WRITE  (1ULL<<2)
> >> +#define EXEC_OBJECT_SUPPORTS_48B_ADDRESS (1ULL<<3)
> >> +#define EXEC_OBJECT_PINNED (1ULL<<4)
> >> +#define EXEC_OBJECT_PAD_TO_SIZE(1ULL<<5)
> >>   /* The kernel implicitly tracks GPU activity on all GEM objects, and
> >>* synchronises operations with outstanding rendering. This includes
> >>* rendering on other devices if exported via dma-buf. However, sometimes
> >> @@ -921,14 +921,14 @@ struct drm_i915_gem_exec_object2 {
> >>* explicit tracking to avoid rendering corruption. See, for example,
> >>* I915_PARAM_HAS_EXEC_FENCE to order execbufs and execute them 
> >> asynchronously.
> >>*/
> >> -#define EXEC_OBJECT_ASYNC (1<<6)
> >> +#define EXEC_OBJECT_ASYNC (1ULL<<6)
> >>   /* Request that the contents of this execobject be copied into the error
> >>* state upon a GPU hang involving this batch for post-mortem debugging.
> >>* These buffers are recorded in no particular order as "user" in
> >>* /sys/class/drm/cardN/error. Query I915_PARAM_HAS_EXEC_CAPTURE to see
> >>* if the kernel supports this flag.
> >>*/
> >> -#define EXEC_OBJECT_CAPTURE   (1<<7)
> >> +#define EXEC_OBJECT_CAPTURE   (1ULL<<7)
> >>   /* All remaining bits are MBZ and RESERVED FOR FUTURE USE */
> >>   #define __EXEC_OBJECT_UNKNOWN_FLAGS -(EXEC_OBJECT_CAPTURE<<1)
> >>__u64 flags;
> >> @@ -946,8 +946,8 @@ struct drm_i915_gem_exec_fence {
> >> */
> >>__u32 handle;
> >>   
> >> -#define I915_EXEC_FENCE_WAIT(1<<0)
> >> -#define I915_EXEC_FENCE_SIGNAL  (1<<1)
> >> +#define I915_EXEC_FENCE_WAIT(1UL<<0)
> >> +#define I915_EXEC_FENCE_SIGNAL  (1UL<<1)
> > UL doesn't make much sense to me. It can be 32 or 64 bits depending on
> > the architecture.
> >
> Are you suggesting ULL instead?

What's wrong with a plain u?

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


Re: [Intel-gfx] [PATCH 5/5] drm/i915/fixed: cosmetic cleanup

2018-11-16 Thread Joonas Lahtinen
Quoting Jani Nikula (2018-11-15 14:01:26)
> Clean up fixed point temp variable initialization, use the more
> conventional tmp name for temp variables, add empty lines before
> return. No functional changes.
> 
> Signed-off-by: Jani Nikula 



>  static inline uint_fixed_16_16_t clamp_u64_to_fixed16(u64 val)
>  {
> -   uint_fixed_16_16_t fp;
> +   uint_fixed_16_16_t fp = { .val = (u32)val };

Also a possibility:

.val = lower_32_bits(val)
WARN_ON(upper_32_bits(val))

But your style might be more uniform across other funcs.

> +
> WARN_ON(val > U32_MAX);
> -   fp.val = (u32)val;

Reviewed-by: Joonas Lahtinen 

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


Re: [Intel-gfx] [PATCH 3/5] drm/i915/fixed: simplify FP_16_16_MAX definition

2018-11-16 Thread Jani Nikula
On Fri, 16 Nov 2018, Joonas Lahtinen  wrote:
> Quoting Jani Nikula (2018-11-15 14:01:24)
>> No need to use a compound statement enclosed in parenthesis where a C99
>> compound literal will do. No functional changes.
>> 
>> Signed-off-by: Jani Nikula 
>
> Out of curiosity, did this have an effect on asm generation?
> Presumably not.

For some reason it caused tons of label etc. changes so it was hard to
check, but I didn't spot any functional asm changes.

BR,
Jani.



>
> Reviewed-by: Joonas Lahtinen 
>
> Regards, Joonas

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


Re: [Intel-gfx] [PATCH 3/5] drm/i915/fixed: simplify FP_16_16_MAX definition

2018-11-16 Thread Chris Wilson
Quoting Jani Nikula (2018-11-15 12:01:24)
> No need to use a compound statement enclosed in parenthesis where a C99
> compound literal will do. No functional changes.
> 
> Signed-off-by: Jani Nikula 
> ---
>  drivers/gpu/drm/i915/i915_fixed.h | 6 +-
>  1 file changed, 1 insertion(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_fixed.h 
> b/drivers/gpu/drm/i915/i915_fixed.h
> index 08316e50167a..927c59395569 100644
> --- a/drivers/gpu/drm/i915/i915_fixed.h
> +++ b/drivers/gpu/drm/i915/i915_fixed.h
> @@ -7,11 +7,7 @@ typedef struct {
> u32 val;
>  } uint_fixed_16_16_t;
>  
> -#define FP_16_16_MAX ({ \
> -   uint_fixed_16_16_t fp; \
> -   fp.val = UINT_MAX; \
> -   fp; \
> -})
> +#define FP_16_16_MAX ((uint_fixed_16_16_t){ .val = UINT_MAX })

Following the standard set by pgprot_t

#define u16_16(x) ((u16_16_t){ .val = (x) })
#define U16_16_MAX u16_16(U32_MAX)
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 1/5] drm/i915: extract fixed point math to i915_fixed.h

2018-11-16 Thread Jani Nikula
On Fri, 16 Nov 2018, Joonas Lahtinen  wrote:
> Quoting Jani Nikula (2018-11-15 14:01:22)
>> Reduce bloat in one of the bigger header files. Fix some indentation
>> while at it. No functional changes.
>> 
>> Signed-off-by: Jani Nikula 
>
> Do add include guards. Then this is:

D'oh!

> Reviewed-by: Joonas Lahtinen 

Thanks for the review.

BR,
Jani.

>
> Regards, Joonas

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


Re: [Intel-gfx] [PATCH] drm/i915: use appropriate integer types for flags

2018-11-16 Thread Lionel Landwerlin

On 14/11/2018 13:22, Ville Syrjälä wrote:

On Wed, Nov 14, 2018 at 12:08:06PM +, Lionel Landwerlin wrote:

We've been dealing a number of 32/64 bits flags issues lately :

  - 085603287452fc ("drm/i915: Compare user's 64b GTT offset even on 32b")
  - c58281056a8b26 ("drm/i915: Mark up GTT sizes as u64")
  - 83b466b1dc5f0b ("drm/i915: Mark pin flags as u64")

As userspace and in particular Mesa pulls in the uAPI headers and
builds up flags using the uAPI defines we should probably make those
more explicitly 32/64bits aware.

Signed-off-by: Lionel Landwerlin 
---
  include/uapi/drm/i915_drm.h | 90 ++---
  1 file changed, 45 insertions(+), 45 deletions(-)

diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
index e477ef8c644e..f562c4239bd8 100644
--- a/include/uapi/drm/i915_drm.h
+++ b/include/uapi/drm/i915_drm.h
@@ -895,12 +895,12 @@ struct drm_i915_gem_exec_object2 {
 */
__u64 offset;
  
-#define EXEC_OBJECT_NEEDS_FENCE		 (1<<0)

-#define EXEC_OBJECT_NEEDS_GTT   (1<<1)
-#define EXEC_OBJECT_WRITE   (1<<2)
-#define EXEC_OBJECT_SUPPORTS_48B_ADDRESS (1<<3)
-#define EXEC_OBJECT_PINNED  (1<<4)
-#define EXEC_OBJECT_PAD_TO_SIZE (1<<5)
+#define EXEC_OBJECT_NEEDS_FENCE (1ULL<<0)
+#define EXEC_OBJECT_NEEDS_GTT   (1ULL<<1)
+#define EXEC_OBJECT_WRITE   (1ULL<<2)
+#define EXEC_OBJECT_SUPPORTS_48B_ADDRESS (1ULL<<3)
+#define EXEC_OBJECT_PINNED  (1ULL<<4)
+#define EXEC_OBJECT_PAD_TO_SIZE (1ULL<<5)
  /* The kernel implicitly tracks GPU activity on all GEM objects, and
   * synchronises operations with outstanding rendering. This includes
   * rendering on other devices if exported via dma-buf. However, sometimes
@@ -921,14 +921,14 @@ struct drm_i915_gem_exec_object2 {
   * explicit tracking to avoid rendering corruption. See, for example,
   * I915_PARAM_HAS_EXEC_FENCE to order execbufs and execute them 
asynchronously.
   */
-#define EXEC_OBJECT_ASYNC  (1<<6)
+#define EXEC_OBJECT_ASYNC  (1ULL<<6)
  /* Request that the contents of this execobject be copied into the error
   * state upon a GPU hang involving this batch for post-mortem debugging.
   * These buffers are recorded in no particular order as "user" in
   * /sys/class/drm/cardN/error. Query I915_PARAM_HAS_EXEC_CAPTURE to see
   * if the kernel supports this flag.
   */
-#define EXEC_OBJECT_CAPTURE(1<<7)
+#define EXEC_OBJECT_CAPTURE(1ULL<<7)
  /* All remaining bits are MBZ and RESERVED FOR FUTURE USE */
  #define __EXEC_OBJECT_UNKNOWN_FLAGS -(EXEC_OBJECT_CAPTURE<<1)
__u64 flags;
@@ -946,8 +946,8 @@ struct drm_i915_gem_exec_fence {
 */
__u32 handle;
  
-#define I915_EXEC_FENCE_WAIT(1<<0)

-#define I915_EXEC_FENCE_SIGNAL  (1<<1)
+#define I915_EXEC_FENCE_WAIT(1UL<<0)
+#define I915_EXEC_FENCE_SIGNAL  (1UL<<1)

UL doesn't make much sense to me. It can be 32 or 64 bits depending on
the architecture.


Are you suggesting ULL instead?

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


Re: [Intel-gfx] [PATCH 4/5] drm/i915/fixed: simplify is_fixed16_zero()

2018-11-16 Thread Joonas Lahtinen
Quoting Jani Nikula (2018-11-15 14:01:25)
> Simply return the condition. No functional changes.
> 
> Signed-off-by: Jani Nikula 

Reviewed-by: Joonas Lahtinen 

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


Re: [Intel-gfx] [PATCH 3/5] drm/i915/fixed: simplify FP_16_16_MAX definition

2018-11-16 Thread Joonas Lahtinen
Quoting Jani Nikula (2018-11-15 14:01:24)
> No need to use a compound statement enclosed in parenthesis where a C99
> compound literal will do. No functional changes.
> 
> Signed-off-by: Jani Nikula 

Out of curiosity, did this have an effect on asm generation?
Presumably not.

Reviewed-by: Joonas Lahtinen 

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


Re: [Intel-gfx] [PATCH 2/5] drm/i915/fixed: prefer kernel types over stdint types

2018-11-16 Thread Joonas Lahtinen
Quoting Jani Nikula (2018-11-15 14:01:23)
> While at it, conform to kernel spacing (i.e. no space) after cast. No
> functional changes.
> 
> Signed-off-by: Jani Nikula 

Reviewed-by: Joonas Lahtinen 

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


Re: [Intel-gfx] [PATCH 1/5] drm/i915: extract fixed point math to i915_fixed.h

2018-11-16 Thread Joonas Lahtinen
Quoting Jani Nikula (2018-11-15 14:01:22)
> Reduce bloat in one of the bigger header files. Fix some indentation
> while at it. No functional changes.
> 
> Signed-off-by: Jani Nikula 

Do add include guards. Then this is:

Reviewed-by: Joonas Lahtinen 

Regards, Joonas
___
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/amdgpu: Reorder uvd ring init before uvd resume

2018-11-16 Thread Patchwork
== Series Details ==

Series: drm/amdgpu: Reorder uvd ring init before uvd resume
URL   : https://patchwork.freedesktop.org/series/52601/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5150 -> Patchwork_10836 =

== Summary - SUCCESS ==

  No regressions found.

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

== Possible new issues ==

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

  === IGT changes ===

 Possible regressions 

igt@kms_chamelium@hdmi-hpd-fast:
  {fi-kbl-7500u}: SKIP -> FAIL +2


 Warnings 

igt@kms_busy@basic-flip-c:
  {fi-kbl-7500u}: PASS -> SKIP +2

igt@kms_chamelium@common-hpd-after-suspend:
  {fi-kbl-7500u}: DMESG-WARN (fdo#105602, fdo#102505, fdo#105079) -> 
FAIL


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_exec_suspend@basic-s3:
  fi-icl-u2:  PASS -> DMESG-WARN (fdo#107724)

igt@kms_chamelium@dp-hpd-fast:
  {fi-kbl-7500u}: PASS -> DMESG-WARN (fdo#105602, fdo#102505)

igt@kms_frontbuffer_tracking@basic:
  fi-hsw-peppy:   PASS -> DMESG-WARN (fdo#102614)


 Warnings 

igt@gem_ctx_create@basic-files:
  fi-bsw-kefka:   FAIL (fdo#108656) -> INCOMPLETE (fdo#108714)


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

  fdo#102505 https://bugs.freedesktop.org/show_bug.cgi?id=102505
  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#105079 https://bugs.freedesktop.org/show_bug.cgi?id=105079
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#107724 https://bugs.freedesktop.org/show_bug.cgi?id=107724
  fdo#108656 https://bugs.freedesktop.org/show_bug.cgi?id=108656
  fdo#108714 https://bugs.freedesktop.org/show_bug.cgi?id=108714


== Participating hosts (50 -> 43) ==

  Missing(7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-snb-2520m 
fi-gdg-551 fi-pnv-d510 fi-icl-u 


== Build changes ==

* Linux: CI_DRM_5150 -> Patchwork_10836

  CI_DRM_5150: ab97324c7fb98fc8cadbe5ae4e50f36fb0137308 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4716: 111593c49d812a4f4ff9ab0ef053a3ab88a6f73f @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10836: 1cf7edb048f3aa57ecb5ee5ae62249c6ed0cc034 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

1cf7edb048f3 drm/amdgpu: Reorder uvd ring init before uvd resume

== Logs ==

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


[Intel-gfx] [PATCH] drm/amdgpu: Reorder uvd ring init before uvd resume

2018-11-16 Thread Chris Wilson
As amd_uvd_resume() accesses the uvd ring, it must be initialised first
or else we trigger errors like:

[5.595963] [drm] Found UVD firmware Version: 1.87 Family ID: 17
[5.595969] [drm] PSP loading UVD firmware
[5.596266] [ cut here ]
[5.596268] ODEBUG: assert_init not available (active state 0) object type: 
timer_list hint:   (null)
[5.596285] WARNING: CPU: 0 PID: 507 at lib/debugobjects.c:329 
debug_print_object+0x6a/0x80
[5.596286] Modules linked in: amdgpu(+) hid_logitech_hidpp(+) chash 
gpu_sched amd_iommu_v2 ttm drm_kms_helper crc32c_intel drm hid_sony ff_memless 
igb hid_logitech_dj nvme dca i2c_algo_bit nvme_core wmi pinctrl_amd uas 
usb_storage
[5.596299] CPU: 0 PID: 507 Comm: systemd-udevd Tainted: GW 
4.20.0-0.rc1.git4.1.fc30.x86_64 #1
[5.596301] Hardware name: System manufacturer System Product Name/ROG STRIX 
X470-I GAMING, BIOS 0901 07/23/2018
[5.596303] RIP: 0010:debug_print_object+0x6a/0x80
[5.596305] Code: 8b 43 10 83 c2 01 8b 4b 14 4c 89 e6 89 15 e6 82 b0 02 4c 
8b 45 00 48 c7 c7 60 fd 34 a6 48 8b 14 c5 a0 da 08 a6 e8 6a 6a b8 ff <0f> 0b 5b 
83 05 d0 45 3e 01 01 5d 41 5c c3 83 05 c5 45 3e 01 01 c3
[5.596306] RSP: 0018:a02ac863f8c0 EFLAGS: 00010282
[5.596307] RAX:  RBX: a02ac863f8e0 RCX: 0006
[5.596308] RDX: 0007 RSI: 9160e9a7bfe8 RDI: 9160f91d6c60
[5.596310] RBP: a6742740 R08: 0002 R09: 
[5.596311] R10:  R11:  R12: a634ff69
[5.596312] R13: 000b79d0 R14: a80f76d8 R15: 00266000
[5.596313] FS:  7f762abf7940() GS:9160f900() 
knlGS:
[5.596314] CS:  0010 DS:  ES:  CR0: 80050033
[5.596315] CR2: 55fdc593f000 CR3: 0007e999c000 CR4: 003406f0
[5.596317] Call Trace:
[5.596321]  debug_object_assert_init+0x14a/0x180
[5.596327]  del_timer+0x2e/0x90
[5.596383]  amdgpu_fence_process+0x47/0x100 [amdgpu]
[5.596430]  amdgpu_uvd_resume+0xf6/0x120 [amdgpu]
[5.596475]  uvd_v7_0_sw_init+0xe0/0x280 [amdgpu]
[5.596523]  amdgpu_device_init.cold.30+0xf97/0x14b6 [amdgpu]
[5.596563]  ? amdgpu_driver_load_kms+0x53/0x330 [amdgpu]
[5.596604]  amdgpu_driver_load_kms+0x86/0x330 [amdgpu]
[5.596614]  drm_dev_register+0x115/0x150 [drm]
[5.596654]  amdgpu_pci_probe+0xbd/0x120 [amdgpu]
[5.596658]  local_pci_probe+0x41/0x90
[5.596661]  pci_device_probe+0x188/0x1a0
[5.59]  really_probe+0xf8/0x3b0
[5.596669]  driver_probe_device+0xb3/0xf0
[5.596672]  __driver_attach+0xe1/0x110
[5.596674]  ? driver_probe_device+0xf0/0xf0
[5.596676]  bus_for_each_dev+0x79/0xc0
[5.596679]  bus_add_driver+0x155/0x230
[5.596681]  ? 0xc07d9000
[5.596683]  driver_register+0x6b/0xb0
[5.596685]  ? 0xc07d9000
[5.596688]  do_one_initcall+0x5d/0x2be
[5.596691]  ? rcu_read_lock_sched_held+0x79/0x80
[5.596693]  ? kmem_cache_alloc_trace+0x264/0x290
[5.596695]  ? do_init_module+0x22/0x210
[5.596698]  do_init_module+0x5a/0x210
[5.596701]  load_module+0x2137/0x2430
[5.596703]  ? lockdep_hardirqs_on+0xed/0x180
[5.596714]  ? __do_sys_init_module+0x150/0x1a0
[5.596715]  __do_sys_init_module+0x150/0x1a0
[5.596722]  do_syscall_64+0x60/0x1f0
[5.596725]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
[5.596726] RIP: 0033:0x7f762b877dee
[5.596728] Code: 48 8b 0d 9d 20 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 
0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 af 00 00 00 0f 05 <48> 3d 01 
f0 ff ff 73 01 c3 48 8b 0d 6a 20 0c 00 f7 d8 64 89 01 48
[5.596729] RSP: 002b:7ffc777b8558 EFLAGS: 0246 ORIG_RAX: 
00af
[5.596730] RAX: ffda RBX: 55fdc48da320 RCX: 7f762b877dee
[5.596731] RDX: 7f762b9f284d RSI: 006c5fc6 RDI: 55fdc527a060
[5.596732] RBP: 7f762b9f284d R08: 0003 R09: 0002
[5.596733] R10: 55fdc48ad010 R11: 0246 R12: 55fdc527a060
[5.596734] R13: 55fdc48dca20 R14: 0002 R15: 
[5.596740] irq event stamp: 134618
[5.596743] hardirqs last  enabled at (134617): [] 
console_unlock+0x45e/0x610
[5.596744] hardirqs last disabled at (134618): [] 
trace_hardirqs_off_thunk+0x1a/0x1c
[5.596746] softirqs last  enabled at (133146): [] 
__do_softirq+0x365/0x47c
[5.596748] softirqs last disabled at (133139): [] 
irq_exit+0x119/0x120
[5.596749] ---[ end trace eaee508abfebccdc ]---

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108709
Signed-off-by: Chris Wilson 
Cc: Alex Deucher 
---
 drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 8 
 drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 8 
 drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 8 
 drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 8 
 4 files changed, 16