[Intel-gfx] Warning for driver i915 for 4.17.0-rcX
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)
== 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
== 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.
== 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.
== 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.
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)
== 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
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)
== 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)
== 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
From: Clint TaylorIn 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
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
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
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
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
== 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
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
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 ViviSigned-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
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)
== 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)
== 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)
== 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
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)
== 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
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
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
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
== 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
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
== 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
== 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
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)
== 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
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 WilsonCc: 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
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 WilsonCc: 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)
== 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
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
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.
== 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
On Mon, Apr 30, 2018 at 8:26 PM, Christian Königwrote: > 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
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
== 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
On Thu, Apr 19, 2018 at 3:34 AM Vidya Srinivaswrote: > 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
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 VetterCc: 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
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
>-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+
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
>-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
Daniel Vetterwrites: > 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
Daniel Vetterwrites: > 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
Daniel Vetterwrites: > 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
Daniel Vetterwrites: > 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
Daniel Vetterwrites: > 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
Daniel Vetterwrites: > + /** > + * @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
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
On 04/26/2018 08:01 AM, Mika Kuoppala wrote: Oscar Mateowrites: 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
On 04/26/2018 08:27 AM, Mika Kuoppala wrote: Oscar Mateowrites: 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+
== 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
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
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 WilsonCc: 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
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+
== 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
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
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)
== 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
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
== 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.
== 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+
== 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.
== 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.
== 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
== 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
== 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
== 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.
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.
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
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.
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
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.
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
== 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
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 WilsonCc: 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
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 WilsonCc: 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
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 UrsulinSigned-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()
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 WilsonReviewed-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)
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
== 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
On Mon, Apr 30, 2018 at 01:47:15PM +0300, Jani Nikula wrote: > On Tue, 24 Apr 2018, Jani Nikulawrote: > > 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+
== 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)
== 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+
== 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)
== 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+
== 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
== 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
== 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
On Tue, 24 Apr 2018, Jani Nikulawrote: > 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
== 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
On Mon, 23 Apr 2018, Ricardo Ribalda Delgadowrote: > 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
== 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
== 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