[Intel-gfx] ✓ Fi.CI.IGT: success for tests/kms_frontbuffer_tracking: Correctly handle debugfs errors

2017-11-28 Thread Patchwork
== Series Details ==

Series: tests/kms_frontbuffer_tracking: Correctly handle debugfs errors
URL   : https://patchwork.freedesktop.org/series/34555/
State : success

== Summary ==

Blacklisted hosts:
shard-hswtotal:2621 pass:1507 dwarn:6   dfail:2   fail:6   skip:1099 
time:9215s
shard-kbltotal:2474 pass:1656 dwarn:15  dfail:8   fail:14  skip:774 
time:8415s
shard-snbtotal:2484 pass:1193 dwarn:18  dfail:10  fail:4   skip:1253 
time:7010s

== Logs ==

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


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Fix deadlock in i830_disable_pipe()

2017-11-28 Thread Patchwork
== Series Details ==

Series: drm/i915: Fix deadlock in i830_disable_pipe()
URL   : https://patchwork.freedesktop.org/series/34553/
State : success

== Summary ==

Blacklisted hosts:
shard-hswtotal:2654 pass:1520 dwarn:8   dfail:0   fail:10  skip:1115 
time:8970s
shard-snbtotal:2554 pass:1238 dwarn:17  dfail:5   fail:7   skip:1282 
time:6951s

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7327/shards.html
___
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/glk: Apply WaProgramL3SqcReg1DefaultForPerf for GLK too (rev4)

2017-11-28 Thread Patchwork
== Series Details ==

Series: drm/i915/glk: Apply WaProgramL3SqcReg1DefaultForPerf for GLK too (rev4)
URL   : https://patchwork.freedesktop.org/series/33772/
State : success

== Summary ==

Blacklisted hosts:
shard-hswtotal:2626 pass:1506 dwarn:11  dfail:0   fail:11  skip:1097 
time:9023s
shard-snbtotal:2520 pass:1218 dwarn:13  dfail:6   fail:7   skip:1270 
time:6556s

== Logs ==

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


Re: [Intel-gfx] [PATCH v2 0/3] drm/i915/guc: Update default GuC FW for SKL/BXT/KBL

2017-11-28 Thread Sagar Arun Kamble



On 11/29/2017 12:41 PM, Joonas Lahtinen wrote:

On Wed, 2017-11-29 at 11:47 +0530, Sagar Arun Kamble wrote:

With new GuC firmwares (SKL v9.33, BXT v9.29, KBL v9.39) available now
at 01.org downloads, let us update the default firmware versions.

I thought the agreement was for them to be at linux-firmware repo?


Sorry. I should have mentioned linux-firmware.git. They are merged there.



Regards, Joonas


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


Re: [Intel-gfx] [PATCH v2 0/3] drm/i915/guc: Update default GuC FW for SKL/BXT/KBL

2017-11-28 Thread Joonas Lahtinen
On Wed, 2017-11-29 at 11:47 +0530, Sagar Arun Kamble wrote:
> With new GuC firmwares (SKL v9.33, BXT v9.29, KBL v9.39) available now
> at 01.org downloads, let us update the default firmware versions.

I thought the agreement was for them to be at linux-firmware repo?

Regards, Joonas
-- 
Joonas Lahtinen
Open Source Technology Center
Intel Corporation
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 14/15] drm/zte: Use drm_mode_get_hv_timing() to populate plane clip rectangle

2017-11-28 Thread Shawn Guo
On Thu, Nov 23, 2017 at 09:05:01PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> Use drm_mode_get_hv_timing() to fill out the plane clip rectangle.
> 
> Note that this replaces crtc_state->adjusted_mode usage with
> crtc_state->mode. The latter is the correct choice since that's the
> mode the user provided and it matches the plane crtc coordinates
> the user also provided.
> 
> Once everyone agrees on this we can move the clip handling into
> drm_atomic_helper_check_plane_state().
> 
> Cc: Laurent Pinchart 
> Cc: Shawn Guo 

Acked-by: Shawn Guo 

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


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/guc: Update default GuC FW for SKL/BXT/KBL

2017-11-28 Thread Patchwork
== Series Details ==

Series: drm/i915/guc: Update default GuC FW for SKL/BXT/KBL
URL   : https://patchwork.freedesktop.org/series/34590/
State : success

== Summary ==

Series 34590v1 drm/i915/guc: Update default GuC FW for SKL/BXT/KBL
https://patchwork.freedesktop.org/api/1.0/series/34590/revisions/1/mbox/

Test debugfs_test:
Subgroup read_all_entries:
pass   -> DMESG-WARN (fi-bdw-gvtdvm) fdo#103938 +1
Test gem_exec_reloc:
Subgroup basic-cpu-active:
pass   -> FAIL   (fi-gdg-551) fdo#102582 +5
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
pass   -> INCOMPLETE (fi-snb-2520m) fdo#103713

fdo#103938 https://bugs.freedesktop.org/show_bug.cgi?id=103938
fdo#102582 https://bugs.freedesktop.org/show_bug.cgi?id=102582
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713

fi-bdw-5557u total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  
time:443s
fi-bdw-gvtdvmtotal:288  pass:262  dwarn:2   dfail:0   fail:0   skip:24  
time:440s
fi-blb-e6850 total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  
time:391s
fi-bsw-n3050 total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  
time:519s
fi-bwr-2160  total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 
time:280s
fi-bxt-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:498s
fi-bxt-j4205 total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:502s
fi-byt-j1900 total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  
time:483s
fi-byt-n2820 total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:469s
fi-elk-e7500 total:288  pass:229  dwarn:0   dfail:0   fail:0   skip:59  
time:423s
fi-gdg-551   total:288  pass:172  dwarn:1   dfail:0   fail:7   skip:108 
time:267s
fi-glk-1 total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  
time:541s
fi-hsw-4770  total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:372s
fi-hsw-4770r total:288  pass:224  dwarn:0   dfail:0   fail:0   skip:64  
time:261s
fi-ilk-650   total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  
time:423s
fi-ivb-3520m total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:486s
fi-kbl-7500u total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  
time:490s
fi-kbl-7560u total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  
time:530s
fi-kbl-7567u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:476s
fi-kbl-r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:532s
fi-pnv-d510  total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  
time:587s
fi-skl-6260u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:450s
fi-skl-6600u total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:539s
fi-skl-6700hqtotal:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:563s
fi-skl-6700k total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:514s
fi-skl-6770hqtotal:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:497s
fi-skl-gvtdvmtotal:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  
time:451s
fi-snb-2520m total:245  pass:211  dwarn:0   dfail:0   fail:0   skip:33 
fi-snb-2600  total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  
time:416s
Blacklisted hosts:
fi-cfl-s2total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:604s
fi-cnl-y total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:557s
fi-glk-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:486s

5144438448829ec2a3d94fd16a9e69a52cfa7b3b drm-tip: 2017y-11m-28d-17h-04m-56s UTC 
integration manifest
db81ed658349 drm/i915/guc: Change default GuC FW for KBL to v9.39
96994e15a550 drm/i915/guc: Change default GuC FW for BXT to v9.29
aeb3a7c67b26 drm/i915/guc: Change default GuC FW for SKL to v9.33

== Logs ==

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


[Intel-gfx] [PATCH v2 2/3] drm/i915/guc: Change default GuC FW for BXT to v9.29

2017-11-28 Thread Sagar Arun Kamble
This patch makes v9.29 firmware as default firmware for BXT.

Note: GuC logging control is changed with this firmware. GuC is
expecting i915 to set control bit to enable "default logging"
while using GuC action UK_LOG_ENABLE_LOGGING.
However i915 is currently not doing this because it is version
specific change and can be handled entirely in GuC. It will need
to be fixed in future firmwares.

This update includes (since v8.7):

- Added support to log media reset count for host to read it
- BXT WA for fixing MTP hangs. WaDisableDOPRenderClkGatingAtSubmit
- Sub-feature level control for power management features.
- Minor clean-up for power management interface.
- Unified power management interface and scheduler interface into
  1 file using same version.
- Bug Fix for multi context scheduler flag.
- DCC spec changes for BXT + DCT enabling
- Springboard based Pre-ETM/ETM flow enabling for debug signed GuC/HuC
- Moving GuC non_critical r/w data to lower SRAM 64KB
- Enabled IBC for BXT
- Media engine Reset fix.  Correctly marking context for resubmission in
  Media Reset case.
- SLPC Dynamic RPe fix to resolve issues where incorrect frequency was set.
- ABT Disable bug fix. Disabled Evaluation mode on context change.
- GuC clean up to align developer build in line to production build.
- Disable ARAT interrupt before programming ARAT delta.
- Memory range check in Parse to avoid failure due to overflow.
- Clear forcewake in CSB when SQ is empty.
- SLPC IBC 1.6 for APL to ensure multiplier does not cap IA below Pe.
- Move UkGuckmdInterface.h file from 2016 folders to common 2016 folder.
- This is file location change. No functional change done as part of this
  check in.
- 3 tries of wake request needed from GuC2CSME for ME to wake up. Request
  has come from ME spec
- During reset one parameter was not getting accounted
- Enabling Guc Log changes for ultra low logging for OCA
- Disable build.bat redundant prints.
- Move few least used functions to non-critical section.
- Rearrange GuC documentation folder structure.
- Fixing Issue with Default Guc Log changes for OCA using special Control
  Bit

v2: Rebase. Updated commit message.

Signed-off-by: Jeff McGee 
Signed-off-by: Sagar Arun Kamble 
Cc: Spotswood John A 
Cc: Anusha Srivatsa 
Cc: Michal Wajdeczko 
Cc: Rodrigo Vivi 
Cc: Joonas Lahtinen 
---
 drivers/gpu/drm/i915/intel_guc_fw.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_guc_fw.c 
b/drivers/gpu/drm/i915/intel_guc_fw.c
index 631e932..df2ff96 100644
--- a/drivers/gpu/drm/i915/intel_guc_fw.c
+++ b/drivers/gpu/drm/i915/intel_guc_fw.c
@@ -33,8 +33,8 @@
 #define SKL_FW_MAJOR 9
 #define SKL_FW_MINOR 33
 
-#define BXT_FW_MAJOR 8
-#define BXT_FW_MINOR 7
+#define BXT_FW_MAJOR 9
+#define BXT_FW_MINOR 29
 
 #define KBL_FW_MAJOR 9
 #define KBL_FW_MINOR 14
-- 
1.9.1

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


[Intel-gfx] [PATCH v2 1/3] drm/i915/guc: Change default GuC FW for SKL to v9.33

2017-11-28 Thread Sagar Arun Kamble
This patch makes v9.33 firmware as default firmware for SKL.

Note: GuC logging control is changed with this firmware. GuC is
expecting i915 to set control bit to enable "default logging"
while using GuC action UK_LOG_ENABLE_LOGGING.
However i915 is currently not doing this because it is version
specific change and can be handled entirely in GuC. It will need
to be fixed in future firmwares.

This update includes (since v6.1):

- HuC RSA Keys updated.
- Adding per engine preemption support in GuC scheduler
- Minor bug fixes.
- Added support to log media reset count for host to read it
- Sub-feature level control for power management features.
- Minor clean-up for power management interface.
- Unified power management interface and scheduler interface into
  1 file using same version.
- Bug Fix for multi context scheduler flag.
- DCC spec changes for BXT + DCT enabling
- SB based Pre-ETM/ETM flow enabling for debug signed GuC/HuC
- Moving GuC non_critical r/w data to lower SRAM 64KB
- Media engine Reset fix.  Correctly marking context for resubmission in
  Media Reset case.
- ABT Disable bug fix. Disabled Evaluation mode on context change.
- Async FW in Engine Schedule feature (not enabled from KMD)
- GuC clean up to align developer build in line to production build.
- DCC consistency fix for SKL
- Disable ARAT interrupt before programming ARAT delta.
- Memory range check in Parse to avoid failure due to overflow.
- Enabled WA for MSGCH hang issue
- Clear forcewake in CSB when SQ is empty.
- Move UkGuckmdInterface.h file from 2016 folders to common 2016 folder.
- This is file location change.No functional change done as part of this
  check in.
- Enable decoupled freq for SKL GT4
- 3 tries of wake request needed from GuC2CSME for ME to wake up. Request
  has come from ME spec
- During reset one parameter was not getting accounted
- Enabling Guc Log changes for ultra low logging for OCA
- Enabling build failure check to catch critical section overflow.
- Disable build.bat redundant prints.
- Move few least used functions to non-critical section.
- Rearrange GuC documentation folder structure.
- Synchronize SLPC internal debug interface with other branches.
- Fixing Issue with Default Guc Log changes for OCA using special Control
  Bit

v2: Rebase. Updated commit message.

Signed-off-by: Jeff McGee 
Signed-off-by: Sagar Arun Kamble 
Cc: Spotswood John A 
Cc: Anusha Srivatsa 
Cc: Michal Wajdeczko 
Cc: Rodrigo Vivi 
Cc: Joonas Lahtinen 
---
 drivers/gpu/drm/i915/intel_guc_fw.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_guc_fw.c 
b/drivers/gpu/drm/i915/intel_guc_fw.c
index bbab4e1..631e932 100644
--- a/drivers/gpu/drm/i915/intel_guc_fw.c
+++ b/drivers/gpu/drm/i915/intel_guc_fw.c
@@ -30,8 +30,8 @@
 #include "intel_guc_fw.h"
 #include "i915_drv.h"
 
-#define SKL_FW_MAJOR 6
-#define SKL_FW_MINOR 1
+#define SKL_FW_MAJOR 9
+#define SKL_FW_MINOR 33
 
 #define BXT_FW_MAJOR 8
 #define BXT_FW_MINOR 7
-- 
1.9.1

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


[Intel-gfx] [PATCH v2 3/3] drm/i915/guc: Change default GuC FW for KBL to v9.39

2017-11-28 Thread Sagar Arun Kamble
This patch makes v9.39 firmware as default firmware for KBL.

Note: GuC logging control is changed with this firmware. GuC is
expecting i915 to set control bit to enable "default logging"
while using GuC action UK_LOG_ENABLE_LOGGING.
However i915 is currently not doing this because it is version
specific change and can be handled entirely in GuC. It will need
to be fixed in future firmwares.

This update includes (since v9.14):

- DCC spec changes for BXT + DCT enabling
- Bug Fix for power conservation feature SLPC_DCC
- Scheduler 1-element submission during DCC cycles.
- SB based Pre-ETM/ETM flow enabling for debug signed GuC/HuC
- Moving GuC non_critical r/w data to lower SRAM 64KB
- Media engine Reset fix.  Correctly marking context for resubmission in
  Media Reset case.
- ABT Disable bug fix. Disabled Evaluation mode on context change.
- Async FW in Engine Schedule feature (not enabled from KMD)
- GuC clean up to align developer build in line to production build.
- Disable ARAT interrupt before programming ARAT delta.
- Memory range check in Parse to avoid failure due to overflow.
- GuC Msg Channel Hang WA - Stall GUC for mmio access when IDI is low
  during CPD flow.
- Fix for submit queue over flow issue
- Enabling IBC on KBL GT3 15W, GT4 45W
- Disabling wrong device ID WA in production signed kernel
- Enabling WA for MSGCH hang issue upto required KBL stepping
- Clear forcewake in CSB when SQ is empty.
- 3Tries of GuC2CSME wake request
- During reset one parameter was not getting accounted
- Disable DCC 1-elem mode submission
- Move UkGuckmdInterface.h file from 2016 folders to common 2016 folder.
- This is file location change.No functional change done as part of this
  check in.
- Enabling Guc Log changes for ultra low logging for OCA
- Enabling Dynamic Render Power Well Hysteresis Programming for Compute
  Worklaods
- Enabling build failure check to catch critical section overflow.
- Disable build.bat redundant prints.
- Move few least used functions to non-critical section.
- Rearrange GuC documentation folder structure.
- Synchronize SLPC internal debug interface with other branches.
- Fixing Issue with Default Guc Log changes for OCA using special Control
  Bit
- Aggressive DCC implementation for supported platforms.

v2: Rebase. Updated commit message.

Signed-off-by: Jeff McGee 
Signed-off-by: Sagar Arun Kamble 
Cc: Spotswood John A 
Cc: Anusha Srivatsa 
Cc: Michal Wajdeczko 
Cc: Rodrigo Vivi 
Cc: Joonas Lahtinen 
---
 drivers/gpu/drm/i915/intel_guc_fw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_guc_fw.c 
b/drivers/gpu/drm/i915/intel_guc_fw.c
index df2ff96..89862fa 100644
--- a/drivers/gpu/drm/i915/intel_guc_fw.c
+++ b/drivers/gpu/drm/i915/intel_guc_fw.c
@@ -37,7 +37,7 @@
 #define BXT_FW_MINOR 29
 
 #define KBL_FW_MAJOR 9
-#define KBL_FW_MINOR 14
+#define KBL_FW_MINOR 39
 
 #define GLK_FW_MAJOR 10
 #define GLK_FW_MINOR 56
-- 
1.9.1

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


[Intel-gfx] [PATCH v2 0/3] drm/i915/guc: Update default GuC FW for SKL/BXT/KBL

2017-11-28 Thread Sagar Arun Kamble
With new GuC firmwares (SKL v9.33, BXT v9.29, KBL v9.39) available now
at 01.org downloads, let us update the default firmware versions.

Cc: Spotswood John A 
Cc: Anusha Srivatsa 
Cc: Michal Wajdeczko 
Cc: Rodrigo Vivi 
Cc: Joonas Lahtinen 

Sagar Arun Kamble (3):
  drm/i915/guc: Change default GuC FW for SKL to v9.33
  drm/i915/guc: Change default GuC FW for BXT to v9.29
  drm/i915/guc: Change default GuC FW for KBL to v9.39

 drivers/gpu/drm/i915/intel_guc_fw.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

-- 
1.9.1

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


Re: [Intel-gfx] [PATCH v2 1/2] drm/i915: Impletments dynamic WOPCM partitioning.

2017-11-28 Thread Yaodong Li

On 11/15/2017 09:58 AM, Chris Wilson wrote:

Quoting Jackie Li (2017-11-15 17:17:08)

Static WOPCM partitioning will lead to GuC loading failure
if the GuC/HuC firmware size exceeded current static 512KB
partition boundary.

This patch enables the dynamical calculation of the WOPCM aperture
used by GuC/HuC firmware. GuC WOPCM offset is  set to
HuC size + reserved WOPCM size. GuC WOPCM size is set to
total WOPCM size - GuC WOPCM offset - RC6CTX size. In this case,
GuC WOPCM offset will be updated based on the size of HuC firmware
while GuC WOPCM size will be set to use all the remaining WOPCM space.

v2:
  - Removed intel_wopcm_init (Ville/Sagar/Joonas)
  - Renamed and Moved the intel_wopcm_partition into intel_guc (Sagar)
  - Removed unnecessary function calls (Joonas)
  - Init GuC WOPCM partition as soon as firmware fetching is completed

Fix your indenting. Use tabs, align to brackets etc.


Signed-off-by: Jackie Li 
Cc: Michal Wajdeczko 
Cc: Sagar Arun Kamble 
Cc: Sujaritha Sundaresan 
Cc: Daniele Ceraolo Spurio 
Cc: John Spotswood 
Cc: Oscar Mateo 
---
  drivers/gpu/drm/i915/i915_gem_context.c |   4 +-
  drivers/gpu/drm/i915/i915_guc_reg.h |  18 +++--
  drivers/gpu/drm/i915/intel_guc.c|  25 ---
  drivers/gpu/drm/i915/intel_guc.h|  25 +++
  drivers/gpu/drm/i915/intel_huc.c|   2 +-
  drivers/gpu/drm/i915/intel_uc.c | 116 +++-
  drivers/gpu/drm/i915/intel_uc_fw.c  |  11 ++-
  7 files changed, 163 insertions(+), 38 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_context.c 
b/drivers/gpu/drm/i915/i915_gem_context.c
index 2db0406..285c310 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -312,12 +312,12 @@ __create_hw_context(struct drm_i915_private *dev_priv,
 ctx->desc_template =
 default_desc_template(dev_priv, dev_priv->mm.aliasing_ppgtt);
  
-   /* GuC requires the ring to be placed above GUC_WOPCM_TOP. If GuC is not

+   /* GuC requires the ring to be placed above GuC WOPCM top. if GuC is not
  * present or not in use we still need a small bias as ring wraparound
  * at offset 0 sometimes hangs. No idea why.
  */
 if (HAS_GUC(dev_priv) && i915_modparams.enable_guc_loading)
-   ctx->ggtt_offset_bias = GUC_WOPCM_TOP;
+   ctx->ggtt_offset_bias = dev_priv->guc.wopcm.top;
 else
 ctx->ggtt_offset_bias = I915_GTT_PAGE_SIZE;
  
diff --git a/drivers/gpu/drm/i915/i915_guc_reg.h b/drivers/gpu/drm/i915/i915_guc_reg.h

index bc1ae7d..567df12 100644
--- a/drivers/gpu/drm/i915/i915_guc_reg.h
+++ b/drivers/gpu/drm/i915/i915_guc_reg.h
@@ -67,17 +67,27 @@
  #define DMA_GUC_WOPCM_OFFSET   _MMIO(0xc340)
  #define   HUC_LOADING_AGENT_VCR  (0<<1)
  #define   HUC_LOADING_AGENT_GUC  (1<<1)
-#define   GUC_WOPCM_OFFSET_VALUE 0x8   /* 512KB */
  #define GUC_MAX_IDLE_COUNT _MMIO(0xC3E4)
  
  #define HUC_STATUS2 _MMIO(0xD3B0)

  #define   HUC_FW_VERIFIED   (1<<7)
  
  /* Defines WOPCM space available to GuC firmware */

+/* Default WOPCM size 1MB */
+#define WOPCM_DEFAULT_SIZE (0x1 << 20)
+/* Reserved WOPCM size 16KB */
+#define WOPCM_RESERVED_SIZE(0x4000)
+/* GUC WOPCM Offset need to be 16KB aligned */
+#define WOPCM_OFFSET_ALIGNMENT (0x4000)
+/* 8KB stack reserved for GuC FW*/
+#define GUC_WOPCM_STACK_RESERVED   (0x2000)
+/* 24KB WOPCM reserved for RC6 CTX on BXT */
+#define BXT_WOPCM_RC6_RESERVED (0x6000)
+
+#define GEN9_GUC_WOPCM_DELTA   4
+#define GEN9_GUC_WOPCM_OFFSET  (0x24000)
+
  #define GUC_WOPCM_SIZE _MMIO(0xc050)
-/* GuC addresses below GUC_WOPCM_TOP don't map through the GTT */
-#define   GUC_WOPCM_TOP  (0x80 << 12)  /* 512KB */
-#define   BXT_GUC_WOPCM_RC6_RESERVED (0x10 << 12)  /* 64KB  */
  
  /* GuC addresses above GUC_GGTT_TOP also don't map through the GTT */

  #define GUC_GGTT_TOP   0xFEE0
diff --git a/drivers/gpu/drm/i915/intel_guc.c b/drivers/gpu/drm/i915/intel_guc.c
index 9678630..0c6bd63 100644
--- a/drivers/gpu/drm/i915/intel_guc.c
+++ b/drivers/gpu/drm/i915/intel_guc.c
@@ -337,7 +337,7 @@ int intel_guc_resume(struct drm_i915_private *dev_priv)
   * This is a wrapper to create an object for use with the GuC. In order to
   * use it inside the GuC, an object needs to be pinned lifetime, so we 
allocate
   * both some backing storage and a range inside the Global GTT. We must pin
- * it in the GGTT somewhere other than than [0, GUC_WOPCM_TOP) because that
+ * it in the GGTT somewhere other than than [0, GuC WOPCM top) because that
   * range is reserved inside GuC.
   *
   * Return: A i915_vma if successful, otherwise an ERR_PTR.
@@ -358,7 +358,8 @@ struct i915_vma *intel_guc_allocate_vma(struct intel_guc 
*guc, u32 size)
 goto err;
  
  

Re: [Intel-gfx] [PATCH v2 1/2] drm/i915: Impletments dynamic WOPCM partitioning.

2017-11-28 Thread Yaodong Li

On 11/16/2017 08:00 PM, Sagar Arun Kamble wrote:



On 11/17/2017 3:17 AM, Michal Wajdeczko wrote:
On Thu, 16 Nov 2017 08:34:01 +0100, Sagar Arun Kamble 
 wrote:



Typo in the subject.
GLK showing failure to load GuC with this approach on CI.

On 11/15/2017 10:47 PM, Jackie Li wrote:

Static WOPCM partitioning will lead to GuC loading failure
if the GuC/HuC firmware size exceeded current static 512KB
partition boundary.

This patch enables the dynamical calculation of the WOPCM aperture
used by GuC/HuC firmware. GuC WOPCM offset is  set to
HuC size + reserved WOPCM size. GuC WOPCM size is set to
total WOPCM size - GuC WOPCM offset - RC6CTX size. In this case,
GuC WOPCM offset will be updated based on the size of HuC firmware
while GuC WOPCM size will be set to use all the remaining WOPCM space.

v2:
  - Removed intel_wopcm_init (Ville/Sagar/Joonas)
  - Renamed and Moved the intel_wopcm_partition into intel_guc (Sagar)
  - Removed unnecessary function calls (Joonas)
  - Init GuC WOPCM partition as soon as firmware fetching is completed

Signed-off-by: Jackie Li 
Cc: Michal Wajdeczko 
Cc: Sagar Arun Kamble 
Cc: Sujaritha Sundaresan 
Cc: Daniele Ceraolo Spurio 
Cc: John Spotswood 
Cc: Oscar Mateo 
---
  drivers/gpu/drm/i915/i915_gem_context.c |   4 +-
  drivers/gpu/drm/i915/i915_guc_reg.h |  18 +++--
  drivers/gpu/drm/i915/intel_guc.c    |  25 ---
  drivers/gpu/drm/i915/intel_guc.h    |  25 +++
  drivers/gpu/drm/i915/intel_huc.c    |   2 +-
  drivers/gpu/drm/i915/intel_uc.c | 116 
+++-

  drivers/gpu/drm/i915/intel_uc_fw.c  |  11 ++-
  7 files changed, 163 insertions(+), 38 deletions(-)

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

index 2db0406..285c310 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -312,12 +312,12 @@ __create_hw_context(struct drm_i915_private 
*dev_priv,

  ctx->desc_template =
  default_desc_template(dev_priv, 
dev_priv->mm.aliasing_ppgtt);
  -    /* GuC requires the ring to be placed above GUC_WOPCM_TOP. 
If GuC is not
+    /* GuC requires the ring to be placed above GuC WOPCM top. if 
GuC is not
   * present or not in use we still need a small bias as ring 
wraparound

   * at offset 0 sometimes hangs. No idea why.
   */
  if (HAS_GUC(dev_priv) && i915_modparams.enable_guc_loading)
-    ctx->ggtt_offset_bias = GUC_WOPCM_TOP;
+    ctx->ggtt_offset_bias = dev_priv->guc.wopcm.top;
  else
  ctx->ggtt_offset_bias = I915_GTT_PAGE_SIZE;
  diff --git a/drivers/gpu/drm/i915/i915_guc_reg.h 
b/drivers/gpu/drm/i915/i915_guc_reg.h

index bc1ae7d..567df12 100644
--- a/drivers/gpu/drm/i915/i915_guc_reg.h
+++ b/drivers/gpu/drm/i915/i915_guc_reg.h
@@ -67,17 +67,27 @@
  #define DMA_GUC_WOPCM_OFFSET    _MMIO(0xc340)
  #define   HUC_LOADING_AGENT_VCR  (0<<1)
  #define   HUC_LOADING_AGENT_GUC  (1<<1)
-#define   GUC_WOPCM_OFFSET_VALUE  0x8    /* 512KB */
  #define GUC_MAX_IDLE_COUNT    _MMIO(0xC3E4)
    #define HUC_STATUS2 _MMIO(0xD3B0)
  #define   HUC_FW_VERIFIED   (1<<7)
    /* Defines WOPCM space available to GuC firmware */
+/* Default WOPCM size 1MB */
+#define WOPCM_DEFAULT_SIZE    (0x1 << 20)
possible to get this size from register GEN6_STOLEN_RESERVED 
(ggtt->stolen_reserved_size)

+/* Reserved WOPCM size 16KB */
+#define WOPCM_RESERVED_SIZE    (0x4000)
+/* GUC WOPCM Offset need to be 16KB aligned */
+#define WOPCM_OFFSET_ALIGNMENT    (0x4000)

prefix this with GUC_ as it is specific to GuC in WOPCM

+/* 8KB stack reserved for GuC FW*/
+#define GUC_WOPCM_STACK_RESERVED    (0x2000)
+/* 24KB WOPCM reserved for RC6 CTX on BXT */
+#define BXT_WOPCM_RC6_RESERVED    (0x6000)
+
+#define GEN9_GUC_WOPCM_DELTA    4
+#define GEN9_GUC_WOPCM_OFFSET    (0x24000)


I'm not sure that definitions unrelated to register bits shall
be defined here


+
  #define GUC_WOPCM_SIZE    _MMIO(0xc050)
-/* GuC addresses below GUC_WOPCM_TOP don't map through the GTT */
-#define   GUC_WOPCM_TOP  (0x80 << 12) /* 512KB */
-#define   BXT_GUC_WOPCM_RC6_RESERVED  (0x10 << 12)    /* 64KB  */
    /* GuC addresses above GUC_GGTT_TOP also don't map through the 
GTT */

  #define GUC_GGTT_TOP    0xFEE0
diff --git a/drivers/gpu/drm/i915/intel_guc.c 
b/drivers/gpu/drm/i915/intel_guc.c

index 9678630..0c6bd63 100644
--- a/drivers/gpu/drm/i915/intel_guc.c
+++ b/drivers/gpu/drm/i915/intel_guc.c
@@ -337,7 +337,7 @@ int intel_guc_resume(struct drm_i915_private 
*dev_priv)
   * This is a wrapper to create an object for use with the GuC. In 
order to
   * use it inside the GuC, an object needs to be pinned lifetime, 
so we allocate
   * both some backing storage and a range inside the Global GTT. 
We must pin
- * it in the GGTT somewhere other than than [0, GUC_WOPCM_TOP) 
because that
+ * it in the GGTT somewhere other than th

Re: [Intel-gfx] [PATCH v2 1/2] drm/i915: Impletments dynamic WOPCM partitioning.

2017-11-28 Thread Yaodong Li

On 11/16/2017 01:47 PM, Michal Wajdeczko wrote:
On Thu, 16 Nov 2017 08:34:01 +0100, Sagar Arun Kamble 
 wrote:



Typo in the subject.
GLK showing failure to load GuC with this approach on CI.

On 11/15/2017 10:47 PM, Jackie Li wrote:

Static WOPCM partitioning will lead to GuC loading failure
if the GuC/HuC firmware size exceeded current static 512KB
partition boundary.

This patch enables the dynamical calculation of the WOPCM aperture
used by GuC/HuC firmware. GuC WOPCM offset is  set to
HuC size + reserved WOPCM size. GuC WOPCM size is set to
total WOPCM size - GuC WOPCM offset - RC6CTX size. In this case,
GuC WOPCM offset will be updated based on the size of HuC firmware
while GuC WOPCM size will be set to use all the remaining WOPCM space.

v2:
  - Removed intel_wopcm_init (Ville/Sagar/Joonas)
  - Renamed and Moved the intel_wopcm_partition into intel_guc (Sagar)
  - Removed unnecessary function calls (Joonas)
  - Init GuC WOPCM partition as soon as firmware fetching is completed

Signed-off-by: Jackie Li 
Cc: Michal Wajdeczko 
Cc: Sagar Arun Kamble 
Cc: Sujaritha Sundaresan 
Cc: Daniele Ceraolo Spurio 
Cc: John Spotswood 
Cc: Oscar Mateo 
---
  drivers/gpu/drm/i915/i915_gem_context.c |   4 +-
  drivers/gpu/drm/i915/i915_guc_reg.h |  18 +++--
  drivers/gpu/drm/i915/intel_guc.c    |  25 ---
  drivers/gpu/drm/i915/intel_guc.h    |  25 +++
  drivers/gpu/drm/i915/intel_huc.c    |   2 +-
  drivers/gpu/drm/i915/intel_uc.c | 116 
+++-

  drivers/gpu/drm/i915/intel_uc_fw.c  |  11 ++-
  7 files changed, 163 insertions(+), 38 deletions(-)

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

index 2db0406..285c310 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -312,12 +312,12 @@ __create_hw_context(struct drm_i915_private 
*dev_priv,

  ctx->desc_template =
  default_desc_template(dev_priv, dev_priv->mm.aliasing_ppgtt);
  -    /* GuC requires the ring to be placed above GUC_WOPCM_TOP. If 
GuC is not
+    /* GuC requires the ring to be placed above GuC WOPCM top. if 
GuC is not
   * present or not in use we still need a small bias as ring 
wraparound

   * at offset 0 sometimes hangs. No idea why.
   */
  if (HAS_GUC(dev_priv) && i915_modparams.enable_guc_loading)
-    ctx->ggtt_offset_bias = GUC_WOPCM_TOP;
+    ctx->ggtt_offset_bias = dev_priv->guc.wopcm.top;
  else
  ctx->ggtt_offset_bias = I915_GTT_PAGE_SIZE;
  diff --git a/drivers/gpu/drm/i915/i915_guc_reg.h 
b/drivers/gpu/drm/i915/i915_guc_reg.h

index bc1ae7d..567df12 100644
--- a/drivers/gpu/drm/i915/i915_guc_reg.h
+++ b/drivers/gpu/drm/i915/i915_guc_reg.h
@@ -67,17 +67,27 @@
  #define DMA_GUC_WOPCM_OFFSET    _MMIO(0xc340)
  #define   HUC_LOADING_AGENT_VCR  (0<<1)
  #define   HUC_LOADING_AGENT_GUC  (1<<1)
-#define   GUC_WOPCM_OFFSET_VALUE  0x8    /* 512KB */
  #define GUC_MAX_IDLE_COUNT    _MMIO(0xC3E4)
    #define HUC_STATUS2 _MMIO(0xD3B0)
  #define   HUC_FW_VERIFIED   (1<<7)
    /* Defines WOPCM space available to GuC firmware */
+/* Default WOPCM size 1MB */
+#define WOPCM_DEFAULT_SIZE    (0x1 << 20)
possible to get this size from register GEN6_STOLEN_RESERVED 
(ggtt->stolen_reserved_size)

+/* Reserved WOPCM size 16KB */
+#define WOPCM_RESERVED_SIZE    (0x4000)
+/* GUC WOPCM Offset need to be 16KB aligned */
+#define WOPCM_OFFSET_ALIGNMENT    (0x4000)

prefix this with GUC_ as it is specific to GuC in WOPCM

+/* 8KB stack reserved for GuC FW*/
+#define GUC_WOPCM_STACK_RESERVED    (0x2000)
+/* 24KB WOPCM reserved for RC6 CTX on BXT */
+#define BXT_WOPCM_RC6_RESERVED    (0x6000)
+
+#define GEN9_GUC_WOPCM_DELTA    4
+#define GEN9_GUC_WOPCM_OFFSET    (0x24000)


I'm not sure that definitions unrelated to register bits shall
be defined here


I was trying to align with the current implementation. since we had
put definitions such as GUC_WOPCM _TOP, BXT_GUC_WOPCM_RC6_RESERVED here.
It's better to create a header file for wopcm related definitions if we 
want to keep it absolutely

clean. I will think about it. Thanks for comments.

+
  #define GUC_WOPCM_SIZE    _MMIO(0xc050)
-/* GuC addresses below GUC_WOPCM_TOP don't map through the GTT */
-#define   GUC_WOPCM_TOP  (0x80 << 12)    /* 512KB */
-#define   BXT_GUC_WOPCM_RC6_RESERVED  (0x10 << 12)    /* 64KB  */
    /* GuC addresses above GUC_GGTT_TOP also don't map through the 
GTT */

  #define GUC_GGTT_TOP    0xFEE0
diff --git a/drivers/gpu/drm/i915/intel_guc.c 
b/drivers/gpu/drm/i915/intel_guc.c

index 9678630..0c6bd63 100644
--- a/drivers/gpu/drm/i915/intel_guc.c
+++ b/drivers/gpu/drm/i915/intel_guc.c
@@ -337,7 +337,7 @@ int intel_guc_resume(struct drm_i915_private 
*dev_priv)
   * This is a wrapper to create an object for use with the GuC. In 
order to
   * use it inside the GuC, an object

[Intel-gfx] ✗ Fi.CI.BAT: failure for intel_aubdump: Add ability to simulate execlist submission

2017-11-28 Thread Patchwork
== Series Details ==

Series: intel_aubdump: Add ability to simulate execlist submission
URL   : https://patchwork.freedesktop.org/series/34572/
State : failure

== Summary ==

IGT patchset build failed on latest successful build
380cc811486ba3fefbe3ebe4761afa7e169dcd3e tests/perf_pmu: Sync invalid-init with 
i915 changes

aubdump.c:368:12: error: ‘AUB_MEM_TRACE_REGISTER_SIZE_DWORD’ undeclared (first 
use in this function)
  dword_out(AUB_MEM_TRACE_REGISTER_SIZE_DWORD |
^
aubdump.c:369:5: error: ‘AUB_MEM_TRACE_REGISTER_SPACE_MMIO’ undeclared (first 
use in this function)
 AUB_MEM_TRACE_REGISTER_SPACE_MMIO);
 ^
aubdump.c: In function ‘gen10_write_header’:
aubdump.c:388:12: error: ‘CMD_MEM_TRACE_VERSION’ undeclared (first use in this 
function)
  dword_out(CMD_MEM_TRACE_VERSION | (dwords - 1));
^
aubdump.c:389:12: error: ‘AUB_MEM_TRACE_VERSION_FILE_VERSION’ undeclared (first 
use in this function)
  dword_out(AUB_MEM_TRACE_VERSION_FILE_VERSION);
^~
aubdump.c:390:12: error: ‘AUB_MEM_TRACE_VERSION_DEVICE_CNL’ undeclared (first 
use in this function)
  dword_out(AUB_MEM_TRACE_VERSION_DEVICE_CNL |
^~~~
aubdump.c:391:5: error: ‘AUB_MEM_TRACE_VERSION_METHOD_PHY’ undeclared (first 
use in this function)
 AUB_MEM_TRACE_VERSION_METHOD_PHY);
 ^~~~
aubdump.c:400:9: error: ‘AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT_ENTRY’ 
undeclared (first use in this function)
 AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT_ENTRY);
 ^
aubdump.c:409:8: error: ‘AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_LOCAL’ undeclared 
(first use in this function)
AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_LOCAL);
^~~~
aubdump.c: In function ‘aub_write_trace_block’:
aubdump.c:536:10: error: ‘AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_LOCAL’ undeclared 
(first use in this function)
  AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_LOCAL);
  ^~~~
aubdump.c: In function ‘aub_dump_execlist’:
aubdump.c:616:8: error: ‘AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_LOCAL’ undeclared 
(first use in this function)
AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_LOCAL);
^~~~
aubdump.c:634:12: error: ‘CMD_MEM_TRACE_REGISTER_POLL’ undeclared (first use in 
this function)
  dword_out(CMD_MEM_TRACE_REGISTER_POLL | (5 + 1 - 1));
^~~
aubdump.c:636:12: error: ‘AUB_MEM_TRACE_REGISTER_SIZE_DWORD’ undeclared (first 
use in this function)
  dword_out(AUB_MEM_TRACE_REGISTER_SIZE_DWORD |
^
aubdump.c:637:5: error: ‘AUB_MEM_TRACE_REGISTER_SPACE_MMIO’ undeclared (first 
use in this function)
 AUB_MEM_TRACE_REGISTER_SPACE_MMIO);
 ^
Makefile:1161: recipe for target 'aubdump.lo' failed
make[3]: *** [aubdump.lo] Error 1
Makefile:1209: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
Makefile:531: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
Makefile:463: recipe for target 'all' failed
make: *** [all] Error 2

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


[Intel-gfx] [PATCH i-g-t] intel_aubdump: Add ability to simulate execlist submission

2017-11-28 Thread Scott D Phillips
Newer devices do not have the legacy ring buffer submission model,
so aub files generated using that model cannot be handled by some
internal tools. The execlist submission modeled by this change is
pretty simplistic, using GGTT only and synchronizing after every
batch.
---
 tools/aubdump.c | 422 
 1 file changed, 394 insertions(+), 28 deletions(-)

diff --git a/tools/aubdump.c b/tools/aubdump.c
index 6ba3cb66..232371d5 100644
--- a/tools/aubdump.c
+++ b/tools/aubdump.c
@@ -46,6 +46,175 @@
 #define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0]))
 #endif
 
+#ifndef ALIGN
+#define ALIGN(x, y) (((x) + (y)-1) & ~((y)-1))
+#endif
+
+#ifndef MIN
+#define MIN(x, y) ((x) < (y) ? (x) : (y))
+#endif
+
+#define HWS_PGA_RCSUNIT0x02080
+#define HWS_PGA_VCSUNIT0   0x12080
+#define HWS_PGA_BCSUNIT0x22080
+
+#define GFX_MODE_RCSUNIT   0x0229c
+#define GFX_MODE_VCSUNIT0  0x1229c
+#define GFX_MODE_BCSUNIT   0x2229c
+
+#define EXECLIST_SUBMITPORT_RCSUNIT0x02230
+#define EXECLIST_SUBMITPORT_VCSUNIT0   0x12230
+#define EXECLIST_SUBMITPORT_BCSUNIT0x22230
+
+#define EXECLIST_STATUS_RCSUNIT0x02234
+#define EXECLIST_STATUS_VCSUNIT0   0x12234
+#define EXECLIST_STATUS_BCSUNIT0x22234
+
+#define MEMORY_MAP_SIZE (64 /* MiB */ * 1024 * 1024)
+
+#define PTE_SIZE 4
+#define GEN8_PTE_SIZE 8
+
+#define NUM_PT_ENTRIES (ALIGN(MEMORY_MAP_SIZE, 4096) / 4096)
+#define PT_SIZE ALIGN(NUM_PT_ENTRIES * GEN8_PTE_SIZE, 4096)
+
+#define RING_SIZE  ( 1 * 4096)
+#define PPHWSP_SIZE( 1 * 4096)
+#define GEN10_LR_CONTEXT_RENDER_SIZE   (19 * 4096)
+#define GEN8_LR_CONTEXT_OTHER_SIZE ( 2 * 4096)
+
+#define STATIC_GGTT_MAP_START 0
+
+#define RENDER_RING_ADDR STATIC_GGTT_MAP_START
+#define RENDER_CONTEXT_ADDR (RENDER_RING_ADDR + RING_SIZE)
+
+#define BLITTER_RING_ADDR (RENDER_CONTEXT_ADDR + PPHWSP_SIZE + 
GEN10_LR_CONTEXT_RENDER_SIZE)
+#define BLITTER_CONTEXT_ADDR (BLITTER_RING_ADDR + RING_SIZE)
+
+#define VIDEO_RING_ADDR (BLITTER_CONTEXT_ADDR + PPHWSP_SIZE + 
GEN8_LR_CONTEXT_OTHER_SIZE)
+#define VIDEO_CONTEXT_ADDR (VIDEO_RING_ADDR + RING_SIZE)
+
+#define STATIC_GGTT_MAP_END (VIDEO_CONTEXT_ADDR + PPHWSP_SIZE + 
GEN8_LR_CONTEXT_OTHER_SIZE)
+#define STATIC_GGTT_MAP_SIZE (STATIC_GGTT_MAP_END - STATIC_GGTT_MAP_START)
+
+#define CONTEXT_FLAGS (0x229)  /* Normal Priority | L3-LLC Coherency |
+   Legacy Context with no 64 bit VA support | Valid */
+
+#define RENDER_CONTEXT_DESCRIPTOR  ((uint64_t)1 << 32 | RENDER_CONTEXT_ADDR  | 
CONTEXT_FLAGS)
+#define BLITTER_CONTEXT_DESCRIPTOR ((uint64_t)2 << 32 | BLITTER_CONTEXT_ADDR | 
CONTEXT_FLAGS)
+#define VIDEO_CONTEXT_DESCRIPTOR   ((uint64_t)3 << 32 | VIDEO_CONTEXT_ADDR   | 
CONTEXT_FLAGS)
+
+static const uint32_t render_context_init[GEN10_LR_CONTEXT_RENDER_SIZE /
+ sizeof(uint32_t)] = {
+   0 /* MI_NOOP */,
+   0x1100101B /* MI_LOAD_REGISTER_IMM */,
+   0x2244 /* CONTEXT_CONTROL */,   0x90009 /* Inhibit Synchronous 
Context Switch | Engine Context Restore Inhibit */,
+   0x2034 /* RING_HEAD */, 0,
+   0x2030 /* RING_TAIL */, 0,
+   0x2038 /* RING_BUFFER_START */, RENDER_RING_ADDR,
+   0x203C /* RING_BUFFER_CONTROL */,   (RING_SIZE - 4096) | 1 /* 
Buffer Length | Ring Buffer Enable */,
+   0x2168 /* BB_HEAD_U */, 0,
+   0x2140 /* BB_HEAD_L */, 0,
+   0x2110 /* BB_STATE */,  0,
+   0x211C /* SECOND_BB_HEAD_U */,  0,
+   0x2114 /* SECOND_BB_HEAD_L */,  0,
+   0x2118 /* SECOND_BB_STATE */,   0,
+   0x21C0 /* BB_PER_CTX_PTR */,0,
+   0x21C4 /* RCS_INDIRECT_CTX */,  0,
+   0x21C8 /* RCS_INDIRECT_CTX_OFFSET */,   0,
+   /* MI_NOOP */
+   0, 0,
+
+   0 /* MI_NOOP */,
+   0x11001011 /* MI_LOAD_REGISTER_IMM */,
+   0x23A8 /* CTX_TIMESTAMP */, 0,
+   0x228C /* PDP3_UDW */,  0,
+   0x2288 /* PDP3_LDW */,  0,
+   0x2284 /* PDP2_UDW */,  0,
+   0x2280 /* PDP2_LDW */,  0,
+   0x227C /* PDP1_UDW */,  0,
+   0x2278 /* PDP1_LDW */,  0,
+   0x2274 /* PDP0_UDW */,  0,
+   0x2270 /* PDP0_LDW */,  0,
+   /* MI_NOOP */
+   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+   0 /* MI_NOOP */,
+   0x1101 /* MI_LOAD_REGISTER_IMM */,
+   0x20C8 /* R_PWR_CLK_STATE */, 0x7FFF,
+   0x0501 /* MI_BATCH_BUFFER_END */
+};
+
+static const uint32_t blitter_context_init[GEN8_LR_CONTEXT_OTHER_SIZE /
+  sizeof(uint32_t)] = {
+   0 /* MI_NOOP */,
+   0x11001015 /* MI_LOAD_REGISTER_IMM */,
+   0x22244 /* CONTEXT_CONTROL */,  0x90009 /* Inhibit Synchronous 
Context Switch | Engine Context Restore Inhibit */,
+   0x22034 /* RING_HEAD

[Intel-gfx] [PATCH libdrm] intel/aub: Add new MEM_TRACE commands

2017-11-28 Thread Scott D Phillips
The memtrace aub commands are similar to the existing ones, but
different. Notably memtrace has commands for register write and
poll.
---
 intel/intel_aub.h | 26 ++
 1 file changed, 26 insertions(+)

diff --git a/intel/intel_aub.h b/intel/intel_aub.h
index 5f0aba8e..9ca548ed 100644
--- a/intel/intel_aub.h
+++ b/intel/intel_aub.h
@@ -49,6 +49,12 @@
 #define CMD_AUB(7 << 29)
 
 #define CMD_AUB_HEADER (CMD_AUB | (1 << 23) | (0x05 << 16))
+
+#define CMD_MEM_TRACE_REGISTER_POLL(CMD_AUB | (0x2e << 23) | (0x02 << 16))
+#define CMD_MEM_TRACE_REGISTER_WRITE   (CMD_AUB | (0x2e << 23) | (0x03 << 16))
+#define CMD_MEM_TRACE_MEMORY_WRITE (CMD_AUB | (0x2e << 23) | (0x06 << 16))
+#define CMD_MEM_TRACE_VERSION  (CMD_AUB | (0x2e << 23) | (0x0e << 16))
+
 /* DW1 */
 # define AUB_HEADER_MAJOR_SHIFT24
 # define AUB_HEADER_MINOR_SHIFT16
@@ -92,8 +98,28 @@
 #define AUB_TRACE_MEMTYPE_PCI  (3 << 16)
 #define AUB_TRACE_MEMTYPE_GTT_ENTRY (4 << 16)
 
+#define AUB_MEM_TRACE_VERSION_FILE_VERSION 1
+
 /* DW2 */
 
+#define AUB_MEM_TRACE_VERSION_DEVICE_MASK  0xff00
+#define AUB_MEM_TRACE_VERSION_DEVICE_CNL   (15 << 8)
+
+#define AUB_MEM_TRACE_VERSION_METHOD_MASK  0x000c
+#define AUB_MEM_TRACE_VERSION_METHOD_PHY   (1 << 18)
+
+#define AUB_MEM_TRACE_REGISTER_SIZE_MASK   0x000f
+#define AUB_MEM_TRACE_REGISTER_SIZE_DWORD  (2 << 16)
+
+#define AUB_MEM_TRACE_REGISTER_SPACE_MASK  0xf000
+#define AUB_MEM_TRACE_REGISTER_SPACE_MMIO  (0 << 28)
+
+/* DW3 */
+
+#define AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_MASK0xf000
+#define AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_LOCAL   (1 << 28)
+#define AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT_ENTRY  (4 << 28)
+
 /**
  * aub_state_struct_type enum values are encoded with the top 16 bits
  * representing the type to be delivered to the .aub file, and the bottom 16
-- 
2.14.3

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


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/cnl: apply Display WA #1178 to fix type C dongles

2017-11-28 Thread Patchwork
== Series Details ==

Series: drm/i915/cnl: apply Display WA #1178 to fix type C dongles
URL   : https://patchwork.freedesktop.org/series/34566/
State : success

== Summary ==

Series 34566v1 drm/i915/cnl: apply Display WA #1178 to fix type C dongles
https://patchwork.freedesktop.org/api/1.0/series/34566/revisions/1/mbox/

Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
pass   -> INCOMPLETE (fi-snb-2520m) fdo#103713

fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713

fi-bdw-5557u total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  
time:440s
fi-bdw-gvtdvmtotal:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:439s
fi-blb-e6850 total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  
time:379s
fi-bsw-n3050 total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  
time:511s
fi-bwr-2160  total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 
time:278s
fi-bxt-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:497s
fi-bxt-j4205 total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:499s
fi-byt-j1900 total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  
time:479s
fi-byt-n2820 total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:467s
fi-elk-e7500 total:288  pass:229  dwarn:0   dfail:0   fail:0   skip:59  
time:419s
fi-gdg-551   total:288  pass:178  dwarn:1   dfail:0   fail:1   skip:108 
time:266s
fi-glk-1 total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  
time:533s
fi-hsw-4770  total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:369s
fi-hsw-4770r total:288  pass:224  dwarn:0   dfail:0   fail:0   skip:64  
time:256s
fi-ilk-650   total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  
time:425s
fi-ivb-3520m total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:481s
fi-kbl-7500u total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  
time:479s
fi-kbl-7560u total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  
time:527s
fi-kbl-7567u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:473s
fi-kbl-r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:527s
fi-pnv-d510  total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  
time:596s
fi-skl-6260u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:447s
fi-skl-6600u total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:538s
fi-skl-6700hqtotal:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:563s
fi-skl-6700k total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:513s
fi-skl-6770hqtotal:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:498s
fi-skl-gvtdvmtotal:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  
time:448s
fi-snb-2520m total:245  pass:211  dwarn:0   dfail:0   fail:0   skip:33 
fi-snb-2600  total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  
time:416s
Blacklisted hosts:
fi-cfl-s2total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:607s
fi-cnl-y total:272  pass:245  dwarn:0   dfail:0   fail:0   skip:26 
fi-glk-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:498s

5144438448829ec2a3d94fd16a9e69a52cfa7b3b drm-tip: 2017y-11m-28d-17h-04m-56s UTC 
integration manifest
a0ec9ac8817a drm/i915/cnl: apply Display WA #1178 to fix type C dongles

== Logs ==

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


Re: [Intel-gfx] [PATCH v6 6/7] efifb: Set info->fbcon_rotate_hint based on drm_get_panel_orientation_quirk

2017-11-28 Thread kbuild test robot
Hi Hans,

I love your patch! Yet something to improve:

[auto build test ERROR on drm/drm-next]
[also build test ERROR on v4.15-rc1 next-20171128]
[cannot apply to linus/master]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Hans-de-Goede/drm-fbdev-Panel-orientation-connector-property-support/20171129-001142
base:   git://people.freedesktop.org/~airlied/linux.git drm-next
config: x86_64-kexec (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers/video/fbdev/efifb.c: In function 'efifb_probe':
>> drivers/video/fbdev/efifb.c:339:7: error: 
>> 'DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP' undeclared (first use in this 
>> function); did you mean 'DRM_MODE_PRESENT_BOTTOM_FIELD'?
 case DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP:
  ^~~~
  DRM_MODE_PRESENT_BOTTOM_FIELD
   drivers/video/fbdev/efifb.c:339:7: note: each undeclared identifier is 
reported only once for each function it appears in
>> drivers/video/fbdev/efifb.c:342:7: error: 
>> 'DRM_MODE_PANEL_ORIENTATION_LEFT_UP' undeclared (first use in this 
>> function); did you mean 'DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP'?
 case DRM_MODE_PANEL_ORIENTATION_LEFT_UP:
  ^~
  DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP
>> drivers/video/fbdev/efifb.c:345:7: error: 
>> 'DRM_MODE_PANEL_ORIENTATION_RIGHT_UP' undeclared (first use in this 
>> function); did you mean 'DRM_MODE_PANEL_ORIENTATION_LEFT_UP'?
 case DRM_MODE_PANEL_ORIENTATION_RIGHT_UP:
  ^~~
  DRM_MODE_PANEL_ORIENTATION_LEFT_UP

vim +339 drivers/video/fbdev/efifb.c

   157  
   158  static int efifb_probe(struct platform_device *dev)
   159  {
   160  struct fb_info *info;
   161  int err, orientation;
   162  unsigned int size_vmode;
   163  unsigned int size_remap;
   164  unsigned int size_total;
   165  char *option = NULL;
   166  
   167  if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI || 
pci_dev_disabled)
   168  return -ENODEV;
   169  
   170  if (fb_get_options("efifb", &option))
   171  return -ENODEV;
   172  efifb_setup(option);
   173  
   174  /* We don't get linelength from UGA Draw Protocol, only from
   175   * EFI Graphics Protocol.  So if it's not in DMI, and it's not
   176   * passed in from the user, we really can't use the framebuffer.
   177   */
   178  if (!screen_info.lfb_linelength)
   179  return -ENODEV;
   180  
   181  if (!screen_info.lfb_depth)
   182  screen_info.lfb_depth = 32;
   183  if (!screen_info.pages)
   184  screen_info.pages = 1;
   185  if (!fb_base_is_valid()) {
   186  printk(KERN_DEBUG "efifb: invalid framebuffer 
address\n");
   187  return -ENODEV;
   188  }
   189  printk(KERN_INFO "efifb: probing for efifb\n");
   190  
   191  /* just assume they're all unset if any are */
   192  if (!screen_info.blue_size) {
   193  screen_info.blue_size = 8;
   194  screen_info.blue_pos = 0;
   195  screen_info.green_size = 8;
   196  screen_info.green_pos = 8;
   197  screen_info.red_size = 8;
   198  screen_info.red_pos = 16;
   199  screen_info.rsvd_size = 8;
   200  screen_info.rsvd_pos = 24;
   201  }
   202  
   203  efifb_fix.smem_start = screen_info.lfb_base;
   204  
   205  if (screen_info.capabilities & VIDEO_CAPABILITY_64BIT_BASE) {
   206  u64 ext_lfb_base;
   207  
   208  ext_lfb_base = (u64)(unsigned 
long)screen_info.ext_lfb_base << 32;
   209  efifb_fix.smem_start |= ext_lfb_base;
   210  }
   211  
   212  if (bar_resource &&
   213  bar_resource->start + bar_offset != efifb_fix.smem_start) {
   214  dev_info(&efifb_pci_dev->dev,
   215   "BAR has moved, updating efifb address\n");
   216  efifb_fix.smem_start = bar_resource->start + bar_offset;
   217  }
   218  
   219  efifb_defined.bits_per_pixel = screen_info.lfb_depth;
   220  efifb_defined.xres = screen_info.lfb_width;
   221  efifb_defined.yres = screen_info.lfb_height;
   222 

[Intel-gfx] [PATCH] drm/i915/cnl: apply Display WA #1178 to fix type C dongles

2017-11-28 Thread Lucas De Marchi
Display WA #1178 is meant to fix Aux channel voltage swing too low with
some type C dongles. Although it is for type C, HW engineers reported
that it can be applied to all external ports even if they are not going
to type C.

For CNL we apply the workaround every time Aux B, C and D are powering
up since they will lose the configuration when powered down.

v2: Use common tag for WA

Cc: Rodrigo Vivi 
Cc: Arthur J Runyan 
Cc: Ville Syrjälä 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/i915_reg.h | 11 +++
 drivers/gpu/drm/i915/intel_runtime_pm.c |  9 +
 2 files changed, 20 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 09bf043c1c2e..0214327d8af7 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -8335,6 +8335,17 @@ enum skl_power_gate {
 #define  SKL_PW_TO_PG(pw)  ((pw) - SKL_DISP_PW_1 + SKL_PG1)
 #define  SKL_FUSE_PG_DIST_STATUS(pg)   (1 << (27 - (pg)))
 
+#define _CNL_AUX_REG_IDX(pw)   ((pw - 1) >> 4)
+#define _CNL_AUX_ANAOVRD1_B0x162250
+#define _CNL_AUX_ANAOVRD1_C0x162210
+#define _CNL_AUX_ANAOVRD1_D0x1622D0
+#define CNL_AUX_ANAOVRD1(pw)   _MMIO(_PICK(_CNL_AUX_REG_IDX(pw), \
+   _CNL_AUX_ANAOVRD1_B, \
+   _CNL_AUX_ANAOVRD1_C, \
+   _CNL_AUX_ANAOVRD1_D))
+#define   CNL_AUX_ANAOVRD1_ENABLE  (1<<16)
+#define   CNL_AUX_ANAOVRD1_LDO_BYPASS  (1<<23)
+
 /* Per-pipe DDI Function Control */
 #define _TRANS_DDI_FUNC_CTL_A  0x60400
 #define _TRANS_DDI_FUNC_CTL_B  0x61400
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c 
b/drivers/gpu/drm/i915/intel_runtime_pm.c
index 8315499452dc..29f14e724f41 100644
--- a/drivers/gpu/drm/i915/intel_runtime_pm.c
+++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
@@ -388,6 +388,15 @@ static void hsw_power_well_enable(struct drm_i915_private 
*dev_priv,
I915_WRITE(HSW_PWR_WELL_CTL_DRIVER(id), val | HSW_PWR_WELL_CTL_REQ(id));
hsw_wait_for_power_well_enable(dev_priv, power_well);
 
+   /* Display WA #1178: cnl */
+   if (IS_CANNONLAKE(dev_priv) &&
+   (id == CNL_DISP_PW_AUX_B || id == CNL_DISP_PW_AUX_C ||
+id == CNL_DISP_PW_AUX_D)) {
+   val = I915_READ(CNL_AUX_ANAOVRD1(id));
+   val |= CNL_AUX_ANAOVRD1_ENABLE | CNL_AUX_ANAOVRD1_LDO_BYPASS;
+   I915_WRITE(CNL_AUX_ANAOVRD1(id), val);
+   }
+
if (wait_fuses)
gen9_wait_for_power_well_fuses(dev_priv, pg);
 
-- 
2.14.3

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


Re: [Intel-gfx] [PATCH 3/4] drm/i915: expose engine availability through sysfs

2017-11-28 Thread Chris Wilson
Quoting Chris Wilson (2017-11-28 20:56:23)
> Quoting Tvrtko Ursulin (2017-11-28 18:17:54)
> > 
> > On 20/11/2017 12:23, Lionel Landwerlin wrote:
> > > This enables userspace to discover the engines available on the GPU.
> > > Here is the layout on a Skylake GT4:
> > > 
> > > /sys/devices/pci:00/:00:02.0/drm/card0/gt
> > 
> > On this one I think Joonas had a concern that it is difficult for
> > userspace to get to the sysfs root from the drm file descriptor.
> > 
> > Lionel pointed out that for master nodes it is quite easy:
> > 
> > fstat(fd, &st);
> > sprintf(sysfs_root, "/sys/dev/char/%u:%u", major(st.st_rdev), 
> > minor(st.st_rdev));
> > 
> > For render nodes it is trickier in a way that they would have to
> > additional resolve an unknown master drm card number. For instance:
> > 
> > /sys/dev/char/%u:%u/device/drm/cardX
> > 
> > Where the "X" is unknown.
> > 
> > But, is it even an use case for render nodes to try and get to the
> > sysfs root of the master card? Are they allowed to do so?
> 
> Yes. Mesa uses render nodes, and mesa needs the topology for its
> performance monitoring api.

So /sys/dev/char/226:128/ does not link to /sys/dev/char/226:0/. Maybe
we should just add a card symlink from each minor back to our sysfs
root? That seems doable.

Then we just need open("/sys/dev/char/%u:%u/card");
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: follow single notation for workaround number

2017-11-28 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915: follow single notation for 
workaround number
URL   : https://patchwork.freedesktop.org/series/34563/
State : success

== Summary ==

Series 34563v1 series starting with [1/2] drm/i915: follow single notation for 
workaround number
https://patchwork.freedesktop.org/api/1.0/series/34563/revisions/1/mbox/

Test gem_exec_reloc:
Subgroup basic-gtt-cpu-active:
pass   -> FAIL   (fi-gdg-551) fdo#102582 +2

fdo#102582 https://bugs.freedesktop.org/show_bug.cgi?id=102582

fi-bdw-5557u total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  
time:440s
fi-bdw-gvtdvmtotal:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:438s
fi-blb-e6850 total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  
time:383s
fi-bsw-n3050 total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  
time:503s
fi-bwr-2160  total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 
time:279s
fi-bxt-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:501s
fi-bxt-j4205 total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:502s
fi-byt-j1900 total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  
time:485s
fi-byt-n2820 total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:468s
fi-elk-e7500 total:288  pass:229  dwarn:0   dfail:0   fail:0   skip:59  
time:428s
fi-gdg-551   total:288  pass:175  dwarn:1   dfail:0   fail:4   skip:108 
time:278s
fi-glk-1 total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  
time:537s
fi-hsw-4770  total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:382s
fi-hsw-4770r total:288  pass:224  dwarn:0   dfail:0   fail:0   skip:64  
time:260s
fi-ilk-650   total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  
time:424s
fi-ivb-3520m total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:470s
fi-kbl-7500u total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  
time:487s
fi-kbl-7560u total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  
time:525s
fi-kbl-7567u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:482s
fi-kbl-r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:532s
fi-pnv-d510  total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  
time:581s
fi-skl-6260u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:452s
fi-skl-6600u total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:538s
fi-skl-6700hqtotal:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:563s
fi-skl-6700k total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:517s
fi-skl-6770hqtotal:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:514s
fi-skl-gvtdvmtotal:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  
time:450s
fi-snb-2520m total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:547s
fi-snb-2600  total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  
time:419s
Blacklisted hosts:
fi-cfl-s2total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:609s
fi-cnl-y total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:557s
fi-glk-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:490s

5144438448829ec2a3d94fd16a9e69a52cfa7b3b drm-tip: 2017y-11m-28d-17h-04m-56s UTC 
integration manifest
0a09ce08ab58 drm/i915: add platform tag to WA
b22eefcbab09 drm/i915: follow single notation for workaround number

== Logs ==

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


[Intel-gfx] [PATCH 2/2] drm/i915: add platform tag to WA

2017-11-28 Thread Lucas De Marchi
Cc: Ville Syrjälä 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/intel_hdmi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_hdmi.c 
b/drivers/gpu/drm/i915/intel_hdmi.c
index 691600ce48c4..c42a6c672b73 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1380,7 +1380,7 @@ static bool hdmi_12bpc_possible(const struct 
intel_crtc_state *crtc_state)
}
}
 
-   /* Display WA #1139 */
+   /* Display WA #1139: glk */
if (IS_GLK_REVID(dev_priv, 0, GLK_REVID_A1) &&
crtc_state->base.adjusted_mode.htotal > 5460)
return false;
-- 
2.14.3

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


[Intel-gfx] [PATCH 1/2] drm/i915: follow single notation for workaround number

2017-11-28 Thread Lucas De Marchi
Cc: Ville Syrjälä 
Signed-off-by: Lucas De Marchi 
---
 drivers/gpu/drm/i915/intel_display.c | 2 +-
 drivers/gpu/drm/i915/intel_hdmi.c| 2 +-
 drivers/gpu/drm/i915/intel_pm.c  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 76c75d34e799..9a0ebf205435 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -15126,7 +15126,7 @@ get_encoder_power_domains(struct drm_i915_private 
*dev_priv)
 
 static void intel_early_display_was(struct drm_i915_private *dev_priv)
 {
-   /* Display WA #1185 WaDisableDARBFClkGating:cnl,glk */
+   /* Display WA #1185 WaDisableDARBFClkGating: cnl,glk */
if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv))
I915_WRITE(GEN9_CLKGATE_DIS_0, I915_READ(GEN9_CLKGATE_DIS_0) |
   DARBF_GATING_DIS);
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c 
b/drivers/gpu/drm/i915/intel_hdmi.c
index 9d5e72728475..691600ce48c4 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1380,7 +1380,7 @@ static bool hdmi_12bpc_possible(const struct 
intel_crtc_state *crtc_state)
}
}
 
-   /* Display Wa #1139 */
+   /* Display WA #1139 */
if (IS_GLK_REVID(dev_priv, 0, GLK_REVID_A1) &&
crtc_state->base.adjusted_mode.htotal > 5460)
return false;
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index a80c322c5b43..7905b8313e40 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -61,7 +61,7 @@ static void gen9_init_clock_gating(struct drm_i915_private 
*dev_priv)
if (HAS_LLC(dev_priv)) {
/*
 * WaCompressedResourceDisplayNewHashMode:skl,kbl
-* Display WA#0390: skl,kbl
+* Display WA #0390: skl,kbl
 *
 * Must match Sampler, Pixel Back End, and Media. See
 * WaCompressedResourceSamplerPbeMediaNewHashMode.
-- 
2.14.3

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


Re: [Intel-gfx] [PATCH v6 6/7] efifb: Set info->fbcon_rotate_hint based on drm_get_panel_orientation_quirk

2017-11-28 Thread kbuild test robot
Hi Hans,

I love your patch! Yet something to improve:

[auto build test ERROR on drm/drm-next]
[also build test ERROR on v4.15-rc1 next-20171128]
[cannot apply to linus/master]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Hans-de-Goede/drm-fbdev-Panel-orientation-connector-property-support/20171129-001142
base:   git://people.freedesktop.org/~airlied/linux.git drm-next
config: x86_64-randconfig-s1-11282357 (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers/video/fbdev/efifb.c: In function 'efifb_probe':
   drivers/video/fbdev/efifb.c:339:7: error: 
'DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP' undeclared (first use in this function)
 case DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP:
  ^~~~
   drivers/video/fbdev/efifb.c:339:7: note: each undeclared identifier is 
reported only once for each function it appears in
>> drivers/video/fbdev/efifb.c:342:7: error: 
>> 'DRM_MODE_PANEL_ORIENTATION_LEFT_UP' undeclared (first use in this function)
 case DRM_MODE_PANEL_ORIENTATION_LEFT_UP:
  ^~
>> drivers/video/fbdev/efifb.c:345:7: error: 
>> 'DRM_MODE_PANEL_ORIENTATION_RIGHT_UP' undeclared (first use in this function)
 case DRM_MODE_PANEL_ORIENTATION_RIGHT_UP:
  ^~~

vim +/DRM_MODE_PANEL_ORIENTATION_LEFT_UP +342 drivers/video/fbdev/efifb.c

   157  
   158  static int efifb_probe(struct platform_device *dev)
   159  {
   160  struct fb_info *info;
   161  int err, orientation;
   162  unsigned int size_vmode;
   163  unsigned int size_remap;
   164  unsigned int size_total;
   165  char *option = NULL;
   166  
   167  if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI || 
pci_dev_disabled)
   168  return -ENODEV;
   169  
   170  if (fb_get_options("efifb", &option))
   171  return -ENODEV;
   172  efifb_setup(option);
   173  
   174  /* We don't get linelength from UGA Draw Protocol, only from
   175   * EFI Graphics Protocol.  So if it's not in DMI, and it's not
   176   * passed in from the user, we really can't use the framebuffer.
   177   */
   178  if (!screen_info.lfb_linelength)
   179  return -ENODEV;
   180  
   181  if (!screen_info.lfb_depth)
   182  screen_info.lfb_depth = 32;
   183  if (!screen_info.pages)
   184  screen_info.pages = 1;
   185  if (!fb_base_is_valid()) {
   186  printk(KERN_DEBUG "efifb: invalid framebuffer 
address\n");
   187  return -ENODEV;
   188  }
   189  printk(KERN_INFO "efifb: probing for efifb\n");
   190  
   191  /* just assume they're all unset if any are */
   192  if (!screen_info.blue_size) {
   193  screen_info.blue_size = 8;
   194  screen_info.blue_pos = 0;
   195  screen_info.green_size = 8;
   196  screen_info.green_pos = 8;
   197  screen_info.red_size = 8;
   198  screen_info.red_pos = 16;
   199  screen_info.rsvd_size = 8;
   200  screen_info.rsvd_pos = 24;
   201  }
   202  
   203  efifb_fix.smem_start = screen_info.lfb_base;
   204  
   205  if (screen_info.capabilities & VIDEO_CAPABILITY_64BIT_BASE) {
   206  u64 ext_lfb_base;
   207  
   208  ext_lfb_base = (u64)(unsigned 
long)screen_info.ext_lfb_base << 32;
   209  efifb_fix.smem_start |= ext_lfb_base;
   210  }
   211  
   212  if (bar_resource &&
   213  bar_resource->start + bar_offset != efifb_fix.smem_start) {
   214  dev_info(&efifb_pci_dev->dev,
   215   "BAR has moved, updating efifb address\n");
   216  efifb_fix.smem_start = bar_resource->start + bar_offset;
   217  }
   218  
   219  efifb_defined.bits_per_pixel = screen_info.lfb_depth;
   220  efifb_defined.xres = screen_info.lfb_width;
   221  efifb_defined.yres = screen_info.lfb_height;
   222  efifb_fix.line_length = screen_info.lfb_linelength;
   223  
   224  /*   size_vmode -- that is the amount of memory needed for the
   225   * used video mode, i.e. the minimum amount of
   226   * memory we need. */
   227  size_vmode = efifb_

Re: [Intel-gfx] [PATCH] drm/i915: Fix deadlock in i830_disable_pipe()

2017-11-28 Thread Chris Wilson
Quoting Ville Syrjala (2017-11-28 15:48:53)
> From: Ville Syrjälä 
> 
> i830_disable_pipe() gets called from the power well code, and thus
> we're already holding the power domain mutex. That means we can't
> call plane->get_hw_state() as it will also try to grab the
> same mutex and will thus deadlock.
> 
> Replace the assert_plane() calls (which calls ->get_hw_state()) with
> just raw register reads in i830_disable_pipe(). As a bonus we can
> now get a warning if plane C is enabled even though we don't even
> expose it as a drm plane.
> 
> Fixes: 51f5a0963984 ("drm/i915: Add .get_hw_state() method for planes")
> Signed-off-by: Ville Syrjälä 
> ---
>  drivers/gpu/drm/i915/intel_display.c | 7 +--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c 
> b/drivers/gpu/drm/i915/intel_display.c
> index d67c7c498b34..48d9332b196f 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -14731,8 +14731,11 @@ void i830_disable_pipe(struct drm_i915_private 
> *dev_priv, enum pipe pipe)
> DRM_DEBUG_KMS("disabling pipe %c due to force quirk\n",
>   pipe_name(pipe));
>  
> -   assert_planes_disabled(intel_get_crtc_for_pipe(dev_priv, PIPE_A));
> -   assert_planes_disabled(intel_get_crtc_for_pipe(dev_priv, PIPE_B));
> +   WARN_ON(I915_READ(DSPCNTR(PLANE_A)) & DISPLAY_PLANE_ENABLE ||
> +   I915_READ(DSPCNTR(PLANE_B)) & DISPLAY_PLANE_ENABLE ||
> +   I915_READ(DSPCNTR(PLANE_C)) & DISPLAY_PLANE_ENABLE ||
> +   I915_READ(CURCNTR(PIPE_A)) & CURSOR_MODE ||
> +   I915_READ(CURCNTR(PIPE_B)) & CURSOR_MODE);

Ok. Avoiding mutex recursion sounds sensible, but a recursion sounds
like a layering violation. i830_disable_pipe is only used by the
powerwell, and I guess you could make the i830_enable_pipe in
i9xx_crtc_disable into a call to the powerdomain instead.

That sounds like more work than desired to fix the immediate problem!

However, I think you will miss the loss in precision by putting all the
checks into one WARN_ON. If it either fires, we've no idea what went
wrong?

Would it be worth just making each of those a separate WARN_ON()? I
think so.

Either way, I've checked that your explanation matches the code...
Reviewed-by: Chris Wilson 
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 3/4] drm/i915: expose engine availability through sysfs

2017-11-28 Thread Chris Wilson
Quoting Tvrtko Ursulin (2017-11-28 18:17:54)
> 
> On 20/11/2017 12:23, Lionel Landwerlin wrote:
> > This enables userspace to discover the engines available on the GPU.
> > Here is the layout on a Skylake GT4:
> > 
> > /sys/devices/pci:00/:00:02.0/drm/card0/gt
> 
> On this one I think Joonas had a concern that it is difficult for
> userspace to get to the sysfs root from the drm file descriptor.
> 
> Lionel pointed out that for master nodes it is quite easy:
> 
> fstat(fd, &st);
> sprintf(sysfs_root, "/sys/dev/char/%u:%u", major(st.st_rdev), 
> minor(st.st_rdev));
> 
> For render nodes it is trickier in a way that they would have to
> additional resolve an unknown master drm card number. For instance:
> 
> /sys/dev/char/%u:%u/device/drm/cardX
> 
> Where the "X" is unknown.
> 
> But, is it even an use case for render nodes to try and get to the
> sysfs root of the master card? Are they allowed to do so?

Yes. Mesa uses render nodes, and mesa needs the topology for its
performance monitoring api.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH i-g-t 2/3] lib/igt_sysfs: igt_sysfs_path only works for master nodes

2017-11-28 Thread Chris Wilson
Quoting Tvrtko Ursulin (2017-11-28 18:09:56)
> From: Tvrtko Ursulin 
> 
> DRM code defines the minor range for master nodes as 0-63, so express that
> explicitly near the top of the function.

We do use rendernodes, so we had better support them correctly. I
thought the premise of /sys/dev/char/$maj:$min/ was that it would work
with render as well as master nodes.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH i-g-t 1/3] lib/igt_sysfs: Remove support for finding sysfs path with no device opened

2017-11-28 Thread Chris Wilson
Quoting Tvrtko Ursulin (2017-11-28 18:09:55)
> From: Tvrtko Ursulin 
> 
> It looks like no callers actually use this so remove it to simplify.

We just added more users to the equivalent for debugfs, and accepting -1
here was simply to have consistency with our debugfs api.

If that makes any difference, principle of least surprise or something.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v6 5/7] drm/i915: Add "panel orientation" property to the panel connector, v6.

2017-11-28 Thread kbuild test robot
Hi Hans,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.15-rc1 next-20171128]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Hans-de-Goede/drm-fbdev-Panel-orientation-connector-property-support/20171128-225025
config: x86_64-randconfig-x012-201748 (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/intel_dsi.c: In function 
'intel_dsi_get_panel_orientation':
   drivers/gpu/drm/i915/intel_dsi.c:1672:21: error: storage size of 'plane' 
isn't known
 enum i9xx_plane_id plane;
^
>> drivers/gpu/drm/i915/intel_dsi.c:1672:21: error: unused variable 'plane' 
>> [-Werror=unused-variable]
   cc1: all warnings being treated as errors

vim +/plane +1672 drivers/gpu/drm/i915/intel_dsi.c

  1667  
  1668  static int intel_dsi_get_panel_orientation(struct intel_connector 
*connector)
  1669  {
  1670  struct drm_i915_private *dev_priv = 
to_i915(connector->base.dev);
  1671  int orientation = DRM_MODE_PANEL_ORIENTATION_NORMAL;
> 1672  enum i9xx_plane_id plane;
  1673  u32 val;
  1674  
  1675  if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
  1676  if (connector->encoder->crtc_mask == BIT(PIPE_B))
  1677  plane = PLANE_B;
  1678  else
  1679  plane = PLANE_A;
  1680  
  1681  val = I915_READ(DSPCNTR(plane));
  1682  if (val & DISPPLANE_ROTATE_180)
  1683  orientation = 
DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP;
  1684  }
  1685  
  1686  return orientation;
  1687  }
  1688  

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


.config.gz
Description: application/gzip
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for Simplify hunting for drm card sysfs root

2017-11-28 Thread Patchwork
== Series Details ==

Series: Simplify hunting for drm card sysfs root
URL   : https://patchwork.freedesktop.org/series/34559/
State : success

== Summary ==

IGT patchset tested on top of latest successful build
380cc811486ba3fefbe3ebe4761afa7e169dcd3e tests/perf_pmu: Sync invalid-init with 
i915 changes

with latest DRM-Tip kernel build CI_DRM_3402
514443844882 drm-tip: 2017y-11m-28d-17h-04m-56s UTC integration manifest

No testlist changes.

Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
pass   -> INCOMPLETE (fi-snb-2520m) fdo#103713

fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713

fi-bdw-5557u total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  
time:446s
fi-bdw-gvtdvmtotal:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:449s
fi-blb-e6850 total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  
time:382s
fi-bsw-n3050 total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  
time:521s
fi-bwr-2160  total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 
time:278s
fi-bxt-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:500s
fi-bxt-j4205 total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:504s
fi-byt-j1900 total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  
time:483s
fi-byt-n2820 total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:475s
fi-elk-e7500 total:288  pass:229  dwarn:0   dfail:0   fail:0   skip:59  
time:426s
fi-gdg-551   total:288  pass:178  dwarn:1   dfail:0   fail:1   skip:108 
time:269s
fi-glk-1 total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  
time:539s
fi-hsw-4770  total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:374s
fi-hsw-4770r total:288  pass:224  dwarn:0   dfail:0   fail:0   skip:64  
time:262s
fi-ivb-3520m total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:480s
fi-kbl-7500u total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  
time:484s
fi-kbl-7560u total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  
time:525s
fi-kbl-7567u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:478s
fi-kbl-r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:531s
fi-skl-6260u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:452s
fi-skl-6600u total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:538s
fi-skl-6700hqtotal:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:568s
fi-skl-6700k total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:517s
fi-skl-6770hqtotal:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:518s
fi-skl-gvtdvmtotal:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  
time:451s
fi-snb-2520m total:245  pass:211  dwarn:0   dfail:0   fail:0   skip:33 
fi-snb-2600  total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  
time:421s
Blacklisted hosts:
fi-cfl-s2total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:602s
fi-cnl-y total:217  pass:196  dwarn:0   dfail:0   fail:0   skip:20 
fi-glk-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:490s

== Logs ==

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


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/guc: Fix doc reference to intel_guc_fw.c

2017-11-28 Thread Patchwork
== Series Details ==

Series: drm/i915/guc: Fix doc reference to intel_guc_fw.c
URL   : https://patchwork.freedesktop.org/series/34557/
State : success

== Summary ==

Series 34557v1 drm/i915/guc: Fix doc reference to intel_guc_fw.c
https://patchwork.freedesktop.org/api/1.0/series/34557/revisions/1/mbox/

Test kms_cursor_legacy:
Subgroup basic-busy-flip-before-cursor-legacy:
pass   -> FAIL   (fi-gdg-551) fdo#102618

fdo#102618 https://bugs.freedesktop.org/show_bug.cgi?id=102618

fi-bdw-5557u total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  
time:442s
fi-bdw-gvtdvmtotal:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:445s
fi-blb-e6850 total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  
time:389s
fi-bsw-n3050 total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  
time:514s
fi-bwr-2160  total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 
time:279s
fi-bxt-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:498s
fi-bxt-j4205 total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:500s
fi-byt-j1900 total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  
time:484s
fi-byt-n2820 total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:465s
fi-elk-e7500 total:288  pass:229  dwarn:0   dfail:0   fail:0   skip:59  
time:424s
fi-gdg-551   total:288  pass:177  dwarn:1   dfail:0   fail:2   skip:108 
time:278s
fi-glk-1 total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  
time:537s
fi-hsw-4770  total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:370s
fi-hsw-4770r total:288  pass:224  dwarn:0   dfail:0   fail:0   skip:64  
time:258s
fi-ilk-650   total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  
time:428s
fi-ivb-3520m total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:480s
fi-kbl-7500u total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  
time:481s
fi-kbl-7560u total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  
time:530s
fi-kbl-7567u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:474s
fi-kbl-r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:523s
fi-pnv-d510  total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  
time:583s
fi-skl-6260u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:446s
fi-skl-6600u total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:538s
fi-skl-6700hqtotal:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:558s
fi-skl-6700k total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:515s
fi-skl-6770hqtotal:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:507s
fi-skl-gvtdvmtotal:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  
time:447s
fi-snb-2520m total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:550s
fi-snb-2600  total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  
time:414s
Blacklisted hosts:
fi-cfl-s2total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:603s
fi-cnl-y total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:557s
fi-glk-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:478s

5144438448829ec2a3d94fd16a9e69a52cfa7b3b drm-tip: 2017y-11m-28d-17h-04m-56s UTC 
integration manifest
199eb77ebe81 drm/i915/guc: Fix doc reference to intel_guc_fw.c

== Logs ==

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


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] lockdep: finer-grained completion key for kthread

2017-11-28 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] lockdep: finer-grained completion key for 
kthread
URL   : https://patchwork.freedesktop.org/series/34556/
State : success

== Summary ==

Series 34556v1 series starting with [1/2] lockdep: finer-grained completion key 
for kthread
https://patchwork.freedesktop.org/api/1.0/series/34556/revisions/1/mbox/

fi-bdw-5557u total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  
time:421s
fi-bdw-gvtdvmtotal:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:427s
fi-bsw-n3050 total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  
time:454s
fi-bwr-2160  total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 
time:253s
fi-bxt-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:471s
fi-bxt-j4205 total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:470s
fi-byt-j1900 total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  
time:443s
fi-byt-n2820 total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:427s
fi-elk-e7500 total:288  pass:229  dwarn:0   dfail:0   fail:0   skip:59  
time:409s
fi-gdg-551   total:288  pass:178  dwarn:1   dfail:0   fail:1   skip:108 
time:240s
fi-glk-1 total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  
time:514s
fi-hsw-4770  total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:374s
fi-hsw-4770r total:288  pass:224  dwarn:0   dfail:0   fail:0   skip:64  
time:246s
fi-ilk-650   total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  
time:409s
fi-ivb-3520m total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:464s
fi-kbl-7500u total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  
time:476s
fi-kbl-7567u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:460s
fi-kbl-r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:513s
fi-pnv-d510  total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  
time:482s
fi-skl-6260u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:433s
fi-skl-6600u total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:525s
fi-skl-6700hqtotal:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:547s
fi-skl-6700k total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:505s
fi-skl-6770hqtotal:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:479s
fi-skl-gvtdvmtotal:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  
time:432s
fi-snb-2520m total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:544s
fi-snb-2600  total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  
time:400s
Blacklisted hosts:
fi-cfl-s2total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:600s
fi-cnl-y total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:583s
fi-glk-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:461s
fi-blb-e6850 failed to collect. IGT log at Patchwork_7328/fi-blb-e6850/igt.log
fi-kbl-7560u failed to collect. IGT log at Patchwork_7328/fi-kbl-7560u/igt.log

5144438448829ec2a3d94fd16a9e69a52cfa7b3b drm-tip: 2017y-11m-28d-17h-04m-56s UTC 
integration manifest
77504fcd19ba lockdep: Up MAX_LOCKDEP_CHAINS
0dc70bf6d898 lockdep: finer-grained completion key for kthread

== Logs ==

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


Re: [Intel-gfx] [PATCH 3/4] drm/i915: expose engine availability through sysfs

2017-11-28 Thread Tvrtko Ursulin

On 20/11/2017 12:23, Lionel Landwerlin wrote:
> This enables userspace to discover the engines available on the GPU.
> Here is the layout on a Skylake GT4:
> 
> /sys/devices/pci:00/:00:02.0/drm/card0/gt

On this one I think Joonas had a concern that it is difficult for
userspace to get to the sysfs root from the drm file descriptor.

Lionel pointed out that for master nodes it is quite easy:

fstat(fd, &st);
sprintf(sysfs_root, "/sys/dev/char/%u:%u", major(st.st_rdev), 
minor(st.st_rdev));

For render nodes it is trickier in a way that they would have to
additional resolve an unknown master drm card number. For instance:

/sys/dev/char/%u:%u/device/drm/cardX

Where the "X" is unknown.

But, is it even an use case for render nodes to try and get to the
sysfs root of the master card? Are they allowed to do so?

Regards,

Tvrtko


> ├── bcs
> │   └── 0
> │   ├── capabilities
> │   ├── class
> │   └── id
> ├── rcs
> │   └── 0
> │   ├── capabilities
> │   ├── class
> │   └── id
> ├── vcs
> │   ├── 0
> │   │   ├── capabilities
> │   │   │   └── hevc
> │   │   ├── class
> │   │   └── id
> │   └── 1
> │   ├── capabilities
> │   ├── class
> │   └── id
> └── vecs
>  └── 0
>  ├── capabilities
>  ├── class
>  └── id
> 
> Further capabilities can be added later as attributes of each engine.
> 
> v2: Add capabilities sub directory (Tvrtko)
>  Move engines directory to drm/card/gt (Chris)
> 
> Signed-off-by: Lionel Landwerlin 
> ---
>   drivers/gpu/drm/i915/i915_drv.h |   5 +
>   drivers/gpu/drm/i915/i915_reg.h |   1 +
>   drivers/gpu/drm/i915/i915_sysfs.c   | 160 
> 
>   drivers/gpu/drm/i915/intel_engine_cs.c  |  12 +++
>   drivers/gpu/drm/i915/intel_ringbuffer.h |   4 +
>   5 files changed, 182 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 78c49db4280a..db550322207c 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -2729,6 +2729,11 @@ struct drm_i915_private {
>   } oa;
>   } perf;
>   
> + struct {
> + struct kobject kobj;
> + struct kobject classes_kobjs[MAX_ENGINE_CLASS];
> + } gt_topology;
> +
>   /* Abstract the submission mechanism (legacy ringbuffer or execlists) 
> away */
>   struct {
>   void (*resume)(struct drm_i915_private *);
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 96c80fa0fcac..17aecd4fc6aa 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -186,6 +186,7 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
>   #define VIDEO_ENHANCEMENT_CLASS 2
>   #define COPY_ENGINE_CLASS   3
>   #define OTHER_CLASS 4
> +#define MAX_ENGINE_CLASS 5
>   
>   /* PCI config space */
>   
> diff --git a/drivers/gpu/drm/i915/i915_sysfs.c 
> b/drivers/gpu/drm/i915/i915_sysfs.c
> index 791759f632e1..fd04d0b93eaf 100644
> --- a/drivers/gpu/drm/i915/i915_sysfs.c
> +++ b/drivers/gpu/drm/i915/i915_sysfs.c
> @@ -559,6 +559,160 @@ static void i915_setup_error_capture(struct device 
> *kdev) {}
>   static void i915_teardown_error_capture(struct device *kdev) {}
>   #endif
>   
> +static struct attribute engine_id_attr = {
> + .name = "id",
> + .mode = 0444,
> +};
> +
> +static struct attribute engine_class_attr = {
> + .name = "class",
> + .mode = 0444,
> +};
> +
> +static ssize_t
> +show_engine_attr(struct kobject *kobj, struct attribute *attr, char *buf)
> +{
> + struct intel_engine_cs *engine =
> + container_of(kobj, struct intel_engine_cs, instance_kobj);
> +
> + if (attr == &engine_id_attr)
> + return sprintf(buf, "%hhu\n", engine->uabi_id);
> + if (attr == &engine_class_attr)
> + return sprintf(buf, "%hhu\n", engine->uabi_class);
> + return sprintf(buf, "\n");
> +}
> +
> +static const struct sysfs_ops engine_ops = {
> + .show = show_engine_attr,
> +};
> +
> +static struct kobj_type engine_type = {
> + .sysfs_ops = &engine_ops,
> +};
> +
> +static struct attribute engine_capability_hevc_attr = {
> + .name = "hevc",
> + .mode = 0444,
> +};
> +
> +static ssize_t
> +show_engine_capabilities_attr(struct kobject *kobj, struct attribute *attr, 
> char *buf)
> +{
> + struct intel_engine_cs *engine =
> + container_of(kobj, struct intel_engine_cs, capabilities_kobj);
> +
> + if (attr == &engine_capability_hevc_attr)
> + return sprintf(buf, "%i\n", INTEL_GEN(engine->i915) >= 8);
> + return sprintf(buf, "\n");
> +}
> +
> +static const struct sysfs_ops engine_capabilities_ops = {
> + .show = show_engine_capabilities_attr,
> +};
> +
> +static struct kobj_type engine_capabilities_type = {
> + .sysfs_ops = &engine_capabilities_ops,
> +};
> +
> +static int i915_setup_engines_sysfs(struct drm_i915_private *dev_priv,
> 

[Intel-gfx] [PATCH i-g-t 2/3] lib/igt_sysfs: igt_sysfs_path only works for master nodes

2017-11-28 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

DRM code defines the minor range for master nodes as 0-63, so express that
explicitly near the top of the function.

Signed-off-by: Tvrtko Ursulin 
---
 lib/igt_sysfs.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/lib/igt_sysfs.c b/lib/igt_sysfs.c
index dd057dc04947..f0fef8d434ef 100644
--- a/lib/igt_sysfs.c
+++ b/lib/igt_sysfs.c
@@ -105,6 +105,10 @@ char *igt_sysfs_path(int device, char *path, int pathlen, 
int *idx)
if (device < 0 || fstat(device, &st) || !S_ISCHR(st.st_mode))
return NULL;
 
+   /* Only support master nodes. */
+   if (minor(st.st_rdev) >= 64)
+   return NULL;
+
for (int n = 0; n < 16; n++) {
int len = snprintf(path, pathlen, "/sys/class/drm/card%d", n);
int ret, maj, min;
-- 
2.14.1

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


[Intel-gfx] [PATCH i-g-t 1/3] lib/igt_sysfs: Remove support for finding sysfs path with no device opened

2017-11-28 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

It looks like no callers actually use this so remove it to simplify.

Signed-off-by: Tvrtko Ursulin 
---
 lib/igt_sysfs.c | 39 ---
 1 file changed, 16 insertions(+), 23 deletions(-)

diff --git a/lib/igt_sysfs.c b/lib/igt_sysfs.c
index e7c67dae3a13..dd057dc04947 100644
--- a/lib/igt_sysfs.c
+++ b/lib/igt_sysfs.c
@@ -102,33 +102,26 @@ char *igt_sysfs_path(int device, char *path, int pathlen, 
int *idx)
 {
struct stat st;
 
-   if (device != -1 && (fstat(device, &st) || !S_ISCHR(st.st_mode)))
+   if (device < 0 || fstat(device, &st) || !S_ISCHR(st.st_mode))
return NULL;
 
for (int n = 0; n < 16; n++) {
int len = snprintf(path, pathlen, "/sys/class/drm/card%d", n);
-   if (device != -1) {
-   FILE *file;
-   int ret, maj, min;
-
-   sprintf(path + len, "/dev");
-   file = fopen(path, "r");
-   if (!file)
-   continue;
-
-   ret = fscanf(file, "%d:%d", &maj, &min);
-   fclose(file);
-
-   if (ret != 2 ||
-   major(st.st_rdev) != maj ||
-   minor(st.st_rdev) != min)
-   continue;
-   } else {
-   /* Bleh. Search for intel */
-   sprintf(path + len, "/error");
-   if (stat(path, &st))
-   continue;
-   }
+   int ret, maj, min;
+   FILE *file;
+
+   sprintf(path + len, "/dev");
+   file = fopen(path, "r");
+   if (!file)
+   continue;
+
+   ret = fscanf(file, "%d:%d", &maj, &min);
+   fclose(file);
+
+   if (ret != 2 ||
+   major(st.st_rdev) != maj ||
+   minor(st.st_rdev) != min)
+   continue;
 
path[len] = '\0';
if (idx)
-- 
2.14.1

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


[Intel-gfx] [PATCH i-g-t 0/3] Simplify hunting for drm card sysfs root

2017-11-28 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

Short series to clean up the code and bit.

Thanks to Lionel for pointing out the convenient /sys/dev/char/:
symlink.

Tvrtko Ursulin (3):
  lib/igt_sysfs: Remove support for finding sysfs path with no device
opened
  lib/igt_sysfs: igt_sysfs_path only works for master nodes
  lib/igt_sysfs: Simplify igt_sysfs_path

 lib/igt_sysfs.c | 47 ---
 1 file changed, 16 insertions(+), 31 deletions(-)

-- 
2.14.1

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


[Intel-gfx] [PATCH i-g-t 3/3] lib/igt_sysfs: Simplify igt_sysfs_path

2017-11-28 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

There is no need to iterate over /sys/class/drm/card* directories looking
for the one which matches our major and minor, when we can directly find
the right one via the /sys/dev/char/: symlink.

Signed-off-by: Tvrtko Ursulin 
Suggested-by: Lionel Landwerlin 
---
 lib/igt_sysfs.c | 36 
 1 file changed, 12 insertions(+), 24 deletions(-)

diff --git a/lib/igt_sysfs.c b/lib/igt_sysfs.c
index f0fef8d434ef..a4a87711ed0c 100644
--- a/lib/igt_sysfs.c
+++ b/lib/igt_sysfs.c
@@ -100,40 +100,28 @@ static int writeN(int fd, const char *buf, int len)
  */
 char *igt_sysfs_path(int device, char *path, int pathlen, int *idx)
 {
+   unsigned int maj, min;
struct stat st;
+   int len;
 
if (device < 0 || fstat(device, &st) || !S_ISCHR(st.st_mode))
return NULL;
 
+   maj = major(st.st_rdev);
+   min = minor(st.st_rdev);
+
/* Only support master nodes. */
-   if (minor(st.st_rdev) >= 64)
+   if (min >= 64)
return NULL;
 
-   for (int n = 0; n < 16; n++) {
-   int len = snprintf(path, pathlen, "/sys/class/drm/card%d", n);
-   int ret, maj, min;
-   FILE *file;
-
-   sprintf(path + len, "/dev");
-   file = fopen(path, "r");
-   if (!file)
-   continue;
-
-   ret = fscanf(file, "%d:%d", &maj, &min);
-   fclose(file);
-
-   if (ret != 2 ||
-   major(st.st_rdev) != maj ||
-   minor(st.st_rdev) != min)
-   continue;
+   len = snprintf(path, pathlen, "/sys/dev/char/%u:%u", maj, min);
+   if (len == pathlen)
+   return NULL;
 
-   path[len] = '\0';
-   if (idx)
-   *idx = n;
-   return path;
-   }
+   if (idx)
+   *idx = min;
 
-   return NULL;
+   return path;
 }
 
 /**
-- 
2.14.1

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


Re: [Intel-gfx] [PATCH 1/4] drm/i915: Move execlists setup out of common

2017-11-28 Thread Chris Wilson
Quoting Tvrtko Ursulin (2017-11-28 17:29:25)
> 
> On 28/11/2017 16:04, Chris Wilson wrote:
> > Quoting Tvrtko Ursulin (2017-11-28 13:07:54)
> >>
> >> On 28/11/2017 12:48, Chris Wilson wrote:
> >>> Quoting Tvrtko Ursulin (2017-11-28 12:41:27)
>  From: Tvrtko Ursulin 
> 
>  Move the execlists specific setup out of intel_engine_setup_common. This
>  was supposed to be only for backend agnostic bits. At the same time 
>  rename
>  it to intel_engine_setup_execlist to follow the setup vs init naming
>  convetion we have.
> 
>  Signed-off-by: Tvrtko Ursulin 
>  ---
>  +static void
>  +intel_engine_setup_execlist(struct intel_engine_cs *engine)
>  +{
>  +   struct intel_engine_execlists * const execlists = 
>  &engine->execlists;
>  +
>  +   execlists->csb_use_mmio = csb_force_mmio(engine->i915);
>  +
>  +   execlists->port_mask = 1;
>  +   BUILD_BUG_ON_NOT_POWER_OF_2(execlists_num_ports(execlists));
>  +   GEM_BUG_ON(execlists_num_ports(execlists) > EXECLIST_MAX_PORTS);
>  +
>  +   execlists->queue = RB_ROOT;
>  +   execlists->first = NULL;
>  +}
> >>>
> >>> The only problem here was that we wanted to be sure that some fields
> >>> were initialised for the common paths, i.e. so we could iterate over the
> >>> queue without worrying first if it was execlists (if it wasn't execlists
> >>> the queue would be empty).
> >>>
> >>> Now, I think we could just rely on zero initialisation, but that was the
> >>> rationale for it ending up early. Now we could split it between
> >>> setup_execlists and init_execlists if we want the pedantry.
> >>
> >> Common paths as in ringbuffer submission? I grepped around and don't see
> >> it used there.
> > 
> > See the reset code, the debug code, etc; in the common layer, above the
> > backends, we want to be neutral.
> > 
> >> Then about setup vs init, we said init is for hw access so I don't
> >> follow how you would split the above?
> > 
> > init_hw is for initialising hw. Better names for the phases is still
> > open :)
> 
> Okay I found execlists->first usage in intel_engine_dump, so one so far. 

Keep looking.

> That could be made conditional,

No. It already is conditional on the derived state.

or if there are other places abstracted 

> out to the backend implementation. It could be that I just did not find 
> more due too much context switching?
> 
> This way or the other, I did not want to put a code like "if 
> (HAS_EXECLISTS(i915)) ..."  in the function called 
> intel_engine_init_execlists. That's just wrong.
> 
> And I'd say it's equally wrong to call intel_engine_init_execlists

It's wrong to initialised the shared structure?

> from 
> _intel_engine_setup_common_, because the spiritual starting point for 
> this common setup refactoring was to only put there bits _common_ to 
> both backends.
> 
> If you want to keep this approach of letting the higher layers just 
> assume they can access backend specific parts then simplest would be I 
> just drop this patch and put that ugly "if HAS_EXECLISTS" where I don't 
> want to put it. Can view it as interim and fixup later?

Don't break it in this patch, and you won't have to do either?
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915/guc: Fix doc reference to intel_guc_fw.c

2017-11-28 Thread Jonathan Neuschäfer
Sphinx complains that it can't find intel_guc_loader.c, and rightly so:
The file has been renamed.

Fixes: e8668bbcb0f9 ("drm/i915/guc: Rename intel_guc_loader.c to 
intel_guc_fw.c")
Cc: Michal Wajdeczko 
Signed-off-by: Jonathan Neuschäfer 
---
 Documentation/gpu/i915.rst | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
index 2e7ee0313c1c..e21698e16534 100644
--- a/Documentation/gpu/i915.rst
+++ b/Documentation/gpu/i915.rst
@@ -341,10 +341,10 @@ GuC
 GuC-specific firmware loader
 
 
-.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
+.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fw.c
:doc: GuC-specific firmware loader
 
-.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
+.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fw.c
:internal:
 
 GuC-based command submission
-- 
2.15.0

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


Re: [Intel-gfx] [PATCH V3 24/29] backlight: deprecate pci_get_bus_and_slot()

2017-11-28 Thread Jingoo Han
On Monday, November 27, 2017 11:58 AM, Sinan Kaya wrote:
> 
> pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as
> where a PCI device is present. This restricts the device drivers to be
> reused for other domain numbers.

I think that this will be useful. I introduced multi domains into
ARM-based PCIe driver. (e.g. domain 0, and domain 1) So, APIs to choose
domain will be used later.

> 
> Getting ready to remove pci_get_bus_and_slot() function in favor of
> pci_get_domain_bus_and_slot().
> 
> Hard-coding the domain as 0.
> 
> Acked-by: Daniel Thompson 
> Signed-off-by: Sinan Kaya 

Acked-by: Jingoo Han 

Best regards,
Jingoo Han

> ---
>  drivers/video/backlight/apple_bl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/video/backlight/apple_bl.c
> b/drivers/video/backlight/apple_bl.c
> index d843296..6a34ab9 100644
> --- a/drivers/video/backlight/apple_bl.c
> +++ b/drivers/video/backlight/apple_bl.c
> @@ -143,7 +143,7 @@ static int apple_bl_add(struct acpi_device *dev)
>   struct pci_dev *host;
>   int intensity;
> 
> - host = pci_get_bus_and_slot(0, 0);
> + host = pci_get_domain_bus_and_slot(0, 0, 0);
> 
>   if (!host) {
>   pr_err("unable to find PCI host\n");
> --
> 1.9.1


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


Re: [Intel-gfx] [PATCH] drm/fb_helper: Disable all crtc's when initial setup fails.

2017-11-28 Thread Thomas Voegtle

On Tue, 28 Nov 2017, Daniel Vetter wrote:


On Tue, Nov 28, 2017 at 12:16:03PM +0100, Maarten Lankhorst wrote:

Some drivers like i915 start with crtc's enabled, but with deferred
fbcon setup they were no longer disabled as part of fbdev setup.
Headless units could no longer enter pc3 state because the crtc was
still enabled.

Fix this by calling restore_fbdev_mode when we would have called
it otherwise once during initial fbdev setup.

Signed-off-by: Maarten Lankhorst 
Fixes: ca91a2758fce ("drm/fb-helper: Support deferred setup")


Please use dim fixes to get a more complete Cc: list for regression fixes.


Cc:  # v4.14+
Reported-by: Thomas Voegtle 


Reviewed-by: Daniel Vetter 

But please confirm with the reporter that it indeed fixes the issue before
pushing.
-Daniel


I re-checked the latest version of the patch and it indeed fixes the 
problem.


Thanks,

   Thomas

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


Re: [Intel-gfx] [PATCH] drm/i915/guc: Fix doc reference to intel_guc_fw.c

2017-11-28 Thread Jonathan Neuschäfer
On Tue, Nov 28, 2017 at 09:51:13AM +0100, Michal Wajdeczko wrote:
> On Tue, 28 Nov 2017 07:50:52 +0100, Jonathan Neuschäfer
>  wrote:
> 
> > Sphinx complains that it can't find intel_guc_loader.c, and rightly so:
> > The file has been renamed.
> > 
> > Fixes: e8668bbcb0f9 ("drm/i915/guc: Rename intel_guc_loader.c to
> > intel_guc_fw.c")
> > Cc: Michal Wajdeczko 
> > Signed-off-by: Jonathan Neuschäfer 
> > ---
> >  Documentation/gpu/i915.rst | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
> > index 2e7ee0313c1c..e21698e16534 100644
> > --- a/Documentation/gpu/i915.rst
> > +++ b/Documentation/gpu/i915.rst
> > @@ -341,10 +341,10 @@ GuC
> >  GuC-specific firmware loader
> >  
> > -.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
> > +.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fw.c
> > :doc: GuC-specific firmware loader
> > -.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
> > +.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fw.c
> > :internal:
> > GuC-based command submission
> 
> + Ville
> 
> Well, this will fix sphinx error, but in my opinion it will not make
> i915 documentation any better. See my earlier patch/comments in [1].

Thanks for the pointer.

Hmm, right, given that there's no "DOC:" line in intel_guc_fw.c anymore,
the ":doc:" directive above is not useful.

As a tiny step towards more complete documentation (and to keep people
from patching this spot again ;), IMHO it makes sense to do this (it's
of course up to the maintainers whether they agree):

---
diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
index 2e7ee0313c1c..e94d3ac2bdd0 100644
--- a/Documentation/gpu/i915.rst
+++ b/Documentation/gpu/i915.rst
@@ -341,10 +341,7 @@ GuC
 GuC-specific firmware loader
 
 
-.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
-   :doc: GuC-specific firmware loader
-
-.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
+.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fw.c
:internal:
 
 GuC-based command submission
---

> So maybe better to wait for other comments which way to go.

Makes sense.


Thanks,
Jonathan Neuschäfer

> 
> Thanks for the patch,
> Michal
> 
> [1] https://patchwork.freedesktop.org/patch/188424/


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


Re: [Intel-gfx] [PATCH i-g-t] tests/kms_frontbuffer_tracking: Correctly handle debugfs errors

2017-11-28 Thread Chris Wilson
Quoting Michal Wajdeczko (2017-11-28 17:01:15)
> In commit 3f6ae7b19 ("igt/kms_frontbuffer_tracking: Keep the debugfs
> dir around") we introduced custom variant of __igt_debugfs_read function
> that fires assert when debugfs returns an error. Replace that assert
> with proper error handling to allow use of errors like -ENODEV.

Like ENODEV or just ENODEV?

Oh, it appears I goofed in c5da0662d1c0 and didn't change the open error
from a bool to an int error code. You could also take the opportunity to
then return -errno.

And here we can debate whether you want to use

if (len < 0) {
igt_assert_eq(len, -ENODEV);
len = 0;
}

Other than the topic of whether we want to flag any other error here
(e.g. one could imagine a surprising EPERM, EACCES or ENFILE), looks ok.

> Signed-off-by: Michal Wajdeczko 
> Cc: Chris Wilson 
Reviewed-by: Chris Wilson 
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 1/4] drm/i915: Move execlists setup out of common

2017-11-28 Thread Tvrtko Ursulin


On 28/11/2017 16:04, Chris Wilson wrote:

Quoting Tvrtko Ursulin (2017-11-28 13:07:54)


On 28/11/2017 12:48, Chris Wilson wrote:

Quoting Tvrtko Ursulin (2017-11-28 12:41:27)

From: Tvrtko Ursulin 

Move the execlists specific setup out of intel_engine_setup_common. This
was supposed to be only for backend agnostic bits. At the same time rename
it to intel_engine_setup_execlist to follow the setup vs init naming
convetion we have.

Signed-off-by: Tvrtko Ursulin 
---
+static void
+intel_engine_setup_execlist(struct intel_engine_cs *engine)
+{
+   struct intel_engine_execlists * const execlists = &engine->execlists;
+
+   execlists->csb_use_mmio = csb_force_mmio(engine->i915);
+
+   execlists->port_mask = 1;
+   BUILD_BUG_ON_NOT_POWER_OF_2(execlists_num_ports(execlists));
+   GEM_BUG_ON(execlists_num_ports(execlists) > EXECLIST_MAX_PORTS);
+
+   execlists->queue = RB_ROOT;
+   execlists->first = NULL;
+}


The only problem here was that we wanted to be sure that some fields
were initialised for the common paths, i.e. so we could iterate over the
queue without worrying first if it was execlists (if it wasn't execlists
the queue would be empty).

Now, I think we could just rely on zero initialisation, but that was the
rationale for it ending up early. Now we could split it between
setup_execlists and init_execlists if we want the pedantry.


Common paths as in ringbuffer submission? I grepped around and don't see
it used there.


See the reset code, the debug code, etc; in the common layer, above the
backends, we want to be neutral.


Then about setup vs init, we said init is for hw access so I don't
follow how you would split the above?


init_hw is for initialising hw. Better names for the phases is still
open :)


Okay I found execlists->first usage in intel_engine_dump, so one so far. 
That could be made conditional, or if there are other places abstracted 
out to the backend implementation. It could be that I just did not find 
more due too much context switching?


This way or the other, I did not want to put a code like "if 
(HAS_EXECLISTS(i915)) ..."  in the function called 
intel_engine_init_execlists. That's just wrong.


And I'd say it's equally wrong to call intel_engine_init_execlists from 
_intel_engine_setup_common_, because the spiritual starting point for 
this common setup refactoring was to only put there bits _common_ to 
both backends.


If you want to keep this approach of letting the higher layers just 
assume they can access backend specific parts then simplest would be I 
just drop this patch and put that ugly "if HAS_EXECLISTS" where I don't 
want to put it. Can view it as interim and fixup later?


Regards,

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


[Intel-gfx] ✓ Fi.CI.BAT: success for tests/kms_frontbuffer_tracking: Correctly handle debugfs errors

2017-11-28 Thread Patchwork
== Series Details ==

Series: tests/kms_frontbuffer_tracking: Correctly handle debugfs errors
URL   : https://patchwork.freedesktop.org/series/34555/
State : success

== Summary ==

IGT patchset tested on top of latest successful build
5b3619f3751ecef55fa993984ddb59a458fcebed igt: Remove gem_ctx_basic

with latest DRM-Tip kernel build CI_DRM_3401
73f135dccc60 drm-tip: 2017y-11m-28d-14h-52m-10s UTC integration manifest

No testlist changes.

Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
pass   -> INCOMPLETE (fi-snb-2520m) fdo#103713

fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713

fi-bdw-5557u total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  
time:440s
fi-bdw-gvtdvmtotal:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:450s
fi-blb-e6850 total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  
time:384s
fi-bsw-n3050 total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  
time:516s
fi-bwr-2160  total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 
time:279s
fi-bxt-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:512s
fi-bxt-j4205 total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:505s
fi-byt-j1900 total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  
time:485s
fi-byt-n2820 total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:471s
fi-elk-e7500 total:288  pass:229  dwarn:0   dfail:0   fail:0   skip:59  
time:429s
fi-gdg-551   total:288  pass:178  dwarn:1   dfail:0   fail:1   skip:108 
time:271s
fi-glk-1 total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  
time:540s
fi-hsw-4770  total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:425s
fi-hsw-4770r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:430s
fi-ivb-3520m total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:477s
fi-ivb-3770  total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:454s
fi-kbl-7500u total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  
time:485s
fi-kbl-7560u total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  
time:524s
fi-kbl-7567u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:477s
fi-kbl-r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:531s
fi-pnv-d510  total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  
time:588s
fi-skl-6260u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:458s
fi-skl-6600u total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:541s
fi-skl-6700hqtotal:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:564s
fi-skl-6700k total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:519s
fi-skl-6770hqtotal:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:499s
fi-skl-gvtdvmtotal:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  
time:444s
fi-snb-2520m total:245  pass:211  dwarn:0   dfail:0   fail:0   skip:33 
fi-snb-2600  total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  
time:418s
Blacklisted hosts:
fi-cfl-s2total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:615s
fi-cnl-y total:235  pass:210  dwarn:0   dfail:0   fail:0   skip:24 
fi-glk-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:493s

== Logs ==

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


Re: [Intel-gfx] [PATCH 2/2] lockdep: Up MAX_LOCKDEP_CHAINS

2017-11-28 Thread Chris Wilson
Quoting Daniel Vetter (2017-11-28 17:07:07)
> cross-release ftl

Fwiw, this isn't cross-release but us reloading the module many times,
creating a whole host of new lockclasses. Even more fun is when the
module gets a slightly different address and the new lock address hashes
into an old lock...

I did think about a module-hook to revoke the stale lockclasses, but
that still leaves all the hashed chains.

This particular nuisance was temporarily pushed back by teaching igt not
to reload i915.ko on a whim.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v4] drm/i915: Expose the busyspin durations for i915_wait_request

2017-11-28 Thread Tvrtko Ursulin


On 27/11/2017 10:10, Chris Wilson wrote:

An interesting discussion regarding "hybrid interrupt polling" for NVMe
came to the conclusion that the ideal busyspin before sleeping was half
of the expected request latency (and better if it was already halfway
through that request). This suggested that we too should look again at
our tradeoff between spinning and waiting. Currently, our spin simply
tries to hide the cost of enabling the interrupt, which is good to avoid
penalising nop requests (i.e. test throughput) and not much else.
Studying real world workloads suggests that a spin of upto 500us can
dramatically boost performance, but the suggestion is that this is not
from avoiding interrupt latency per-se, but from secondary effects of
sleeping such as allowing the CPU reduce cstate and context switch away.

In a truly hybrid interrupt polling scheme, we would aim to sleep until
just before the request completed and then wake up in advance of the
interrupt and do a quick poll to handle completion. This is tricky for
ourselves at the moment as we are not recording request times, and since
we allow preemption, our requests are not on as a nicely ordered
timeline as IO. However, the idea is interesting, for it will certainly
help us decide when busyspinning is worthwhile.

v2: Expose the spin setting via Kconfig options for easier adjustment
and testing.
v3: Don't get caught sneaking in a change to the busyspin parameters.
v4: Explain more about the "hybrid interrupt polling" scheme that we
want to migrate towards.

Suggested-by: Sagar Kamble 
References: 
http://events.linuxfoundation.org/sites/events/files/slides/lemoal-nvme-polling-vault-2017-final_0.pdf
Signed-off-by: Chris Wilson 
Cc: Sagar Kamble 
Cc: Eero Tamminen 
Cc: Tvrtko Ursulin 
Cc: Ben Widawsky 
Cc: Joonas Lahtinen 
Cc: Michał Winiarski 
Reviewed-by: Sagar Kamble 
---
  drivers/gpu/drm/i915/Kconfig|  6 +
  drivers/gpu/drm/i915/Kconfig.profile| 26 ++
  drivers/gpu/drm/i915/i915_gem_request.c | 39 +
  3 files changed, 67 insertions(+), 4 deletions(-)
  create mode 100644 drivers/gpu/drm/i915/Kconfig.profile

diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
index dfd95889f4b7..eae90783f8f9 100644
--- a/drivers/gpu/drm/i915/Kconfig
+++ b/drivers/gpu/drm/i915/Kconfig
@@ -131,3 +131,9 @@ depends on DRM_I915
  depends on EXPERT
  source drivers/gpu/drm/i915/Kconfig.debug
  endmenu
+
+menu "drm/i915 Profile Guided Optimisation"
+   visible if EXPERT
+   depends on DRM_I915
+   source drivers/gpu/drm/i915/Kconfig.profile
+endmenu
diff --git a/drivers/gpu/drm/i915/Kconfig.profile 
b/drivers/gpu/drm/i915/Kconfig.profile
new file mode 100644
index ..8a230eeb98df
--- /dev/null
+++ b/drivers/gpu/drm/i915/Kconfig.profile
@@ -0,0 +1,26 @@
+config DRM_I915_SPIN_REQUEST_IRQ
+   int
+   default 5 # microseconds
+   help
+ Before sleeping waiting for a request (GPU operation) to complete,
+ we may spend some time polling for its completion. As the IRQ may
+ take a non-negligible time to setup, we do a short spin first to
+ check if the request will complete in the time it would have taken
+ us to enable the interrupt.
+
+ May be 0 to disable the initial spin. In practice, we estimate
+ the cost of enabling the interrupt (if currently disabled) to be
+ a few microseconds.
+
+config DRM_I915_SPIN_REQUEST_CS
+   int
+   default 2 # microseconds
+   help
+ After sleeping for a request (GPU operation) to complete, we will
+ be woken up on the completion of every request prior to the one
+ being waited on. For very short requests, going back to sleep and
+ be woken up again may add considerably to the wakeup latency. To
+ avoid incurring extra latency from the scheduler, we may choose to
+ spin prior to sleeping again.
+
+ May be 0 to disable spinning after being woken.
diff --git a/drivers/gpu/drm/i915/i915_gem_request.c 
b/drivers/gpu/drm/i915/i915_gem_request.c
index a90bdd26571f..be84ea6a56d7 100644
--- a/drivers/gpu/drm/i915/i915_gem_request.c
+++ b/drivers/gpu/drm/i915/i915_gem_request.c
@@ -1198,8 +1198,32 @@ long i915_wait_request(struct drm_i915_gem_request *req,
GEM_BUG_ON(!intel_wait_has_seqno(&wait));
GEM_BUG_ON(!i915_sw_fence_signaled(&req->submit));
  
-	/* Optimistic short spin before touching IRQs */

-   if (__i915_spin_request(req, wait.seqno, state, 5))
+   /*
+* Optimistic spin before touching IRQs.
+*
+* We may use a rather large value here to offset the penalty of
+* switching away from the active task. Frequently, the client will
+* wait upon an old swapbuffer to throttle itself to remain within a
+* frame of the gpu. If the client is running in lockstep with the gpu,
+* then it should not be waiting long at 

Re: [Intel-gfx] [PATCH v3 2/2] drm/i915: Increase busyspin limit before a context-switch

2017-11-28 Thread Tvrtko Ursulin


On 26/11/2017 12:20, Chris Wilson wrote:

Looking at the distribution of i915_wait_request for a set of GL
benchmarks, we see:

broadwell# python bcc/tools/funclatency.py -u i915_wait_request
usecs   : count distribution
0 -> 1  : 29184||
2 -> 3  : 5767 |*** |
4 -> 7  : 3000 ||
8 -> 15 : 491  ||
   16 -> 31 : 140  ||
   32 -> 63 : 203  ||
   64 -> 127: 543  ||
  128 -> 255: 881  |*   |
  256 -> 511: 1209 |*   |
  512 -> 1023   : 1739 |**  |
 1024 -> 2047   : 22855|*** |
 2048 -> 4095   : 1725 |**  |
 4096 -> 8191   : 5813 |*** |
 8192 -> 16383  : 5348 |*** |
16384 -> 32767  : 1000 |*   |
32768 -> 65535  : 4400 |**  |
65536 -> 131071 : 296  ||
   131072 -> 262143 : 225  ||
   262144 -> 524287 : 4||
   524288 -> 1048575: 1||
  1048576 -> 2097151: 1||
  2097152 -> 4194303: 1||

broxton# python bcc/tools/funclatency.py -u i915_wait_request
usecs   : count distribution
0 -> 1  : 5523 |*   |
2 -> 3  : 1340 |*   |
4 -> 7  : 2100 |**  |
8 -> 15 : 755  |*   |
   16 -> 31 : 211  |*   |
   32 -> 63 : 53   ||
   64 -> 127: 71   ||
  128 -> 255: 113  ||
  256 -> 511: 262  |*   |
  512 -> 1023   : 358  |**  |
 1024 -> 2047   : 1105 |*** |
 2048 -> 4095   : 848  |*   |
 4096 -> 8191   : 1295 ||
 8192 -> 16383  : 5894 ||
16384 -> 32767  : 4270 ||
32768 -> 65535  : 5622 |**  |
65536 -> 131071 : 306  |**  |
   131072 -> 262143 : 50   ||
   262144 -> 524287 : 76   ||
   524288 -> 1048575: 34   ||
  1048576 -> 2097151: 0||
  2097152 -> 4194303: 1||

Picking 20us for the context-switch busyspin has the dual advantage of
catching most frequent short waits while avoiding the cost of a context
switch. 20us is a typical latency of 2 context-switches, i.e. the cost
of taking the sleep, without the secondary effects of cache flushing.


Next thing I wanted to ask is cumulative time spent spinning vs test 
duration, or in other words, CPU usage before and after.


And of course was the benefit on benchmarks results measurable, by how 
much, and what does the perf per Watt say?


Regards,

Tvrtko


Signed-off-by: Chris Wilson 
Cc: Sagar Kamble 
Cc: Eero Tamminen 
Cc: Tvrtko Ursulin 
Cc: Ben Widawsky 
Cc: Joonas Lahtinen 
Cc: Michał Winiarski 
---
  drivers/gpu/drm/i915/Kconfig.profile | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/Kconfig.profile 
b/drivers/gpu/drm/i915/Kconfig.profile
index a1aed0e2aad5..c8fe5754466c 100644
--- a/drivers/gpu/drm/i915/Kconfig.profile
+++ b/drivers/gpu/drm/i915/Kconfig.profile
@@ -11,7 +11,7 @@ config DRM_I915_SPIN_REQUEST_IRQ
  
  config DRM_I915_SPIN_REQUEST_CS

int
-   default 2 # microseconds
+   default 20 # microseconds
help
  After s

Re: [Intel-gfx] [PATCH] drm/i915: Unifying debugfs return codes for unsupported features

2017-11-28 Thread Sujaritha



On 11/28/2017 07:42 AM, Michal Wajdeczko wrote:

Instead of trying different seq_puts messages, lets use common
-ENODEV error code to indicate missing/unsupported feature.


I agree that this is the simplest way to unify the message.

Regards,
Sujaritha

Suggested-by: Chris Wilson 
Signed-off-by: Michal Wajdeczko 
Cc: Chris Wilson 
Cc: Joonas Lahtinen 
Cc: Sagar Arun Kamble 
Cc: Sujaritha Sundaresan 
---
  drivers/gpu/drm/i915/i915_debugfs.c | 47 ++---
  1 file changed, 23 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index 2829447..5023acd 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1635,10 +1635,8 @@ static int i915_fbc_status(struct seq_file *m, void 
*unused)
  {
struct drm_i915_private *dev_priv = node_to_i915(m->private);
  
-	if (!HAS_FBC(dev_priv)) {

-   seq_puts(m, "FBC unsupported on this chipset\n");
-   return 0;
-   }
+   if (!HAS_FBC(dev_priv))
+   return -ENODEV;
  
  	intel_runtime_pm_get(dev_priv);

mutex_lock(&dev_priv->fbc.lock);
@@ -1714,10 +1712,8 @@ static int i915_ips_status(struct seq_file *m, void 
*unused)
  {
struct drm_i915_private *dev_priv = node_to_i915(m->private);
  
-	if (!HAS_IPS(dev_priv)) {

-   seq_puts(m, "not supported\n");
-   return 0;
-   }
+   if (!HAS_IPS(dev_priv))
+   return -ENODEV;
  
  	intel_runtime_pm_get(dev_priv);
  
@@ -1803,10 +1799,8 @@ static int i915_ring_freq_table(struct seq_file *m, void *unused)

int gpu_freq, ia_freq;
unsigned int max_gpu_freq, min_gpu_freq;
  
-	if (!HAS_LLC(dev_priv)) {

-   seq_puts(m, "unsupported on this chipset\n");
-   return 0;
-   }
+   if (!HAS_LLC(dev_priv))
+   return -ENODEV;
  
  	intel_runtime_pm_get(dev_priv);
  
@@ -2287,7 +2281,7 @@ static int i915_huc_load_status_info(struct seq_file *m, void *data)

struct drm_printer p;
  
  	if (!HAS_HUC_UCODE(dev_priv))

-   return 0;
+   return -ENODEV;
  
  	p = drm_seq_file_printer(m);

intel_uc_fw_dump(&dev_priv->huc.fw, &p);
@@ -2305,8 +2299,8 @@ static int i915_guc_load_status_info(struct seq_file *m, 
void *data)
struct drm_printer p;
u32 tmp, i;
  
-	if (!HAS_GUC_UCODE(dev_priv))

-   return 0;
+   if (!HAS_GUC(dev_priv))
+   return -ENODEV;
  
  	p = drm_seq_file_printer(m);

intel_uc_fw_dump(&dev_priv->guc.fw, &p);
@@ -2400,6 +2394,9 @@ static int i915_guc_info(struct seq_file *m, void *data)
struct drm_i915_private *dev_priv = node_to_i915(m->private);
const struct intel_guc *guc = &dev_priv->guc;
  
+	if (!HAS_GUC(dev_priv))

+   return -ENODEV;
+
if (!check_guc_submission(m))
return 0;
  
@@ -2428,6 +2425,9 @@ static int i915_guc_stage_pool(struct seq_file *m, void *data)

unsigned int tmp;
int index;
  
+	if (!HAS_GUC(dev_priv))

+   return -ENODEV;
+
if (!check_guc_submission(m))
return 0;
  
@@ -2482,6 +2482,9 @@ static int i915_guc_log_dump(struct seq_file *m, void *data)

u32 *log;
int i = 0;
  
+	if (!HAS_GUC(dev_priv))

+   return -ENODEV;
+
if (dump_load_err)
obj = dev_priv->guc.load_err_log;
else if (dev_priv->guc.log.vma)
@@ -2576,10 +2579,8 @@ static int i915_edp_psr_status(struct seq_file *m, void 
*data)
enum pipe pipe;
bool enabled = false;
  
-	if (!HAS_PSR(dev_priv)) {

-   seq_puts(m, "PSR not supported\n");
-   return 0;
-   }
+   if (!HAS_PSR(dev_priv))
+   return -ENODEV;
  
  	intel_runtime_pm_get(dev_priv);
  
@@ -2818,10 +2819,8 @@ static int i915_dmc_info(struct seq_file *m, void *unused)

struct drm_i915_private *dev_priv = node_to_i915(m->private);
struct intel_csr *csr;
  
-	if (!HAS_CSR(dev_priv)) {

-   seq_puts(m, "not supported\n");
-   return 0;
-   }
+   if (!HAS_CSR(dev_priv))
+   return -ENODEV;
  
  	csr = &dev_priv->csr;
  
@@ -3357,7 +3356,7 @@ static int i915_ddb_info(struct seq_file *m, void *unused)

int plane;
  
  	if (INTEL_GEN(dev_priv) < 9)

-   return 0;
+   return -ENODEV;
  
  	drm_modeset_lock_all(dev);
  


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


[Intel-gfx] [PATCH 1/2] lockdep: finer-grained completion key for kthread

2017-11-28 Thread Daniel Vetter
Ideally we'd create the key through a macro at the real callers and
pass it all the way down. This would give us better coverage for cases
where a bunch of kthreads are created for the same thing.
But this gets the job done meanwhile and unblocks our CI. Refining
later on is always possible.

v2:
- make it compile
- use the right map (Tvrtko)

Cc: Tvrtko Ursulin 
Cc: Marta Lofstedt 
References: https://bugs.freedesktop.org/show_bug.cgi?id=103950
Signed-off-by: Daniel Vetter 
---
 kernel/kthread.c | 17 +++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/kernel/kthread.c b/kernel/kthread.c
index cd50e99202b0..8df5fedb9529 100644
--- a/kernel/kthread.c
+++ b/kernel/kthread.c
@@ -44,6 +44,10 @@ struct kthread {
unsigned long flags;
unsigned int cpu;
void *data;
+#ifdef CONFIG_LOCKDEP_COMPLETIONS
+   struct lock_class_key parked_key;
+   struct lock_class_key exited_key;
+#endif
struct completion parked;
struct completion exited;
 #ifdef CONFIG_BLK_CGROUP
@@ -221,8 +225,17 @@ static int kthread(void *_create)
}
 
self->data = data;
-   init_completion(&self->exited);
-   init_completion(&self->parked);
+   /* these two completions are shared with all kthread, which is bonghist
+* imo */
+   lockdep_init_map_crosslock(&self->exited.map.map,
+   "(kthread completion)->exited",
+   &self->exited_key, 0);
+   init_completion_map(&self->exited, &self->exited.map.map);
+   lockdep_init_map_crosslock(&self->parked.map.map,
+   "(kthread completion)->parked",
+   &self->parked_key, 0);
+   init_completion_map(&self->parked, &self->exited.map.map);
+
current->vfork_done = &self->exited;
 
/* OK, tell user we're spawned, wait for stop or wakeup */
-- 
2.15.0

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


[Intel-gfx] [PATCH 2/2] lockdep: Up MAX_LOCKDEP_CHAINS

2017-11-28 Thread Daniel Vetter
cross-release ftl

Cc: Tvrtko Ursulin 
Cc: Marta Lofstedt 
References: https://bugs.freedesktop.org/show_bug.cgi?id=103707
Signed-off-by: Daniel Vetter 
---
 kernel/locking/lockdep_internals.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/locking/lockdep_internals.h 
b/kernel/locking/lockdep_internals.h
index d459d624ba2a..41630a5385c6 100644
--- a/kernel/locking/lockdep_internals.h
+++ b/kernel/locking/lockdep_internals.h
@@ -69,7 +69,7 @@ enum {
 #else
 #define MAX_LOCKDEP_ENTRIES32768UL
 
-#define MAX_LOCKDEP_CHAINS_BITS16
+#define MAX_LOCKDEP_CHAINS_BITS17
 
 /*
  * Stack-trace: tightly packed array of stack backtrace
-- 
2.15.0

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


Re: [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/pmu: Return -EINVAL when selecting the inactive CPU

2017-11-28 Thread Tvrtko Ursulin


On 28/11/2017 11:14, Patchwork wrote:

== Series Details ==

Series: drm/i915/pmu: Return -EINVAL when selecting the inactive CPU
URL   : https://patchwork.freedesktop.org/series/34529/
State : success

== Summary ==

Series 34529v1 drm/i915/pmu: Return -EINVAL when selecting the inactive CPU
https://patchwork.freedesktop.org/api/1.0/series/34529/revisions/1/mbox/

Test kms_pipe_crc_basic:
 Subgroup suspend-read-crc-pipe-b:
 incomplete -> PASS   (fi-snb-2520m) fdo#103713

fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713

fi-bdw-5557u total:289  pass:268  dwarn:0   dfail:0   fail:0   skip:21  
time:440s
fi-blb-e6850 total:289  pass:223  dwarn:1   dfail:0   fail:0   skip:65  
time:385s
fi-bsw-n3050 total:289  pass:243  dwarn:0   dfail:0   fail:0   skip:46  
time:531s
fi-bwr-2160  total:289  pass:183  dwarn:0   dfail:0   fail:0   skip:106 
time:279s
fi-bxt-dsi   total:289  pass:259  dwarn:0   dfail:0   fail:0   skip:30  
time:507s
fi-bxt-j4205 total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  
time:505s
fi-byt-j1900 total:289  pass:254  dwarn:0   dfail:0   fail:0   skip:35  
time:491s
fi-byt-n2820 total:289  pass:250  dwarn:0   dfail:0   fail:0   skip:39  
time:482s
fi-elk-e7500 total:289  pass:229  dwarn:0   dfail:0   fail:0   skip:60  
time:425s
fi-gdg-551   total:289  pass:178  dwarn:1   dfail:0   fail:1   skip:109 
time:266s
fi-glk-1 total:289  pass:261  dwarn:0   dfail:0   fail:0   skip:28  
time:541s
fi-hsw-4770  total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:423s
fi-hsw-4770r total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:436s
fi-ivb-3520m total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  
time:491s
fi-ivb-3770  total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  
time:459s
fi-kbl-7500u total:289  pass:264  dwarn:1   dfail:0   fail:0   skip:24  
time:487s
fi-kbl-7560u total:289  pass:270  dwarn:0   dfail:0   fail:0   skip:19  
time:531s
fi-kbl-7567u total:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  
time:478s
fi-kbl-r total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:520s
fi-pnv-d510  total:289  pass:222  dwarn:1   dfail:0   fail:0   skip:66  
time:593s
fi-skl-6260u total:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  
time:453s
fi-skl-6600u total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:545s
fi-skl-6700hqtotal:289  pass:263  dwarn:0   dfail:0   fail:0   skip:26  
time:563s
fi-skl-6700k total:289  pass:265  dwarn:0   dfail:0   fail:0   skip:24  
time:518s
fi-skl-6770hqtotal:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  
time:499s
fi-skl-gvtdvmtotal:289  pass:265  dwarn:1   dfail:0   fail:0   skip:23  
time:494s
fi-snb-2520m total:289  pass:250  dwarn:0   dfail:0   fail:0   skip:39  
time:558s
fi-snb-2600  total:289  pass:249  dwarn:0   dfail:0   fail:0   skip:40  
time:412s
Blacklisted hosts:
fi-cfl-s2total:289  pass:263  dwarn:0   dfail:0   fail:0   skip:26  
time:608s
fi-glk-dsi   total:289  pass:259  dwarn:0   dfail:0   fail:0   skip:30  
time:495s
fi-bdw-gvtdvm failed to collect. IGT log at Patchwork_7320/fi-bdw-gvtdvm/igt.log

9cf8a68eee7db5e7ded75187aac4222c07a808dd drm-tip: 2017y-11m-28d-09h-02m-29s UTC 
integration manifest
92acf3014afa drm/i915/pmu: Return -EINVAL when selecting the inactive CPU


Pushed, thanks for the review!

Regards,

Tvrtko

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


[Intel-gfx] [PATCH i-g-t] tests/kms_frontbuffer_tracking: Correctly handle debugfs errors

2017-11-28 Thread Michal Wajdeczko
In commit 3f6ae7b19 ("igt/kms_frontbuffer_tracking: Keep the debugfs
dir around") we introduced custom variant of __igt_debugfs_read function
that fires assert when debugfs returns an error. Replace that assert
with proper error handling to allow use of errors like -ENODEV.

Signed-off-by: Michal Wajdeczko 
Cc: Chris Wilson 
---
 tests/kms_frontbuffer_tracking.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index a068c8a..50019d1 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -783,7 +783,8 @@ static bool set_mode_for_params(struct modeset_params 
*params)
 static void __debugfs_read(const char *param, char *buf, int len)
 {
len = igt_sysfs_read(drm.debugfs, param, buf, len - 1);
-   igt_assert(len > 0);
+   if (len < 0)
+   len = 0;
buf[len] = '\0';
 }
 
-- 
2.7.4

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


Re: [Intel-gfx] [PATCH v6 5/7] drm/i915: Add "panel orientation" property to the panel connector, v6.

2017-11-28 Thread kbuild test robot
Hi Hans,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.15-rc1 next-20171128]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Hans-de-Goede/drm-fbdev-Panel-orientation-connector-property-support/20171128-225025
config: i386-randconfig-x074-201748 (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
# save the attached .config to linux build tree
make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/intel_dsi.c: In function 
'intel_dsi_get_panel_orientation':
>> drivers/gpu/drm/i915/intel_dsi.c:1672:21: error: storage size of 'plane' 
>> isn't known
 enum i9xx_plane_id plane;
^
   drivers/gpu/drm/i915/intel_dsi.c:1672:21: warning: unused variable 'plane' 
[-Wunused-variable]

vim +1672 drivers/gpu/drm/i915/intel_dsi.c

  1667  
  1668  static int intel_dsi_get_panel_orientation(struct intel_connector 
*connector)
  1669  {
  1670  struct drm_i915_private *dev_priv = 
to_i915(connector->base.dev);
  1671  int orientation = DRM_MODE_PANEL_ORIENTATION_NORMAL;
> 1672  enum i9xx_plane_id plane;
  1673  u32 val;
  1674  
  1675  if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
  1676  if (connector->encoder->crtc_mask == BIT(PIPE_B))
  1677  plane = PLANE_B;
  1678  else
  1679  plane = PLANE_A;
  1680  
  1681  val = I915_READ(DSPCNTR(plane));
  1682  if (val & DISPPLANE_ROTATE_180)
  1683  orientation = 
DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP;
  1684  }
  1685  
  1686  return orientation;
  1687  }
  1688  

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


.config.gz
Description: application/gzip
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915: Unifying debugfs return codes for unsupported features

2017-11-28 Thread Michal Wajdeczko
On Tue, 28 Nov 2017 17:07:27 +0100, Patchwork  
 wrote:



== Series Details ==

Series: drm/i915: Unifying debugfs return codes for unsupported features
URL   : https://patchwork.freedesktop.org/series/34552/
State : failure

== Summary ==

Series 34552v1 drm/i915: Unifying debugfs return codes for unsupported  
features

https://patchwork.freedesktop.org/api/1.0/series/34552/revisions/1/mbox/

Test kms_frontbuffer_tracking:
Subgroup basic:
skip   -> FAIL   (fi-elk-e7500)
pass   -> FAIL   (fi-byt-j1900)
pass   -> FAIL   (fi-byt-n2820)
pass   -> FAIL   (fi-bsw-n3050)



It looks that "igt/kms_frontbuffer_tracking: Keep the debugfs dir around"
introduced igt_assert that fires when we try to return -ENODEV.

I think we can replace it with proper handling (see __igt_debugfs_read)

diff --git a/tests/kms_frontbuffer_tracking.c  
b/tests/kms_frontbuffer_tracking.c

index a068c8a..50019d1 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -783,7 +783,8 @@ static bool set_mode_for_params(struct modeset_params  
*params)

 static void __debugfs_read(const char *param, char *buf, int len)
 {
len = igt_sysfs_read(drm.debugfs, param, buf, len - 1);
-   igt_assert(len > 0);
+   if (len < 0)
+   len = 0;
buf[len] = '\0';
 }
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH V3 09/29] drm/i915: deprecate pci_get_bus_and_slot()

2017-11-28 Thread Sinan Kaya
On 11/28/2017 10:30 AM, Ville Syrjälä wrote:
>> +dev_priv->bridge_dev =
>> +pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(0, 0));
> Maybe just pci_get_slot(pdev->bus, PCI_DEVFN(0, 0)) ?
> 
> I guess if we want to be pedantic we could go for:
> 
> bus = pci_find_host_bridge(pdev->bus)->bus;
> pci_get_slot(bus, PCI_DEVFN(0, 0))
> 
> but I think the GPU should always be on the root bus, so the simpler
> form should be fine.
> 

All three of these should be correct. 

I'll use pci_get_slot(pdev->bus, PCI_DEVFN(0, 0)) as you suggested.

-- 
Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm 
Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux 
Foundation Collaborative Project.
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Fix deadlock in i830_disable_pipe()

2017-11-28 Thread Patchwork
== Series Details ==

Series: drm/i915: Fix deadlock in i830_disable_pipe()
URL   : https://patchwork.freedesktop.org/series/34553/
State : success

== Summary ==

Series 34553v1 drm/i915: Fix deadlock in i830_disable_pipe()
https://patchwork.freedesktop.org/api/1.0/series/34553/revisions/1/mbox/

fi-bdw-5557u total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  
time:440s
fi-bdw-gvtdvmtotal:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:441s
fi-blb-e6850 total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  
time:387s
fi-bsw-n3050 total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  
time:514s
fi-bwr-2160  total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 
time:278s
fi-bxt-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:498s
fi-bxt-j4205 total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:497s
fi-byt-j1900 total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  
time:481s
fi-byt-n2820 total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:464s
fi-elk-e7500 total:288  pass:229  dwarn:0   dfail:0   fail:0   skip:59  
time:429s
fi-gdg-551   total:288  pass:178  dwarn:1   dfail:0   fail:1   skip:108 
time:265s
fi-glk-1 total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  
time:530s
fi-hsw-4770  total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:423s
fi-hsw-4770r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:431s
fi-ivb-3520m total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:484s
fi-ivb-3770  total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:451s
fi-kbl-7500u total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  
time:485s
fi-kbl-7560u total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  
time:525s
fi-kbl-7567u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:472s
fi-kbl-r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:525s
fi-pnv-d510  total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  
time:584s
fi-skl-6260u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:451s
fi-skl-6600u total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:537s
fi-skl-6700hqtotal:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:561s
fi-skl-6700k total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:514s
fi-skl-6770hqtotal:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:504s
fi-skl-gvtdvmtotal:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  
time:449s
fi-snb-2520m total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:550s
fi-snb-2600  total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  
time:414s
Blacklisted hosts:
fi-cfl-s2total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:602s
fi-cnl-y total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:545s
fi-glk-dsi   total:288  pass:164  dwarn:0   dfail:10  fail:2   skip:112 
time:410s

73f135dccc60c8fa6e2a200286b00877209a9c29 drm-tip: 2017y-11m-28d-14h-52m-10s UTC 
integration manifest
0fc6657b6208 drm/i915: Fix deadlock in i830_disable_pipe()

== Logs ==

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


Re: [Intel-gfx] [PATCH] drm/i915: Unifying debugfs return codes for unsupported features

2017-11-28 Thread Sujaritha



On 11/28/2017 07:42 AM, Michal Wajdeczko wrote:

Instead of trying different seq_puts messages, lets use common
-ENODEV error code to indicate missing/unsupported feature.

I agree that this is the simplest way to unify


Suggested-by: Chris Wilson 
Signed-off-by: Michal Wajdeczko 
Cc: Chris Wilson 
Cc: Joonas Lahtinen 
Cc: Sagar Arun Kamble 
Cc: Sujaritha Sundaresan 
---
  drivers/gpu/drm/i915/i915_debugfs.c | 47 ++---
  1 file changed, 23 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index 2829447..5023acd 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1635,10 +1635,8 @@ static int i915_fbc_status(struct seq_file *m, void 
*unused)
  {
struct drm_i915_private *dev_priv = node_to_i915(m->private);
  
-	if (!HAS_FBC(dev_priv)) {

-   seq_puts(m, "FBC unsupported on this chipset\n");
-   return 0;
-   }
+   if (!HAS_FBC(dev_priv))
+   return -ENODEV;
  
  	intel_runtime_pm_get(dev_priv);

mutex_lock(&dev_priv->fbc.lock);
@@ -1714,10 +1712,8 @@ static int i915_ips_status(struct seq_file *m, void 
*unused)
  {
struct drm_i915_private *dev_priv = node_to_i915(m->private);
  
-	if (!HAS_IPS(dev_priv)) {

-   seq_puts(m, "not supported\n");
-   return 0;
-   }
+   if (!HAS_IPS(dev_priv))
+   return -ENODEV;
  
  	intel_runtime_pm_get(dev_priv);
  
@@ -1803,10 +1799,8 @@ static int i915_ring_freq_table(struct seq_file *m, void *unused)

int gpu_freq, ia_freq;
unsigned int max_gpu_freq, min_gpu_freq;
  
-	if (!HAS_LLC(dev_priv)) {

-   seq_puts(m, "unsupported on this chipset\n");
-   return 0;
-   }
+   if (!HAS_LLC(dev_priv))
+   return -ENODEV;
  
  	intel_runtime_pm_get(dev_priv);
  
@@ -2287,7 +2281,7 @@ static int i915_huc_load_status_info(struct seq_file *m, void *data)

struct drm_printer p;
  
  	if (!HAS_HUC_UCODE(dev_priv))

-   return 0;
+   return -ENODEV;
  
  	p = drm_seq_file_printer(m);

intel_uc_fw_dump(&dev_priv->huc.fw, &p);
@@ -2305,8 +2299,8 @@ static int i915_guc_load_status_info(struct seq_file *m, 
void *data)
struct drm_printer p;
u32 tmp, i;
  
-	if (!HAS_GUC_UCODE(dev_priv))

-   return 0;
+   if (!HAS_GUC(dev_priv))
+   return -ENODEV;
  
  	p = drm_seq_file_printer(m);

intel_uc_fw_dump(&dev_priv->guc.fw, &p);
@@ -2400,6 +2394,9 @@ static int i915_guc_info(struct seq_file *m, void *data)
struct drm_i915_private *dev_priv = node_to_i915(m->private);
const struct intel_guc *guc = &dev_priv->guc;
  
+	if (!HAS_GUC(dev_priv))

+   return -ENODEV;
+
if (!check_guc_submission(m))
return 0;
  
@@ -2428,6 +2425,9 @@ static int i915_guc_stage_pool(struct seq_file *m, void *data)

unsigned int tmp;
int index;
  
+	if (!HAS_GUC(dev_priv))

+   return -ENODEV;
+
if (!check_guc_submission(m))
return 0;
  
@@ -2482,6 +2482,9 @@ static int i915_guc_log_dump(struct seq_file *m, void *data)

u32 *log;
int i = 0;
  
+	if (!HAS_GUC(dev_priv))

+   return -ENODEV;
+
if (dump_load_err)
obj = dev_priv->guc.load_err_log;
else if (dev_priv->guc.log.vma)
@@ -2576,10 +2579,8 @@ static int i915_edp_psr_status(struct seq_file *m, void 
*data)
enum pipe pipe;
bool enabled = false;
  
-	if (!HAS_PSR(dev_priv)) {

-   seq_puts(m, "PSR not supported\n");
-   return 0;
-   }
+   if (!HAS_PSR(dev_priv))
+   return -ENODEV;
  
  	intel_runtime_pm_get(dev_priv);
  
@@ -2818,10 +2819,8 @@ static int i915_dmc_info(struct seq_file *m, void *unused)

struct drm_i915_private *dev_priv = node_to_i915(m->private);
struct intel_csr *csr;
  
-	if (!HAS_CSR(dev_priv)) {

-   seq_puts(m, "not supported\n");
-   return 0;
-   }
+   if (!HAS_CSR(dev_priv))
+   return -ENODEV;
  
  	csr = &dev_priv->csr;
  
@@ -3357,7 +3356,7 @@ static int i915_ddb_info(struct seq_file *m, void *unused)

int plane;
  
  	if (INTEL_GEN(dev_priv) < 9)

-   return 0;
+   return -ENODEV;
  
  	drm_modeset_lock_all(dev);
  


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


[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915: Unifying debugfs return codes for unsupported features

2017-11-28 Thread Patchwork
== Series Details ==

Series: drm/i915: Unifying debugfs return codes for unsupported features
URL   : https://patchwork.freedesktop.org/series/34552/
State : failure

== Summary ==

Series 34552v1 drm/i915: Unifying debugfs return codes for unsupported features
https://patchwork.freedesktop.org/api/1.0/series/34552/revisions/1/mbox/

Test kms_frontbuffer_tracking:
Subgroup basic:
skip   -> FAIL   (fi-elk-e7500)
pass   -> FAIL   (fi-byt-j1900)
pass   -> FAIL   (fi-byt-n2820)
pass   -> FAIL   (fi-bsw-n3050)

fi-bdw-5557u total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  
time:445s
fi-bdw-gvtdvmtotal:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:444s
fi-blb-e6850 total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  
time:381s
fi-bsw-n3050 total:288  pass:241  dwarn:0   dfail:0   fail:1   skip:46  
time:509s
fi-bwr-2160  total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 
time:281s
fi-bxt-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:498s
fi-bxt-j4205 total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:503s
fi-byt-j1900 total:288  pass:252  dwarn:0   dfail:0   fail:1   skip:35  
time:475s
fi-byt-n2820 total:288  pass:248  dwarn:0   dfail:0   fail:1   skip:39  
time:466s
fi-elk-e7500 total:288  pass:229  dwarn:0   dfail:0   fail:1   skip:58  
time:425s
fi-gdg-551   total:288  pass:178  dwarn:1   dfail:0   fail:1   skip:108 
time:268s
fi-glk-1 total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  
time:533s
fi-hsw-4770  total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:429s
fi-hsw-4770r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:430s
fi-ivb-3520m total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:480s
fi-ivb-3770  total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:454s
fi-kbl-7500u total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  
time:492s
fi-kbl-7560u total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  
time:523s
fi-kbl-7567u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:474s
fi-kbl-r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:525s
fi-pnv-d510  total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  
time:588s
fi-skl-6260u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:446s
fi-skl-6600u total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:535s
fi-skl-6700hqtotal:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:570s
fi-skl-6700k total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:513s
fi-skl-6770hqtotal:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:499s
fi-skl-gvtdvmtotal:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  
time:445s
fi-snb-2520m total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:552s
fi-snb-2600  total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  
time:410s
Blacklisted hosts:
fi-cfl-s2total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:594s
fi-cnl-y total:231  pass:206  dwarn:0   dfail:0   fail:0   skip:24 
fi-glk-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:480s

73f135dccc60c8fa6e2a200286b00877209a9c29 drm-tip: 2017y-11m-28d-14h-52m-10s UTC 
integration manifest
bbf2f8d039b5 drm/i915: Unifying debugfs return codes for unsupported features

== Logs ==

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


Re: [Intel-gfx] [PATCH 1/4] drm/i915: Move execlists setup out of common

2017-11-28 Thread Chris Wilson
Quoting Tvrtko Ursulin (2017-11-28 13:07:54)
> 
> On 28/11/2017 12:48, Chris Wilson wrote:
> > Quoting Tvrtko Ursulin (2017-11-28 12:41:27)
> >> From: Tvrtko Ursulin 
> >>
> >> Move the execlists specific setup out of intel_engine_setup_common. This
> >> was supposed to be only for backend agnostic bits. At the same time rename
> >> it to intel_engine_setup_execlist to follow the setup vs init naming
> >> convetion we have.
> >>
> >> Signed-off-by: Tvrtko Ursulin 
> >> ---
> >> +static void
> >> +intel_engine_setup_execlist(struct intel_engine_cs *engine)
> >> +{
> >> +   struct intel_engine_execlists * const execlists = 
> >> &engine->execlists;
> >> +
> >> +   execlists->csb_use_mmio = csb_force_mmio(engine->i915);
> >> +
> >> +   execlists->port_mask = 1;
> >> +   BUILD_BUG_ON_NOT_POWER_OF_2(execlists_num_ports(execlists));
> >> +   GEM_BUG_ON(execlists_num_ports(execlists) > EXECLIST_MAX_PORTS);
> >> +
> >> +   execlists->queue = RB_ROOT;
> >> +   execlists->first = NULL;
> >> +}
> > 
> > The only problem here was that we wanted to be sure that some fields
> > were initialised for the common paths, i.e. so we could iterate over the
> > queue without worrying first if it was execlists (if it wasn't execlists
> > the queue would be empty).
> > 
> > Now, I think we could just rely on zero initialisation, but that was the
> > rationale for it ending up early. Now we could split it between
> > setup_execlists and init_execlists if we want the pedantry.
> 
> Common paths as in ringbuffer submission? I grepped around and don't see 
> it used there.

See the reset code, the debug code, etc; in the common layer, above the
backends, we want to be neutral.

> Then about setup vs init, we said init is for hw access so I don't 
> follow how you would split the above?

init_hw is for initialising hw. Better names for the phases is still
open :)
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.BAT: failure for lockdep: finer-grained completion key for kthread

2017-11-28 Thread Patchwork
== Series Details ==

Series: lockdep: finer-grained completion key for kthread
URL   : https://patchwork.freedesktop.org/series/34547/
State : failure

== Summary ==

  CHK include/config/kernel.release
  CHK include/generated/uapi/linux/version.h
  CHK include/generated/utsrelease.h
  CHK include/generated/bounds.h
  CHK include/generated/timeconst.h
  CHK include/generated/asm-offsets.h
  CALLscripts/checksyscalls.sh
  DESCEND  objtool
  CHK scripts/mod/devicetable-offsets.h
  CHK include/generated/compile.h
  CC  kernel/kthread.o
kernel/kthread.c: In function ‘kthread’:
kernel/kthread.c:230:42: error: invalid type argument of ‘->’ (have ‘struct 
completion’)
  lockdep_init_map_crosslock(&self->exited->map,
  ^~
kernel/kthread.c:234:42: error: invalid type argument of ‘->’ (have ‘struct 
completion’)
  lockdep_init_map_crosslock(&self->parked->map,
  ^~
scripts/Makefile.build:310: recipe for target 'kernel/kthread.o' failed
make[1]: *** [kernel/kthread.o] Error 1
Makefile:1012: recipe for target 'kernel' failed
make: *** [kernel] Error 2

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


[Intel-gfx] [PATCH] drm/i915: Fix deadlock in i830_disable_pipe()

2017-11-28 Thread Ville Syrjala
From: Ville Syrjälä 

i830_disable_pipe() gets called from the power well code, and thus
we're already holding the power domain mutex. That means we can't
call plane->get_hw_state() as it will also try to grab the
same mutex and will thus deadlock.

Replace the assert_plane() calls (which calls ->get_hw_state()) with
just raw register reads in i830_disable_pipe(). As a bonus we can
now get a warning if plane C is enabled even though we don't even
expose it as a drm plane.

Fixes: 51f5a0963984 ("drm/i915: Add .get_hw_state() method for planes")
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/intel_display.c | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index d67c7c498b34..48d9332b196f 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -14731,8 +14731,11 @@ void i830_disable_pipe(struct drm_i915_private 
*dev_priv, enum pipe pipe)
DRM_DEBUG_KMS("disabling pipe %c due to force quirk\n",
  pipe_name(pipe));
 
-   assert_planes_disabled(intel_get_crtc_for_pipe(dev_priv, PIPE_A));
-   assert_planes_disabled(intel_get_crtc_for_pipe(dev_priv, PIPE_B));
+   WARN_ON(I915_READ(DSPCNTR(PLANE_A)) & DISPLAY_PLANE_ENABLE ||
+   I915_READ(DSPCNTR(PLANE_B)) & DISPLAY_PLANE_ENABLE ||
+   I915_READ(DSPCNTR(PLANE_C)) & DISPLAY_PLANE_ENABLE ||
+   I915_READ(CURCNTR(PIPE_A)) & CURSOR_MODE ||
+   I915_READ(CURCNTR(PIPE_B)) & CURSOR_MODE);
 
I915_WRITE(PIPECONF(pipe), 0);
POSTING_READ(PIPECONF(pipe));
-- 
2.13.6

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


[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/4] drm/i915: Move execlists setup out of common (rev3)

2017-11-28 Thread Patchwork
== Series Details ==

Series: series starting with [1/4] drm/i915: Move execlists setup out of common 
(rev3)
URL   : https://patchwork.freedesktop.org/series/34541/
State : success

== Summary ==

Blacklisted hosts:
shard-hswtotal:2643 pass:1514 dwarn:6   dfail:2   fail:17  skip:1103 
time:8953s
shard-kbltotal:2350 pass:1568 dwarn:21  dfail:12  fail:12  skip:729 
time:8553s
shard-snbtotal:2530 pass:1229 dwarn:14  dfail:4   fail:18  skip:1262 
time:7625s

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7323/shards.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 drm/i915/glk: Apply WaProgramL3SqcReg1DefaultForPerf for GLK too (rev4)

2017-11-28 Thread Patchwork
== Series Details ==

Series: drm/i915/glk: Apply WaProgramL3SqcReg1DefaultForPerf for GLK too (rev4)
URL   : https://patchwork.freedesktop.org/series/33772/
State : success

== Summary ==

Series 33772v4 drm/i915/glk: Apply WaProgramL3SqcReg1DefaultForPerf for GLK too
https://patchwork.freedesktop.org/api/1.0/series/33772/revisions/4/mbox/

Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
pass   -> INCOMPLETE (fi-snb-2520m) fdo#103713

fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713

fi-bdw-5557u total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  
time:436s
fi-bdw-gvtdvmtotal:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:444s
fi-blb-e6850 total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  
time:385s
fi-bsw-n3050 total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  
time:523s
fi-bwr-2160  total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 
time:279s
fi-bxt-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:500s
fi-bxt-j4205 total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:505s
fi-byt-j1900 total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  
time:480s
fi-byt-n2820 total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:467s
fi-elk-e7500 total:288  pass:229  dwarn:0   dfail:0   fail:0   skip:59  
time:424s
fi-gdg-551   total:288  pass:178  dwarn:1   dfail:0   fail:1   skip:108 
time:268s
fi-glk-1 total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  
time:541s
fi-hsw-4770  total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:421s
fi-hsw-4770r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:430s
fi-ilk-650   total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  
time:379s
fi-ivb-3520m total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:481s
fi-ivb-3770  total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:454s
fi-kbl-7500u total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  
time:481s
fi-kbl-7560u total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  
time:533s
fi-kbl-7567u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:477s
fi-kbl-r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:526s
fi-pnv-d510  total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  
time:584s
fi-skl-6260u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:452s
fi-skl-6600u total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:541s
fi-skl-6700hqtotal:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:563s
fi-skl-6700k total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:517s
fi-skl-6770hqtotal:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:507s
fi-skl-gvtdvmtotal:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  
time:449s
fi-snb-2520m total:245  pass:211  dwarn:0   dfail:0   fail:0   skip:33 
fi-snb-2600  total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  
time:410s
Blacklisted hosts:
fi-cfl-s2total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:602s
fi-cnl-y total:288  pass:260  dwarn:0   dfail:0   fail:1   skip:27  
time:556s
fi-glk-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:484s

73f135dccc60c8fa6e2a200286b00877209a9c29 drm-tip: 2017y-11m-28d-14h-52m-10s UTC 
integration manifest
94e6178bb669 drm/i915/glk: Apply WaProgramL3SqcReg1DefaultForPerf for GLK too

== Logs ==

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


[Intel-gfx] [PATCH] drm/i915: Unifying debugfs return codes for unsupported features

2017-11-28 Thread Michal Wajdeczko
Instead of trying different seq_puts messages, lets use common
-ENODEV error code to indicate missing/unsupported feature.

Suggested-by: Chris Wilson 
Signed-off-by: Michal Wajdeczko 
Cc: Chris Wilson 
Cc: Joonas Lahtinen 
Cc: Sagar Arun Kamble 
Cc: Sujaritha Sundaresan 
---
 drivers/gpu/drm/i915/i915_debugfs.c | 47 ++---
 1 file changed, 23 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index 2829447..5023acd 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1635,10 +1635,8 @@ static int i915_fbc_status(struct seq_file *m, void 
*unused)
 {
struct drm_i915_private *dev_priv = node_to_i915(m->private);
 
-   if (!HAS_FBC(dev_priv)) {
-   seq_puts(m, "FBC unsupported on this chipset\n");
-   return 0;
-   }
+   if (!HAS_FBC(dev_priv))
+   return -ENODEV;
 
intel_runtime_pm_get(dev_priv);
mutex_lock(&dev_priv->fbc.lock);
@@ -1714,10 +1712,8 @@ static int i915_ips_status(struct seq_file *m, void 
*unused)
 {
struct drm_i915_private *dev_priv = node_to_i915(m->private);
 
-   if (!HAS_IPS(dev_priv)) {
-   seq_puts(m, "not supported\n");
-   return 0;
-   }
+   if (!HAS_IPS(dev_priv))
+   return -ENODEV;
 
intel_runtime_pm_get(dev_priv);
 
@@ -1803,10 +1799,8 @@ static int i915_ring_freq_table(struct seq_file *m, void 
*unused)
int gpu_freq, ia_freq;
unsigned int max_gpu_freq, min_gpu_freq;
 
-   if (!HAS_LLC(dev_priv)) {
-   seq_puts(m, "unsupported on this chipset\n");
-   return 0;
-   }
+   if (!HAS_LLC(dev_priv))
+   return -ENODEV;
 
intel_runtime_pm_get(dev_priv);
 
@@ -2287,7 +2281,7 @@ static int i915_huc_load_status_info(struct seq_file *m, 
void *data)
struct drm_printer p;
 
if (!HAS_HUC_UCODE(dev_priv))
-   return 0;
+   return -ENODEV;
 
p = drm_seq_file_printer(m);
intel_uc_fw_dump(&dev_priv->huc.fw, &p);
@@ -2305,8 +2299,8 @@ static int i915_guc_load_status_info(struct seq_file *m, 
void *data)
struct drm_printer p;
u32 tmp, i;
 
-   if (!HAS_GUC_UCODE(dev_priv))
-   return 0;
+   if (!HAS_GUC(dev_priv))
+   return -ENODEV;
 
p = drm_seq_file_printer(m);
intel_uc_fw_dump(&dev_priv->guc.fw, &p);
@@ -2400,6 +2394,9 @@ static int i915_guc_info(struct seq_file *m, void *data)
struct drm_i915_private *dev_priv = node_to_i915(m->private);
const struct intel_guc *guc = &dev_priv->guc;
 
+   if (!HAS_GUC(dev_priv))
+   return -ENODEV;
+
if (!check_guc_submission(m))
return 0;
 
@@ -2428,6 +2425,9 @@ static int i915_guc_stage_pool(struct seq_file *m, void 
*data)
unsigned int tmp;
int index;
 
+   if (!HAS_GUC(dev_priv))
+   return -ENODEV;
+
if (!check_guc_submission(m))
return 0;
 
@@ -2482,6 +2482,9 @@ static int i915_guc_log_dump(struct seq_file *m, void 
*data)
u32 *log;
int i = 0;
 
+   if (!HAS_GUC(dev_priv))
+   return -ENODEV;
+
if (dump_load_err)
obj = dev_priv->guc.load_err_log;
else if (dev_priv->guc.log.vma)
@@ -2576,10 +2579,8 @@ static int i915_edp_psr_status(struct seq_file *m, void 
*data)
enum pipe pipe;
bool enabled = false;
 
-   if (!HAS_PSR(dev_priv)) {
-   seq_puts(m, "PSR not supported\n");
-   return 0;
-   }
+   if (!HAS_PSR(dev_priv))
+   return -ENODEV;
 
intel_runtime_pm_get(dev_priv);
 
@@ -2818,10 +2819,8 @@ static int i915_dmc_info(struct seq_file *m, void 
*unused)
struct drm_i915_private *dev_priv = node_to_i915(m->private);
struct intel_csr *csr;
 
-   if (!HAS_CSR(dev_priv)) {
-   seq_puts(m, "not supported\n");
-   return 0;
-   }
+   if (!HAS_CSR(dev_priv))
+   return -ENODEV;
 
csr = &dev_priv->csr;
 
@@ -3357,7 +3356,7 @@ static int i915_ddb_info(struct seq_file *m, void *unused)
int plane;
 
if (INTEL_GEN(dev_priv) < 9)
-   return 0;
+   return -ENODEV;
 
drm_modeset_lock_all(dev);
 
-- 
2.7.4

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


Re: [Intel-gfx] [PATCH 1/1] drm/i915: Fix for nested_enable_signaling BUG_ON

2017-11-28 Thread John Harrison

On 11/28/2017 1:40 AM, Chris Wilson wrote:

Quoting john.c.harri...@intel.com (2017-11-28 09:10:59)

From: John Harrison 

The call to enable signaling was occuring after the request had been
sent to the GuC for execution on the hardware. That means that it is
possible for the request to actually complete before the code to
enable signaling has executed.

No, it wasn't, unless you had modified the code. Note also we switched
to a different scheme in upstream
-Chris


It was as of:

   commit d99c1a7aff71536e909f54709023dcc5d6b559c0
   Author: Chris Wilson 
   Date:   Thu Mar 16 12:56:18 2017 +

   drm/i915/scheduler: emulate a scheduler for guc


The code introduced was:

   +   ...
   +   if (last && rq->ctx != last->ctx) {
   +   ...
   *+   nested_enable_signaling(last);**
   * +   port++;
   +   }
   +   ...
   *+   i915_guc_submit(rq);**
   *+   last = rq;
   +   submit = true;
   +   }
   +   if (submit) {
   +   i915_gem_request_assign(&port->request, last);
   *+   nested_enable_signaling(last);**
   *+   engine->execlist_first = rb;
   +   }
   +   ...


That quite definitely calls nested_enable_signaling() after calling 
i915_guc_submit(). It is either called on the last request submitted for 
a given context or on the last request submitted overall. But in either 
case it is only called after the actual submission occurs.


Maybe that was not exactly 4.11, there might have been a few more recent 
patches pulled in to this tree. It is definitely not latest upstream 
though. And as I noted in the cover letter, moving to latest upstream is 
not an option for them at this point.


John.

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


Re: [Intel-gfx] [PATCH v6 6/7] efifb: Set info->fbcon_rotate_hint based on drm_get_panel_orientation_quirk

2017-11-28 Thread kbuild test robot
Hi Hans,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.15-rc1 next-20171128]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Hans-de-Goede/drm-fbdev-Panel-orientation-connector-property-support/20171128-225025
config: i386-randconfig-x003-201748 (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
# save the attached .config to linux build tree
make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers/video/fbdev/efifb.c: In function 'efifb_probe':
>> drivers/video/fbdev/efifb.c:340:7: error: 
>> 'DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP' undeclared (first use in this 
>> function); did you mean 'DRM_MODE_PRESENT_BOTTOM_FIELD'?
 case DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP:
  ^~~~
  DRM_MODE_PRESENT_BOTTOM_FIELD
   drivers/video/fbdev/efifb.c:340:7: note: each undeclared identifier is 
reported only once for each function it appears in
>> drivers/video/fbdev/efifb.c:343:7: error: 
>> 'DRM_MODE_PANEL_ORIENTATION_LEFT_UP' undeclared (first use in this 
>> function); did you mean 'DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP'?
 case DRM_MODE_PANEL_ORIENTATION_LEFT_UP:
  ^~
  DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP
>> drivers/video/fbdev/efifb.c:346:7: error: 
>> 'DRM_MODE_PANEL_ORIENTATION_RIGHT_UP' undeclared (first use in this 
>> function); did you mean 'DRM_MODE_PANEL_ORIENTATION_LEFT_UP'?
 case DRM_MODE_PANEL_ORIENTATION_RIGHT_UP:
  ^~~
  DRM_MODE_PANEL_ORIENTATION_LEFT_UP

vim +340 drivers/video/fbdev/efifb.c

   158  
   159  static int efifb_probe(struct platform_device *dev)
   160  {
   161  struct fb_info *info;
   162  int err, orientation;
   163  unsigned int size_vmode;
   164  unsigned int size_remap;
   165  unsigned int size_total;
   166  char *option = NULL;
   167  
   168  if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI || 
pci_dev_disabled)
   169  return -ENODEV;
   170  
   171  if (fb_get_options("efifb", &option))
   172  return -ENODEV;
   173  efifb_setup(option);
   174  
   175  /* We don't get linelength from UGA Draw Protocol, only from
   176   * EFI Graphics Protocol.  So if it's not in DMI, and it's not
   177   * passed in from the user, we really can't use the framebuffer.
   178   */
   179  if (!screen_info.lfb_linelength)
   180  return -ENODEV;
   181  
   182  if (!screen_info.lfb_depth)
   183  screen_info.lfb_depth = 32;
   184  if (!screen_info.pages)
   185  screen_info.pages = 1;
   186  if (!fb_base_is_valid()) {
   187  printk(KERN_DEBUG "efifb: invalid framebuffer 
address\n");
   188  return -ENODEV;
   189  }
   190  printk(KERN_INFO "efifb: probing for efifb\n");
   191  
   192  /* just assume they're all unset if any are */
   193  if (!screen_info.blue_size) {
   194  screen_info.blue_size = 8;
   195  screen_info.blue_pos = 0;
   196  screen_info.green_size = 8;
   197  screen_info.green_pos = 8;
   198  screen_info.red_size = 8;
   199  screen_info.red_pos = 16;
   200  screen_info.rsvd_size = 8;
   201  screen_info.rsvd_pos = 24;
   202  }
   203  
   204  efifb_fix.smem_start = screen_info.lfb_base;
   205  
   206  if (screen_info.capabilities & VIDEO_CAPABILITY_64BIT_BASE) {
   207  u64 ext_lfb_base;
   208  
   209  ext_lfb_base = (u64)(unsigned 
long)screen_info.ext_lfb_base << 32;
   210  efifb_fix.smem_start |= ext_lfb_base;
   211  }
   212  
   213  if (bar_resource &&
   214  bar_resource->start + bar_offset != efifb_fix.smem_start) {
   215  dev_info(&efifb_pci_dev->dev,
   216   "BAR has moved, updating efifb address\n");
   217  efifb_fix.smem_start = bar_resource->start + bar_offset;
   218  }
   219  
   220  efifb_defined.bits_per_pixel = screen_info.lfb_depth;
   221  efifb_defined.xres = screen_info.lfb_width;
   222  efifb_defined.yres = screen_info.lfb_height;
   223  efifb_fix.line_length = screen_info.lfb_linelength;
   224  
   225  

Re: [Intel-gfx] [PATCH V3 09/29] drm/i915: deprecate pci_get_bus_and_slot()

2017-11-28 Thread Ville Syrjälä
On Mon, Nov 27, 2017 at 11:57:46AM -0500, Sinan Kaya wrote:
> pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as
> where a PCI device is present. This restricts the device drivers to be
> reused for other domain numbers.
> 
> Getting ready to remove pci_get_bus_and_slot() function in favor of
> pci_get_domain_bus_and_slot().
> 
> Extract the domain number from drm_device and pass it into
> pci_get_domain_bus_and_slot() function.
> 
> Signed-off-by: Sinan Kaya 
> ---
>  drivers/gpu/drm/i915/i915_drv.c | 5 -
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 9f45cfe..5a8cb79 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -419,7 +419,10 @@ static int i915_getparam(struct drm_device *dev, void 
> *data,
>  
>  static int i915_get_bridge_dev(struct drm_i915_private *dev_priv)
>  {
> - dev_priv->bridge_dev = pci_get_bus_and_slot(0, PCI_DEVFN(0, 0));
> + int domain = pci_domain_nr(dev_priv->drm.pdev->bus);
> +
> + dev_priv->bridge_dev =
> + pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(0, 0));

Maybe just pci_get_slot(pdev->bus, PCI_DEVFN(0, 0)) ?

I guess if we want to be pedantic we could go for:

bus = pci_find_host_bridge(pdev->bus)->bus;
pci_get_slot(bus, PCI_DEVFN(0, 0))

but I think the GPU should always be on the root bus, so the simpler
form should be fine.

>   if (!dev_priv->bridge_dev) {
>   DRM_ERROR("bridge device not found\n");
>   return -1;
> -- 
> 1.9.1
> 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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


Re: [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Enable hotplug polling after registering the outputs (rev2)

2017-11-28 Thread Chris Wilson
Quoting Patchwork (2017-11-28 13:08:29)
> == Series Details ==
> 
> Series: drm/i915: Enable hotplug polling after registering the outputs (rev2)
> URL   : https://patchwork.freedesktop.org/series/34445/
> State : success

Maarten acked v2, so applied. At the worst it's an improvement which
we'll have to improve upon again. For now, it makes CI quieter.
Thanks,
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915/cnl: WA Display #1178 to fix some type C dongles

2017-11-28 Thread Ville Syrjälä
On Mon, Nov 27, 2017 at 03:14:21PM -0800, Lucas De Marchi wrote:
> On Thu, Nov 23, 2017 at 7:21 AM, Ville Syrjälä
>  wrote:
> > On Wed, Nov 22, 2017 at 10:55:14AM -0800, Lucas De Marchi wrote:
> >> WA Display #1178 is meant to fix Aux channel voltage swing too low with
> >> some type C dongles. Although it is for type C, HW engineers reported
> >> that it can be applied to all external ports even if they are not going
> >> to type C.
> >>
> >> For CNL we apply the workaround every time Aux B, C and D are powering
> >> up since they will lose the configuration when powered down.
> >>
> >> Cc: Rodrigo Vivi 
> >> Cc: Arthur J Runyan 
> >> Signed-off-by: Lucas De Marchi 
> >> ---
> >>
> >> Since this is a workaround I think it would be desirable not to be
> >> so intrusive. The simplest thing to do is to add the
> >> IS_CANNONLAKE() and workaround as done here.
> >>
> >> An alternative that may be more elegant (but also more intrusive) is to
> >> declare a new ops for CNL for AUX B/C/D. Let me know what you think.
> >>
> >> For the type-C dongles that I have here it worked both with and without
> >> this patch, so bear in mind I couldn't actually reproduce the problem.
> >>
> >>  drivers/gpu/drm/i915/i915_reg.h | 11 +++
> >>  drivers/gpu/drm/i915/intel_runtime_pm.c |  9 +
> >>  2 files changed, 20 insertions(+)
> >>
> >> diff --git a/drivers/gpu/drm/i915/i915_reg.h 
> >> b/drivers/gpu/drm/i915/i915_reg.h
> >> index 96c80fa0fcac..32064605f82d 100644
> >> --- a/drivers/gpu/drm/i915/i915_reg.h
> >> +++ b/drivers/gpu/drm/i915/i915_reg.h
> >> @@ -8332,6 +8332,17 @@ enum skl_power_gate {
> >>  #define  SKL_PW_TO_PG(pw)((pw) - SKL_DISP_PW_1 + 
> >> SKL_PG1)
> >>  #define  SKL_FUSE_PG_DIST_STATUS(pg) (1 << (27 - (pg)))
> >>
> >> +#define _CNL_AUX_REG_IDX(pw) ((pw - 1) >> 4)
> >> +#define _CNL_AUX_ANAOVRD1_B  0x162250
> >> +#define _CNL_AUX_ANAOVRD1_C  0x162210
> >> +#define _CNL_AUX_ANAOVRD1_D  0x1622D0
> >> +#define CNL_AUX_ANAOVRD1(pw) _MMIO(_PICK(_CNL_AUX_REG_IDX(pw), \
> >> + _CNL_AUX_ANAOVRD1_B, \
> >> + _CNL_AUX_ANAOVRD1_C, \
> >> + _CNL_AUX_ANAOVRD1_D))
> >> +#define   CNL_AUX_ANAOVRD1_ENABLE(1<<16)
> >> +#define   CNL_AUX_ANAOVRD1_LDO_BYPASS(1<<23)
> >
> > I can't actually find these registers in bspec. How do you come up with
> > the names and stuff?
> >
> > Based on the offset they look like PHY registers to me, so probably
> > should be placed somewhere around the existing PHY registers.
> >
> >> +
> >>  /* Per-pipe DDI Function Control */
> >>  #define _TRANS_DDI_FUNC_CTL_A0x60400
> >>  #define _TRANS_DDI_FUNC_CTL_B0x61400
> >> diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c 
> >> b/drivers/gpu/drm/i915/intel_runtime_pm.c
> >> index 8315499452dc..9bf200e4885d 100644
> >> --- a/drivers/gpu/drm/i915/intel_runtime_pm.c
> >> +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
> >> @@ -388,6 +388,15 @@ static void hsw_power_well_enable(struct 
> >> drm_i915_private *dev_priv,
> >>   I915_WRITE(HSW_PWR_WELL_CTL_DRIVER(id), val | 
> >> HSW_PWR_WELL_CTL_REQ(id));
> >>   hsw_wait_for_power_well_enable(dev_priv, power_well);
> >>
> >> + /* WA Display #1178 */
> >
> > Pls stick to a consistent w/a comment style.
> 
> Are you suggesting to change to "/* Display Wa #1178 */"? It seems the
> most common style in the
> codebase, although others are used.
> 
> - "Wa Display #number" is used in my other pending patch that was
> based on first version by Rodrigo and
> has 1 occurence
> - "Display WA #number" has  13 occurrences

I guess we should go for this one then. Also we should add the
:platform tags to these as well.

> - "Display Wa #number" has 1 occurrence
> - "WaName" has several occurrences and is by far the most common,
> although I don't think all Wa have names
> like these

These are generally the ones which have an entry in the w/a db. I think
we should keep using them as well, when they exist.

> 
> Should I send a fix to these as well?

Please do.

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


[Intel-gfx] [PATCH] lockdep: finer-grained completion key for kthread

2017-11-28 Thread Daniel Vetter
Ideally we'd create the key through a macro at the real callers and
pass it all the way down. This would give us better coverage for cases
where a bunch of kthreads are created for the same thing.
But this gets the job done meanwhile and unblocks our CI. Refining
later on is always possible.

Signed-off-by: Daniel Vetter 
---
 kernel/kthread.c | 13 +
 1 file changed, 13 insertions(+)

diff --git a/kernel/kthread.c b/kernel/kthread.c
index cd50e99202b0..ef2956516803 100644
--- a/kernel/kthread.c
+++ b/kernel/kthread.c
@@ -44,6 +44,10 @@ struct kthread {
unsigned long flags;
unsigned int cpu;
void *data;
+#ifdef CONFIG_LOCKDEP_COMPLETIONS
+   struct lock_class_key parked_key;
+   struct lock_class_key exited_key;
+#endif
struct completion parked;
struct completion exited;
 #ifdef CONFIG_BLK_CGROUP
@@ -221,8 +225,17 @@ static int kthread(void *_create)
}
 
self->data = data;
+   /* these two completions are shared with all kthread, which is bonghist
+* imo */
+   lockdep_init_map_crosslock(&self->exited->map,
+   "(kthread completion)->exited",
+   &self->exited_key, 0);
init_completion(&self->exited);
+   lockdep_init_map_crosslock(&self->parked->map,
+   "(kthread completion)->parked",
+   &self->parked_key, 0);
init_completion(&self->parked);
+
current->vfork_done = &self->exited;
 
/* OK, tell user we're spawned, wait for stop or wakeup */
-- 
2.15.0

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


Re: [Intel-gfx] [GIT PULL] gvt fixes for 4.15-rc2

2017-11-28 Thread Joonas Lahtinen
Hi,

Pulled these in. There was a pretty big conflict to drm-tip which I
solved. Please give it some additional testing as I only compile
tested.

Regards, Joonas

On Tue, 2017-11-28 at 17:31 +0800, Zhenyu Wang wrote:
> Hi,
> 
> Pls pull gvt fixes for 4.15-rc2, which contains one backport
> from f2880e04f3a5 ("drm/i915/gvt: Move request alloc to dispatch_workload 
> path only"),
> and more new fixes.
> 
> thanks
> --
> The following changes since commit ac29fc66855b79c2960c63a4a66952d5b721d698:
> 
>   drm/i915: fix intel_backlight_device_register declaration (2017-11-28 
> 10:31:59 +0200)
> 
> are available in the Git repository at:
> 
>   https://github.com/intel/gvt-linux.git tags/gvt-fixes-2017-11-28
> 
> for you to fetch changes up to b721b65af4eb46df6a1d9e34b14003225e403565:
> 
>   drm/i915/gvt: Correct ADDR_4K/2M/1G_MASK definition (2017-11-28 17:24:30 
> +0800)
> 
> 
> gvt-fixes-2017-11-28
> 
> - regression fix for sane request alloc (Fred)
> - locking fix (Changbin)
> - fix invalid addr mask (Xiong)
> - compression regression fix (Weinan)
> - fix default pipe enable for virtual display (Xiaolin)
> 
> 
> Changbin Du (1):
>   drm/i915/gvt: Fix unsafe locking caused by spin_unlock_bh
> 
> Weinan Li (1):
>   drm/i915/gvt: remove skl_misc_ctl_write handler
> 
> Xiaolin Zhang (1):
>   drm/i915/gvt: enabled pipe A default on creating vgpu
> 
> Xiong Zhang (1):
>   drm/i915/gvt: Correct ADDR_4K/2M/1G_MASK definition
> 
> fred gao (1):
>   drm/i915/gvt: Move request alloc to dispatch_workload path only
> 
>  drivers/gpu/drm/i915/gvt/display.c   |  2 ++
>  drivers/gpu/drm/i915/gvt/execlist.c  |  6 +
>  drivers/gpu/drm/i915/gvt/gtt.c   |  6 ++---
>  drivers/gpu/drm/i915/gvt/handlers.c  | 45 
> 
>  drivers/gpu/drm/i915/gvt/scheduler.c | 33 +++---
>  drivers/gpu/drm/i915/gvt/scheduler.h |  3 +++
>  6 files changed, 44 insertions(+), 51 deletions(-)
> 
> 
-- 
Joonas Lahtinen
Open Source Technology Center
Intel Corporation
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v4] drm/i915/glk: Apply WaProgramL3SqcReg1DefaultForPerf for GLK too

2017-11-28 Thread Valtteri Rantala
Testing the texture read performance shows that the same tuning for
the SQ credits is needed on GLK as on BXT/APL. This has been also
confirmed by Altug from the HW team.

V4: Rebase + fix
Signed-off-by: Valtteri Rantala 
---
 drivers/gpu/drm/i915/intel_engine_cs.c | 16 +---
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c 
b/drivers/gpu/drm/i915/intel_engine_cs.c
index fede62d..0b04ca7 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -1067,6 +1067,15 @@ static int gen9_init_workarounds(struct intel_engine_cs 
*engine)
/* WaDisableSTUnitPowerOptimization:skl,bxt,kbl,glk,cfl */
WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN2, GEN8_ST_PO_DISABLE);
 
+   /* WaProgramL3SqcReg1DefaultForPerf:bxt,glk */
+   if (IS_GEN9_LP(dev_priv)) {
+   u32 val = I915_READ(GEN8_L3SQCREG1);
+
+   val &= ~L3_PRIO_CREDITS_MASK;
+   val |= L3_GENERAL_PRIO_CREDITS(62) | L3_HIGH_PRIO_CREDITS(2);
+   I915_WRITE(GEN8_L3SQCREG1, val);
+   }
+
/* WaOCLCoherentLineFlush:skl,bxt,kbl,cfl */
I915_WRITE(GEN8_L3SQCREG4, (I915_READ(GEN8_L3SQCREG4) |
GEN8_LQSC_FLUSH_COHERENT_LINES));
@@ -1184,7 +1193,6 @@ static int skl_init_workarounds(struct intel_engine_cs 
*engine)
 static int bxt_init_workarounds(struct intel_engine_cs *engine)
 {
struct drm_i915_private *dev_priv = engine->i915;
-   u32 val;
int ret;
 
ret = gen9_init_workarounds(engine);
@@ -1199,12 +1207,6 @@ static int bxt_init_workarounds(struct intel_engine_cs 
*engine)
I915_WRITE(FF_SLICE_CS_CHICKEN2,
   
_MASKED_BIT_ENABLE(GEN9_POOLED_EU_LOAD_BALANCING_FIX_DISABLE));
 
-   /* WaProgramL3SqcReg1DefaultForPerf:bxt */
-   val = I915_READ(GEN8_L3SQCREG1);
-   val &= ~L3_PRIO_CREDITS_MASK;
-   val |= L3_GENERAL_PRIO_CREDITS(62) | L3_HIGH_PRIO_CREDITS(2);
-   I915_WRITE(GEN8_L3SQCREG1, val);
-
/* WaToEnableHwFixForPushConstHWBug:bxt */
WA_SET_BIT_MASKED(COMMON_SLICE_CHICKEN2,
  GEN8_SBE_DISABLE_REPLAY_BUF_OPTIMIZATION);
-- 
2.7.4

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


Re: [Intel-gfx] [PATCH] drm: Fix modifiers_property kernel-doc comment

2017-11-28 Thread Hans de Goede

Hi,

On 28-11-17 11:28, Daniel Vetter wrote:

On Sat, Nov 25, 2017 at 08:27:31PM +0100, Hans de Goede wrote:

This fixes the following make kerneldocs messages:

./include/drm/drm_mode_config.h:772: warning: No description found for 
parameter 'modifiers_property'
./include/drm/drm_mode_config.h:772: warning: Excess struct member 'modifiers' 
description in 'drm_mode_config'

Signed-off-by: Hans de Goede 


Reviewed-by: Daniel Vetter 

Pls push to drm-misc-next, thanks.


Ville Syrjälä has already fixed this, but I missed that because the
fix was not yet in dinq when I prepared my panel-orientation patch
series.

Regards,

Hans




-Daniel


---
  include/drm/drm_mode_config.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
index 3716e6b8fed5..cb9ffbda36cc 100644
--- a/include/drm/drm_mode_config.h
+++ b/include/drm/drm_mode_config.h
@@ -759,7 +759,7 @@ struct drm_mode_config {
bool allow_fb_modifiers;
  
  	/**

-* @modifiers: Plane property to list support modifier/format
+* @modifiers_property: Plane property to list support modifier/format
 * combination.
 */
struct drm_property *modifiers_property;
--
2.14.3

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



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


[Intel-gfx] ✓ Fi.CI.IGT: success for tests/perf_pmu: Sync invalid-init with i915 changes

2017-11-28 Thread Patchwork
== Series Details ==

Series: tests/perf_pmu: Sync invalid-init with i915 changes
URL   : https://patchwork.freedesktop.org/series/34530/
State : success

== Summary ==

Blacklisted hosts:
shard-apltotal:2348 pass:1453 dwarn:20  dfail:18  fail:10  skip:838 
time:10677s
shard-hswtotal:2662 pass:1526 dwarn:9   dfail:0   fail:11  skip:1116 
time:9280s
shard-snbtotal:2462 pass:1185 dwarn:15  dfail:6   fail:6   skip:1246 
time:7709s

== Logs ==

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


Re: [Intel-gfx] [PATCH V3 03/29] x86/PCI: deprecate pci_get_bus_and_slot()

2017-11-28 Thread Thomas Gleixner

On Mon, 27 Nov 2017, Sinan Kaya wrote:

> pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as
> where a PCI device is present. This restricts the device drivers to be
> reused for other domain numbers.
> 
> Getting ready to remove pci_get_bus_and_slot() function in favor of
> pci_get_domain_bus_and_slot().
> 
> Use domain number of 0 as the domain number is not available in struct
> irq_routing_table.
> 
> Signed-off-by: Sinan Kaya 

Acked-by: Thomas Gleixner 

> ---
>  arch/x86/pci/irq.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c
> index 04526291..52e5510 100644
> --- a/arch/x86/pci/irq.c
> +++ b/arch/x86/pci/irq.c
> @@ -839,7 +839,8 @@ static void __init pirq_find_router(struct irq_router *r)
>   DBG(KERN_DEBUG "PCI: Attempting to find IRQ router for [%04x:%04x]\n",
>   rt->rtr_vendor, rt->rtr_device);
>  
> - pirq_router_dev = pci_get_bus_and_slot(rt->rtr_bus, rt->rtr_devfn);
> + pirq_router_dev = pci_get_domain_bus_and_slot(0, rt->rtr_bus,
> +   rt->rtr_devfn);
>   if (!pirq_router_dev) {
>   DBG(KERN_DEBUG "PCI: Interrupt router not found at "
>   "%02x:%02x\n", rt->rtr_bus, rt->rtr_devfn);
> -- 
> 1.9.1
> 
> 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v6 0/7] drm/fbdev: Panel orientation connector property support

2017-11-28 Thread Hans de Goede

Hi,

On 28-11-17 11:27, Daniel Vetter wrote:

On Sat, Nov 25, 2017 at 06:33:34PM +0100, Hans de Goede wrote:

Hi All,

Here is v6 of my series to add a "panel orientation" property to
the drm-connector for the LCD panel to let userspace know about LCD
panels which are not mounted upright, as well as detecting upside-down
panels without needing quirks (like we do for 90 degree rotated screens).

Bartlomiej, can we please have your Acked-by for merging patches 1,
6 and 7 through the drm tree?

New in v6:
-Fix / reference kernel-doc comments
-Don't export the DRM_MODE_PANEL_ORIENTATION_* defines in the UAPI
-Move i915 dsi hardware rotation state read-out to intel_dsi_init()

New in v5:
-Add kernel-doc comment documenting drm_get_panel_orientation_quirk()
-drm_fb_helper: Only use hardware (crtc primary plane) rotation for
  180 degrees for now as 9-/270 degrees rotation requires special handling

New in v4:
-Fix drm_fb_helper code setting an invalid rotation value on the primary
  plane of disabled/unused crtcs (caught by Fi.CI)

New in v3:
-As requested by Daniel v3 moves the quirks over from the fbdev
  subsys to the drm subsys. I've done this by simpy starting with a copy of
  the quirk table and eventually removing the fbdev version.

The 1st patch in this series is a small fbdev/fbcon patch, patches 2-5
are all drm patches and patches 6-7 are fbdev/fbcon patches again. As
discussed previously the plan is to merge all 7 patches through the
drm tree.


I think from the drm and i915 side of things this all looks ready (well
pls double-check that CI also approves before merging).


The CI says state is warning, see:
https://patchwork.freedesktop.org/series/32447/
and specifically:
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7290/shards.html

Which I find hard to read as I see no tests going to orange, only
3 tests moving to red, which AFAICT is failed. Clicking on the tests
link to get history all 3 tests seem to fail in the same way quite
often (2 out of 3) or somewhat often (the last one). Also the failures
seem unrelated to my changes

So how do I deal with this, resend v7 to get CI to run again and hope
I get a success result for all tests this time ?


Just needs an ack/review from Bart, and then it's probably simplest if you
merge it all through drm-misc - the i915 side is tiny.


Ok, I will wait for an Ack from Bart and then merge this through drm-misc,
thank you for the review.

Regards,

Hans

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


Re: [Intel-gfx] [PATCH v2] drm/i915: Enable hotplug polling after registering the outputs

2017-11-28 Thread Chris Wilson
Quoting Chris Wilson (2017-11-28 13:02:09)
> Quoting Chris Wilson (2017-11-28 11:01:47)
> > @@ -1266,6 +1271,13 @@ static void i915_driver_unregister(struct 
> > drm_i915_private *dev_priv)
> > intel_fbdev_unregister(dev_priv);
> > intel_audio_deinit(dev_priv);
> >  
> > +   /*
> > +* After flushing the fbdev (incl. a late async config which will
> > +* have delayed queuing of a hotplug event), then flush the hotplug
> > +* events.
> > +*/
> > +   drm_kms_helper_poll_fini(&dev_priv->drm);
> 
> As discussed on irc, I'm unsure as to whether it should be fbdev
> followed by kms_helper, or the other way around. In general, I think we
> lack some serialisation to control the async hotplug event generation
> here... But I think this is sufficiently to make CI happy for the
> time being, we will see.

Fwiw, this did clear all the WARN_ON(!intel_irq_enabled()) for one CI
run. It may not be perfect, it may be "good enough".
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/4] drm/i915: Move execlists setup out of common (rev3)

2017-11-28 Thread Patchwork
== Series Details ==

Series: series starting with [1/4] drm/i915: Move execlists setup out of common 
(rev3)
URL   : https://patchwork.freedesktop.org/series/34541/
State : success

== Summary ==

Series 34541v3 series starting with [1/4] drm/i915: Move execlists setup out of 
common
https://patchwork.freedesktop.org/api/1.0/series/34541/revisions/3/mbox/

Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
incomplete -> PASS   (fi-snb-2520m) fdo#103713

fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713

fi-bdw-5557u total:289  pass:268  dwarn:0   dfail:0   fail:0   skip:21  
time:448s
fi-bdw-gvtdvmtotal:289  pass:264  dwarn:1   dfail:0   fail:0   skip:24  
time:500s
fi-blb-e6850 total:289  pass:223  dwarn:1   dfail:0   fail:0   skip:65  
time:387s
fi-bsw-n3050 total:289  pass:243  dwarn:0   dfail:0   fail:0   skip:46  
time:546s
fi-bwr-2160  total:289  pass:183  dwarn:0   dfail:0   fail:0   skip:106 
time:281s
fi-bxt-dsi   total:289  pass:259  dwarn:0   dfail:0   fail:0   skip:30  
time:513s
fi-bxt-j4205 total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  
time:512s
fi-byt-j1900 total:289  pass:254  dwarn:0   dfail:0   fail:0   skip:35  
time:497s
fi-byt-n2820 total:289  pass:250  dwarn:0   dfail:0   fail:0   skip:39  
time:486s
fi-elk-e7500 total:289  pass:229  dwarn:0   dfail:0   fail:0   skip:60  
time:427s
fi-gdg-551   total:289  pass:178  dwarn:1   dfail:0   fail:1   skip:109 
time:269s
fi-glk-1 total:289  pass:261  dwarn:0   dfail:0   fail:0   skip:28  
time:543s
fi-hsw-4770  total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:425s
fi-hsw-4770r total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:435s
fi-ivb-3520m total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  
time:478s
fi-ivb-3770  total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  
time:458s
fi-kbl-7500u total:289  pass:264  dwarn:1   dfail:0   fail:0   skip:24  
time:490s
fi-kbl-7560u total:289  pass:270  dwarn:0   dfail:0   fail:0   skip:19  
time:534s
fi-kbl-7567u total:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  
time:482s
fi-kbl-r total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:534s
fi-skl-6260u total:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  
time:458s
fi-skl-6600u total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:543s
fi-skl-6700hqtotal:289  pass:263  dwarn:0   dfail:0   fail:0   skip:26  
time:572s
fi-skl-6700k total:289  pass:265  dwarn:0   dfail:0   fail:0   skip:24  
time:517s
fi-skl-6770hqtotal:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  
time:515s
fi-skl-gvtdvmtotal:289  pass:265  dwarn:1   dfail:0   fail:0   skip:23  
time:498s
fi-snb-2520m total:289  pass:250  dwarn:0   dfail:0   fail:0   skip:39  
time:562s
fi-snb-2600  total:289  pass:249  dwarn:0   dfail:0   fail:0   skip:40  
time:423s
Blacklisted hosts:
fi-cfl-s2total:289  pass:263  dwarn:0   dfail:0   fail:0   skip:26  
time:602s
fi-glk-dsi   total:289  pass:259  dwarn:0   dfail:0   fail:0   skip:30  
time:496s

9cf8a68eee7db5e7ded75187aac4222c07a808dd drm-tip: 2017y-11m-28d-09h-02m-29s UTC 
integration manifest
cdb78f3945a3 drm/i915: Add GuC support for engine busy stats
6038dd010082 drm/i915: Consolidate checks for engine stats availability
430b227e71f8 drm/i915: Move engine->needs_cmd_parser to engine->flags
d6e3dc5eec5c drm/i915: Move execlists setup out of common

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7323/
___
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/fb_helper: Disable all crtc's when initial setup fails.

2017-11-28 Thread Patchwork
== Series Details ==

Series: drm/fb_helper: Disable all crtc's when initial setup fails.
URL   : https://patchwork.freedesktop.org/series/34532/
State : success

== Summary ==

Blacklisted hosts:
shard-hswtotal:2662 pass:1528 dwarn:8   dfail:2   fail:8   skip:1116 
time:9259s
shard-kbltotal:2350 pass:1569 dwarn:21  dfail:12  fail:13  skip:727 
time:8561s
shard-snbtotal:2452 pass:1190 dwarn:11  dfail:5   fail:7   skip:1234 
time:6458s

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7322/shards.html
___
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: Enable hotplug polling after registering the outputs (rev2)

2017-11-28 Thread Patchwork
== Series Details ==

Series: drm/i915: Enable hotplug polling after registering the outputs (rev2)
URL   : https://patchwork.freedesktop.org/series/34445/
State : success

== Summary ==

Blacklisted hosts:
shard-apltotal:2509 pass:1582 dwarn:15  dfail:11  fail:13  skip:883 
time:11204s
shard-hswtotal:2643 pass:1521 dwarn:8   dfail:2   fail:8   skip:1103 
time:8969s
shard-snbtotal:2488 pass:1213 dwarn:14  dfail:5   fail:8   skip:1244 
time:7395s

== Logs ==

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


Re: [Intel-gfx] [PATCH 1/4] drm/i915: Move execlists setup out of common

2017-11-28 Thread Tvrtko Ursulin


On 28/11/2017 12:48, Chris Wilson wrote:

Quoting Tvrtko Ursulin (2017-11-28 12:41:27)

From: Tvrtko Ursulin 

Move the execlists specific setup out of intel_engine_setup_common. This
was supposed to be only for backend agnostic bits. At the same time rename
it to intel_engine_setup_execlist to follow the setup vs init naming
convetion we have.

Signed-off-by: Tvrtko Ursulin 
---
+static void
+intel_engine_setup_execlist(struct intel_engine_cs *engine)
+{
+   struct intel_engine_execlists * const execlists = &engine->execlists;
+
+   execlists->csb_use_mmio = csb_force_mmio(engine->i915);
+
+   execlists->port_mask = 1;
+   BUILD_BUG_ON_NOT_POWER_OF_2(execlists_num_ports(execlists));
+   GEM_BUG_ON(execlists_num_ports(execlists) > EXECLIST_MAX_PORTS);
+
+   execlists->queue = RB_ROOT;
+   execlists->first = NULL;
+}


The only problem here was that we wanted to be sure that some fields
were initialised for the common paths, i.e. so we could iterate over the
queue without worrying first if it was execlists (if it wasn't execlists
the queue would be empty).

Now, I think we could just rely on zero initialisation, but that was the
rationale for it ending up early. Now we could split it between
setup_execlists and init_execlists if we want the pedantry.


Common paths as in ringbuffer submission? I grepped around and don't see 
it used there.


Then about setup vs init, we said init is for hw access so I don't 
follow how you would split the above?


Regards,

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


[Intel-gfx] [PATCH v2 4/4] drm/i915: Add GuC support for engine busy stats

2017-11-28 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

Wire up the engine busy stats accounting to the GuC submission backend.

Since there is not context out interrupt we need to place the accounting
callbacks per-request.

v2: Rebase.

Signed-off-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/intel_guc_submission.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c 
b/drivers/gpu/drm/i915/intel_guc_submission.c
index 912ff143d531..d80d2a3214da 100644
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
@@ -781,6 +781,7 @@ static void guc_dequeue(struct intel_engine_cs *engine)
INIT_LIST_HEAD(&rq->priotree.link);
 
__i915_gem_request_submit(rq);
+   intel_engine_context_in(rq->engine);
trace_i915_gem_request_in(rq,
  port_index(port, execlists));
last = rq;
@@ -813,6 +814,7 @@ static void guc_submission_tasklet(unsigned long data)
 
rq = port_request(&port[0]);
while (rq && i915_gem_request_completed(rq)) {
+   intel_engine_context_out(rq->engine);
trace_i915_gem_request_out(rq);
i915_gem_request_put(rq);
 
@@ -1453,8 +1455,6 @@ int intel_guc_submission_enable(struct intel_guc *guc)
execlists->tasklet.func = guc_submission_tasklet;
engine->park = guc_submission_park;
engine->unpark = guc_submission_unpark;
-
-   engine->flags &= ~I915_ENGINE_SUPPORTS_STATS;
}
 
return 0;
-- 
2.14.1

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


[Intel-gfx] [PATCH v4 3/4] drm/i915: Consolidate checks for engine stats availability

2017-11-28 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

Sagar noticed the check can be consolidated between the engine stats
implementation and the PMU.

My first choice was a static inline helper but that got into include
ordering mess quickly fast so I went with a macro instead. At some point
we should perhaps looking into taking out the non-ringubffer bits from
intel_ringbuffer.h into a new intel_engine.h or something.

v2: Use engine->flags. (Chris Wilson)
v3: Rebase and mark GuC as not yet supported. (Chris Wilson)
v4: Move flag setting to intel_engines_reset_default_submission.
(Chris Wilson)

Signed-off-by: Tvrtko Ursulin 
Suggested-by: Sagar Arun Kamble 
Cc: Sagar Arun Kamble 
Reviewed-by: Chris Wilson  (v2)
---
 drivers/gpu/drm/i915/i915_pmu.c | 11 ---
 drivers/gpu/drm/i915/intel_engine_cs.c  |  8 +---
 drivers/gpu/drm/i915/intel_guc_submission.c |  2 ++
 drivers/gpu/drm/i915/intel_lrc.c|  2 ++
 drivers/gpu/drm/i915/intel_ringbuffer.h |  6 ++
 5 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_pmu.c b/drivers/gpu/drm/i915/i915_pmu.c
index 3357b690ce90..c3c641ec962b 100644
--- a/drivers/gpu/drm/i915/i915_pmu.c
+++ b/drivers/gpu/drm/i915/i915_pmu.c
@@ -90,11 +90,6 @@ static unsigned int event_enabled_bit(struct perf_event 
*event)
return config_enabled_bit(event->attr.config);
 }
 
-static bool supports_busy_stats(struct drm_i915_private *i915)
-{
-   return INTEL_GEN(i915) >= 8;
-}
-
 static bool pmu_needs_timer(struct drm_i915_private *i915, bool gpu_active)
 {
u64 enable;
@@ -123,8 +118,10 @@ static bool pmu_needs_timer(struct drm_i915_private *i915, 
bool gpu_active)
/*
 * Also there is software busyness tracking available we do not
 * need the timer for I915_SAMPLE_BUSY counter.
+*
+* Use RCS as proxy for all engines.
 */
-   else if (supports_busy_stats(i915))
+   else if (intel_engine_supports_stats(i915->engine[RCS]))
enable &= ~BIT(I915_SAMPLE_BUSY);
 
/*
@@ -447,7 +444,7 @@ static void i915_pmu_event_read(struct perf_event *event)
 
 static bool engine_needs_busy_stats(struct intel_engine_cs *engine)
 {
-   return supports_busy_stats(engine->i915) &&
+   return intel_engine_supports_stats(engine) &&
   (engine->pmu.enable & BIT(I915_SAMPLE_BUSY));
 }
 
diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c 
b/drivers/gpu/drm/i915/intel_engine_cs.c
index d27e124d826a..a35f8d3a55fd 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -1527,8 +1527,10 @@ void intel_engines_reset_default_submission(struct 
drm_i915_private *i915)
struct intel_engine_cs *engine;
enum intel_engine_id id;
 
-   for_each_engine(engine, i915, id)
+   for_each_engine(engine, i915, id) {
engine->set_default_submission(engine);
+   engine->flags |= I915_ENGINE_SUPPORTS_STATS;
+   }
 }
 
 /**
@@ -1829,7 +1831,7 @@ int intel_enable_engine_stats(struct intel_engine_cs 
*engine)
 {
unsigned long flags;
 
-   if (INTEL_GEN(engine->i915) < 8)
+   if (!intel_engine_supports_stats(engine))
return -ENODEV;
 
spin_lock_irqsave(&engine->stats.lock, flags);
@@ -1890,7 +1892,7 @@ void intel_disable_engine_stats(struct intel_engine_cs 
*engine)
 {
unsigned long flags;
 
-   if (INTEL_GEN(engine->i915) < 8)
+   if (!intel_engine_supports_stats(engine))
return;
 
spin_lock_irqsave(&engine->stats.lock, flags);
diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c 
b/drivers/gpu/drm/i915/intel_guc_submission.c
index cf1cc2cb6722..912ff143d531 100644
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
@@ -1453,6 +1453,8 @@ int intel_guc_submission_enable(struct intel_guc *guc)
execlists->tasklet.func = guc_submission_tasklet;
engine->park = guc_submission_park;
engine->unpark = guc_submission_unpark;
+
+   engine->flags &= ~I915_ENGINE_SUPPORTS_STATS;
}
 
return 0;
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 479f880c0f2f..b811f7cddd7e 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -1983,6 +1983,8 @@ intel_engine_setup_execlist(struct intel_engine_cs 
*engine)
 
execlists->queue = RB_ROOT;
execlists->first = NULL;
+
+   engine->flags |= I915_ENGINE_SUPPORTS_STATS;
 }
 
 static void
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h 
b/drivers/gpu/drm/i915/intel_ringbuffer.h
index a91ce63b88b6..c68ab3ead83c 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@ -540,6 +540,7 @@ struct intel_engine_cs {
struct intel_engine_hangcheck hangcheck;
 
 #define I915_ENGINE_NEEDS_CMD_PARSER BIT(0)
+#define I915_E

Re: [Intel-gfx] [PATCH v2] drm/i915: Enable hotplug polling after registering the outputs

2017-11-28 Thread Chris Wilson
Quoting Chris Wilson (2017-11-28 11:01:47)
> @@ -1266,6 +1271,13 @@ static void i915_driver_unregister(struct 
> drm_i915_private *dev_priv)
> intel_fbdev_unregister(dev_priv);
> intel_audio_deinit(dev_priv);
>  
> +   /*
> +* After flushing the fbdev (incl. a late async config which will
> +* have delayed queuing of a hotplug event), then flush the hotplug
> +* events.
> +*/
> +   drm_kms_helper_poll_fini(&dev_priv->drm);

As discussed on irc, I'm unsure as to whether it should be fbdev
followed by kms_helper, or the other way around. In general, I think we
lack some serialisation to control the async hotplug event generation
here... But I think this is sufficiently to make CI happy for the
time being, we will see.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 3/4] drm/i915: Consolidate checks for engine stats availability

2017-11-28 Thread Chris Wilson
Quoting Tvrtko Ursulin (2017-11-28 12:41:29)
> diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c 
> b/drivers/gpu/drm/i915/intel_guc_submission.c
> index cf1cc2cb6722..a8e63779de79 100644
> --- a/drivers/gpu/drm/i915/intel_guc_submission.c
> +++ b/drivers/gpu/drm/i915/intel_guc_submission.c
> @@ -1453,6 +1453,8 @@ int intel_guc_submission_enable(struct intel_guc *guc)
> execlists->tasklet.func = guc_submission_tasklet;
> engine->park = guc_submission_park;
> engine->unpark = guc_submission_unpark;
> +
> +   engine->flags &= ~I915_ENGINE_SUPPORTS_STATS;
> }
>  
> return 0;
> @@ -1465,6 +1467,8 @@ int intel_guc_submission_enable(struct intel_guc *guc)
>  void intel_guc_submission_disable(struct intel_guc *guc)
>  {
> struct drm_i915_private *dev_priv = guc_to_i915(guc);
> +   struct intel_engine_cs *engine;
> +   enum intel_engine_id id;
>  
> GEM_BUG_ON(dev_priv->gt.awake); /* GT should be parked first */
>  
> @@ -1473,6 +1477,9 @@ void intel_guc_submission_disable(struct intel_guc *guc)
> /* Revert back to manual ELSP submission */
> intel_engines_reset_default_submission(dev_priv);
>  
> +   for_each_engine(engine, dev_priv, id)
> +   engine->flags |= I915_ENGINE_SUPPORTS_STATS;

Push this into engine->reset_default_submission, then the guc isn't
making an assumption about the other end. We unconditionally clear when
the guc takes over because the guc doesn't provide the stats.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 1/4] drm/i915: Move execlists setup out of common

2017-11-28 Thread Chris Wilson
Quoting Tvrtko Ursulin (2017-11-28 12:41:27)
> From: Tvrtko Ursulin 
> 
> Move the execlists specific setup out of intel_engine_setup_common. This
> was supposed to be only for backend agnostic bits. At the same time rename
> it to intel_engine_setup_execlist to follow the setup vs init naming
> convetion we have.
> 
> Signed-off-by: Tvrtko Ursulin 
> ---
> +static void
> +intel_engine_setup_execlist(struct intel_engine_cs *engine)
> +{
> +   struct intel_engine_execlists * const execlists = &engine->execlists;
> +
> +   execlists->csb_use_mmio = csb_force_mmio(engine->i915);
> +
> +   execlists->port_mask = 1;
> +   BUILD_BUG_ON_NOT_POWER_OF_2(execlists_num_ports(execlists));
> +   GEM_BUG_ON(execlists_num_ports(execlists) > EXECLIST_MAX_PORTS);
> +
> +   execlists->queue = RB_ROOT;
> +   execlists->first = NULL;
> +}

The only problem here was that we wanted to be sure that some fields
were initialised for the common paths, i.e. so we could iterate over the
queue without worrying first if it was execlists (if it wasn't execlists
the queue would be empty).

Now, I think we could just rely on zero initialisation, but that was the
rationale for it ending up early. Now we could split it between
setup_execlists and init_execlists if we want the pedantry.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/pmu: Return -EINVAL when selecting the inactive CPU

2017-11-28 Thread Patchwork
== Series Details ==

Series: drm/i915/pmu: Return -EINVAL when selecting the inactive CPU
URL   : https://patchwork.freedesktop.org/series/34529/
State : failure

== Summary ==

Test gem_exec_capture:
Subgroup capture-blt:
pass   -> DMESG-WARN (shard-snb) fdo#103950 +9
Test gem_exec_suspend:
Subgroup basic-s4:
dmesg-fail -> FAIL   (shard-snb) fdo#103375 +3
Test kms_plane_multiple:
Subgroup atomic-pipe-a-tiling-none:
incomplete -> PASS   (shard-snb) fdo#103951 +1
Test drv_selftest:
Subgroup mock_sanitycheck:
pass   -> DMESG-WARN (shard-snb) fdo#103717
Test kms_busy:
Subgroup extended-pageflip-hang-newfb-render-b:
pass   -> DMESG-WARN (shard-hsw)
Test kms_flip:
Subgroup vblank-vs-suspend-interruptible:
pass   -> DMESG-WARN (shard-snb) fdo#100368
Subgroup flip-vs-panning-vs-hang-interruptible:
pass   -> DMESG-WARN (shard-snb) fdo#103821
Test gem_cs_tlb:
Subgroup render:
pass   -> DMESG-WARN (shard-snb)
Test gem_fence_thrash:
Subgroup bo-write-verify-threaded-none:
pass   -> DMESG-WARN (shard-snb)
Test gem_flink_basic:
Subgroup bad-open:
pass   -> DMESG-WARN (shard-snb)
Test prime_vgem:
Subgroup busy-bsd1:
skip   -> INCOMPLETE (shard-snb)
Test kms_draw_crc:
Subgroup draw-method-xrgb-pwrite-untiled:
skip   -> PASS   (shard-snb)
Test perf_pmu:
Subgroup invalid-init:
pass   -> FAIL   (shard-snb)
pass   -> FAIL   (shard-hsw)
Subgroup most-busy-check-all-bcs0:
pass   -> DMESG-WARN (shard-snb)
Test prime_busy:
Subgroup hang-bsd:
pass   -> DMESG-WARN (shard-hsw)
Test kms_frontbuffer_tracking:
Subgroup fbc-1p-offscren-pri-shrfb-draw-render:
pass   -> FAIL   (shard-snb) fdo#101623
Test kms_atomic_interruptible:
Subgroup legacy-setmode:
incomplete -> PASS   (shard-snb) fdo#103712
Test gem_tiled_swapping:
Subgroup non-threaded:
pass   -> INCOMPLETE (shard-hsw) fdo#103525

fdo#103950 https://bugs.freedesktop.org/show_bug.cgi?id=103950
fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
fdo#103951 https://bugs.freedesktop.org/show_bug.cgi?id=103951
fdo#103717 https://bugs.freedesktop.org/show_bug.cgi?id=103717
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#103821 https://bugs.freedesktop.org/show_bug.cgi?id=103821
fdo#101623 https://bugs.freedesktop.org/show_bug.cgi?id=101623
fdo#103712 https://bugs.freedesktop.org/show_bug.cgi?id=103712
fdo#103525 https://bugs.freedesktop.org/show_bug.cgi?id=103525

shard-hswtotal:2643 pass:1520 dwarn:8   dfail:1   fail:10  skip:1103 
time:8947s
shard-snbtotal:2564 pass:1253 dwarn:13  dfail:3   fail:10  skip:1282 
time:7636s
Blacklisted hosts:
shard-apltotal:2463 pass:1551 dwarn:15  dfail:11  fail:13  skip:867 
time:10553s
shard-kbltotal:2350 pass:1569 dwarn:21  dfail:12  fail:14  skip:726 
time:8568s

== Logs ==

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


[Intel-gfx] [PATCH 2/4] drm/i915: Move engine->needs_cmd_parser to engine->flags

2017-11-28 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

Will be adding a new per-engine flags shortly so it makes sense
to consolidate.

v2: Keep the original code flow in intel_engine_cleanup_cmd_parser.
(Joonas Lahtinen)

Signed-off-by: Tvrtko Ursulin 
Suggested-by: Chris Wilson 
Reviewed-by: Chris Wilson 
Reviewed-by: Sagar Arun Kamble 
Reviewed-by: Joonas Lahtinen 
---
 drivers/gpu/drm/i915/i915_cmd_parser.c | 7 ---
 drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +-
 drivers/gpu/drm/i915/intel_ringbuffer.h| 8 +++-
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_cmd_parser.c 
b/drivers/gpu/drm/i915/i915_cmd_parser.c
index b11629beeb63..ccb5ba043b63 100644
--- a/drivers/gpu/drm/i915/i915_cmd_parser.c
+++ b/drivers/gpu/drm/i915/i915_cmd_parser.c
@@ -26,6 +26,7 @@
  */
 
 #include "i915_drv.h"
+#include "intel_ringbuffer.h"
 
 /**
  * DOC: batch buffer command parser
@@ -940,7 +941,7 @@ void intel_engine_init_cmd_parser(struct intel_engine_cs 
*engine)
return;
}
 
-   engine->needs_cmd_parser = true;
+   engine->flags |= I915_ENGINE_NEEDS_CMD_PARSER;
 }
 
 /**
@@ -952,7 +953,7 @@ void intel_engine_init_cmd_parser(struct intel_engine_cs 
*engine)
  */
 void intel_engine_cleanup_cmd_parser(struct intel_engine_cs *engine)
 {
-   if (!engine->needs_cmd_parser)
+   if (!intel_engine_needs_cmd_parser(engine))
return;
 
fini_hash_table(engine);
@@ -1350,7 +1351,7 @@ int i915_cmd_parser_get_version(struct drm_i915_private 
*dev_priv)
 
/* If the command parser is not enabled, report 0 - unsupported */
for_each_engine(engine, dev_priv, id) {
-   if (engine->needs_cmd_parser) {
+   if (intel_engine_needs_cmd_parser(engine)) {
active = true;
break;
}
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 14d9e61a1e06..70ccd63cbf8e 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -271,7 +271,7 @@ static inline u64 gen8_noncanonical_addr(u64 address)
 
 static inline bool eb_use_cmdparser(const struct i915_execbuffer *eb)
 {
-   return eb->engine->needs_cmd_parser && eb->batch_len;
+   return intel_engine_needs_cmd_parser(eb->engine) && eb->batch_len;
 }
 
 static int eb_create(struct i915_execbuffer *eb)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h 
b/drivers/gpu/drm/i915/intel_ringbuffer.h
index 0f38d7b43f31..a91ce63b88b6 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@ -539,7 +539,8 @@ struct intel_engine_cs {
 
struct intel_engine_hangcheck hangcheck;
 
-   bool needs_cmd_parser;
+#define I915_ENGINE_NEEDS_CMD_PARSER BIT(0)
+   unsigned int flags;
 
/*
 * Table of commands the command parser needs to know about
@@ -598,6 +599,11 @@ struct intel_engine_cs {
} stats;
 };
 
+static inline bool intel_engine_needs_cmd_parser(struct intel_engine_cs 
*engine)
+{
+   return engine->flags & I915_ENGINE_NEEDS_CMD_PARSER;
+}
+
 static inline void
 execlists_set_active(struct intel_engine_execlists *execlists,
 unsigned int bit)
-- 
2.14.1

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


[Intel-gfx] [PATCH 3/4] drm/i915: Consolidate checks for engine stats availability

2017-11-28 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

Sagar noticed the check can be consolidated between the engine stats
implementation and the PMU.

My first choice was a static inline helper but that got into include
ordering mess quickly fast so I went with a macro instead. At some point
we should perhaps looking into taking out the non-ringubffer bits from
intel_ringbuffer.h into a new intel_engine.h or something.

v2: Use engine->flags. (Chris Wilson)
v3: Rebase and mark GuC as not yet supported. (Chris Wilson)

Signed-off-by: Tvrtko Ursulin 
Suggested-by: Sagar Arun Kamble 
Cc: Sagar Arun Kamble 
Reviewed-by: Chris Wilson  (v2)
---
 drivers/gpu/drm/i915/i915_pmu.c | 11 ---
 drivers/gpu/drm/i915/intel_engine_cs.c  |  4 ++--
 drivers/gpu/drm/i915/intel_guc_submission.c |  7 +++
 drivers/gpu/drm/i915/intel_lrc.c|  2 ++
 drivers/gpu/drm/i915/intel_ringbuffer.h |  6 ++
 5 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_pmu.c b/drivers/gpu/drm/i915/i915_pmu.c
index 3357b690ce90..c3c641ec962b 100644
--- a/drivers/gpu/drm/i915/i915_pmu.c
+++ b/drivers/gpu/drm/i915/i915_pmu.c
@@ -90,11 +90,6 @@ static unsigned int event_enabled_bit(struct perf_event 
*event)
return config_enabled_bit(event->attr.config);
 }
 
-static bool supports_busy_stats(struct drm_i915_private *i915)
-{
-   return INTEL_GEN(i915) >= 8;
-}
-
 static bool pmu_needs_timer(struct drm_i915_private *i915, bool gpu_active)
 {
u64 enable;
@@ -123,8 +118,10 @@ static bool pmu_needs_timer(struct drm_i915_private *i915, 
bool gpu_active)
/*
 * Also there is software busyness tracking available we do not
 * need the timer for I915_SAMPLE_BUSY counter.
+*
+* Use RCS as proxy for all engines.
 */
-   else if (supports_busy_stats(i915))
+   else if (intel_engine_supports_stats(i915->engine[RCS]))
enable &= ~BIT(I915_SAMPLE_BUSY);
 
/*
@@ -447,7 +444,7 @@ static void i915_pmu_event_read(struct perf_event *event)
 
 static bool engine_needs_busy_stats(struct intel_engine_cs *engine)
 {
-   return supports_busy_stats(engine->i915) &&
+   return intel_engine_supports_stats(engine) &&
   (engine->pmu.enable & BIT(I915_SAMPLE_BUSY));
 }
 
diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c 
b/drivers/gpu/drm/i915/intel_engine_cs.c
index d27e124d826a..b58915ea7557 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -1829,7 +1829,7 @@ int intel_enable_engine_stats(struct intel_engine_cs 
*engine)
 {
unsigned long flags;
 
-   if (INTEL_GEN(engine->i915) < 8)
+   if (!intel_engine_supports_stats(engine))
return -ENODEV;
 
spin_lock_irqsave(&engine->stats.lock, flags);
@@ -1890,7 +1890,7 @@ void intel_disable_engine_stats(struct intel_engine_cs 
*engine)
 {
unsigned long flags;
 
-   if (INTEL_GEN(engine->i915) < 8)
+   if (!intel_engine_supports_stats(engine))
return;
 
spin_lock_irqsave(&engine->stats.lock, flags);
diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c 
b/drivers/gpu/drm/i915/intel_guc_submission.c
index cf1cc2cb6722..a8e63779de79 100644
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
@@ -1453,6 +1453,8 @@ int intel_guc_submission_enable(struct intel_guc *guc)
execlists->tasklet.func = guc_submission_tasklet;
engine->park = guc_submission_park;
engine->unpark = guc_submission_unpark;
+
+   engine->flags &= ~I915_ENGINE_SUPPORTS_STATS;
}
 
return 0;
@@ -1465,6 +1467,8 @@ int intel_guc_submission_enable(struct intel_guc *guc)
 void intel_guc_submission_disable(struct intel_guc *guc)
 {
struct drm_i915_private *dev_priv = guc_to_i915(guc);
+   struct intel_engine_cs *engine;
+   enum intel_engine_id id;
 
GEM_BUG_ON(dev_priv->gt.awake); /* GT should be parked first */
 
@@ -1473,6 +1477,9 @@ void intel_guc_submission_disable(struct intel_guc *guc)
/* Revert back to manual ELSP submission */
intel_engines_reset_default_submission(dev_priv);
 
+   for_each_engine(engine, dev_priv, id)
+   engine->flags |= I915_ENGINE_SUPPORTS_STATS;
+
guc_clients_destroy(guc);
 }
 
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 479f880c0f2f..b811f7cddd7e 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -1983,6 +1983,8 @@ intel_engine_setup_execlist(struct intel_engine_cs 
*engine)
 
execlists->queue = RB_ROOT;
execlists->first = NULL;
+
+   engine->flags |= I915_ENGINE_SUPPORTS_STATS;
 }
 
 static void
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h 
b/drivers/gpu/drm/i915/intel_ringbuffer.h
index a91ce63b88b6..c68ab3ead83c 100644
--- a/drivers/gpu/drm/i915/intel_ringbuff

[Intel-gfx] [PATCH 4/4] drm/i915: Add GuC support for engine busy stats

2017-11-28 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

Wire up the engine busy stats accounting to the GuC submission backend.

Since there is not context out interrupt we need to place the accounting
callbacks per-request.

Signed-off-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/intel_guc_submission.c | 9 ++---
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c 
b/drivers/gpu/drm/i915/intel_guc_submission.c
index a8e63779de79..d80d2a3214da 100644
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
@@ -781,6 +781,7 @@ static void guc_dequeue(struct intel_engine_cs *engine)
INIT_LIST_HEAD(&rq->priotree.link);
 
__i915_gem_request_submit(rq);
+   intel_engine_context_in(rq->engine);
trace_i915_gem_request_in(rq,
  port_index(port, execlists));
last = rq;
@@ -813,6 +814,7 @@ static void guc_submission_tasklet(unsigned long data)
 
rq = port_request(&port[0]);
while (rq && i915_gem_request_completed(rq)) {
+   intel_engine_context_out(rq->engine);
trace_i915_gem_request_out(rq);
i915_gem_request_put(rq);
 
@@ -1453,8 +1455,6 @@ int intel_guc_submission_enable(struct intel_guc *guc)
execlists->tasklet.func = guc_submission_tasklet;
engine->park = guc_submission_park;
engine->unpark = guc_submission_unpark;
-
-   engine->flags &= ~I915_ENGINE_SUPPORTS_STATS;
}
 
return 0;
@@ -1467,8 +1467,6 @@ int intel_guc_submission_enable(struct intel_guc *guc)
 void intel_guc_submission_disable(struct intel_guc *guc)
 {
struct drm_i915_private *dev_priv = guc_to_i915(guc);
-   struct intel_engine_cs *engine;
-   enum intel_engine_id id;
 
GEM_BUG_ON(dev_priv->gt.awake); /* GT should be parked first */
 
@@ -1477,9 +1475,6 @@ void intel_guc_submission_disable(struct intel_guc *guc)
/* Revert back to manual ELSP submission */
intel_engines_reset_default_submission(dev_priv);
 
-   for_each_engine(engine, dev_priv, id)
-   engine->flags |= I915_ENGINE_SUPPORTS_STATS;
-
guc_clients_destroy(guc);
 }
 
-- 
2.14.1

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


[Intel-gfx] [PATCH 1/4] drm/i915: Move execlists setup out of common

2017-11-28 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

Move the execlists specific setup out of intel_engine_setup_common. This
was supposed to be only for backend agnostic bits. At the same time rename
it to intel_engine_setup_execlist to follow the setup vs init naming
convetion we have.

Signed-off-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/intel_engine_cs.c | 34 --
 drivers/gpu/drm/i915/intel_lrc.c   | 34 ++
 2 files changed, 34 insertions(+), 34 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c 
b/drivers/gpu/drm/i915/intel_engine_cs.c
index fede62daf3e1..d27e124d826a 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -25,7 +25,6 @@
 #include 
 
 #include "i915_drv.h"
-#include "i915_vgpu.h"
 #include "intel_ringbuffer.h"
 #include "intel_lrc.h"
 
@@ -391,37 +390,6 @@ static void intel_engine_init_timeline(struct 
intel_engine_cs *engine)
engine->timeline = &engine->i915->gt.global_timeline.engine[engine->id];
 }
 
-static bool csb_force_mmio(struct drm_i915_private *i915)
-{
-   /*
-* IOMMU adds unpredictable latency causing the CSB write (from the
-* GPU into the HWSP) to only be visible some time after the interrupt
-* (missed breadcrumb syndrome).
-*/
-   if (intel_vtd_active())
-   return true;
-
-   /* Older GVT emulation depends upon intercepting CSB mmio */
-   if (intel_vgpu_active(i915) && !intel_vgpu_has_hwsp_emulation(i915))
-   return true;
-
-   return false;
-}
-
-static void intel_engine_init_execlist(struct intel_engine_cs *engine)
-{
-   struct intel_engine_execlists * const execlists = &engine->execlists;
-
-   execlists->csb_use_mmio = csb_force_mmio(engine->i915);
-
-   execlists->port_mask = 1;
-   BUILD_BUG_ON_NOT_POWER_OF_2(execlists_num_ports(execlists));
-   GEM_BUG_ON(execlists_num_ports(execlists) > EXECLIST_MAX_PORTS);
-
-   execlists->queue = RB_ROOT;
-   execlists->first = NULL;
-}
-
 /**
  * intel_engines_setup_common - setup engine state not requiring hw access
  * @engine: Engine to setup.
@@ -433,8 +401,6 @@ static void intel_engine_init_execlist(struct 
intel_engine_cs *engine)
  */
 void intel_engine_setup_common(struct intel_engine_cs *engine)
 {
-   intel_engine_init_execlist(engine);
-
intel_engine_init_timeline(engine);
intel_engine_init_hangcheck(engine);
i915_gem_batch_pool_init(engine, &engine->batch_pool);
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 570864583e28..479f880c0f2f 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -137,6 +137,7 @@
 #include 
 #include "i915_drv.h"
 #include "i915_gem_render_state.h"
+#include "i915_vgpu.h"
 #include "intel_mocs.h"
 
 #define RING_EXECLIST_QFULL(1 << 0x2)
@@ -1952,6 +1953,38 @@ logical_ring_default_irqs(struct intel_engine_cs *engine)
engine->irq_keep_mask = GT_CONTEXT_SWITCH_INTERRUPT << shift;
 }
 
+static bool csb_force_mmio(struct drm_i915_private *i915)
+{
+   /*
+* IOMMU adds unpredictable latency causing the CSB write (from the
+* GPU into the HWSP) to only be visible some time after the interrupt
+* (missed breadcrumb syndrome).
+*/
+   if (intel_vtd_active())
+   return true;
+
+   /* Older GVT emulation depends upon intercepting CSB mmio */
+   if (intel_vgpu_active(i915) && !intel_vgpu_has_hwsp_emulation(i915))
+   return true;
+
+   return false;
+}
+
+static void
+intel_engine_setup_execlist(struct intel_engine_cs *engine)
+{
+   struct intel_engine_execlists * const execlists = &engine->execlists;
+
+   execlists->csb_use_mmio = csb_force_mmio(engine->i915);
+
+   execlists->port_mask = 1;
+   BUILD_BUG_ON_NOT_POWER_OF_2(execlists_num_ports(execlists));
+   GEM_BUG_ON(execlists_num_ports(execlists) > EXECLIST_MAX_PORTS);
+
+   execlists->queue = RB_ROOT;
+   execlists->first = NULL;
+}
+
 static void
 logical_ring_setup(struct intel_engine_cs *engine)
 {
@@ -1959,6 +1992,7 @@ logical_ring_setup(struct intel_engine_cs *engine)
enum forcewake_domains fw_domains;
 
intel_engine_setup_common(engine);
+   intel_engine_setup_execlist(engine);
 
/* Intentionally left blank. */
engine->buffer = NULL;
-- 
2.14.1

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


[Intel-gfx] ✗ Fi.CI.BAT: warning for igt: Remove gem_ctx_basic (rev2)

2017-11-28 Thread Patchwork
== Series Details ==

Series: igt: Remove gem_ctx_basic (rev2)
URL   : https://patchwork.freedesktop.org/series/34500/
State : warning

== Summary ==

IGT patchset tested on top of latest successful build
53f2b4b4ce2372da0b3b741d934dd5a9110ac1e2 igt/perf_pmu: Keep batch_duration_ns 
as the minimum measurement duration

with latest DRM-Tip kernel build CI_DRM_3398
9cf8a68eee7d drm-tip: 2017y-11m-28d-09h-02m-29s UTC integration manifest

Testlist changes:
-igt@gem_ctx_basic

Test kms_force_connector_basic:
Subgroup force-connector-state:
pass   -> SKIP   (fi-snb-2520m)
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
incomplete -> PASS   (fi-snb-2520m) fdo#103713
Test drv_module_reload:
Subgroup basic-reload-inject:
pass   -> DMESG-WARN (fi-bwr-2160) fdo#103923

fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fdo#103923 https://bugs.freedesktop.org/show_bug.cgi?id=103923

fi-bdw-5557u total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  
time:444s
fi-bdw-gvtdvmtotal:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  
time:486s
fi-blb-e6850 total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  
time:386s
fi-bsw-n3050 total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  
time:514s
fi-bwr-2160  total:288  pass:182  dwarn:1   dfail:0   fail:0   skip:105 
time:322s
fi-bxt-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:502s
fi-bxt-j4205 total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:506s
fi-byt-j1900 total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  
time:490s
fi-byt-n2820 total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  
time:476s
fi-elk-e7500 total:288  pass:229  dwarn:0   dfail:0   fail:0   skip:59  
time:428s
fi-gdg-551   total:288  pass:178  dwarn:1   dfail:0   fail:1   skip:108 
time:272s
fi-glk-1 total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  
time:528s
fi-hsw-4770  total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:425s
fi-hsw-4770r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:434s
fi-ivb-3520m total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:483s
fi-ivb-3770  total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  
time:462s
fi-kbl-7500u total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  
time:486s
fi-kbl-7560u total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  
time:525s
fi-kbl-7567u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:488s
fi-kbl-r total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:531s
fi-pnv-d510  total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  
time:586s
fi-skl-6260u total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:451s
fi-skl-6600u total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  
time:540s
fi-skl-6700hqtotal:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:567s
fi-skl-6700k total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  
time:518s
fi-skl-6770hqtotal:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  
time:498s
fi-skl-gvtdvmtotal:288  pass:264  dwarn:1   dfail:0   fail:0   skip:23  
time:489s
fi-snb-2520m total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  
time:557s
fi-snb-2600  total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  
time:417s
Blacklisted hosts:
fi-cfl-s2total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  
time:607s
fi-glk-dsi   total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  
time:490s

== Logs ==

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


Re: [Intel-gfx] ✗ Fi.CI.IGT: failure for Revert "x86/irq: Simplify hotplug vector accounting"

2017-11-28 Thread Chris Wilson
Quoting Patchwork (2017-11-28 12:22:22)
> == Series Details ==
> 
> Series: Revert "x86/irq: Simplify hotplug vector accounting"
> URL   : https://patchwork.freedesktop.org/series/34527/
> State : failure

And still the do_IRQ failures and what appears to be lost interrupts.
This was not the patch we were looking for.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.IGT: failure for Revert "x86/irq: Simplify hotplug vector accounting"

2017-11-28 Thread Patchwork
== Series Details ==

Series: Revert "x86/irq: Simplify hotplug vector accounting"
URL   : https://patchwork.freedesktop.org/series/34527/
State : failure

== Summary ==

Test prime_busy:
Subgroup wait-hang-bsd:
pass   -> DMESG-WARN (shard-hsw)
Subgroup hang-bsd:
pass   -> DMESG-WARN (shard-hsw)
Test perf:
Subgroup blocking:
pass   -> FAIL   (shard-hsw) fdo#102252
Test drv_suspend:
Subgroup debugfs-reader-hibernate:
fail   -> DMESG-FAIL (shard-hsw) fdo#103375 +3
Test gem_exec_capture:
Subgroup capture-blt:
pass   -> DMESG-WARN (shard-snb) fdo#103950 +5
Test kms_frontbuffer_tracking:
Subgroup fbc-suspend:
dmesg-warn -> PASS   (shard-snb) fdo#101623 +2
Subgroup basic:
incomplete -> PASS   (shard-snb) fdo#103951
Test gem_cs_tlb:
Subgroup render:
pass   -> DMESG-WARN (shard-snb)
Test gem_fence_thrash:
Subgroup bo-write-verify-threaded-none:
pass   -> DMESG-WARN (shard-snb)
Test gem_flink_basic:
Subgroup bad-open:
pass   -> DMESG-WARN (shard-snb)
Test prime_vgem:
Subgroup busy-bsd1:
skip   -> INCOMPLETE (shard-snb)
Test perf_pmu:
Subgroup rc6:
dmesg-warn -> PASS   (shard-snb)
Test kms_atomic_interruptible:
Subgroup legacy-setmode:
incomplete -> PASS   (shard-snb) fdo#103712
Test drv_hangman:
Subgroup error-state-capture-render:
dmesg-warn -> PASS   (shard-hsw)
Test kms_draw_crc:
Subgroup draw-method-xrgb-pwrite-untiled:
skip   -> PASS   (shard-snb)
Test kms_flip:
Subgroup flip-vs-panning-vs-hang-interruptible:
pass   -> DMESG-WARN (shard-snb) fdo#103821
Test gem_tiled_swapping:
Subgroup non-threaded:
incomplete -> PASS   (shard-snb)
Test gem_exec_create:
Subgroup forked:
incomplete -> PASS   (shard-hsw)

fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
fdo#103950 https://bugs.freedesktop.org/show_bug.cgi?id=103950
fdo#101623 https://bugs.freedesktop.org/show_bug.cgi?id=101623
fdo#103951 https://bugs.freedesktop.org/show_bug.cgi?id=103951
fdo#103712 https://bugs.freedesktop.org/show_bug.cgi?id=103712
fdo#103821 https://bugs.freedesktop.org/show_bug.cgi?id=103821

shard-hswtotal:2662 pass:1528 dwarn:7   dfail:2   fail:9   skip:1116 
time:9300s
shard-snbtotal:2541 pass:1236 dwarn:13  dfail:4   fail:9   skip:1276 
time:7714s
Blacklisted hosts:
shard-apltotal:2459 pass:1547 dwarn:15  dfail:11  fail:14  skip:866 
time:10575s
shard-kbltotal:2391 pass:1590 dwarn:18  dfail:11  fail:15  skip:749 
time:8344s

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7319/shards.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 tests/perf_pmu: Sync invalid-init with i915 changes

2017-11-28 Thread Patchwork
== Series Details ==

Series: tests/perf_pmu: Sync invalid-init with i915 changes
URL   : https://patchwork.freedesktop.org/series/34530/
State : success

== Summary ==

IGT patchset tested on top of latest successful build
53f2b4b4ce2372da0b3b741d934dd5a9110ac1e2 igt/perf_pmu: Keep batch_duration_ns 
as the minimum measurement duration

with latest DRM-Tip kernel build CI_DRM_3398
9cf8a68eee7d drm-tip: 2017y-11m-28d-09h-02m-29s UTC integration manifest

No testlist changes.

Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
incomplete -> PASS   (fi-snb-2520m) fdo#103713

fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713

fi-bdw-5557u total:289  pass:268  dwarn:0   dfail:0   fail:0   skip:21  
time:442s
fi-bdw-gvtdvmtotal:289  pass:264  dwarn:1   dfail:0   fail:0   skip:24  
time:491s
fi-blb-e6850 total:289  pass:223  dwarn:1   dfail:0   fail:0   skip:65  
time:387s
fi-bsw-n3050 total:289  pass:243  dwarn:0   dfail:0   fail:0   skip:46  
time:543s
fi-bwr-2160  total:289  pass:183  dwarn:0   dfail:0   fail:0   skip:106 
time:280s
fi-bxt-dsi   total:289  pass:259  dwarn:0   dfail:0   fail:0   skip:30  
time:516s
fi-bxt-j4205 total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  
time:507s
fi-byt-j1900 total:289  pass:254  dwarn:0   dfail:0   fail:0   skip:35  
time:496s
fi-byt-n2820 total:289  pass:250  dwarn:0   dfail:0   fail:0   skip:39  
time:489s
fi-elk-e7500 total:289  pass:229  dwarn:0   dfail:0   fail:0   skip:60  
time:432s
fi-gdg-551   total:289  pass:178  dwarn:1   dfail:0   fail:1   skip:109 
time:271s
fi-glk-1 total:289  pass:261  dwarn:0   dfail:0   fail:0   skip:28  
time:543s
fi-hsw-4770  total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:430s
fi-hsw-4770r total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:439s
fi-ivb-3520m total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  
time:489s
fi-ivb-3770  total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  
time:457s
fi-kbl-7500u total:289  pass:264  dwarn:1   dfail:0   fail:0   skip:24  
time:490s
fi-kbl-7560u total:289  pass:270  dwarn:0   dfail:0   fail:0   skip:19  
time:533s
fi-kbl-7567u total:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  
time:479s
fi-kbl-r total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:533s
fi-pnv-d510  total:289  pass:222  dwarn:1   dfail:0   fail:0   skip:66  
time:588s
fi-skl-6260u total:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  
time:448s
fi-skl-6600u total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:545s
fi-skl-6700hqtotal:289  pass:263  dwarn:0   dfail:0   fail:0   skip:26  
time:570s
fi-skl-6700k total:289  pass:265  dwarn:0   dfail:0   fail:0   skip:24  
time:521s
fi-skl-6770hqtotal:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  
time:517s
fi-skl-gvtdvmtotal:289  pass:265  dwarn:1   dfail:0   fail:0   skip:23  
time:494s
fi-snb-2520m total:289  pass:250  dwarn:0   dfail:0   fail:0   skip:39  
time:571s
fi-snb-2600  total:289  pass:249  dwarn:0   dfail:0   fail:0   skip:40  
time:424s
Blacklisted hosts:
fi-cfl-s2total:289  pass:263  dwarn:0   dfail:0   fail:0   skip:26  
time:608s
fi-glk-dsi   total:289  pass:259  dwarn:0   dfail:0   fail:0   skip:30  
time:496s

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_557/
___
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/fb_helper: Disable all crtc's when initial setup fails.

2017-11-28 Thread Patchwork
== Series Details ==

Series: drm/fb_helper: Disable all crtc's when initial setup fails.
URL   : https://patchwork.freedesktop.org/series/34532/
State : success

== Summary ==

Series 34532v1 drm/fb_helper: Disable all crtc's when initial setup fails.
https://patchwork.freedesktop.org/api/1.0/series/34532/revisions/1/mbox/

Test drv_module_reload:
Subgroup basic-reload-inject:
pass   -> DMESG-WARN (fi-bwr-2160) fdo#103923

fdo#103923 https://bugs.freedesktop.org/show_bug.cgi?id=103923

fi-bdw-5557u total:289  pass:268  dwarn:0   dfail:0   fail:0   skip:21  
time:442s
fi-bdw-gvtdvmtotal:289  pass:264  dwarn:1   dfail:0   fail:0   skip:24  
time:495s
fi-blb-e6850 total:289  pass:223  dwarn:1   dfail:0   fail:0   skip:65  
time:385s
fi-bsw-n3050 total:289  pass:243  dwarn:0   dfail:0   fail:0   skip:46  
time:539s
fi-bwr-2160  total:289  pass:182  dwarn:1   dfail:0   fail:0   skip:106 
time:319s
fi-bxt-dsi   total:289  pass:259  dwarn:0   dfail:0   fail:0   skip:30  
time:505s
fi-bxt-j4205 total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  
time:509s
fi-byt-j1900 total:289  pass:254  dwarn:0   dfail:0   fail:0   skip:35  
time:487s
fi-byt-n2820 total:289  pass:250  dwarn:0   dfail:0   fail:0   skip:39  
time:490s
fi-elk-e7500 total:289  pass:229  dwarn:0   dfail:0   fail:0   skip:60  
time:424s
fi-gdg-551   total:289  pass:178  dwarn:1   dfail:0   fail:1   skip:109 
time:263s
fi-glk-1 total:289  pass:261  dwarn:0   dfail:0   fail:0   skip:28  
time:538s
fi-hsw-4770  total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:423s
fi-hsw-4770r total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:434s
fi-ivb-3520m total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  
time:485s
fi-ivb-3770  total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  
time:456s
fi-kbl-7500u total:289  pass:264  dwarn:1   dfail:0   fail:0   skip:24  
time:487s
fi-kbl-7560u total:289  pass:270  dwarn:0   dfail:0   fail:0   skip:19  
time:528s
fi-kbl-7567u total:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  
time:477s
fi-kbl-r total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:535s
fi-pnv-d510  total:289  pass:222  dwarn:1   dfail:0   fail:0   skip:66  
time:595s
fi-skl-6260u total:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  
time:444s
fi-skl-6600u total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  
time:544s
fi-skl-6700hqtotal:289  pass:263  dwarn:0   dfail:0   fail:0   skip:26  
time:566s
fi-skl-6700k total:289  pass:265  dwarn:0   dfail:0   fail:0   skip:24  
time:515s
fi-skl-6770hqtotal:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  
time:498s
fi-skl-gvtdvmtotal:289  pass:265  dwarn:1   dfail:0   fail:0   skip:23  
time:495s
fi-snb-2520m total:246  pass:212  dwarn:0   dfail:0   fail:0   skip:33 
fi-snb-2600  total:289  pass:249  dwarn:0   dfail:0   fail:0   skip:40  
time:415s
Blacklisted hosts:
fi-cfl-s2total:289  pass:263  dwarn:0   dfail:0   fail:0   skip:26  
time:611s
fi-glk-dsi   total:289  pass:259  dwarn:0   dfail:0   fail:0   skip:30  
time:497s

9cf8a68eee7db5e7ded75187aac4222c07a808dd drm-tip: 2017y-11m-28d-09h-02m-29s UTC 
integration manifest
d9ebb7213b04 drm/fb_helper: Disable all crtc's when initial setup fails.

== Logs ==

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


Re: [Intel-gfx] [PATCH i-g-t] igt/kms_rotation_crc: Add RGB565 90 degree test for gen>9

2017-11-28 Thread Maarten Lankhorst
Hey,

Op 21-11-17 om 15:02 schreef Juha-Pekka Heikkila:
> Gen10 onwards 90 and 270 degree rotations are supported for RGB565 format.
>
> v2 (Ville Syrjälä):
> As a side effect to keep bad-pixel-format test valid on all supported
> platforms it need to use DRM_FORMAT_C8 now.
>
> While at it clean up kms_rotation_crc test a bit, take out
> test_plane_rotation_ytiled_obj() function as
> test_plane_rotation() can basically do the same.
>
> v3 (Ville Syrjälä):
> repurpose test_plane_rotation_ytiled_obj() function for
> bad pixel testing with DRM_FORMAT_C8 as igt doesn't
> support this format.
>
> Signed-off-by: Juha-Pekka Heikkila 
At this point there is no correct order to apply the tests then.

What I would like to see is the bad-pixel-format changes in a separate commit, 
so we can commit that first, and then commit kernel change, watch CI results 
for regressions and then add the new IGT test..

With that fixed the patches can be applied. :)

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


Re: [Intel-gfx] [PATCH] drm/fb_helper: Disable all crtc's when initial setup fails.

2017-11-28 Thread Daniel Vetter
On Tue, Nov 28, 2017 at 12:16:03PM +0100, Maarten Lankhorst wrote:
> Some drivers like i915 start with crtc's enabled, but with deferred
> fbcon setup they were no longer disabled as part of fbdev setup.
> Headless units could no longer enter pc3 state because the crtc was
> still enabled.
> 
> Fix this by calling restore_fbdev_mode when we would have called
> it otherwise once during initial fbdev setup.
> 
> Signed-off-by: Maarten Lankhorst 
> Fixes: ca91a2758fce ("drm/fb-helper: Support deferred setup")

Please use dim fixes to get a more complete Cc: list for regression fixes.

> Cc:  # v4.14+
> Reported-by: Thomas Voegtle 

Reviewed-by: Daniel Vetter 

But please confirm with the reporter that it indeed fixes the issue before
pushing.
-Daniel

> ---
>  drivers/gpu/drm/drm_fb_helper.c | 4 
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index 07374008f146..e56166334455 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -1809,6 +1809,10 @@ static int drm_fb_helper_single_fb_probe(struct 
> drm_fb_helper *fb_helper,
>  
>   if (crtc_count == 0 || sizes.fb_width == -1 || sizes.fb_height == -1) {
>   DRM_INFO("Cannot find any crtc or sizes\n");
> +
> + /* First time: disable all crtc's.. */
> + if (!fb_helper->deferred_setup && 
> !READ_ONCE(fb_helper->dev->master))
> + restore_fbdev_mode(fb_helper);
>   return -EAGAIN;
>   }
>  
> -- 
> 2.15.0
> 

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


  1   2   >