[Intel-gfx] Warning for driver i915 for 4.17.0-rcX

2018-04-30 Thread Larry Finger

With kernel 4.17.0-rc3, I noted the following warning from driver i915.

kernel: [ cut here ]
kernel: Could not determine valid watermarks for inherited state
kernel: WARNING: CPU: 3 PID: 224 at drivers/gpu/drm/i915/intel_display.c:14584 
intel_modeset_init+0x3be/0x1060 [i915]
kernel: Modules linked in: i915(+) xhci_pci i2c_algo_bit ehci_pci xhci_hcd 
serio_raw drm_kms_helper ehci_hcd syscopyarea sysfillrect sysimgblt
kernel: CPU: 3 PID: 224 Comm: systemd-udevd Not tainted 
4.17.0-rc0-08000-g2f39cfca0161-dirty #188
kernel: Hardware name: TOSHIBA TECRA A50-A/TECRA A50-A, BIOS Version 4.50 
09/29/2014

kernel: RIP: 0010:intel_modeset_init+0x3be/0x1060 [i915]
kernel: RSP: 0018:c9000112fab8 EFLAGS: 00010296
kernel: RAX: 0038 RBX: 88021dc1 RCX: 0006
kernel: RDX: 0007 RSI: 0082 RDI: 88022f2d5bd0
kernel: RBP: 88021c8b3000 R08: 0289 R09: 0004
kernel: R10: c9000112f948 R11: 0001 R12: 88021ef3d800
kernel: R13: ffea R14:  R15: 88021dc10358
kernel: FS:  7f830913c940() GS:88022f2c() 
knlGS:
kernel: CS:  0010 DS:  ES:  CR0: 80050033
kernel: CR2: 7ffc91722f58 CR3: 00021e940003 CR4: 001606e0
kernel: Call Trace:
kernel:  i915_driver_load+0xa87/0xed0 [i915]
kernel:  local_pci_probe+0x42/0xa0
kernel:  pci_device_probe+0x125/0x190
kernel:  driver_probe_device+0x30b/0x480
kernel:  __driver_attach+0xb8/0xe0
kernel:  ? driver_probe_device+0x40/0x480
kernel:  ? driver_probe_device+0x480/0x480
kernel:  bus_for_each_dev+0x65/0x90
kernel:  bus_add_driver+0x161/0x260
kernel:  ? 0xa0149000
kernel:  driver_register+0x57/0xc0
kernel:  ? 0xa0149000
kernel:  do_one_initcall+0x4e/0x18d
kernel:  ? kmem_cache_alloc_trace+0xfe/0x210
kernel:  ? do_init_module+0x22/0x20a
kernel:  do_init_module+0x5b/0x20a
kernel:  load_module+0x18a1/0x1e20
kernel:  ? SYSC_finit_module+0xb7/0xd0
kernel:  SYSC_finit_module+0xb7/0xd0
kernel:  do_syscall_64+0x6e/0x120
kernel:  entry_SYSCALL_64_after_hwframe+0x3d/0xa2
kernel: RIP: 0033:0x7f8307f67529
kernel: RSP: 002b:7ffc91737ab8 EFLAGS: 0246 ORIG_RAX: 0139
kernel: RAX: ffda RBX: 559b3cf6f350 RCX: 7f8307f67529
kernel: RDX:  RSI: 7f83088cd83d RDI: 0014
kernel: RBP: 7f83088cd83d R08:  R09: 559b3cf44f50
kernel: R10: 0014 R11: 0246 R12: 0002
kernel: R13: 559b3cf634a0 R14:  R15: 03938700
kernel: Code: 00 f7 c6 00 00 18 00 0f 84 d7 0a 00 00 85 c9 0f 94 c1 41 88 8c 24 
8d 02 00 00 e9 f6 08 00 00 48 c7 c7 b0 2f 41 a0 e8 f2 9b cd e0

kernel: ---[ end trace c0feea6402f4c999 ]---

This warning was bisected to

commit a2936e3d9a9cb2ce192455cdec3a8cfccc26b486 (refs/bisect/bad)
Author: Ville Syrjälä 
Date:   Thu Nov 23 21:04:49 2017 +0200

drm/i915: Use drm_mode_get_hv_timing() to populate plane clip rectangle

Cc: Laurent Pinchart 
Signed-off-by: Ville Syrjälä 
Reviewed-by: Daniel Vetter 
Reviewed-by: Thierry Reding 

The output of 'lspci -nn -vvv' for the gracpics device is as follows:

00:02.0 VGA compatible controller [0300]: Intel Corporation 4th Gen Core 
Processor Integrated Graphics Controller [8086:0416] (rev 06) (prog-if 00 [VGA 
controller])

Subsystem: Toshiba America Info Systems Device [1179:0002]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- 
Latency: 0
Interrupt: pin A routed to IRQ 28
Region 0: Memory at e000 (64-bit, non-prefetchable) [size=4M]
Region 2: Memory at d000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at 4000 [size=64]
[virtual] Expansion ROM at 000c [disabled] [size=128K]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee00018  Data: 
Capabilities: [d0] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA 
PME(D0-,D1-,D2-,D3hot-,D3cold-)

Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [a4] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: i915
Kernel modules: i915

This warning does not seem to cause any problems.

Thanks,

Larry
___
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/edp: Only use alternate fixed mode when requested (rev3)

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915/edp: Only use alternate fixed mode when requested (rev3)
URL   : https://patchwork.freedesktop.org/series/41492/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4116_full -> Patchwork_8850_full =

== Summary - WARNING ==

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

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/41492/revisions/3/mbox/

== Possible new issues ==

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

  === IGT changes ===

 Warnings 

igt@gem_exec_schedule@deep-bsd2:
  shard-kbl:  SKIP -> PASS


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_cursor_legacy@cursor-vs-flip-toggle:
  shard-hsw:  PASS -> FAIL (fdo#103355)

igt@kms_flip@2x-dpms-vs-vblank-race:
  shard-hsw:  PASS -> FAIL (fdo#103060)

igt@kms_flip@absolute-wf_vblank-interruptible:
  shard-glk:  PASS -> FAIL (fdo#106087)

igt@kms_flip@modeset-vs-vblank-race-interruptible:
  shard-glk:  PASS -> FAIL (fdo#103060)

igt@kms_flip@wf_vblank-ts-check-interruptible:
  shard-apl:  PASS -> FAIL (fdo#105312, fdo#103933)

igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-render:
  shard-apl:  PASS -> FAIL (fdo#103167)


 Possible fixes 

igt@gem_workarounds@suspend-resume:
  shard-kbl:  INCOMPLETE (fdo#103665) -> PASS

igt@kms_flip@2x-plain-flip-ts-check:
  shard-hsw:  FAIL (fdo#103928) -> PASS

igt@kms_flip@flip-vs-blocking-wf-vblank:
  shard-kbl:  DMESG-FAIL (fdo#103558) -> PASS +1

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

igt@kms_flip@modeset-vs-vblank-race-interruptible:
  shard-kbl:  DMESG-WARN (fdo#105602, fdo#103558, fdo#103313) -> 
PASS

igt@kms_flip@plain-flip-fb-recreate-interruptible:
  shard-glk:  FAIL (fdo#100368) -> PASS +2

igt@kms_flip_event_leak:
  shard-kbl:  DMESG-WARN (fdo#105602, fdo#103558) -> PASS +33


  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103313 https://bugs.freedesktop.org/show_bug.cgi?id=103313
  fdo#103355 https://bugs.freedesktop.org/show_bug.cgi?id=103355
  fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#103928 https://bugs.freedesktop.org/show_bug.cgi?id=103928
  fdo#103933 https://bugs.freedesktop.org/show_bug.cgi?id=103933
  fdo#105312 https://bugs.freedesktop.org/show_bug.cgi?id=105312
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#106087 https://bugs.freedesktop.org/show_bug.cgi?id=106087


== Participating hosts (9 -> 8) ==

  Missing(1): shard-glkb 


== Build changes ==

* Linux: CI_DRM_4116 -> Patchwork_8850

  CI_DRM_4116: 7ff375cb94000d93f7a9d541cb0c8180fbea80f2 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4453: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8850: 467a1ee16409f0a76e0e9a21a6ce38e9eed4e0b9 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4453: d0a0bca2194a673c4d9a70a2256837c59213c64b @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8850/shards.html
___
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/firmware: Correct URL for firmware

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915/firmware: Correct URL for firmware
URL   : https://patchwork.freedesktop.org/series/42497/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4115_full -> Patchwork_8849_full =

== Summary - FAILURE ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Possible regressions 

igt@gem_exec_await@wide-contexts:
  shard-kbl:  PASS -> FAIL


 Warnings 

igt@gem_exec_schedule@deep-bsd2:
  shard-kbl:  PASS -> SKIP +1

igt@gem_mocs_settings@mocs-rc6-ctx-dirty-render:
  shard-kbl:  SKIP -> PASS


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible:
  shard-apl:  PASS -> FAIL (fdo#100368)

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

igt@kms_flip@plain-flip-fb-recreate-interruptible:
  shard-hsw:  PASS -> FAIL (fdo#100368)

igt@kms_flip@wf_vblank-ts-check-interruptible:
  shard-glk:  PASS -> FAIL (fdo#100368)

igt@kms_plane@plane-panning-top-left-pipe-c-planes:
  shard-kbl:  PASS -> DMESG-WARN (fdo#103558, fdo#105602) +10

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

igt@kms_sysfs_edid_timing:
  shard-apl:  PASS -> WARN (fdo#100047)


 Possible fixes 

igt@kms_cursor_crc@cursor-128x128-suspend:
  shard-apl:  FAIL (fdo#103375) -> PASS

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

igt@kms_flip@modeset-vs-vblank-race:
  shard-glk:  FAIL (fdo#103060) -> PASS +1

igt@kms_flip@plain-flip-fb-recreate:
  shard-hsw:  FAIL (fdo#100368) -> PASS +1

igt@kms_flip@plain-flip-ts-check-interruptible:
  shard-glk:  FAIL (fdo#100368) -> PASS


  fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
  fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
  fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
  fdo#104645 https://bugs.freedesktop.org/show_bug.cgi?id=104645
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#105707 https://bugs.freedesktop.org/show_bug.cgi?id=105707
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (9 -> 8) ==

  Missing(1): shard-glkb 


== Build changes ==

* Linux: CI_DRM_4115 -> Patchwork_8849

  CI_DRM_4115: 348182ddb984ca22a8005e93f18d55bbebb1702e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4453: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8849: 27bcdfc1029375eb9adb38df84259490b3c5a0e5 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4453: d0a0bca2194a673c4d9a70a2256837c59213c64b @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8849/shards.html
___
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: Unconditionally disable/enable dpll0 and apply WA1183 when changing cdclk.

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: Unconditionally disable/enable dpll0 and apply WA1183 when 
changing cdclk.
URL   : https://patchwork.freedesktop.org/series/42500/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4116 -> Patchwork_8851 =

== Summary - FAILURE ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Possible regressions 

igt@gem_exec_suspend@basic-s3:
  fi-skl-6770hq:  PASS -> DMESG-WARN +3
  fi-cfl-s3:  PASS -> DMESG-WARN +3
  fi-skl-gvtdvm:  PASS -> DMESG-WARN +3
  fi-cfl-u:   PASS -> DMESG-WARN +3
  fi-skl-6260u:   PASS -> DMESG-WARN +3

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
  fi-kbl-7560u:   PASS -> DMESG-WARN +3
  fi-skl-6600u:   PASS -> DMESG-WARN +3
  fi-kbl-7500u:   PASS -> DMESG-WARN +3

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-skl-6700k2:  PASS -> DMESG-WARN +4
  fi-cfl-8700k:   PASS -> DMESG-WARN +3

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-kbl-7567u:   PASS -> DMESG-WARN +3
  fi-skl-guc: PASS -> DMESG-WARN +3


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@debugfs_test@read_all_entries:
  fi-snb-2520m:   PASS -> INCOMPLETE (fdo#103713)

igt@gem_mmap_gtt@basic-small-bo-tiledx:
  fi-gdg-551: PASS -> FAIL (fdo#102575)


 Possible fixes 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-ivb-3520m:   DMESG-WARN (fdo#106084) -> PASS
  fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS


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


== Participating hosts (38 -> 35) ==

  Missing(3): fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

* Linux: CI_DRM_4116 -> Patchwork_8851

  CI_DRM_4116: 7ff375cb94000d93f7a9d541cb0c8180fbea80f2 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4453: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8851: f1546a78be1b480ab73aab66a60ba5584a613cc7 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4453: d0a0bca2194a673c4d9a70a2256837c59213c64b @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

f1546a78be1b drm/i915: Unconditionally disable/enable dpll0 and apply WA1183 
when changing cdclk.

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Unconditionally disable/enable dpll0 and apply WA1183 when changing cdclk.

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: Unconditionally disable/enable dpll0 and apply WA1183 when 
changing cdclk.
URL   : https://patchwork.freedesktop.org/series/42500/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
f1546a78be1b drm/i915: Unconditionally disable/enable dpll0 and apply WA1183 
when changing cdclk.
-:29: WARNING:BAD_SIGN_OFF: email address 'Arthur J Runyan" 
' might be better as 'Arthur J Runyan 
'
#29: 
Cc: Arthur J Runyan" 

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

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


[Intel-gfx] [PATCH] drm/i915: Unconditionally disable/enable dpll0 and apply WA1183 when changing cdclk.

2018-04-30 Thread Rodrigo Vivi
I believe I finally got the platform/panel that WA1183
was targeting.

WA 1183 aims to fix the cdclk change for
"CD clock frequency 308.57 or 617.14 MHz"

I faced one case here where the desired CDCLK to 308571 kHz,
VCO 864 kHz doesn't stick, unless that we unconditionally
disables and re-enables dpll0 and fully apply WA 1183.

[   42.857519] [drm:intel_dump_cdclk_state [i915]] Changing CDCLK to 308571 
kHz, VCO 864 kHz, ref 24000 kHz, bypass 24000 kHz, voltage level 0
[   42.897269] cdclk state doesn't match!
[   42.901052] WARNING: CPU: 5 PID: 1116 at 
drivers/gpu/drm/i915/intel_cdclk.c:2084 intel_set_cdclk+0x5d/0x110 [i915]
[   42.938004] RIP: 0010:intel_set_cdclk+0x5d/0x110 [i915]
[   43.155253] WARNING: CPU: 5 PID: 1116 at 
drivers/gpu/drm/i915/intel_cdclk.c:2084 intel_set_cdclk+0x5d/0x110 [i915]
[   43.170277] [drm:intel_dump_cdclk_state [i915]] [hw state] 337500 kHz, VCO 
810 kHz, ref 24000 kHz, bypass 24000 kHz, voltage level 0
[   43.182566] [drm:intel_dump_cdclk_state [i915]] [sw state] 308571 kHz, VCO 
864 kHz, ref 24000 kHz, bypass 24000 kHz, voltage level 0

Fixes: 53421c2fe99c ("drm/i915: Apply Display WA #1183 on skl, kbl, and cfl")
Cc: Arthur J Runyan" 
Cc: Lucas De Marchi 
Cc: Ville Syrjälä 
Signed-off-by: Rodrigo Vivi 
---
 drivers/gpu/drm/i915/intel_cdclk.c | 17 ++---
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_cdclk.c 
b/drivers/gpu/drm/i915/intel_cdclk.c
index 32d24c69da3c..5a65a79965cd 100644
--- a/drivers/gpu/drm/i915/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/intel_cdclk.c
@@ -1026,26 +1026,21 @@ static void skl_set_cdclk(struct drm_i915_private 
*dev_priv,
break;
}
 
-   if (dev_priv->cdclk.hw.vco != 0 &&
-   dev_priv->cdclk.hw.vco != vco)
-   skl_dpll0_disable(dev_priv);
+   skl_dpll0_disable(dev_priv);
 
cdclk_ctl = I915_READ(CDCLK_CTL);
 
-   if (dev_priv->cdclk.hw.vco != vco) {
-   /* Wa Display #1183: skl,kbl,cfl */
-   cdclk_ctl &= ~(CDCLK_FREQ_SEL_MASK | CDCLK_FREQ_DECIMAL_MASK);
-   cdclk_ctl |= freq_select | skl_cdclk_decimal(cdclk);
-   I915_WRITE(CDCLK_CTL, cdclk_ctl);
-   }
+   /* Wa Display #1183: skl,kbl,cfl */
+   cdclk_ctl &= ~(CDCLK_FREQ_SEL_MASK | CDCLK_FREQ_DECIMAL_MASK);
+   cdclk_ctl |= freq_select | skl_cdclk_decimal(cdclk);
+   I915_WRITE(CDCLK_CTL, cdclk_ctl);
 
/* Wa Display #1183: skl,kbl,cfl */
cdclk_ctl |= CDCLK_DIVMUX_CD_OVERRIDE;
I915_WRITE(CDCLK_CTL, cdclk_ctl);
POSTING_READ(CDCLK_CTL);
 
-   if (dev_priv->cdclk.hw.vco != vco)
-   skl_dpll0_enable(dev_priv, vco);
+   skl_dpll0_enable(dev_priv, vco);
 
/* Wa Display #1183: skl,kbl,cfl */
cdclk_ctl &= ~(CDCLK_FREQ_SEL_MASK | CDCLK_FREQ_DECIMAL_MASK);
-- 
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 drm/i915: remove check for aux irq (rev2)

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: remove check for aux irq (rev2)
URL   : https://patchwork.freedesktop.org/series/42305/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4115_full -> Patchwork_8848_full =

== Summary - WARNING ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Warnings 

igt@gem_exec_schedule@deep-vebox:
  shard-kbl:  PASS -> SKIP +2

igt@gem_mocs_settings@mocs-rc6-ctx-dirty-render:
  shard-kbl:  SKIP -> PASS


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_mmap_gtt@coherency:
  shard-glk:  NOTRUN -> FAIL (fdo#100587)

igt@kms_chv_cursor_fail@pipe-c-256x256-top-edge:
  shard-apl:  PASS -> FAIL (fdo#104671)

igt@kms_cursor_legacy@cursor-vs-flip-toggle:
  shard-hsw:  PASS -> FAIL (fdo#103355)

igt@kms_flip@2x-plain-flip-fb-recreate:
  shard-hsw:  PASS -> FAIL (fdo#100368)

igt@kms_flip@dpms-vs-vblank-race-interruptible:
  shard-hsw:  PASS -> FAIL (fdo#103060)

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

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

igt@kms_sysfs_edid_timing:
  shard-apl:  PASS -> WARN (fdo#100047)


 Possible fixes 

igt@kms_cursor_crc@cursor-128x128-suspend:
  shard-glk:  INCOMPLETE (k.org#198133, fdo#103359) -> PASS

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

igt@kms_flip@flip-vs-wf_vblank-interruptible:
  shard-glk:  FAIL (fdo#105312) -> PASS

igt@kms_flip@modeset-vs-vblank-race:
  shard-glk:  FAIL (fdo#103060) -> PASS +1

igt@kms_flip@plain-flip-fb-recreate:
  shard-hsw:  FAIL (fdo#100368) -> PASS +1

igt@kms_flip@plain-flip-ts-check-interruptible:
  shard-glk:  FAIL (fdo#100368) -> PASS +1


  fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#100587 https://bugs.freedesktop.org/show_bug.cgi?id=100587
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
  fdo#103355 https://bugs.freedesktop.org/show_bug.cgi?id=103355
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#104645 https://bugs.freedesktop.org/show_bug.cgi?id=104645
  fdo#104671 https://bugs.freedesktop.org/show_bug.cgi?id=104671
  fdo#105312 https://bugs.freedesktop.org/show_bug.cgi?id=105312
  fdo#105707 https://bugs.freedesktop.org/show_bug.cgi?id=105707
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (9 -> 8) ==

  Missing(1): shard-glkb 


== Build changes ==

* Linux: CI_DRM_4115 -> Patchwork_8848

  CI_DRM_4115: 348182ddb984ca22a8005e93f18d55bbebb1702e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4453: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8848: 83b37e765db46e83ae2f781fb52ed21f66311357 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4453: d0a0bca2194a673c4d9a70a2256837c59213c64b @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


Re: [Intel-gfx] [PATCH] drm/i915/firmware: Correct URL for firmware

2018-04-30 Thread Rodrigo Vivi
On Mon, Apr 30, 2018 at 03:59:28PM -0700, Anusha Srivatsa wrote:
> Replace 01.org URL with upstream linux-firmware repo URL.
> We no longer release firmware to 01.org.
> linux-firmware.git is the ultimate place to find
> the i915 firmwares.
> 
> Cc: Rodrigo Vivi 
> Signed-off-by: Anusha Srivatsa 
> ---
>  drivers/gpu/drm/i915/intel_uc_fw.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_uc_fw.h 
> b/drivers/gpu/drm/i915/intel_uc_fw.h
> index dc33b12..87910aa 100644
> --- a/drivers/gpu/drm/i915/intel_uc_fw.h
> +++ b/drivers/gpu/drm/i915/intel_uc_fw.h
> @@ -30,7 +30,7 @@ struct drm_i915_private;
>  struct i915_vma;
>  
>  /* Home of GuC, HuC and DMC firmwares */
> -#define INTEL_UC_FIRMWARE_URL 
> "https://01.org/linuxgraphics/downloads/firmware;
> +#define INTEL_UC_FIRMWARE_URL 
> "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915;

this or drm-firmware where we release first before our pull requests are 
accepted on linux-firmware.git?

Either way

Acked-by: Rodrigo Vivi 

just let me know what you want to do...

>  
>  enum intel_uc_fw_status {
>   INTEL_UC_FIRMWARE_FAIL = -1,
> -- 
> 2.7.4
> 
___
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/edp: Only use alternate fixed mode when requested (rev3)

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915/edp: Only use alternate fixed mode when requested (rev3)
URL   : https://patchwork.freedesktop.org/series/41492/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4116 -> Patchwork_8850 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/41492/revisions/3/mbox/

== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_mmap_gtt@basic-small-bo-tiledx:
  fi-gdg-551: PASS -> FAIL (fdo#102575)

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-snb-2520m:   PASS -> INCOMPLETE (fdo#103713)
  fi-ivb-3520m:   PASS -> DMESG-WARN (fdo#106084)


 Possible fixes 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS


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


== Participating hosts (38 -> 35) ==

  Missing(3): fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

* Linux: CI_DRM_4116 -> Patchwork_8850

  CI_DRM_4116: 7ff375cb94000d93f7a9d541cb0c8180fbea80f2 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4453: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8850: 467a1ee16409f0a76e0e9a21a6ce38e9eed4e0b9 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4453: d0a0bca2194a673c4d9a70a2256837c59213c64b @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

467a1ee16409 drn/i915/edp: Only use alternate fixed mode when requested

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/edp: Only use alternate fixed mode when requested (rev3)

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915/edp: Only use alternate fixed mode when requested (rev3)
URL   : https://patchwork.freedesktop.org/series/41492/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
467a1ee16409 drn/i915/edp: Only use alternate fixed mode when requested
-:30: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 
'!i915_modparams.enable_psr'
#30: FILE: drivers/gpu/drm/i915/intel_dp.c:1867:
+   if ((!intel_edp_compare_alt_mode(req_mode, panel_mode) &&
+   intel_psr_setup_time_valid(intel_dp, req_mode)) ||
+   (!i915_modparams.enable_psr))

-:31: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#31: FILE: drivers/gpu/drm/i915/intel_dp.c:1868:
+   if ((!intel_edp_compare_alt_mode(req_mode, panel_mode) &&
+   intel_psr_setup_time_valid(intel_dp, req_mode)) ||

-:45: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#45: FILE: drivers/gpu/drm/i915/intel_drv.h:1912:
+bool intel_psr_setup_time_valid(struct intel_dp *intel_dp,
+   const struct drm_display_mode *mode);

total: 0 errors, 0 warnings, 3 checks, 71 lines checked

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


[Intel-gfx] [PATCH V3] drn/i915/edp: Only use alternate fixed mode when requested

2018-04-30 Thread clinton . a . taylor
From: Clint Taylor 

In commit dc911f5bd8aa ("drm/i915/edp: Allow alternate fixed mode for eDP
if available."), the patch was always selecting the alternate refresh rate
even though user space was asking for the higher rate. This patch confirms
the alt mode setup time meets requirements and only uses the alt mode if
psr is enable for the platform.

V2: use clock instead of vrefresh for compare.
V3: Confirm PSR is enabled and alt mode setup time is valid

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105469

Cc: Jani Nikula 
Cc: Rodrigo Vivi 
Signed-off-by: Clint Taylor 
---
 drivers/gpu/drm/i915/intel_dp.c  |  4 +++-
 drivers/gpu/drm/i915/intel_drv.h |  2 ++
 drivers/gpu/drm/i915/intel_psr.c | 35 +++
 3 files changed, 28 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 83da50b..59b8a5c 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1864,7 +1864,9 @@ static bool intel_edp_compare_alt_mode(struct 
drm_display_mode *m1,
intel_connector->panel.alt_fixed_mode;
struct drm_display_mode *req_mode = _config->base.mode;
 
-   if (!intel_edp_compare_alt_mode(req_mode, panel_mode))
+   if ((!intel_edp_compare_alt_mode(req_mode, panel_mode) &&
+   intel_psr_setup_time_valid(intel_dp, req_mode)) ||
+   (!i915_modparams.enable_psr))
panel_mode = intel_connector->panel.fixed_mode;
 
drm_mode_debug_printmodeline(panel_mode);
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 11a1932..e69ce10 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1908,6 +1908,8 @@ void intel_psr_flush(struct drm_i915_private *dev_priv,
 void intel_psr_init(struct drm_i915_private *dev_priv);
 void intel_psr_single_frame_update(struct drm_i915_private *dev_priv,
   unsigned frontbuffer_bits);
+bool intel_psr_setup_time_valid(struct intel_dp *intel_dp,
+   const struct drm_display_mode *mode);
 void intel_psr_compute_config(struct intel_dp *intel_dp,
  struct intel_crtc_state *crtc_state);
 void intel_psr_irq_control(struct drm_i915_private *dev_priv, bool debug);
diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index 6233a32..9cc4109 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -578,6 +578,27 @@ static bool intel_psr2_config_valid(struct intel_dp 
*intel_dp,
return true;
 }
 
+bool intel_psr_setup_time_valid(struct intel_dp *intel_dp, const struct 
drm_display_mode *mode)
+{
+   int psr_setup_time = 0;
+
+   psr_setup_time = drm_dp_psr_setup_time(intel_dp->psr_dpcd);
+   if (psr_setup_time < 0) {
+   DRM_DEBUG_KMS("PSR condition failed: Invalid PSR setup time 
(0x%02x)\n",
+ intel_dp->psr_dpcd[1]);
+   return false;
+   }
+
+   if (intel_usecs_to_scanlines(mode, psr_setup_time) >
+   mode->crtc_vtotal - mode->crtc_vdisplay - 1) {
+   DRM_DEBUG_KMS("PSR condition failed: PSR setup time (%d us) too 
long\n",
+ psr_setup_time);
+   return false;
+   }
+
+   return true;
+}
+
 void intel_psr_compute_config(struct intel_dp *intel_dp,
  struct intel_crtc_state *crtc_state)
 {
@@ -585,7 +606,6 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev);
const struct drm_display_mode *adjusted_mode =
_state->base.adjusted_mode;
-   int psr_setup_time;
 
if (!CAN_PSR(dev_priv))
return;
@@ -626,17 +646,8 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
return;
}
 
-   psr_setup_time = drm_dp_psr_setup_time(intel_dp->psr_dpcd);
-   if (psr_setup_time < 0) {
-   DRM_DEBUG_KMS("PSR condition failed: Invalid PSR setup time 
(0x%02x)\n",
- intel_dp->psr_dpcd[1]);
-   return;
-   }
-
-   if (intel_usecs_to_scanlines(adjusted_mode, psr_setup_time) >
-   adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vdisplay - 1) {
-   DRM_DEBUG_KMS("PSR condition failed: PSR setup time (%d us) too 
long\n",
- psr_setup_time);
+   if (!intel_psr_setup_time_valid(intel_dp, adjusted_mode)) {
+   DRM_DEBUG_KMS("PSR Setup invalid\n");
return;
}
 
-- 
1.9.1

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

Re: [Intel-gfx] [PATCH v2 7/9] drm/i915/dp: Move code to check if aux ch is busy to a function

2018-04-30 Thread Souza, Jose
On Thu, 2018-04-26 at 15:51 -0700, Dhinakaran Pandiyan wrote:
> 
> 
> On Wed, 2018-04-18 at 15:43 -0700, José Roberto de Souza wrote:
> > This reduces the spaghetti that intel_dp_aux_xfer().
> > 
> > Moved doing less changes possible here, improvements to the new
> > function in further patch.
> > 
> > Signed-off-by: José Roberto de Souza 
> > Cc: Dhinakaran Pandiyan 
> > ---
> > 
> > New patch in this series.
> > 
> >  drivers/gpu/drm/i915/intel_dp.c | 52 +--
> > --
> >  1 file changed, 34 insertions(+), 18 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_dp.c
> > b/drivers/gpu/drm/i915/intel_dp.c
> > index 701963a192ee..a11465c62950 100644
> > --- a/drivers/gpu/drm/i915/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/intel_dp.c
> > @@ -1062,6 +1062,38 @@ static uint32_t skl_get_aux_send_ctl(struct
> > intel_dp *intel_dp,
> >DP_AUX_CH_CTL_SYNC_PULSE_SKL(32);
> >  }
> >  
> > +static bool intel_dp_aux_is_busy(struct intel_dp *intel_dp)
> > +{
> > +   struct intel_digital_port *intel_dig_port =
> > dp_to_dig_port(intel_dp);
> > +   struct drm_i915_private *dev_priv =
> > +   to_i915(intel_dig_port->base.base.dev);
> > +   i915_reg_t ch_ctl;
> > +   uint32_t status;
> > +   int try;
> > +
> > +   ch_ctl = intel_dp->aux_ch_ctl_reg(intel_dp);
> > +
> > +   for (try = 0; try < 3; try++) {
> > +   status = I915_READ_NOTRACE(ch_ctl);
> > +   if ((status & DP_AUX_CH_CTL_SEND_BUSY) == 0)
> > +   break;
> 
> Did you mean to return false here?

Oh thanks, I just fixed this in the next patch.

> 
> Anyway, this code here looks very similar to
> intel_dp_aux_wait_done().
> Might be worth checking if it can be reused.

I'm not sure that hardware will send a interruption when it finish a
aux ch transaction that started by it self, that is why I'm going safe
here and just keep what is working for now.

> 
> > +   msleep(1);
> > +   }
> > +
> > +   if (try == 3) {
> > +   static u32 last_status = -1;
> > +   const u32 status = I915_READ(ch_ctl);
> > +
> > +   if (status != last_status) {
> > +   WARN(1, "dp_aux_ch not started status
> > 0x%08x\n",
> > +status);
> > +   last_status = status;
> > +   }
> > +   }
> > +
> > +   return true;
> > +}
> > +
> >  static int
> >  intel_dp_aux_xfer(struct intel_dp *intel_dp,
> >   const uint8_t *send, int send_bytes,
> > @@ -1074,7 +1106,7 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
> > i915_reg_t ch_ctl, ch_data[5];
> > uint32_t aux_clock_divider;
> > int i, ret, recv_bytes;
> > -   uint32_t status;
> > +   uint32_t status = 0;
> > int try, clock = 0;
> > bool has_aux_irq = HAS_AUX_IRQ(dev_priv);
> > bool vdd;
> > @@ -1102,23 +1134,7 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
> > intel_dp_check_edp(intel_dp);
> >  
> > /* Try to wait for any previous AUX channel activity */
> > -   for (try = 0; try < 3; try++) {
> > -   status = I915_READ_NOTRACE(ch_ctl);
> > -   if ((status & DP_AUX_CH_CTL_SEND_BUSY) == 0)
> > -   break;
> > -   msleep(1);
> > -   }
> > -
> > -   if (try == 3) {
> > -   static u32 last_status = -1;
> > -   const u32 status = I915_READ(ch_ctl);
> > -
> > -   if (status != last_status) {
> > -   WARN(1, "dp_aux_ch not started status
> > 0x%08x\n",
> > -status);
> > -   last_status = status;
> > -   }
> > -
> > +   if (intel_dp_aux_is_busy(intel_dp)) {
> > ret = -EBUSY;
> > goto out;
> > }
> 
> 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 3/5] drm/i915/icl/guc: Define the GuC firmware version for Icelake

2018-04-30 Thread John Spotswood
On Fri, 2018-04-27 at 14:31 -0700, Oscar Mateo wrote:
> A GuC firmware for Icelake is now available. Let's use it.
> 
> v2: Split out the Cannonlake stuff in a separate patch (Michal)
> 
> v3: Rebased
> 
> v4:
>   - Rebased
>   - Split out MODULE_FIRMWARE so we don't accidentally push it
> before linux-firmware (Joonas)
> 
> v5: Use the latest firmware (v23.120)
> v6: Use the latest firmware (v26.171)
> v7: Rebased (remove guc-core-family)
> v8: Use the latest firmware (v27.182)
> 
> Cc: Michal Wajdeczko 
> Cc: John Spotswood 
> Cc: Tony Ye 
> Cc: Joonas Lahtinen 
> Cc: Daniele Ceraolo Spurio 
> Signed-off-by: Michel Thierry 
> Signed-off-by: Oscar Mateo 
> ---
>  drivers/gpu/drm/i915/intel_guc_fw.c | 9 +
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_guc_fw.c
> b/drivers/gpu/drm/i915/intel_guc_fw.c
> index a9e6fcc..c5c5dd8 100644
> --- a/drivers/gpu/drm/i915/intel_guc_fw.c
> +++ b/drivers/gpu/drm/i915/intel_guc_fw.c
> @@ -39,6 +39,9 @@
>  #define KBL_FW_MAJOR 9
>  #define KBL_FW_MINOR 39
>  
> +#define ICL_FW_MAJOR 27
> +#define ICL_FW_MINOR 182

This version will not be released, so why is this being added here?

> +
>  #define GUC_FW_PATH(platform, major, minor) \
> "i915/" __stringify(platform) "_guc_ver" __stringify(major)
> "_" __stringify(minor) ".bin"
>  
> @@ -51,6 +54,8 @@
>  #define I915_KBL_GUC_UCODE GUC_FW_PATH(kbl, KBL_FW_MAJOR,
> KBL_FW_MINOR)
>  MODULE_FIRMWARE(I915_KBL_GUC_UCODE);
>  
> +#define I915_ICL_GUC_UCODE GUC_FW_PATH(icl, ICL_FW_MAJOR,
> ICL_FW_MINOR)
> +
>  static void guc_fw_select(struct intel_uc_fw *guc_fw)
>  {
>   struct intel_guc *guc = container_of(guc_fw, struct
> intel_guc, fw);
> @@ -77,6 +82,10 @@ static void guc_fw_select(struct intel_uc_fw
> *guc_fw)
>   guc_fw->path = I915_KBL_GUC_UCODE;
>   guc_fw->major_ver_wanted = KBL_FW_MAJOR;
>   guc_fw->minor_ver_wanted = KBL_FW_MINOR;
> + } else if (IS_ICELAKE(dev_priv)) {
> + guc_fw->path = I915_ICL_GUC_UCODE;
> + guc_fw->major_ver_wanted = ICL_FW_MAJOR;
> + guc_fw->minor_ver_wanted = ICL_FW_MINOR;
>   } else {
>   DRM_WARN("%s: No firmware known for this
> platform!\n",
>    intel_uc_fw_type_repr(guc_fw->type));
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 2/5] drm/i915/icl/guc: Pass the bare minimum GuC init parameters for Icelake

2018-04-30 Thread John Spotswood
On Fri, 2018-04-27 at 14:31 -0700, Oscar Mateo wrote:
> Only enough to achieve HuC authentication. No GuC submission
> or any other feature for the time being.
> 
> Signed-off-by: Oscar Mateo 
> Cc: Joonas Lahtinen 
> Cc: Michal Wajdeczko 
> Cc: John Spotswood 
> Cc: Tony Ye 
> ---
>  drivers/gpu/drm/i915/intel_guc.c  | 10 --
>  drivers/gpu/drm/i915/intel_guc_fwif.h |  1 +
>  2 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_guc.c
> b/drivers/gpu/drm/i915/intel_guc.c
> index 116f4cc..133747c 100644
> --- a/drivers/gpu/drm/i915/intel_guc.c
> +++ b/drivers/gpu/drm/i915/intel_guc.c
> @@ -245,8 +245,12 @@ void intel_guc_init_params(struct intel_guc
> *guc)
>  
>   params[GUC_CTL_WA] |= GUC_CTL_WA_UK_BY_DRIVER;
>  
> - params[GUC_CTL_FEATURE] |= GUC_CTL_DISABLE_SCHEDULER |
> - GUC_CTL_VCS2_ENABLED;
> + if (INTEL_GEN(dev_priv) >= 11) {
> + params[GUC_CTL_FEATURE] |=
> GEN11_GUC_CTL_DISABLE_SCHEDULER;
> +  } else {
> + params[GUC_CTL_FEATURE] |=
> GUC_CTL_DISABLE_SCHEDULER;
> 
> + params[GUC_CTL_FEATURE] |= GUC_CTL_VCS2_ENABLED;

Should the OR'ing of GUC_CTL_VCS2_ENABLED be outside of the
conditional?  It looks like the only purpose of the conditional is to
distinguish GEN for the scheduler disable flag.

> + }
>  
>   params[GUC_CTL_LOG_PARAMS] = guc->log.flags;
>  
> @@ -259,6 +263,8 @@ void intel_guc_init_params(struct intel_guc *guc)
>   u32 pgs = intel_guc_ggtt_offset(guc, guc-
> >stage_desc_pool);
>   u32 ctx_in_16 = GUC_MAX_STAGE_DESCRIPTORS / 16;
>  
> + GEM_BUG_ON(INTEL_GEN(dev_priv) >= 11);
> +
>   params[GUC_CTL_DEBUG] |= ads << GUC_ADS_ADDR_SHIFT;
>   params[GUC_CTL_DEBUG] |= GUC_ADS_ENABLED;
>  
> diff --git a/drivers/gpu/drm/i915/intel_guc_fwif.h
> b/drivers/gpu/drm/i915/intel_guc_fwif.h
> index 0867ba7..781c0c0 100644
> --- a/drivers/gpu/drm/i915/intel_guc_fwif.h
> +++ b/drivers/gpu/drm/i915/intel_guc_fwif.h
> @@ -106,6 +106,7 @@
>  #define   GUC_CTL_PREEMPTION_LOG (1 << 5)
>  #define   GUC_CTL_ENABLE_SLPC(1 << 7)
>  #define   GUC_CTL_RESET_ON_PREMPT_FAILURE(1 << 8)
> +#define   GEN11_GUC_CTL_DISABLE_SCHEDULER(1 << 14)
>  
>  #define GUC_CTL_DEBUG8
>  #define   GUC_LOG_VERBOSITY_SHIFT0
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v2 5/9] drm/i915/psr: Handle PSR RFB storage error

2018-04-30 Thread Souza, Jose
On Thu, 2018-04-26 at 15:37 -0700, Dhinakaran Pandiyan wrote:
> 
> 
> On Wed, 2018-04-18 at 15:43 -0700, José Roberto de Souza wrote:
> > Sink will interrupt source when it have any problem saving or
> > reading
> > the remote frame buffer.
> > 
> > Signed-off-by: José Roberto de Souza 
> > Cc: Dhinakaran Pandiyan 
> > Cc: Rodrigo Vivi 
> > ---
> > 
> > Changes from v1:
> > - printing a debug message when sink assert a error
> > 
> >  drivers/gpu/drm/i915/intel_psr.c | 12 
> >  1 file changed, 12 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_psr.c
> > b/drivers/gpu/drm/i915/intel_psr.c
> > index 4cb27faab707..558b08a43f9e 100644
> > --- a/drivers/gpu/drm/i915/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/intel_psr.c
> > @@ -1156,6 +1156,18 @@ void intel_psr_hpd_short_pulse_handle(struct
> > intel_dp *intel_dp)
> > intel_psr_exit(dev_priv);
> > }
> >  
> > +   if (drm_dp_dpcd_readb(_dp->aux, DP_PSR_ERROR_STATUS,
> > ) != 1) {
> > +   DRM_DEBUG_KMS("PSR_ERROR_STATUS read failed\n");
> > +   goto dpcd_error;
> > +   }
> > +
> > +   if (val & DP_PSR_RFB_STORAGE_ERROR) {
> > +   DRM_DEBUG_KMS("PSR RFB storage error, exiting
> > PSR\n");
> > +   intel_psr_exit(dev_priv);
> 
> What do we achieve with an exit? Resetting PSR? I don't think that's
> enough if the sink has storage errors. I think we should just disable
> PSR here too.

Disabling now.

> 
> > +   }
> > +   /* clear status register */
> > +   drm_dp_dpcd_writeb(_dp->aux, DP_PSR_ERROR_STATUS,
> > val);
> 
> So the other two errors are not handled, silently clearing them isn't
> right. How about at least printing a debug with the read value and
> saying the error wasn't handled?

DP_PSR_VSC_SDP_UNCORRECTABLE_ERROR is only applicable for PSR2 and to
sink report DP_PSR_LINK_CRC_ERROR a bit needs to be set in
DP_PSR_EN_CFG(both done in the next patch).

Do you still think that would be nice to print?

> 
> > +
> > /* TODO: handle other PSR/PSR2 errors */
> >  dpcd_error:
> > intel_psr_schedule_activate_work(dev_priv);
> 
> 
___
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/firmware: Correct URL for firmware

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915/firmware: Correct URL for firmware
URL   : https://patchwork.freedesktop.org/series/42497/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4115 -> Patchwork_8849 =

== Summary - SUCCESS ==

  No regressions found.

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

== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_exec_suspend@basic-s4-devices:
  fi-kbl-7500u:   PASS -> DMESG-WARN (fdo#105128)

igt@kms_flip@basic-flip-vs-wf_vblank:
  fi-cfl-8700k:   PASS -> FAIL (fdo#100368)

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-cnl-y3:  PASS -> DMESG-WARN (fdo#104951)


 Possible fixes 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-snb-2520m:   INCOMPLETE (fdo#103713) -> PASS
  fi-ivb-3520m:   DMESG-WARN (fdo#106084) -> PASS +1

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS


  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#104951 https://bugs.freedesktop.org/show_bug.cgi?id=104951
  fdo#105128 https://bugs.freedesktop.org/show_bug.cgi?id=105128
  fdo#106084 https://bugs.freedesktop.org/show_bug.cgi?id=106084


== Participating hosts (38 -> 35) ==

  Missing(3): fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

* Linux: CI_DRM_4115 -> Patchwork_8849

  CI_DRM_4115: 348182ddb984ca22a8005e93f18d55bbebb1702e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4453: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8849: 27bcdfc1029375eb9adb38df84259490b3c5a0e5 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4453: d0a0bca2194a673c4d9a70a2256837c59213c64b @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

27bcdfc10293 drm/i915/firmware: Correct URL for firmware

== Logs ==

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


Re: [Intel-gfx] [PATCH v2 4/9] drm/i915/psr: Begin to handle PSR/PSR2 errors set by sink

2018-04-30 Thread Souza, Jose
On Thu, 2018-04-26 at 15:29 -0700, Dhinakaran Pandiyan wrote:
> 
> 
> On Wed, 2018-04-18 at 15:43 -0700, José Roberto de Souza wrote:
> > eDP spec states that sink device will do a short pulse in HPD
> > line when there is a PSR/PSR2 error that needs to be handled by
> > source, this is handling the first and most simples error:
> > DP_PSR_SINK_INTERNAL_ERROR.
> > 
> > Signed-off-by: José Roberto de Souza 
> > Cc: Dhinakaran Pandiyan 
> > Cc: Rodrigo Vivi 
> > ---
> > 
> > Changes from v1:
> > - printing a debug message when sink assert a error
> > 
> >  drivers/gpu/drm/i915/intel_dp.c  |  2 ++
> >  drivers/gpu/drm/i915/intel_drv.h |  1 +
> >  drivers/gpu/drm/i915/intel_psr.c | 48
> > +---
> >  3 files changed, 47 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_dp.c
> > b/drivers/gpu/drm/i915/intel_dp.c
> > index 62f82c4298ac..701963a192ee 100644
> > --- a/drivers/gpu/drm/i915/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/intel_dp.c
> > @@ -4462,6 +4462,8 @@ intel_dp_short_pulse(struct intel_dp
> > *intel_dp)
> > if (intel_dp_needs_link_retrain(intel_dp))
> > return false;
> >  
> > +   intel_psr_hpd_short_pulse_handle(intel_dp);
> 
>intel_psr_short_pulse() should be sufficient.

done

> 
> > +
> > if (intel_dp->compliance.test_type ==
> > DP_TEST_LINK_TRAINING) {
> > DRM_DEBUG_KMS("Link Training Compliance Test
> > requested\n");
> > /* Send a Hotplug Uevent to userspace to start
> > modeset */
> > diff --git a/drivers/gpu/drm/i915/intel_drv.h
> > b/drivers/gpu/drm/i915/intel_drv.h
> > index 5bd2263407b2..b79e15ecd052 100644
> > --- a/drivers/gpu/drm/i915/intel_drv.h
> > +++ b/drivers/gpu/drm/i915/intel_drv.h
> > @@ -1901,6 +1901,7 @@ void intel_psr_single_frame_update(struct
> > drm_i915_private *dev_priv,
> >unsigned frontbuffer_bits);
> >  void intel_psr_compute_config(struct intel_dp *intel_dp,
> >   struct intel_crtc_state
> > *crtc_state);
> > +void intel_psr_hpd_short_pulse_handle(struct intel_dp *intel_dp);
> >  
> >  /* intel_runtime_pm.c */
> >  int intel_power_domains_init(struct drm_i915_private *);
> > diff --git a/drivers/gpu/drm/i915/intel_psr.c
> > b/drivers/gpu/drm/i915/intel_psr.c
> > index 934498505356..4cb27faab707 100644
> > --- a/drivers/gpu/drm/i915/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/intel_psr.c
> > @@ -996,6 +996,15 @@ void intel_psr_invalidate(struct
> > drm_i915_private *dev_priv,
> > mutex_unlock(_priv->psr.lock);
> >  }
> >  
> > +static void intel_psr_schedule_activate_work(struct
> > drm_i915_private *dev_priv)
> > +{
> > +   if (dev_priv->psr.active || dev_priv-
> > >psr.busy_frontbuffer_bits
> > +   || work_busy(_priv->psr.work.work))
> > +   return;
> > +
> > +   schedule_delayed_work(_priv->psr.work,
> > msecs_to_jiffies(100));
> > +}
> > +
> >  /**
> >   * intel_psr_flush - Flush PSR
> >   * @dev_priv: i915 device
> > @@ -1052,10 +1061,8 @@ void intel_psr_flush(struct drm_i915_private
> > *dev_priv,
> > }
> > }
> >  
> > -   if (!dev_priv->psr.active && !dev_priv-
> > >psr.busy_frontbuffer_bits)
> > -   if (!work_busy(_priv->psr.work.work))
> > -   schedule_delayed_work(_priv->psr.work,
> > - msecs_to_jiffies(100
> > ));
> > +   intel_psr_schedule_activate_work(dev_priv);
> > +
> > mutex_unlock(_priv->psr.lock);
> >  }
> >  
> > @@ -1122,3 +1129,36 @@ void intel_psr_init(struct drm_i915_private
> > *dev_priv)
> > dev_priv->psr.exit = hsw_psr_exit;
> > }
> >  }
> > +
> > +void intel_psr_hpd_short_pulse_handle(struct intel_dp *intel_dp)
> > +{
> > +   struct intel_digital_port *intel_dig_port =
> > dp_to_dig_port(intel_dp);
> > +   struct drm_device *dev = intel_dig_port->base.base.dev;
> > +   struct drm_i915_private *dev_priv = to_i915(dev);
> > +   struct i915_psr *psr = _priv->psr;
> > +   uint8_t val;
> > +
> > +   if (!HAS_PSR(dev_priv) || !intel_dp_is_edp(intel_dp))
> > +   return;
> > +
> > +   mutex_lock(>lock);
> > +
> > +   if (psr->enabled != intel_dp)
> > +   goto not_enabled;
> > +
> > +   if (drm_dp_dpcd_readb(_dp->aux, DP_PSR_STATUS, )
> > != 1) {
> > +   DRM_DEBUG_KMS("PSR_STATUS read failed\n");
> 
> Since we can't handle the irq without reading the dpcd and the irq is
> potentially an error condition, I think this should be DRM_ERROR.

Done

> 
> 
> > +   goto dpcd_error;
> > +   }
> > +
> > +   if ((val & DP_PSR_SINK_STATE_MASK) ==
> > DP_PSR_SINK_INTERNAL_ERROR) {
> > +   DRM_DEBUG_KMS("PSR sink internal error, exiting
> > PSR\n");
> > +   intel_psr_exit(dev_priv);
> 
> Shouldn't this be disabling PSR? Exit will allow for re-activation
> immediately. An unknown error in the sink IMO should disable PSR for
> good.


I was not able to reproduce any 

[Intel-gfx] [PATCH] drm/i915/firmware: Correct URL for firmware

2018-04-30 Thread Anusha Srivatsa
Replace 01.org URL with upstream linux-firmware repo URL.
We no longer release firmware to 01.org.
linux-firmware.git is the ultimate place to find
the i915 firmwares.

Cc: Rodrigo Vivi 
Signed-off-by: Anusha Srivatsa 
---
 drivers/gpu/drm/i915/intel_uc_fw.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_uc_fw.h 
b/drivers/gpu/drm/i915/intel_uc_fw.h
index dc33b12..87910aa 100644
--- a/drivers/gpu/drm/i915/intel_uc_fw.h
+++ b/drivers/gpu/drm/i915/intel_uc_fw.h
@@ -30,7 +30,7 @@ struct drm_i915_private;
 struct i915_vma;
 
 /* Home of GuC, HuC and DMC firmwares */
-#define INTEL_UC_FIRMWARE_URL "https://01.org/linuxgraphics/downloads/firmware;
+#define INTEL_UC_FIRMWARE_URL 
"https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915;
 
 enum intel_uc_fw_status {
INTEL_UC_FIRMWARE_FAIL = -1,
-- 
2.7.4

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


Re: [Intel-gfx] [PATCH v2 1/9] drm/i915/psr: Move specific HSW+ WARN_ON to HSW+ function

2018-04-30 Thread Souza, Jose
On Wed, 2018-04-25 at 17:41 -0700, Dhinakaran Pandiyan wrote:
> On Wednesday, April 18, 2018 3:43:03 PM PDT José Roberto de Souza
> wrote:
> > It was reading some random register in VLV and CHV.
> > 
> > Signed-off-by: José Roberto de Souza 
> > Cc: Dhinakaran Pandiyan 
> > Reviewed-by: Rodrigo Vivi 
> > ---
> > 
> > No changes from v1.
> > 
> >  drivers/gpu/drm/i915/intel_psr.c | 9 +
> >  1 file changed, 5 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_psr.c
> > b/drivers/gpu/drm/i915/intel_psr.c index 69a5b276f4d8..659180656f5b
> > 100644
> > --- a/drivers/gpu/drm/i915/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/intel_psr.c
> > @@ -424,6 +424,11 @@ static void hsw_psr_activate(struct intel_dp
> > *intel_dp)
> > struct drm_device *dev = dig_port->base.base.dev;
> > struct drm_i915_private *dev_priv = to_i915(dev);
> > 
> > +   if (dev_priv->psr.psr2_enabled)
> > +   WARN_ON(I915_READ(EDP_PSR2_CTL) &
> > EDP_PSR2_ENABLE);
> > +   else
> > +   WARN_ON(I915_READ(EDP_PSR_CTL) & EDP_PSR_ENABLE);
> > +
> 
> Why not move the checks under hsw_activate_psr2 and
> hsw_activate_psr1?  This 
> is just duplicating another  psr2_enabled branch that is right below.

Okay, done.

> 
> > /* On HSW+ after we enable PSR on source it will activate
> > it
> >  * as soon as it match configure idle_frame count. So
> >  * we just actually enable it here on activation time.
> > @@ -549,10 +554,6 @@ static void intel_psr_activate(struct intel_dp
> > *intel_dp) struct drm_device *dev = intel_dig_port->base.base.dev;
> > struct drm_i915_private *dev_priv = to_i915(dev);
> > 
> > -   if (dev_priv->psr.psr2_enabled)
> > -   WARN_ON(I915_READ(EDP_PSR2_CTL) &
> > EDP_PSR2_ENABLE);
> > -   else
> > -   WARN_ON(I915_READ(EDP_PSR_CTL) & EDP_PSR_ENABLE);
> > WARN_ON(dev_priv->psr.active);
> > lockdep_assert_held(_priv->psr.lock);
> 
> 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: remove check for aux irq (rev2)

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: remove check for aux irq (rev2)
URL   : https://patchwork.freedesktop.org/series/42305/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4115 -> Patchwork_8848 =

== Summary - WARNING ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Warnings 

igt@gem_exec_gttfill@basic:
  fi-pnv-d510:PASS -> SKIP


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_mmap_gtt@basic-small-bo-tiledx:
  fi-gdg-551: PASS -> FAIL (fdo#102575)

igt@kms_chamelium@dp-edid-read:
  fi-kbl-7500u:   PASS -> FAIL (fdo#103841)

igt@kms_flip@basic-flip-vs-wf_vblank:
  fi-glk-j4005:   PASS -> FAIL (fdo#100368)

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
  fi-cnl-psr: PASS -> DMESG-WARN (fdo#104951)


 Possible fixes 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-snb-2520m:   INCOMPLETE (fdo#103713) -> PASS

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-ivb-3520m:   DMESG-WARN (fdo#106084) -> PASS


  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575
  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841
  fdo#104951 https://bugs.freedesktop.org/show_bug.cgi?id=104951
  fdo#106084 https://bugs.freedesktop.org/show_bug.cgi?id=106084


== Participating hosts (38 -> 35) ==

  Missing(3): fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

* Linux: CI_DRM_4115 -> Patchwork_8848

  CI_DRM_4115: 348182ddb984ca22a8005e93f18d55bbebb1702e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4453: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8848: 83b37e765db46e83ae2f781fb52ed21f66311357 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4453: d0a0bca2194a673c4d9a70a2256837c59213c64b @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

83b37e765db4 drm/i915: remove check for aux irq

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: remove check for aux irq (rev2)

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: remove check for aux irq (rev2)
URL   : https://patchwork.freedesktop.org/series/42305/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Commit: drm/i915: remove check for aux irq
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3663:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3660:16: warning: expression 
using sizeof(void)

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: remove check for aux irq (rev2)

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: remove check for aux irq (rev2)
URL   : https://patchwork.freedesktop.org/series/42305/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
83b37e765db4 drm/i915: remove check for aux irq
-:15: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#15: 
> > > > > > This became dead code with commit 309bd8ed464f ("drm/i915: Reinstate

-:15: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ 
chars of sha1> ("")' - ie: 'commit 309bd8ed464f ("drm/i915: 
Reinstate GMBUS and AUX interrupts on gen4/g4x")'
#15: 
> > > > > > This became dead code with commit 309bd8ed464f ("drm/i915: Reinstate

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

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

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


Re: [Intel-gfx] [PATCH v2] drm/i915: Disable some extra clang warnings

2018-04-30 Thread Matthias Kaehlcke
On Mon, Apr 30, 2018 at 10:01:50PM +0100, Chris Wilson wrote:
> Quoting Matthias Kaehlcke (2018-04-30 21:51:45)
> > On Mon, Apr 30, 2018 at 09:01:49PM +0100, Chris Wilson wrote:
> > > Quoting Matthias Kaehlcke (2018-04-30 20:31:19)
> > > > On Mon, Mar 19, 2018 at 12:14:51PM -0700, Matthias Kaehlcke wrote:
> > > > > Commit 39bf4de89ff7 ("drm/i915: Add -Wall -Wextra to our build, set
> > > > > warnings to full") enabled extra warnings for i915 to spot possible
> > > > > bugs in new code, and then disabled a subset of these warnings to keep
> > > > > the current code building without warnings (with gcc). Enabling the
> > > > > extra warnings also enabled some additional clang-only warnings, as a
> > > > > result building i915 with clang currently is extremely noisy. For now
> > > > > also disable the clang warnings sign-compare, sometimes-uninitialized,
> > > > > unneeded-internal-declaration and initializer-overrides. If desired
> > > > > they can be re-enabled after the code has been fixed.
> > > > > 
> > > > > Fixes: 39bf4de89ff7 ("drm/i915: Add -Wall -Wextra to our build, set
> > > > > warnings to full")
> > > 
> > > Do we need to backport this for a non-default build with a non-default
> > > compiler?
> > 
> > If it affected a LTS build I'd say yes, but since that isn't the case
> > I think it's not necessary.
> > 
> > > > > Signed-off-by: Matthias Kaehlcke 
> > > > > ---
> > > > > Changes in v2:
> > > > > - rebased on drm-tip
> > > > > - added comment indicating that disabled warnings are clang warnings
> > > > > 
> > > > >  drivers/gpu/drm/i915/Makefile | 5 +
> > > > >  1 file changed, 5 insertions(+)
> > > > > 
> > > > > diff --git a/drivers/gpu/drm/i915/Makefile 
> > > > > b/drivers/gpu/drm/i915/Makefile
> > > > > index 4eee91a3a236..9717c037b582 100644
> > > > > --- a/drivers/gpu/drm/i915/Makefile
> > > > > +++ b/drivers/gpu/drm/i915/Makefile
> > > > > @@ -18,6 +18,11 @@ subdir-ccflags-y += $(call cc-disable-warning, 
> > > > > type-limits)
> > > > >  subdir-ccflags-y += $(call cc-disable-warning, 
> > > > > missing-field-initializers)
> > > > >  subdir-ccflags-y += $(call cc-disable-warning, implicit-fallthrough)
> > > > >  subdir-ccflags-y += $(call cc-disable-warning, 
> > > > > unused-but-set-variable)
> > > > > +# clang warnings
> > > > > +subdir-ccflags-y += $(call cc-disable-warning, sign-compare)
> > > 
> > > Too much mixup in the code to be fixed overnight indeed.
> > > 
> > > > > +subdir-ccflags-y += $(call cc-disable-warning, 
> > > > > sometimes-uninitialized)
> > > 
> > > Annoyingly it appears that clang has more false positives.
> > > 
> > > > > +subdir-ccflags-y += $(call cc-disable-warning, 
> > > > > unneeded-internal-declaration)
> > > 
> > > Example? I don't recall this one, so don't know if we should just not
> > > fix it rather than suppress. I've used ignored-attributes, perhaps that
> > > was for the same cause.
> > 
> > drivers/gpu/drm/i915/intel_guc_submission.c:183:13: warning: function
> >   'has_doorbell' is not needed and will not be emitted
> >   [-Wunneeded-internal-declaration]
> > static bool has_doorbell(struct intel_guc_client *client)
> > 
> > The function is only called within a GEM_BUG_ON macro, which does not
> > evaluate the expression unless CONFIG_DRM_I915_DEBUG_GEM is set.
> > 
> > Instead of disabling the warning it would probably be better to mark
> > has_doorbell as __maybe_unused.
> 
> Hmm, if it is just this one, I would remove the use from
> intel_guc_submission and move it into selftests/
> The single use case inside intel_guc_submission isn't that interesting
> and I doubt we would miss not having the assert.

Could you take care of this? I'm not really familiar with the i915
codebase and might not put it exactly where you want it ;-)

I'd then rebase this patch and leave -Wunneeded-internal-declaration enabled.
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for input/psmouse: Don't hold the mutex while calling ->disconnect (rev2)

2018-04-30 Thread Patchwork
== Series Details ==

Series: input/psmouse: Don't hold the mutex while calling ->disconnect (rev2)
URL   : https://patchwork.freedesktop.org/series/40259/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4113_full -> Patchwork_8846_full =

== Summary - WARNING ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Warnings 

igt@gem_exec_schedule@deep-bsd1:
  shard-kbl:  PASS -> SKIP

igt@pm_rc6_residency@rc6-accuracy:
  shard-kbl:  SKIP -> PASS +1


== Known issues ==

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

  === IGT changes ===

 Issues hit 

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

igt@kms_flip@absolute-wf_vblank-interruptible:
  shard-glk:  PASS -> FAIL (fdo#106087)

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

igt@kms_flip@plain-flip-ts-check:
  shard-kbl:  PASS -> DMESG-WARN (fdo#105602, fdo#103558) +20

igt@kms_flip@plain-flip-ts-check-interruptible:
  shard-glk:  PASS -> FAIL (fdo#100368)

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


 Possible fixes 

igt@kms_flip@modeset-vs-vblank-race-interruptible:
  shard-glk:  FAIL (fdo#103060) -> PASS

igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render:
  shard-apl:  FAIL (fdo#103167) -> PASS


  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
  fdo#106087 https://bugs.freedesktop.org/show_bug.cgi?id=106087


== Participating hosts (9 -> 8) ==

  Missing(1): shard-glkb 


== Build changes ==

* Linux: CI_DRM_4113 -> Patchwork_8846

  CI_DRM_4113: 1d2a421b1f9b47883b9d0eeb28dc4069e462dbe3 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8846: 8a1511bf4ec174790a5d2564dfd87ab6373f4a52 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


Re: [Intel-gfx] [PATCH] drm/i915: remove check for aux irq

2018-04-30 Thread Lucas De Marchi
On Thu, Apr 26, 2018 at 06:50:05PM +0300, Ville Syrjälä wrote:
> On Thu, Apr 26, 2018 at 08:42:54AM -0700, Lucas De Marchi wrote:
> > On Thu, Apr 26, 2018 at 06:27:26PM +0300, Ville Syrjälä wrote:
> > > On Thu, Apr 26, 2018 at 08:22:12AM -0700, Lucas De Marchi wrote:
> > > > On Thu, Apr 26, 2018 at 04:43:38PM +0300, Ville Syrjälä wrote:
> > > > > On Wed, Apr 25, 2018 at 02:55:24PM -0700, Lucas De Marchi wrote:
> > > > > > This became dead code with commit 309bd8ed464f ("drm/i915: Reinstate
> > > > > > GMBUS and AUX interrupts on gen4/g4x").
> > > > > > 
> > > > > > Cc: Ville Syrjälä 
> > > > > > Signed-off-by: Lucas De Marchi 
> > > > > > ---
> > > > > >  drivers/gpu/drm/i915/i915_drv.h  |  3 +--
> > > > > >  drivers/gpu/drm/i915/intel_dp.c  | 22 +++---
> > > > > >  drivers/gpu/drm/i915/intel_drv.h |  1 -
> > > > > >  drivers/gpu/drm/i915/intel_psr.c |  2 +-
> > > > > >  4 files changed, 9 insertions(+), 19 deletions(-)
> > > > > > 
> > > > > > diff --git a/drivers/gpu/drm/i915/i915_drv.h 
> > > > > > b/drivers/gpu/drm/i915/i915_drv.h
> > > > > > index 8444ca8d5aa3..09e1c2289ea1 100644
> > > > > > --- a/drivers/gpu/drm/i915/i915_drv.h
> > > > > > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > > > > > @@ -2545,7 +2545,7 @@ intel_info(const struct drm_i915_private 
> > > > > > *dev_priv)
> > > > > >  IS_SKL_GT3(dev_priv) || IS_SKL_GT4(dev_priv))
> > > > > >  
> > > > > >  /*
> > > > > > - * dp aux and gmbus irq on gen4 seems to be able to generate 
> > > > > > legacy interrupts
> > > > > > + * gmbus irq on gen4 seems to be able to generate legacy interrupts
> > > > > 
> > > > > Why are you removing vital information from the comment?
> > > > 
> > > > Because it wouldn't match the code anymore. We always use aux irq.
> > > 
> > > The comment is documenting the hardware behaviour. We don't want to lose
> > > that information.
> > 
> > IMO it's confusing to have the comment saying one thing and then code
> > not following it. Reading it again I see the second paragraph you added
> > actually document the code and the first the HW behavior. Maybe starting
> > the second paragraph with a "However" would make it clearer.  Or I can just
> > drop this change in the comment.
> 
> Or you can move the relevant parts of the comment to the place where
> we do the "MSI or not to MSI" decision.

Humn, not sure I fully understand what you mean by relevant part. Do you
mean something like this?

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index b7dbeba72dec..3fc6b915dac1 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -1183,6 +1183,9 @@ static int i915_driver_init_hw(struct drm_i915_private 
*dev_priv)
 * get lost on g4x as well, and interrupt delivery seems to stay
 * properly dead afterwards. So we'll just disable them for all
 * pre-gen5 chipsets.
+*
+* Since we don't enable MSI on gen <= 4 we can always use GMBUS/AUX
+* interrupts.
 */
if (INTEL_GEN(dev_priv) >= 5) {
if (pci_enable_msi(pdev) < 0)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 09e1c2289ea1..5fd47227da23 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2545,13 +2545,10 @@ intel_info(const struct drm_i915_private *dev_priv)
 IS_SKL_GT3(dev_priv) || IS_SKL_GT4(dev_priv))
 
 /*
- * gmbus irq on gen4 seems to be able to generate legacy interrupts
+ * dp aux and gmbus irq on gen4 seems to be able to generate legacy interrupts
  * even when in MSI mode. This results in spurious interrupt warnings if the
  * legacy irq no. is shared with another device. The kernel then disables that
  * interrupt source and so prevents the other device from working properly.
- *
- * Since we don't enable MSI anymore on gen4, we can always use GMBUS/AUX
- * interrupts.
  */
 #define HAS_GMBUS_IRQ(dev_priv) (INTEL_GEN(dev_priv) >= 4)
 
---

It doesn't seem clearer to me.

Lucas De Marchi


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


Re: [Intel-gfx] [PATCH] drm/i915/edp: Only use alternate fixed mode when requested

2018-04-30 Thread Clint Taylor



On 04/30/2018 12:49 AM, Jani Nikula wrote:

On Sat, 14 Apr 2018, "Vivi, Rodrigo"  wrote:

On Apr 12, 2018, at 2:21 PM, Taylor, Clinton A  
wrote:




On 04/11/2018 04:11 PM, Chris Wilson wrote:
Quoting clinton.a.tay...@intel.com (2018-04-12 00:13:26)

From: Clint Taylor 

In commit dc911f5bd8aa ("drm/i915/edp: Allow alternate fixed mode for eDP
if available."), the patch was always selecting the alternate refresh rate
even though user space was asking for the higher rate. This patch adds a
check for vrefresh rate as well as the rest of the mode geometry.

V2: use clock instead of vrefresh for compare.

Fixes: dc911f5bd8aac ("Allow alternate fixed mode for eDP if available.")
Cc: David Weinehall 
Cc: Rodrigo Vivi 
Signed-off-by: Clint Taylor 

Still leaves the other discussion point in the other thread unresolved.
The fields are supplied by the user and can be arbitrary, so if they
request a clock for a 30Hz mode, instead of using the 40Hz alternative,
we use the 60Hz normal mode (by way of example). Is equality always the
best choice here?

This feature is for testing PSR panels that don't support single frame setup 
times in their preferred timing. The down-clocked mode is the timing that the 
panel specifically states is supported. If a customer specifies a custom mode 
either it should be rejected or the eDP fixed mode (preferred) should be used. 
If we want to allow the users to set a custom timing to their eDP panels then 
we should get rid of the fixed mode feature for eDP panels.

But that was the goal of dc911f5bd8aac because
most of the panels we had here by that time with PSR had that short vblank 
periods for higher mode...
So the idea was to remove the fixed mode allowing the alternate one with lower 
rate and consequently higher vblank period.

But the idea was never to respect the arbitrary user request. All panels we 
were targeting here had both modes listed as supported... one with 60Hz and one 
with 48 Hz. Both same resolution.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105469

Either we finally get a fix in with Cc: stable, or we revert
dc911f5bd8aa ("drm/i915/edp: Allow alternate fixed mode for eDP if
available.")


I have V3 of the patch in flight now. Though I have no problem with the 
revert as well.


-Clint




BR,
Jani.




-Clint


-Chris

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


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


Re: [Intel-gfx] [PATCH] input/psmouse: Don't hold the mutex while calling ->disconnect

2018-04-30 Thread Dmitry Torokhov
Hi Daniel,

On Mon, Apr 30, 2018 at 09:56:49PM +0200, Daniel Vetter wrote:
> At least trackpoint_disconnect wants to remove some sysfs files, and
> we can't remove sysfs files while holding psmouse_mutex:
> 
> ==
> WARNING: possible circular locking dependency detected
> 4.16.0-rc5-g613eb885b69e-drmtip_1+ #1 Tainted: G U
> --
> kworker/0:3/102 is trying to acquire lock:
>  (kn->count#130){}, at: [<9679748b>] 
> kernfs_remove_by_name_ns+0x3b/0x80
> 
> but task is already holding lock:
>  (psmouse_mutex){+.+.}, at: [<14f44bcc>] psmouse_disconnect+0x62/0x160
> 
> which lock already depends on the new lock.
> 
> the existing dependency chain (in reverse order) is:
> 
> -> #1 (psmouse_mutex){+.+.}:
>psmouse_attr_set_helper+0x28/0x140
>kernfs_fop_write+0xfe/0x180
>__vfs_write+0x1e/0x130
>vfs_write+0xbd/0x1b0
>SyS_write+0x40/0xa0
>do_syscall_64+0x65/0x1a0
>entry_SYSCALL_64_after_hwframe+0x42/0xb7
> 
> -> #0 (kn->count#130){}:
>__kernfs_remove+0x243/0x2b0
>kernfs_remove_by_name_ns+0x3b/0x80
>remove_files.isra.0+0x2b/0x60
>sysfs_remove_group+0x38/0x80
>sysfs_remove_groups+0x24/0x40
>trackpoint_disconnect+0x2c/0x50
>psmouse_disconnect+0x8f/0x160
>serio_disconnect_driver+0x28/0x40
>serio_driver_remove+0xc/0x10
>device_release_driver_internal+0x15b/0x230
>serio_handle_event+0x1c8/0x260
>process_one_work+0x215/0x620
>worker_thread+0x48/0x3a0
>kthread+0xfb/0x130
>ret_from_fork+0x3a/0x50
> 
> other info that might help us debug this:
> 
>  Possible unsafe locking scenario:
> 
>CPU0CPU1
>
>   lock(psmouse_mutex);
>lock(kn->count#130);
>lock(psmouse_mutex);
>   lock(kn->count#130);
> 
>  *** DEADLOCK ***
> 
> 6 locks held by kworker/0:3/102:
>  #0:  ((wq_completion)"events_long"){+.+.}, at: [<2e408bfa>] 
> process_one_work+0x191/0x620
>  #1:  (serio_event_work){+.+.}, at: [<2e408bfa>] 
> process_one_work+0x191/0x620
>  #2:  (serio_mutex){+.+.}, at: [] 
> serio_handle_event+0x23/0x260
>  #3:  (>mutex){}, at: [] 
> device_release_driver_internal+0x2f/0x230
>  #4:  (>drv_mutex){+.+.}, at: [<9719f997>] 
> serio_disconnect_driver+0x16/0x40
>  #5:  (psmouse_mutex){+.+.}, at: [<14f44bcc>] 
> psmouse_disconnect+0x62/0x160
> 
> stack backtrace:
> CPU: 0 PID: 102 Comm: kworker/0:3 Tainted: G U   
> 4.16.0-rc5-g613eb885b69e-drmtip_1+ #1
> Hardware name: LENOVO 74591P0/74591P0, BIOS 6DET28WW (1.05 ) 07/30/2008
> Workqueue: events_long serio_handle_event
> Call Trace:
>  dump_stack+0x5f/0x86
>  print_circular_bug.isra.18+0x1d0/0x2c0
>  __lock_acquire+0x14ae/0x1b60
>  ? kernfs_remove_by_name_ns+0x20/0x80
>  ? lock_acquire+0xaf/0x200
>  lock_acquire+0xaf/0x200
>  ? kernfs_remove_by_name_ns+0x3b/0x80
>  __kernfs_remove+0x243/0x2b0
>  ? kernfs_remove_by_name_ns+0x3b/0x80
>  ? kernfs_name_hash+0xd/0x70
>  ? kernfs_find_ns+0x7e/0x100
>  kernfs_remove_by_name_ns+0x3b/0x80
>  remove_files.isra.0+0x2b/0x60
>  sysfs_remove_group+0x38/0x80
>  sysfs_remove_groups+0x24/0x40
>  trackpoint_disconnect+0x2c/0x50
>  psmouse_disconnect+0x8f/0x160
>  serio_disconnect_driver+0x28/0x40
>  serio_driver_remove+0xc/0x10
>  device_release_driver_internal+0x15b/0x230
>  serio_handle_event+0x1c8/0x260
>  process_one_work+0x215/0x620
>  worker_thread+0x48/0x3a0
>  ? _raw_spin_unlock_irqrestore+0x4c/0x60
>  kthread+0xfb/0x130
>  ? process_one_work+0x620/0x620
>  ? _kthread_create_on_node+0x30/0x30
>  ret_from_fork+0x3a/0x50
> 
> Signed-off-by: Daniel Vetter 
> Cc: Dmitry Torokhov 
> Cc: Benjamin Tissoires 
> Cc: Daniel Vetter 
> Cc: Arvind Yadav 
> Cc: Stephen Lyons 
> Cc: linux-in...@vger.kernel.org
> ---
>  drivers/input/mouse/psmouse-base.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/input/mouse/psmouse-base.c 
> b/drivers/input/mouse/psmouse-base.c
> index 8900c3166ebf..06ccd8e22f3c 100644
> --- a/drivers/input/mouse/psmouse-base.c
> +++ b/drivers/input/mouse/psmouse-base.c
> @@ -1484,8 +1484,10 @@ static void psmouse_disconnect(struct serio *serio)
>   psmouse_deactivate(parent);
>   }
>  
> + mutex_unlock(_mutex);
>   if (psmouse->disconnect)
>   psmouse->disconnect(psmouse);
> + mutex_lock(_mutex);

Why do you think it is proper to drop this mutex? It is introduced for a
reason.

I think the trace you are seeing is due to:

commit 988cd7afb3f37598891ca70b4c6eb914c338c46a
Author: Tejun Heo 
Date:   Mon Feb 3 

[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [CI,1/2] drm/i915: Move timeline from GTT to ring

2018-04-30 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915: Move timeline from GTT to ring
URL   : https://patchwork.freedesktop.org/series/42491/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4114 -> Patchwork_8847 =

== Summary - FAILURE ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Possible regressions 

igt@gem_exec_suspend@basic-s4-devices:
  fi-skl-guc: PASS -> FAIL +1


 Warnings 

igt@gem_exec_gttfill@basic:
  fi-pnv-d510:SKIP -> PASS


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@debugfs_test@read_all_entries:
  fi-snb-2520m:   PASS -> INCOMPLETE (fdo#103713)


 Possible fixes 

igt@kms_chamelium@dp-edid-read:
  fi-kbl-7500u:   FAIL (fdo#103841) -> PASS

igt@kms_pipe_crc_basic@hang-read-crc-pipe-b:
  fi-elk-e7500:   DMESG-WARN (fdo#105225) -> PASS

igt@kms_pipe_crc_basic@hang-read-crc-pipe-c:
  fi-elk-e7500:   INCOMPLETE (fdo#103989) -> SKIP

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-ivb-3520m:   DMESG-WARN (fdo#106084) -> PASS
  fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS


  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#103989 https://bugs.freedesktop.org/show_bug.cgi?id=103989
  fdo#105225 https://bugs.freedesktop.org/show_bug.cgi?id=105225
  fdo#106084 https://bugs.freedesktop.org/show_bug.cgi?id=106084


== Participating hosts (38 -> 35) ==

  Missing(3): fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

* Linux: CI_DRM_4114 -> Patchwork_8847

  CI_DRM_4114: 098bd5375d41d0ae6e9840014d76cd6d7a14d1e3 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4453: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8847: c1e97fa278687ac5cbab659943a5c47ba79a1d62 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4453: d0a0bca2194a673c4d9a70a2256837c59213c64b @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

c1e97fa27868 drm/i915: Split i915_gem_timeline into individual timelines
f70295e570a3 drm/i915: Move timeline from GTT to ring

== Logs ==

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


Re: [Intel-gfx] [PATCH v2] drm/i915: Disable some extra clang warnings

2018-04-30 Thread Chris Wilson
Quoting Matthias Kaehlcke (2018-04-30 21:51:45)
> On Mon, Apr 30, 2018 at 09:01:49PM +0100, Chris Wilson wrote:
> > Quoting Matthias Kaehlcke (2018-04-30 20:31:19)
> > > On Mon, Mar 19, 2018 at 12:14:51PM -0700, Matthias Kaehlcke wrote:
> > > > Commit 39bf4de89ff7 ("drm/i915: Add -Wall -Wextra to our build, set
> > > > warnings to full") enabled extra warnings for i915 to spot possible
> > > > bugs in new code, and then disabled a subset of these warnings to keep
> > > > the current code building without warnings (with gcc). Enabling the
> > > > extra warnings also enabled some additional clang-only warnings, as a
> > > > result building i915 with clang currently is extremely noisy. For now
> > > > also disable the clang warnings sign-compare, sometimes-uninitialized,
> > > > unneeded-internal-declaration and initializer-overrides. If desired
> > > > they can be re-enabled after the code has been fixed.
> > > > 
> > > > Fixes: 39bf4de89ff7 ("drm/i915: Add -Wall -Wextra to our build, set
> > > > warnings to full")
> > 
> > Do we need to backport this for a non-default build with a non-default
> > compiler?
> 
> If it affected a LTS build I'd say yes, but since that isn't the case
> I think it's not necessary.
> 
> > > > Signed-off-by: Matthias Kaehlcke 
> > > > ---
> > > > Changes in v2:
> > > > - rebased on drm-tip
> > > > - added comment indicating that disabled warnings are clang warnings
> > > > 
> > > >  drivers/gpu/drm/i915/Makefile | 5 +
> > > >  1 file changed, 5 insertions(+)
> > > > 
> > > > diff --git a/drivers/gpu/drm/i915/Makefile 
> > > > b/drivers/gpu/drm/i915/Makefile
> > > > index 4eee91a3a236..9717c037b582 100644
> > > > --- a/drivers/gpu/drm/i915/Makefile
> > > > +++ b/drivers/gpu/drm/i915/Makefile
> > > > @@ -18,6 +18,11 @@ subdir-ccflags-y += $(call cc-disable-warning, 
> > > > type-limits)
> > > >  subdir-ccflags-y += $(call cc-disable-warning, 
> > > > missing-field-initializers)
> > > >  subdir-ccflags-y += $(call cc-disable-warning, implicit-fallthrough)
> > > >  subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
> > > > +# clang warnings
> > > > +subdir-ccflags-y += $(call cc-disable-warning, sign-compare)
> > 
> > Too much mixup in the code to be fixed overnight indeed.
> > 
> > > > +subdir-ccflags-y += $(call cc-disable-warning, sometimes-uninitialized)
> > 
> > Annoyingly it appears that clang has more false positives.
> > 
> > > > +subdir-ccflags-y += $(call cc-disable-warning, 
> > > > unneeded-internal-declaration)
> > 
> > Example? I don't recall this one, so don't know if we should just not
> > fix it rather than suppress. I've used ignored-attributes, perhaps that
> > was for the same cause.
> 
> drivers/gpu/drm/i915/intel_guc_submission.c:183:13: warning: function
>   'has_doorbell' is not needed and will not be emitted
>   [-Wunneeded-internal-declaration]
> static bool has_doorbell(struct intel_guc_client *client)
> 
> The function is only called within a GEM_BUG_ON macro, which does not
> evaluate the expression unless CONFIG_DRM_I915_DEBUG_GEM is set.
> 
> Instead of disabling the warning it would probably be better to mark
> has_doorbell as __maybe_unused.

Hmm, if it is just this one, I would remove the use from
intel_guc_submission and move it into selftests/
The single use case inside intel_guc_submission isn't that interesting
and I doubt we would miss not having the assert.
-Chris
 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [CI,1/2] drm/i915: Move timeline from GTT to ring

2018-04-30 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915: Move timeline from GTT to ring
URL   : https://patchwork.freedesktop.org/series/42491/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Commit: drm/i915: Move timeline from GTT to ring
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3663:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3654:16: warning: expression 
using sizeof(void)

Commit: drm/i915: Split i915_gem_timeline into individual timelines
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3654:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3652:16: warning: expression 
using sizeof(void)

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [CI,1/2] drm/i915: Move timeline from GTT to ring

2018-04-30 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/2] drm/i915: Move timeline from GTT to ring
URL   : https://patchwork.freedesktop.org/series/42491/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
f70295e570a3 drm/i915: Move timeline from GTT to ring
c1e97fa27868 drm/i915: Split i915_gem_timeline into individual timelines
-:463: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#463: 
deleted file mode 100644

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

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

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


Re: [Intel-gfx] [PATCH v2] drm/i915: Disable some extra clang warnings

2018-04-30 Thread Matthias Kaehlcke
On Mon, Apr 30, 2018 at 09:01:49PM +0100, Chris Wilson wrote:
> Quoting Matthias Kaehlcke (2018-04-30 20:31:19)
> > On Mon, Mar 19, 2018 at 12:14:51PM -0700, Matthias Kaehlcke wrote:
> > > Commit 39bf4de89ff7 ("drm/i915: Add -Wall -Wextra to our build, set
> > > warnings to full") enabled extra warnings for i915 to spot possible
> > > bugs in new code, and then disabled a subset of these warnings to keep
> > > the current code building without warnings (with gcc). Enabling the
> > > extra warnings also enabled some additional clang-only warnings, as a
> > > result building i915 with clang currently is extremely noisy. For now
> > > also disable the clang warnings sign-compare, sometimes-uninitialized,
> > > unneeded-internal-declaration and initializer-overrides. If desired
> > > they can be re-enabled after the code has been fixed.
> > > 
> > > Fixes: 39bf4de89ff7 ("drm/i915: Add -Wall -Wextra to our build, set
> > > warnings to full")
> 
> Do we need to backport this for a non-default build with a non-default
> compiler?

If it affected a LTS build I'd say yes, but since that isn't the case
I think it's not necessary.

> > > Signed-off-by: Matthias Kaehlcke 
> > > ---
> > > Changes in v2:
> > > - rebased on drm-tip
> > > - added comment indicating that disabled warnings are clang warnings
> > > 
> > >  drivers/gpu/drm/i915/Makefile | 5 +
> > >  1 file changed, 5 insertions(+)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
> > > index 4eee91a3a236..9717c037b582 100644
> > > --- a/drivers/gpu/drm/i915/Makefile
> > > +++ b/drivers/gpu/drm/i915/Makefile
> > > @@ -18,6 +18,11 @@ subdir-ccflags-y += $(call cc-disable-warning, 
> > > type-limits)
> > >  subdir-ccflags-y += $(call cc-disable-warning, 
> > > missing-field-initializers)
> > >  subdir-ccflags-y += $(call cc-disable-warning, implicit-fallthrough)
> > >  subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
> > > +# clang warnings
> > > +subdir-ccflags-y += $(call cc-disable-warning, sign-compare)
> 
> Too much mixup in the code to be fixed overnight indeed.
> 
> > > +subdir-ccflags-y += $(call cc-disable-warning, sometimes-uninitialized)
> 
> Annoyingly it appears that clang has more false positives.
> 
> > > +subdir-ccflags-y += $(call cc-disable-warning, 
> > > unneeded-internal-declaration)
> 
> Example? I don't recall this one, so don't know if we should just not
> fix it rather than suppress. I've used ignored-attributes, perhaps that
> was for the same cause.

drivers/gpu/drm/i915/intel_guc_submission.c:183:13: warning: function
  'has_doorbell' is not needed and will not be emitted
  [-Wunneeded-internal-declaration]
static bool has_doorbell(struct intel_guc_client *client)

The function is only called within a GEM_BUG_ON macro, which does not
evaluate the expression unless CONFIG_DRM_I915_DEBUG_GEM is set.

Instead of disabling the warning it would probably be better to mark
has_doorbell as __maybe_unused.
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for input/psmouse: Don't hold the mutex while calling ->disconnect (rev2)

2018-04-30 Thread Patchwork
== Series Details ==

Series: input/psmouse: Don't hold the mutex while calling ->disconnect (rev2)
URL   : https://patchwork.freedesktop.org/series/40259/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4113 -> Patchwork_8846 =

== Summary - SUCCESS ==

  No regressions found.

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

== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-ivb-3520m:   PASS -> DMESG-WARN (fdo#106084)


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


== Participating hosts (38 -> 35) ==

  Missing(3): fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

* Linux: CI_DRM_4113 -> Patchwork_8846

  CI_DRM_4113: 1d2a421b1f9b47883b9d0eeb28dc4069e462dbe3 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8846: 8a1511bf4ec174790a5d2564dfd87ab6373f4a52 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

8a1511bf4ec1 input/psmouse: Don't hold the mutex while calling ->disconnect

== Logs ==

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


[Intel-gfx] [CI 2/2] drm/i915: Split i915_gem_timeline into individual timelines

2018-04-30 Thread Chris Wilson
We need to move to a more flexible timeline that doesn't assume one
fence context per engine, and so allow for a single timeline to be used
across a combination of engines. This means that preallocating a fence
context per engine is now a hindrance, and so we want to introduce the
singular timeline. From the code perspective, this has the notable
advantage of clearing up a lot of mirky semantics and some clumsy
pointer chasing.

By splitting the timeline up into a single entity rather than an array
of per-engine timelines, we can realise the goal of the previous patch
of tracking the timeline alongside the ring.

v2: Tweak wait_for_idle to stop the compiling thinking that ret may be
uninitialised.

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
Reviewed-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/Makefile |   2 +-
 drivers/gpu/drm/i915/i915_drv.h   |   4 +-
 drivers/gpu/drm/i915/i915_gem.c   | 129 +---
 drivers/gpu/drm/i915/i915_gem_context.c   |  48 ++---
 drivers/gpu/drm/i915/i915_gem_context.h   |   2 -
 drivers/gpu/drm/i915/i915_gem_gtt.h   |   3 +-
 drivers/gpu/drm/i915/i915_gem_timeline.c  | 198 --
 drivers/gpu/drm/i915/i915_gpu_error.c |   4 +-
 drivers/gpu/drm/i915/i915_perf.c  |  10 +-
 drivers/gpu/drm/i915/i915_request.c   |  68 +++---
 drivers/gpu/drm/i915/i915_request.h   |   3 +-
 drivers/gpu/drm/i915/i915_timeline.c  | 105 ++
 .../{i915_gem_timeline.h => i915_timeline.h}  |  67 +++---
 drivers/gpu/drm/i915/intel_engine_cs.c|  27 ++-
 drivers/gpu/drm/i915/intel_guc_submission.c   |   4 +-
 drivers/gpu/drm/i915/intel_lrc.c  |  48 +++--
 drivers/gpu/drm/i915/intel_ringbuffer.c   |  25 ++-
 drivers/gpu/drm/i915/intel_ringbuffer.h   |  11 +-
 .../{i915_gem_timeline.c => i915_timeline.c}  |  94 +++--
 drivers/gpu/drm/i915/selftests/mock_engine.c  |  32 ++-
 .../gpu/drm/i915/selftests/mock_gem_device.c  |  10 +-
 .../gpu/drm/i915/selftests/mock_timeline.c|  45 ++--
 .../gpu/drm/i915/selftests/mock_timeline.h|  28 +--
 23 files changed, 398 insertions(+), 569 deletions(-)
 delete mode 100644 drivers/gpu/drm/i915/i915_gem_timeline.c
 create mode 100644 drivers/gpu/drm/i915/i915_timeline.c
 rename drivers/gpu/drm/i915/{i915_gem_timeline.h => i915_timeline.h} (68%)
 rename drivers/gpu/drm/i915/selftests/{i915_gem_timeline.c => i915_timeline.c} 
(70%)

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 9bee52a949a9..120db21fcd50 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -67,11 +67,11 @@ i915-y += i915_cmd_parser.o \
  i915_gem_shrinker.o \
  i915_gem_stolen.o \
  i915_gem_tiling.o \
- i915_gem_timeline.o \
  i915_gem_userptr.o \
  i915_gemfs.o \
  i915_query.o \
  i915_request.o \
+ i915_timeline.o \
  i915_trace_points.o \
  i915_vma.o \
  intel_breadcrumbs.o \
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index ffa87aef31e5..11ff84eef52a 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -72,10 +72,10 @@
 #include "i915_gem_fence_reg.h"
 #include "i915_gem_object.h"
 #include "i915_gem_gtt.h"
-#include "i915_gem_timeline.h"
 #include "i915_gpu_error.h"
 #include "i915_request.h"
 #include "i915_scheduler.h"
+#include "i915_timeline.h"
 #include "i915_vma.h"
 
 #include "intel_gvt.h"
@@ -2059,8 +2059,6 @@ struct drm_i915_private {
void (*resume)(struct drm_i915_private *);
void (*cleanup_engine)(struct intel_engine_cs *engine);
 
-   struct i915_gem_timeline execution_timeline;
-   struct i915_gem_timeline legacy_timeline;
struct list_head timelines;
 
struct list_head active_rings;
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 438a2fc5bba0..484354f25f98 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -162,7 +162,7 @@ static u32 __i915_gem_park(struct drm_i915_private *i915)
synchronize_irq(i915->drm.irq);
 
intel_engines_park(i915);
-   i915_gem_timelines_park(i915);
+   i915_timelines_park(i915);
 
i915_pmu_gt_parked(i915);
 
@@ -2977,8 +2977,8 @@ i915_gem_find_active_request(struct intel_engine_cs 
*engine)
 * extra delay for a recent interrupt is pointless. Hence, we do
 * not need an engine->irq_seqno_barrier() before the seqno reads.
 */
-   spin_lock_irqsave(>timeline->lock, flags);
-   list_for_each_entry(request, >timeline->requests, link) {
+   spin_lock_irqsave(>timeline.lock, flags);
+   list_for_each_entry(request, >timeline.requests, link) {
if 

[Intel-gfx] [CI 1/2] drm/i915: Move timeline from GTT to ring

2018-04-30 Thread Chris Wilson
In the future, we want to move a request between engines. To achieve
this, we first realise that we have two timelines in effect here. The
first runs through the GTT is required for ordering vma access, which is
tracked currently by engine. The second is implied by sequential
execution of commands inside the ringbuffer. This timeline is one that
maps to userspace's expectations when submitting requests (i.e. given the
same context, batch A is executed before batch B). As the rings's
timelines map to userspace and the GTT timeline an implementation
detail, move the timeline from the GTT into the ring itself (per-context
in logical-ring-contexts/execlists, or a global per-engine timeline for
the shared ringbuffers in legacy submission.

The two timelines are still assumed to be equivalent at the moment (no
migrating requests between engines yet) and so we can simply move from
one to the other without adding extra ordering.

v2: Reinforce that one isn't allowed to mix the engine execution
timeline with the client timeline from userspace (on the ring).

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
Reviewed-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/i915_drv.h   | 13 +
 drivers/gpu/drm/i915/i915_gem.c   |  9 ++--
 drivers/gpu/drm/i915/i915_gem_context.c   | 15 +-
 drivers/gpu/drm/i915/i915_gem_context.h   |  2 +
 drivers/gpu/drm/i915/i915_gem_gtt.c   |  3 --
 drivers/gpu/drm/i915/i915_gem_gtt.h   |  1 -
 drivers/gpu/drm/i915/i915_gem_timeline.c  | 54 +--
 drivers/gpu/drm/i915/i915_gem_timeline.h  |  4 ++
 drivers/gpu/drm/i915/i915_request.c   | 13 +++--
 drivers/gpu/drm/i915/intel_engine_cs.c|  3 +-
 drivers/gpu/drm/i915/intel_lrc.c  |  2 +-
 drivers/gpu/drm/i915/intel_ringbuffer.c   | 10 +++-
 drivers/gpu/drm/i915/intel_ringbuffer.h   |  5 +-
 drivers/gpu/drm/i915/selftests/mock_engine.c  |  3 +-
 .../gpu/drm/i915/selftests/mock_gem_device.c  |  4 +-
 drivers/gpu/drm/i915/selftests/mock_gtt.c |  1 -
 16 files changed, 101 insertions(+), 41 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 6268a5103dba..ffa87aef31e5 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2059,7 +2059,8 @@ struct drm_i915_private {
void (*resume)(struct drm_i915_private *);
void (*cleanup_engine)(struct intel_engine_cs *engine);
 
-   struct i915_gem_timeline global_timeline;
+   struct i915_gem_timeline execution_timeline;
+   struct i915_gem_timeline legacy_timeline;
struct list_head timelines;
 
struct list_head active_rings;
@@ -3235,16 +3236,6 @@ i915_gem_context_lookup(struct drm_i915_file_private 
*file_priv, u32 id)
return ctx;
 }
 
-static inline struct intel_timeline *
-i915_gem_context_lookup_timeline(struct i915_gem_context *ctx,
-struct intel_engine_cs *engine)
-{
-   struct i915_address_space *vm;
-
-   vm = ctx->ppgtt ? >ppgtt->base : >i915->ggtt.base;
-   return >timeline.engine[engine->id];
-}
-
 int i915_perf_open_ioctl(struct drm_device *dev, void *data,
 struct drm_file *file);
 int i915_perf_add_config_ioctl(struct drm_device *dev, void *data,
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index fa1d94a4eb5f..438a2fc5bba0 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3110,10 +3110,10 @@ static void engine_skip_context(struct i915_request 
*request)
 {
struct intel_engine_cs *engine = request->engine;
struct i915_gem_context *hung_ctx = request->ctx;
-   struct intel_timeline *timeline;
+   struct intel_timeline *timeline = request->timeline;
unsigned long flags;
 
-   timeline = i915_gem_context_lookup_timeline(hung_ctx, engine);
+   GEM_BUG_ON(timeline == engine->timeline);
 
spin_lock_irqsave(>timeline->lock, flags);
spin_lock(>lock);
@@ -3782,7 +3782,7 @@ int i915_gem_wait_for_idle(struct drm_i915_private *i915, 
unsigned int flags)
 
ret = wait_for_engines(i915);
} else {
-   ret = wait_for_timeline(>gt.global_timeline, flags);
+   ret = wait_for_timeline(>gt.execution_timeline, flags);
}
 
return ret;
@@ -5652,7 +5652,8 @@ void i915_gem_cleanup_early(struct drm_i915_private 
*dev_priv)
WARN_ON(dev_priv->mm.object_count);
 
mutex_lock(_priv->drm.struct_mutex);
-   i915_gem_timeline_fini(_priv->gt.global_timeline);
+   i915_gem_timeline_fini(_priv->gt.legacy_timeline);
+   i915_gem_timeline_fini(_priv->gt.execution_timeline);
WARN_ON(!list_empty(_priv->gt.timelines));
mutex_unlock(_priv->drm.struct_mutex);
 
diff --git 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for input/psmouse: Don't hold the mutex while calling ->disconnect (rev2)

2018-04-30 Thread Patchwork
== Series Details ==

Series: input/psmouse: Don't hold the mutex while calling ->disconnect (rev2)
URL   : https://patchwork.freedesktop.org/series/40259/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
8a1511bf4ec1 input/psmouse: Don't hold the mutex while calling ->disconnect
-:18: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#18: 
 (psmouse_mutex){+.+.}, at: [<14f44bcc>] psmouse_disconnect+0x62/0x160

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

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


Re: [Intel-gfx] [PATCH v2] drm/i915: Disable some extra clang warnings

2018-04-30 Thread Chris Wilson
Quoting Matthias Kaehlcke (2018-04-30 20:31:19)
> On Mon, Mar 19, 2018 at 12:14:51PM -0700, Matthias Kaehlcke wrote:
> > Commit 39bf4de89ff7 ("drm/i915: Add -Wall -Wextra to our build, set
> > warnings to full") enabled extra warnings for i915 to spot possible
> > bugs in new code, and then disabled a subset of these warnings to keep
> > the current code building without warnings (with gcc). Enabling the
> > extra warnings also enabled some additional clang-only warnings, as a
> > result building i915 with clang currently is extremely noisy. For now
> > also disable the clang warnings sign-compare, sometimes-uninitialized,
> > unneeded-internal-declaration and initializer-overrides. If desired
> > they can be re-enabled after the code has been fixed.
> > 
> > Fixes: 39bf4de89ff7 ("drm/i915: Add -Wall -Wextra to our build, set
> > warnings to full")

Do we need to backport this for a non-default build with a non-default
compiler?

> > Signed-off-by: Matthias Kaehlcke 
> > ---
> > Changes in v2:
> > - rebased on drm-tip
> > - added comment indicating that disabled warnings are clang warnings
> > 
> >  drivers/gpu/drm/i915/Makefile | 5 +
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
> > index 4eee91a3a236..9717c037b582 100644
> > --- a/drivers/gpu/drm/i915/Makefile
> > +++ b/drivers/gpu/drm/i915/Makefile
> > @@ -18,6 +18,11 @@ subdir-ccflags-y += $(call cc-disable-warning, 
> > type-limits)
> >  subdir-ccflags-y += $(call cc-disable-warning, missing-field-initializers)
> >  subdir-ccflags-y += $(call cc-disable-warning, implicit-fallthrough)
> >  subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
> > +# clang warnings
> > +subdir-ccflags-y += $(call cc-disable-warning, sign-compare)

Too much mixup in the code to be fixed overnight indeed.

> > +subdir-ccflags-y += $(call cc-disable-warning, sometimes-uninitialized)

Annoyingly it appears that clang has more false positives.

> > +subdir-ccflags-y += $(call cc-disable-warning, 
> > unneeded-internal-declaration)

Example? I don't recall this one, so don't know if we should just not
fix it rather than suppress. I've used ignored-attributes, perhaps that
was for the same cause.

> > +subdir-ccflags-y += $(call cc-disable-warning, initializer-overrides)

While we used per-file to restrict this one, I don't think we care that
much for precision with clang as well.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] input/psmouse: Don't hold the mutex while calling ->disconnect

2018-04-30 Thread Daniel Vetter
At least trackpoint_disconnect wants to remove some sysfs files, and
we can't remove sysfs files while holding psmouse_mutex:

==
WARNING: possible circular locking dependency detected
4.16.0-rc5-g613eb885b69e-drmtip_1+ #1 Tainted: G U
--
kworker/0:3/102 is trying to acquire lock:
 (kn->count#130){}, at: [<9679748b>] 
kernfs_remove_by_name_ns+0x3b/0x80

but task is already holding lock:
 (psmouse_mutex){+.+.}, at: [<14f44bcc>] psmouse_disconnect+0x62/0x160

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-> #1 (psmouse_mutex){+.+.}:
   psmouse_attr_set_helper+0x28/0x140
   kernfs_fop_write+0xfe/0x180
   __vfs_write+0x1e/0x130
   vfs_write+0xbd/0x1b0
   SyS_write+0x40/0xa0
   do_syscall_64+0x65/0x1a0
   entry_SYSCALL_64_after_hwframe+0x42/0xb7

-> #0 (kn->count#130){}:
   __kernfs_remove+0x243/0x2b0
   kernfs_remove_by_name_ns+0x3b/0x80
   remove_files.isra.0+0x2b/0x60
   sysfs_remove_group+0x38/0x80
   sysfs_remove_groups+0x24/0x40
   trackpoint_disconnect+0x2c/0x50
   psmouse_disconnect+0x8f/0x160
   serio_disconnect_driver+0x28/0x40
   serio_driver_remove+0xc/0x10
   device_release_driver_internal+0x15b/0x230
   serio_handle_event+0x1c8/0x260
   process_one_work+0x215/0x620
   worker_thread+0x48/0x3a0
   kthread+0xfb/0x130
   ret_from_fork+0x3a/0x50

other info that might help us debug this:

 Possible unsafe locking scenario:

   CPU0CPU1
   
  lock(psmouse_mutex);
   lock(kn->count#130);
   lock(psmouse_mutex);
  lock(kn->count#130);

 *** DEADLOCK ***

6 locks held by kworker/0:3/102:
 #0:  ((wq_completion)"events_long"){+.+.}, at: [<2e408bfa>] 
process_one_work+0x191/0x620
 #1:  (serio_event_work){+.+.}, at: [<2e408bfa>] 
process_one_work+0x191/0x620
 #2:  (serio_mutex){+.+.}, at: [] 
serio_handle_event+0x23/0x260
 #3:  (>mutex){}, at: [] 
device_release_driver_internal+0x2f/0x230
 #4:  (>drv_mutex){+.+.}, at: [<9719f997>] 
serio_disconnect_driver+0x16/0x40
 #5:  (psmouse_mutex){+.+.}, at: [<14f44bcc>] 
psmouse_disconnect+0x62/0x160

stack backtrace:
CPU: 0 PID: 102 Comm: kworker/0:3 Tainted: G U   
4.16.0-rc5-g613eb885b69e-drmtip_1+ #1
Hardware name: LENOVO 74591P0/74591P0, BIOS 6DET28WW (1.05 ) 07/30/2008
Workqueue: events_long serio_handle_event
Call Trace:
 dump_stack+0x5f/0x86
 print_circular_bug.isra.18+0x1d0/0x2c0
 __lock_acquire+0x14ae/0x1b60
 ? kernfs_remove_by_name_ns+0x20/0x80
 ? lock_acquire+0xaf/0x200
 lock_acquire+0xaf/0x200
 ? kernfs_remove_by_name_ns+0x3b/0x80
 __kernfs_remove+0x243/0x2b0
 ? kernfs_remove_by_name_ns+0x3b/0x80
 ? kernfs_name_hash+0xd/0x70
 ? kernfs_find_ns+0x7e/0x100
 kernfs_remove_by_name_ns+0x3b/0x80
 remove_files.isra.0+0x2b/0x60
 sysfs_remove_group+0x38/0x80
 sysfs_remove_groups+0x24/0x40
 trackpoint_disconnect+0x2c/0x50
 psmouse_disconnect+0x8f/0x160
 serio_disconnect_driver+0x28/0x40
 serio_driver_remove+0xc/0x10
 device_release_driver_internal+0x15b/0x230
 serio_handle_event+0x1c8/0x260
 process_one_work+0x215/0x620
 worker_thread+0x48/0x3a0
 ? _raw_spin_unlock_irqrestore+0x4c/0x60
 kthread+0xfb/0x130
 ? process_one_work+0x620/0x620
 ? _kthread_create_on_node+0x30/0x30
 ret_from_fork+0x3a/0x50

Signed-off-by: Daniel Vetter 
Cc: Dmitry Torokhov 
Cc: Benjamin Tissoires 
Cc: Daniel Vetter 
Cc: Arvind Yadav 
Cc: Stephen Lyons 
Cc: linux-in...@vger.kernel.org
---
 drivers/input/mouse/psmouse-base.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/input/mouse/psmouse-base.c 
b/drivers/input/mouse/psmouse-base.c
index 8900c3166ebf..06ccd8e22f3c 100644
--- a/drivers/input/mouse/psmouse-base.c
+++ b/drivers/input/mouse/psmouse-base.c
@@ -1484,8 +1484,10 @@ static void psmouse_disconnect(struct serio *serio)
psmouse_deactivate(parent);
}
 
+   mutex_unlock(_mutex);
if (psmouse->disconnect)
psmouse->disconnect(psmouse);
+   mutex_lock(_mutex);
 
if (parent && parent->pt_deactivate)
parent->pt_deactivate(parent);
-- 
2.17.0

___
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: Fix rounding errors and use scaling in i915.

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm: Fix rounding errors and use scaling in i915.
URL   : https://patchwork.freedesktop.org/series/42476/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4113_full -> Patchwork_8845_full =

== Summary - WARNING ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Possible regressions 

{igt@gem_close_race@gem-close-race}:
  shard-glk:  NOTRUN -> INCOMPLETE


 Warnings 

igt@core_getstats:
  shard-glk:  PASS -> ( 2 PASS ) +86

igt@core_prop_blob@blob-prop-core:
  shard-apl:  PASS -> ( 2 PASS ) +86

igt@drm_import_export@flink:
  shard-hsw:  PASS -> ( 2 PASS ) +89

igt@drm_vma_limiter_gtt:
  shard-kbl:  PASS -> ( 2 PASS ) +90

igt@drv_hangman@error-state-capture-bsd1:
  shard-glk:  SKIP -> ( 2 SKIP ) +17

igt@drv_module_reload@basic-no-display:
  shard-snb:  PASS -> ( 2 PASS ) +69

igt@gem_busy@busy-bsd1:
  shard-apl:  SKIP -> ( 2 SKIP ) +17

igt@gem_busy@extended-parallel-bsd1:
  shard-hsw:  SKIP -> ( 2 SKIP ) +14

igt@gem_busy@extended-semaphore-blt:
  shard-snb:  SKIP -> ( 2 SKIP ) +32
  shard-kbl:  SKIP -> ( 2 SKIP ) +8

igt@kms_busy@extended-modeset-hang-oldfb-render-a:
  shard-snb:  PASS -> SKIP

igt@pm_rc6_residency@rc6-accuracy:
  shard-kbl:  SKIP -> PASS +1


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@drv_suspend@fence-restore-tiled2untiled-hibernate:
  shard-kbl:  NOTRUN -> DMESG-FAIL (fdo#103375) +4
  shard-snb:  NOTRUN -> FAIL (fdo#103375) +4
  shard-hsw:  NOTRUN -> FAIL (fdo#103375) +4

igt@drv_suspend@forcewake:
  shard-kbl:  PASS -> ( 1 DMESG-WARN, 1 PASS ) (fdo#104238) +3

igt@drv_suspend@forcewake-hibernate:
  shard-glk:  NOTRUN -> FAIL (fdo#103375) +4

igt@drv_suspend@sysfs-reader-hibernate:
  shard-apl:  NOTRUN -> FAIL (fdo#103375) +4

{igt@gem_close_race@gem-close-race}:
  shard-kbl:  NOTRUN -> INCOMPLETE (fdo#103665)
  shard-apl:  NOTRUN -> INCOMPLETE (fdo#103927)

{igt@gem_concurrent_blit@4kib-tiny-prw-render-overwrite-source-rev}:
  shard-snb:  NOTRUN -> INCOMPLETE (fdo#105411)

{igt@gem_concurrent_blit@4kib-tiny-prw-render-write-read-bcs}:
  shard-hsw:  NOTRUN -> INCOMPLETE (fdo#103540)

igt@gem_exec_parallel@contexts:
  shard-snb:  PASS -> INCOMPLETE (fdo#105411)

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

igt@kms_flip@flip-vs-expired-vblank:
  shard-apl:  PASS -> FAIL (fdo#105363, fdo#102887)
  shard-glk:  PASS -> FAIL (fdo#105707)

igt@kms_flip@plain-flip-ts-check-interruptible:
  shard-glk:  PASS -> FAIL (fdo#100368) +1

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


 Possible fixes 

igt@kms_flip@modeset-vs-vblank-race-interruptible:
  shard-glk:  FAIL (fdo#103060) -> PASS

igt@kms_flip@wf_vblank-ts-check-interruptible:
  shard-glk:  FAIL (fdo#100368) -> PASS +1

igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render:
  shard-apl:  FAIL (fdo#103167) -> PASS


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

  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
  fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#104238 https://bugs.freedesktop.org/show_bug.cgi?id=104238
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
  fdo#105707 

Re: [Intel-gfx] [PATCH 13/17] drm/radeon: Remove custom dma_fence_ops->wait implementation

2018-04-30 Thread Daniel Vetter
On Mon, Apr 30, 2018 at 8:26 PM, Christian König
 wrote:
> Am 30.04.2018 um 17:38 schrieb Daniel Vetter:
>>
>> On Sun, Apr 29, 2018 at 09:08:31AM +0200, Christian König wrote:
>>>
>>> NAK, there is a subtitle but major difference:
>>>
 -   if (rdev->needs_reset) {
 -   t = -EDEADLK;
 -   break;
 -   }
>>>
>>> Without that the whole radeon GPU reset code breaks.
>>
>> Oops I've missed that. How does this work when you register a callback
>> using ->enable_signaling and then block on it? Everything just dies?
>
>
> The short answer is we simply avoid using enable_signaling() from inside
> driver IOCTLs.
>
>> We have lots of users of that for buffer/fence sharing. A really ugly, but
>> probably working fix for this would be a kthread worker that just looks
>> for ->needs_reset and force-completes all fences with
>> dma_fence_set_error(-EIO), which is kinda what's supposed to happen here
>> anyway.
>
>
> That actually won't help. Radeon does this dance to return an error from
> dma_fence_wait() when the GPU needs a reset.
>
> This way all IOCTLs should return to userspace with -EAGAIN and when they
> are restarted we block for the running GPU reset to finish.
>
> I was against this approach, but it works as long as radeon only has to deal
> with it's own fences.

Yeah, as soon as you mix in a 2nd driver it goes boom, since you can
easily construct loops (even if they go through ->enable_signaling and
maybe just an irq handler to fire off something somewhere else).
Currently we're really bad a detecting these loops (aka there's
nothing), but I hope that the cross-release lockdep stuff gets enabled
soon. Then we could annotate dma_fences and lockdep should complain
about a lot of these issues.

Alas, problem exists already, but I'm not going to attempt to fix it.

Anyway, I'll drop this patch here.
-Daniel

>
> Christian.
>
>
>> -Daniel
>>
>>> Regards,
>>> Christian.
>>>
>>>
>>> Am 27.04.2018 um 08:17 schrieb Daniel Vetter:

 It's a copy of dma_fence_default_wait, written slightly differently.

 Signed-off-by: Daniel Vetter 
 Cc: Alex Deucher 
 Cc: "Christian König" 
 Cc: "David (ChunMing) Zhou" 
 Cc: amd-...@lists.freedesktop.org
 ---
drivers/gpu/drm/radeon/radeon_fence.c | 63
 ---
1 file changed, 63 deletions(-)

 diff --git a/drivers/gpu/drm/radeon/radeon_fence.c
 b/drivers/gpu/drm/radeon/radeon_fence.c
 index e86f2bd38410..32690a525bfc 100644
 --- a/drivers/gpu/drm/radeon/radeon_fence.c
 +++ b/drivers/gpu/drm/radeon/radeon_fence.c
 @@ -1051,72 +1051,9 @@ static const char
 *radeon_fence_get_timeline_name(struct dma_fence *f)
 }
}
 -static inline bool radeon_test_signaled(struct radeon_fence *fence)
 -{
 -   return test_bit(DMA_FENCE_FLAG_SIGNALED_BIT,
 >base.flags);
 -}
 -
 -struct radeon_wait_cb {
 -   struct dma_fence_cb base;
 -   struct task_struct *task;
 -};
 -
 -static void
 -radeon_fence_wait_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
 -{
 -   struct radeon_wait_cb *wait =
 -   container_of(cb, struct radeon_wait_cb, base);
 -
 -   wake_up_process(wait->task);
 -}
 -
 -static signed long radeon_fence_default_wait(struct dma_fence *f, bool
 intr,
 -signed long t)
 -{
 -   struct radeon_fence *fence = to_radeon_fence(f);
 -   struct radeon_device *rdev = fence->rdev;
 -   struct radeon_wait_cb cb;
 -
 -   cb.task = current;
 -
 -   if (dma_fence_add_callback(f, , radeon_fence_wait_cb))
 -   return t;
 -
 -   while (t > 0) {
 -   if (intr)
 -   set_current_state(TASK_INTERRUPTIBLE);
 -   else
 -   set_current_state(TASK_UNINTERRUPTIBLE);
 -
 -   /*
 -* radeon_test_signaled must be called after
 -* set_current_state to prevent a race with
 wake_up_process
 -*/
 -   if (radeon_test_signaled(fence))
 -   break;
 -
 -   if (rdev->needs_reset) {
 -   t = -EDEADLK;
 -   break;
 -   }
 -
 -   t = schedule_timeout(t);
 -
 -   if (t > 0 && intr && signal_pending(current))
 -   t = -ERESTARTSYS;
 -   }
 -
 -   __set_current_state(TASK_RUNNING);
 -   dma_fence_remove_callback(f, );
 -
 -   return t;
 -}
 -
const struct 

Re: [Intel-gfx] [PATCH v2] drm/i915: Disable some extra clang warnings

2018-04-30 Thread Matthias Kaehlcke
On Mon, Mar 19, 2018 at 12:14:51PM -0700, Matthias Kaehlcke wrote:
> Commit 39bf4de89ff7 ("drm/i915: Add -Wall -Wextra to our build, set
> warnings to full") enabled extra warnings for i915 to spot possible
> bugs in new code, and then disabled a subset of these warnings to keep
> the current code building without warnings (with gcc). Enabling the
> extra warnings also enabled some additional clang-only warnings, as a
> result building i915 with clang currently is extremely noisy. For now
> also disable the clang warnings sign-compare, sometimes-uninitialized,
> unneeded-internal-declaration and initializer-overrides. If desired
> they can be re-enabled after the code has been fixed.
> 
> Fixes: 39bf4de89ff7 ("drm/i915: Add -Wall -Wextra to our build, set
> warnings to full")
> Signed-off-by: Matthias Kaehlcke 
> ---
> Changes in v2:
> - rebased on drm-tip
> - added comment indicating that disabled warnings are clang warnings
> 
>  drivers/gpu/drm/i915/Makefile | 5 +
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
> index 4eee91a3a236..9717c037b582 100644
> --- a/drivers/gpu/drm/i915/Makefile
> +++ b/drivers/gpu/drm/i915/Makefile
> @@ -18,6 +18,11 @@ subdir-ccflags-y += $(call cc-disable-warning, type-limits)
>  subdir-ccflags-y += $(call cc-disable-warning, missing-field-initializers)
>  subdir-ccflags-y += $(call cc-disable-warning, implicit-fallthrough)
>  subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
> +# clang warnings
> +subdir-ccflags-y += $(call cc-disable-warning, sign-compare)
> +subdir-ccflags-y += $(call cc-disable-warning, sometimes-uninitialized)
> +subdir-ccflags-y += $(call cc-disable-warning, unneeded-internal-declaration)
> +subdir-ccflags-y += $(call cc-disable-warning, initializer-overrides)
>  subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror
>  
>  # Fine grained warnings disable

Ping, it seems this one swept under the radar

Thanks

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


[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [CI,1/4] drm/i915: Stop tracking timeline->inflight_seqnos

2018-04-30 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/4] drm/i915: Stop tracking 
timeline->inflight_seqnos
URL   : https://patchwork.freedesktop.org/series/42474/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4113_full -> Patchwork_8844_full =

== Summary - WARNING ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Warnings 

igt@gem_exec_schedule@deep-blt:
  shard-kbl:  PASS -> SKIP

igt@pm_rc6_residency@rc6-accuracy:
  shard-kbl:  SKIP -> PASS +1


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_exec_await@wide-contexts:
  shard-glk:  PASS -> FAIL (fdo#105900)

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

igt@kms_flip@2x-plain-flip-ts-check:
  shard-hsw:  PASS -> FAIL (fdo#100368)

igt@kms_flip@absolute-wf_vblank-interruptible:
  shard-glk:  PASS -> FAIL (fdo#106087)

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

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

igt@kms_flip@flip-vs-panning-vs-hang:
  shard-snb:  PASS -> DMESG-WARN (fdo#103821)

igt@kms_flip@plain-flip-ts-check-interruptible:
  shard-glk:  PASS -> FAIL (fdo#100368) +1

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

igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
  shard-snb:  PASS -> DMESG-WARN (fdo#102365)


 Possible fixes 

igt@kms_flip@modeset-vs-vblank-race-interruptible:
  shard-glk:  FAIL (fdo#103060) -> PASS

igt@kms_flip@wf_vblank-ts-check-interruptible:
  shard-glk:  FAIL (fdo#100368) -> PASS

igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render:
  shard-apl:  FAIL (fdo#103167) -> PASS


  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102365 https://bugs.freedesktop.org/show_bug.cgi?id=102365
  fdo#102670 https://bugs.freedesktop.org/show_bug.cgi?id=102670
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103821 https://bugs.freedesktop.org/show_bug.cgi?id=103821
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105900 https://bugs.freedesktop.org/show_bug.cgi?id=105900
  fdo#106087 https://bugs.freedesktop.org/show_bug.cgi?id=106087


== Participating hosts (9 -> 8) ==

  Missing(1): shard-glkb 


== Build changes ==

* Linux: CI_DRM_4113 -> Patchwork_8844

  CI_DRM_4113: 1d2a421b1f9b47883b9d0eeb28dc4069e462dbe3 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8844: ebf0612ae3132ad3fb2bedf0332dbff34d1915d1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


Re: [Intel-gfx] [PATCH v5 0/6] Enable NV12 support

2018-04-30 Thread Kristian Høgsberg
On Thu, Apr 19, 2018 at 3:34 AM Vidya Srinivas 
wrote:

> Enabling NV12 support:
> - Framebuffer creation
> - Primary and Sprite plane support
> Patch series depend on Enable display workaround 827 patch
> mentioned below submitted by Maarten

How are we looking on being able to land these last NV12 patches?

Kristian

> Changes from prev version:
> Removed BXT support for NV12 due to WA826

> Chandra Konduru (3):
>drm/i915: Add NV12 as supported format for primary plane
>drm/i915: Add NV12 as supported format for sprite plane
>drm/i915: Add NV12 support to intel_framebuffer_init

> Maarten Lankhorst (2):
>drm/i915: Enable display workaround 827 for all planes, v2.
>drm/i915: Add skl_check_nv12_surface for NV12

> Vidya Srinivas (1):
>drm/i915: Enable Display WA 0528

>   drivers/gpu/drm/i915/intel_atomic_plane.c |   7 +-
>   drivers/gpu/drm/i915/intel_display.c  | 175
++
>   drivers/gpu/drm/i915/intel_drv.h  |   3 +
>   drivers/gpu/drm/i915/intel_sprite.c   |  44 +++-
>   4 files changed, 203 insertions(+), 26 deletions(-)

> --
> 2.7.4

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


Re: [Intel-gfx] [PATCH 13/17] drm/radeon: Remove custom dma_fence_ops->wait implementation

2018-04-30 Thread Christian König

Am 30.04.2018 um 17:38 schrieb Daniel Vetter:

On Sun, Apr 29, 2018 at 09:08:31AM +0200, Christian König wrote:

NAK, there is a subtitle but major difference:


-   if (rdev->needs_reset) {
-   t = -EDEADLK;
-   break;
-   }

Without that the whole radeon GPU reset code breaks.

Oops I've missed that. How does this work when you register a callback
using ->enable_signaling and then block on it? Everything just dies?


The short answer is we simply avoid using enable_signaling() from inside 
driver IOCTLs.



We have lots of users of that for buffer/fence sharing. A really ugly, but
probably working fix for this would be a kthread worker that just looks
for ->needs_reset and force-completes all fences with
dma_fence_set_error(-EIO), which is kinda what's supposed to happen here
anyway.


That actually won't help. Radeon does this dance to return an error from 
dma_fence_wait() when the GPU needs a reset.


This way all IOCTLs should return to userspace with -EAGAIN and when 
they are restarted we block for the running GPU reset to finish.


I was against this approach, but it works as long as radeon only has to 
deal with it's own fences.


Christian.


-Daniel


Regards,
Christian.


Am 27.04.2018 um 08:17 schrieb Daniel Vetter:

It's a copy of dma_fence_default_wait, written slightly differently.

Signed-off-by: Daniel Vetter 
Cc: Alex Deucher 
Cc: "Christian König" 
Cc: "David (ChunMing) Zhou" 
Cc: amd-...@lists.freedesktop.org
---
   drivers/gpu/drm/radeon/radeon_fence.c | 63 ---
   1 file changed, 63 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_fence.c 
b/drivers/gpu/drm/radeon/radeon_fence.c
index e86f2bd38410..32690a525bfc 100644
--- a/drivers/gpu/drm/radeon/radeon_fence.c
+++ b/drivers/gpu/drm/radeon/radeon_fence.c
@@ -1051,72 +1051,9 @@ static const char *radeon_fence_get_timeline_name(struct 
dma_fence *f)
}
   }
-static inline bool radeon_test_signaled(struct radeon_fence *fence)
-{
-   return test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, >base.flags);
-}
-
-struct radeon_wait_cb {
-   struct dma_fence_cb base;
-   struct task_struct *task;
-};
-
-static void
-radeon_fence_wait_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
-{
-   struct radeon_wait_cb *wait =
-   container_of(cb, struct radeon_wait_cb, base);
-
-   wake_up_process(wait->task);
-}
-
-static signed long radeon_fence_default_wait(struct dma_fence *f, bool intr,
-signed long t)
-{
-   struct radeon_fence *fence = to_radeon_fence(f);
-   struct radeon_device *rdev = fence->rdev;
-   struct radeon_wait_cb cb;
-
-   cb.task = current;
-
-   if (dma_fence_add_callback(f, , radeon_fence_wait_cb))
-   return t;
-
-   while (t > 0) {
-   if (intr)
-   set_current_state(TASK_INTERRUPTIBLE);
-   else
-   set_current_state(TASK_UNINTERRUPTIBLE);
-
-   /*
-* radeon_test_signaled must be called after
-* set_current_state to prevent a race with wake_up_process
-*/
-   if (radeon_test_signaled(fence))
-   break;
-
-   if (rdev->needs_reset) {
-   t = -EDEADLK;
-   break;
-   }
-
-   t = schedule_timeout(t);
-
-   if (t > 0 && intr && signal_pending(current))
-   t = -ERESTARTSYS;
-   }
-
-   __set_current_state(TASK_RUNNING);
-   dma_fence_remove_callback(f, );
-
-   return t;
-}
-
   const struct dma_fence_ops radeon_fence_ops = {
.get_driver_name = radeon_fence_get_driver_name,
.get_timeline_name = radeon_fence_get_timeline_name,
.enable_signaling = radeon_fence_enable_signaling,
.signaled = radeon_fence_is_signaled,
-   .wait = radeon_fence_default_wait,
-   .release = NULL,
   };


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


Re: [Intel-gfx] [PATCH] drm/i915: Force 2*96 MHz cdclk on glk/cnl when audio power is enabled

2018-04-30 Thread Du,Wenkai



On 4/29/2018 1:39 PM, Abhay Kumar wrote:

CDCLK has to be at least twice the BLCK regardless of audio. Audio
driver has to probe using this hook and increase the clock even in
absence of any display.

Signed-off-by: Ville Syrjälä 
Signed-off-by: Abhay Kumar 

Tested-by: Wenkai Du 

Thanks,
Wenkai

---
  drivers/gpu/drm/i915/i915_drv.h  |  2 ++
  drivers/gpu/drm/i915/intel_audio.c   | 46 
  drivers/gpu/drm/i915/intel_cdclk.c   | 34 +++---
  drivers/gpu/drm/i915/intel_display.c |  7 +-
  drivers/gpu/drm/i915/intel_drv.h |  1 +
  5 files changed, 63 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 193176bcddf5..34c31ef0761e 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1708,6 +1708,8 @@ struct drm_i915_private {
 struct intel_cdclk_state actual;
 /* The current hardware cdclk state */
 struct intel_cdclk_state hw;
+
+   int force_min_cdclk;
 } cdclk;

 /**
diff --git a/drivers/gpu/drm/i915/intel_audio.c 
b/drivers/gpu/drm/i915/intel_audio.c
index 3ea566f99450..f001fcf05d3a 100644
--- a/drivers/gpu/drm/i915/intel_audio.c
+++ b/drivers/gpu/drm/i915/intel_audio.c
@@ -594,6 +594,7 @@ static void ilk_audio_codec_enable(struct intel_encoder 
*encoder,
 I915_WRITE(aud_config, tmp);
  }

+
  /**
   * intel_audio_codec_enable - Enable the audio codec for HD audio
   * @encoder: encoder on which to enable audio
@@ -713,6 +714,48 @@ void intel_init_audio_hooks(struct drm_i915_private 
*dev_priv)
 }
  }

+static void glk_force_audio_cdclk(struct drm_i915_private *dev_priv,
+   bool enable)
+{
+   struct drm_modeset_acquire_ctx ctx;
+   struct drm_atomic_state *state;
+   int ret;
+
+   drm_modeset_acquire_init(, 0);
+   state = drm_atomic_state_alloc(_priv->drm);
+   if (WARN_ON(!state))
+   return;
+
+   state->acquire_ctx = 
+
+retry:
+   to_intel_atomic_state(state)->modeset = true;
+   to_intel_atomic_state(state)->cdclk.force_min_cdclk =
+   enable ? 2 * 96000 : 0;
+
+   /*
+* Protects dev_priv->cdclk.force_min_cdclk
+* Need to lock this here in case we have no active pipes
+* and thus wouldn't lock it during the commit otherwise.
+*/
+   ret = drm_modeset_lock(_priv->drm.mode_config.connection_mutex, 
);
+   if (!ret)
+   ret = drm_atomic_commit(state);
+
+   if (ret == -EDEADLK) {
+   drm_atomic_state_clear(state);
+   drm_modeset_backoff();
+   goto retry;
+   }
+
+   WARN_ON(ret);
+
+   drm_atomic_state_put(state);
+
+   drm_modeset_drop_locks();
+   drm_modeset_acquire_fini();
+}
+
  static void i915_audio_component_get_power(struct device *kdev)
  {
 intel_display_power_get(kdev_to_i915(kdev), POWER_DOMAIN_AUDIO);
@@ -732,6 +775,9 @@ static void i915_audio_component_codec_wake_override(struct 
device *kdev,
 if (!IS_GEN9(dev_priv))
 return;

+   if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv))
+   glk_force_audio_cdclk(dev_priv, true);
+
 i915_audio_component_get_power(kdev);

 /*
diff --git a/drivers/gpu/drm/i915/intel_cdclk.c 
b/drivers/gpu/drm/i915/intel_cdclk.c
index ebca83a44d9b..4086730018f9 100644
--- a/drivers/gpu/drm/i915/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/intel_cdclk.c
@@ -2141,24 +2141,6 @@ int intel_crtc_compute_min_cdclk(const struct 
intel_crtc_state *crtc_state)
 }

 /*
-* According to BSpec, "The CD clock frequency must be at least twice
-* the frequency of the Azalia BCLK." and BCLK is 96 MHz by default.
-*
-* FIXME: Check the actual, not default, BCLK being used.
-*
-* FIXME: This does not depend on ->has_audio because the higher CDCLK
-* is required for audio probe, also when there are no audio capable
-* displays connected at probe time. This leads to unnecessarily high
-* CDCLK when audio is not required.
-*
-* FIXME: This limit is only applied when there are displays connected
-* at probe time. If we probe without displays, we'll still end up using
-* the platform minimum CDCLK, failing audio probe.
-*/
-   if (INTEL_GEN(dev_priv) >= 9)
-   min_cdclk = max(2 * 96000, min_cdclk);
-
-   /*
  * On Valleyview some DSI panels lose (v|h)sync when the clock is lower
  * than 32KHz.
  */
@@ -2195,7 +2177,7 @@ static int intel_compute_min_cdclk(struct 
drm_atomic_state *state)
 intel_state->min_cdclk[i] = min_cdclk;
 }

-   min_cdclk = 0;
+   min_cdclk = 

Re: [Intel-gfx] [PATCH v2 RESEND] drm/i915: add support for specifying DMC firmware override by module param

2018-04-30 Thread Srivatsa, Anusha


>-Original Message-
>From: Nikula, Jani
>Sent: Monday, April 30, 2018 3:47 AM
>To: intel-gfx@lists.freedesktop.org
>Cc: Srivatsa, Anusha ; David Weinehall
>
>Subject: Re: [PATCH v2 RESEND] drm/i915: add support for specifying DMC
>firmware override by module param
>
>On Tue, 24 Apr 2018, Jani Nikula  wrote:
>> Use i915.dmc_firmware_path to override default firmware for the
>> platform and bypassing version checks.
>>
>> v2: add missing param struct member declaration (David)
>>
>> Tested-by: David Weinehall 
>> Reviewed-by: David Weinehall 
>> Cc: Anusha Srivatsa 
>> Cc: David Weinehall 
>> Signed-off-by: Jani Nikula 
Ack-by: Anusha Srivatsa 

>So *I* don't need this patch. Please someone tell me this is useful to you, 
>and I'll
>merge.
>
>Thanks,
>Jani.
>
>
>> ---
>>  drivers/gpu/drm/i915/i915_params.c | 3 +++
>> drivers/gpu/drm/i915/i915_params.h | 1 +
>>  drivers/gpu/drm/i915/intel_csr.c   | 9 +++--
>>  3 files changed, 11 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_params.c
>> b/drivers/gpu/drm/i915/i915_params.c
>> index 08108ce5be21..66ea3552c63e 100644
>> --- a/drivers/gpu/drm/i915/i915_params.c
>> +++ b/drivers/gpu/drm/i915/i915_params.c
>> @@ -164,6 +164,9 @@ i915_param_named_unsafe(guc_firmware_path,
>charp,
>> 0400,  i915_param_named_unsafe(huc_firmware_path, charp, 0400,
>>  "HuC firmware path to use instead of the default one");
>>
>> +i915_param_named_unsafe(dmc_firmware_path, charp, 0400,
>> +"DMC firmware path to use instead of the default one");
>> +
>>  i915_param_named_unsafe(enable_dp_mst, bool, 0600,
>>  "Enable multi-stream transport (MST) for new DisplayPort sinks.
>> (default: true)");
>>
>> diff --git a/drivers/gpu/drm/i915/i915_params.h
>> b/drivers/gpu/drm/i915/i915_params.h
>> index c96360398072..6684025b7af8 100644
>> --- a/drivers/gpu/drm/i915/i915_params.h
>> +++ b/drivers/gpu/drm/i915/i915_params.h
>> @@ -51,6 +51,7 @@ struct drm_printer;
>>  param(int, guc_log_level, -1) \
>>  param(char *, guc_firmware_path, NULL) \
>>  param(char *, huc_firmware_path, NULL) \
>> +param(char *, dmc_firmware_path, NULL) \
>>  param(int, mmio_debug, 0) \
>>  param(int, edp_vswing, 0) \
>>  param(int, reset, 2) \
>> diff --git a/drivers/gpu/drm/i915/intel_csr.c
>> b/drivers/gpu/drm/i915/intel_csr.c
>> index 41e6c75a7f3c..d81673250d3b 100644
>> --- a/drivers/gpu/drm/i915/intel_csr.c
>> +++ b/drivers/gpu/drm/i915/intel_csr.c
>> @@ -297,7 +297,10 @@ static uint32_t *parse_csr_fw(struct
>> drm_i915_private *dev_priv,
>>
>>  csr->version = css_header->version;
>>
>> -if (IS_CANNONLAKE(dev_priv)) {
>> +if (csr->fw_path == i915_modparams.dmc_firmware_path) {
>> +/* Bypass version check for firmware override. */
>> +required_version = csr->version;
>> +} else if (IS_CANNONLAKE(dev_priv)) {
>>  required_version = CNL_CSR_VERSION_REQUIRED;
>>  } else if (IS_GEMINILAKE(dev_priv)) {
>>  required_version = GLK_CSR_VERSION_REQUIRED; @@ -452,7
>+455,9 @@
>> void intel_csr_ucode_init(struct drm_i915_private *dev_priv)
>>  if (!HAS_CSR(dev_priv))
>>  return;
>>
>> -if (IS_CANNONLAKE(dev_priv))
>> +if (i915_modparams.dmc_firmware_path)
>> +csr->fw_path = i915_modparams.dmc_firmware_path;
>> +else if (IS_CANNONLAKE(dev_priv))
>>  csr->fw_path = I915_CSR_CNL;
>>  else if (IS_GEMINILAKE(dev_priv))
>>  csr->fw_path = I915_CSR_GLK;
>
>--
>Jani Nikula, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: configure the transcoder clocks before touching pipeconf on HSW+

2018-04-30 Thread Ville Syrjälä
On Fri, Apr 27, 2018 at 04:12:08PM -0700, Paulo Zanoni wrote:
> For all platforms that run haswell_crtc_enable, our spec tells us to
> configure the transcoder clocks before it tells us to set pipeconf and
> the other pipe/transcoder/plane registers.
> 
> For some reason we've been able to get away with doing what we were
> doing until now, but starting from Icelake, we get machine hangs if we
> try to touch the pipe/transcoder registers without having the clocks
> configured.
> 
> So this patch changes all the relevant platforms to call
> intel_ddi_enable_pipe_clock at the point we're supposed to, according
> to the spec.

I don't think this really matches the spec. You're now enabling the
clock before configuring the port stuff and link training. So AFAICS
intel_ddi_enable_pipe_clock() seems to be in the correct place, but
we're just configuring all the pipe/transcoder/etc. stuff way too
early.

> 
> It seems there is a way to work around this problem on ICL with some
> chicken bit, but I still couldn't find which one it is, and it's
> better if we just do the right thing here.
> 
> Cc: Arthur J Runyan 
> Cc: James Ausmus 
> Signed-off-by: Paulo Zanoni 
> ---
>  drivers/gpu/drm/i915/intel_display.c | 8 
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> Luckily our CI system should be in a spot where it is able to tell us
> whether this patch is good with high confidence. I haven't tested it
> on every affected platform.
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c 
> b/drivers/gpu/drm/i915/intel_display.c
> index 48576ea2d36c..c93aed2ec16d 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -5578,8 +5578,11 @@ static void haswell_crtc_enable(struct 
> intel_crtc_state *pipe_config,
>_crtc->config->fdi_m_n, NULL);
>   }
>  
> - if (!transcoder_is_dsi(cpu_transcoder))
> + if (!transcoder_is_dsi(cpu_transcoder)) {
> + intel_ddi_enable_pipe_clock(pipe_config);
> +
>   haswell_set_pipeconf(crtc);
> + }
>  
>   haswell_set_pipemisc(crtc);
>  
> @@ -5589,9 +5592,6 @@ static void haswell_crtc_enable(struct intel_crtc_state 
> *pipe_config,
>  
>   intel_encoders_pre_enable(crtc, pipe_config, old_state);
>  
> - if (!transcoder_is_dsi(cpu_transcoder))
> - intel_ddi_enable_pipe_clock(pipe_config);
> -
>   /* Display WA #1180: WaDisableScalarClockGating: glk, cnl */
>   psl_clkgate_wa = (IS_GEMINILAKE(dev_priv) || IS_CANNONLAKE(dev_priv)) &&
>intel_crtc->config->pch_pfit.enabled;
> -- 
> 2.14.3
> 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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


Re: [Intel-gfx] [PATCH v2 RESEND] drm/i915: add support for specifying DMC firmware override by module param

2018-04-30 Thread Srivatsa, Anusha


>-Original Message-
>From: Nikula, Jani
>Sent: Monday, April 30, 2018 3:47 AM
>To: intel-gfx@lists.freedesktop.org
>Cc: Srivatsa, Anusha ; David Weinehall
>
>Subject: Re: [PATCH v2 RESEND] drm/i915: add support for specifying DMC
>firmware override by module param
>
>On Tue, 24 Apr 2018, Jani Nikula  wrote:
>> Use i915.dmc_firmware_path to override default firmware for the
>> platform and bypassing version checks.
>>
>> v2: add missing param struct member declaration (David)
>>
>> Tested-by: David Weinehall 
>> Reviewed-by: David Weinehall 
>> Cc: Anusha Srivatsa 
>> Cc: David Weinehall 
>> Signed-off-by: Jani Nikula 
>
>So *I* don't need this patch. Please someone tell me this is useful to you, 
>and I'll
>merge.

Jani, we need this patch!. This will be very useful. I am glad it made back to 
the ML.

Anusha 
>Thanks,
>Jani.
>
>
>> ---
>>  drivers/gpu/drm/i915/i915_params.c | 3 +++
>> drivers/gpu/drm/i915/i915_params.h | 1 +
>>  drivers/gpu/drm/i915/intel_csr.c   | 9 +++--
>>  3 files changed, 11 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_params.c
>> b/drivers/gpu/drm/i915/i915_params.c
>> index 08108ce5be21..66ea3552c63e 100644
>> --- a/drivers/gpu/drm/i915/i915_params.c
>> +++ b/drivers/gpu/drm/i915/i915_params.c
>> @@ -164,6 +164,9 @@ i915_param_named_unsafe(guc_firmware_path,
>charp,
>> 0400,  i915_param_named_unsafe(huc_firmware_path, charp, 0400,
>>  "HuC firmware path to use instead of the default one");
>>
>> +i915_param_named_unsafe(dmc_firmware_path, charp, 0400,
>> +"DMC firmware path to use instead of the default one");
>> +
>>  i915_param_named_unsafe(enable_dp_mst, bool, 0600,
>>  "Enable multi-stream transport (MST) for new DisplayPort sinks.
>> (default: true)");
>>
>> diff --git a/drivers/gpu/drm/i915/i915_params.h
>> b/drivers/gpu/drm/i915/i915_params.h
>> index c96360398072..6684025b7af8 100644
>> --- a/drivers/gpu/drm/i915/i915_params.h
>> +++ b/drivers/gpu/drm/i915/i915_params.h
>> @@ -51,6 +51,7 @@ struct drm_printer;
>>  param(int, guc_log_level, -1) \
>>  param(char *, guc_firmware_path, NULL) \
>>  param(char *, huc_firmware_path, NULL) \
>> +param(char *, dmc_firmware_path, NULL) \
>>  param(int, mmio_debug, 0) \
>>  param(int, edp_vswing, 0) \
>>  param(int, reset, 2) \
>> diff --git a/drivers/gpu/drm/i915/intel_csr.c
>> b/drivers/gpu/drm/i915/intel_csr.c
>> index 41e6c75a7f3c..d81673250d3b 100644
>> --- a/drivers/gpu/drm/i915/intel_csr.c
>> +++ b/drivers/gpu/drm/i915/intel_csr.c
>> @@ -297,7 +297,10 @@ static uint32_t *parse_csr_fw(struct
>> drm_i915_private *dev_priv,
>>
>>  csr->version = css_header->version;
>>
>> -if (IS_CANNONLAKE(dev_priv)) {
>> +if (csr->fw_path == i915_modparams.dmc_firmware_path) {
>> +/* Bypass version check for firmware override. */
>> +required_version = csr->version;
>> +} else if (IS_CANNONLAKE(dev_priv)) {
>>  required_version = CNL_CSR_VERSION_REQUIRED;
>>  } else if (IS_GEMINILAKE(dev_priv)) {
>>  required_version = GLK_CSR_VERSION_REQUIRED; @@ -452,7
>+455,9 @@
>> void intel_csr_ucode_init(struct drm_i915_private *dev_priv)
>>  if (!HAS_CSR(dev_priv))
>>  return;
>>
>> -if (IS_CANNONLAKE(dev_priv))
>> +if (i915_modparams.dmc_firmware_path)
>> +csr->fw_path = i915_modparams.dmc_firmware_path;
>> +else if (IS_CANNONLAKE(dev_priv))
>>  csr->fw_path = I915_CSR_CNL;
>>  else if (IS_GEMINILAKE(dev_priv))
>>  csr->fw_path = I915_CSR_GLK;
>
>--
>Jani Nikula, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 16/17] drm/virtio: Remove unecessary dma_fence_ops

2018-04-30 Thread Eric Anholt
Daniel Vetter  writes:

> dma_fence_default_wait is the default now, same for the trivial
> enable_signaling implementation.

Reviewed-by: Eric Anholt 


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


Re: [Intel-gfx] [PATCH 12/17] drm/qxl: Remove unecessary dma_fence_ops

2018-04-30 Thread Eric Anholt
Daniel Vetter  writes:

> dma_fence_default_wait is the default now, same for the trivial
> enable_signaling implementation.

Drop the mention of dma_fence_default_wait, since this one doesn't use
that?  Other than that,

Reviewed-by: Eric Anholt 


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


Re: [Intel-gfx] [PATCH 07/17] drm: Remove unecessary dma_fence_ops

2018-04-30 Thread Eric Anholt
Daniel Vetter  writes:

> dma_fence_default_wait is the default now, same for the trivial
> enable_signaling implementation.
>
> Signed-off-by: Daniel Vetter 

Reviewed-by: Eric Anholt 


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


Re: [Intel-gfx] [PATCH 14/17] drm/vc4: Remove unecessary dma_fence_ops

2018-04-30 Thread Eric Anholt
Daniel Vetter  writes:

> dma_fence_default_wait is the default now, same for the trivial
> enable_signaling implementation.
>
> Signed-off-by: Daniel Vetter 

Reviewed-by: Eric Anholt 


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


Re: [Intel-gfx] [PATCH 02/17] dma-fence: remove fill_driver_data callback

2018-04-30 Thread Eric Anholt
Daniel Vetter  writes:

> Noticed while I was typing docs. Entirely unused.
>
> Signed-off-by: Daniel Vetter 
> ---
>  include/linux/dma-fence.h | 10 --
>  1 file changed, 10 deletions(-)
>
> diff --git a/include/linux/dma-fence.h b/include/linux/dma-fence.h
> index 9d6f39bf2111..f9a6848f8558 100644
> --- a/include/linux/dma-fence.h
> +++ b/include/linux/dma-fence.h
> @@ -217,16 +217,6 @@ struct dma_fence_ops {
>*/
>   void (*release)(struct dma_fence *fence);
>  
> - /**
> -  * @fill_driver_data:
> -  *
> -  * Callback to fill in free-form debug info Returns amount of bytes
> -  * filled, or negative error on failure.
> -  *
> -  * This callback is optional.
> -  */
> - int (*fill_driver_data)(struct dma_fence *fence, void *data, int size);
> -

There's a reference to this one from timeline_value_str() as well.
Could you fix that up?


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


Re: [Intel-gfx] [PATCH 01/17] dma-fence: Some kerneldoc polish for dma-fence.h

2018-04-30 Thread Eric Anholt
Daniel Vetter  writes:
> + /**
> +  * @fill_driver_data:
> +  *
> +  * Callback to fill in free-form debug info Returns amount of bytes
> +  * filled, or negative error on failure.

Maybe this "Returns" should be on a new line?  Or at least a '.' in
between.

Other than that,

Reviewed-by: Eric Anholt 

Thanks!


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] drm/i915: Wait for PSR exit before checking for vblank evasion for an atomic update

2018-04-30 Thread Rodrigo Vivi
On Sun, Apr 29, 2018 at 09:00:18PM -0700, Tarun Vyas wrote:
> From: Tarun 
> 
> The PIPEDSL freezes on PSR entry and if PSR hasn't fully exited, then
> the pipe_update_start call schedules itself out to check back later.
> 
> On ChromeOS-4.4 kernel, which is fairly up-to-date w.r.t drm/i915 but
> lags w.r.t core kernel code, hot plugging an external display triggers
> tons of "potential atomic update errors" in the dmesg, on *pipe A*. A
> closer analysis reveals that we try to read the scanline 3 times and
> eventually timeout, b/c PSR hasn't exited fully leading to a PIPEDSL
> stuck @ 1599. This issue is not seen on upstream kernels, b/c for *some*
> reason we loop inside intel_pipe_update start for ~2+ msec which in this
> case is more than enough to exit PSR fully, hence an *unstuck* PIPEDSL
> counter, hence no error. On the other hand, the ChromeOS kernel spends
> ~1.1 msec looping inside intel_pipe_update_start and hence errors out
> b/c the source is still in PSR.
> 
> Regardless, we should wait for PSR exit (if PSR is supported and active
> on the current pipe) before reading the PIPEDSL, b/c if we haven't
> fully exited PSR, then checking for vblank evasion isn't actually
> applicable.
> 
> This scenario applies to a configuration with an additional pipe,
> as of now.

I honestly believe you picking the wrong culprit here. By "coincidence".
PSR will allow DC state with screen on and DC state will mess up with all
registers reads

probably what you are missing you your kernel is some power domain
grab that would keep DC_OFF and consequently a sane read of these
registers.

Maybe Imre has a quick idea of what you could be missing on your kernel
that we already have on upstream one.

Thanks,
Rodrigo.

> 
> ---
>  drivers/gpu/drm/i915/intel_sprite.c | 7 +--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_sprite.c 
> b/drivers/gpu/drm/i915/intel_sprite.c
> index aa1dfaa692b9..135b41568503 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c
> @@ -107,14 +107,17 @@ void intel_pipe_update_start(const struct 
> intel_crtc_state *new_crtc_state)
> VBLANK_EVASION_TIME_US);
>   max = vblank_start - 1;
>  
> - local_irq_disable();
> -
>   if (min <= 0 || max <= 0)
>   return;
>  
>   if (WARN_ON(drm_crtc_vblank_get(>base)))
>   return;
>  
> + if(new_crtc_state->has_psr && dev_priv->psr.active)
> + intel_wait_for_register(dev_priv, EDP_PSR_STATUS, 
> EDP_PSR_STATUS_STATE_MASK, EDP_PSR_STATUS_STATE_IDLE, 5);
> +
> + local_irq_disable();
> +
>   crtc->debug.min_vbl = min;
>   crtc->debug.max_vbl = max;
>   trace_i915_pipe_update_start(crtc);
> -- 
> 2.13.5
> 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 01/22] drm/i915/icl: Introduce initial Icelake Workarounds

2018-04-30 Thread Oscar Mateo

On 04/26/2018 08:01 AM, Mika Kuoppala wrote:

Oscar Mateo  writes:


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

v2: GEN7_ROW_CHICKEN2 is masked
v3:
   - Since it has been fixed already in upstream, removed the TODO
 comment about WA_SET_BIT for WaInPlaceDecompressionHang.
   - Squashed with this patch:
   drm/i915/icl: add icelake_init_clock_gating()
 from Paulo Zanoni 
   - Squashed with this patch:
   drm/i915/icl: WaForceEnableNonCoherent
 from Oscar Mateo 
   - WaPushConstantDereferenceHoldDisable is now Wa_1604370585 and
 applies to B0 as well.
   - WaPipeControlBefore3DStateSamplePattern WABB was being applied
 to ICL incorrectly.
v4:
   - Wrap the commit message
   - s/dev_priv/p to please checkpatch
v5: Rebased on top of the WA refactoring
v6: Rebased on top of further whitelist registers refactoring (Michel)
v7: Added WaRsForcewakeAddDelayForAck

Cc: Tomasz Lis 
Cc: Mika Kuoppala 
Signed-off-by: Oscar Mateo 
---
  drivers/gpu/drm/i915/i915_drv.h  |  9 +++
  drivers/gpu/drm/i915/i915_gem_gtt.c  |  4 +--
  drivers/gpu/drm/i915/i915_reg.h  |  1 +
  drivers/gpu/drm/i915/intel_lrc.c |  2 ++
  drivers/gpu/drm/i915/intel_pm.c  |  4 ++-
  drivers/gpu/drm/i915/intel_uncore.c  |  7 +++--
  drivers/gpu/drm/i915/intel_workarounds.c | 46 
  7 files changed, 68 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 0286911..1dc157f 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2462,6 +2462,15 @@ static inline unsigned int i915_sg_segment_size(void)
  #define IS_CNL_REVID(p, since, until) \
(IS_CANNONLAKE(p) && IS_REVID(p, since, until))
  
+#define ICL_REVID_A0		0x0

+#define ICL_REVID_A2   0x1

Just noted that for some reason bspec puts A0 and A2 under
same revid. Bspec err?


That's what I hope. I have opened a bug against the BSpec to be 100% sure.


+#define ICL_REVID_B0   0x3
+#define ICL_REVID_B2   0x4
+#define ICL_REVID_C0   0x5
+
+#define IS_ICL_REVID(p, since, until) \
+   (IS_ICELAKE(p) && IS_REVID(p, since, until))
+
  /*
   * The genX designation typically refers to the render engine, so render
   * capability related checks should use IS_GEN, while display and other checks
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c 
b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 21d72f6..221b873 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -2140,12 +2140,12 @@ static void gtt_write_workarounds(struct 
drm_i915_private *dev_priv)
 * called on driver load and after a GPU reset, so you can place
 * workarounds here even if they get overwritten by GPU reset.
 */
-   /* WaIncreaseDefaultTLBEntries:chv,bdw,skl,bxt,kbl,glk,cfl,cnl */
+   /* WaIncreaseDefaultTLBEntries:chv,bdw,skl,bxt,kbl,glk,cfl,cnl,icl */
if (IS_BROADWELL(dev_priv))
I915_WRITE(GEN8_L3_LRA_1_GPGPU, 
GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_BDW);
else if (IS_CHERRYVIEW(dev_priv))
I915_WRITE(GEN8_L3_LRA_1_GPGPU, 
GEN8_L3_LRA_1_GPGPU_DEFAULT_VALUE_CHV);
-   else if (IS_GEN9_BC(dev_priv) || IS_GEN10(dev_priv))
+   else if (IS_GEN9_BC(dev_priv) || IS_GEN10(dev_priv) || 
IS_GEN11(dev_priv))
I915_WRITE(GEN8_L3_LRA_1_GPGPU, 
GEN9_L3_LRA_1_GPGPU_DEFAULT_VALUE_SKL);
else if (IS_GEN9_LP(dev_priv))
I915_WRITE(GEN8_L3_LRA_1_GPGPU, 
GEN9_L3_LRA_1_GPGPU_DEFAULT_VALUE_BXT);
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index fb10602..f2ee225 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -7203,6 +7203,7 @@ enum {
  /* GEN8 chicken */
  #define HDC_CHICKEN0  _MMIO(0x7300)
  #define CNL_HDC_CHICKEN0  _MMIO(0xE5F0)
+#define ICL_HDC_CHICKEN0   _MMIO(0xE5F4)
  #define  HDC_FORCE_CSR_NON_COHERENT_OVR_DISABLE   (1<<15)
  #define  HDC_FENCE_DEST_SLM_DISABLE   (1<<14)
  #define  HDC_DONOT_FETCH_MEM_WHEN_MASKED  (1<<11)
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 029901a..2d6572a 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -1636,6 +1636,8 @@ static int intel_init_workaround_bb(struct 
intel_engine_cs *engine)
return -EINVAL;
  
  	switch (INTEL_GEN(engine->i915)) {

+   case 11:
+   return 0;
case 10:
wa_bb_fn[0] = gen10_init_indirectctx_bb;
wa_bb_fn[1] = NULL;
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 4baab85..3b7d804 100644
--- 

Re: [Intel-gfx] [PATCH 03/22] drm/i915/icl: WaGAPZPriorityScheme

2018-04-30 Thread Oscar Mateo



On 04/26/2018 08:27 AM, Mika Kuoppala wrote:

Oscar Mateo  writes:


The default GAPZ arbitrer priority value at power-on has been found
to be incorrect.

v2: Now renamed to Wa_1405543622

v3: Rebased on top of the WA refactoring


I have suggested that when implementing workarounds,
authors, for example, add

References: HSDES#1405542622, HSDES#1207131207


The thing is, nowadays, the name of the WA itself *is* the HSDES number 
(e.g. this is Wa_1405543622 because it is documented in 
HSDES#1405543622). At least for hardware workarounds. But I have no 
problem adding the "References" tag as well, as long as we have consensus.



as a first tagline to ease up the review.
I do that again :) No need to resend,

Reviewed-by: Mika Kuoppala 


Thanks!


Cc: Mika Kuoppala 
Signed-off-by: Oscar Mateo 
---
  drivers/gpu/drm/i915/i915_reg.h  | 5 +++--
  drivers/gpu/drm/i915/intel_workarounds.c | 6 ++
  2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 4b7e6bc..a6b1f85 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -8215,8 +8215,9 @@ enum {
  #define   GEN8_DOP_CLOCK_GATE_GUC_ENABLE  (1<<4)
  #define   GEN8_DOP_CLOCK_GATE_MEDIA_ENABLE (1<<6)
  
-#define GEN8_GARBCNTL   _MMIO(0xB004)

-#define   GEN9_GAPS_TSV_CREDIT_DISABLE  (1<<7)
+#define GEN8_GARBCNTL  _MMIO(0xB004)
+#define   GEN9_GAPS_TSV_CREDIT_DISABLE (1 << 7)
+#define   GEN11_ARBITRATION_PRIO_ORDER_MASK(0x3f << 22)
  
  #define GEN10_DFR_RATIO_EN_AND_CHICKEN	_MMIO(0x9550)

  #define   DFR_DISABLE (1 << 9)
diff --git a/drivers/gpu/drm/i915/intel_workarounds.c 
b/drivers/gpu/drm/i915/intel_workarounds.c
index 60a5b1d..ffd27a1 100644
--- a/drivers/gpu/drm/i915/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/intel_workarounds.c
@@ -703,6 +703,12 @@ static void icl_gt_workarounds_apply(struct 
drm_i915_private *dev_priv)
/* WaPipelineFlushCoherentLines:icl */
I915_WRITE(GEN8_L3SQCREG4, (I915_READ(GEN8_L3SQCREG4) |
GEN8_LQSC_FLUSH_COHERENT_LINES));
+
+   /* Wa_1405543622:icl
+* Formerly known as WaGAPZPriorityScheme
+*/
+   I915_WRITE(GEN8_GARBCNTL, (I915_READ(GEN8_GARBCNTL) |
+  GEN11_ARBITRATION_PRIO_ORDER_MASK));
  }
  
  void intel_gt_workarounds_apply(struct drm_i915_private *dev_priv)

--
1.9.1


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


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: configure the transcoder clocks before touching pipeconf on HSW+

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: configure the transcoder clocks before touching pipeconf on 
HSW+
URL   : https://patchwork.freedesktop.org/series/42436/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4112_full -> Patchwork_8843_full =

== Summary - SUCCESS ==

  No regressions found.

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

== Known issues ==

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

  === IGT changes ===

 Possible fixes 

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

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

igt@kms_flip@plain-flip-fb-recreate-interruptible:
  shard-glk:  FAIL (fdo#100368) -> PASS +1

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

igt@kms_sysfs_edid_timing:
  shard-apl:  WARN (fdo#100047) -> PASS


  fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105707 https://bugs.freedesktop.org/show_bug.cgi?id=105707
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (9 -> 6) ==

  Missing(3): shard-glkb shard-hsw shard-kbl 


== Build changes ==

* Linux: CI_DRM_4112 -> Patchwork_8843

  CI_DRM_4112: 423a00794c9d9610a71d8a02cd3bc17c6fe5fae1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8843: d2ffa705b37a7cd5dd34563dc5f0cf81198ce33d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


Re: [Intel-gfx] [PATCH v4] drm/i915/lrc: Scrub the GPU state of the guilty hanging request

2018-04-30 Thread Chris Wilson
Quoting Michel Thierry (2018-04-30 16:49:53)
> On 04/28/2018 04:15 AM, Chris Wilson wrote:
> > Previously, we just reset the ring register in the context image such
> > that we could skip over the broken batch and emit the closing
> > breadcrumb. However, on resume the context image and GPU state would be
> > reloaded, which may have been left in an inconsistent state by the
> > reset. The presumption was that at worst it would just cause another
> > reset and skip again until it recovered, however it seems just as likely
> > to cause an unrecoverable hang. Instead of risking loading an incomplete
> > context image, restore it back to the default state.
> > 
> > v2: Fix up off-by-one from including the ppHSWP in with the register
> > state.
> > v3: Use a ring local to compact a few lines.
> > v4: Beware setting the ring local before checking for a NULL request.
> 
> Didn't you want to set the ring local after this check?
> if (!request || request->fence.error != -EIO)

I just removed adding the ring local. Fewer changes...
-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/lrc: Scrub the GPU state of the guilty hanging request

2018-04-30 Thread Michel Thierry

On 04/28/2018 04:15 AM, Chris Wilson wrote:

Previously, we just reset the ring register in the context image such
that we could skip over the broken batch and emit the closing
breadcrumb. However, on resume the context image and GPU state would be
reloaded, which may have been left in an inconsistent state by the
reset. The presumption was that at worst it would just cause another
reset and skip again until it recovered, however it seems just as likely
to cause an unrecoverable hang. Instead of risking loading an incomplete
context image, restore it back to the default state.

v2: Fix up off-by-one from including the ppHSWP in with the register
state.
v3: Use a ring local to compact a few lines.
v4: Beware setting the ring local before checking for a NULL request.


Didn't you want to set the ring local after this check?
if (!request || request->fence.error != -EIO)

This is identical to v2.


Signed-off-by: Chris Wilson 
Cc: Mika Kuoppala 
Cc: Michał Winiarski 
Cc: Michel Thierry 
Cc: Tvrtko Ursulin 
Reviewed-by: Michel Thierry  #v2
---
  drivers/gpu/drm/i915/intel_lrc.c | 24 +---
  1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index ce23d5116482..513aee6b3634 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -1804,8 +1804,8 @@ static void reset_common_ring(struct intel_engine_cs 
*engine,
  struct i915_request *request)
  {
struct intel_engine_execlists * const execlists = >execlists;
-   struct intel_context *ce;
unsigned long flags;
+   u32 *regs;
  
  	GEM_TRACE("%s request global=%x, current=%d\n",

  engine->name, request ? request->global_seqno : 0,
@@ -1855,14 +1855,24 @@ static void reset_common_ring(struct intel_engine_cs 
*engine,
 * future request will be after userspace has had the opportunity
 * to recreate its own state.
 */
-   ce = >ctx->engine[engine->id];
-   execlists_init_reg_state(ce->lrc_reg_state,
-request->ctx, engine, ce->ring);
+   regs = request->ctx->engine[engine->id].lrc_reg_state;
+   if (engine->default_state) {
+   void *defaults;
+
+   defaults = i915_gem_object_pin_map(engine->default_state,
+  I915_MAP_WB);
+   if (!IS_ERR(defaults)) {
+   memcpy(regs, /* skip restoring the vanilla PPHWSP */
+  defaults + LRC_STATE_PN * PAGE_SIZE,
+  engine->context_size - PAGE_SIZE);
+   i915_gem_object_unpin_map(engine->default_state);
+   }
+   }
+   execlists_init_reg_state(regs, request->ctx, engine, request->ring);
  
  	/* Move the RING_HEAD onto the breadcrumb, past the hanging batch */

-   ce->lrc_reg_state[CTX_RING_BUFFER_START+1] =
-   i915_ggtt_offset(ce->ring->vma);
-   ce->lrc_reg_state[CTX_RING_HEAD+1] = request->postfix;
+   regs[CTX_RING_BUFFER_START + 1] = i915_ggtt_offset(request->ring->vma);
+   regs[CTX_RING_HEAD + 1] = request->postfix;
  
  	request->ring->head = request->postfix;

intel_ring_update_space(request->ring);


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


Re: [Intel-gfx] [PATCH 13/17] drm/radeon: Remove custom dma_fence_ops->wait implementation

2018-04-30 Thread Daniel Vetter
On Sun, Apr 29, 2018 at 09:08:31AM +0200, Christian König wrote:
> NAK, there is a subtitle but major difference:
> 
> > -   if (rdev->needs_reset) {
> > -   t = -EDEADLK;
> > -   break;
> > -   }
> 
> Without that the whole radeon GPU reset code breaks.

Oops I've missed that. How does this work when you register a callback
using ->enable_signaling and then block on it? Everything just dies?

We have lots of users of that for buffer/fence sharing. A really ugly, but
probably working fix for this would be a kthread worker that just looks
for ->needs_reset and force-completes all fences with
dma_fence_set_error(-EIO), which is kinda what's supposed to happen here
anyway.
-Daniel

> 
> Regards,
> Christian.
> 
> 
> Am 27.04.2018 um 08:17 schrieb Daniel Vetter:
> > It's a copy of dma_fence_default_wait, written slightly differently.
> > 
> > Signed-off-by: Daniel Vetter 
> > Cc: Alex Deucher 
> > Cc: "Christian König" 
> > Cc: "David (ChunMing) Zhou" 
> > Cc: amd-...@lists.freedesktop.org
> > ---
> >   drivers/gpu/drm/radeon/radeon_fence.c | 63 ---
> >   1 file changed, 63 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/radeon/radeon_fence.c 
> > b/drivers/gpu/drm/radeon/radeon_fence.c
> > index e86f2bd38410..32690a525bfc 100644
> > --- a/drivers/gpu/drm/radeon/radeon_fence.c
> > +++ b/drivers/gpu/drm/radeon/radeon_fence.c
> > @@ -1051,72 +1051,9 @@ static const char 
> > *radeon_fence_get_timeline_name(struct dma_fence *f)
> > }
> >   }
> > -static inline bool radeon_test_signaled(struct radeon_fence *fence)
> > -{
> > -   return test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, >base.flags);
> > -}
> > -
> > -struct radeon_wait_cb {
> > -   struct dma_fence_cb base;
> > -   struct task_struct *task;
> > -};
> > -
> > -static void
> > -radeon_fence_wait_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
> > -{
> > -   struct radeon_wait_cb *wait =
> > -   container_of(cb, struct radeon_wait_cb, base);
> > -
> > -   wake_up_process(wait->task);
> > -}
> > -
> > -static signed long radeon_fence_default_wait(struct dma_fence *f, bool 
> > intr,
> > -signed long t)
> > -{
> > -   struct radeon_fence *fence = to_radeon_fence(f);
> > -   struct radeon_device *rdev = fence->rdev;
> > -   struct radeon_wait_cb cb;
> > -
> > -   cb.task = current;
> > -
> > -   if (dma_fence_add_callback(f, , radeon_fence_wait_cb))
> > -   return t;
> > -
> > -   while (t > 0) {
> > -   if (intr)
> > -   set_current_state(TASK_INTERRUPTIBLE);
> > -   else
> > -   set_current_state(TASK_UNINTERRUPTIBLE);
> > -
> > -   /*
> > -* radeon_test_signaled must be called after
> > -* set_current_state to prevent a race with wake_up_process
> > -*/
> > -   if (radeon_test_signaled(fence))
> > -   break;
> > -
> > -   if (rdev->needs_reset) {
> > -   t = -EDEADLK;
> > -   break;
> > -   }
> > -
> > -   t = schedule_timeout(t);
> > -
> > -   if (t > 0 && intr && signal_pending(current))
> > -   t = -ERESTARTSYS;
> > -   }
> > -
> > -   __set_current_state(TASK_RUNNING);
> > -   dma_fence_remove_callback(f, );
> > -
> > -   return t;
> > -}
> > -
> >   const struct dma_fence_ops radeon_fence_ops = {
> > .get_driver_name = radeon_fence_get_driver_name,
> > .get_timeline_name = radeon_fence_get_timeline_name,
> > .enable_signaling = radeon_fence_enable_signaling,
> > .signaled = radeon_fence_is_signaled,
> > -   .wait = radeon_fence_default_wait,
> > -   .release = NULL,
> >   };
> 

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


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: configure the transcoder clocks before touching pipeconf on HSW+

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: configure the transcoder clocks before touching pipeconf on 
HSW+
URL   : https://patchwork.freedesktop.org/series/42436/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4112_full -> Patchwork_8842_full =

== Summary - SUCCESS ==

  No regressions found.

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

== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_cursor_crc@cursor-128x128-dpms:
  shard-apl:  PASS -> FAIL (fdo#104645, fdo#103232)

igt@kms_flip@absolute-wf_vblank-interruptible:
  shard-glk:  PASS -> FAIL (fdo#106087)

igt@kms_flip@plain-flip-fb-recreate:
  shard-glk:  PASS -> FAIL (fdo#100368) +1

igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu:
  shard-apl:  PASS -> FAIL (fdo#103167)

igt@perf_pmu@busy-check-all-vcs0:
  shard-snb:  PASS -> FAIL (fdo#105106)


 Possible fixes 

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

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

igt@kms_flip@plain-flip-fb-recreate-interruptible:
  shard-glk:  FAIL (fdo#100368) -> PASS +2


  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
  fdo#104645 https://bugs.freedesktop.org/show_bug.cgi?id=104645
  fdo#105106 https://bugs.freedesktop.org/show_bug.cgi?id=105106
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105707 https://bugs.freedesktop.org/show_bug.cgi?id=105707
  fdo#106087 https://bugs.freedesktop.org/show_bug.cgi?id=106087


== Participating hosts (9 -> 5) ==

  Missing(4): shard-glkb pig-glk-j4005 shard-hsw shard-kbl 


== Build changes ==

* Linux: CI_DRM_4112 -> Patchwork_8842

  CI_DRM_4112: 423a00794c9d9610a71d8a02cd3bc17c6fe5fae1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8842: 96dd83b16e1d41740c95f80905d941799befd6c8 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


Re: [Intel-gfx] [PATCH 04/17] dma-fence: Allow wait_any_timeout for all fences

2018-04-30 Thread Daniel Vetter
On Sun, Apr 29, 2018 at 09:11:31AM +0200, Christian König wrote:
> Am 27.04.2018 um 08:17 schrieb Daniel Vetter:
> > When this was introduced in
> > 
> > commit a519435a96597d8cd96123246fea4ae5a6c90b02
> > Author: Christian König 
> > Date:   Tue Oct 20 16:34:16 2015 +0200
> > 
> >  dma-buf/fence: add fence_wait_any_timeout function v2
> > 
> > there was a restriction added that this only works if the dma-fence
> > uses the dma_fence_default_wait hook. Which works for amdgpu, which is
> > the only caller. Well, until you share some buffers with e.g. i915,
> > then you get an -EINVAL.
> > 
> > But there's really no reason for this, because all drivers must
> > support callbacks. The special ->wait hook is only as an optimization;
> > if the driver needs to create a worker thread for an active callback,
> > then it can avoid to do that if it knows that there's a process
> > context available already. So ->wait is just an optimization, just
> > using the logic in dma_fence_default_wait() should work for all
> > drivers.
> > 
> > Let's remove this restriction.
> 
> Mhm, that was intentional introduced because for radeon that is not only an
> optimization, but mandatory for correct operation.
> 
> On the other hand radeon isn't using this function, so it should be fine as
> long as the Intel driver can live with it.

Well dma-buf already requires that dma_fence_add_callback works correctly.
And so do various users of it as soon as you engage in a bit of buffer
sharing. I guess whomever cares about buffer sharing with radeon gets to
fix this (you need to spawn a kthread or whatever in ->enable_signaling
which does the same work as your optimized ->wait callback).

But yeah, I'm definitely not making things work with this series, just a
bit more obvious that there's a problem already.
-Daniel

> 
> Christian.
> 
> > 
> > Signed-off-by: Daniel Vetter 
> > Cc: Sumit Semwal 
> > Cc: Gustavo Padovan 
> > Cc: linux-me...@vger.kernel.org
> > Cc: linaro-mm-...@lists.linaro.org
> > Cc: Christian König 
> > Cc: Alex Deucher 
> > ---
> >   drivers/dma-buf/dma-fence.c | 5 -
> >   1 file changed, 5 deletions(-)
> > 
> > diff --git a/drivers/dma-buf/dma-fence.c b/drivers/dma-buf/dma-fence.c
> > index 7b5b40d6b70e..59049375bd19 100644
> > --- a/drivers/dma-buf/dma-fence.c
> > +++ b/drivers/dma-buf/dma-fence.c
> > @@ -503,11 +503,6 @@ dma_fence_wait_any_timeout(struct dma_fence **fences, 
> > uint32_t count,
> > for (i = 0; i < count; ++i) {
> > struct dma_fence *fence = fences[i];
> > -   if (fence->ops->wait != dma_fence_default_wait) {
> > -   ret = -EINVAL;
> > -   goto fence_rm_cb;
> > -   }
> > -
> > cb[i].task = current;
> > if (dma_fence_add_callback(fence, [i].base,
> >dma_fence_default_wait_cb)) {
> 

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


Re: [Intel-gfx] [PATCH v7 1/2] drm: content-type property for HDMI connector

2018-04-30 Thread Daniel Vetter
On Fri, Apr 27, 2018 at 10:40:00PM +0300, Ville Syrjälä wrote:
> On Mon, Apr 23, 2018 at 10:34:41AM +0300, StanLis wrote:
> > From: Stanislav Lisovskiy 
> > 
> > Added content_type property to drm_connector_state
> > in order to properly handle external HDMI TV content-type setting.
> > 
> > v2:
> >  * Moved helper function which attaches content type property
> >to the drm core, as was suggested.
> >Removed redundant connector state initialization.
> > 
> > v3:
> >  * Removed caps in drm_content_type_enum_list.
> >After some discussion it turned out that HDMI Spec 1.4
> >was wrongly assuming that IT Content(itc) bit doesn't affect
> >Content type states, however itc bit needs to be manupulated
> >as well. In order to not expose additional property for itc,
> >for sake of simplicity it was decided to bind those together
> >in same "content type" property.
> > 
> > v4:
> >  * Added it_content checking in intel_digital_connector_atomic_check.
> >Fixed documentation for new content type enum.
> > 
> > v5:
> >  * Moved patch revision's description to commit messages.
> > 
> > v6:
> >  * Minor naming fix for the content type enumeration string.
> > 
> > v7:
> >  * Fix parameter name for documentation and parameter alignment
> >in order not to get warning. Added Content Type description to
> >new HDMI connector properties section.
> > 
> > Signed-off-by: Stanislav Lisovskiy 
> > ---
> >  Documentation/gpu/drm-kms.rst|  6 +++
> >  Documentation/gpu/kms-properties.csv |  1 +
> >  drivers/gpu/drm/drm_atomic.c | 17 +++
> >  drivers/gpu/drm/drm_connector.c  | 74 
> >  drivers/gpu/drm/drm_edid.c   |  2 +
> >  include/drm/drm_connector.h  | 18 +++
> >  include/drm/drm_mode_config.h|  5 ++
> >  include/uapi/drm/drm_mode.h  |  7 +++
> >  8 files changed, 130 insertions(+)
> > 
> > diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
> > index 1dffd1ac4cd4..e233c2626bd0 100644
> > --- a/Documentation/gpu/drm-kms.rst
> > +++ b/Documentation/gpu/drm-kms.rst
> > @@ -517,6 +517,12 @@ Standard Connector Properties
> >  .. kernel-doc:: drivers/gpu/drm/drm_connector.c
> > :doc: standard connector properties
> >  
> > +HDMI Specific Connector Properties
> > +-
> > +
> > +.. kernel-doc:: drivers/gpu/drm/drm_connector.c
> > +   :doc: HDMI connector properties
> > +
> >  Plane Composition Properties
> >  
> >  
> > diff --git a/Documentation/gpu/kms-properties.csv 
> > b/Documentation/gpu/kms-properties.csv
> > index 6b28b014cb7d..3567c986bd7d 100644
> > --- a/Documentation/gpu/kms-properties.csv
> > +++ b/Documentation/gpu/kms-properties.csv
> > @@ -17,6 +17,7 @@ Owner Module/Drivers,Group,Property Name,Type,Property 
> > Values,Object attached,De
> >  ,Virtual GPU,“suggested X”,RANGE,"Min=0, 
> > Max=0x",Connector,property to suggest an X offset for a connector
> >  ,,“suggested Y”,RANGE,"Min=0, Max=0x",Connector,property to 
> > suggest an Y offset for a connector
> >  ,Optional,"""aspect ratio""",ENUM,"{ ""None"", ""4:3"", ""16:9"" 
> > }",Connector,TDB
> > +,Optional,"""content type""",ENUM,"{ ""No Data"", ""Graphics"", ""Photo"", 
> > ""Cinema"", ""Game"" }",Connector,TBD
> >  i915,Generic,"""Broadcast RGB""",ENUM,"{ ""Automatic"", ""Full"", 
> > ""Limited 16:235"" }",Connector,"When this property is set to Limited 
> > 16:235 and CTM is set, the hardware will be programmed with the result of 
> > the multiplication of CTM by the limited range matrix to ensure the pixels 
> > normaly in the range 0..1.0 are remapped to the range 16/255..235/255."
> >  ,,“audio”,ENUM,"{ ""force-dvi"", ""off"", ""auto"", ""on"" }",Connector,TBD
> >  ,SDVO-TV,“mode”,ENUM,"{ ""NTSC_M"", ""NTSC_J"", ""NTSC_443"", ""PAL_B"" } 
> > etc.",Connector,TBD
> > diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> > index 7d25c42f22db..479499f5848e 100644
> > --- a/drivers/gpu/drm/drm_atomic.c
> > +++ b/drivers/gpu/drm/drm_atomic.c
> > @@ -1266,6 +1266,15 @@ static int drm_atomic_connector_set_property(struct 
> > drm_connector *connector,
> > state->link_status = val;
> > } else if (property == config->aspect_ratio_property) {
> > state->picture_aspect_ratio = val;
> > +   } else if (property == config->content_type_property) {
> > +   /*
> > +* Lowest two bits of content_type property control
> > +* content_type, bit 2 controls itc bit.
> > +* It was decided to have a single property called
> > +* content_type, instead of content_type and itc.
> > +*/
> > +   state->content_type = val & 3;
> > +   state->it_content = val >> 2;
> > } else if (property == connector->scaling_mode_property) {
> > state->scaling_mode 

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Print error state times relative to capture (rev3)

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: Print error state times relative to capture (rev3)
URL   : https://patchwork.freedesktop.org/series/41749/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4112_full -> Patchwork_8841_full =

== Summary - WARNING ==

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

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/41749/revisions/3/mbox/

== Possible new issues ==

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

  === IGT changes ===

 Warnings 

igt@gem_exec_schedule@deep-blt:
  shard-kbl:  PASS -> SKIP

igt@gem_mocs_settings@mocs-rc6-blt:
  shard-kbl:  SKIP -> PASS


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_eio@suspend:
  shard-glk:  PASS -> INCOMPLETE (fdo#103359, k.org#198133)

igt@kms_flip@absolute-wf_vblank-interruptible:
  shard-glk:  PASS -> FAIL (fdo#106087)

igt@kms_flip@modeset-vs-vblank-race-interruptible:
  shard-glk:  PASS -> FAIL (fdo#103060)

igt@kms_flip@plain-flip-ts-check-interruptible:
  shard-glk:  PASS -> FAIL (fdo#100368)


 Possible fixes 

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

igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
  shard-hsw:  FAIL (fdo#104873) -> PASS

igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
  shard-hsw:  FAIL (fdo#103928) -> PASS

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

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

igt@kms_flip@flip-vs-wf_vblank-interruptible:
  shard-glk:  FAIL (fdo#100368) -> PASS +1

igt@kms_sysfs_edid_timing:
  shard-apl:  WARN (fdo#100047) -> PASS


  fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#103928 https://bugs.freedesktop.org/show_bug.cgi?id=103928
  fdo#104873 https://bugs.freedesktop.org/show_bug.cgi?id=104873
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105707 https://bugs.freedesktop.org/show_bug.cgi?id=105707
  fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
  fdo#106087 https://bugs.freedesktop.org/show_bug.cgi?id=106087
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (9 -> 8) ==

  Missing(1): shard-glkb 


== Build changes ==

* Linux: CI_DRM_4112 -> Patchwork_8841

  CI_DRM_4112: 423a00794c9d9610a71d8a02cd3bc17c6fe5fae1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8841: f867250d877d006589e3ad8349e31261585afc43 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


Re: [Intel-gfx] [PATCH 1/8] drm/i915: expose helper mapping exec flag engine to intel_engine_cs

2018-04-30 Thread Lionel Landwerlin

On 25/04/18 12:50, Chris Wilson wrote:

Quoting Lionel Landwerlin (2018-04-25 12:45:14)

This function will be used later by the per (context,engine) power
programming interface.

No. This is not the appropriate uABI, please see
intel_engine_lookup_user().
-Chris


uAPI wise, does this sound okay? :

#define I915_CONTEXT_PARAM_SSEU 0x7
    __u64 value;

struct drm_i915_gem_context_param_sseu {
/*
 * Engine to be configured or queried.
 */
    __u32 class;
    __u32 instance;

/*
 * Setting slice_mask or subslice_mask to 0 will make the 
context use

 * masks reported respectively by I915_PARAM_SLICE_MASK or
 * I915_PARAM_SUBSLICE_MASK.
 */
    union {
    struct {
    __u8 slice_mask;
    __u8 subslice_mask;
    __u8 min_eus_per_subslice;
    __u8 max_eus_per_subslice;
    } packed;
    __u64 value;
    };
};

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


[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/4] igt: Exercise creating context with shared GTT

2018-04-30 Thread Patchwork
== Series Details ==

Series: series starting with [1/4] igt: Exercise creating context with shared 
GTT
URL   : https://patchwork.freedesktop.org/series/42442/
State : failure

== Summary ==

Applying: igt: Exercise creating context with shared GTT
Using index info to reconstruct a base tree...
M   tests/Makefile.sources
Falling back to patching base and 3-way merge...
Auto-merging tests/Makefile.sources
Applying: igt/gem_exec_whisper: Fork all-engine tests one-per-engine
Applying: igt: Add gem_ctx_engines
Patch failed at 0003 igt: Add gem_ctx_engines
The copy of the patch that failed is found in: .git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

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


[Intel-gfx] ✓ Fi.CI.BAT: success for drm: Fix rounding errors and use scaling in i915.

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm: Fix rounding errors and use scaling in i915.
URL   : https://patchwork.freedesktop.org/series/42476/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4113 -> Patchwork_8845 =

== Summary - WARNING ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Warnings 

igt@gem_exec_gttfill@basic:
  fi-pnv-d510:PASS -> SKIP




== Participating hosts (38 -> 35) ==

  Missing(3): fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

* Linux: CI_DRM_4113 -> Patchwork_8845

  CI_DRM_4113: 1d2a421b1f9b47883b9d0eeb28dc4069e462dbe3 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8845: 59b43359b5d7da1bd373faae2193b11dc64c7b9d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

59b43359b5d7 drm/selftests: Add drm helper selftest
882b62db73fa drm/selftests: Rename the Kconfig option to 
CONFIG_DRM_DEBUG_SELFTEST
035d2ea322b2 drm/i915: Do not adjust scale when out of bounds, v2.
339983c9bb65 drm/rect: Handle rounding errors in drm_rect_clip_scaled, v2.
febeff5693c0 drm/rect: Round above 1 << 16 upwards to correct scale calculation 
functions.

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8845/issues.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: configure the transcoder clocks before touching pipeconf on HSW+

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: configure the transcoder clocks before touching pipeconf on 
HSW+
URL   : https://patchwork.freedesktop.org/series/42436/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4112_full -> Patchwork_8840_full =

== Summary - SUCCESS ==

  No regressions found.

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

== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_flip@absolute-wf_vblank-interruptible:
  shard-glk:  PASS -> FAIL (fdo#106087)

igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible:
  shard-glk:  PASS -> FAIL (fdo#100368)

igt@prime_vgem@basic-fence-flip:
  shard-glk:  PASS -> FAIL (fdo#104008)


 Possible fixes 

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

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

igt@kms_flip@plain-flip-fb-recreate-interruptible:
  shard-glk:  FAIL (fdo#100368) -> PASS


  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105707 https://bugs.freedesktop.org/show_bug.cgi?id=105707
  fdo#106087 https://bugs.freedesktop.org/show_bug.cgi?id=106087


== Participating hosts (9 -> 6) ==

  Missing(3): shard-glkb shard-hsw shard-kbl 


== Build changes ==

* Linux: CI_DRM_4112 -> Patchwork_8840

  CI_DRM_4112: 423a00794c9d9610a71d8a02cd3bc17c6fe5fae1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8840: 87aad90c198c1fd70a6582f5fd839a276da0ddff @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm: Fix rounding errors and use scaling in i915.

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm: Fix rounding errors and use scaling in i915.
URL   : https://patchwork.freedesktop.org/series/42476/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Commit: drm/rect: Round above 1 << 16 upwards to correct scale calculation 
functions.
Okay!

Commit: drm/rect: Handle rounding errors in drm_rect_clip_scaled, v2.
+drivers/gpu/drm/drm_rect.c:117:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:117:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:117:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:117:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:117:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:117:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:117:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:125:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:125:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:125:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:125:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:125:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:125:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:125:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:133:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:133:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:133:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:133:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:133:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:133:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:133:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:140:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:140:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:140:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:140:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:140:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:140:27: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_rect.c:140:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:77:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:77:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:77:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:77:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:77:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:77:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:77:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:82:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:82:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:82:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:82:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:82:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:82:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:82:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:87:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:87:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:87:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:87:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:87:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:87:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:87:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:92:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:92:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:92:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:92:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:92:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:92:27: warning: expression using sizeof(void)
-O:drivers/gpu/drm/drm_rect.c:92:27: warning: expression using sizeof(void)

Commit: drm/i915: Do not adjust scale when out of bounds, v2.
Okay!

Commit: drm/selftests: Rename the Kconfig option to CONFIG_DRM_DEBUG_SELFTEST
+Error in reading or end of file.

Commit: drm/selftests: Add drm helper selftest
Okay!

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm: Fix rounding errors and use scaling in i915.

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm: Fix rounding errors and use scaling in i915.
URL   : https://patchwork.freedesktop.org/series/42476/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
febeff5693c0 drm/rect: Round above 1 << 16 upwards to correct scale calculation 
functions.
-:25: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#25: FILE: drivers/gpu/drm/drm_rect.c:111:
+   return DIV_ROUND_UP(src, dst);
+   else

total: 0 errors, 1 warnings, 0 checks, 47 lines checked
339983c9bb65 drm/rect: Handle rounding errors in drm_rect_clip_scaled, v2.
-:37: WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or 
return
#37: FILE: drivers/gpu/drm/drm_rect.c:65:
+   return DIV_ROUND_UP(src, dst);
+   else

-:56: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'oldscale' - possible 
side-effects?
#56: FILE: drivers/gpu/drm/drm_rect.c:98:
+#define FIXUP(oldscale, fn, m, second) do { \
+   if (oldscale != 1 << 16) { \
+   int newscale = drm_calc_scale(fn(src), fn(dst)); \
+ \
+   if (newscale < 0) \
+   return false; \
+ \
+   if ((oldscale < 0x1) != (newscale < 0x1)) { \
+   if (!second) \
+   src->m##1 = src->m##2 - (fn(dst) << 16); \
+   else \
+   src->m##2 = src->m##1 + (fn(dst) << 16); \
+   } \
+   } \
+ } while (0)

-:56: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'fn' - possible side-effects?
#56: FILE: drivers/gpu/drm/drm_rect.c:98:
+#define FIXUP(oldscale, fn, m, second) do { \
+   if (oldscale != 1 << 16) { \
+   int newscale = drm_calc_scale(fn(src), fn(dst)); \
+ \
+   if (newscale < 0) \
+   return false; \
+ \
+   if ((oldscale < 0x1) != (newscale < 0x1)) { \
+   if (!second) \
+   src->m##1 = src->m##2 - (fn(dst) << 16); \
+   else \
+   src->m##2 = src->m##1 + (fn(dst) << 16); \
+   } \
+   } \
+ } while (0)

-:59: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#59: FILE: drivers/gpu/drm/drm_rect.c:101:
+ \$

-:62: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#62: FILE: drivers/gpu/drm/drm_rect.c:104:
+ \$

-:63: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 'oldscale < 
0x1'
#63: FILE: drivers/gpu/drm/drm_rect.c:105:
+   if ((oldscale < 0x1) != (newscale < 0x1)) { \

-:63: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 'newscale < 
0x1'
#63: FILE: drivers/gpu/drm/drm_rect.c:105:
+   if ((oldscale < 0x1) != (newscale < 0x1)) { \

-:70: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#70: FILE: drivers/gpu/drm/drm_rect.c:112:
+ } while (0)$

total: 0 errors, 4 warnings, 4 checks, 107 lines checked
035d2ea322b2 drm/i915: Do not adjust scale when out of bounds, v2.
-:180: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#180: FILE: drivers/gpu/drm/i915/intel_sprite.c:1030:
+   if (INTEL_GEN(dev_priv) < 9 && (

total: 0 errors, 0 warnings, 1 checks, 179 lines checked
882b62db73fa drm/selftests: Rename the Kconfig option to 
CONFIG_DRM_DEBUG_SELFTEST
59b43359b5d7 drm/selftests: Add drm helper selftest
-:28: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#28: 
new file mode 100644

-:48: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier 
tag in line 1
#48: FILE: drivers/gpu/drm/selftests/test-drm-helper.c:1:
+/*

-:63: WARNING:MACRO_WITH_FLOW_CONTROL: Macros with flow control statements 
should be avoided
#63: FILE: drivers/gpu/drm/selftests/test-drm-helper.c:16:
+#define FAIL(test, msg, ...) \
+   do { \
+   if (test) { \
+   pr_err("%s/%u: " msg, __FUNCTION__, __LINE__, 
##__VA_ARGS__); \
+   return -EINVAL; \
+   } \
+   } while (0)

-:66: WARNING:USE_FUNC: __func__ should be used instead of gcc specific 
__FUNCTION__
#66: FILE: drivers/gpu/drm/selftests/test-drm-helper.c:19:
+   pr_err("%s/%u: " msg, __FUNCTION__, __LINE__, 
##__VA_ARGS__); \

-:71: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'x' - possible side-effects?
#71: FILE: drivers/gpu/drm/selftests/test-drm-helper.c:24:
+#define FAIL_ON(x) FAIL((x), "%s", "FAIL_ON(" __stringify(x) ")\n")

-:74: WARNING:UNSPECIFIED_INT: Prefer 'unsigned int' to bare use of 'unsigned'
#74: FILE: drivers/gpu/drm/selftests/test-drm-helper.c:27:
+   unsigned src_x, unsigned src_y,

-:74: WARNING:UNSPECIFIED_INT: Prefer 'unsigned int' to bare use of 'unsigned'
#74: FILE: drivers/gpu/drm/selftests/test-drm-helper.c:27:
+   unsigned src_x, unsigned src_y,

-:75: 

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [CI,1/4] drm/i915: Stop tracking timeline->inflight_seqnos

2018-04-30 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/4] drm/i915: Stop tracking 
timeline->inflight_seqnos
URL   : https://patchwork.freedesktop.org/series/42474/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4113 -> Patchwork_8844 =

== Summary - WARNING ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Warnings 

igt@gem_exec_gttfill@basic:
  fi-pnv-d510:PASS -> SKIP


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-ivb-3520m:   PASS -> DMESG-WARN (fdo#106084)


 Possible fixes 

igt@gem_mmap_gtt@basic-small-bo-tiledx:
  fi-gdg-551: FAIL (fdo#102575) -> PASS


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


== Participating hosts (38 -> 35) ==

  Missing(3): fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

* Linux: CI_DRM_4113 -> Patchwork_8844

  CI_DRM_4113: 1d2a421b1f9b47883b9d0eeb28dc4069e462dbe3 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8844: ebf0612ae3132ad3fb2bedf0332dbff34d1915d1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

ebf0612ae313 drm/i915: Only track live rings for retiring
b4864a8135d0 drm/i915: Retire requests along rings
783b02513ae0 drm/i915: Wrap engine->context_pin() and engine->context_unpin()
c6ae757146c5 drm/i915: Stop tracking timeline->inflight_seqnos

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [CI,1/4] drm/i915: Stop tracking timeline->inflight_seqnos

2018-04-30 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/4] drm/i915: Stop tracking 
timeline->inflight_seqnos
URL   : https://patchwork.freedesktop.org/series/42474/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Commit: drm/i915: Stop tracking timeline->inflight_seqnos
-O:drivers/gpu/drm/i915/i915_request.c:268:13: error: undefined identifier 
'__builtin_add_overflow_p'
-O:drivers/gpu/drm/i915/i915_request.c:268:13: warning: call with no type!
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3660:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3661:16: warning: expression 
using sizeof(void)

Commit: drm/i915: Wrap engine->context_pin() and engine->context_unpin()
Okay!

Commit: drm/i915: Retire requests along rings
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3661:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3662:16: warning: expression 
using sizeof(void)

Commit: drm/i915: Only track live rings for retiring
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3662:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3663:16: warning: expression 
using sizeof(void)

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [CI,1/4] drm/i915: Stop tracking timeline->inflight_seqnos

2018-04-30 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/4] drm/i915: Stop tracking 
timeline->inflight_seqnos
URL   : https://patchwork.freedesktop.org/series/42474/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
c6ae757146c5 drm/i915: Stop tracking timeline->inflight_seqnos
-:17: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ 
chars of sha1> ("")' - ie: 'commit 9b6586ae9f6b ("drm/i915: Keep a 
global seqno per-engine")'
#17: 
References: 9b6586ae9f6b ("drm/i915: Keep a global seqno per-engine")

total: 1 errors, 0 warnings, 0 checks, 128 lines checked
783b02513ae0 drm/i915: Wrap engine->context_pin() and engine->context_unpin()
b4864a8135d0 drm/i915: Retire requests along rings
ebf0612ae313 drm/i915: Only track live rings for retiring

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


[Intel-gfx] [PATCH 1/5] drm/rect: Round above 1 << 16 upwards to correct scale calculation functions.

2018-04-30 Thread Maarten Lankhorst
When calculating limits we want to be as pessimistic as possible,
so we have to explicitly say whether we want to round up or down
to accurately calculate whether we are below min_scale or above
max_scale.

Signed-off-by: Maarten Lankhorst 
---
 drivers/gpu/drm/drm_rect.c | 17 -
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c
index 9817c1445ba9..b179c7c73cc5 100644
--- a/drivers/gpu/drm/drm_rect.c
+++ b/drivers/gpu/drm/drm_rect.c
@@ -106,7 +106,10 @@ static int drm_calc_scale(int src, int dst)
if (dst == 0)
return 0;
 
-   scale = src / dst;
+   if (src > (dst << 16))
+   return DIV_ROUND_UP(src, dst);
+   else
+   scale = src / dst;
 
return scale;
 }
@@ -121,6 +124,9 @@ static int drm_calc_scale(int src, int dst)
  * Calculate the horizontal scaling factor as
  * (@src width) / (@dst width).
  *
+ * If the scale is below 1 << 16, round down, if above up. This will
+ * calculate the scale with the most pessimistic limit calculation.
+ *
  * RETURNS:
  * The horizontal scaling factor, or errno of out of limits.
  */
@@ -152,6 +158,9 @@ EXPORT_SYMBOL(drm_rect_calc_hscale);
  * Calculate the vertical scaling factor as
  * (@src height) / (@dst height).
  *
+ * If the scale is below 1 << 16, round down, if above up. This will
+ * calculate the scale with the most pessimistic limit calculation.
+ *
  * RETURNS:
  * The vertical scaling factor, or errno of out of limits.
  */
@@ -189,6 +198,9 @@ EXPORT_SYMBOL(drm_rect_calc_vscale);
  * If the calculated scaling factor is above @max_vscale,
  * decrease the height of rectangle @src to compensate.
  *
+ * If the scale is below 1 << 16, round down, if above up. This will
+ * calculate the scale with the most pessimistic limit calculation.
+ *
  * RETURNS:
  * The horizontal scaling factor.
  */
@@ -239,6 +251,9 @@ EXPORT_SYMBOL(drm_rect_calc_hscale_relaxed);
  * If the calculated scaling factor is above @max_vscale,
  * decrease the height of rectangle @src to compensate.
  *
+ * If the scale is below 1 << 16, round down, if above up. This will
+ * calculate the scale with the most pessimistic limit calculation.
+ *
  * RETURNS:
  * The vertical scaling factor.
  */
-- 
2.17.0

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


[Intel-gfx] [PATCH 3/5] drm/i915: Do not adjust scale when out of bounds, v2.

2018-04-30 Thread Maarten Lankhorst
With the previous patch drm_atomic_helper_check_plane_state correctly
calculates clipping and the xf86-video-intel ddx is fixed to fall back
to GPU correctly when SetPlane fails, we can remove the hack where
we try to pan/zoom when out of min/max scaling range. This was already
poor behavior where the screen didn't show what was requested, and now
instead we reject it outright. This simplifies check_sprite_plane a lot.

Changes since v1:
- Set crtc_h to the height correctly.
- Reject < 3x3 rectangles instead of making them invisible for 
---
 drivers/gpu/drm/i915/intel_sprite.c | 144 +++-
 1 file changed, 35 insertions(+), 109 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_sprite.c 
b/drivers/gpu/drm/i915/intel_sprite.c
index aa1dfaa692b9..970015dcc6f1 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -936,22 +936,12 @@ intel_check_sprite_plane(struct intel_plane *plane,
struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
struct drm_framebuffer *fb = state->base.fb;
-   int crtc_x, crtc_y;
-   unsigned int crtc_w, crtc_h;
-   uint32_t src_x, src_y, src_w, src_h;
-   struct drm_rect *src = >base.src;
-   struct drm_rect *dst = >base.dst;
-   struct drm_rect clip = {};
int max_stride = INTEL_GEN(dev_priv) >= 9 ? 32768 : 16384;
-   int hscale, vscale;
int max_scale, min_scale;
bool can_scale;
int ret;
uint32_t pixel_format = 0;
 
-   *src = drm_plane_state_src(>base);
-   *dst = drm_plane_state_dest(>base);
-
if (!fb) {
state->base.visible = false;
return 0;
@@ -990,64 +980,19 @@ intel_check_sprite_plane(struct intel_plane *plane,
min_scale = plane->can_scale ? 1 : (1 << 16);
}
 
-   /*
-* FIXME the following code does a bunch of fuzzy adjustments to the
-* coordinates and sizes. We probably need some way to decide whether
-* more strict checking should be done instead.
-*/
-   drm_rect_rotate(src, fb->width << 16, fb->height << 16,
-   state->base.rotation);
-
-   hscale = drm_rect_calc_hscale_relaxed(src, dst, min_scale, max_scale);
-   BUG_ON(hscale < 0);
-
-   vscale = drm_rect_calc_vscale_relaxed(src, dst, min_scale, max_scale);
-   BUG_ON(vscale < 0);
-
-   if (crtc_state->base.enable)
-   drm_mode_get_hv_timing(_state->base.mode,
-  , );
-
-   state->base.visible = drm_rect_clip_scaled(src, dst, , hscale, 
vscale);
-
-   crtc_x = dst->x1;
-   crtc_y = dst->y1;
-   crtc_w = drm_rect_width(dst);
-   crtc_h = drm_rect_height(dst);
+   ret = drm_atomic_helper_check_plane_state(>base,
+ _state->base,
+ min_scale, max_scale,
+ true, true);
+   if (ret)
+   return ret;
 
if (state->base.visible) {
-   /* check again in case clipping clamped the results */
-   hscale = drm_rect_calc_hscale(src, dst, min_scale, max_scale);
-   if (hscale < 0) {
-   DRM_DEBUG_KMS("Horizontal scaling factor out of 
limits\n");
-   drm_rect_debug_print("src: ", src, true);
-   drm_rect_debug_print("dst: ", dst, false);
-
-   return hscale;
-   }
-
-   vscale = drm_rect_calc_vscale(src, dst, min_scale, max_scale);
-   if (vscale < 0) {
-   DRM_DEBUG_KMS("Vertical scaling factor out of 
limits\n");
-   drm_rect_debug_print("src: ", src, true);
-   drm_rect_debug_print("dst: ", dst, false);
-
-   return vscale;
-   }
-
-   /* Make the source viewport size an exact multiple of the 
scaling factors. */
-   drm_rect_adjust_size(src,
-drm_rect_width(dst) * hscale - 
drm_rect_width(src),
-drm_rect_height(dst) * vscale - 
drm_rect_height(src));
-
-   drm_rect_rotate_inv(src, fb->width << 16, fb->height << 16,
-   state->base.rotation);
-
-   /* sanity check to make sure the src viewport wasn't enlarged */
-   WARN_ON(src->x1 < (int) state->base.src_x ||
-   src->y1 < (int) state->base.src_y ||
-   src->x2 > (int) state->base.src_x + state->base.src_w ||
-   src->y2 > (int) state->base.src_y + state->base.src_h);
+   struct drm_rect *src = >base.src;
+   struct drm_rect *dst = >base.dst;
+   unsigned int crtc_w = 

[Intel-gfx] [PATCH 4/5] drm/selftests: Rename the Kconfig option to CONFIG_DRM_DEBUG_SELFTEST

2018-04-30 Thread Maarten Lankhorst
We want to add more DRM selftests, and there's not much point in
having a Kconfig option for every single one of them, so make
a generic one.

Signed-off-by: Maarten Lankhorst 
---
 drivers/gpu/drm/Kconfig| 8 
 drivers/gpu/drm/Makefile   | 2 +-
 drivers/gpu/drm/selftests/Makefile | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
index 757825ac60df..d684855b95c2 100644
--- a/drivers/gpu/drm/Kconfig
+++ b/drivers/gpu/drm/Kconfig
@@ -49,16 +49,16 @@ config DRM_DEBUG_MM
 
  If in doubt, say "N".
 
-config DRM_DEBUG_MM_SELFTEST
-   tristate "kselftests for DRM range manager (struct drm_mm)"
+config DRM_DEBUG_SELFTEST
+   tristate "kselftests for DRM"
depends on DRM
depends on DEBUG_KERNEL
select PRIME_NUMBERS
select DRM_LIB_RANDOM
default n
help
- This option provides a kernel module that can be used to test
- the DRM range manager (drm_mm) and its API. This option is not
+ This option provides kernel modules that can be used to run
+ various selftests on parts of the DRM api. This option is not
  useful for distributions or general kernels, but only for kernel
  developers working on DRM and associated drivers.
 
diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
index 9d66657ea117..4becc245e359 100644
--- a/drivers/gpu/drm/Makefile
+++ b/drivers/gpu/drm/Makefile
@@ -43,7 +43,7 @@ drm_kms_helper-$(CONFIG_DRM_KMS_CMA_HELPER) += 
drm_fb_cma_helper.o
 drm_kms_helper-$(CONFIG_DRM_DP_AUX_CHARDEV) += drm_dp_aux_dev.o
 
 obj-$(CONFIG_DRM_KMS_HELPER) += drm_kms_helper.o
-obj-$(CONFIG_DRM_DEBUG_MM_SELFTEST) += selftests/
+obj-$(CONFIG_DRM_DEBUG_SELFTEST) += selftests/
 
 obj-$(CONFIG_DRM)  += drm.o
 obj-$(CONFIG_DRM_MIPI_DSI) += drm_mipi_dsi.o
diff --git a/drivers/gpu/drm/selftests/Makefile 
b/drivers/gpu/drm/selftests/Makefile
index 4aebfc7f27d4..f7dd66e859a9 100644
--- a/drivers/gpu/drm/selftests/Makefile
+++ b/drivers/gpu/drm/selftests/Makefile
@@ -1 +1 @@
-obj-$(CONFIG_DRM_DEBUG_MM_SELFTEST) += test-drm_mm.o
+obj-$(CONFIG_DRM_DEBUG_SELFTEST) += test-drm_mm.o
-- 
2.17.0

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


[Intel-gfx] [PATCH 2/5] drm/rect: Handle rounding errors in drm_rect_clip_scaled, v2.

2018-04-30 Thread Maarten Lankhorst
No matter how you perform the clip adjustments, a small
error may push the scaling factor to the other side of
0x1. Solve this with a macro that will fixup the
scale to 0x1 if we accidentally wrap to the other side.

Changes since v1:
- Adjust dst immediately, else drm_rect_width/height on dst gives bogus
  results.

Signed-off-by: Maarten Lankhorst 
---
 drivers/gpu/drm/drm_rect.c | 71 --
 1 file changed, 52 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c
index b179c7c73cc5..9d6194780a74 100644
--- a/drivers/gpu/drm/drm_rect.c
+++ b/drivers/gpu/drm/drm_rect.c
@@ -50,6 +50,24 @@ bool drm_rect_intersect(struct drm_rect *r1, const struct 
drm_rect *r2)
 }
 EXPORT_SYMBOL(drm_rect_intersect);
 
+static int drm_calc_scale(int src, int dst)
+{
+   int scale = 0;
+
+   if (WARN_ON(src < 0 || dst < 0))
+   return -EINVAL;
+
+   if (dst == 0)
+   return 0;
+
+   if (src > (dst << 16))
+   return DIV_ROUND_UP(src, dst);
+   else
+   scale = src / dst;
+
+   return scale;
+}
+
 /**
  * drm_rect_clip_scaled - perform a scaled clip operation
  * @src: source window rectangle
@@ -71,49 +89,64 @@ bool drm_rect_clip_scaled(struct drm_rect *src, struct 
drm_rect *dst,
 {
int diff;
 
+   /*
+* When scale is near 1.0 rounding errors may cause the scaling
+* factor to the other side. Some hardware may support
+* upsampling, but not downsampling, and that would break when
+* rounding.
+*/
+#define FIXUP(oldscale, fn, m, second) do { \
+   if (oldscale != 1 << 16) { \
+   int newscale = drm_calc_scale(fn(src), fn(dst)); \
+ \
+   if (newscale < 0) \
+   return false; \
+ \
+   if ((oldscale < 0x1) != (newscale < 0x1)) { \
+   if (!second) \
+   src->m##1 = src->m##2 - (fn(dst) << 16); \
+   else \
+   src->m##2 = src->m##1 + (fn(dst) << 16); \
+   } \
+   } \
+ } while (0)
+
diff = clip->x1 - dst->x1;
if (diff > 0) {
int64_t tmp = src->x1 + (int64_t) diff * hscale;
src->x1 = clamp_t(int64_t, tmp, INT_MIN, INT_MAX);
+   dst->x1 = clip->x1;
+   FIXUP(hscale, drm_rect_width, x, 0);
}
+
diff = clip->y1 - dst->y1;
if (diff > 0) {
int64_t tmp = src->y1 + (int64_t) diff * vscale;
src->y1 = clamp_t(int64_t, tmp, INT_MIN, INT_MAX);
+   dst->y1 = clip->y1;
+   FIXUP(vscale, drm_rect_height, y, 0);
}
+
diff = dst->x2 - clip->x2;
if (diff > 0) {
int64_t tmp = src->x2 - (int64_t) diff * hscale;
src->x2 = clamp_t(int64_t, tmp, INT_MIN, INT_MAX);
+   dst->x2 = clip->x2;
+   FIXUP(hscale, drm_rect_width, x, 1);
}
diff = dst->y2 - clip->y2;
if (diff > 0) {
int64_t tmp = src->y2 - (int64_t) diff * vscale;
src->y2 = clamp_t(int64_t, tmp, INT_MIN, INT_MAX);
+   dst->y2 = clip->y2;
+   FIXUP(vscale, drm_rect_height, y, 1);
}
+#undef FIXUP
 
-   return drm_rect_intersect(dst, clip);
+   return drm_rect_visible(dst);
 }
 EXPORT_SYMBOL(drm_rect_clip_scaled);
 
-static int drm_calc_scale(int src, int dst)
-{
-   int scale = 0;
-
-   if (WARN_ON(src < 0 || dst < 0))
-   return -EINVAL;
-
-   if (dst == 0)
-   return 0;
-
-   if (src > (dst << 16))
-   return DIV_ROUND_UP(src, dst);
-   else
-   scale = src / dst;
-
-   return scale;
-}
-
 /**
  * drm_rect_calc_hscale - calculate the horizontal scaling factor
  * @src: source window rectangle
-- 
2.17.0

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


[Intel-gfx] [PATCH 5/5] drm/selftests: Add drm helper selftest

2018-04-30 Thread Maarten Lankhorst
Signed-off-by: Maarten Lankhorst 
---
 drivers/gpu/drm/Kconfig   |   1 +
 drivers/gpu/drm/selftests/Makefile|   2 +-
 .../gpu/drm/selftests/drm_helper_selftests.h  |   9 +
 drivers/gpu/drm/selftests/test-drm-helper.c   | 247 ++
 4 files changed, 258 insertions(+), 1 deletion(-)
 create mode 100644 drivers/gpu/drm/selftests/drm_helper_selftests.h
 create mode 100644 drivers/gpu/drm/selftests/test-drm-helper.c

diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
index d684855b95c2..28d059007ac2 100644
--- a/drivers/gpu/drm/Kconfig
+++ b/drivers/gpu/drm/Kconfig
@@ -55,6 +55,7 @@ config DRM_DEBUG_SELFTEST
depends on DEBUG_KERNEL
select PRIME_NUMBERS
select DRM_LIB_RANDOM
+   select DRM_KMS_HELPER
default n
help
  This option provides kernel modules that can be used to run
diff --git a/drivers/gpu/drm/selftests/Makefile 
b/drivers/gpu/drm/selftests/Makefile
index f7dd66e859a9..9fc349fa18e9 100644
--- a/drivers/gpu/drm/selftests/Makefile
+++ b/drivers/gpu/drm/selftests/Makefile
@@ -1 +1 @@
-obj-$(CONFIG_DRM_DEBUG_SELFTEST) += test-drm_mm.o
+obj-$(CONFIG_DRM_DEBUG_SELFTEST) += test-drm_mm.o test-drm-helper.o
diff --git a/drivers/gpu/drm/selftests/drm_helper_selftests.h 
b/drivers/gpu/drm/selftests/drm_helper_selftests.h
new file mode 100644
index ..9771290ed228
--- /dev/null
+++ b/drivers/gpu/drm/selftests/drm_helper_selftests.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* List each unit test as selftest(name, function)
+ *
+ * The name is used as both an enum and expanded as igt__name to create
+ * a module parameter. It must be unique and legal for a C identifier.
+ *
+ * Tests are executed in order by igt/drm_selftests_helper
+ */
+selftest(check_plane_state, igt_check_plane_state)
diff --git a/drivers/gpu/drm/selftests/test-drm-helper.c 
b/drivers/gpu/drm/selftests/test-drm-helper.c
new file mode 100644
index ..a015712b43e8
--- /dev/null
+++ b/drivers/gpu/drm/selftests/test-drm-helper.c
@@ -0,0 +1,247 @@
+/*
+ * Test cases for the drm_kms_helper functions
+ */
+
+#define pr_fmt(fmt) "drm_kms_helper: " fmt
+
+#include 
+
+#include 
+#include 
+#include 
+
+#define TESTS "drm_helper_selftests.h"
+#include "drm_selftest.h"
+
+#define FAIL(test, msg, ...) \
+   do { \
+   if (test) { \
+   pr_err("%s/%u: " msg, __FUNCTION__, __LINE__, 
##__VA_ARGS__); \
+   return -EINVAL; \
+   } \
+   } while (0)
+
+#define FAIL_ON(x) FAIL((x), "%s", "FAIL_ON(" __stringify(x) ")\n")
+
+static void set_src(struct drm_plane_state *plane_state,
+   unsigned src_x, unsigned src_y,
+   unsigned src_w, unsigned src_h)
+{
+   plane_state->src_x = src_x;
+   plane_state->src_y = src_y;
+   plane_state->src_w = src_w;
+   plane_state->src_h = src_h;
+}
+
+static bool check_src_eq(struct drm_plane_state *plane_state,
+unsigned src_x, unsigned src_y,
+unsigned src_w, unsigned src_h)
+{
+   if (plane_state->src.x1 < 0) {
+   pr_err("src x coordinate %x should never be below 0.\n", 
plane_state->src.x1);
+   drm_rect_debug_print("src: ", _state->src, true);
+   return false;
+   }
+   if (plane_state->src.y1 < 0) {
+   pr_err("src y coordinate %x should never be below 0.\n", 
plane_state->src.y1);
+   drm_rect_debug_print("src: ", _state->src, true);
+   return false;
+   }
+
+   if (plane_state->src.x1 != src_x ||
+   plane_state->src.y1 != src_y ||
+   drm_rect_width(_state->src) != src_w ||
+   drm_rect_height(_state->src) != src_h) {
+   drm_rect_debug_print("src: ", _state->src, true);
+   return false;
+   }
+
+   return true;
+}
+
+static void set_crtc(struct drm_plane_state *plane_state,
+int crtc_x, int crtc_y,
+unsigned crtc_w, unsigned crtc_h)
+{
+   plane_state->crtc_x = crtc_x;
+   plane_state->crtc_y = crtc_y;
+   plane_state->crtc_w = crtc_w;
+   plane_state->crtc_h = crtc_h;
+}
+
+static bool check_crtc_eq(struct drm_plane_state *plane_state,
+ int crtc_x, int crtc_y,
+ unsigned crtc_w, unsigned crtc_h)
+{
+   if (plane_state->dst.x1 != crtc_x ||
+   plane_state->dst.y1 != crtc_y ||
+   drm_rect_width(_state->dst) != crtc_w ||
+   drm_rect_height(_state->dst) != crtc_h) {
+   drm_rect_debug_print("dst: ", _state->dst, false);
+
+   return false;
+   }
+
+   return true;
+}
+
+static int igt_check_plane_state(void *ignored)
+{
+   int ret;
+
+   const struct drm_crtc_state crtc_state = {
+   .crtc = ZERO_SIZE_PTR,
+   .enable = true,
+   

[Intel-gfx] [PATCH 0/5] drm: Fix rounding errors and use scaling in i915.

2018-04-30 Thread Maarten Lankhorst
There were some small rounding errors in when clamping with
1.0001 and 0. scaling, solve these and add a testcase for drm
helpers, which can be used to prevent more of these errors in the
future.

The testcases helped me find an error in v1, which wouldn't have
been found in another way.

Maarten Lankhorst (5):
  drm/rect: Round above 1 << 16 upwards to correct scale calculation functions.
  drm/rect: Handle rounding errors in drm_rect_clip_scaled, v2.
  drm/i915: Do not adjust scale when out of bounds, v2.
  drm/selftests: Rename the Kconfig option to CONFIG_DRM_DEBUG_SELFTEST
  drm/selftests: Add drm helper selftest

 drivers/gpu/drm/Kconfig   |   9 +-
 drivers/gpu/drm/Makefile  |   2 +-
 drivers/gpu/drm/drm_rect.c|  80 --
 drivers/gpu/drm/i915/intel_sprite.c   | 144 +++---
 drivers/gpu/drm/selftests/Makefile|   2 +-
 .../gpu/drm/selftests/drm_helper_selftests.h  |   9 +
 drivers/gpu/drm/selftests/test-drm-helper.c   | 247 ++
 7 files changed, 362 insertions(+), 131 deletions(-)
 create mode 100644 drivers/gpu/drm/selftests/drm_helper_selftests.h
 create mode 100644 drivers/gpu/drm/selftests/test-drm-helper.c

-- 
2.17.0

___
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: Wait for PSR exit before checking for vblank evasion for an atomic update

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: Wait for PSR exit before checking for vblank evasion for an 
atomic update
URL   : https://patchwork.freedesktop.org/series/42461/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4112_full -> Patchwork_8839_full =

== Summary - WARNING ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Warnings 

igt@gem_exec_schedule@deep-bsd2:
  shard-kbl:  PASS -> SKIP +1


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_flip@basic-flip-vs-wf_vblank:
  shard-apl:  PASS -> FAIL (fdo#100368)

igt@kms_flip@dpms-vs-vblank-race-interruptible:
  shard-glk:  PASS -> FAIL (fdo#103060)

igt@kms_flip@plain-flip-fb-recreate:
  shard-hsw:  PASS -> FAIL (fdo#100368)


 Possible fixes 

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

igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
  shard-hsw:  FAIL (fdo#104873) -> PASS

igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
  shard-hsw:  FAIL (fdo#103928) -> PASS

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

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

igt@kms_flip@plain-flip-fb-recreate-interruptible:
  shard-glk:  FAIL (fdo#100368) -> PASS +1

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


  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#103928 https://bugs.freedesktop.org/show_bug.cgi?id=103928
  fdo#104873 https://bugs.freedesktop.org/show_bug.cgi?id=104873
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105707 https://bugs.freedesktop.org/show_bug.cgi?id=105707
  fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (9 -> 8) ==

  Missing(1): shard-glkb 


== Build changes ==

* Linux: CI_DRM_4112 -> Patchwork_8839

  CI_DRM_4112: 423a00794c9d9610a71d8a02cd3bc17c6fe5fae1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8839: 136000f52a51f95837247de854eeac040380c507 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


[Intel-gfx] [CI 1/4] drm/i915: Stop tracking timeline->inflight_seqnos

2018-04-30 Thread Chris Wilson
In commit 9b6586ae9f6b ("drm/i915: Keep a global seqno per-engine"), we
moved from a global inflight counter to per-engine counters in the
hope that will be easy to run concurrently in future. However, with the
advent of the desire to move requests between engines, we do need a
global counter to preserve the semantics that no engine wraps in the
middle of a submit. (Although this semantic is now only required for gen7
semaphore support, which only supports greater-then comparisons!)

v2: Keep a global counter of all requests ever submitted and force the
reset when it wraps.

References: 9b6586ae9f6b ("drm/i915: Keep a global seqno per-engine")
Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
Reviewed-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/i915_debugfs.c  |  5 ++--
 drivers/gpu/drm/i915/i915_drv.h  |  1 +
 drivers/gpu/drm/i915/i915_gem_timeline.h |  6 -
 drivers/gpu/drm/i915/i915_request.c  | 33 
 drivers/gpu/drm/i915/intel_engine_cs.c   |  5 ++--
 5 files changed, 22 insertions(+), 28 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index cb1a804bf72e..747dad2666aa 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1340,10 +1340,9 @@ static int i915_hangcheck_info(struct seq_file *m, void 
*unused)
struct rb_node *rb;
 
seq_printf(m, "%s:\n", engine->name);
-   seq_printf(m, "\tseqno = %x [current %x, last %x], inflight 
%d\n",
+   seq_printf(m, "\tseqno = %x [current %x, last %x]\n",
   engine->hangcheck.seqno, seqno[id],
-  intel_engine_last_submit(engine),
-  engine->timeline->inflight_seqnos);
+  intel_engine_last_submit(engine));
seq_printf(m, "\twaiters? %s, fake irq active? %s, stalled? 
%s\n",
   yesno(intel_engine_has_waiter(engine)),
   yesno(test_bit(engine->id,
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 193176bcddf5..dd4d6b918e86 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2062,6 +2062,7 @@ struct drm_i915_private {
struct list_head timelines;
struct i915_gem_timeline global_timeline;
u32 active_requests;
+   u32 request_serial;
 
/**
 * Is the GPU currently considered idle, or busy executing
diff --git a/drivers/gpu/drm/i915/i915_gem_timeline.h 
b/drivers/gpu/drm/i915/i915_gem_timeline.h
index 33e01bf6aa36..6e82119e2cd8 100644
--- a/drivers/gpu/drm/i915/i915_gem_timeline.h
+++ b/drivers/gpu/drm/i915/i915_gem_timeline.h
@@ -37,12 +37,6 @@ struct intel_timeline {
u64 fence_context;
u32 seqno;
 
-   /**
-* Count of outstanding requests, from the time they are constructed
-* to the moment they are retired. Loosely coupled to hardware.
-*/
-   u32 inflight_seqnos;
-
spinlock_t lock;
 
/**
diff --git a/drivers/gpu/drm/i915/i915_request.c 
b/drivers/gpu/drm/i915/i915_request.c
index b692a9f7c357..b1993d4a1a53 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -241,6 +241,7 @@ static int reset_all_global_seqno(struct drm_i915_private 
*i915, u32 seqno)
   sizeof(timeline->engine[id].global_sync));
}
 
+   i915->gt.request_serial = seqno;
return 0;
 }
 
@@ -257,18 +258,22 @@ int i915_gem_set_global_seqno(struct drm_device *dev, u32 
seqno)
return reset_all_global_seqno(i915, seqno - 1);
 }
 
-static int reserve_engine(struct intel_engine_cs *engine)
+static int reserve_gt(struct drm_i915_private *i915)
 {
-   struct drm_i915_private *i915 = engine->i915;
-   u32 active = ++engine->timeline->inflight_seqnos;
-   u32 seqno = engine->timeline->seqno;
int ret;
 
-   /* Reservation is fine until we need to wrap around */
-   if (unlikely(add_overflows(seqno, active))) {
+   /*
+* Reservation is fine until we may need to wrap around
+*
+* By incrementing the serial for every request, we know that no
+* individual engine may exceed that serial (as each is reset to 0
+* on any wrap). This protects even the most pessimistic of migrations
+* of every request from all engines onto just one.
+*/
+   while (unlikely(++i915->gt.request_serial == 0)) {
ret = reset_all_global_seqno(i915, 0);
if (ret) {
-   engine->timeline->inflight_seqnos--;
+   i915->gt.request_serial--;
return ret;
}
}
@@ -279,15 +284,10 @@ static int reserve_engine(struct 

[Intel-gfx] [CI 3/4] drm/i915: Retire requests along rings

2018-04-30 Thread Chris Wilson
In the next patch, rings are the central timeline as requests may jump
between engines. Therefore in the future as we retire in order along the
engine timeline, we may retire out-of-order within a ring (as the ring now
occurs along multiple engines), leading to much hilarity in miscomputing
the position of ring->head.

As an added bonus, retiring along the ring reduces the penalty of having
one execlists client do cleanup for another (old legacy submission
shares a ring between all clients). The downside is that slow and
irregular (off the critical path) process of cleaning up stale requests
after userspace becomes a modicum less efficient.

In the long run, it will become apparent that the ordered
ring->request_list matches the ring->timeline, a fun challenge for the
future will be unifying the two lists to avoid duplication!

v2: We need both engine-order and ring-order processing to maintain our
knowledge of where individual rings have completed upto as well as
knowing what was last executing on any engine. And finally by decoupling
retiring the contexts on the engine and the timelines along the rings,
we do have to keep a reference to the context on each request
(previously it was guaranteed by the context being pinned).

v3: Not just a reference to the context, but we need to keep it pinned
as we manipulate the rings; i.e. we need a pin for both the manipulation
of the engine state during its retirements, and a separate pin for the
manipulation of the ring state.

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
Reviewed-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/i915_drv.h   |   3 +-
 drivers/gpu/drm/i915/i915_gem.c   |   1 +
 drivers/gpu/drm/i915/i915_request.c   | 150 +++---
 drivers/gpu/drm/i915/i915_utils.h |   6 +
 drivers/gpu/drm/i915/intel_ringbuffer.c   |   6 +-
 drivers/gpu/drm/i915/intel_ringbuffer.h   |   1 +
 drivers/gpu/drm/i915/selftests/mock_engine.c  |  27 +++-
 .../gpu/drm/i915/selftests/mock_gem_device.c  |   2 +
 8 files changed, 131 insertions(+), 65 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index dd4d6b918e86..edc33e059191 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2059,8 +2059,9 @@ struct drm_i915_private {
void (*resume)(struct drm_i915_private *);
void (*cleanup_engine)(struct intel_engine_cs *engine);
 
-   struct list_head timelines;
struct i915_gem_timeline global_timeline;
+   struct list_head timelines;
+   struct list_head rings;
u32 active_requests;
u32 request_serial;
 
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 4090bfdda340..f0644d1fbd75 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -5600,6 +5600,7 @@ int i915_gem_init_early(struct drm_i915_private *dev_priv)
goto err_dependencies;
 
mutex_lock(_priv->drm.struct_mutex);
+   INIT_LIST_HEAD(_priv->gt.rings);
INIT_LIST_HEAD(_priv->gt.timelines);
err = i915_gem_timeline_init__global(dev_priv);
mutex_unlock(_priv->drm.struct_mutex);
diff --git a/drivers/gpu/drm/i915/i915_request.c 
b/drivers/gpu/drm/i915/i915_request.c
index 9358f2cf0c32..e6535255d445 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -286,6 +286,7 @@ static int reserve_gt(struct drm_i915_private *i915)
 
 static void unreserve_gt(struct drm_i915_private *i915)
 {
+   GEM_BUG_ON(!i915->gt.active_requests);
if (!--i915->gt.active_requests)
i915_gem_park(i915);
 }
@@ -298,6 +299,7 @@ void i915_gem_retire_noop(struct i915_gem_active *active,
 
 static void advance_ring(struct i915_request *request)
 {
+   struct intel_ring *ring = request->ring;
unsigned int tail;
 
/*
@@ -309,7 +311,8 @@ static void advance_ring(struct i915_request *request)
 * Note this requires that we are always called in request
 * completion order.
 */
-   if (list_is_last(>ring_link, >ring->request_list)) {
+   GEM_BUG_ON(!list_is_first(>ring_link, >request_list));
+   if (list_is_last(>ring_link, >request_list)) {
/*
 * We may race here with execlists resubmitting this request
 * as we retire it. The resubmission will move the ring->tail
@@ -322,9 +325,9 @@ static void advance_ring(struct i915_request *request)
} else {
tail = request->postfix;
}
-   list_del(>ring_link);
+   list_del_init(>ring_link);
 
-   request->ring->head = tail;
+   ring->head = tail;
 }
 
 static void free_capture_list(struct i915_request *request)
@@ -340,30 +343,84 @@ static void free_capture_list(struct 

[Intel-gfx] [CI 4/4] drm/i915: Only track live rings for retiring

2018-04-30 Thread Chris Wilson
We don't need to track every ring for its lifetime as they are managed
by the contexts/engines. What we do want to track are the live rings so
that we can sporadically clean up requests if userspace falls behind. We
can simply restrict the gt->rings list to being only gt->live_rings.

v2: s/live/active/ for consistency with gt.active_requests

Suggested-by: Tvrtko Ursulin 
Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
Reviewed-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/i915_drv.h  |  3 ++-
 drivers/gpu/drm/i915/i915_gem.c  |  6 --
 drivers/gpu/drm/i915/i915_request.c  | 10 --
 drivers/gpu/drm/i915/intel_ringbuffer.c  |  4 
 drivers/gpu/drm/i915/intel_ringbuffer.h  |  2 +-
 drivers/gpu/drm/i915/selftests/mock_engine.c |  4 
 drivers/gpu/drm/i915/selftests/mock_gem_device.c |  5 +++--
 7 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index edc33e059191..6268a5103dba 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2061,7 +2061,8 @@ struct drm_i915_private {
 
struct i915_gem_timeline global_timeline;
struct list_head timelines;
-   struct list_head rings;
+
+   struct list_head active_rings;
u32 active_requests;
u32 request_serial;
 
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index f0644d1fbd75..fa1d94a4eb5f 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -141,6 +141,7 @@ static u32 __i915_gem_park(struct drm_i915_private *i915)
 {
lockdep_assert_held(>drm.struct_mutex);
GEM_BUG_ON(i915->gt.active_requests);
+   GEM_BUG_ON(!list_empty(>gt.active_rings));
 
if (!i915->gt.awake)
return I915_EPOCH_INVALID;
@@ -5599,9 +5600,10 @@ int i915_gem_init_early(struct drm_i915_private 
*dev_priv)
if (!dev_priv->priorities)
goto err_dependencies;
 
-   mutex_lock(_priv->drm.struct_mutex);
-   INIT_LIST_HEAD(_priv->gt.rings);
INIT_LIST_HEAD(_priv->gt.timelines);
+   INIT_LIST_HEAD(_priv->gt.active_rings);
+
+   mutex_lock(_priv->drm.struct_mutex);
err = i915_gem_timeline_init__global(dev_priv);
mutex_unlock(_priv->drm.struct_mutex);
if (err)
diff --git a/drivers/gpu/drm/i915/i915_request.c 
b/drivers/gpu/drm/i915/i915_request.c
index e6535255d445..c8fc4b323e62 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -322,6 +322,7 @@ static void advance_ring(struct i915_request *request)
 * noops - they are safe to be replayed on a reset.
 */
tail = READ_ONCE(request->tail);
+   list_del(>active_link);
} else {
tail = request->postfix;
}
@@ -1096,6 +1097,8 @@ void __i915_request_add(struct i915_request *request, 
bool flush_caches)
i915_gem_active_set(>last_request, request);
 
list_add_tail(>ring_link, >request_list);
+   if (list_is_first(>ring_link, >request_list))
+   list_add(>active_link, >i915->gt.active_rings);
request->emitted_jiffies = jiffies;
 
/*
@@ -1418,14 +1421,17 @@ static void ring_retire_requests(struct intel_ring 
*ring)
 
 void i915_retire_requests(struct drm_i915_private *i915)
 {
-   struct intel_ring *ring, *next;
+   struct intel_ring *ring, *tmp;
 
lockdep_assert_held(>drm.struct_mutex);
 
if (!i915->gt.active_requests)
return;
 
-   list_for_each_entry_safe(ring, next, >gt.rings, link)
+   /* An outstanding request must be on a still active ring somewhere */
+   GEM_BUG_ON(list_empty(>gt.active_rings));
+
+   list_for_each_entry_safe(ring, tmp, >gt.active_rings, active_link)
ring_retire_requests(ring);
 }
 
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c 
b/drivers/gpu/drm/i915/intel_ringbuffer.c
index ae8958007df5..007449cfa22b 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1150,8 +1150,6 @@ intel_engine_create_ring(struct intel_engine_cs *engine, 
int size)
}
ring->vma = vma;
 
-   list_add(>link, >i915->gt.rings);
-
return ring;
 }
 
@@ -1163,8 +1161,6 @@ intel_ring_free(struct intel_ring *ring)
i915_vma_close(ring->vma);
__i915_gem_object_release_unless_active(obj);
 
-   list_del(>link);
-
kfree(ring);
 }
 
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h 
b/drivers/gpu/drm/i915/intel_ringbuffer.h
index deb80d01e0bd..fd679cec9ac6 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@ 

[Intel-gfx] [CI 2/4] drm/i915: Wrap engine->context_pin() and engine->context_unpin()

2018-04-30 Thread Chris Wilson
Make life easier in upcoming patches by moving the context_pin and
context_unpin vfuncs into inline helpers.

v2: Fixup mock_engine to mark the context as pinned on use.

Signed-off-by: Chris Wilson 
Reviewed-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/gvt/mmio_context.c  |  2 +-
 drivers/gpu/drm/i915/gvt/scheduler.c | 20 ++---
 drivers/gpu/drm/i915/i915_debugfs.c  | 20 +++--
 drivers/gpu/drm/i915/i915_gem.c  |  4 +--
 drivers/gpu/drm/i915/i915_gem_context.c  |  8 +++---
 drivers/gpu/drm/i915/i915_gem_context.h  | 30 +++-
 drivers/gpu/drm/i915/i915_gpu_error.c|  3 +-
 drivers/gpu/drm/i915/i915_perf.c |  9 +++---
 drivers/gpu/drm/i915/i915_request.c  |  6 ++--
 drivers/gpu/drm/i915/intel_engine_cs.c   | 13 -
 drivers/gpu/drm/i915/intel_guc_ads.c |  3 +-
 drivers/gpu/drm/i915/intel_guc_submission.c  |  5 ++--
 drivers/gpu/drm/i915/intel_lrc.c | 29 +++
 drivers/gpu/drm/i915/intel_lrc.h |  2 +-
 drivers/gpu/drm/i915/intel_ringbuffer.c  | 19 +++--
 drivers/gpu/drm/i915/selftests/mock_engine.c | 13 +++--
 16 files changed, 117 insertions(+), 69 deletions(-)

diff --git a/drivers/gpu/drm/i915/gvt/mmio_context.c 
b/drivers/gpu/drm/i915/gvt/mmio_context.c
index a5bac83d53a9..0f949554d118 100644
--- a/drivers/gpu/drm/i915/gvt/mmio_context.c
+++ b/drivers/gpu/drm/i915/gvt/mmio_context.c
@@ -448,7 +448,7 @@ static void switch_mocs(struct intel_vgpu *pre, struct 
intel_vgpu *next,
 
 bool is_inhibit_context(struct i915_gem_context *ctx, int ring_id)
 {
-   u32 *reg_state = ctx->engine[ring_id].lrc_reg_state;
+   u32 *reg_state = ctx->__engine[ring_id].lrc_reg_state;
u32 inhibit_mask =
_MASKED_BIT_ENABLE(CTX_CTRL_ENGINE_CTX_RESTORE_INHIBIT);
 
diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c 
b/drivers/gpu/drm/i915/gvt/scheduler.c
index 35f7cfd7a6b4..ffb45a9ee228 100644
--- a/drivers/gpu/drm/i915/gvt/scheduler.c
+++ b/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -58,7 +58,7 @@ static void update_shadow_pdps(struct intel_vgpu_workload 
*workload)
int ring_id = workload->ring_id;
struct i915_gem_context *shadow_ctx = vgpu->submission.shadow_ctx;
struct drm_i915_gem_object *ctx_obj =
-   shadow_ctx->engine[ring_id].state->obj;
+   shadow_ctx->__engine[ring_id].state->obj;
struct execlist_ring_context *shadow_ring_context;
struct page *page;
 
@@ -130,7 +130,7 @@ static int populate_shadow_context(struct 
intel_vgpu_workload *workload)
int ring_id = workload->ring_id;
struct i915_gem_context *shadow_ctx = vgpu->submission.shadow_ctx;
struct drm_i915_gem_object *ctx_obj =
-   shadow_ctx->engine[ring_id].state->obj;
+   shadow_ctx->__engine[ring_id].state->obj;
struct execlist_ring_context *shadow_ring_context;
struct page *page;
void *dst;
@@ -283,7 +283,7 @@ static int shadow_context_status_change(struct 
notifier_block *nb,
 static void shadow_context_descriptor_update(struct i915_gem_context *ctx,
struct intel_engine_cs *engine)
 {
-   struct intel_context *ce = >engine[engine->id];
+   struct intel_context *ce = to_intel_context(ctx, engine);
u64 desc = 0;
 
desc = ce->lrc_desc;
@@ -389,7 +389,7 @@ int intel_gvt_scan_and_shadow_workload(struct 
intel_vgpu_workload *workload)
 * shadow_ctx pages invalid. So gvt need to pin itself. After update
 * the guest context, gvt can unpin the shadow_ctx safely.
 */
-   ring = engine->context_pin(engine, shadow_ctx);
+   ring = intel_context_pin(shadow_ctx, engine);
if (IS_ERR(ring)) {
ret = PTR_ERR(ring);
gvt_vgpu_err("fail to pin shadow context\n");
@@ -403,7 +403,7 @@ int intel_gvt_scan_and_shadow_workload(struct 
intel_vgpu_workload *workload)
return 0;
 
 err_unpin:
-   engine->context_unpin(engine, shadow_ctx);
+   intel_context_unpin(shadow_ctx, engine);
 err_shadow:
release_shadow_wa_ctx(>wa_ctx);
 err_scan:
@@ -437,7 +437,7 @@ static int intel_gvt_generate_request(struct 
intel_vgpu_workload *workload)
return 0;
 
 err_unpin:
-   engine->context_unpin(engine, shadow_ctx);
+   intel_context_unpin(shadow_ctx, engine);
release_shadow_wa_ctx(>wa_ctx);
return ret;
 }
@@ -526,7 +526,7 @@ static int update_wa_ctx_2_shadow_ctx(struct 
intel_shadow_wa_ctx *wa_ctx)
struct intel_vgpu_submission *s = >vgpu->submission;
struct i915_gem_context *shadow_ctx = s->shadow_ctx;
struct drm_i915_gem_object *ctx_obj =
-   shadow_ctx->engine[ring_id].state->obj;
+   shadow_ctx->__engine[ring_id].state->obj;
struct execlist_ring_context *shadow_ring_context;
struct page *page;
 
@@ 

Re: [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/lrc: Scrub the GPU state of the guilty hanging request (rev4)

2018-04-30 Thread Chris Wilson
Quoting Patchwork (2018-04-30 13:38:55)
> == Series Details ==
> 
> Series: drm/i915/lrc: Scrub the GPU state of the guilty hanging request (rev4)
> URL   : https://patchwork.freedesktop.org/series/42425/
> State : success
> 
> == Summary ==
> 
> = CI Bug Log - changes from CI_DRM_4112_full -> Patchwork_8835_full =
> 
> == Summary - WARNING ==
> 
>   Minor unknown changes coming with Patchwork_8835_full need to be verified
>   manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_8835_full, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: 
> https://patchwork.freedesktop.org/api/1.0/series/42425/revisions/4/mbox/
> 
> == Possible new issues ==
> 
>   Here are the unknown changes that may have been introduced in 
> Patchwork_8835_full:
> 
>   === IGT changes ===
> 
>  Warnings 
> 
> igt@gem_exec_schedule@deep-bsd1:
>   shard-kbl:  PASS -> SKIP
> 
> igt@gem_mocs_settings@mocs-rc6-blt:
>   shard-kbl:  SKIP -> PASS

Sold! Thanks for the review, hopefully this will nip some CI bugs, but
at an error rate of less than 1% it will be some time before we can be
sure.
-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: Force 2*96 MHz cdclk on glk/cnl when audio power is enabled

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: Force 2*96 MHz cdclk on glk/cnl when audio power is enabled
URL   : https://patchwork.freedesktop.org/series/42459/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4112_full -> Patchwork_8838_full =

== Summary - FAILURE ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Possible regressions 

igt@drv_module_reload@basic-reload:
  shard-glk:  PASS -> INCOMPLETE


 Warnings 

igt@gem_exec_schedule@deep-blt:
  shard-kbl:  PASS -> SKIP

igt@gem_mocs_settings@mocs-rc6-blt:
  shard-kbl:  SKIP -> PASS


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_flip@absolute-wf_vblank-interruptible:
  shard-glk:  PASS -> FAIL (fdo#106087)

igt@kms_flip@dpms-vs-vblank-race-interruptible:
  shard-kbl:  PASS -> FAIL (fdo#103060)
  shard-glk:  PASS -> FAIL (fdo#103060)

igt@kms_flip@plain-flip-ts-check-interruptible:
  shard-glk:  PASS -> FAIL (fdo#100368)


 Possible fixes 

igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
  shard-hsw:  FAIL (fdo#104873) -> PASS

igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
  shard-hsw:  FAIL (fdo#103928) -> PASS

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

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

igt@kms_flip@plain-flip-fb-recreate-interruptible:
  shard-glk:  FAIL (fdo#100368) -> PASS +2

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


  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103928 https://bugs.freedesktop.org/show_bug.cgi?id=103928
  fdo#104873 https://bugs.freedesktop.org/show_bug.cgi?id=104873
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105707 https://bugs.freedesktop.org/show_bug.cgi?id=105707
  fdo#106087 https://bugs.freedesktop.org/show_bug.cgi?id=106087
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (9 -> 8) ==

  Missing(1): shard-glkb 


== Build changes ==

* Linux: CI_DRM_4112 -> Patchwork_8838

  CI_DRM_4112: 423a00794c9d9610a71d8a02cd3bc17c6fe5fae1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8838: b8c009b51c953f557d7fab5154dbc743dcbece42 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

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


Re: [Intel-gfx] [PATCH v2 RESEND] drm/i915: add support for specifying DMC firmware override by module param

2018-04-30 Thread David Weinehall
On Mon, Apr 30, 2018 at 01:47:15PM +0300, Jani Nikula wrote:
> On Tue, 24 Apr 2018, Jani Nikula  wrote:
> > Use i915.dmc_firmware_path to override default firmware for the platform
> > and bypassing version checks.
> >
> > v2: add missing param struct member declaration (David)
> >
> > Tested-by: David Weinehall 
> > Reviewed-by: David Weinehall 
> > Cc: Anusha Srivatsa 
> > Cc: David Weinehall 
> > Signed-off-by: Jani Nikula 
> 
> So *I* don't need this patch. Please someone tell me this is useful to
> you, and I'll merge.

It's useful for us (PnP team), and I believe Anusha has expressed
interest too, correct?


Kind regards, David

> 
> Thanks,
> Jani.
> 
> 
> > ---
> >  drivers/gpu/drm/i915/i915_params.c | 3 +++
> >  drivers/gpu/drm/i915/i915_params.h | 1 +
> >  drivers/gpu/drm/i915/intel_csr.c   | 9 +++--
> >  3 files changed, 11 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_params.c 
> > b/drivers/gpu/drm/i915/i915_params.c
> > index 08108ce5be21..66ea3552c63e 100644
> > --- a/drivers/gpu/drm/i915/i915_params.c
> > +++ b/drivers/gpu/drm/i915/i915_params.c
> > @@ -164,6 +164,9 @@ i915_param_named_unsafe(guc_firmware_path, charp, 0400,
> >  i915_param_named_unsafe(huc_firmware_path, charp, 0400,
> > "HuC firmware path to use instead of the default one");
> >  
> > +i915_param_named_unsafe(dmc_firmware_path, charp, 0400,
> > +   "DMC firmware path to use instead of the default one");
> > +
> >  i915_param_named_unsafe(enable_dp_mst, bool, 0600,
> > "Enable multi-stream transport (MST) for new DisplayPort sinks. 
> > (default: true)");
> >  
> > diff --git a/drivers/gpu/drm/i915/i915_params.h 
> > b/drivers/gpu/drm/i915/i915_params.h
> > index c96360398072..6684025b7af8 100644
> > --- a/drivers/gpu/drm/i915/i915_params.h
> > +++ b/drivers/gpu/drm/i915/i915_params.h
> > @@ -51,6 +51,7 @@ struct drm_printer;
> > param(int, guc_log_level, -1) \
> > param(char *, guc_firmware_path, NULL) \
> > param(char *, huc_firmware_path, NULL) \
> > +   param(char *, dmc_firmware_path, NULL) \
> > param(int, mmio_debug, 0) \
> > param(int, edp_vswing, 0) \
> > param(int, reset, 2) \
> > diff --git a/drivers/gpu/drm/i915/intel_csr.c 
> > b/drivers/gpu/drm/i915/intel_csr.c
> > index 41e6c75a7f3c..d81673250d3b 100644
> > --- a/drivers/gpu/drm/i915/intel_csr.c
> > +++ b/drivers/gpu/drm/i915/intel_csr.c
> > @@ -297,7 +297,10 @@ static uint32_t *parse_csr_fw(struct drm_i915_private 
> > *dev_priv,
> >  
> > csr->version = css_header->version;
> >  
> > -   if (IS_CANNONLAKE(dev_priv)) {
> > +   if (csr->fw_path == i915_modparams.dmc_firmware_path) {
> > +   /* Bypass version check for firmware override. */
> > +   required_version = csr->version;
> > +   } else if (IS_CANNONLAKE(dev_priv)) {
> > required_version = CNL_CSR_VERSION_REQUIRED;
> > } else if (IS_GEMINILAKE(dev_priv)) {
> > required_version = GLK_CSR_VERSION_REQUIRED;
> > @@ -452,7 +455,9 @@ void intel_csr_ucode_init(struct drm_i915_private 
> > *dev_priv)
> > if (!HAS_CSR(dev_priv))
> > return;
> >  
> > -   if (IS_CANNONLAKE(dev_priv))
> > +   if (i915_modparams.dmc_firmware_path)
> > +   csr->fw_path = i915_modparams.dmc_firmware_path;
> > +   else if (IS_CANNONLAKE(dev_priv))
> > csr->fw_path = I915_CSR_CNL;
> > else if (IS_GEMINILAKE(dev_priv))
> > csr->fw_path = I915_CSR_GLK;
> 
> -- 
> Jani Nikula, Intel Open Source Technology Center
___
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: configure the transcoder clocks before touching pipeconf on HSW+

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: configure the transcoder clocks before touching pipeconf on 
HSW+
URL   : https://patchwork.freedesktop.org/series/42436/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4112 -> Patchwork_8843 =

== Summary - WARNING ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Warnings 

igt@gem_exec_gttfill@basic:
  fi-pnv-d510:PASS -> SKIP


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-ivb-3520m:   PASS -> DMESG-WARN (fdo#106084)


 Possible fixes 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-ivb-3520m:   DMESG-WARN (fdo#106084) -> PASS


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


== Participating hosts (39 -> 22) ==

  Missing(17): fi-hsw-4770r fi-kbl-7567u fi-ilk-m540 fi-bdw-5557u 
fi-skl-gvtdvm fi-skl-6770hq fi-bdw-gvtdvm fi-skl-guc fi-cnl-y3 fi-skl-6260u 
fi-cfl-8700k fi-kbl-7500u fi-ctg-p8600 fi-hsw-4770 fi-cfl-s3 fi-skl-6700hq 
fi-skl-6700k2 


== Build changes ==

* Linux: CI_DRM_4112 -> Patchwork_8843

  CI_DRM_4112: 423a00794c9d9610a71d8a02cd3bc17c6fe5fae1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8843: d2ffa705b37a7cd5dd34563dc5f0cf81198ce33d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

d2ffa705b37a drm/i915: configure the transcoder clocks before touching pipeconf 
on HSW+

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8843/issues.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/lrc: Scrub the GPU state of the guilty hanging request (rev4)

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915/lrc: Scrub the GPU state of the guilty hanging request (rev4)
URL   : https://patchwork.freedesktop.org/series/42425/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4112_full -> Patchwork_8835_full =

== Summary - WARNING ==

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

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/42425/revisions/4/mbox/

== Possible new issues ==

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

  === IGT changes ===

 Warnings 

igt@gem_exec_schedule@deep-bsd1:
  shard-kbl:  PASS -> SKIP

igt@gem_mocs_settings@mocs-rc6-blt:
  shard-kbl:  SKIP -> PASS


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_flip@2x-plain-flip-ts-check:
  shard-hsw:  PASS -> FAIL (fdo#100368) +1

igt@kms_flip@absolute-wf_vblank-interruptible:
  shard-glk:  PASS -> FAIL (fdo#106087)

igt@kms_flip@blocking-absolute-wf_vblank-interruptible:
  shard-glk:  PASS -> FAIL (fdo#106134)

igt@kms_flip@dpms-vs-vblank-race-interruptible:
  shard-apl:  PASS -> FAIL (fdo#103060)

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

igt@kms_flip@plain-flip-ts-check-interruptible:
  shard-glk:  PASS -> FAIL (fdo#100368)

igt@kms_flip@wf_vblank-ts-check-interruptible:
  shard-apl:  PASS -> FAIL (fdo#103933, fdo#105312)


 Possible fixes 

igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
  shard-hsw:  FAIL (fdo#103928) -> PASS

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

igt@kms_flip@plain-flip-fb-recreate-interruptible:
  shard-glk:  FAIL (fdo#100368) -> PASS


  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103928 https://bugs.freedesktop.org/show_bug.cgi?id=103928
  fdo#103933 https://bugs.freedesktop.org/show_bug.cgi?id=103933
  fdo#105312 https://bugs.freedesktop.org/show_bug.cgi?id=105312
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105707 https://bugs.freedesktop.org/show_bug.cgi?id=105707
  fdo#106087 https://bugs.freedesktop.org/show_bug.cgi?id=106087
  fdo#106134 https://bugs.freedesktop.org/show_bug.cgi?id=106134


== Participating hosts (9 -> 8) ==

  Missing(1): shard-glkb 


== Build changes ==

* Linux: CI_DRM_4112 -> Patchwork_8835

  CI_DRM_4112: 423a00794c9d9610a71d8a02cd3bc17c6fe5fae1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8835: 69c99005f772c00407dcb31080b92700184275ca @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8835/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: configure the transcoder clocks before touching pipeconf on HSW+

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: configure the transcoder clocks before touching pipeconf on 
HSW+
URL   : https://patchwork.freedesktop.org/series/42436/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4112 -> Patchwork_8842 =

== Summary - SUCCESS ==

  No regressions found.

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

== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
  fi-ivb-3520m:   PASS -> DMESG-WARN (fdo#106084)
  fi-cnl-psr: PASS -> DMESG-WARN (fdo#104951)


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


== Participating hosts (39 -> 22) ==

  Missing(17): fi-hsw-4770r fi-kbl-7567u fi-ilk-m540 fi-bdw-5557u 
fi-skl-gvtdvm fi-skl-6770hq fi-bdw-gvtdvm fi-skl-guc fi-cnl-y3 fi-skl-6260u 
fi-cfl-8700k fi-kbl-7500u fi-ctg-p8600 fi-hsw-4770 fi-cfl-s3 fi-skl-6700hq 
fi-skl-6700k2 


== Build changes ==

* Linux: CI_DRM_4112 -> Patchwork_8842

  CI_DRM_4112: 423a00794c9d9610a71d8a02cd3bc17c6fe5fae1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8842: 96dd83b16e1d41740c95f80905d941799befd6c8 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

96dd83b16e1d drm/i915: configure the transcoder clocks before touching pipeconf 
on HSW+

== Logs ==

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


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Print error state times relative to capture (rev3)

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: Print error state times relative to capture (rev3)
URL   : https://patchwork.freedesktop.org/series/41749/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4112 -> Patchwork_8841 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/41749/revisions/3/mbox/

== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_flip@basic-flip-vs-wf_vblank:
  fi-blb-e6850:   PASS -> FAIL (fdo#100368)


 Possible fixes 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-ivb-3520m:   DMESG-WARN (fdo#106084) -> PASS


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


== Participating hosts (39 -> 35) ==

  Missing(4): fi-hsw-4770r fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

* Linux: CI_DRM_4112 -> Patchwork_8841

  CI_DRM_4112: 423a00794c9d9610a71d8a02cd3bc17c6fe5fae1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8841: f867250d877d006589e3ad8349e31261585afc43 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

f867250d877d drm/i915: Print error state times relative to capture

== Logs ==

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


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: configure the transcoder clocks before touching pipeconf on HSW+

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: configure the transcoder clocks before touching pipeconf on 
HSW+
URL   : https://patchwork.freedesktop.org/series/42436/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4112 -> Patchwork_8840 =

== Summary - SUCCESS ==

  No regressions found.

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

== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-ivb-3520m:   PASS -> DMESG-WARN (fdo#106084)


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


== Participating hosts (39 -> 22) ==

  Missing(17): fi-hsw-4770r fi-kbl-7567u fi-ilk-m540 fi-bdw-5557u 
fi-skl-gvtdvm fi-skl-6770hq fi-bdw-gvtdvm fi-skl-guc fi-cnl-y3 fi-skl-6260u 
fi-cfl-8700k fi-kbl-7500u fi-ctg-p8600 fi-hsw-4770 fi-cfl-s3 fi-skl-6700hq 
fi-skl-6700k2 


== Build changes ==

* Linux: CI_DRM_4112 -> Patchwork_8840

  CI_DRM_4112: 423a00794c9d9610a71d8a02cd3bc17c6fe5fae1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8840: 87aad90c198c1fd70a6582f5fd839a276da0ddff @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

87aad90c198c drm/i915: configure the transcoder clocks before touching pipeconf 
on HSW+

== Logs ==

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


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Wait for PSR exit before checking for vblank evasion for an atomic update

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: Wait for PSR exit before checking for vblank evasion for an 
atomic update
URL   : https://patchwork.freedesktop.org/series/42461/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4112 -> Patchwork_8839 =

== Summary - WARNING ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Warnings 

igt@gem_exec_gttfill@basic:
  fi-pnv-d510:PASS -> SKIP


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@gem_exec_suspend@basic-s3:
  fi-ivb-3520m:   PASS -> DMESG-WARN (fdo#106084)

igt@kms_frontbuffer_tracking@basic:
  fi-hsw-4200u:   PASS -> DMESG-FAIL (fdo#106103)

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-bxt-dsi: NOTRUN -> INCOMPLETE (fdo#103927)
  fi-cnl-psr: PASS -> DMESG-WARN (fdo#104951)


 Possible fixes 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-ivb-3520m:   DMESG-WARN (fdo#106084) -> PASS


  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#104951 https://bugs.freedesktop.org/show_bug.cgi?id=104951
  fdo#106084 https://bugs.freedesktop.org/show_bug.cgi?id=106084
  fdo#106103 https://bugs.freedesktop.org/show_bug.cgi?id=106103


== Participating hosts (39 -> 36) ==

  Missing(3): fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

* Linux: CI_DRM_4112 -> Patchwork_8839

  CI_DRM_4112: 423a00794c9d9610a71d8a02cd3bc17c6fe5fae1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8839: 136000f52a51f95837247de854eeac040380c507 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

136000f52a51 drm/i915: Wait for PSR exit before checking for vblank evasion for 
an atomic update

== Logs ==

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Wait for PSR exit before checking for vblank evasion for an atomic update

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: Wait for PSR exit before checking for vblank evasion for an 
atomic update
URL   : https://patchwork.freedesktop.org/series/42461/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
136000f52a51 drm/i915: Wait for PSR exit before checking for vblank evasion for 
an atomic update
-:46: ERROR:SPACING: space required before the open parenthesis '('
#46: FILE: drivers/gpu/drm/i915/intel_sprite.c:116:
+   if(new_crtc_state->has_psr && dev_priv->psr.active)

-:47: WARNING:LONG_LINE: line over 100 characters
#47: FILE: drivers/gpu/drm/i915/intel_sprite.c:117:
+   intel_wait_for_register(dev_priv, EDP_PSR_STATUS, 
EDP_PSR_STATUS_STATE_MASK, EDP_PSR_STATUS_STATE_IDLE, 5);

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

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

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


Re: [Intel-gfx] [PATCH v2 RESEND] drm/i915: add support for specifying DMC firmware override by module param

2018-04-30 Thread Jani Nikula
On Tue, 24 Apr 2018, Jani Nikula  wrote:
> Use i915.dmc_firmware_path to override default firmware for the platform
> and bypassing version checks.
>
> v2: add missing param struct member declaration (David)
>
> Tested-by: David Weinehall 
> Reviewed-by: David Weinehall 
> Cc: Anusha Srivatsa 
> Cc: David Weinehall 
> Signed-off-by: Jani Nikula 

So *I* don't need this patch. Please someone tell me this is useful to
you, and I'll merge.

Thanks,
Jani.


> ---
>  drivers/gpu/drm/i915/i915_params.c | 3 +++
>  drivers/gpu/drm/i915/i915_params.h | 1 +
>  drivers/gpu/drm/i915/intel_csr.c   | 9 +++--
>  3 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_params.c 
> b/drivers/gpu/drm/i915/i915_params.c
> index 08108ce5be21..66ea3552c63e 100644
> --- a/drivers/gpu/drm/i915/i915_params.c
> +++ b/drivers/gpu/drm/i915/i915_params.c
> @@ -164,6 +164,9 @@ i915_param_named_unsafe(guc_firmware_path, charp, 0400,
>  i915_param_named_unsafe(huc_firmware_path, charp, 0400,
>   "HuC firmware path to use instead of the default one");
>  
> +i915_param_named_unsafe(dmc_firmware_path, charp, 0400,
> + "DMC firmware path to use instead of the default one");
> +
>  i915_param_named_unsafe(enable_dp_mst, bool, 0600,
>   "Enable multi-stream transport (MST) for new DisplayPort sinks. 
> (default: true)");
>  
> diff --git a/drivers/gpu/drm/i915/i915_params.h 
> b/drivers/gpu/drm/i915/i915_params.h
> index c96360398072..6684025b7af8 100644
> --- a/drivers/gpu/drm/i915/i915_params.h
> +++ b/drivers/gpu/drm/i915/i915_params.h
> @@ -51,6 +51,7 @@ struct drm_printer;
>   param(int, guc_log_level, -1) \
>   param(char *, guc_firmware_path, NULL) \
>   param(char *, huc_firmware_path, NULL) \
> + param(char *, dmc_firmware_path, NULL) \
>   param(int, mmio_debug, 0) \
>   param(int, edp_vswing, 0) \
>   param(int, reset, 2) \
> diff --git a/drivers/gpu/drm/i915/intel_csr.c 
> b/drivers/gpu/drm/i915/intel_csr.c
> index 41e6c75a7f3c..d81673250d3b 100644
> --- a/drivers/gpu/drm/i915/intel_csr.c
> +++ b/drivers/gpu/drm/i915/intel_csr.c
> @@ -297,7 +297,10 @@ static uint32_t *parse_csr_fw(struct drm_i915_private 
> *dev_priv,
>  
>   csr->version = css_header->version;
>  
> - if (IS_CANNONLAKE(dev_priv)) {
> + if (csr->fw_path == i915_modparams.dmc_firmware_path) {
> + /* Bypass version check for firmware override. */
> + required_version = csr->version;
> + } else if (IS_CANNONLAKE(dev_priv)) {
>   required_version = CNL_CSR_VERSION_REQUIRED;
>   } else if (IS_GEMINILAKE(dev_priv)) {
>   required_version = GLK_CSR_VERSION_REQUIRED;
> @@ -452,7 +455,9 @@ void intel_csr_ucode_init(struct drm_i915_private 
> *dev_priv)
>   if (!HAS_CSR(dev_priv))
>   return;
>  
> - if (IS_CANNONLAKE(dev_priv))
> + if (i915_modparams.dmc_firmware_path)
> + csr->fw_path = i915_modparams.dmc_firmware_path;
> + else if (IS_CANNONLAKE(dev_priv))
>   csr->fw_path = I915_CSR_CNL;
>   else if (IS_GEMINILAKE(dev_priv))
>   csr->fw_path = I915_CSR_GLK;

-- 
Jani Nikula, Intel Open Source Technology Center
___
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: Force 2*96 MHz cdclk on glk/cnl when audio power is enabled

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: Force 2*96 MHz cdclk on glk/cnl when audio power is enabled
URL   : https://patchwork.freedesktop.org/series/42459/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4112 -> Patchwork_8838 =

== Summary - WARNING ==

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

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

== Possible new issues ==

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

  === IGT changes ===

 Warnings 

igt@gem_exec_gttfill@basic:
  fi-pnv-d510:PASS -> SKIP


== Known issues ==

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

  === IGT changes ===

 Issues hit 

igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence:
  fi-skl-6770hq:  PASS -> FAIL (fdo#103481)

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
  fi-ivb-3520m:   PASS -> DMESG-WARN (fdo#106084) +1


 Possible fixes 

igt@gem_mmap_gtt@basic-small-bo-tiledx:
  fi-gdg-551: FAIL (fdo#102575) -> PASS

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-ivb-3520m:   DMESG-WARN (fdo#106084) -> PASS


  fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575
  fdo#103481 https://bugs.freedesktop.org/show_bug.cgi?id=103481
  fdo#106084 https://bugs.freedesktop.org/show_bug.cgi?id=106084


== Participating hosts (39 -> 36) ==

  Missing(3): fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

* Linux: CI_DRM_4112 -> Patchwork_8838

  CI_DRM_4112: 423a00794c9d9610a71d8a02cd3bc17c6fe5fae1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4452: 29ae12bd764e3b1876356e7628a32192b4ec9066 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8838: b8c009b51c953f557d7fab5154dbc743dcbece42 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4452: 04a2952c5b3782eb03cb136bb16d89daaf243f14 @ 
git://anongit.freedesktop.org/piglit


== Linux commits ==

b8c009b51c95 drm/i915: Force 2*96 MHz cdclk on glk/cnl when audio power is 
enabled

== Logs ==

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


Re: [Intel-gfx] UHD 620: How to debug a screen resolution that does not work reliably

2018-04-30 Thread Jani Nikula
On Mon, 23 Apr 2018, Ricardo Ribalda Delgado  wrote:
> Hi
>
> I have a secondary monitor connected via USB-C adapter to  HDMI. It
> can manage resolutions up to 2560x1440.
>
> Most of the time, when the system is booted the resolution is detected
> ok, but If I suspend the machine, or replug the screen, or alternate
> to the text console, the resolution is "downgraded" to Full HD.
>
> I have added the paramter drm.debug=0x06  to my kernel option and I
> have managed to catch this error when the resolution is not detected
> properly:
>
> [4.941022] [drm:drm_mode_debug_printmodeline [drm]] Modeline
> 77:"2560x1440" 60 241500 2560 2608 2640 2720 1440 1443 1448 1481 0x48
> 0x5
> [4.941046] [drm:drm_mode_prune_invalid [drm]] Not using 2560x1440
> mode: CLOCK_HIGH
>
>
> On the other hand, when it works fine:
>
> [   95.361838] [drm:drm_mode_debug_printmodeline [drm]] Modeline
> 85:"2560x1440" 60 241500 2560 2608 2640 2720 1440 1443 1448 1481 0x48
> 0x5
> [   95.928536] [drm:intel_dump_pipe_config [i915]] crtc timings:
> 241500 2560 2608 2640 2720 1440 1443 1448 1481, type: 0x48 flags: 0x5
> [   95.928546] [drm:intel_dump_pipe_config [i915]] port clock: 54,
> pipe src size: 2560x1440, pixel rate 241500
>
>
> The adapter is brand new (Xiaomi) and the cable should be of good
> quality (ethernet capable).
>
>
> Any ideas about how to debug this? The EDID seems fine, it seems
> related to hock clock_high is calculated.

CLOCK_HIGH is just a consequence of the link being downgraded, there's
not enough bandwidth in the link for the mode.

You have a bug open at freedesktop.org [1], please let's keep the
discussion in one place.


BR,
Jani.


[1] https://bugs.freedesktop.org/show_bug.cgi?id=106223


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


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Force 2*96 MHz cdclk on glk/cnl when audio power is enabled

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: Force 2*96 MHz cdclk on glk/cnl when audio power is enabled
URL   : https://patchwork.freedesktop.org/series/42459/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Commit: drm/i915: Force 2*96 MHz cdclk on glk/cnl when audio power is enabled
-O:drivers/gpu/drm/i915/intel_cdclk.c:2159:29: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/intel_cdclk.c:2200:29: warning: expression using 
sizeof(void)
-O:drivers/gpu/drm/i915/intel_cdclk.c:2200:29: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/intel_cdclk.c:2182:29: warning: expression using 
sizeof(void)
+drivers/gpu/drm/i915/intel_cdclk.c:2182:29: warning: expression using 
sizeof(void)
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3660:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3662:16: warning: expression 
using sizeof(void)

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


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Force 2*96 MHz cdclk on glk/cnl when audio power is enabled

2018-04-30 Thread Patchwork
== Series Details ==

Series: drm/i915: Force 2*96 MHz cdclk on glk/cnl when audio power is enabled
URL   : https://patchwork.freedesktop.org/series/42459/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
b8c009b51c95 drm/i915: Force 2*96 MHz cdclk on glk/cnl when audio power is 
enabled
-:38: CHECK:LINE_SPACING: Please don't use multiple blank lines
#38: FILE: drivers/gpu/drm/i915/intel_audio.c:597:
 
+

-:47: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#47: FILE: drivers/gpu/drm/i915/intel_audio.c:718:
+static void glk_force_audio_cdclk(struct drm_i915_private *dev_priv,
+   bool enable)

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

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


  1   2   >