[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with locking/lockdep: restore cross-release checks (rev3)
== Series Details == Series: series starting with locking/lockdep: restore cross-release checks (rev3) URL : https://patchwork.freedesktop.org/series/51923/ State : failure == Summary == = CI Bug Log - changes from CI_DRM_5095 -> Patchwork_10738 = == Summary - FAILURE == Serious unknown changes coming with Patchwork_10738 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10738, 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/51923/revisions/3/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10738: === IGT changes === Possible regressions igt@gem_tiled_fence_blits@basic: fi-skl-gvtdvm: PASS -> DMESG-WARN fi-bdw-gvtdvm: PASS -> DMESG-WARN == Known issues == Here are the changes found in Patchwork_10738 that come from known issues: === IGT changes === Issues hit igt@amdgpu/amd_basic@cs-compute: fi-kbl-8809g: NOTRUN -> FAIL (fdo#108094) igt@amdgpu/amd_prime@amd-to-i915: fi-kbl-8809g: NOTRUN -> FAIL (fdo#107341) igt@drv_selftest@live_contexts: fi-icl-u: NOTRUN -> DMESG-FAIL (fdo#108569) igt@gem_exec_suspend@basic-s3: fi-kbl-soraka: NOTRUN -> INCOMPLETE (fdo#107556, fdo#107859, fdo#107774) fi-blb-e6850: PASS -> INCOMPLETE (fdo#107718) igt@kms_pipe_crc_basic@hang-read-crc-pipe-a: fi-snb-2520m: PASS -> DMESG-FAIL (fdo#103713) igt@kms_pipe_crc_basic@hang-read-crc-pipe-b: fi-snb-2520m: PASS -> INCOMPLETE (fdo#103713) Possible fixes igt@drv_selftest@live_contexts: fi-bsw-kefka: DMESG-FAIL (fdo#108656) -> PASS igt@gem_ctx_switch@basic-default: fi-icl-u: INCOMPLETE (fdo#108535, fdo#108315) -> PASS igt@kms_frontbuffer_tracking@basic: fi-byt-clapper: FAIL (fdo#103167) -> PASS igt@kms_pipe_crc_basic@read-crc-pipe-c: fi-skl-guc: FAIL (fdo#103191, fdo#107362) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: fi-byt-clapper: FAIL (fdo#103191, fdo#107362) -> PASS +1 fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713 fdo#107341 https://bugs.freedesktop.org/show_bug.cgi?id=107341 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107556 https://bugs.freedesktop.org/show_bug.cgi?id=107556 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#107774 https://bugs.freedesktop.org/show_bug.cgi?id=107774 fdo#107859 https://bugs.freedesktop.org/show_bug.cgi?id=107859 fdo#108094 https://bugs.freedesktop.org/show_bug.cgi?id=108094 fdo#108315 https://bugs.freedesktop.org/show_bug.cgi?id=108315 fdo#108535 https://bugs.freedesktop.org/show_bug.cgi?id=108535 fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569 fdo#108656 https://bugs.freedesktop.org/show_bug.cgi?id=108656 == Participating hosts (52 -> 48) == Additional (1): fi-kbl-soraka Missing(5): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 == Build changes == * Linux: CI_DRM_5095 -> Patchwork_10738 CI_DRM_5095: 69a3d10e9a8e4733b81ab69cbeac1f0edd3b9e9d @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4710: 431f0cfa1475dcaa475d6c30610317b3467bd4e4 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10738: 0913556fbd7aeb8ed24a352e2fb6307192b45773 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 0913556fbd7a HAX FOR CI: Enable cross-release e29afdbed41f drm/i915: annotate intel_atomic_commit_fence_wait f2202d11beed drm/i915: Annotate dma_fence waits 0ac294b32321 reservation: Annotate dma_fence waits 8900507a5a3c dma-fence: cross-release annotations c83af5577f98 mm, notifier: Add a lockdep map for invalidate_range_start a156b1095372 mm, notifier: Catch sleeping/blocking for !blockable f346774550fb mm: Check if mmu notifier callbacks are allowed to fail 1e6a69b82bb7 kernel/lockdep: Make cross-release a config option f22f9b50acb9 lockdep: Remove GFP_NOLOCKDEP annotation afcdf6b27fd4 kthread: finer-grained lockdep/cross-release completion 8236b690a94e locking/lockdep: restore cross-release checks == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10738/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v2 0/7] Make GEN macros more similar
On 06/11/2018 21:51, Lucas De Marchi wrote: This is the second version of the series trying to make GEN checks more similar. These or roughly the changes from v1: - We don't have a single macro receiving 2 or 3 parameters. Now there is GT_GEN_RANGE(), and GT_GEN(). The firs is the conversion from IS_GEN() while the second is the conversion from IS_GEN() - Bring GEN_FOREVER back to be used with above macros - Patch converting <, <=, ==, >, >= checks using INTEL_GEN() to use the macros above was added - INTEL_GEN() is removed to avoid it being used when we should prefer the new macros The idea of the names is to pave the way for checks of the display version, which would be named DISPLAY_GEN(), DISPLAY_GEN_RANGE(). In the commit messages we have the scripts to regenerate the patch to make it easier to apply after the discussions and also to be able to convert inflight patches. Sorry in advance for the noise this causes in the codebase, but hopefully it is for the greater good. Lucas De Marchi (6): Revert "drm/i915: Kill GEN_FOREVER" drm/i915: replace IS_GEN with GT_GEN(..., N) drm/i915: rename IS_GEN9_* to GT_GEN9_* drm/i915: replace gen checks using operators by GT_GEN/GT_GEN_RANGE I have reservations about this patch, where I think forcing only one flavour maybe is not the best thing. Because for plain if-ladder cases it feels more readable to stick with the current scheme of arithmetic comparisons. And it is more efficient in code as well. Range checks are on the other hand useful either when combined in the same conditional as some other bitmask based test, or when both ends of the comparison edge are bound. drm/i915: merge gen checks to use range drm/i915: remove INTEL_GEN macro I have reservations about this as as well, especially considering the previous paragraph. But even on it's own I am not sure we want to go back to more verbose. Perhaps in the new scheme of things it should be renamed to INTEL_GT_GEN? I know it doesn't fit nicely with the naming scheme of GT/DISPLAY_GEN.. so maybe: GT_GEN -> IS_GT_GEN GT_GEN_RANGE -> IS_GT_GEN_RANGE INTEL_GEN -> GT_GEN (but churn!?) This leaves GT and DISPLAY namespaces completely parallel in syntax and semantics. Regards, Tvrtko Rodrigo Vivi (1): drm/i915: Rename IS_GEN to GT_RANGE drivers/gpu/drm/i915/gvt/gtt.c| 4 +- drivers/gpu/drm/i915/gvt/handlers.c | 2 +- drivers/gpu/drm/i915/gvt/vgpu.c | 4 +- drivers/gpu/drm/i915/i915_cmd_parser.c| 2 +- drivers/gpu/drm/i915/i915_debugfs.c | 145 + drivers/gpu/drm/i915/i915_drv.c | 50 +-- drivers/gpu/drm/i915/i915_drv.h | 67 ++-- drivers/gpu/drm/i915/i915_gem.c | 30 +- drivers/gpu/drm/i915/i915_gem_context.c | 4 +- drivers/gpu/drm/i915/i915_gem_execbuffer.c| 10 +- drivers/gpu/drm/i915/i915_gem_fence_reg.c | 16 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 36 +- drivers/gpu/drm/i915/i915_gem_render_state.c | 2 +- drivers/gpu/drm/i915/i915_gem_stolen.c| 15 +- drivers/gpu/drm/i915/i915_gem_tiling.c| 12 +- drivers/gpu/drm/i915/i915_gpu_error.c | 62 ++-- drivers/gpu/drm/i915/i915_irq.c | 120 +++ drivers/gpu/drm/i915/i915_perf.c | 14 +- drivers/gpu/drm/i915/i915_pmu.c | 6 +- drivers/gpu/drm/i915/i915_reg.h | 8 +- drivers/gpu/drm/i915/i915_suspend.c | 24 +- drivers/gpu/drm/i915/i915_sysfs.c | 2 +- drivers/gpu/drm/i915/intel_atomic.c | 4 +- drivers/gpu/drm/i915/intel_audio.c| 4 +- drivers/gpu/drm/i915/intel_bios.c | 12 +- drivers/gpu/drm/i915/intel_cdclk.c| 28 +- drivers/gpu/drm/i915/intel_color.c| 6 +- drivers/gpu/drm/i915/intel_crt.c | 12 +- drivers/gpu/drm/i915/intel_csr.c | 2 +- drivers/gpu/drm/i915/intel_ddi.c | 58 ++-- drivers/gpu/drm/i915/intel_device_info.c | 46 +-- drivers/gpu/drm/i915/intel_display.c | 308 +- drivers/gpu/drm/i915/intel_dp.c | 82 ++--- drivers/gpu/drm/i915/intel_dp_mst.c | 2 +- drivers/gpu/drm/i915/intel_dpll_mgr.c | 10 +- drivers/gpu/drm/i915/intel_drv.h | 2 +- drivers/gpu/drm/i915/intel_engine_cs.c| 44 +-- drivers/gpu/drm/i915/intel_fbc.c | 52 +-- drivers/gpu/drm/i915/intel_fifo_underrun.c| 8 +- drivers/gpu/drm/i915/intel_guc_fw.c | 4 +- drivers/gpu/drm/i915/intel_hangcheck.c| 6 +- drivers/gpu/drm/i915/intel_hdcp.c | 2 +- drivers/gpu/drm/i915/intel_hdmi.c | 18 +- drivers/gpu/drm/i915/intel_i2c.c | 14 +- drivers/gpu/drm/i915/intel_lrc.c | 32 +- drivers/gpu/drm/i915/intel_lvds.c |
[Intel-gfx] [PATCH][drm-next] drm/i915/csr: fix spelling mistake "firmare" -> "firmware"
From: Colin Ian King Trivial fix to spelling mistake in DRM_INFO message Signed-off-by: Colin Ian King --- drivers/gpu/drm/i915/intel_csr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c index fc7bd21fa586..c1ca6596ff5c 100644 --- a/drivers/gpu/drm/i915/intel_csr.c +++ b/drivers/gpu/drm/i915/intel_csr.c @@ -499,7 +499,7 @@ void intel_csr_ucode_init(struct drm_i915_private *dev_priv) if (i915_modparams.dmc_firmware_path) { if (strlen(i915_modparams.dmc_firmware_path) == 0) { csr->fw_path = NULL; - DRM_INFO("Disabling CSR firmare and runtime PM\n"); + DRM_INFO("Disabling CSR firmware and runtime PM\n"); return; } -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v2 0/4] Dynamic EU configuration of Slice/Subslice/EU.
On 06/11/2018 04:13, Ankit Navik wrote: drm/i915: Context aware user agnostic EU/Slice/Sub-slice control within kernel Current GPU configuration code for i915 does not allow us to change EU/Slice/Sub-slice configuration dynamically. Its done only once while context is created. While particular graphics application is running, if we examine the command requests from user space, we observe that command density is not consistent. It means there is scope to change the graphics configuration dynamically even while context is running actively. This patch series proposes the solution to find the active pending load for all active context at given time and based on that, dynamically perform graphics configuration for each context. We use a hr (high resolution) timer with i915 driver in kernel to get a callback every few milliseconds (this timer value can be configured through debugfs, default is '0' indicating timer is in disabled state i.e. original system without any intervention).In the timer callback, we examine pending commands for a context in the queue, essentially, we intercept them before they are executed by GPU and we update context with required number of EUs. Two questions, how did we arrive at right timer value? and what's the right number of EUs? For the prior one, empirical data to achieve best performance in least power was considered. For the later one, we roughly categorized number of EUs logically based on platform. Now we compare number of pending commands with a particular threshold and then set number of EUs accordingly with update context. That threshold is also based on experiments & findings. If GPU is able to catch up with CPU, typically there are no pending commands, the EU config would remain unchanged there. In case there are more pending commands we reprogram context with higher number of EUs. Please note, here we are changing EUs even while context is running by examining pending commands every 'x' milliseconds. With this solution in place, on KBL-GT3 + Android we saw following pnp benefits, power numbers mentioned here are system power. App /KPI | % Power | | Benefit | | (mW) | -| 3D Mark (Ice storm)| 2.30% | TRex On screen | 2.49% | TRex Off screen| 1.32% | ManhattanOn screen | 3.11% | Manhattan Off screen | 0.89% | AnTuTu 6.1.4 | 3.42% | Were you able to find some benchmarks which regress? Maybe try Synmark2 and more from gfxbench? Not all benchmarks there are equally important, and regressions on some are fine, but I think a fuller set would be interesting to see. Regards, Tvrtko Note - For KBL (GEN9) we cannot control at sub-slice level, it was always a constraint. We always controlled number of EUs rather than sub-slices/slices. Praveen Diwakar (4): drm/i915: Get active pending request for given context drm/i915: Update render power clock state configuration for given context drm/i915: set optimum eu/slice/sub-slice configuration based on load type drm/i915: Predictive governor to control eu/slice/subslice drivers/gpu/drm/i915/i915_debugfs.c| 88 +- drivers/gpu/drm/i915/i915_drv.c| 1 + drivers/gpu/drm/i915/i915_drv.h| 10 drivers/gpu/drm/i915/i915_gem_context.c| 26 + drivers/gpu/drm/i915/i915_gem_context.h| 45 +++ drivers/gpu/drm/i915/i915_gem_execbuffer.c | 5 ++ drivers/gpu/drm/i915/intel_device_info.c | 44 ++- drivers/gpu/drm/i915/intel_lrc.c | 20 ++- 8 files changed, 235 insertions(+), 4 deletions(-) ___ 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/icl: Fix combo PHY HW context loss (rev2)
== Series Details == Series: drm/i915/icl: Fix combo PHY HW context loss (rev2) URL : https://patchwork.freedesktop.org/series/51970/ State : warning == Summary == $ dim checkpatch origin/drm-tip 8da27d26559f drm/i915/icl: Fix combo PHY uninit -:19: ERROR:BAD_SIGN_OFF: Unrecognized email address: 'Rodrigo Vivi https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915/icl: Fix combo PHY HW context loss (rev2)
== Series Details == Series: drm/i915/icl: Fix combo PHY HW context loss (rev2) URL : https://patchwork.freedesktop.org/series/51970/ State : warning == Summary == $ dim sparse origin/drm-tip Sparse version: v0.5.2 Commit: drm/i915/icl: Fix combo PHY uninit Okay! Commit: drm/i915/cnl+: Move the combo PHY init/uninit code to a new file -drivers/gpu/drm/i915/selftests/../i915_drv.h:3705:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/../i915_drv.h:3711:16: warning: expression using sizeof(void) +./include/uapi/linux/perf_event.h:147:56: warning: cast truncates bits from constant value (8000 becomes 0) Commit: drm/i915/cnl+: Verify combo PHY HW state during PHY uninit Okay! Commit: drm/i915/icl: Skip init for an already enabled combo PHY Okay! Commit: drm/i915/icl: Fix port B combo PHY context loss after DC transitions Okay! ___ 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/icl: Fix combo PHY HW context loss (rev2)
== Series Details == Series: drm/i915/icl: Fix combo PHY HW context loss (rev2) URL : https://patchwork.freedesktop.org/series/51970/ State : failure == Summary == = CI Bug Log - changes from CI_DRM_5096 -> Patchwork_10739 = == Summary - FAILURE == Serious unknown changes coming with Patchwork_10739 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10739, 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/51970/revisions/2/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10739: === IGT changes === Possible regressions igt@drv_module_reload@basic-no-display: fi-byt-clapper: PASS -> WARN == Known issues == Here are the changes found in Patchwork_10739 that come from known issues: === IGT changes === Issues hit igt@drv_module_reload@basic-reload: fi-blb-e6850: NOTRUN -> INCOMPLETE (fdo#107718) igt@drv_module_reload@basic-reload-inject: fi-glk-j4005: PASS -> DMESG-WARN (fdo#106000) igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: fi-skl-6600u: PASS -> INCOMPLETE (fdo#104108) Possible fixes igt@drv_module_reload@basic-reload: fi-glk-j4005: DMESG-WARN (fdo#106248, fdo#106725) -> PASS igt@drv_module_reload@basic-reload-inject: fi-byt-clapper: WARN (fdo#108688) -> PASS igt@drv_selftest@live_contexts: fi-bsw-n3050: DMESG-FAIL (fdo#108626) -> PASS igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_frontbuffer_tracking@basic: fi-byt-clapper: FAIL (fdo#103167) -> PASS igt@pm_rpm@module-reload: fi-byt-clapper: FAIL (fdo#108675) -> PASS fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#104108 https://bugs.freedesktop.org/show_bug.cgi?id=104108 fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000 fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248 fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#108626 https://bugs.freedesktop.org/show_bug.cgi?id=108626 fdo#108675 https://bugs.freedesktop.org/show_bug.cgi?id=108675 fdo#108688 https://bugs.freedesktop.org/show_bug.cgi?id=108688 == Participating hosts (51 -> 45) == Missing(6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-pnv-d510 == Build changes == * Linux: CI_DRM_5096 -> Patchwork_10739 CI_DRM_5096: 9dd45e92a3e9b238d044adde1061a8ee0ce24b73 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10739: b07aa5a2f1dde979ce2efcad860219eacff17618 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == b07aa5a2f1dd drm/i915/icl: Fix port B combo PHY context loss after DC transitions f8a27234d85e drm/i915/icl: Skip init for an already enabled combo PHY 63f195491d16 drm/i915/cnl+: Verify combo PHY HW state during PHY uninit 8994b0680dd9 drm/i915/cnl+: Move the combo PHY init/uninit code to a new file 8da27d26559f drm/i915/icl: Fix combo PHY uninit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10739/issues.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/icl: Fix combo PHY HW context loss (rev2)
== Series Details == Series: drm/i915/icl: Fix combo PHY HW context loss (rev2) URL : https://patchwork.freedesktop.org/series/51970/ State : failure == Summary == = CI Bug Log - changes from CI_DRM_5096 -> Patchwork_10739 = == Summary - FAILURE == Serious unknown changes coming with Patchwork_10739 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10739, 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/51970/revisions/2/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10739: === IGT changes === Possible regressions igt@drv_module_reload@basic-no-display: fi-byt-clapper: PASS -> WARN == Known issues == Here are the changes found in Patchwork_10739 that come from known issues: === IGT changes === Issues hit igt@drv_module_reload@basic-reload: fi-blb-e6850: NOTRUN -> INCOMPLETE (fdo#107718) igt@drv_module_reload@basic-reload-inject: fi-glk-j4005: PASS -> DMESG-WARN (fdo#106000) igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: fi-skl-6600u: PASS -> INCOMPLETE (fdo#104108) Possible fixes igt@drv_module_reload@basic-reload: fi-glk-j4005: DMESG-WARN (fdo#106725, fdo#106248) -> PASS igt@drv_module_reload@basic-reload-inject: fi-byt-clapper: WARN (fdo#108688) -> PASS igt@drv_selftest@live_contexts: fi-bsw-n3050: DMESG-FAIL (fdo#108626) -> PASS igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_frontbuffer_tracking@basic: fi-byt-clapper: FAIL (fdo#103167) -> PASS igt@pm_rpm@module-reload: fi-byt-clapper: FAIL (fdo#108675) -> PASS fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#104108 https://bugs.freedesktop.org/show_bug.cgi?id=104108 fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000 fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248 fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#108626 https://bugs.freedesktop.org/show_bug.cgi?id=108626 fdo#108675 https://bugs.freedesktop.org/show_bug.cgi?id=108675 fdo#108688 https://bugs.freedesktop.org/show_bug.cgi?id=108688 == Participating hosts (51 -> 45) == Missing(6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-pnv-d510 == Build changes == * Linux: CI_DRM_5096 -> Patchwork_10739 CI_DRM_5096: 9dd45e92a3e9b238d044adde1061a8ee0ce24b73 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10739: b07aa5a2f1dde979ce2efcad860219eacff17618 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == b07aa5a2f1dd drm/i915/icl: Fix port B combo PHY context loss after DC transitions f8a27234d85e drm/i915/icl: Skip init for an already enabled combo PHY 63f195491d16 drm/i915/cnl+: Verify combo PHY HW state during PHY uninit 8994b0680dd9 drm/i915/cnl+: Move the combo PHY init/uninit code to a new file 8da27d26559f drm/i915/icl: Fix combo PHY uninit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10739/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/icl: Fix combo PHY HW context loss (rev2)
== Series Details == Series: drm/i915/icl: Fix combo PHY HW context loss (rev2) URL : https://patchwork.freedesktop.org/series/51970/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5096 -> Patchwork_10739 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/51970/revisions/2/mbox/ == Known issues == Here are the changes found in Patchwork_10739 that come from known issues: === IGT changes === Issues hit igt@drv_module_reload@basic-no-display: fi-byt-clapper: PASS -> WARN (fdo#108688) igt@drv_module_reload@basic-reload: fi-blb-e6850: NOTRUN -> INCOMPLETE (fdo#107718) igt@drv_module_reload@basic-reload-inject: fi-glk-j4005: PASS -> DMESG-WARN (fdo#106000) igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: fi-skl-6600u: PASS -> INCOMPLETE (fdo#104108) Possible fixes igt@drv_module_reload@basic-reload: fi-glk-j4005: DMESG-WARN (fdo#106725, fdo#106248) -> PASS igt@drv_module_reload@basic-reload-inject: fi-byt-clapper: WARN (fdo#108688) -> PASS igt@drv_selftest@live_contexts: fi-bsw-n3050: DMESG-FAIL (fdo#108626) -> PASS igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_frontbuffer_tracking@basic: fi-byt-clapper: FAIL (fdo#103167) -> PASS igt@pm_rpm@module-reload: fi-byt-clapper: FAIL (fdo#108675) -> PASS fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#104108 https://bugs.freedesktop.org/show_bug.cgi?id=104108 fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000 fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248 fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#108626 https://bugs.freedesktop.org/show_bug.cgi?id=108626 fdo#108675 https://bugs.freedesktop.org/show_bug.cgi?id=108675 fdo#108688 https://bugs.freedesktop.org/show_bug.cgi?id=108688 == Participating hosts (51 -> 45) == Missing(6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-pnv-d510 == Build changes == * Linux: CI_DRM_5096 -> Patchwork_10739 CI_DRM_5096: 9dd45e92a3e9b238d044adde1061a8ee0ce24b73 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10739: b07aa5a2f1dde979ce2efcad860219eacff17618 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == b07aa5a2f1dd drm/i915/icl: Fix port B combo PHY context loss after DC transitions f8a27234d85e drm/i915/icl: Skip init for an already enabled combo PHY 63f195491d16 drm/i915/cnl+: Verify combo PHY HW state during PHY uninit 8994b0680dd9 drm/i915/cnl+: Move the combo PHY init/uninit code to a new file 8da27d26559f drm/i915/icl: Fix combo PHY uninit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10739/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/icl: Fix combo PHY HW context loss (rev2)
== Series Details == Series: drm/i915/icl: Fix combo PHY HW context loss (rev2) URL : https://patchwork.freedesktop.org/series/51970/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5096 -> Patchwork_10739 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/51970/revisions/2/mbox/ == Known issues == Here are the changes found in Patchwork_10739 that come from known issues: === IGT changes === Issues hit igt@drv_module_reload@basic-no-display: fi-byt-clapper: PASS -> WARN (fdo#108688) igt@drv_module_reload@basic-reload: fi-blb-e6850: NOTRUN -> INCOMPLETE (fdo#107718) igt@drv_module_reload@basic-reload-inject: fi-glk-j4005: PASS -> DMESG-WARN (fdo#106000) igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: fi-skl-6600u: PASS -> INCOMPLETE (fdo#104108) Possible fixes igt@drv_module_reload@basic-reload: fi-glk-j4005: DMESG-WARN (fdo#106248, fdo#106725) -> PASS igt@drv_module_reload@basic-reload-inject: fi-byt-clapper: WARN (fdo#108688) -> PASS igt@drv_selftest@live_contexts: fi-bsw-n3050: DMESG-FAIL (fdo#108626) -> PASS igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_frontbuffer_tracking@basic: fi-byt-clapper: FAIL (fdo#103167) -> PASS igt@pm_rpm@module-reload: fi-byt-clapper: FAIL (fdo#108675) -> PASS fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#104108 https://bugs.freedesktop.org/show_bug.cgi?id=104108 fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000 fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248 fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#108626 https://bugs.freedesktop.org/show_bug.cgi?id=108626 fdo#108675 https://bugs.freedesktop.org/show_bug.cgi?id=108675 fdo#108688 https://bugs.freedesktop.org/show_bug.cgi?id=108688 == Participating hosts (51 -> 45) == Missing(6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-pnv-d510 == Build changes == * Linux: CI_DRM_5096 -> Patchwork_10739 CI_DRM_5096: 9dd45e92a3e9b238d044adde1061a8ee0ce24b73 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10739: b07aa5a2f1dde979ce2efcad860219eacff17618 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == b07aa5a2f1dd drm/i915/icl: Fix port B combo PHY context loss after DC transitions f8a27234d85e drm/i915/icl: Skip init for an already enabled combo PHY 63f195491d16 drm/i915/cnl+: Verify combo PHY HW state during PHY uninit 8994b0680dd9 drm/i915/cnl+: Move the combo PHY init/uninit code to a new file 8da27d26559f drm/i915/icl: Fix combo PHY uninit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10739/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v5,1/2] drm/i915/skl: Rework MOCS tables to keep common part in a define
== Series Details == Series: series starting with [v5,1/2] drm/i915/skl: Rework MOCS tables to keep common part in a define URL : https://patchwork.freedesktop.org/series/52108/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5096 -> Patchwork_10740 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/52108/revisions/1/mbox/ == Known issues == Here are the changes found in Patchwork_10740 that come from known issues: === IGT changes === Issues hit igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: fi-blb-e6850: NOTRUN -> INCOMPLETE (fdo#107718) Possible fixes igt@drv_module_reload@basic-reload: fi-glk-j4005: DMESG-WARN (fdo#106248, fdo#106725) -> PASS igt@drv_module_reload@basic-reload-inject: fi-byt-clapper: WARN (fdo#108688) -> PASS igt@drv_selftest@live_contexts: fi-bsw-n3050: DMESG-FAIL (fdo#108626) -> PASS igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_frontbuffer_tracking@basic: fi-byt-clapper: FAIL (fdo#103167) -> PASS igt@pm_rpm@module-reload: fi-byt-clapper: FAIL (fdo#108675) -> PASS fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248 fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#108626 https://bugs.freedesktop.org/show_bug.cgi?id=108626 fdo#108675 https://bugs.freedesktop.org/show_bug.cgi?id=108675 fdo#108688 https://bugs.freedesktop.org/show_bug.cgi?id=108688 == Participating hosts (51 -> 45) == Missing(6): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 == Build changes == * Linux: CI_DRM_5096 -> Patchwork_10740 CI_DRM_5096: 9dd45e92a3e9b238d044adde1061a8ee0ce24b73 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10740: 3ffac1d9dea70d87022ac4099aa0527be0827cb8 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 3ffac1d9dea7 drm/i915/icl: Define MOCS table for Icelake 53cfc8f22cc8 drm/i915/skl: Rework MOCS tables to keep common part in a define == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10740/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 mm, drm/i915: Mark pinned shmemfs pages as unevictable (rev7)
== Series Details == Series: mm, drm/i915: Mark pinned shmemfs pages as unevictable (rev7) URL : https://patchwork.freedesktop.org/series/25337/ State : warning == Summary == $ dim checkpatch origin/drm-tip cbea68073add mm, drm/i915: mark pinned shmemfs pages as unevictable -:161: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files #161: FILE: include/linux/swap.h:374: +extern void check_move_unevictable_pages(struct pagevec *pvec); total: 0 errors, 0 warnings, 1 checks, 164 lines checked ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PULL] drm-misc-next
Hey Dave, First pull for drm-next this cycle. There's been a lot of changes, so I hope I recorded everything from the changelog correctly. drm-misc-next-2018-11-07: drm-misc-next for v4.21, part 1: UAPI Changes: - Add syncobj timeline support to drm. Cross-subsystem Changes: - Remove shared fence staging in dma-buf's fence object, and allow reserving more than 1 fence and add more paranoia when debugging. - Constify infoframe functions in video/hdmi. Core Changes: - Add vkms todo, and a lot of assorted doc fixes. - Drop transitional helpers and convert drivers to use drm_atomic_helper_shutdown(). - Move atomic state helper functions to drm_atomic_state_helper.[ch] - Refactor drm selftests, and add new tests. - DP MST atomic state cleanups. - Drop EXPORT_SYMBOL from drm leases. - Lease cleanups and fixes. - Create render node for vgem. Driver Changes: - Fix build failure in imx without fbdev emulation. - Add rotation quirk for GPD win2 panel. - Add support for various CDTech panels, Banana Pi Panel, DLC1010GIG, Olimex LCD-O-LinuXino, Samsung S6D16D0, Truly NT35597 WQXGA, Himax HX8357D, simulated RTSM AEMv8. - Add dw_hdmi support to rockchip driver. - Fix YUV support in vc4. - Fix resource id handling in virtio. - Make rockchip use dw-mipi-dsi bridge driver, and add dual dsi support. - Advertise that tinydrm only supports DRM_FORMAT_MOD_LINEAR. - Convert many drivers to use atomic helpers, and drm_fbdev_generic_setup(). - Add Mali linear tiled formats, and enable them in the Mali-DP driver. - Add support for H6 DE3 mixer 0, DW HDMI, HDMI PHY and TCON TOP. - Assorted driver cleanups and fixes. The following changes since commit f2bfc71aee75feff33ca659322b72ffeed5a243d: Merge tag 'drm-intel-next-fixes-2018-10-18' of git://anongit.freedesktop.org/drm/drm-intel into drm-next (2018-10-19 14:28:11 +1000) are available in the Git repository at: git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-next-2018-11-07 for you to fetch changes up to e7afb623b4fb82089c9a50c733c740522b8220bc: drm: Add drm_any_plane_has_format() (2018-11-06 21:34:22 +0200) drm-misc-next for v4.21, part 1: UAPI Changes: - Add syncobj timeline support to drm. Cross-subsystem Changes: - Remove shared fence staging in dma-buf's fence object, and allow reserving more than 1 fence and add more paranoia when debugging. - Constify infoframe functions in video/hdmi. Core Changes: - Add vkms todo, and a lot of assorted doc fixes. - Drop transitional helpers and convert drivers to use drm_atomic_helper_shutdown(). - Move atomic state helper functions to drm_atomic_state_helper.[ch] - Refactor drm selftests, and add new tests. - DP MST atomic state cleanups. - Drop EXPORT_SYMBOL from drm leases. - Lease cleanups and fixes. - Create render node for vgem. Driver Changes: - Fix build failure in imx without fbdev emulation. - Add rotation quirk for GPD win2 panel. - Add support for various CDTech panels, Banana Pi Panel, DLC1010GIG, Olimex LCD-O-LinuXino, Samsung S6D16D0, Truly NT35597 WQXGA, Himax HX8357D, simulated RTSM AEMv8. - Add dw_hdmi support to rockchip driver. - Fix YUV support in vc4. - Fix resource id handling in virtio. - Make rockchip use dw-mipi-dsi bridge driver, and add dual dsi support. - Advertise that tinydrm only supports DRM_FORMAT_MOD_LINEAR. - Convert many drivers to use atomic helpers, and drm_fbdev_generic_setup(). - Add Mali linear tiled formats, and enable them in the Mali-DP driver. - Add support for H6 DE3 mixer 0, DW HDMI, HDMI PHY and TCON TOP. - Assorted driver cleanups and fixes. Aaron Ma (2): vgaarb: Add support for 64-bit frame buffer address vgaarb: Keep adding VGA device in queue Abhinav Kumar (2): drm/panel: Add support for Truly NT35597 panel driver dt-bindings: Add Truly NT35597 panel driver bindings Alexandru Gheorghe (9): drm: fourcc: Convert drm_format_info kerneldoc to in-line member documentation drm/selftest: Refactor test-drm_plane_helper drm/fourcc: Add char_per_block, block_w and block_h in drm_format_info drm/fourcc: Add fourcc for Mali linear tiled formats drm: mali-dp: Enable Mali-DP tiled buffer formats drm: Extend framebuffer_check to handle formats with cpp/char_per_block 0 drm/selftests: Add tests for drm_format_info* helpers drm: Add macro to export functions only when CONFIG_DRM_DEBUG_SELFTEST is enabled drm/selftests: Add tests for drm_internal_framebuffer_create Alexandru-Cosmin Gheorghe (1): drm/selftests: Fix build warning -Wframe-larger-than Andrzej Hajda (1): drm/panel: simple: fix BOE/HV070WSA-100 timings Arnd Bergmann (1): drm/imx: fix build failure without CONFIG_DRM_FBDEV_EMULATION Benjamin Gaignard (2): drm: stm: implement get_scanout_position function drm/sti: make crct disable atomic Boris Brezillon (
[Intel-gfx] ✓ Fi.CI.BAT: success for mm, drm/i915: Mark pinned shmemfs pages as unevictable (rev7)
== Series Details == Series: mm, drm/i915: Mark pinned shmemfs pages as unevictable (rev7) URL : https://patchwork.freedesktop.org/series/25337/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5096 -> Patchwork_10741 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/25337/revisions/7/mbox/ == Known issues == Here are the changes found in Patchwork_10741 that come from known issues: === IGT changes === Issues hit igt@drv_selftest@live_contexts: fi-icl-u2: NOTRUN -> DMESG-FAIL (fdo#108569) igt@drv_selftest@live_execlists: fi-apl-guc: PASS -> INCOMPLETE (fdo#106693, fdo#103927) igt@gem_ctx_create@basic-files: fi-icl-u2: NOTRUN -> DMESG-WARN (fdo#107724) igt@gem_exec_suspend@basic-s4-devices: fi-blb-e6850: NOTRUN -> INCOMPLETE (fdo#107718) igt@kms_flip@basic-flip-vs-modeset: fi-hsw-4770r: PASS -> DMESG-WARN (fdo#105602) igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence: fi-byt-clapper: PASS -> FAIL (fdo#107362, fdo#103191) Possible fixes igt@drv_module_reload@basic-reload: fi-glk-j4005: DMESG-WARN (fdo#106248, fdo#106725) -> PASS igt@drv_module_reload@basic-reload-inject: fi-byt-clapper: WARN (fdo#108688) -> PASS igt@drv_selftest@live_contexts: fi-bsw-n3050: DMESG-FAIL (fdo#108626) -> PASS igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_frontbuffer_tracking@basic: fi-byt-clapper: FAIL (fdo#103167) -> PASS igt@pm_rpm@module-reload: fi-byt-clapper: FAIL (fdo#108675) -> PASS fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602 fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248 fdo#106693 https://bugs.freedesktop.org/show_bug.cgi?id=106693 fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#107724 https://bugs.freedesktop.org/show_bug.cgi?id=107724 fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569 fdo#108626 https://bugs.freedesktop.org/show_bug.cgi?id=108626 fdo#108675 https://bugs.freedesktop.org/show_bug.cgi?id=108675 fdo#108688 https://bugs.freedesktop.org/show_bug.cgi?id=108688 == Participating hosts (51 -> 46) == Additional (1): fi-icl-u2 Missing(6): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 == Build changes == * Linux: CI_DRM_5096 -> Patchwork_10741 CI_DRM_5096: 9dd45e92a3e9b238d044adde1061a8ee0ce24b73 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10741: cbea68073addc0619910c68dcd4c11edeb1c0a10 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == cbea68073add mm, drm/i915: mark pinned shmemfs pages as unevictable == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10741/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: fix subslice mask array size
== Series Details == Series: drm/i915: fix subslice mask array size URL : https://patchwork.freedesktop.org/series/52110/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5096 -> Patchwork_10742 = == Summary - WARNING == Minor unknown changes coming with Patchwork_10742 need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10742, 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/52110/revisions/1/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10742: === IGT changes === Warnings igt@drv_selftest@live_guc: fi-skl-iommu: PASS -> SKIP +1 == Known issues == Here are the changes found in Patchwork_10742 that come from known issues: === IGT changes === Issues hit igt@drv_selftest@live_contexts: fi-icl-u2: NOTRUN -> DMESG-FAIL (fdo#108569) igt@drv_selftest@live_hangcheck: fi-skl-iommu: PASS -> INCOMPLETE (fdo#108602) igt@gem_exec_suspend@basic-s3: fi-cfl-8109u: PASS -> INCOMPLETE (fdo#107187, fdo#108126) igt@kms_frontbuffer_tracking@basic: fi-icl-u2: NOTRUN -> FAIL (fdo#103167) igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence: fi-byt-clapper: PASS -> FAIL (fdo#107362, fdo#103191) Possible fixes igt@drv_module_reload@basic-reload: fi-glk-j4005: DMESG-WARN (fdo#106248, fdo#106725) -> PASS igt@drv_module_reload@basic-reload-inject: fi-byt-clapper: WARN (fdo#108688) -> PASS igt@drv_selftest@live_contexts: fi-bsw-n3050: DMESG-FAIL (fdo#108626) -> PASS igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@pm_rpm@module-reload: fi-byt-clapper: FAIL (fdo#108675) -> PASS fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248 fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725 fdo#107187 https://bugs.freedesktop.org/show_bug.cgi?id=107187 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#108126 https://bugs.freedesktop.org/show_bug.cgi?id=108126 fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569 fdo#108602 https://bugs.freedesktop.org/show_bug.cgi?id=108602 fdo#108626 https://bugs.freedesktop.org/show_bug.cgi?id=108626 fdo#108675 https://bugs.freedesktop.org/show_bug.cgi?id=108675 fdo#108688 https://bugs.freedesktop.org/show_bug.cgi?id=108688 == Participating hosts (51 -> 45) == Additional (1): fi-icl-u2 Missing(7): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-pnv-d510 == Build changes == * Linux: CI_DRM_5096 -> Patchwork_10742 CI_DRM_5096: 9dd45e92a3e9b238d044adde1061a8ee0ce24b73 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10742: 89ede27c7244afba92bd286660421ef0ec0e4d8a @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 89ede27c7244 drm/i915: fix subslice mask array size == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10742/issues.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: Rename full ppgtt configuration to be more generic (rev6)
== Series Details == Series: drm/i915: Rename full ppgtt configuration to be more generic (rev6) URL : https://patchwork.freedesktop.org/series/49021/ State : failure == Summary == Applying: drm/i915: Make 48bit full ppgtt configuration generic (v7) Using index info to reconstruct a base tree... M drivers/gpu/drm/i915/i915_drv.c M drivers/gpu/drm/i915/i915_drv.h M drivers/gpu/drm/i915/i915_gem_context.c M drivers/gpu/drm/i915/i915_gem_gtt.c M drivers/gpu/drm/i915/i915_gem_gtt.h M drivers/gpu/drm/i915/i915_pci.c M drivers/gpu/drm/i915/intel_device_info.h M drivers/gpu/drm/i915/intel_lrc.c M drivers/gpu/drm/i915/selftests/huge_pages.c Falling back to patching base and 3-way merge... Auto-merging drivers/gpu/drm/i915/selftests/huge_pages.c Auto-merging drivers/gpu/drm/i915/intel_lrc.c Auto-merging drivers/gpu/drm/i915/intel_device_info.h Auto-merging drivers/gpu/drm/i915/i915_pci.c Auto-merging drivers/gpu/drm/i915/i915_gem_gtt.h Auto-merging drivers/gpu/drm/i915/i915_gem_gtt.c CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/i915_gem_gtt.c Auto-merging drivers/gpu/drm/i915/i915_gem_context.c Auto-merging drivers/gpu/drm/i915/i915_drv.h Auto-merging drivers/gpu/drm/i915/i915_drv.c error: Failed to merge in the changes. Patch failed at 0001 drm/i915: Make 48bit full ppgtt configuration generic (v7) Use 'git am --show-current-patch' to see the failed 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". == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10391/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v4,1/4] drm/i915/psr: Use intel_psr_exit() in intel_psr_disable_source()
== Series Details == Series: series starting with [v4,1/4] drm/i915/psr: Use intel_psr_exit() in intel_psr_disable_source() URL : https://patchwork.freedesktop.org/series/52113/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5096 -> Patchwork_10743 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/52113/revisions/1/mbox/ == Known issues == Here are the changes found in Patchwork_10743 that come from known issues: === IGT changes === Issues hit igt@drv_selftest@live_contexts: fi-icl-u2: NOTRUN -> DMESG-FAIL (fdo#108569) igt@gem_exec_suspend@basic-s4-devices: fi-blb-e6850: NOTRUN -> INCOMPLETE (fdo#107718) igt@kms_pipe_crc_basic@hang-read-crc-pipe-b: fi-skl-guc: PASS -> FAIL (fdo#107362, fdo#103191) igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: fi-byt-clapper: PASS -> FAIL (fdo#107362, fdo#103191) Possible fixes igt@drv_module_reload@basic-reload: fi-glk-j4005: DMESG-WARN (fdo#106725, fdo#106248) -> PASS igt@drv_module_reload@basic-reload-inject: fi-byt-clapper: WARN (fdo#108688) -> PASS igt@drv_selftest@live_contexts: fi-bsw-n3050: DMESG-FAIL (fdo#108626) -> PASS igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_frontbuffer_tracking@basic: fi-byt-clapper: FAIL (fdo#103167) -> PASS igt@pm_rpm@module-reload: fi-byt-clapper: FAIL (fdo#108675) -> PASS fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248 fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569 fdo#108626 https://bugs.freedesktop.org/show_bug.cgi?id=108626 fdo#108675 https://bugs.freedesktop.org/show_bug.cgi?id=108675 fdo#108688 https://bugs.freedesktop.org/show_bug.cgi?id=108688 == Participating hosts (51 -> 44) == Additional (1): fi-icl-u2 Missing(8): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-gdg-551 fi-pnv-d510 == Build changes == * Linux: CI_DRM_5096 -> Patchwork_10743 CI_DRM_5096: 9dd45e92a3e9b238d044adde1061a8ee0ce24b73 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10743: 97a2d767b57222e9b40a1445ec02fafe7fb34e0a @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 97a2d767b572 drm/i915/psr: Move intel_psr_disable_source() code to intel_psr_disable_locked() 378e7ab1a7f5 drm/i915/icl: Reset PSR interruptions 008bfe179d1e drm/i915/psr: Always wait for idle state when disabling PSR 1c6d6a54255f drm/i915/psr: Use intel_psr_exit() in intel_psr_disable_source() == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10743/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 series starting with [1/3] drm/atomic: Use explicit old crtc state in drm_atomic_add_affected_planes() (rev2)
== Series Details == Series: series starting with [1/3] drm/atomic: Use explicit old crtc state in drm_atomic_add_affected_planes() (rev2) URL : https://patchwork.freedesktop.org/series/51894/ State : warning == Summary == $ dim checkpatch origin/drm-tip e5ec4f59a037 drm/atomic: Use explicit old crtc state in drm_atomic_add_affected_planes() 1bfa9185dee8 drm/atomic: Use explicit old/new state in drm_atomic_crtc_check() f6d1a322301f drm/atomic: Use explicit old/new state in drm_atomic_plane_check() -:118: CHECK:SPACING: No space is necessary after a cast #118: FILE: drivers/gpu/drm/drm_atomic.c:574: + new_plane_state->crtc_x > INT_MAX - (int32_t) new_plane_state->crtc_w || -:120: CHECK:SPACING: No space is necessary after a cast #120: FILE: drivers/gpu/drm/drm_atomic.c:576: + new_plane_state->crtc_y > INT_MAX - (int32_t) new_plane_state->crtc_h) { total: 0 errors, 0 warnings, 2 checks, 163 lines checked ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/3] drm/atomic: Use explicit old crtc state in drm_atomic_add_affected_planes() (rev2)
== Series Details == Series: series starting with [1/3] drm/atomic: Use explicit old crtc state in drm_atomic_add_affected_planes() (rev2) URL : https://patchwork.freedesktop.org/series/51894/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5096 -> Patchwork_10745 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/51894/revisions/2/mbox/ == Known issues == Here are the changes found in Patchwork_10745 that come from known issues: === IGT changes === Issues hit igt@drv_selftest@live_coherency: fi-gdg-551: PASS -> DMESG-FAIL (fdo#107164) igt@drv_selftest@live_contexts: fi-icl-u2: NOTRUN -> DMESG-FAIL (fdo#108569) igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: fi-cfl-8109u: PASS -> INCOMPLETE (fdo#106070, fdo#108126) Possible fixes igt@drv_module_reload@basic-reload: fi-glk-j4005: DMESG-WARN (fdo#106725, fdo#106248) -> PASS igt@drv_module_reload@basic-reload-inject: fi-byt-clapper: WARN (fdo#108688) -> PASS igt@drv_selftest@live_contexts: fi-bsw-n3050: DMESG-FAIL (fdo#108626) -> PASS igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_frontbuffer_tracking@basic: fi-byt-clapper: FAIL (fdo#103167) -> PASS igt@pm_rpm@module-reload: fi-byt-clapper: FAIL (fdo#108675) -> PASS fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#106070 https://bugs.freedesktop.org/show_bug.cgi?id=106070 fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248 fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725 fdo#107164 https://bugs.freedesktop.org/show_bug.cgi?id=107164 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#108126 https://bugs.freedesktop.org/show_bug.cgi?id=108126 fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569 fdo#108626 https://bugs.freedesktop.org/show_bug.cgi?id=108626 fdo#108675 https://bugs.freedesktop.org/show_bug.cgi?id=108675 fdo#108688 https://bugs.freedesktop.org/show_bug.cgi?id=108688 == Participating hosts (51 -> 45) == Additional (1): fi-icl-u2 Missing(7): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-pnv-d510 == Build changes == * Linux: CI_DRM_5096 -> Patchwork_10745 CI_DRM_5096: 9dd45e92a3e9b238d044adde1061a8ee0ce24b73 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10745: f6d1a322301fb41cf1850279091178a5fef8ebaf @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == f6d1a322301f drm/atomic: Use explicit old/new state in drm_atomic_plane_check() 1bfa9185dee8 drm/atomic: Use explicit old/new state in drm_atomic_crtc_check() e5ec4f59a037 drm/atomic: Use explicit old crtc state in drm_atomic_add_affected_planes() == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10745/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: HPD IRQ storm detection fixes (rev5)
== Series Details == Series: drm/i915: HPD IRQ storm detection fixes (rev5) URL : https://patchwork.freedesktop.org/series/51556/ State : warning == Summary == $ dim sparse origin/drm-tip Sparse version: v0.5.2 Commit: drm/i915: Fix possible race in intel_dp_add_mst_connector() Okay! Commit: drm/i915: Fix NULL deref when re-enabling HPD IRQs on systems with MST Okay! Commit: drm/i915: Fix threshold check in intel_hpd_irq_storm_detect() Okay! Commit: drm/i915: Clarify flow for disabling IRQs on storms Okay! Commit: drm/i915: Add short HPD IRQ storm detection for non-MST systems -drivers/gpu/drm/i915/selftests/../i915_drv.h:3705:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/../i915_drv.h:3708: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.BAT: success for drm/i915: HPD IRQ storm detection fixes (rev5)
== Series Details == Series: drm/i915: HPD IRQ storm detection fixes (rev5) URL : https://patchwork.freedesktop.org/series/51556/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5096 -> Patchwork_10746 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/51556/revisions/5/mbox/ == Known issues == Here are the changes found in Patchwork_10746 that come from known issues: === IGT changes === Issues hit igt@drv_selftest@live_contexts: fi-icl-u2: NOTRUN -> DMESG-FAIL (fdo#108569) igt@gem_ctx_create@basic-files: fi-icl-u2: NOTRUN -> DMESG-WARN (fdo#107724) igt@kms_frontbuffer_tracking@basic: fi-icl-u2: NOTRUN -> FAIL (fdo#103167) igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence: fi-byt-clapper: PASS -> FAIL (fdo#103191, fdo#107362) Possible fixes igt@drv_module_reload@basic-reload: fi-glk-j4005: DMESG-WARN (fdo#106725, fdo#106248) -> PASS igt@drv_module_reload@basic-reload-inject: fi-byt-clapper: WARN (fdo#108688) -> PASS igt@drv_selftest@live_contexts: fi-bsw-n3050: DMESG-FAIL (fdo#108626) -> PASS igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@pm_rpm@module-reload: fi-byt-clapper: FAIL (fdo#108675) -> PASS fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248 fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#107724 https://bugs.freedesktop.org/show_bug.cgi?id=107724 fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569 fdo#108626 https://bugs.freedesktop.org/show_bug.cgi?id=108626 fdo#108675 https://bugs.freedesktop.org/show_bug.cgi?id=108675 fdo#108688 https://bugs.freedesktop.org/show_bug.cgi?id=108688 == Participating hosts (51 -> 46) == Additional (1): fi-icl-u2 Missing(6): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 == Build changes == * Linux: CI_DRM_5096 -> Patchwork_10746 CI_DRM_5096: 9dd45e92a3e9b238d044adde1061a8ee0ce24b73 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10746: 88f61dce77998ed6434f7a9039feeaf09c5c39ec @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 88f61dce7799 drm/i915: Add short HPD IRQ storm detection for non-MST systems 2c47a05ef666 drm/i915: Clarify flow for disabling IRQs on storms 5891cdd7cd87 drm/i915: Fix threshold check in intel_hpd_irq_storm_detect() 987fe23ad9db drm/i915: Fix NULL deref when re-enabling HPD IRQs on systems with MST 4c43f533ca82 drm/i915: Fix possible race in intel_dp_add_mst_connector() == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10746/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 Make GEN macros more similar (rev2)
== Series Details == Series: Make GEN macros more similar (rev2) URL : https://patchwork.freedesktop.org/series/51860/ State : warning == Summary == $ dim checkpatch origin/drm-tip d15504ef1f13 Revert "drm/i915: Kill GEN_FOREVER" 322b4c9622f1 drm/i915: Rename IS_GEN to GT_RANGE 0bbf4afc4405 drm/i915: replace IS_GEN with GT_GEN(..., N) -:263: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'dev_priv' - possible side-effects? #263: FILE: drivers/gpu/drm/i915/i915_drv.h:2536: +#define IS_GEN9_LP(dev_priv) (GT_GEN(dev_priv, 9) && IS_LP(dev_priv)) -:264: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'dev_priv' - possible side-effects? #264: FILE: drivers/gpu/drm/i915/i915_drv.h:2537: +#define IS_GEN9_BC(dev_priv) (GT_GEN(dev_priv, 9) && !IS_LP(dev_priv)) -:282: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'dev_priv' - possible side-effects? #282: FILE: drivers/gpu/drm/i915/i915_drv.h:2610: +#define HAS_128_BYTE_Y_TILING(dev_priv) (!GT_GEN(dev_priv, 2) && \ !(IS_I915G(dev_priv) || \ IS_I915GM(dev_priv))) -:442: CHECK:COMPARISON_TO_NULL: Comparison to NULL could be written "!r" #442: FILE: drivers/gpu/drm/i915/i915_gem_stolen.c:159: + if (r == NULL && !GT_GEN(dev_priv, 3)) { -:1127: CHECK:CAMELCASE: Avoid CamelCase: #1127: FILE: drivers/gpu/drm/i915/intel_display.c:14047: + if (GT_GEN(dev_priv, 5) && (I915_READ(FUSE_STRAP) & ILK_eDP_A_DISABLE)) total: 0 errors, 0 warnings, 5 checks, 1787 lines checked 36dad133f489 drm/i915: rename IS_GEN9_* to GT_GEN9_* -:169: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'dev_priv' - possible side-effects? #169: FILE: drivers/gpu/drm/i915/i915_drv.h:2386: +#define GT_GEN9_LP(dev_priv) (GT_GEN(dev_priv, 9) && IS_LP(dev_priv)) -:170: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'dev_priv' - possible side-effects? #170: FILE: drivers/gpu/drm/i915/i915_drv.h:2387: +#define GT_GEN9_BC(dev_priv) (GT_GEN(dev_priv, 9) && !IS_LP(dev_priv)) -:293: ERROR:CODE_INDENT: code indent should use tabs where possible #293: FILE: drivers/gpu/drm/i915/i915_reg.h:3826: + (GT_GEN9_LP(dev_priv) ? \$ -:293: WARNING:LEADING_SPACE: please, no spaces at the start of a line #293: FILE: drivers/gpu/drm/i915/i915_reg.h:3826: + (GT_GEN9_LP(dev_priv) ? \$ -:1311: CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around '!intel_dsi->dual_link' #1311: FILE: drivers/gpu/drm/i915/vlv_dsi.c:1444: + if (GT_GEN9_LP(dev_priv) && (!intel_dsi->dual_link)) { total: 1 errors, 1 warnings, 3 checks, 1093 lines checked 8d54865b9953 drm/i915: replace gen checks using operators by GT_GEN/GT_GEN_RANGE -:179: WARNING:LONG_LINE: line over 100 characters #179: FILE: drivers/gpu/drm/i915/i915_debugfs.c:1204: + (gt_perf_status & (GT_GEN_RANGE(dev_priv, 9, GEN_FOREVER) ? 0x1ff00 : 0xff00)) >> 8); -:321: WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (8, 63) #321: FILE: drivers/gpu/drm/i915/i915_debugfs.c:1759: + if (GT_GEN_RANGE(dev_priv, 9, GEN_FOREVER)) /* no global SR status; inspect per-plane WM */; -:674: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'dev_priv' - possible side-effects? #674: FILE: drivers/gpu/drm/i915/i915_drv.h:2604: +#define HAS_GMBUS_BURST_READ(dev_priv) (GT_GEN_RANGE(dev_priv, 10, GEN_FOREVER) || \ IS_GEMINILAKE(dev_priv) || \ IS_KABYLAKE(dev_priv)) -:683: WARNING:SPACE_BEFORE_TAB: please, no space before tabs #683: FILE: drivers/gpu/drm/i915/i915_drv.h:2617: +#define HAS_FW_BLC(dev_priv) ^I(GT_GEN_RANGE(dev_priv, 3, GEN_FOREVER))$ -:686: WARNING:LONG_LINE: line over 100 characters #686: FILE: drivers/gpu/drm/i915/i915_drv.h:2619: +#define HAS_CUR_FBC(dev_priv) (!HAS_GMCH_DISPLAY(dev_priv) && GT_GEN_RANGE(dev_priv, 7, GEN_FOREVER)) -:686: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'dev_priv' - possible side-effects? #686: FILE: drivers/gpu/drm/i915/i915_drv.h:2619: +#define HAS_CUR_FBC(dev_priv) (!HAS_GMCH_DISPLAY(dev_priv) && GT_GEN_RANGE(dev_priv, 7, GEN_FOREVER)) -:1609: ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses #1609: FILE: drivers/gpu/drm/i915/i915_reg.h:3816: +#define GT_INTERVAL_FROM_US(dev_priv, us) (GT_GEN_RANGE(dev_priv, 9, GEN_FOREVER) ? \ (GT_GEN9_LP(dev_priv) ? \ INTERVAL_0_833_US(us) : \ INTERVAL_1_33_US(us)) : \ -:1609: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'dev_priv' - possible side-effects? #1609: FILE: drivers/gpu/drm/i915/i915_reg.h:3816: +#define GT_INTERVAL_FROM_US(dev_priv, us) (GT_GEN_RANGE(dev_priv, 9, GEN_FOREVER) ? \ (GT_GEN9_LP(dev_priv) ? \ INTERVAL_0_833_US(us) : \ INTERVAL_1_33_US(us))
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for Make GEN macros more similar (rev2)
== Series Details == Series: Make GEN macros more similar (rev2) URL : https://patchwork.freedesktop.org/series/51860/ State : warning == Summary == $ dim sparse origin/drm-tip Sparse version: v0.5.2 Commit: Revert "drm/i915: Kill GEN_FOREVER" -drivers/gpu/drm/i915/selftests/../i915_drv.h:3705:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/../i915_drv.h:3713:16: warning: expression using sizeof(void) Commit: drm/i915: Rename IS_GEN to GT_RANGE Okay! Commit: drm/i915: replace IS_GEN with GT_GEN(..., N) -O:drivers/gpu/drm/i915/intel_cdclk.c:2178:37: warning: expression using sizeof(void) -O:drivers/gpu/drm/i915/intel_cdclk.c:2181:37: warning: expression using sizeof(void) +drivers/gpu/drm/i915/intel_cdclk.c:2178:37: warning: expression using sizeof(void) +drivers/gpu/drm/i915/intel_cdclk.c:2181:37: warning: expression using sizeof(void) -O:drivers/gpu/drm/i915/intel_fbc.c:88:25: warning: expression using sizeof(void) -O:drivers/gpu/drm/i915/intel_fbc.c:90:25: warning: expression using sizeof(void) +drivers/gpu/drm/i915/intel_fbc.c:88:25: warning: expression using sizeof(void) +drivers/gpu/drm/i915/intel_fbc.c:90:25: warning: expression using sizeof(void) -drivers/gpu/drm/i915/selftests/../i915_drv.h:3713:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/../i915_drv.h:3700:16: warning: expression using sizeof(void) Commit: drm/i915: rename IS_GEN9_* to GT_GEN9_* -drivers/gpu/drm/i915/selftests/../i915_drv.h:3700:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/../i915_drv.h:3701:16: warning: expression using sizeof(void) Commit: drm/i915: replace gen checks using operators by GT_GEN/GT_GEN_RANGE -O:drivers/gpu/drm/i915/intel_cdclk.c:2201:29: warning: expression using sizeof(void) +drivers/gpu/drm/i915/intel_cdclk.c:2201:29: warning: expression using sizeof(void) -O:drivers/gpu/drm/i915/intel_fbc.c:88:25: warning: expression using sizeof(void) -O:drivers/gpu/drm/i915/intel_fbc.c:90:25: warning: expression using sizeof(void) +drivers/gpu/drm/i915/intel_fbc.c:88:25: warning: expression using sizeof(void) +drivers/gpu/drm/i915/intel_fbc.c:90:25: warning: expression using sizeof(void) Commit: drm/i915: merge gen checks to use range Okay! Commit: drm/i915: remove INTEL_GEN macro -drivers/gpu/drm/i915/selftests/../i915_drv.h:3701:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/../i915_drv.h:3700: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.BAT: failure for Forward Error Correction (rev7)
== Series Details == Series: Forward Error Correction (rev7) URL : https://patchwork.freedesktop.org/series/47848/ State : failure == Summary == Applying: i915/dp/fec: Add fec_enable to the crtc state. error: sha1 information is lacking or useless (drivers/gpu/drm/i915/intel_dp.c). error: could not build fake ancestor Patch failed at 0001 i915/dp/fec: Add fec_enable to the crtc state. Use 'git am --show-current-patch' to see the failed 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.CHECKPATCH: warning for drm/dp_mst: Add some atomic state iterator macros
== Series Details == Series: drm/dp_mst: Add some atomic state iterator macros URL : https://patchwork.freedesktop.org/series/52130/ State : warning == Summary == $ dim checkpatch origin/drm-tip f9a06ea3b5c0 drm/dp_mst: Add some atomic state iterator macros -:7: WARNING:COMMIT_MESSAGE: Missing commit description - Add an appropriate one -:55: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__state' - possible side-effects? #55: FILE: include/drm/drm_dp_mst_helper.h:669: +#define for_each_oldnew_mst_mgr_in_state(__state, mgr, old_state, new_state, __i) \ + for ((__i) = 0; (__i) < (__state)->num_private_objs; (__i)++) \ + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), &(old_state), &(new_state), (__i))) -:55: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__i' - possible side-effects? #55: FILE: include/drm/drm_dp_mst_helper.h:669: +#define for_each_oldnew_mst_mgr_in_state(__state, mgr, old_state, new_state, __i) \ + for ((__i) = 0; (__i) < (__state)->num_private_objs; (__i)++) \ + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), &(old_state), &(new_state), (__i))) -:57: WARNING:LONG_LINE: line over 100 characters #57: FILE: include/drm/drm_dp_mst_helper.h:671: + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), &(old_state), &(new_state), (__i))) -:72: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__state' - possible side-effects? #72: FILE: include/drm/drm_dp_mst_helper.h:686: +#define for_each_old_mst_mgr_in_state(__state, mgr, old_state, __i) \ + for ((__i) = 0; (__i) < (__state)->num_private_objs; (__i)++) \ + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), &(old_state), NULL, (__i))) -:72: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__i' - possible side-effects? #72: FILE: include/drm/drm_dp_mst_helper.h:686: +#define for_each_old_mst_mgr_in_state(__state, mgr, old_state, __i) \ + for ((__i) = 0; (__i) < (__state)->num_private_objs; (__i)++) \ + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), &(old_state), NULL, (__i))) -:74: WARNING:LONG_LINE: line over 100 characters #74: FILE: include/drm/drm_dp_mst_helper.h:688: + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), &(old_state), NULL, (__i))) -:90: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__state' - possible side-effects? #90: FILE: include/drm/drm_dp_mst_helper.h:704: +#define for_each_new_mst_mgr_in_state(__state, mgr, new_state, __i) \ + for ((__i) = 0; (__i) < (__state)->num_private_objs; (__i)++) \ + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), NULL, &(new_state), (__i))) -:90: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__i' - possible side-effects? #90: FILE: include/drm/drm_dp_mst_helper.h:704: +#define for_each_new_mst_mgr_in_state(__state, mgr, new_state, __i) \ + for ((__i) = 0; (__i) < (__state)->num_private_objs; (__i)++) \ + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), NULL, &(new_state), (__i))) -:92: WARNING:LONG_LINE: line over 100 characters #92: FILE: include/drm/drm_dp_mst_helper.h:706: + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), NULL, &(new_state), (__i))) total: 0 errors, 4 warnings, 6 checks, 81 lines checked 2f6f91409c1d drm/dp_mst: Start tracking per-port VCPI allocations 3595cf182bc3 drm/dp_mst: Check payload count in drm_dp_mst_atomic_check() 65ad86529a15 drm/nouveau: Use atomic VCPI helpers for MST b58c9476ea09 drm/dp_mst: Stop unsetting mstc->port, check connector registration ___ 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/dp_mst: Add some atomic state iterator macros
== Series Details == Series: drm/dp_mst: Add some atomic state iterator macros URL : https://patchwork.freedesktop.org/series/52130/ State : warning == Summary == $ dim sparse origin/drm-tip Sparse version: v0.5.2 Commit: drm/dp_mst: Add some atomic state iterator macros Okay! Commit: drm/dp_mst: Start tracking per-port VCPI allocations +./include/linux/slab.h:332:43: warning: dubious: x & !y Commit: drm/dp_mst: Check payload count in drm_dp_mst_atomic_check() Okay! Commit: drm/nouveau: Use atomic VCPI helpers for MST Okay! Commit: drm/dp_mst: Stop unsetting mstc->port, check connector registration Okay! ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for Make GEN macros more similar (rev2)
== Series Details == Series: Make GEN macros more similar (rev2) URL : https://patchwork.freedesktop.org/series/51860/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5097 -> Patchwork_10747 = == Summary - WARNING == Minor unknown changes coming with Patchwork_10747 need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10747, 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/51860/revisions/2/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10747: === IGT changes === Warnings igt@gem_exec_basic@basic-render: fi-bsw-n3050: PASS -> SKIP +85 == Known issues == Here are the changes found in Patchwork_10747 that come from known issues: === IGT changes === Issues hit igt@drv_module_reload@basic-reload-inject: fi-byt-clapper: PASS -> WARN (fdo#108688) igt@gem_ctx_create@basic-files: fi-bsw-n3050: PASS -> DMESG-FAIL (fdo#108656) fi-icl-u2: PASS -> DMESG-WARN (fdo#107724) igt@gem_exec_suspend@basic-s3: fi-ctg-p8600: PASS -> INCOMPLETE (fdo#102997) igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size: fi-bsw-n3050: PASS -> DMESG-WARN (fdo#108656) +82 igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence: fi-byt-squawks: PASS -> FAIL (fdo#103191, fdo#107362, fdo#107119) igt@pm_rpm@module-reload: fi-byt-clapper: PASS -> FAIL (fdo#108675) Possible fixes igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_frontbuffer_tracking@basic: fi-byt-clapper: FAIL (fdo#103167) -> PASS igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a: fi-byt-clapper: FAIL (fdo#107362) -> PASS igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence: fi-byt-clapper: FAIL (fdo#103191, fdo#107362) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: fi-cfl-8109u: DMESG-WARN (fdo#107345) -> PASS +2 fdo#102997 https://bugs.freedesktop.org/show_bug.cgi?id=102997 fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#107119 https://bugs.freedesktop.org/show_bug.cgi?id=107119 fdo#107345 https://bugs.freedesktop.org/show_bug.cgi?id=107345 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#107724 https://bugs.freedesktop.org/show_bug.cgi?id=107724 fdo#108656 https://bugs.freedesktop.org/show_bug.cgi?id=108656 fdo#108675 https://bugs.freedesktop.org/show_bug.cgi?id=108675 fdo#108688 https://bugs.freedesktop.org/show_bug.cgi?id=108688 == Participating hosts (52 -> 52) == No changes in participating hosts == Build changes == * Linux: CI_DRM_5097 -> Patchwork_10747 CI_DRM_5097: c20dfc4f015dfd41246beb7d72338aa50543a5ef @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10747: 73c65e0e7e5f8582a24bd4d3e11501dee33453ef @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 73c65e0e7e5f drm/i915: remove INTEL_GEN macro 90392f31f7da drm/i915: merge gen checks to use range 8d54865b9953 drm/i915: replace gen checks using operators by GT_GEN/GT_GEN_RANGE 36dad133f489 drm/i915: rename IS_GEN9_* to GT_GEN9_* 0bbf4afc4405 drm/i915: replace IS_GEN with GT_GEN(..., N) 322b4c9622f1 drm/i915: Rename IS_GEN to GT_RANGE d15504ef1f13 Revert "drm/i915: Kill GEN_FOREVER" == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10747/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/dp_mst: Improve VCPI helpers, use in nouveau (rev3)
== Series Details == Series: drm/dp_mst: Improve VCPI helpers, use in nouveau (rev3) URL : https://patchwork.freedesktop.org/series/51412/ State : warning == Summary == $ dim checkpatch origin/drm-tip fefd28281a84 drm/dp_mst: Add some atomic state iterator macros -:7: WARNING:COMMIT_MESSAGE: Missing commit description - Add an appropriate one -:55: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__state' - possible side-effects? #55: FILE: include/drm/drm_dp_mst_helper.h:669: +#define for_each_oldnew_mst_mgr_in_state(__state, mgr, old_state, new_state, __i) \ + for ((__i) = 0; (__i) < (__state)->num_private_objs; (__i)++) \ + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), &(old_state), &(new_state), (__i))) -:55: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__i' - possible side-effects? #55: FILE: include/drm/drm_dp_mst_helper.h:669: +#define for_each_oldnew_mst_mgr_in_state(__state, mgr, old_state, new_state, __i) \ + for ((__i) = 0; (__i) < (__state)->num_private_objs; (__i)++) \ + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), &(old_state), &(new_state), (__i))) -:57: WARNING:LONG_LINE: line over 100 characters #57: FILE: include/drm/drm_dp_mst_helper.h:671: + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), &(old_state), &(new_state), (__i))) -:72: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__state' - possible side-effects? #72: FILE: include/drm/drm_dp_mst_helper.h:686: +#define for_each_old_mst_mgr_in_state(__state, mgr, old_state, __i) \ + for ((__i) = 0; (__i) < (__state)->num_private_objs; (__i)++) \ + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), &(old_state), NULL, (__i))) -:72: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__i' - possible side-effects? #72: FILE: include/drm/drm_dp_mst_helper.h:686: +#define for_each_old_mst_mgr_in_state(__state, mgr, old_state, __i) \ + for ((__i) = 0; (__i) < (__state)->num_private_objs; (__i)++) \ + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), &(old_state), NULL, (__i))) -:74: WARNING:LONG_LINE: line over 100 characters #74: FILE: include/drm/drm_dp_mst_helper.h:688: + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), &(old_state), NULL, (__i))) -:90: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__state' - possible side-effects? #90: FILE: include/drm/drm_dp_mst_helper.h:704: +#define for_each_new_mst_mgr_in_state(__state, mgr, new_state, __i) \ + for ((__i) = 0; (__i) < (__state)->num_private_objs; (__i)++) \ + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), NULL, &(new_state), (__i))) -:90: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__i' - possible side-effects? #90: FILE: include/drm/drm_dp_mst_helper.h:704: +#define for_each_new_mst_mgr_in_state(__state, mgr, new_state, __i) \ + for ((__i) = 0; (__i) < (__state)->num_private_objs; (__i)++) \ + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), NULL, &(new_state), (__i))) -:92: WARNING:LONG_LINE: line over 100 characters #92: FILE: include/drm/drm_dp_mst_helper.h:706: + for_each_if(__drm_dp_mst_state_iter_get((__state), &(mgr), NULL, &(new_state), (__i))) total: 0 errors, 4 warnings, 6 checks, 81 lines checked a03e2638e777 drm/dp_mst: Start tracking per-port VCPI allocations 7a9736d43368 drm/dp_mst: Check payload count in drm_dp_mst_atomic_check() 9707b725e868 drm/nouveau: Use atomic VCPI helpers for MST 0a4548df6646 drm/dp_mst: Stop unsetting mstc->port, check connector registration ___ 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/dp_mst: Improve VCPI helpers, use in nouveau (rev3)
== Series Details == Series: drm/dp_mst: Improve VCPI helpers, use in nouveau (rev3) URL : https://patchwork.freedesktop.org/series/51412/ State : warning == Summary == $ dim sparse origin/drm-tip Sparse version: v0.5.2 Commit: drm/dp_mst: Add some atomic state iterator macros Okay! Commit: drm/dp_mst: Start tracking per-port VCPI allocations +./include/linux/slab.h:332:43: warning: dubious: x & !y Commit: drm/dp_mst: Check payload count in drm_dp_mst_atomic_check() Okay! Commit: drm/nouveau: Use atomic VCPI helpers for MST Okay! Commit: drm/dp_mst: Stop unsetting mstc->port, check connector registration Okay! ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/dp_mst: Add some atomic state iterator macros
== Series Details == Series: drm/dp_mst: Add some atomic state iterator macros URL : https://patchwork.freedesktop.org/series/52130/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5097 -> Patchwork_10749 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/52130/revisions/1/mbox/ == Known issues == Here are the changes found in Patchwork_10749 that come from known issues: === IGT changes === Issues hit igt@drv_selftest@live_coherency: fi-gdg-551: PASS -> DMESG-FAIL (fdo#107164) Possible fixes igt@drv_selftest@live_hangcheck: fi-cfl-8109u: INCOMPLETE (fdo#106070) -> PASS igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a: fi-byt-clapper: FAIL (fdo#107362) -> PASS igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence: fi-byt-clapper: FAIL (fdo#103191, fdo#107362) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: fi-cfl-8109u: DMESG-WARN (fdo#107345) -> PASS +2 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#106070 https://bugs.freedesktop.org/show_bug.cgi?id=106070 fdo#107164 https://bugs.freedesktop.org/show_bug.cgi?id=107164 fdo#107345 https://bugs.freedesktop.org/show_bug.cgi?id=107345 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 == Participating hosts (52 -> 46) == Missing(6): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 == Build changes == * Linux: CI_DRM_5097 -> Patchwork_10749 CI_DRM_5097: c20dfc4f015dfd41246beb7d72338aa50543a5ef @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10749: b58c9476ea09620366de5a2ba7ecbcd01a5a8962 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == b58c9476ea09 drm/dp_mst: Stop unsetting mstc->port, check connector registration 65ad86529a15 drm/nouveau: Use atomic VCPI helpers for MST 3595cf182bc3 drm/dp_mst: Check payload count in drm_dp_mst_atomic_check() 2f6f91409c1d drm/dp_mst: Start tracking per-port VCPI allocations f9a06ea3b5c0 drm/dp_mst: Add some atomic state iterator macros == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10749/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/dp_mst: Improve VCPI helpers, use in nouveau (rev3)
== Series Details == Series: drm/dp_mst: Improve VCPI helpers, use in nouveau (rev3) URL : https://patchwork.freedesktop.org/series/51412/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5097 -> Patchwork_10750 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/51412/revisions/3/mbox/ == Known issues == Here are the changes found in Patchwork_10750 that come from known issues: === IGT changes === Issues hit igt@drv_selftest@live_contexts: fi-icl-u: NOTRUN -> DMESG-FAIL (fdo#108569) igt@drv_selftest@live_evict: fi-bsw-kefka: PASS -> DMESG-WARN (fdo#107709) igt@drv_selftest@live_hangcheck: fi-kbl-7560u: PASS -> INCOMPLETE (fdo#108044) igt@gem_ctx_create@basic-files: fi-icl-u2: PASS -> DMESG-WARN (fdo#107724) igt@kms_chamelium@common-hpd-after-suspend: fi-skl-6700k2: PASS -> WARN (fdo#108680) igt@kms_frontbuffer_tracking@basic: fi-icl-u2: PASS -> FAIL (fdo#103167) igt@kms_pipe_crc_basic@hang-read-crc-pipe-b: fi-byt-clapper: PASS -> FAIL (fdo#107362, fdo#103191) Possible fixes igt@drv_selftest@live_hangcheck: fi-cfl-8109u: INCOMPLETE (fdo#106070) -> PASS igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a: fi-byt-clapper: FAIL (fdo#107362) -> PASS igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence: fi-byt-clapper: FAIL (fdo#107362, fdo#103191) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: fi-cfl-8109u: DMESG-WARN (fdo#107345) -> PASS +2 fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#106070 https://bugs.freedesktop.org/show_bug.cgi?id=106070 fdo#107345 https://bugs.freedesktop.org/show_bug.cgi?id=107345 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107709 https://bugs.freedesktop.org/show_bug.cgi?id=107709 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#107724 https://bugs.freedesktop.org/show_bug.cgi?id=107724 fdo#108044 https://bugs.freedesktop.org/show_bug.cgi?id=108044 fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569 fdo#108680 https://bugs.freedesktop.org/show_bug.cgi?id=108680 == Participating hosts (52 -> 46) == Additional (1): fi-icl-u Missing(7): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-pnv-d510 == Build changes == * Linux: CI_DRM_5097 -> Patchwork_10750 CI_DRM_5097: c20dfc4f015dfd41246beb7d72338aa50543a5ef @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10750: 0a4548df6646bd98a3f8e175d8d7d68eb2fc8e57 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 0a4548df6646 drm/dp_mst: Stop unsetting mstc->port, check connector registration 9707b725e868 drm/nouveau: Use atomic VCPI helpers for MST 7a9736d43368 drm/dp_mst: Check payload count in drm_dp_mst_atomic_check() a03e2638e777 drm/dp_mst: Start tracking per-port VCPI allocations fefd28281a84 drm/dp_mst: Add some atomic state iterator macros == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10750/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PULL] gvt-fixes for 4.20-rc2
Quoting Zhenyu Wang (2018-11-07 04:31:37) > > Hi, > > Here's re-generated -fixes pull for 4.20. Mostly on fixing > possible guest arbitrary update of GGTT entries, with one mask > fix for chicken register, and with one to fix eDP warning in guest. > > Thanks. Pulled. Thanks for re-spinning. Regards, Joonas ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm/i915/ringbuffer: Delay after EMIT_INVALIDATE for gen4/gen5
On Mon, Nov 05, 2018 at 09:43:05AM +, Chris Wilson wrote: > Exercising the gpu reloc path strenuously revealed an issue where the > updated relocations (from MI_STORE_DWORD_IMM) were not being observed > upon execution. After some experiments with adding pipecontrols (a lot > of pipecontrols (32) as gen4/5 do not have a bit to wait on earlier pipe > controls or even the current on), it was discovered that we merely > needed to delay the EMIT_INVALIDATE by several flushes. It is important > to note that it is the EMIT_INVALIDATE as opposed to the EMIT_FLUSH that > needs the delay as opposed to what one might first expect -- that the > delay is required for the TLB invalidation to take effect (one presumes > to purge any CS buffers) as opposed to a delay after flushing to ensure > the writes have landed before triggering invalidation. > > Testcase: igt/gem_tiled_fence_blits > Signed-off-by: Chris Wilson > Cc: sta...@vger.kernel.org > --- > drivers/gpu/drm/i915/intel_ringbuffer.c | 38 +++-- > 1 file changed, 36 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c > b/drivers/gpu/drm/i915/intel_ringbuffer.c > index b8a7a014d46d..87eebc13c0d8 100644 > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c > @@ -91,6 +91,7 @@ static int > gen4_render_ring_flush(struct i915_request *rq, u32 mode) > { > u32 cmd, *cs; > + int i; > > /* >* read/write caches: > @@ -127,12 +128,45 @@ gen4_render_ring_flush(struct i915_request *rq, u32 > mode) > cmd |= MI_INVALIDATE_ISP; > } > > - cs = intel_ring_begin(rq, 2); > + i = 2; > + if (mode & EMIT_INVALIDATE) > + i += 20; > + > + cs = intel_ring_begin(rq, i); > if (IS_ERR(cs)) > return PTR_ERR(cs); > > *cs++ = cmd; > - *cs++ = MI_NOOP; > + > + /* > + * A random delay to let the CS invalidate take effect? Without this > + * delay, the GPU relocation path fails as the CS does not see > + * the updated contents. Just as important, if we apply the flushes > + * to the EMIT_FLUSH branch (i.e. immediately after the relocation > + * write and before the invalidate on the next batch), the relocations > + * still fail. This implies that is a delay following invalidation > + * that is required to reset the caches as opposed to a delay to > + * ensure the memory is written. > + */ > + if (mode & EMIT_INVALIDATE) { > + *cs++ = GFX_OP_PIPE_CONTROL(4) | PIPE_CONTROL_QW_WRITE; > + *cs++ = i915_ggtt_offset(rq->engine->scratch) | > + PIPE_CONTROL_GLOBAL_GTT; > + *cs++ = 0; > + *cs++ = 0; > + > + for (i = 0; i < 12; i++) > + *cs++ = MI_FLUSH; > + > + *cs++ = GFX_OP_PIPE_CONTROL(4) | PIPE_CONTROL_QW_WRITE; > + *cs++ = i915_ggtt_offset(rq->engine->scratch) | > + PIPE_CONTROL_GLOBAL_GTT; > + *cs++ = 0; > + *cs++ = 0; > + } This smells a lot like the snb a/b w/a, except there the spec says to use 8 STORE_DWORDS. I suppose the choice of a specific command isn't critical, and it's just a matter of stuffing the pipeline with something that's takes long enough to let the TLB invalidate finish? Anyways, patch itself seems as reasonable as one might expect for an issue like this. Reviewed-by: Ville Syrjälä > + > + *cs++ = cmd; > + > intel_ring_advance(rq, cs); > > return 0; > -- > 2.19.1 > > ___ > 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
[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/csr: fix spelling mistake "firmare" -> "firmware"
== Series Details == Series: drm/i915/csr: fix spelling mistake "firmare" -> "firmware" URL : https://patchwork.freedesktop.org/series/52153/ State : failure == Summary == = CI Bug Log - changes from CI_DRM_5097 -> Patchwork_10751 = == Summary - FAILURE == Serious unknown changes coming with Patchwork_10751 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10751, 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/52153/revisions/1/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10751: === IGT changes === Possible regressions igt@gem_mmap_gtt@basic: fi-bsw-kefka: PASS -> INCOMPLETE == Known issues == Here are the changes found in Patchwork_10751 that come from known issues: === IGT changes === Issues hit igt@drv_selftest@live_contexts: fi-icl-u: NOTRUN -> DMESG-FAIL (fdo#108569) igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence: fi-byt-clapper: PASS -> FAIL (fdo#103191, fdo#107362) Possible fixes igt@drv_selftest@live_hangcheck: fi-cfl-8109u: INCOMPLETE (fdo#106070) -> PASS igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_frontbuffer_tracking@basic: fi-byt-clapper: FAIL (fdo#103167) -> PASS igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a: fi-byt-clapper: FAIL (fdo#107362) -> PASS igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence: fi-byt-clapper: FAIL (fdo#103191, fdo#107362) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: fi-cfl-8109u: DMESG-WARN (fdo#107345) -> PASS +2 fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#106070 https://bugs.freedesktop.org/show_bug.cgi?id=106070 fdo#107345 https://bugs.freedesktop.org/show_bug.cgi?id=107345 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569 == Participating hosts (52 -> 43) == Additional (1): fi-icl-u Missing(10): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-j1900 fi-byt-squawks fi-icl-u2 fi-bsw-cyan fi-ctg-p8600 fi-glk-j4005 fi-gdg-551 == Build changes == * Linux: CI_DRM_5097 -> Patchwork_10751 CI_DRM_5097: c20dfc4f015dfd41246beb7d72338aa50543a5ef @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10751: 9575ab92ff18ad1be5660854d6caf46e8e77a516 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 9575ab92ff18 drm/i915/csr: fix spelling mistake "firmare" -> "firmware" == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10751/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm/i915/ringbuffer: Delay after EMIT_INVALIDATE for gen4/gen5
Quoting Ville Syrjälä (2018-11-07 15:04:24) > On Mon, Nov 05, 2018 at 09:43:05AM +, Chris Wilson wrote: > > Exercising the gpu reloc path strenuously revealed an issue where the > > updated relocations (from MI_STORE_DWORD_IMM) were not being observed > > upon execution. After some experiments with adding pipecontrols (a lot > > of pipecontrols (32) as gen4/5 do not have a bit to wait on earlier pipe > > controls or even the current on), it was discovered that we merely > > needed to delay the EMIT_INVALIDATE by several flushes. It is important > > to note that it is the EMIT_INVALIDATE as opposed to the EMIT_FLUSH that > > needs the delay as opposed to what one might first expect -- that the > > delay is required for the TLB invalidation to take effect (one presumes > > to purge any CS buffers) as opposed to a delay after flushing to ensure > > the writes have landed before triggering invalidation. > > > > Testcase: igt/gem_tiled_fence_blits > > Signed-off-by: Chris Wilson > > Cc: sta...@vger.kernel.org > > --- > > drivers/gpu/drm/i915/intel_ringbuffer.c | 38 +++-- > > 1 file changed, 36 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c > > b/drivers/gpu/drm/i915/intel_ringbuffer.c > > index b8a7a014d46d..87eebc13c0d8 100644 > > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c > > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c > > @@ -91,6 +91,7 @@ static int > > gen4_render_ring_flush(struct i915_request *rq, u32 mode) > > { > > u32 cmd, *cs; > > + int i; > > > > /* > >* read/write caches: > > @@ -127,12 +128,45 @@ gen4_render_ring_flush(struct i915_request *rq, u32 > > mode) > > cmd |= MI_INVALIDATE_ISP; > > } > > > > - cs = intel_ring_begin(rq, 2); > > + i = 2; > > + if (mode & EMIT_INVALIDATE) > > + i += 20; > > + > > + cs = intel_ring_begin(rq, i); > > if (IS_ERR(cs)) > > return PTR_ERR(cs); > > > > *cs++ = cmd; > > - *cs++ = MI_NOOP; > > + > > + /* > > + * A random delay to let the CS invalidate take effect? Without this > > + * delay, the GPU relocation path fails as the CS does not see > > + * the updated contents. Just as important, if we apply the flushes > > + * to the EMIT_FLUSH branch (i.e. immediately after the relocation > > + * write and before the invalidate on the next batch), the relocations > > + * still fail. This implies that is a delay following invalidation > > + * that is required to reset the caches as opposed to a delay to > > + * ensure the memory is written. > > + */ > > + if (mode & EMIT_INVALIDATE) { > > + *cs++ = GFX_OP_PIPE_CONTROL(4) | PIPE_CONTROL_QW_WRITE; > > + *cs++ = i915_ggtt_offset(rq->engine->scratch) | > > + PIPE_CONTROL_GLOBAL_GTT; > > + *cs++ = 0; > > + *cs++ = 0; > > + > > + for (i = 0; i < 12; i++) > > + *cs++ = MI_FLUSH; > > + > > + *cs++ = GFX_OP_PIPE_CONTROL(4) | PIPE_CONTROL_QW_WRITE; > > + *cs++ = i915_ggtt_offset(rq->engine->scratch) | > > + PIPE_CONTROL_GLOBAL_GTT; > > + *cs++ = 0; > > + *cs++ = 0; > > + } > > This smells a lot like the snb a/b w/a, except there the spec says to > use 8 STORE_DWORDS. Yeah, the similarity wasn't lost, except that w/a is to cover the coherency aspect of the writes not being flushed. This feels a bit fishier in that the experiments indicate it's an issue on the invalidation path as opposed to flushing the writes. And the other w/a to use umpteen pipecontrols to get around the lack of PIPE_CONTROL_FLUSH. > I suppose the choice of a specific command isn't > critical, and it's just a matter of stuffing the pipeline with something > that's takes long enough to let the TLB invalidate finish? Except the MI_FLUSH are more effective in fewer number than PIPE_CONTROLs. Probably because each one translates to a few pipe controls or something, quite heavy. > Anyways, patch itself seems as reasonable as one might expect for an > issue like this. As nasty as one would expect. For the record, we are not entirely out of danger. gem_exec_whisper continues to indicate a problem, but one step at a time. (I haven't yet found quite what's upsetting it yet, except if we do each batch synchronously and verify each one, it's happy.) -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 mm, drm/i915: Mark pinned shmemfs pages as unevictable (rev7)
== Series Details == Series: mm, drm/i915: Mark pinned shmemfs pages as unevictable (rev7) URL : https://patchwork.freedesktop.org/series/25337/ State : failure == Summary == = CI Bug Log - changes from CI_DRM_5096_full -> Patchwork_10741_full = == Summary - FAILURE == Serious unknown changes coming with Patchwork_10741_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10741_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10741_full: === IGT changes === Possible regressions igt@gem_cpu_reloc@full: shard-apl: PASS -> DMESG-WARN Warnings igt@kms_properties@plane-properties-atomic: shard-snb: PASS -> SKIP igt@pm_rc6_residency@rc6-accuracy: shard-kbl: SKIP -> PASS == Known issues == Here are the changes found in Patchwork_10741_full that come from known issues: === IGT changes === Issues hit igt@drv_selftest@mock_sanitycheck: shard-apl: PASS -> INCOMPLETE (fdo#103927) igt@gem_cpu_reloc@full: shard-skl: PASS -> INCOMPLETE (fdo#108073) igt@kms_busy@extended-modeset-hang-newfb-render-b: shard-skl: NOTRUN -> DMESG-WARN (fdo#107956) igt@kms_cursor_crc@cursor-256x256-suspend: shard-skl: PASS -> INCOMPLETE (fdo#104108) igt@kms_cursor_crc@cursor-256x85-sliding: shard-apl: PASS -> FAIL (fdo#103232) +2 igt@kms_cursor_legacy@cursorb-vs-flipb-toggle: shard-glk: PASS -> DMESG-WARN (fdo#105763, fdo#106538) igt@kms_flip@flip-vs-expired-vblank-interruptible: shard-skl: NOTRUN -> FAIL (fdo#105363) igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff: shard-glk: PASS -> FAIL (fdo#103167) +3 igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render: shard-skl: NOTRUN -> FAIL (fdo#103167) igt@kms_plane_alpha_blend@pipe-a-alpha-basic: shard-skl: NOTRUN -> FAIL (fdo#108145, fdo#107815) igt@kms_plane_alpha_blend@pipe-c-alpha-transparant-fb: shard-skl: NOTRUN -> FAIL (fdo#108145) +1 igt@pm_rpm@cursor: shard-skl: PASS -> INCOMPLETE (fdo#107807) igt@pm_rpm@gem-execbuf: shard-skl: PASS -> INCOMPLETE (fdo#107803, fdo#107807) igt@pm_rpm@pc8-residency: shard-skl: SKIP -> INCOMPLETE (fdo#107807) +1 Possible fixes igt@drv_suspend@shrink: shard-skl: INCOMPLETE (fdo#106886) -> PASS shard-glk: INCOMPLETE (fdo#103359, fdo#106886, k.org#198133) -> PASS igt@drv_suspend@sysfs-reader: shard-kbl: INCOMPLETE (fdo#103665) -> PASS igt@gem_ctx_isolation@vcs0-s3: shard-skl: INCOMPLETE (fdo#104108, fdo#107773) -> PASS igt@kms_color@pipe-a-ctm-max: shard-apl: FAIL (fdo#108147) -> PASS igt@kms_cursor_crc@cursor-64x21-onscreen: shard-apl: FAIL (fdo#103232) -> PASS +1 igt@kms_draw_crc@draw-method-xrgb2101010-blt-untiled: shard-skl: FAIL (fdo#103184) -> PASS igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-untiled: shard-skl: FAIL (fdo#103232, fdo#103184) -> PASS igt@kms_flip@2x-flip-vs-expired-vblank-interruptible: shard-hsw: FAIL (fdo#102887) -> PASS igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render: shard-skl: FAIL (fdo#105682) -> PASS igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt: shard-apl: FAIL (fdo#103167) -> PASS +2 igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-pwrite: shard-skl: FAIL (fdo#103167) -> PASS +1 igt@kms_plane_alpha_blend@pipe-c-coverage-7efc: shard-skl: FAIL (fdo#107815) -> PASS +1 igt@kms_setmode@basic: shard-kbl: FAIL (fdo#99912) -> PASS igt@pm_rpm@dpms-lpsp: shard-skl: INCOMPLETE (fdo#107807) -> PASS +2 igt@prime_busy@after-vebox: shard-snb: INCOMPLETE (fdo#105411) -> SKIP fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887 fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103184 https://bugs.freedesktop.org/show_bug.cgi?id=103184 fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232 fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359 fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#104108 https://bugs.freedesktop.org/show_bug.cgi?id=104108 fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
[Intel-gfx] [PATCH v6 1/2] drm/i915/skl: Rework MOCS tables to keep common part in a define
The MOCS tables are going to be very similar across platforms. To reduce the amount of copied code, this patch rips the common part and puts it into a definition valid for all gen9 platforms. v2: Made defines for or-ing flags. Renamed macros from MOCS_TABLE to MOCS_ENTRIES. (Joonas) Signed-off-by: Tomasz Lis Suggested-by: Lucas De Marchi Reviewed-by: Lucas De Marchi (v1) Cc: Joonas Lahtinen Cc: Chris Wilson Cc: Daniele Ceraolo Spurio Cc: Lucas De Marchi --- drivers/gpu/drm/i915/intel_mocs.c | 86 --- 1 file changed, 36 insertions(+), 50 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_mocs.c b/drivers/gpu/drm/i915/intel_mocs.c index 77e9871..8d08a7b 100644 --- a/drivers/gpu/drm/i915/intel_mocs.c +++ b/drivers/gpu/drm/i915/intel_mocs.c @@ -96,71 +96,57 @@ struct drm_i915_mocs_table { * may only be updated incrementally by adding entries at the * end. */ -static const struct drm_i915_mocs_entry skylake_mocs_table[] = { - [I915_MOCS_UNCACHED] = { - /* 0x0009 */ - .control_value = LE_CACHEABILITY(LE_UC) | - LE_TGT_CACHE(LE_TC_LLC_ELLC) | - LE_LRUM(0) | LE_AOM(0) | LE_RSC(0) | LE_SCC(0) | - LE_PFM(0) | LE_SCF(0), - - /* 0x0010 */ - .l3cc_value =L3_ESC(0) | L3_SCC(0) | L3_CACHEABILITY(L3_UC), - }, - [I915_MOCS_PTE] = { - /* 0x0038 */ - .control_value = LE_CACHEABILITY(LE_PAGETABLE) | - LE_TGT_CACHE(LE_TC_LLC_ELLC) | - LE_LRUM(3) | LE_AOM(0) | LE_RSC(0) | LE_SCC(0) | - LE_PFM(0) | LE_SCF(0), - /* 0x0030 */ - .l3cc_value =L3_ESC(0) | L3_SCC(0) | L3_CACHEABILITY(L3_WB), + +#define MOCS_CONTROL_VALUE(lecc, tc, lrum, daom, ersc, scc, pfm, scf) \ + (LE_CACHEABILITY(lecc) | LE_TGT_CACHE(tc) | \ + LE_LRUM(lrum) | LE_AOM(daom) | LE_RSC(ersc) | LE_SCC(scc) | \ + LE_PFM(pfm) | LE_SCF(scf)) + +#define MOCS_L3CC_VALUE(esc, scc, l3cc) \ + (L3_ESC(esc) | L3_SCC(scc) | L3_CACHEABILITY(l3cc)) + +#define GEN9_MOCS_ENTRIES \ + [I915_MOCS_UNCACHED] = { \ + /* 0x0009 */ \ + .control_value = MOCS_CONTROL_VALUE(LE_UC, LE_TC_LLC_ELLC, \ + 0, 0, 0, 0, 0, 0), \ + /* 0x0010 */ \ + .l3cc_value = MOCS_L3CC_VALUE(0, 0, L3_UC), \ + }, \ + [I915_MOCS_PTE] = { \ + /* 0x0038 */ \ + .control_value = MOCS_CONTROL_VALUE(LE_PAGETABLE, LE_TC_LLC_ELLC, \ + 3, 0, 0, 0, 0, 0), \ + /* 0x0030 */ \ + .l3cc_value = MOCS_L3CC_VALUE(0, 0, L3_WB), \ }, + +static const struct drm_i915_mocs_entry skylake_mocs_table[] = { + GEN9_MOCS_ENTRIES [I915_MOCS_CACHED] = { /* 0x003b */ - .control_value = LE_CACHEABILITY(LE_WB) | - LE_TGT_CACHE(LE_TC_LLC_ELLC) | - LE_LRUM(3) | LE_AOM(0) | LE_RSC(0) | LE_SCC(0) | - LE_PFM(0) | LE_SCF(0), + .control_value = MOCS_CONTROL_VALUE(LE_WB, LE_TC_LLC_ELLC, + 3, 0, 0, 0, 0, 0), /* 0x0030 */ - .l3cc_value = L3_ESC(0) | L3_SCC(0) | L3_CACHEABILITY(L3_WB), + .l3cc_value = MOCS_L3CC_VALUE(0, 0, L3_WB), }, }; /* NOTE: the LE_TGT_CACHE is not used on Broxton */ static const struct drm_i915_mocs_entry broxton_mocs_table[] = { - [I915_MOCS_UNCACHED] = { - /* 0x0009 */ - .control_value = LE_CACHEABILITY(LE_UC) | - LE_TGT_CACHE(LE_TC_LLC_ELLC) | - LE_LRUM(0) | LE_AOM(0) | LE_RSC(0) | LE_SCC(0) | - LE_PFM(0) | LE_SCF(0), - - /* 0x0010 */ - .l3cc_value =L3_ESC(0) | L3_SCC(0) | L3_CACHEABILITY(L3_UC), - }, - [I915_MOCS_PTE] = { - /* 0x0038 */ - .control_value = LE_CACHEABILITY(LE_PAGETABLE) | - LE_TGT_CACHE(LE_TC_LLC_ELLC) | - LE_LRUM(3) | LE_AOM(0) | LE_RSC(0) | LE_SCC(0) | - LE_PFM(0) | LE_SCF(0), - - /* 0x0030 */ - .l3cc_value =L3_ESC(0) | L3_SCC(0) | L3_CACHEABILITY(L3_WB), - }, + GEN9_MOCS_ENTRIES [I915_MOCS_CACHED] = { /* 0x0039 */ - .control_value = LE_CACHEABILITY(LE_UC) | - LE_TGT_CACHE(LE_TC_LLC_ELLC) | - LE_LRUM(3) | LE_AOM(0) | LE_RSC(0) | LE_SCC(0) | - LE_PFM(0) | LE_SCF(0), - + .control_value = MOCS_CONTROL_VALUE(LE_UC, LE_TC_LLC_ELLC, + 3, 0, 0, 0, 0, 0), /* 0x0030 */ - .l3cc_value =L3_ESC(0) | L3_SCC(0) | L3_CACHEABILITY(L3_WB), + .l3cc_value = MOCS_L3CC_VALUE(0, 0, L3_
[Intel-gfx] [PATCH v6 2/2] drm/i915/icl: Define MOCS table for Icelake
The table has been unified across OSes to minimize virtualization overhead. The MOCS table is now published as part of bspec, and versioned. Entries are supposed to never be modified, but new ones can be added. Adding entries increases table version. The patch includes version 1 entries. Meaning of each entry is now explained in bspec, and user mode clients are expected to know what each entry means. The 3 entries used for previous platforms are still compatible with their legacy definitions, but that is not guaranteed to be true for future platforms. v2: Fixed SCC values, improved commit comment (Daniele) v3: Improved MOCS table comment (Daniele) v4: Moved new entries below gen9 ones. Put common entries into definition to be used in multiple arrays. (Lucas) v5: Made defines for or-ing flags. Renamed macros from MOCS_TABLE to MOCS_ENTRIES. Switched LE_CoS to upper case. (Joonas) v6: Removed definitions of reserved entries. (Michal) Increased limit of entries sent to the hardware on gen11+. BSpec: 34007 BSpec: 560 Signed-off-by: Tomasz Lis Reviewed-by: Daniele Ceraolo Spurio (v4) Cc: Joonas Lahtinen Cc: Chris Wilson Cc: Mika Kuoppala Cc: Daniele Ceraolo Spurio Cc: Zhenyu Wang Cc: Zhi A Wang Cc: Anuj Phogat Cc: Adam Cetnerowski Cc: Piotr Rozenfeld Cc: Lucas De Marchi --- drivers/gpu/drm/i915/intel_mocs.c | 222 +- 1 file changed, 197 insertions(+), 25 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_mocs.c b/drivers/gpu/drm/i915/intel_mocs.c index 8d08a7b..4eb05c6 100644 --- a/drivers/gpu/drm/i915/intel_mocs.c +++ b/drivers/gpu/drm/i915/intel_mocs.c @@ -44,6 +44,8 @@ struct drm_i915_mocs_table { #define LE_SCC(value) ((value) << 8) #define LE_PFM(value) ((value) << 11) #define LE_SCF(value) ((value) << 14) +#define LE_COS(value) ((value) << 15) +#define LE_SSE(value) ((value) << 17) /* Defines for the tables (LNCFMOCS0 - LNCFMOCS31) - two entries per word */ #define L3_ESC(value) ((value) << 0) @@ -52,6 +54,10 @@ struct drm_i915_mocs_table { /* Helper defines */ #define GEN9_NUM_MOCS_ENTRIES 62 /* 62 out of 64 - 63 & 64 are reserved. */ +#define GEN11_NUM_MOCS_ENTRIES 64 /* 63-64 are reserved, but configured. */ + +#define NUM_MOCS_ENTRIES(i915) \ + (INTEL_GEN(i915) < 11 ? GEN9_NUM_MOCS_ENTRIES : GEN11_NUM_MOCS_ENTRIES) /* (e)LLC caching options */ #define LE_PAGETABLE 0 @@ -80,21 +86,21 @@ struct drm_i915_mocs_table { * LNCFCMOCS0 - LNCFCMOCS32 registers. * * These tables are intended to be kept reasonably consistent across - * platforms. However some of the fields are not applicable to all of - * them. + * HW platforms, and for ICL+, be identical across OSes. To achieve + * that, for Icelake and above, list of entries is published as part + * of bspec. * * Entries not part of the following tables are undefined as far as - * userspace is concerned and shouldn't be relied upon. For the time - * being they will be implicitly initialized to the strictest caching - * configuration (uncached) to guarantee forwards compatibility with - * userspace programs written against more recent kernels providing - * additional MOCS entries. + * userspace is concerned and shouldn't be relied upon. + * + * The last two entries are reserved by the hardware. For ICL+ they + * should be initialized according to bspec and never used, for older + * platforms they should never be written to. * - * NOTE: These tables MUST start with being uncached and the length - * MUST be less than 63 as the last two registers are reserved - * by the hardware. These tables are part of the kernel ABI and - * may only be updated incrementally by adding entries at the - * end. + * NOTE: These tables are part of bspec and defined as part of hardware + * interface for ICL+. For older platforms, they are part of kernel + * ABI. It is expected that existing entries will remain constant + * and the tables will only be updated by adding new entries. */ #define MOCS_CONTROL_VALUE(lecc, tc, lrum, daom, ersc, scc, pfm, scf) \ @@ -147,6 +153,167 @@ static const struct drm_i915_mocs_entry broxton_mocs_table[] = { #undef MOCS_CONTROL_VALUE #undef MOCS_L3CC_VALUE +#define MOCS_CONTROL_VALUE(lecc, tc, lrum, daom, ersc, scc, pfm, scf, cos, sse) \ + (LE_CACHEABILITY(lecc) | LE_TGT_CACHE(tc) | \ + LE_LRUM(lrum) | LE_AOM(daom) | LE_RSC(ersc) | LE_SCC(scc) | \ + LE_PFM(pfm) | LE_SCF(scf) | LE_COS(cos) | LE_SSE(sse)) + +#define MOCS_L3CC_VALUE(esc, scc, l3cc) \ + (L3_ESC(esc) | L3_SCC(scc) | L3_CACHEABILITY(l3cc)) + +#define GEN11_MOCS_ENTRIES \ + [0] = { \ + /* Base - Uncached (Deprecated) */ \ + .control_value = MOCS_CONTROL_VALUE(LE_UC, LE_TC_LLC, \ + 0, 0, 0, 0, 0, 0, 0, 0), \ + .l3cc_value = MOCS_L3CC_VALUE(0, 0, L3_UC), \ + }, \ + [1]
[Intel-gfx] [PATCH 02/13] kthread: finer-grained lockdep/cross-release completion
When cross release was originally merged we've hit a bunch of lockdep splats around the 2 kthread completions. In all cases they are because totally independent uses of kthread are mixed up by lockdep into the same locking class, creating artificial deadlocks. Fix this by converting kthread code in the same way as e.g. alloc_workqueue already works: Use macros for the public api so we can have a callsite specific lockdep key, then pass that through the entire callchain. Due to the many entry points this is slightly tedious. Cc: Tvrtko Ursulin Cc: Marta Lofstedt Cc: Byungchul Park Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Tejun Heo Cc: Kees Cook Cc: Thomas Gleixner Cc: Shaohua Li Cc: Andrew Morton Cc: Jens Axboe Cc: Daniel Vetter Cc: Greg Kroah-Hartman Cc: Jonathan Corbet Cc: Oleg Nesterov Cc: "Steven Rostedt (VMware)" Cc: Snild Dolkow References: https://bugs.freedesktop.org/show_bug.cgi?id=103950 Signed-off-by: Daniel Vetter -- Peter acked the original patch but then cross-release got removed before this one here landed. -Daniel --- include/linux/kthread.h | 48 - kernel/kthread.c| 68 - 2 files changed, 88 insertions(+), 28 deletions(-) diff --git a/include/linux/kthread.h b/include/linux/kthread.h index c1961761311d..7a9463f0be5c 100644 --- a/include/linux/kthread.h +++ b/include/linux/kthread.h @@ -6,10 +6,12 @@ #include #include -__printf(4, 5) -struct task_struct *kthread_create_on_node(int (*threadfn)(void *data), +__printf(6, 7) +struct task_struct *_kthread_create_on_node(int (*threadfn)(void *data), void *data, int node, + struct lock_class_key *exited_key, + struct lock_class_key *parked_key, const char namefmt[], ...); /** @@ -25,12 +27,27 @@ struct task_struct *kthread_create_on_node(int (*threadfn)(void *data), */ #define kthread_create(threadfn, data, namefmt, arg...) \ kthread_create_on_node(threadfn, data, NUMA_NO_NODE, namefmt, ##arg) +#define kthread_create_on_node(threadfn, data, node, namefmt, arg...) \ +({ \ + static struct lock_class_key __exited_key, __parked_key;\ + _kthread_create_on_node(threadfn, data, node, &__exited_key,\ + &__parked_key, namefmt, ##arg); \ +}) -struct task_struct *kthread_create_on_cpu(int (*threadfn)(void *data), +struct task_struct *_kthread_create_on_cpu(int (*threadfn)(void *data), void *data, unsigned int cpu, + struct lock_class_key *exited_key, + struct lock_class_key *parked_key, const char *namefmt); +#define kthread_create_on_cpu(threadfn, data, cpu, namefmt)\ +({ \ + static struct lock_class_key __exited_key, __parked_key;\ + _kthread_create_on_cpu(threadfn, data, cpu, &__exited_key,\ + &__parked_key, namefmt); \ +}) + /** * kthread_run - create and wake a thread. @@ -171,13 +188,30 @@ extern void __kthread_init_worker(struct kthread_worker *worker, int kthread_worker_fn(void *worker_ptr); -__printf(2, 3) +__printf(4, 5) struct kthread_worker * -kthread_create_worker(unsigned int flags, const char namefmt[], ...); +_kthread_create_worker(unsigned int flags, + struct lock_class_key *exited_key, + struct lock_class_key *parked_key, + const char namefmt[], ...); +#define kthread_create_worker(flags, namefmt...) \ +({ \ + static struct lock_class_key __exited_key, __parked_key;\ + _kthread_create_worker(flags, &__exited_key, &__parked_key, \ + ##namefmt); \ +}) -__printf(3, 4) struct kthread_worker * -kthread_create_worker_on_cpu(int cpu, unsigned int flags, +__printf(5, 6) struct kthread_worker * +_kthread_create_worker_on_cpu(int cpu, unsigned int flags, + struct lock_class_key *exited_key, + struct lock_class_key *parked_key, const char namefmt[], ...); +#define kthread_create_worker_on_cpu(cpu, flags, namefmt...) \ +({ \ + static struct lock_class_key __exited_key, __parked_key;\ + _kthread_create_worker_on_cpu(cpu, flags, &__exited_key, &_
[Intel-gfx] [PATCH 01/13] locking/lockdep: restore cross-release checks
This reverts the following commits: commit 527187d28569 ("locking/lockdep: Remove cross-release leftovers") commit dba04eb76df9 ("locking/Documentation: Remove stale crossrelease_fullstack parameter") commit e966eaeeb623 ("locking/lockdep: Remove the cross-release locking checks") commit 44318d5b07be ("locking/lockdep: Remove add_chain_cache_classes()") Since the first two are just fixups for the cross-release removal I figured I'll squash them all into one. v2: Revert more cleanup patches. Cc: Byungchul Park Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-ker...@vger.kernel.org Cc: Ingo Molnar Cc: Will Deacon Cc: Jonathan Corbet Cc: Bjorn Helgaas Cc: Greg Kroah-Hartman Cc: Marc Zyngier Cc: Kai-Heng Feng Cc: Thymo van Beers Cc: Jiri Kosina Cc: Konrad Rzeszutek Wilk Cc: Logan Gunthorpe Cc: David Rientjes Cc: Kate Stewart Cc: Philippe Ombredanne Cc: Daniel Vetter Cc: "Joel Fernandes (Google)" Cc: "Steven Rostedt (VMware)" Cc: David Howells Cc: Namhyung Kim Cc: Andrew Morton Cc: Masahiro Yamada Cc: Randy Dunlap Cc: Arnd Bergmann Cc: Waiman Long Cc: Masami Hiramatsu Cc: Yury Norov Cc: Mikulas Patocka Cc: Robin Murphy Cc: Andy Shevchenko Signed-off-by: Daniel Vetter --- .../admin-guide/kernel-parameters.txt | 3 + Documentation/locking/crossrelease.txt| 874 ++ include/linux/completion.h| 46 + include/linux/irqflags.h | 4 + include/linux/lockdep.h | 127 +++ include/linux/sched.h | 11 + kernel/locking/lockdep.c | 722 ++- kernel/sched/completion.c | 5 + lib/Kconfig.debug | 33 + 9 files changed, 1790 insertions(+), 35 deletions(-) create mode 100644 Documentation/locking/crossrelease.txt diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 81d1d5a74728..4c85bd20ac5e 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -724,6 +724,9 @@ It will be ignored when crashkernel=X,high is not used or memory reserved is below 4G. + crossrelease_fullstack + [KNL] Allow to record full stack trace in cross-release + cryptomgr.notests [KNL] Disable crypto self-tests diff --git a/Documentation/locking/crossrelease.txt b/Documentation/locking/crossrelease.txt new file mode 100644 index ..bdf1423d5f99 --- /dev/null +++ b/Documentation/locking/crossrelease.txt @@ -0,0 +1,874 @@ +Crossrelease + + +Started by Byungchul Park + +Contents: + + (*) Background + + - What causes deadlock + - How lockdep works + + (*) Limitation + + - Limit lockdep + - Pros from the limitation + - Cons from the limitation + - Relax the limitation + + (*) Crossrelease + + - Introduce crossrelease + - Introduce commit + + (*) Implementation + + - Data structures + - How crossrelease works + + (*) Optimizations + + - Avoid duplication + - Lockless for hot paths + + (*) APPENDIX A: What lockdep does to work aggresively + + (*) APPENDIX B: How to avoid adding false dependencies + + +== +Background +== + +What causes deadlock + + +A deadlock occurs when a context is waiting for an event to happen, +which is impossible because another (or the) context who can trigger the +event is also waiting for another (or the) event to happen, which is +also impossible due to the same reason. + +For example: + + A context going to trigger event C is waiting for event A to happen. + A context going to trigger event A is waiting for event B to happen. + A context going to trigger event B is waiting for event C to happen. + +A deadlock occurs when these three wait operations run at the same time, +because event C cannot be triggered if event A does not happen, which in +turn cannot be triggered if event B does not happen, which in turn +cannot be triggered if event C does not happen. After all, no event can +be triggered since any of them never meets its condition to wake up. + +A dependency might exist between two waiters and a deadlock might happen +due to an incorrect releationship between dependencies. Thus, we must +define what a dependency is first. A dependency exists between them if: + + 1. There are two waiters waiting for each event at a given time. + 2. The only way to wake up each waiter is to trigger its event. + 3. Whether one can be woken up depends on whether the other can. + +Each wait in the example creates its dependency like: + + Event C depends on event A. + Event A depends on event B. + Event B depends on event C. + + NOTE: Precisely speaking, a dependency is one between whether a + waiter for an event can be woken up
[Intel-gfx] [PATCH 08/13] dma-fence: cross-release annotations
dma-fence is a completion on steriods, which also allows hardware to directly sync work among each another. It's supposed to be deadlock free, so let's try to make sure that holds at least for the cpu-only interactions and waits. It's a bit much #ifdef, but I figured for the single case it's not worth it to pull it all out. Also, the single global lockdep map is intentional: dma_fences are supposed to be shared, we need all drivers to be compatible to each another in their locking hierarchy. v2: - handle #idef mess cleaner - also annotate dma_fence_signal() v3: - Add a dma_fence_might_wait() function to annotate fastpaths - Put it all into headers for other code to use Cc: Sumit Semwal Cc: Gustavo Padovan Cc: linux-me...@vger.kernel.org Cc: linaro-mm-...@lists.linaro.org Signed-off-by: Daniel Vetter --- drivers/dma-buf/dma-fence.c | 14 ++ include/linux/dma-fence.h | 28 2 files changed, 42 insertions(+) diff --git a/drivers/dma-buf/dma-fence.c b/drivers/dma-buf/dma-fence.c index 1551ca7df394..7d56d8b48624 100644 --- a/drivers/dma-buf/dma-fence.c +++ b/drivers/dma-buf/dma-fence.c @@ -30,6 +30,13 @@ EXPORT_TRACEPOINT_SYMBOL(dma_fence_emit); EXPORT_TRACEPOINT_SYMBOL(dma_fence_enable_signal); + +#ifdef CONFIG_LOCKDEP_CROSSRELEASE +struct lockdep_map_cross dma_fence_wait_map = + STATIC_CROSS_LOCKDEP_MAP_INIT("dma_fence_signal", &dma_fence_wait_map); +EXPORT_SYMBOL(dma_fence_wait_map); +#endif + /* * fence context counter: each execution context should have its own * fence context, this allows checking if fences belong to the same @@ -106,6 +113,8 @@ int dma_fence_signal_locked(struct dma_fence *fence) lockdep_assert_held(fence->lock); + dma_fence_wait_release_commit(); + if (WARN_ON(!fence)) return -EINVAL; @@ -153,6 +162,8 @@ int dma_fence_signal(struct dma_fence *fence) if (test_and_set_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) return -EINVAL; + dma_fence_wait_release_commit(); + fence->timestamp = ktime_get(); set_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT, &fence->flags); trace_dma_fence_signaled(fence); @@ -197,12 +208,15 @@ dma_fence_wait_timeout(struct dma_fence *fence, bool intr, signed long timeout) if (WARN_ON(timeout < 0)) return -EINVAL; + dma_fence_wait_acquire(); trace_dma_fence_wait_start(fence); if (fence->ops->wait) ret = fence->ops->wait(fence, intr, timeout); else ret = dma_fence_default_wait(fence, intr, timeout); trace_dma_fence_wait_end(fence); + dma_fence_wait_release(); + return ret; } EXPORT_SYMBOL(dma_fence_wait_timeout); diff --git a/include/linux/dma-fence.h b/include/linux/dma-fence.h index 02dba8cd033d..8a045334a207 100644 --- a/include/linux/dma-fence.h +++ b/include/linux/dma-fence.h @@ -34,6 +34,34 @@ struct dma_fence; struct dma_fence_ops; struct dma_fence_cb; +#ifdef CONFIG_LOCKDEP_CROSSRELEASE +#include +extern struct lockdep_map_cross dma_fence_wait_map; + +static inline void dma_fence_wait_acquire(void) +{ + lock_acquire_exclusive(&dma_fence_wait_map.map, 0, 0, NULL, _RET_IP_); +} +static inline void dma_fence_wait_release(void) +{ + lock_release(&dma_fence_wait_map.map, 0, _RET_IP_); +} +static inline void dma_fence_wait_release_commit(void) +{ + lock_commit_crosslock(&dma_fence_wait_map.map); +} +#else +static inline void dma_fence_wait_acquire(void) {} +static inline void dma_fence_wait_release(void) {} +static inline void dma_fence_wait_release_commit(void) {} +#endif + +static inline void dma_fence_might_wait(void) +{ + dma_fence_wait_acquire(); + dma_fence_wait_release(); +} + /** * struct dma_fence - software synchronization primitive * @refcount: refcount for this fence -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 04/13] kernel/lockdep: Make cross-release a config option
cross-release annotations will need some serious amounts of vetting before they can be enabled by default, or we'll just annoy everyone. Instead split it into a separate option, which for now stays disabled by default even if you enable overall lockdep. Cc: Andrew Morton Cc: Ingo Molnar Cc: Masahiro Yamada Cc: Arnd Bergmann Cc: Randy Dunlap Cc: Daniel Vetter Cc: Waiman Long Cc: Masami Hiramatsu Cc: Yury Norov Cc: Mikulas Patocka Cc: Robin Murphy Cc: Andy Shevchenko Signed-off-by: Daniel Vetter --- lib/Kconfig.debug | 24 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index f3d7bff6fa3c..6074fa3463ac 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -1055,8 +1055,6 @@ config PROVE_LOCKING select DEBUG_RWSEMS if RWSEM_SPIN_ON_OWNER select DEBUG_WW_MUTEX_SLOWPATH select DEBUG_LOCK_ALLOC - select LOCKDEP_CROSSRELEASE - select LOCKDEP_COMPLETIONS select TRACE_IRQFLAGS default n help @@ -1093,6 +1091,18 @@ config PROVE_LOCKING For more details, see Documentation/locking/lockdep-design.txt. +config LOCKDEP_CROSSRELEASE + bool "Enable cross-release checking" + depends on PROVE_LOCKING + select LOCKDEP_COMPLETIONS + help +This makes lockdep work for crosslock which is a lock allowed to +be released in a different context from the acquisition context. +Normally a lock must be released in the context acquiring the lock. +However, relexing this constraint helps synchronization primitives +such as page locks or completions can use the lock correctness +detector, lockdep. + config LOCK_STAT bool "Lock usage statistics" depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT @@ -1189,16 +1199,6 @@ config LOCKDEP config LOCKDEP_SMALL bool -config LOCKDEP_CROSSRELEASE - bool - help -This makes lockdep work for crosslock which is a lock allowed to -be released in a different context from the acquisition context. -Normally a lock must be released in the context acquiring the lock. -However, relexing this constraint helps synchronization primitives -such as page locks or completions can use the lock correctness -detector, lockdep. - config LOCKDEP_COMPLETIONS bool help -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 10/13] drm/i915: Annotate dma_fence waits
i915_request_wait is simply our i915-optimized version of dma_fence_wait. They both use the exact same code. To help lockdep discovering all the dependencies, annotate it. v2: We do opportunistic retiring of dma-fences while holding struct_mutex. The recursion this causes is intentional, and we do have other paths which (hopefully) do depend upon the struct_mutex. 2nd option to fix these annotations (and probably even better) would be creating a dma_fence_signal_opportunistic, which doesnt have the lockdep annotations. But that also doesn't guarantee that we'll actually manage to signal fences without depending upon struct_mutex somewhere, so might as well go with this trick here. Aside, for non-i915 people: struct_mutex is our bkl. The locking rules are ... complicated. Cc: Jani Nikula Cc: Joonas Lahtinen Cc: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org Signed-off-by: Daniel Vetter --- drivers/gpu/drm/i915/i915_request.c | 21 - 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c index 71107540581d..0f800b8967a4 100644 --- a/drivers/gpu/drm/i915/i915_request.c +++ b/drivers/gpu/drm/i915/i915_request.c @@ -30,6 +30,10 @@ #include "i915_drv.h" +static long __i915_request_wait(struct i915_request *rq, + unsigned int flags, + long timeout); + static const char *i915_fence_get_driver_name(struct dma_fence *fence) { return "i915"; @@ -66,7 +70,7 @@ static signed long i915_fence_wait(struct dma_fence *fence, bool interruptible, signed long timeout) { - return i915_request_wait(to_request(fence), interruptible, timeout); + return __i915_request_wait(to_request(fence), interruptible, timeout); } static void i915_fence_release(struct dma_fence *fence) @@ -1201,6 +1205,21 @@ static bool __i915_wait_request_check_and_reset(struct i915_request *request) long i915_request_wait(struct i915_request *rq, unsigned int flags, long timeout) +{ + long ret; + + if (!lockdep_is_held(&rq->i915->drm.struct_mutex)) + dma_fence_wait_acquire(); + ret = __i915_request_wait(rq, flags, timeout); + if (!lockdep_is_held(&rq->i915->drm.struct_mutex)) + dma_fence_wait_release(); + + return ret; +} + +static long __i915_request_wait(struct i915_request *rq, + unsigned int flags, + long timeout) { const int state = flags & I915_WAIT_INTERRUPTIBLE ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE; -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 06/13] mm, notifier: Catch sleeping/blocking for !blockable
We need to make sure implementations don't cheat and don't have a possible schedule/blocking point deeply burried where review can't catch it. I'm not sure whether this is the best way to make sure all the might_sleep() callsites trigger, and it's a bit ugly in the code flow. But it gets the job done. Cc: Andrew Morton Cc: Michal Hocko Cc: David Rientjes Cc: "Christian König" Cc: Daniel Vetter Cc: "Jérôme Glisse" Cc: linux...@kvack.org Signed-off-by: Daniel Vetter --- mm/mmu_notifier.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c index 59e102589a25..4d282cfb296e 100644 --- a/mm/mmu_notifier.c +++ b/mm/mmu_notifier.c @@ -185,7 +185,13 @@ int __mmu_notifier_invalidate_range_start(struct mm_struct *mm, id = srcu_read_lock(&srcu); hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list, hlist) { if (mn->ops->invalidate_range_start) { - int _ret = mn->ops->invalidate_range_start(mn, mm, start, end, blockable); + int _ret; + + if (IS_ENABLED(CONFIG_DEBUG_ATOMIC_SLEEP) && !blockable) + preempt_disable(); + _ret = mn->ops->invalidate_range_start(mn, mm, start, end, blockable); + if (IS_ENABLED(CONFIG_DEBUG_ATOMIC_SLEEP) && !blockable) + preempt_enable(); if (_ret) { pr_info("%pS callback failed with %d in %sblockable context.\n", mn->ops->invalidate_range_start, _ret, -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 09/13] reservation: Annotate dma_fence waits
reservations have an optimized fastpath that bypasses dma_fence_wait(), make sure we still catch all dependencies in lockdep. To avoid lockdep complaining about recursion on the fake dma_fence_wait lock we use the dma_fence_might_sleep annotation. Cc: Sumit Semwal Cc: linux-me...@vger.kernel.org Cc: linaro-mm-...@lists.linaro.org Signed-off-by: Daniel Vetter --- drivers/dma-buf/reservation.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/dma-buf/reservation.c b/drivers/dma-buf/reservation.c index c1618335ca99..599b88c75cd5 100644 --- a/drivers/dma-buf/reservation.c +++ b/drivers/dma-buf/reservation.c @@ -429,6 +429,8 @@ long reservation_object_wait_timeout_rcu(struct reservation_object *obj, long ret = timeout ? timeout : 1; int i; + dma_fence_might_wait(); + retry: shared_count = 0; seq = read_seqcount_begin(&obj->seq); -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 12/13] HAX FOR CI: Enable cross-release
Only way to convince our CI to enable stuff that's new and defaulting to off. Obviously not for merging. Signed-off-by: Daniel Vetter --- lib/Kconfig.debug | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 6074fa3463ac..deba9af0f418 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -1095,6 +1095,7 @@ config LOCKDEP_CROSSRELEASE bool "Enable cross-release checking" depends on PROVE_LOCKING select LOCKDEP_COMPLETIONS + default y help This makes lockdep work for crosslock which is a lock allowed to be released in a different context from the acquisition context. -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 05/13] mm: Check if mmu notifier callbacks are allowed to fail
Just a bit of paranoia, since if we start pushing this deep into callchains it's hard to spot all places where an mmu notifier implementation might fail when it's not allowed to. Cc: Andrew Morton Cc: Michal Hocko Cc: "Christian König" Cc: David Rientjes Cc: Daniel Vetter Cc: "Jérôme Glisse" Cc: linux...@kvack.org Cc: Paolo Bonzini Signed-off-by: Daniel Vetter --- mm/mmu_notifier.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c index 5119ff846769..59e102589a25 100644 --- a/mm/mmu_notifier.c +++ b/mm/mmu_notifier.c @@ -190,6 +190,8 @@ int __mmu_notifier_invalidate_range_start(struct mm_struct *mm, pr_info("%pS callback failed with %d in %sblockable context.\n", mn->ops->invalidate_range_start, _ret, !blockable ? "non-" : ""); + WARN(blockable,"%pS callback failure not allowed\n", +mn->ops->invalidate_range_start); ret = _ret; } } -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 07/13] mm, notifier: Add a lockdep map for invalidate_range_start
This is a similar idea to the fs_reclaim fake lockdep lock. It's fairly easy to provoke a specific notifier to be run on a specific range: Just prep it, and then munmap() it. A bit harder, but still doable, is to provoke the mmu notifiers for all the various callchains that might lead to them. But both at the same time is really hard to reliable hit, especially when you want to exercise paths like direct reclaim or compaction, where it's not easy to control what exactly will be unmapped. By introducing a lockdep map to tie them all together we allow lockdep to see a lot more dependencies, without having to actually hit them in a single challchain while testing. Aside: Since I typed this to test i915 mmu notifiers I've only rolled this out for the invaliate_range_start callback. If there's interest, we should probably roll this out to all of them. But my undestanding of core mm is seriously lacking, and I'm not clear on whether we need a lockdep map for each callback, or whether some can be shared. Cc: Andrew Morton Cc: David Rientjes Cc: "Jérôme Glisse" Cc: Michal Hocko Cc: "Christian König" Cc: Greg Kroah-Hartman Cc: Daniel Vetter Cc: Mike Rapoport Cc: linux...@kvack.org Signed-off-by: Daniel Vetter --- include/linux/mmu_notifier.h | 7 +++ mm/mmu_notifier.c| 7 +++ 2 files changed, 14 insertions(+) diff --git a/include/linux/mmu_notifier.h b/include/linux/mmu_notifier.h index 9893a6432adf..a39ba218dbbe 100644 --- a/include/linux/mmu_notifier.h +++ b/include/linux/mmu_notifier.h @@ -12,6 +12,10 @@ struct mmu_notifier_ops; #ifdef CONFIG_MMU_NOTIFIER +#ifdef CONFIG_LOCKDEP +extern struct lockdep_map __mmu_notifier_invalidate_range_start_map; +#endif + /* * The mmu notifier_mm structure is allocated and installed in * mm->mmu_notifier_mm inside the mm_take_all_locks() protected @@ -267,8 +271,11 @@ static inline void mmu_notifier_change_pte(struct mm_struct *mm, static inline void mmu_notifier_invalidate_range_start(struct mm_struct *mm, unsigned long start, unsigned long end) { + mutex_acquire(&__mmu_notifier_invalidate_range_start_map, 0, 0, + _RET_IP_); if (mm_has_notifiers(mm)) __mmu_notifier_invalidate_range_start(mm, start, end, true); + mutex_release(&__mmu_notifier_invalidate_range_start_map, 1, _RET_IP_); } static inline int mmu_notifier_invalidate_range_start_nonblock(struct mm_struct *mm, diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c index 4d282cfb296e..c6e797927376 100644 --- a/mm/mmu_notifier.c +++ b/mm/mmu_notifier.c @@ -23,6 +23,13 @@ /* global SRCU for all MMs */ DEFINE_STATIC_SRCU(srcu); +#ifdef CONFIG_LOCKDEP +struct lockdep_map __mmu_notifier_invalidate_range_start_map = { + .name = "mmu_notifier_invalidate_range_start" +}; +EXPORT_SYMBOL_GPL(__mmu_notifier_invalidate_range_start_map); +#endif + /* * This function allows mmu_notifier::release callback to delay a call to * a function that will free appropriate resources. The function must be -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 13/13] Revert "locking/lockdep, cpu/hotplug: Annotate AP thread"
This reverts commit cb92173d1f0474784c6171a9d3fdbbca0ee53554. This commit tries to shut up lockdep complaining about a lockdep_assert_held check in the AP cpuhp bringup threads, while the lock is actually held by the BP thread. Which is all kinda correct, since BP does wait for all the AP threads to finish before it releases the cpuhp locks, through a completion. The only problem with this somewhat fake annotion is that cross-release sees through the fog, and rightly complains that doing this for real would totally deadlock. One way to fix this would be to check that anyone is currently holding the lock, and not just the current thread. But I'm not sure that's a good option really. Hence just revert for now, which will result in a lockdep_assert_held splat per non-boot cpu at boot-up (and anytime you hotplug a cpu), but at least lockdep keeps working. Signed-off-by: Daniel Vetter Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Konrad Rzeszutek Wilk Cc: Josh Poimboeuf Cc: "Peter Zijlstra (Intel)" Cc: Mukesh Ojha Cc: Jiri Kosina Cc: Peter Zijlstra Cc: Lai Jiangshan Cc: Daniel Vetter Cc: Arnd Bergmann --- kernel/cpu.c | 28 1 file changed, 28 deletions(-) diff --git a/kernel/cpu.c b/kernel/cpu.c index 3c7f3b4c453c..5ff05c284425 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -315,16 +315,6 @@ void lockdep_assert_cpus_held(void) percpu_rwsem_assert_held(&cpu_hotplug_lock); } -static void lockdep_acquire_cpus_lock(void) -{ - rwsem_acquire(&cpu_hotplug_lock.rw_sem.dep_map, 0, 0, _THIS_IP_); -} - -static void lockdep_release_cpus_lock(void) -{ - rwsem_release(&cpu_hotplug_lock.rw_sem.dep_map, 1, _THIS_IP_); -} - /* * Wait for currently running CPU hotplug operations to complete (if any) and * disable future CPU hotplug (from sysfs). The 'cpu_add_remove_lock' protects @@ -354,17 +344,6 @@ void cpu_hotplug_enable(void) cpu_maps_update_done(); } EXPORT_SYMBOL_GPL(cpu_hotplug_enable); - -#else - -static void lockdep_acquire_cpus_lock(void) -{ -} - -static void lockdep_release_cpus_lock(void) -{ -} - #endif /* CONFIG_HOTPLUG_CPU */ #ifdef CONFIG_HOTPLUG_SMT @@ -638,12 +617,6 @@ static void cpuhp_thread_fun(unsigned int cpu) */ smp_mb(); - /* -* The BP holds the hotplug lock, but we're now running on the AP, -* ensure that anybody asserting the lock is held, will actually find -* it so. -*/ - lockdep_acquire_cpus_lock(); cpuhp_lock_acquire(bringup); if (st->single) { @@ -689,7 +662,6 @@ static void cpuhp_thread_fun(unsigned int cpu) } cpuhp_lock_release(bringup); - lockdep_release_cpus_lock(); if (!st->should_run) complete_ap_thread(st, bringup); -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 11/13] drm/i915: annotate intel_atomic_commit_fence_wait
In i915 we also have i915_sw_fence, as some kind of super fence. Since those include dma-fences (it's the main use really, aside from chaining them for the scheduler) they're relevant for any lockdep cycles involving dma_fence. But i915_sw_fence is also really tough to properly annonate: - Most of the use (all of it in the scheduler) is entirely driven by callbacks. That creates dependency chains, but for all practical purposes we could treat that as part of the hw magic that executes requests for us. Eventually a dma_fence_signal() comes out of that, which we do annotate. - For dma-fences we only annotate cpu waits, and don't follow any of the chains going through the hardware. Since dma_fence are supposed to be ordered an always complete that should be good enough, as long as we don't accidentally deadlock on the cpu side. So treating i915_sw_fence as part of the hw magic shouldn't reduce our deadlock coverage, as long as i915_sw_fence itself doesn't deadlock. And there's lots of debug checks for that already. - There's one exception: intel_atomic_commit_fence_wait() is the only cpu wait on a i915_sw_fence we have. That one we should annotate, and annotate should be able to teach lockdep about our gpu reset vs modeset locking inversion. But in reality this is a dma-fence wait, and it using i915_sw_fence is really just an implementation detail. All other kms drivers use drm_atomic_helper_wait_for_fences() instead. - There is a i915_sw_fence_wait for normal cpu waits (the one in the modeset code is open-coded because it also waits for gpu reset wakups), but that's only used for selftests. So the simplest solution for annotating i915_sw_fence is therefore to annotate intel_atomic_commit_fence() as a dma_fence wait. Cc: Jani Nikula Cc: Joonas Lahtinen Cc: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org Signed-off-by: Daniel Vetter --- drivers/gpu/drm/i915/intel_display.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index bbf8ca21a7a2..cf9240625ae3 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -12747,6 +12747,7 @@ static void intel_atomic_commit_fence_wait(struct intel_atomic_state *intel_stat struct wait_queue_entry wait_fence, wait_reset; struct drm_i915_private *dev_priv = to_i915(intel_state->base.dev); + dma_fence_wait_acquire(); init_wait_entry(&wait_fence, 0); init_wait_entry(&wait_reset, 0); for (;;) { @@ -12764,6 +12765,7 @@ static void intel_atomic_commit_fence_wait(struct intel_atomic_state *intel_stat } finish_wait(&intel_state->commit_ready.wait, &wait_fence); finish_wait(&dev_priv->gpu_error.wait_queue, &wait_reset); + dma_fence_wait_release(); } static void intel_atomic_cleanup_work(struct work_struct *work) -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 03/13] lockdep: Remove GFP_NOLOCKDEP annotation
This was originally added in 7e7844226f10 ("lockdep: allow to disable reclaim lockup detection") but a git log -G "GFP_NOLOCKDEP" indicates it was never used. Cc: Andrew Morton Cc: Vlastimil Babka Cc: Michal Hocko Cc: Mel Gorman Cc: Daniel Vetter Cc: "Levin, Alexander (Sasha Levin)" Cc: Mike Rapoport Cc: Huaisheng Ye Cc: Pavel Tatashin Cc: Aaron Lu Cc: Oscar Salvador Cc: Joonsoo Kim Cc: linux...@kvack.org Cc: Dave Chinner Cc: Peter Zijlstra Cc: Shakeel Butt Signed-off-by: Daniel Vetter --- include/linux/gfp.h | 10 +- mm/page_alloc.c | 3 --- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 76f8db0b0e71..ea76fcf320ec 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -39,11 +39,6 @@ struct vm_area_struct; #define ___GFP_ACCOUNT 0x10u #define ___GFP_DIRECT_RECLAIM 0x20u #define ___GFP_KSWAPD_RECLAIM 0x40u -#ifdef CONFIG_LOCKDEP -#define ___GFP_NOLOCKDEP 0x80u -#else -#define ___GFP_NOLOCKDEP 0 -#endif /* If the above are modified, __GFP_BITS_SHIFT may need updating */ /* @@ -213,11 +208,8 @@ struct vm_area_struct; #define __GFP_COMP ((__force gfp_t)___GFP_COMP) #define __GFP_ZERO ((__force gfp_t)___GFP_ZERO) -/* Disable lockdep for GFP context tracking */ -#define __GFP_NOLOCKDEP ((__force gfp_t)___GFP_NOLOCKDEP) - /* Room for N __GFP_FOO bits */ -#define __GFP_BITS_SHIFT (23 + IS_ENABLED(CONFIG_LOCKDEP)) +#define __GFP_BITS_SHIFT 23 #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) /** diff --git a/mm/page_alloc.c b/mm/page_alloc.c index a919ba5cb3c8..62c9cd7eae1a 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -3719,9 +3719,6 @@ static bool __need_fs_reclaim(gfp_t gfp_mask) if (!(gfp_mask & __GFP_FS)) return false; - if (gfp_mask & __GFP_NOLOCKDEP) - return false; - return true; } -- 2.19.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH][drm-next] drm/i915/csr: fix spelling mistake "firmare" -> "firmware"
Quoting Colin King (2018-11-07 10:22:11) > From: Colin Ian King > > Trivial fix to spelling mistake in DRM_INFO message > > Signed-off-by: Colin Ian King Thank you for the spelling correction, applied. -Chris ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v7] mm, drm/i915: mark pinned shmemfs pages as unevictable
Quoting Andrew Morton (2018-11-06 18:12:11) > On Tue, 6 Nov 2018 13:23:24 + Chris Wilson > wrote: > > > From: Kuo-Hsin Yang > > > > The i915 driver uses shmemfs to allocate backing storage for gem > > objects. These shmemfs pages can be pinned (increased ref count) by > > shmem_read_mapping_page_gfp(). When a lot of pages are pinned, vmscan > > wastes a lot of time scanning these pinned pages. In some extreme case, > > all pages in the inactive anon lru are pinned, and only the inactive > > anon lru is scanned due to inactive_ratio, the system cannot swap and > > invokes the oom-killer. Mark these pinned pages as unevictable to speed > > up vmscan. > > > > Export pagevec API check_move_unevictable_pages(). > > > > This patch was inspired by Chris Wilson's change [1]. > > > > [1]: https://patchwork.kernel.org/patch/9768741/ > > > > ... > > > > --- a/drivers/gpu/drm/i915/i915_gem.c > > +++ b/drivers/gpu/drm/i915/i915_gem.c > > @@ -2382,12 +2382,26 @@ void __i915_gem_object_invalidate(struct > > drm_i915_gem_object *obj) > > invalidate_mapping_pages(mapping, 0, (loff_t)-1); > > } > > > > +/** > > This token is used to introduce a kerneldoc comment. > > > + * Move pages to appropriate lru and release the pagevec. Decrement the ref > > + * count of these pages. > > + */ > > But this isn't a kerneldoc comment. > > At least, I don't think it is. Maybe the parser got smarter when I > wasn't looking. > > > +static inline void check_release_pagevec(struct pagevec *pvec) > > +{ > > + if (pagevec_count(pvec)) { > > + check_move_unevictable_pages(pvec); > > + __pagevec_release(pvec); > > + cond_resched(); > > + } > > +} > > This looks too large to be inlined and the compiler will ignore the > `inline' anyway. Applied both corrections. > Otherwise, Acked-by: Andrew Morton . Please > go ahead and merge via the appropriate drm tree. Thank you, pushed to drm-intel, expected to arrive around 4.21. -Chris ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v5,1/2] drm/i915/skl: Rework MOCS tables to keep common part in a define
== Series Details == Series: series starting with [v5,1/2] drm/i915/skl: Rework MOCS tables to keep common part in a define URL : https://patchwork.freedesktop.org/series/52108/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5097 -> Patchwork_10752 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/52108/revisions/1/mbox/ == Known issues == Here are the changes found in Patchwork_10752 that come from known issues: === IGT changes === Issues hit igt@gem_exec_suspend@basic-s3: fi-ctg-p8600: PASS -> INCOMPLETE (fdo#102997) igt@kms_chamelium@common-hpd-after-suspend: fi-skl-6700k2: PASS -> WARN (fdo#108680) igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence: fi-byt-squawks: PASS -> FAIL (fdo#107362, fdo#107119, fdo#103191) Possible fixes igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a: fi-byt-clapper: FAIL (fdo#107362) -> PASS igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence: fi-byt-squawks: FAIL (fdo#107362, fdo#107119, fdo#103191) -> PASS igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b: fi-byt-squawks: FAIL (fdo#107362, fdo#107119) -> PASS igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence: fi-byt-clapper: FAIL (fdo#107362, fdo#103191) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: fi-cfl-8109u: DMESG-WARN (fdo#107345) -> PASS +2 fdo#102997 https://bugs.freedesktop.org/show_bug.cgi?id=102997 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#107119 https://bugs.freedesktop.org/show_bug.cgi?id=107119 fdo#107345 https://bugs.freedesktop.org/show_bug.cgi?id=107345 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#108680 https://bugs.freedesktop.org/show_bug.cgi?id=108680 == Participating hosts (52 -> 50) == Missing(2): fi-byt-j1900 fi-icl-u2 == Build changes == * Linux: CI_DRM_5097 -> Patchwork_10752 CI_DRM_5097: c20dfc4f015dfd41246beb7d72338aa50543a5ef @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10752: 0ecd8854b2f2c61aaeb7084fe3e912557dc3fb19 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 0ecd8854b2f2 drm/i915/icl: Define MOCS table for Icelake f6ae01ab78e3 drm/i915/skl: Rework MOCS tables to keep common part in a define == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10752/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v6,1/2] drm/i915/skl: Rework MOCS tables to keep common part in a define
== Series Details == Series: series starting with [v6,1/2] drm/i915/skl: Rework MOCS tables to keep common part in a define URL : https://patchwork.freedesktop.org/series/52165/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5097 -> Patchwork_10753 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/52165/revisions/1/mbox/ == Known issues == Here are the changes found in Patchwork_10753 that come from known issues: === IGT changes === Issues hit igt@gem_exec_suspend@basic-s3: fi-cfl-8109u: PASS -> DMESG-WARN (fdo#107345) igt@kms_frontbuffer_tracking@basic: fi-icl-u2: PASS -> FAIL (fdo#103167) igt@kms_pipe_crc_basic@read-crc-pipe-a: fi-byt-clapper: PASS -> FAIL (fdo#107362) Possible fixes igt@gem_exec_suspend@basic-s3: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_frontbuffer_tracking@basic: fi-byt-clapper: FAIL (fdo#103167) -> PASS igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a: fi-byt-clapper: FAIL (fdo#107362) -> PASS igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence: fi-byt-clapper: FAIL (fdo#103191, fdo#107362) -> PASS Warnings igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: fi-cfl-8109u: DMESG-WARN (fdo#107345) -> INCOMPLETE (fdo#108126, fdo#106070) fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#106070 https://bugs.freedesktop.org/show_bug.cgi?id=106070 fdo#107345 https://bugs.freedesktop.org/show_bug.cgi?id=107345 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#108126 https://bugs.freedesktop.org/show_bug.cgi?id=108126 == Participating hosts (52 -> 46) == Missing(6): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 == Build changes == * Linux: CI_DRM_5097 -> Patchwork_10753 CI_DRM_5097: c20dfc4f015dfd41246beb7d72338aa50543a5ef @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10753: 6a470e249bc3a98312c2c3bfa0d7b8cc7baa1f38 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 6a470e249bc3 drm/i915/icl: Define MOCS table for Icelake 06a685031088 drm/i915/skl: Rework MOCS tables to keep common part in a define == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10753/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: fix subslice mask array size
== Series Details == Series: drm/i915: fix subslice mask array size URL : https://patchwork.freedesktop.org/series/52110/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5096_full -> Patchwork_10742_full = == Summary - WARNING == Minor unknown changes coming with Patchwork_10742_full need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10742_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10742_full: === IGT changes === Warnings igt@kms_chv_cursor_fail@pipe-b-64x64-right-edge: shard-snb: PASS -> SKIP +3 igt@pm_rc6_residency@rc6-accuracy: shard-kbl: SKIP -> PASS == Known issues == Here are the changes found in Patchwork_10742_full that come from known issues: === IGT changes === Issues hit igt@gem_eio@in-flight-1us: shard-glk: PASS -> INCOMPLETE (fdo#103359, k.org#198133) igt@gem_exec_schedule@pi-ringfull-vebox: shard-skl: NOTRUN -> FAIL (fdo#103158) igt@gem_softpin@noreloc-s3: shard-skl: PASS -> INCOMPLETE (fdo#104108, fdo#107773) igt@kms_atomic_transition@1x-modeset-transitions-nonblocking: shard-apl: PASS -> DMESG-WARN (fdo#105602, fdo#103558) +9 igt@kms_busy@extended-modeset-hang-newfb-render-b: shard-skl: NOTRUN -> DMESG-WARN (fdo#107956) igt@kms_cursor_crc@cursor-128x128-onscreen: shard-apl: PASS -> FAIL (fdo#103232) +2 igt@kms_flip@flip-vs-expired-vblank-interruptible: shard-skl: NOTRUN -> FAIL (fdo#105363) igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu: shard-apl: PASS -> FAIL (fdo#103167) +1 igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff: shard-glk: PASS -> FAIL (fdo#103167) +2 igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render: shard-skl: NOTRUN -> FAIL (fdo#103167) igt@kms_pipe_crc_basic@read-crc-pipe-c: shard-skl: PASS -> FAIL (fdo#107362) igt@kms_plane_alpha_blend@pipe-a-alpha-basic: shard-skl: NOTRUN -> FAIL (fdo#107815, fdo#108145) igt@kms_plane_alpha_blend@pipe-c-alpha-transparant-fb: shard-skl: NOTRUN -> FAIL (fdo#108145) +2 igt@pm_rpm@sysfs-read: shard-skl: PASS -> INCOMPLETE (fdo#107807) Possible fixes igt@drv_suspend@shrink: shard-glk: INCOMPLETE (fdo#103359, k.org#198133, fdo#106886) -> PASS igt@gem_ctx_isolation@vcs0-s3: shard-skl: INCOMPLETE (fdo#104108, fdo#107773) -> PASS igt@gem_exec_reuse@baggage: shard-apl: DMESG-WARN (fdo#108690) -> PASS igt@gem_userptr_blits@readonly-unsync: shard-skl: INCOMPLETE (fdo#108074) -> PASS igt@kms_color@pipe-a-ctm-max: shard-apl: FAIL (fdo#108147) -> PASS igt@kms_cursor_crc@cursor-128x128-onscreen: shard-glk: FAIL (fdo#103232) -> PASS igt@kms_cursor_crc@cursor-128x128-sliding: shard-apl: FAIL (fdo#103232) -> PASS igt@kms_draw_crc@draw-method-xrgb2101010-blt-untiled: shard-skl: FAIL (fdo#103184) -> PASS igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-untiled: shard-skl: FAIL (fdo#103232, fdo#103184) -> PASS igt@kms_flip@2x-flip-vs-expired-vblank-interruptible: shard-hsw: FAIL (fdo#102887) -> PASS igt@kms_flip_tiling@flip-to-yf-tiled: shard-skl: FAIL (fdo#107931) -> PASS igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render: shard-skl: FAIL (fdo#105682) -> PASS igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt: shard-apl: FAIL (fdo#103167) -> PASS +3 igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu: shard-glk: FAIL (fdo#103167) -> PASS igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-pwrite: shard-skl: FAIL (fdo#103167) -> PASS +1 igt@kms_plane_alpha_blend@pipe-b-coverage-7efc: shard-skl: FAIL (fdo#107815) -> PASS igt@kms_plane_multiple@atomic-pipe-a-tiling-x: shard-apl: FAIL (fdo#103166) -> PASS +2 igt@kms_setmode@basic: shard-apl: FAIL (fdo#99912) -> PASS igt@pm_rpm@dpms-lpsp: shard-skl: INCOMPLETE (fdo#107807) -> PASS +2 igt@prime_busy@after-vebox: shard-snb: INCOMPLETE (fdo#105411) -> SKIP fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887 fdo#103158 https://bugs.freedesktop.org/show_bug.cgi?id=103158 fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?
[Intel-gfx] [PATCH] drm: Check if primary mst is null
Unfortunately drm_dp_get_mst_branch_device which is called from both drm_dp_mst_handle_down_rep and drm_dp_mst_handle_up_rep seem to rely on that mgr->mst_primary is not NULL, which seem to be wrong as it can be cleared with simultaneous mode set, if probing fails or in other case. mgr->lock mutex doesn't protect against that as it might just get assigned to NULL right before, not simultaneously. There are currently bugs 107738, 108816 bugs which crash in drm_dp_get_mst_branch_device, caused by this issue. Signed-off-by: Stanislav Lisovskiy --- drivers/gpu/drm/drm_dp_mst_topology.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c index 5ff1d79b86c4..fb90ed4cdc3a 100644 --- a/drivers/gpu/drm/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/drm_dp_mst_topology.c @@ -1273,6 +1273,12 @@ static struct drm_dp_mst_branch *drm_dp_get_mst_branch_device(struct drm_dp_mst_ /* find the port by iterating down */ mutex_lock(&mgr->lock); + + if (!mgr->mst_primary) { + mstb = NULL; + goto out; + } + mstb = mgr->mst_primary; for (i = 0; i < lct - 1; i++) { -- 2.17.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/3] drm/atomic: Use explicit old crtc state in drm_atomic_add_affected_planes() (rev2)
== Series Details == Series: series starting with [1/3] drm/atomic: Use explicit old crtc state in drm_atomic_add_affected_planes() (rev2) URL : https://patchwork.freedesktop.org/series/51894/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5096_full -> Patchwork_10745_full = == Summary - SUCCESS == No regressions found. == Known issues == Here are the changes found in Patchwork_10745_full that come from known issues: === IGT changes === Possible fixes igt@prime_busy@after-vebox: shard-snb: INCOMPLETE (fdo#105411) -> SKIP fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411 == Participating hosts (6 -> 5) == Missing(1): shard-skl == Build changes == * Linux: CI_DRM_5096 -> Patchwork_10745 CI_DRM_5096: 9dd45e92a3e9b238d044adde1061a8ee0ce24b73 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4711: cc41f4c921e56c62c85ec5349c47022ae9b5f008 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10745: f6d1a322301fb41cf1850279091178a5fef8ebaf @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10745/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 1/2] drm: Add CRTC background color property
On Wed, Oct 10, 2018 at 04:50:50PM -0700, Matt Roper wrote: > Some display controllers can be programmed to present non-black colors > for pixels not covered by any plane (or pixels covered by the > transparent regions of higher planes). Compositors that want a UI with > a solid color background can potentially save memory bandwidth by > setting the CRTC background property and using smaller planes to display > the rest of the content. > > To avoid confusion between different ways of encoding RGB data, we > define a standard 64-bit format that should be used for this property's > value. Helper functions and macros are provided to generate and dissect > values in this standard format with varying component precision values. > > Cc: dri-de...@lists.freedesktop.org > Cc: wei.c...@intel.com > Cc: harish.krupo@intel.com > Signed-off-by: Matt Roper > --- > drivers/gpu/drm/drm_atomic_state_helper.c | 1 + > drivers/gpu/drm/drm_atomic_uapi.c | 5 + > drivers/gpu/drm/drm_mode_config.c | 6 ++ > include/drm/drm_crtc.h| 17 + > include/drm/drm_mode_config.h | 5 + > include/uapi/drm/drm_mode.h | 26 ++ > 6 files changed, 60 insertions(+) > > diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c > b/drivers/gpu/drm/drm_atomic_state_helper.c > index 3ba996069d69..2f8c55668089 100644 > --- a/drivers/gpu/drm/drm_atomic_state_helper.c > +++ b/drivers/gpu/drm/drm_atomic_state_helper.c > @@ -101,6 +101,7 @@ void __drm_atomic_helper_crtc_duplicate_state(struct > drm_crtc *crtc, > state->planes_changed = false; > state->connectors_changed = false; > state->color_mgmt_changed = false; > + state->bgcolor_changed = false; > state->zpos_changed = false; > state->commit = NULL; > state->event = NULL; > diff --git a/drivers/gpu/drm/drm_atomic_uapi.c > b/drivers/gpu/drm/drm_atomic_uapi.c > index d5b7f315098c..399f0ead5370 100644 > --- a/drivers/gpu/drm/drm_atomic_uapi.c > +++ b/drivers/gpu/drm/drm_atomic_uapi.c > @@ -467,6 +467,9 @@ static int drm_atomic_crtc_set_property(struct drm_crtc > *crtc, > return -EFAULT; > > set_out_fence_for_crtc(state->state, crtc, fence_ptr); > + } else if (property == config->bgcolor_property) { > + state->background_color = val; > + state->bgcolor_changed = true; > } else if (crtc->funcs->atomic_set_property) { > return crtc->funcs->atomic_set_property(crtc, state, property, > val); > } else { > @@ -499,6 +502,8 @@ drm_atomic_crtc_get_property(struct drm_crtc *crtc, > *val = (state->gamma_lut) ? state->gamma_lut->base.id : 0; > else if (property == config->prop_out_fence_ptr) > *val = 0; > + else if (property == config->bgcolor_property) > + *val = state->background_color; > else if (crtc->funcs->atomic_get_property) > return crtc->funcs->atomic_get_property(crtc, state, property, > val); > else > diff --git a/drivers/gpu/drm/drm_mode_config.c > b/drivers/gpu/drm/drm_mode_config.c > index ee80788f2c40..75e376755176 100644 > --- a/drivers/gpu/drm/drm_mode_config.c > +++ b/drivers/gpu/drm/drm_mode_config.c > @@ -352,6 +352,12 @@ static int drm_mode_create_standard_properties(struct > drm_device *dev) > return -ENOMEM; > dev->mode_config.modifiers_property = prop; > > + prop = drm_property_create_range(dev, 0, "BACKGROUND_COLOR", This property should be documented somewhere? Maybe under "Color Management Properties", since they apply to crtc? > + 0, GENMASK_ULL(63, 0)); > + if (!prop) > + return -ENOMEM; > + dev->mode_config.bgcolor_property = prop; > + > return 0; > } > > diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h > index b21437bc95bf..ddfdad9ccecb 100644 > --- a/include/drm/drm_crtc.h > +++ b/include/drm/drm_crtc.h > @@ -168,6 +168,11 @@ struct drm_crtc_state { >* drivers to steer the atomic commit control flow. >*/ > bool color_mgmt_changed : 1; > + /** > + * @bgcolor_changed: Background color value has changed. Used by > + * drivers to steer the atomic commit control flow. > + */ > + bool bgcolor_changed : 1; > > /** >* @no_vblank: > @@ -274,6 +279,18 @@ struct drm_crtc_state { >*/ > struct drm_property_blob *gamma_lut; > > + /** > + * @background_color: > + * > + * RGB value representing the pipe's background color. The background > + * color (aka "canvas color") of a pipe is the color that will be used > + * for pixels not covered by a plane, or covered by transparent pixels > + * of a plane. The value here should be built via drm_rgba(); > + * individual color components can be extracted with desired precision > + * via the D
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [01/13] locking/lockdep: restore cross-release checks
== Series Details == Series: series starting with [01/13] locking/lockdep: restore cross-release checks URL : https://patchwork.freedesktop.org/series/52167/ State : warning == Summary == $ dim checkpatch origin/drm-tip a0ec0a02fec5 locking/lockdep: restore cross-release checks -:9: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line) #9: commit dba04eb76df9 ("locking/Documentation: Remove stale crossrelease_fullstack parameter") -:69: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #69: new file mode 100644 -:645: WARNING:TYPO_SPELLING: 'prefered' may be misspelled - perhaps 'preferred'? #645: FILE: Documentation/locking/crossrelease.txt:572: +deadlock or its possibility sooner. So the former way would be prefered -:817: WARNING:TYPO_SPELLING: 'implmentation' may be misspelled - perhaps 'implementation'? #817: FILE: Documentation/locking/crossrelease.txt:744: +like how lockdep handles held_locks. Lockless implmentation is important -:840: WARNING:TYPO_SPELLING: 'occured' may be misspelled - perhaps 'occurred'? #840: FILE: Documentation/locking/crossrelease.txt:767: +that it has not occured yet, lockdep should consider all possible -:987: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'x' - possible side-effects? #987: FILE: include/linux/completion.h:53: +#define init_completion_map(x, m) \ +do { \ + lockdep_init_map_crosslock((struct lockdep_map *)&(x)->map, \ + (m)->name, (m)->key, 0); \ + __init_completion(x); \ +} while (0) -:987: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'm' - possible side-effects? #987: FILE: include/linux/completion.h:53: +#define init_completion_map(x, m) \ +do { \ + lockdep_init_map_crosslock((struct lockdep_map *)&(x)->map, \ + (m)->name, (m)->key, 0); \ + __init_completion(x); \ +} while (0) -:994: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'x' - possible side-effects? #994: FILE: include/linux/completion.h:60: +#define init_completion(x) \ +do { \ + static struct lock_class_key __key; \ + lockdep_init_map_crosslock((struct lockdep_map *)&(x)->map, \ + "(completion)" #x, \ + &__key, 0); \ + __init_completion(x); \ +} while (0) -:1011: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'work' - possible side-effects? #1011: FILE: include/linux/completion.h:77: +#define COMPLETION_INITIALIZER(work) \ + { 0, __WAIT_QUEUE_HEAD_INITIALIZER((work).wait), \ + STATIC_CROSS_LOCKDEP_MAP_INIT("(completion)" #work, &(work)) } -:1109: WARNING:TYPO_SPELLING: 'Seperate' may be misspelled - perhaps 'Separate'? #1109: FILE: include/linux/lockdep.h:305: +* Seperate stack_trace data. This will be used at commit step. -:1115: WARNING:TYPO_SPELLING: 'Seperate' may be misspelled - perhaps 'Separate'? #1115: FILE: include/linux/lockdep.h:311: +* Seperate hlock instance. This will be used at commit step. -:1143: WARNING:TYPO_SPELLING: 'Seperate' may be misspelled - perhaps 'Separate'? #1143: FILE: include/linux/lockdep.h:339: +* Seperate hlock instance. This will be used at commit step. -:1166: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files #1166: FILE: include/linux/lockdep.h:556: +extern void lockdep_init_map_crosslock(struct lockdep_map *lock, -:1170: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files #1170: FILE: include/linux/lockdep.h:560: +extern void lock_commit_crosslock(struct lockdep_map *lock); -:1190: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files #1190: FILE: include/linux/lockdep.h:580: +extern void crossrelease_hist_start(enum xhlock_context_t c); -:1191: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files #1191: FILE: include/linux/lockdep.h:581: +extern void crossrelease_hist_end(enum xhlock_context_t c); -:1192: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files #1192: FILE: include/linux/lockdep.h:582: +extern void lockdep_invariant_state(bool force); -:1193: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files #1193: FILE: include/linux/lockdep.h:583: +extern void lockdep_init_task(struct task_struct *task); -:1194: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files #
Re: [Intel-gfx] [PATCH v14 1/2] drm: Add connector property to limit max bpc
On 10/24/18 6:49 PM, Rodrigo Vivi wrote: > On Fri, Oct 12, 2018 at 11:42:32AM -0700, Radhakrishna Sripada wrote: >> At times 12bpc HDMI cannot be driven due to faulty cables, dongles >> level shifters etc. To workaround them we may need to drive the output >> at a lower bpc. Currently the user space does not have a way to limit >> the bpc. The default bpc to be programmed is decided by the driver and >> is run against connector limitations. >> >> Creating a new connector property "max bpc" in order to limit the bpc. >> xrandr can make use of this connector property to make sure that bpc does >> not exceed the configured value. This property can be used by userspace to >> set the bpc. >> >> V2: Initialize max_bpc to satisfy kms_properties >> V3: Move the property to drm_connector >> V4: Split drm and i915 components(Ville) >> V5: Make the property per connector(Ville) >> V6: Compare the requested bpc to connector bpc(Daniel) >> Move the attach_property function to core(Ville) >> V7: Fix checkpatch warnings >> V8: Simplify the connector check code(Ville) >> V9: Const display_info(Ville) >> V10,V11: Fix CI issues. >> V12: Add the Kernel documentation(Daniel) >> V14: Crossreference the function name in the doc(Daniel) >> >> Cc: Ville Syrjälä >> Cc: Daniel Vetter >> Cc: Kishore Kadiyala >> Cc: Rodrigo Vivi >> Cc: Manasi Navare >> Cc: Stanislav Lisovskiy >> Cc: Sunpeng Li >> Acked-by: Daniel Vetter >> Signed-off-by: Radhakrishna Sripada Reviewed-by: Nicholas Kazlauskas Looks good to me. We're seeing similar issues with > 8bpc that this would help with. > > This patch looks right to me: > > Reviewed-by: Rodrigo Vivi > > but we probably need to hold on merge while we wait clarifications > and final rv-b on igt tests Any updates on the igt tests? > >> --- >> drivers/gpu/drm/drm_atomic.c| 5 + >> drivers/gpu/drm/drm_atomic_helper.c | 4 >> drivers/gpu/drm/drm_atomic_uapi.c | 4 >> drivers/gpu/drm/drm_connector.c | 41 >> + >> include/drm/drm_connector.h | 20 ++ >> 5 files changed, 74 insertions(+) >> >> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c >> index 2870ae205237..cd8362dc4f74 100644 >> --- a/drivers/gpu/drm/drm_atomic.c >> +++ b/drivers/gpu/drm/drm_atomic.c >> @@ -390,6 +390,11 @@ static int drm_atomic_connector_check(struct >> drm_connector *connector, >> { >> struct drm_crtc_state *crtc_state; >> struct drm_writeback_job *writeback_job = state->writeback_job; >> +const struct drm_display_info *info = &connector->display_info; >> + >> +state->max_bpc = info->bpc ? info->bpc : 8; >> +if (connector->max_bpc_property) >> +state->max_bpc = min(state->max_bpc, state->max_requested_bpc); >> >> if ((connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK) || >> !writeback_job) >> return 0; >> diff --git a/drivers/gpu/drm/drm_atomic_helper.c >> b/drivers/gpu/drm/drm_atomic_helper.c >> index 6f66777dca4b..d61a74b254f5 100644 >> --- a/drivers/gpu/drm/drm_atomic_helper.c >> +++ b/drivers/gpu/drm/drm_atomic_helper.c >> @@ -650,6 +650,10 @@ drm_atomic_helper_check_modeset(struct drm_device *dev, >> if (old_connector_state->link_status != >> new_connector_state->link_status) >> new_crtc_state->connectors_changed = true; >> + >> +if (old_connector_state->max_requested_bpc != >> +new_connector_state->max_requested_bpc) >> +new_crtc_state->connectors_changed = true; >> } >> >> if (funcs->atomic_check) >> diff --git a/drivers/gpu/drm/drm_atomic_uapi.c >> b/drivers/gpu/drm/drm_atomic_uapi.c >> index a22d6f269b07..7492819c81ce 100644 >> --- a/drivers/gpu/drm/drm_atomic_uapi.c >> +++ b/drivers/gpu/drm/drm_atomic_uapi.c >> @@ -761,6 +761,8 @@ static int drm_atomic_connector_set_property(struct >> drm_connector *connector, >> >> return set_out_fence_for_connector(state->state, connector, >> fence_ptr); >> +} else if (property == connector->max_bpc_property) { >> +state->max_requested_bpc = val; >> } else if (connector->funcs->atomic_set_property) { >> return connector->funcs->atomic_set_property(connector, >> state, property, val); >> @@ -825,6 +827,8 @@ drm_atomic_connector_get_property(struct drm_connector >> *connector, >> *val = 0; >> } else if (property == config->writeback_out_fence_ptr_property) { >> *val = 0; >> +} else if (property == connector->max_bpc_property) { >> +*val = state->max_requested_bpc; >> } else if (connector->funcs->atomic_get_property) { >> return connector->funcs->atomic_get_property(connector, >>
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [01/13] locking/lockdep: restore cross-release checks
== Series Details == Series: series starting with [01/13] locking/lockdep: restore cross-release checks URL : https://patchwork.freedesktop.org/series/52167/ State : warning == Summary == $ dim sparse origin/drm-tip Sparse version: v0.5.2 Commit: locking/lockdep: restore cross-release checks + +Error in reading or end of file. Commit: kthread: finer-grained lockdep/cross-release completion Okay! Commit: lockdep: Remove GFP_NOLOCKDEP annotation Okay! Commit: kernel/lockdep: Make cross-release a config option Okay! Commit: mm: Check if mmu notifier callbacks are allowed to fail Okay! Commit: mm, notifier: Catch sleeping/blocking for !blockable Okay! Commit: mm, notifier: Add a lockdep map for invalidate_range_start Okay! Commit: dma-fence: cross-release annotations Okay! Commit: reservation: Annotate dma_fence waits Okay! Commit: drm/i915: Annotate dma_fence waits Okay! Commit: drm/i915: annotate intel_atomic_commit_fence_wait Okay! Commit: HAX FOR CI: Enable cross-release Okay! Commit: Revert "locking/lockdep, cpu/hotplug: Annotate AP thread" Okay! ___ 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 [01/13] locking/lockdep: restore cross-release checks
== Series Details == Series: series starting with [01/13] locking/lockdep: restore cross-release checks URL : https://patchwork.freedesktop.org/series/52167/ State : failure == Summary == = CI Bug Log - changes from CI_DRM_5098 -> Patchwork_10754 = == Summary - FAILURE == Serious unknown changes coming with Patchwork_10754 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10754, 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/52167/revisions/1/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10754: === IGT changes === Possible regressions igt@drv_selftest@live_hangcheck: fi-bwr-2160:PASS -> DMESG-FAIL igt@gem_sync@basic-each: fi-kbl-8809g: PASS -> DMESG-WARN igt@gem_tiled_fence_blits@basic: fi-apl-guc: PASS -> DMESG-WARN fi-elk-e7500: PASS -> DMESG-WARN fi-cfl-guc: PASS -> DMESG-WARN fi-skl-6700hq: PASS -> DMESG-WARN fi-hsw-4770r: PASS -> DMESG-WARN fi-skl-gvtdvm: PASS -> DMESG-WARN fi-kbl-x1275: PASS -> DMESG-WARN fi-icl-u: NOTRUN -> DMESG-WARN fi-hsw-peppy: PASS -> DMESG-WARN fi-bdw-5557u: PASS -> DMESG-WARN fi-glk-dsi: PASS -> DMESG-WARN fi-glk-j4005: PASS -> DMESG-WARN fi-kbl-7567u: PASS -> DMESG-WARN fi-cnl-u: PASS -> DMESG-WARN fi-bdw-gvtdvm: PASS -> DMESG-WARN fi-hsw-4770:PASS -> DMESG-WARN fi-ivb-3520m: PASS -> DMESG-WARN fi-kbl-7500u: PASS -> DMESG-WARN fi-whl-u: PASS -> DMESG-WARN fi-icl-u2: PASS -> DMESG-WARN fi-ivb-3770:PASS -> DMESG-WARN fi-bxt-dsi: PASS -> DMESG-WARN fi-cfl-s3: PASS -> DMESG-WARN fi-skl-iommu: PASS -> DMESG-WARN fi-bxt-j4205: PASS -> DMESG-WARN fi-skl-6770hq: PASS -> DMESG-WARN fi-ilk-650: PASS -> DMESG-WARN fi-snb-2600:PASS -> DMESG-WARN fi-skl-6260u: PASS -> DMESG-WARN fi-kbl-r: PASS -> DMESG-WARN fi-skl-guc: PASS -> DMESG-WARN fi-kbl-guc: PASS -> DMESG-WARN fi-skl-6600u: PASS -> DMESG-WARN fi-kbl-7560u: PASS -> DMESG-WARN fi-cfl-8700k: PASS -> DMESG-WARN igt@prime_vgem@basic-fence-flip: fi-bwr-2160:PASS -> DMESG-WARN fi-blb-e6850: PASS -> DMESG-WARN == Known issues == Here are the changes found in Patchwork_10754 that come from known issues: === IGT changes === Issues hit igt@drv_selftest@live_contexts: fi-icl-u: NOTRUN -> INCOMPLETE (fdo#108315, fdo#108535) igt@gem_exec_reloc@basic-write-cpu-active: fi-cfl-8109u: PASS -> DMESG-WARN (fdo#106107) igt@gem_exec_suspend@basic-s3: fi-cfl-8109u: PASS -> INCOMPLETE (fdo#107187, fdo#108126) igt@kms_frontbuffer_tracking@basic: fi-hsw-peppy: PASS -> DMESG-WARN (fdo#102614) Possible fixes igt@gem_ctx_switch@basic-default: fi-icl-u: INCOMPLETE (fdo#108315, fdo#108535) -> PASS igt@kms_frontbuffer_tracking@basic: fi-icl-u2: FAIL (fdo#103167) -> PASS igt@kms_pipe_crc_basic@hang-read-crc-pipe-b: fi-ilk-650: DMESG-WARN (fdo#106387) -> PASS igt@kms_pipe_crc_basic@read-crc-pipe-b: fi-byt-clapper: FAIL (fdo#107362) -> PASS fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614 fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#106107 https://bugs.freedesktop.org/show_bug.cgi?id=106107 fdo#106387 https://bugs.freedesktop.org/show_bug.cgi?id=106387 fdo#107187 https://bugs.freedesktop.org/show_bug.cgi?id=107187 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#108126 https://bugs.freedesktop.org/show_bug.cgi?id=108126 fdo#108315 https://bugs.freedesktop.org/show_bug.cgi?id=108315 fdo#108535 https://bugs.freedesktop.org/show_bug.cgi?id=108535 == Participating hosts (52 -> 47) == Additional (1): fi-byt-j1900 Missing(6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-snb-2520m fi-ctg-p8600 == Build changes == * Linux: CI_DRM_5098 -> Patchwork_10754 CI_DRM_5098: a9cbcae14226206fe08f3c1e3f74ad9e357a4384 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4712: a3ede1b535ac8137f6949c468edd7054453d5dae @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10754: 5e9cb1f64702c376e1290b8346fb4b421bb71808 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 5e9cb1f64702 Revert "locking/lockdep, cpu/hotplu
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm: Check if primary mst is null
== Series Details == Series: drm: Check if primary mst is null URL : https://patchwork.freedesktop.org/series/52174/ State : warning == Summary == $ dim checkpatch origin/drm-tip f8a61b5fe3ea drm: Check if primary mst is null -:10: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line) #10: mgr->lock mutex doesn't protect against that as it might just get assigned to NULL total: 0 errors, 1 warnings, 0 checks, 12 lines checked ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm: Check if primary mst is null
On Wed, Nov 07, 2018 at 06:11:30PM +0200, Stanislav Lisovskiy wrote: > Unfortunately drm_dp_get_mst_branch_device which is called from both > drm_dp_mst_handle_down_rep and drm_dp_mst_handle_up_rep seem to rely > on that mgr->mst_primary is not NULL, which seem to be wrong as it can be > cleared with simultaneous mode set, if probing fails or in other case. > mgr->lock mutex doesn't protect against that as it might just get assigned to > NULL > right before, not simultaneously. > There are currently bugs 107738, 108816 bugs which crash in > drm_dp_get_mst_branch_device, caused by this issue. Use the proper Bugzilla: tags for those. This also seems like cc:stable material. > > Signed-off-by: Stanislav Lisovskiy > --- > drivers/gpu/drm/drm_dp_mst_topology.c | 6 ++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c > b/drivers/gpu/drm/drm_dp_mst_topology.c > index 5ff1d79b86c4..fb90ed4cdc3a 100644 > --- a/drivers/gpu/drm/drm_dp_mst_topology.c > +++ b/drivers/gpu/drm/drm_dp_mst_topology.c > @@ -1273,6 +1273,12 @@ static struct drm_dp_mst_branch > *drm_dp_get_mst_branch_device(struct drm_dp_mst_ > /* find the port by iterating down */ > > mutex_lock(&mgr->lock); > + > + if (!mgr->mst_primary) { > + mstb = NULL; > + goto out; > + } > + > mstb = mgr->mst_primary; > Or a bit simpler: mstb = mgr->mst_primary; + if (!mstb) + goto out; ccing Lyude as well.. > for (i = 0; i < lct - 1; i++) { > -- > 2.17.1 > > ___ > dri-devel mailing list > dri-de...@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Ville Syrjälä Intel ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] drm/i915: Switch LSPCON to PCON mode if it's in LS mode
From: Ville Syrjälä We no longer change LSPCON into PCON mode if it boots up in LS mode. This was broken by some code shuffling in commit 96e35598cead ("drm/i915: Check LSPCON vendor OUI"). I actually can't see a reason why that code shuffling had to be done. The commit msg notes it but doesn't justify it in any way. But I guess we'll keep the code in its current place anyway and just make the "switch to PCON mode" part effective once again. Cc: Shashank Sharma Cc: Maarten Lankhorst Cc: Tvrtko Ursulin Tested-by: Tvrtko Ursulin Fixes: 96e35598cead ("drm/i915: Check LSPCON vendor OUI") Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/intel_lspcon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c index fff32b31c7df..96a8d9524b0c 100644 --- a/drivers/gpu/drm/i915/intel_lspcon.c +++ b/drivers/gpu/drm/i915/intel_lspcon.c @@ -230,7 +230,7 @@ static bool lspcon_probe(struct intel_lspcon *lspcon) * In this way, it will work with both HDMI 1.4 sinks as well as HDMI * 2.0 sinks. */ - if (lspcon->active && lspcon->mode != DRM_LSPCON_MODE_PCON) { + if (lspcon->mode != DRM_LSPCON_MODE_PCON) { if (lspcon_change_mode(lspcon, DRM_LSPCON_MODE_PCON) < 0) { DRM_ERROR("LSPCON mode change to PCON failed\n"); return false; -- 2.18.1 ___ 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: Check if primary mst is null
== Series Details == Series: drm: Check if primary mst is null URL : https://patchwork.freedesktop.org/series/52174/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5098 -> Patchwork_10755 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/52174/revisions/1/mbox/ == Known issues == Here are the changes found in Patchwork_10755 that come from known issues: === IGT changes === Issues hit igt@drv_module_reload@basic-reload: fi-blb-e6850: PASS -> INCOMPLETE (fdo#107718) igt@gem_exec_suspend@basic-s3: fi-cfl-8109u: PASS -> INCOMPLETE (fdo#108126, fdo#107187) Possible fixes igt@kms_frontbuffer_tracking@basic: fi-icl-u2: FAIL (fdo#103167) -> PASS igt@kms_pipe_crc_basic@hang-read-crc-pipe-b: fi-ilk-650: DMESG-WARN (fdo#106387) -> PASS igt@kms_pipe_crc_basic@read-crc-pipe-b: fi-byt-clapper: FAIL (fdo#107362) -> PASS fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#106387 https://bugs.freedesktop.org/show_bug.cgi?id=106387 fdo#107187 https://bugs.freedesktop.org/show_bug.cgi?id=107187 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#108126 https://bugs.freedesktop.org/show_bug.cgi?id=108126 == Participating hosts (52 -> 46) == Additional (1): fi-byt-j1900 Missing(7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-snb-2520m fi-ctg-p8600 fi-icl-u == Build changes == * Linux: CI_DRM_5098 -> Patchwork_10755 CI_DRM_5098: a9cbcae14226206fe08f3c1e3f74ad9e357a4384 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4712: a3ede1b535ac8137f6949c468edd7054453d5dae @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10755: f8a61b5fe3ea6b61fbd57bf3eaa02a40e1953f5d @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == f8a61b5fe3ea drm: Check if primary mst is null == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10755/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 series starting with [1/3] drm/atomic: Use explicit old crtc state in drm_atomic_add_affected_planes() (rev2)
== Series Details == Series: series starting with [1/3] drm/atomic: Use explicit old crtc state in drm_atomic_add_affected_planes() (rev2) URL : https://patchwork.freedesktop.org/series/51894/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5096_full -> Patchwork_10745_full = == Summary - WARNING == Minor unknown changes coming with Patchwork_10745_full need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10745_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10745_full: === IGT changes === Warnings igt@pm_rc6_residency@rc6-accuracy: shard-kbl: SKIP -> PASS == Known issues == Here are the changes found in Patchwork_10745_full that come from known issues: === IGT changes === Issues hit igt@kms_busy@extended-modeset-hang-newfb-render-b: shard-skl: NOTRUN -> DMESG-WARN (fdo#107956) igt@kms_cursor_crc@cursor-128x128-onscreen: shard-apl: PASS -> FAIL (fdo#103232) +3 igt@kms_cursor_crc@cursor-128x128-random: shard-skl: PASS -> FAIL (fdo#103232) igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic: shard-hsw: PASS -> FAIL (fdo#105767) igt@kms_draw_crc@draw-method-xrgb2101010-blt-xtiled: shard-skl: PASS -> FAIL (fdo#103184) +2 igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu: shard-apl: PASS -> FAIL (fdo#103167) +1 igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff: shard-glk: PASS -> FAIL (fdo#103167) +2 igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt: shard-skl: PASS -> FAIL (fdo#103167) +2 igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes: shard-skl: PASS -> INCOMPLETE (fdo#104108, fdo#107773) igt@kms_plane_alpha_blend@pipe-a-coverage-7efc: shard-skl: PASS -> FAIL (fdo#107815, fdo#108145) igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max: shard-skl: NOTRUN -> FAIL (fdo#108145) igt@kms_universal_plane@universal-plane-pipe-a-functional: shard-glk: PASS -> FAIL (fdo#103166) igt@pm_rpm@universal-planes: shard-skl: PASS -> INCOMPLETE (fdo#107807) Possible fixes igt@drv_suspend@shrink: shard-glk: INCOMPLETE (fdo#106886, fdo#103359, k.org#198133) -> PASS igt@gem_ctx_isolation@vcs0-s3: shard-skl: INCOMPLETE (fdo#104108, fdo#107773) -> PASS igt@gem_exec_reuse@baggage: shard-apl: DMESG-WARN (fdo#108690) -> PASS igt@kms_color@pipe-a-ctm-max: shard-apl: FAIL (fdo#108147) -> PASS igt@kms_cursor_crc@cursor-64x21-onscreen: shard-apl: FAIL (fdo#103232) -> PASS igt@kms_flip@2x-flip-vs-expired-vblank-interruptible: shard-hsw: FAIL (fdo#102887) -> PASS igt@kms_flip_tiling@flip-to-yf-tiled: shard-skl: FAIL (fdo#107931) -> PASS igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt: shard-apl: FAIL (fdo#103167) -> PASS +2 igt@kms_plane_alpha_blend@pipe-b-coverage-7efc: shard-skl: FAIL (fdo#107815) -> PASS igt@kms_plane_multiple@atomic-pipe-a-tiling-yf: shard-apl: FAIL (fdo#103166) -> PASS +1 igt@pm_rpm@dpms-lpsp: shard-skl: INCOMPLETE (fdo#107807) -> PASS +2 igt@prime_busy@after-vebox: shard-snb: INCOMPLETE (fdo#105411) -> SKIP fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887 fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166 fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103184 https://bugs.freedesktop.org/show_bug.cgi?id=103184 fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232 fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359 fdo#104108 https://bugs.freedesktop.org/show_bug.cgi?id=104108 fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411 fdo#105767 https://bugs.freedesktop.org/show_bug.cgi?id=105767 fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886 fdo#107773 https://bugs.freedesktop.org/show_bug.cgi?id=107773 fdo#107807 https://bugs.freedesktop.org/show_bug.cgi?id=107807 fdo#107815 https://bugs.freedesktop.org/show_bug.cgi?id=107815 fdo#107931 https://bugs.freedesktop.org/show_bug.cgi?id=107931 fdo#107956 https://bugs.freedesktop.org/show_bug.cgi?id=107956 fdo#108145 https://bugs.freedesktop.org/show_bug.cgi?id=108145 fdo#108147 https://bugs.freedesktop.org/show_bug.cgi?id=108147 fdo#108690 https://bugs.freedesktop.org/show_bug.cgi?id=108690 k.org#198133 h
Re: [Intel-gfx] [PATCH v14 1/2] drm: Add connector property to limit max bpc
On Wed, Nov 07, 2018 at 04:56:00PM +, Kazlauskas, Nicholas wrote: > On 10/24/18 6:49 PM, Rodrigo Vivi wrote: > > On Fri, Oct 12, 2018 at 11:42:32AM -0700, Radhakrishna Sripada wrote: > >> At times 12bpc HDMI cannot be driven due to faulty cables, dongles > >> level shifters etc. To workaround them we may need to drive the output > >> at a lower bpc. Currently the user space does not have a way to limit > >> the bpc. The default bpc to be programmed is decided by the driver and > >> is run against connector limitations. > >> > >> Creating a new connector property "max bpc" in order to limit the bpc. > >> xrandr can make use of this connector property to make sure that bpc does > >> not exceed the configured value. This property can be used by userspace to > >> set the bpc. > >> > >> V2: Initialize max_bpc to satisfy kms_properties > >> V3: Move the property to drm_connector > >> V4: Split drm and i915 components(Ville) > >> V5: Make the property per connector(Ville) > >> V6: Compare the requested bpc to connector bpc(Daniel) > >> Move the attach_property function to core(Ville) > >> V7: Fix checkpatch warnings > >> V8: Simplify the connector check code(Ville) > >> V9: Const display_info(Ville) > >> V10,V11: Fix CI issues. > >> V12: Add the Kernel documentation(Daniel) > >> V14: Crossreference the function name in the doc(Daniel) > >> > >> Cc: Ville Syrjälä > >> Cc: Daniel Vetter > >> Cc: Kishore Kadiyala > >> Cc: Rodrigo Vivi > >> Cc: Manasi Navare > >> Cc: Stanislav Lisovskiy > >> Cc: Sunpeng Li > >> Acked-by: Daniel Vetter > >> Signed-off-by: Radhakrishna Sripada > > Reviewed-by: Nicholas Kazlauskas Thanks. Although I had pushed through drm-intel-next-queued (dinq) already. > > Looks good to me. We're seeing similar issues with > 8bpc that this > would help with. hm... I hope that pushing to dinq doesn't cause any trouble for you :( > > > > > This patch looks right to me: > > > > Reviewed-by: Rodrigo Vivi > > > > but we probably need to hold on merge while we wait clarifications > > and final rv-b on igt tests > > Any updates on the igt tests? yeap, RK added the property tests. got reviewed and merged to igt already as well Thanks, Rodrigo. > > > > >> --- > >> drivers/gpu/drm/drm_atomic.c| 5 + > >> drivers/gpu/drm/drm_atomic_helper.c | 4 > >> drivers/gpu/drm/drm_atomic_uapi.c | 4 > >> drivers/gpu/drm/drm_connector.c | 41 > >> + > >> include/drm/drm_connector.h | 20 ++ > >> 5 files changed, 74 insertions(+) > >> > >> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c > >> index 2870ae205237..cd8362dc4f74 100644 > >> --- a/drivers/gpu/drm/drm_atomic.c > >> +++ b/drivers/gpu/drm/drm_atomic.c > >> @@ -390,6 +390,11 @@ static int drm_atomic_connector_check(struct > >> drm_connector *connector, > >> { > >>struct drm_crtc_state *crtc_state; > >>struct drm_writeback_job *writeback_job = state->writeback_job; > >> + const struct drm_display_info *info = &connector->display_info; > >> + > >> + state->max_bpc = info->bpc ? info->bpc : 8; > >> + if (connector->max_bpc_property) > >> + state->max_bpc = min(state->max_bpc, state->max_requested_bpc); > >> > >>if ((connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK) || > >> !writeback_job) > >>return 0; > >> diff --git a/drivers/gpu/drm/drm_atomic_helper.c > >> b/drivers/gpu/drm/drm_atomic_helper.c > >> index 6f66777dca4b..d61a74b254f5 100644 > >> --- a/drivers/gpu/drm/drm_atomic_helper.c > >> +++ b/drivers/gpu/drm/drm_atomic_helper.c > >> @@ -650,6 +650,10 @@ drm_atomic_helper_check_modeset(struct drm_device > >> *dev, > >>if (old_connector_state->link_status != > >>new_connector_state->link_status) > >>new_crtc_state->connectors_changed = true; > >> + > >> + if (old_connector_state->max_requested_bpc != > >> + new_connector_state->max_requested_bpc) > >> + new_crtc_state->connectors_changed = true; > >>} > >> > >>if (funcs->atomic_check) > >> diff --git a/drivers/gpu/drm/drm_atomic_uapi.c > >> b/drivers/gpu/drm/drm_atomic_uapi.c > >> index a22d6f269b07..7492819c81ce 100644 > >> --- a/drivers/gpu/drm/drm_atomic_uapi.c > >> +++ b/drivers/gpu/drm/drm_atomic_uapi.c > >> @@ -761,6 +761,8 @@ static int drm_atomic_connector_set_property(struct > >> drm_connector *connector, > >> > >>return set_out_fence_for_connector(state->state, connector, > >> fence_ptr); > >> + } else if (property == connector->max_bpc_property) { > >> + state->max_requested_bpc = val; > >>} else if (connector->funcs->atomic_set_property) { > >>return connector->funcs->atomic_set_property(connector, > >>state, proper
Re: [Intel-gfx] [PATCH v14 1/2] drm: Add connector property to limit max bpc
On 11/7/18 1:10 PM, Rodrigo Vivi wrote: > On Wed, Nov 07, 2018 at 04:56:00PM +, Kazlauskas, Nicholas wrote: >> On 10/24/18 6:49 PM, Rodrigo Vivi wrote: >>> On Fri, Oct 12, 2018 at 11:42:32AM -0700, Radhakrishna Sripada wrote: At times 12bpc HDMI cannot be driven due to faulty cables, dongles level shifters etc. To workaround them we may need to drive the output at a lower bpc. Currently the user space does not have a way to limit the bpc. The default bpc to be programmed is decided by the driver and is run against connector limitations. Creating a new connector property "max bpc" in order to limit the bpc. xrandr can make use of this connector property to make sure that bpc does not exceed the configured value. This property can be used by userspace to set the bpc. V2: Initialize max_bpc to satisfy kms_properties V3: Move the property to drm_connector V4: Split drm and i915 components(Ville) V5: Make the property per connector(Ville) V6: Compare the requested bpc to connector bpc(Daniel) Move the attach_property function to core(Ville) V7: Fix checkpatch warnings V8: Simplify the connector check code(Ville) V9: Const display_info(Ville) V10,V11: Fix CI issues. V12: Add the Kernel documentation(Daniel) V14: Crossreference the function name in the doc(Daniel) Cc: Ville Syrjälä Cc: Daniel Vetter Cc: Kishore Kadiyala Cc: Rodrigo Vivi Cc: Manasi Navare Cc: Stanislav Lisovskiy Cc: Sunpeng Li Acked-by: Daniel Vetter Signed-off-by: Radhakrishna Sripada >> >> Reviewed-by: Nicholas Kazlauskas > > Thanks. Although I had pushed through drm-intel-next-queued (dinq) already. > >> >> Looks good to me. We're seeing similar issues with > 8bpc that this >> would help with. > > hm... I hope that pushing to dinq doesn't cause any trouble for you :( > >> >>> >>> This patch looks right to me: >>> >>> Reviewed-by: Rodrigo Vivi >>> >>> but we probably need to hold on merge while we wait clarifications >>> and final rv-b on igt tests >> >> Any updates on the igt tests? > > yeap, RK added the property tests. got reviewed and > merged to igt already as well > > Thanks, > Rodrigo. Thanks for the update. I think in the meantime while waiting for this to land in drm we'll make use of a driver specific property with the same name and swap it out later for the common property. Nicholas Kazlauskas > >> >>> --- drivers/gpu/drm/drm_atomic.c| 5 + drivers/gpu/drm/drm_atomic_helper.c | 4 drivers/gpu/drm/drm_atomic_uapi.c | 4 drivers/gpu/drm/drm_connector.c | 41 + include/drm/drm_connector.h | 20 ++ 5 files changed, 74 insertions(+) diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index 2870ae205237..cd8362dc4f74 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -390,6 +390,11 @@ static int drm_atomic_connector_check(struct drm_connector *connector, { struct drm_crtc_state *crtc_state; struct drm_writeback_job *writeback_job = state->writeback_job; + const struct drm_display_info *info = &connector->display_info; + + state->max_bpc = info->bpc ? info->bpc : 8; + if (connector->max_bpc_property) + state->max_bpc = min(state->max_bpc, state->max_requested_bpc); if ((connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK) || !writeback_job) return 0; diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 6f66777dca4b..d61a74b254f5 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -650,6 +650,10 @@ drm_atomic_helper_check_modeset(struct drm_device *dev, if (old_connector_state->link_status != new_connector_state->link_status) new_crtc_state->connectors_changed = true; + + if (old_connector_state->max_requested_bpc != + new_connector_state->max_requested_bpc) + new_crtc_state->connectors_changed = true; } if (funcs->atomic_check) diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c index a22d6f269b07..7492819c81ce 100644 --- a/drivers/gpu/drm/drm_atomic_uapi.c +++ b/drivers/gpu/drm/drm_atomic_uapi.c @@ -761,6 +761,8 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector, return set_out_fence_fo
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Switch LSPCON to PCON mode if it's in LS mode
== Series Details == Series: drm/i915: Switch LSPCON to PCON mode if it's in LS mode URL : https://patchwork.freedesktop.org/series/52178/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5099 -> Patchwork_10756 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/52178/revisions/1/mbox/ == Known issues == Here are the changes found in Patchwork_10756 that come from known issues: === IGT changes === Issues hit igt@drv_selftest@live_hangcheck: fi-kbl-7560u: PASS -> INCOMPLETE (fdo#108044) igt@gem_exec_suspend@basic-s4-devices: fi-blb-e6850: PASS -> INCOMPLETE (fdo#107718) igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence: fi-byt-clapper: PASS -> FAIL (fdo#107362, fdo#103191) igt@pm_rpm@module-reload: fi-skl-6600u: PASS -> INCOMPLETE (fdo#107807) Possible fixes igt@gem_close_race@basic-threads: fi-bsw-n3050: FAIL -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: fi-byt-clapper: FAIL (fdo#107362, fdo#103191) -> PASS fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 fdo#107807 https://bugs.freedesktop.org/show_bug.cgi?id=107807 fdo#108044 https://bugs.freedesktop.org/show_bug.cgi?id=108044 == Participating hosts (53 -> 45) == Additional (1): fi-pnv-d510 Missing(9): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-icl-u2 fi-bsw-cyan fi-snb-2520m fi-ctg-p8600 fi-icl-u == Build changes == * Linux: CI_DRM_5099 -> Patchwork_10756 CI_DRM_5099: 8eca2834ec812679a45d4c4d785448ac0084cee8 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4712: a3ede1b535ac8137f6949c468edd7054453d5dae @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10756: 6e05789cc492ace0ec5b29d61be4565228471307 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 6e05789cc492 drm/i915: Switch LSPCON to PCON mode if it's in LS mode == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10756/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v2 02/14] drm/i915: Clean up skl_program_scaler()
On Thu, Nov 01, 2018 at 11:13:50AM -0700, Rodrigo Vivi wrote: > On Thu, Nov 01, 2018 at 05:17:36PM +0200, Ville Syrjala wrote: > > From: Ville Syrjälä > > > > Remove the "sizes are 0 based" stuff that is not even true for the > > scaler. > > > > v2: Rebase > > > > Signed-off-by: Ville Syrjälä > > Reviewed-by: Rodrigo Vivi Thanks. First two patches pushed. > > > --- > > drivers/gpu/drm/i915/intel_sprite.c | 18 +- > > 1 file changed, 5 insertions(+), 13 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_sprite.c > > b/drivers/gpu/drm/i915/intel_sprite.c > > index 30b7485f1992..a77a17fda692 100644 > > --- a/drivers/gpu/drm/i915/intel_sprite.c > > +++ b/drivers/gpu/drm/i915/intel_sprite.c > > @@ -310,12 +310,11 @@ skl_plane_max_stride(struct intel_plane *plane, > > } > > > > static void > > -skl_program_scaler(struct drm_i915_private *dev_priv, > > - struct intel_plane *plane, > > +skl_program_scaler(struct intel_plane *plane, > >const struct intel_crtc_state *crtc_state, > >const struct intel_plane_state *plane_state) > > { > > - enum plane_id plane_id = plane->id; > > + struct drm_i915_private *dev_priv = to_i915(plane->base.dev); > > enum pipe pipe = plane->pipe; > > int scaler_id = plane_state->scaler_id; > > const struct intel_scaler *scaler = > > @@ -327,10 +326,6 @@ skl_program_scaler(struct drm_i915_private *dev_priv, > > u16 y_hphase, uv_rgb_hphase; > > u16 y_vphase, uv_rgb_vphase; > > > > - /* Sizes are 0 based */ > > - crtc_w--; > > - crtc_h--; > > - > > /* TODO: handle sub-pixel coordinates */ > > if (plane_state->base.fb->format->format == DRM_FORMAT_NV12 && > > !icl_is_hdr_plane(plane)) { > > @@ -350,15 +345,14 @@ skl_program_scaler(struct drm_i915_private *dev_priv, > > } > > > > I915_WRITE_FW(SKL_PS_CTRL(pipe, scaler_id), > > - PS_SCALER_EN | PS_PLANE_SEL(plane_id) | scaler->mode); > > + PS_SCALER_EN | PS_PLANE_SEL(plane->id) | scaler->mode); > > I915_WRITE_FW(SKL_PS_PWR_GATE(pipe, scaler_id), 0); > > I915_WRITE_FW(SKL_PS_VPHASE(pipe, scaler_id), > > PS_Y_PHASE(y_vphase) | PS_UV_RGB_PHASE(uv_rgb_vphase)); > > I915_WRITE_FW(SKL_PS_HPHASE(pipe, scaler_id), > > PS_Y_PHASE(y_hphase) | PS_UV_RGB_PHASE(uv_rgb_hphase)); > > I915_WRITE_FW(SKL_PS_WIN_POS(pipe, scaler_id), (crtc_x << 16) | crtc_y); > > - I915_WRITE_FW(SKL_PS_WIN_SZ(pipe, scaler_id), > > - ((crtc_w + 1) << 16)|(crtc_h + 1)); > > + I915_WRITE_FW(SKL_PS_WIN_SZ(pipe, scaler_id), (crtc_w << 16) | crtc_h); > > } > > > > static void > > @@ -441,11 +435,9 @@ skl_program_plane(struct intel_plane *plane, > > I915_WRITE_FW(PLANE_CUS_CTL(pipe, plane_id), cus_ctl); > > } > > > > - /* program plane scaler */ > > if (plane_state->scaler_id >= 0) { > > if (!slave) > > - skl_program_scaler(dev_priv, plane, > > - crtc_state, plane_state); > > + skl_program_scaler(plane, crtc_state, plane_state); > > > > I915_WRITE_FW(PLANE_POS(pipe, plane_id), 0); > > } else { > > -- > > 2.18.1 > > > > ___ > > 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
[Intel-gfx] [PATCH v2 04/14] drm/i915: Polish the skl+ plane keyval/msk/max register setup
From: Ville Syrjälä Due to the constant alpha we're going to have to program two of the the tree keying registers anyway, so might as well always program all three. And parametrize the plane constant alpha define while at it. v2: Rebase due to input CSC Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/i915_reg.h | 2 +- drivers/gpu/drm/i915/intel_sprite.c | 22 +- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 158cf4716d03..fe4b913e46ac 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -6559,7 +6559,7 @@ enum { #define PLANE_KEYMSK_ALPHA_ENABLE (1 << 31) #define _PLANE_KEYMAX_1_A 0x701a0 #define _PLANE_KEYMAX_2_A 0x702a0 -#define PLANE_KEYMAX_ALPHA_SHIFT 24 +#define PLANE_KEYMAX_ALPHA(a) ((a) << 24) #define _PLANE_AUX_DIST_1_A0x701c0 #define _PLANE_AUX_DIST_2_A0x702c0 #define _PLANE_AUX_OFFSET_1_A 0x701c4 diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c index 287a43524564..6d9f321cdf7b 100644 --- a/drivers/gpu/drm/i915/intel_sprite.c +++ b/drivers/gpu/drm/i915/intel_sprite.c @@ -478,13 +478,20 @@ skl_program_plane(struct intel_plane *plane, uint32_t src_h = drm_rect_height(&plane_state->base.src) >> 16; struct intel_plane *linked = plane_state->linked_plane; const struct drm_framebuffer *fb = plane_state->base.fb; + u8 alpha = plane_state->base.alpha >> 8; unsigned long irqflags; - u32 keymsk = 0, keymax = 0; + u32 keymsk, keymax; /* Sizes are 0 based */ src_w--; src_h--; + keymax = (key->max_value & 0xff) | PLANE_KEYMAX_ALPHA(alpha); + + keymsk = key->channel_mask & 0x3ff; + if (alpha < 0xff) + keymsk |= PLANE_KEYMSK_ALPHA_ENABLE; + spin_lock_irqsave(&dev_priv->uncore.lock, irqflags); if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) @@ -494,18 +501,7 @@ skl_program_plane(struct intel_plane *plane, if (fb->format->is_yuv && icl_is_hdr_plane(plane)) icl_program_input_csc_coeff(crtc_state, plane_state); - if (key->flags) { - I915_WRITE_FW(PLANE_KEYVAL(pipe, plane_id), key->min_value); - - keymax |= key->max_value & 0xff; - keymsk |= key->channel_mask & 0x3ff; - } - - keymax |= (plane_state->base.alpha >> 8) << PLANE_KEYMAX_ALPHA_SHIFT; - - if (plane_state->base.alpha < 0xff00) - keymsk |= PLANE_KEYMSK_ALPHA_ENABLE; - + I915_WRITE_FW(PLANE_KEYVAL(pipe, plane_id), key->min_value); I915_WRITE_FW(PLANE_KEYMAX(pipe, plane_id), keymax); I915_WRITE_FW(PLANE_KEYMSK(pipe, plane_id), keymsk); -- 2.18.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH v2 06/14] drm/i915: Reorganize plane register writes to make them more atomic
From: Ville Syrjälä Some observations about the plane registers: - the control register will self-arm if the plane is not already enabled, thus we want to write it as close to (or ideally after) the surface register - tileoff/linoff/offset/aux_offset are self-arming as well so we want them close to the surface register as well - color keying registers we maybe self arming before SKL. Not 100% sure but we can try to keep them near to the surface register as well - chv pipe b csc register are double buffered but self arming so moving them down a bit - the rest should be mostly armed by the surface register so we can safely write them first, and to just for some consistency let's try to follow keep them in order based on the register offset v2: Rebase due to input CSC Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/intel_display.c | 40 + drivers/gpu/drm/i915/intel_sprite.c | 120 +++ 2 files changed, 89 insertions(+), 71 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index ae6d58dbf1ed..ac46497cfc52 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -3313,7 +3313,6 @@ static void i9xx_update_plane(struct intel_plane *plane, enum i9xx_plane_id i9xx_plane = plane->i9xx_plane; u32 linear_offset; u32 dspcntr = plane_state->ctl; - i915_reg_t reg = DSPCNTR(i9xx_plane); int x = plane_state->color_plane[0].x; int y = plane_state->color_plane[0].y; unsigned long irqflags; @@ -3328,41 +3327,45 @@ static void i9xx_update_plane(struct intel_plane *plane, spin_lock_irqsave(&dev_priv->uncore.lock, irqflags); + I915_WRITE_FW(DSPSTRIDE(i9xx_plane), plane_state->color_plane[0].stride); + if (INTEL_GEN(dev_priv) < 4) { /* pipesrc and dspsize control the size that is scaled from, * which should always be the user's requested size. */ + I915_WRITE_FW(DSPPOS(i9xx_plane), 0); I915_WRITE_FW(DSPSIZE(i9xx_plane), ((crtc_state->pipe_src_h - 1) << 16) | (crtc_state->pipe_src_w - 1)); - I915_WRITE_FW(DSPPOS(i9xx_plane), 0); } else if (IS_CHERRYVIEW(dev_priv) && i9xx_plane == PLANE_B) { + I915_WRITE_FW(PRIMPOS(i9xx_plane), 0); I915_WRITE_FW(PRIMSIZE(i9xx_plane), ((crtc_state->pipe_src_h - 1) << 16) | (crtc_state->pipe_src_w - 1)); - I915_WRITE_FW(PRIMPOS(i9xx_plane), 0); I915_WRITE_FW(PRIMCNSTALPHA(i9xx_plane), 0); } - I915_WRITE_FW(reg, dspcntr); - - I915_WRITE_FW(DSPSTRIDE(i9xx_plane), plane_state->color_plane[0].stride); if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) { - I915_WRITE_FW(DSPSURF(i9xx_plane), - intel_plane_ggtt_offset(plane_state) + - dspaddr_offset); I915_WRITE_FW(DSPOFFSET(i9xx_plane), (y << 16) | x); } else if (INTEL_GEN(dev_priv) >= 4) { + I915_WRITE_FW(DSPTILEOFF(i9xx_plane), (y << 16) | x); + I915_WRITE_FW(DSPLINOFF(i9xx_plane), linear_offset); + } + + /* +* The control register self-arms if the plane was previously +* disabled. Try to make the plane enable atomic by writing +* the control register just before the surface register. +*/ + I915_WRITE_FW(DSPCNTR(i9xx_plane), dspcntr); + if (INTEL_GEN(dev_priv) >= 4) I915_WRITE_FW(DSPSURF(i9xx_plane), intel_plane_ggtt_offset(plane_state) + dspaddr_offset); - I915_WRITE_FW(DSPTILEOFF(i9xx_plane), (y << 16) | x); - I915_WRITE_FW(DSPLINOFF(i9xx_plane), linear_offset); - } else { + else I915_WRITE_FW(DSPADDR(i9xx_plane), intel_plane_ggtt_offset(plane_state) + dspaddr_offset); - } spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags); } @@ -10013,8 +10016,8 @@ static void i9xx_update_cursor(struct intel_plane *plane, * On some platforms writing CURCNTR first will also * cause CURPOS to be armed by the CURBASE write. * Without the CURCNTR write the CURPOS write would -* arm itself. Thus we always start the full update -* with a CURCNTR write. +* arm itself. Thus we always update CURCNTR before +* CURPOS. * * On other platforms CURPOS always requires the * CURBASE write to arm the update. Additonally @@ -10024,15 +10027,16 @@ static void i9xx_update_cursor(struct intel_plane *plane, * cursor that doesn't appear to move, or even change *
[Intel-gfx] [PATCH v2 12/14] drm/i915: Remove some useless zeroing on skl+ wm calculations
From: Ville Syrjälä We memset(0) the entire watermark struct the start, so there's no need to clear things later on. v2: Rebase due to some stale w/a removal Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/intel_pm.c | 16 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 791d75322732..749e8d814ce5 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -4706,10 +4706,8 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv, if (latency == 0) return level == 0 ? -EINVAL : 0; - if (!intel_wm_plane_visible(cstate, intel_pstate)) { - result->plane_en = false; + if (!intel_wm_plane_visible(cstate, intel_pstate)) return 0; - } /* Display WA #1141: kbl,cfl */ if ((IS_KABYLAKE(dev_priv) || IS_COFFEELAKE(dev_priv) || @@ -4806,8 +4804,6 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv, if ((level > 0 && res_lines > 31) || res_blocks >= ddb_allocation || min_disp_buf_needed >= ddb_allocation) { - result->plane_en = false; - /* * If there are no valid level 0 watermarks, then we can't * support this display configuration. @@ -4909,15 +4905,15 @@ static void skl_compute_transition_wm(const struct intel_crtc_state *cstate, uint16_t wm0_sel_res_b, trans_offset_b, res_blocks; if (!cstate->base.active) - goto exit; + return; /* Transition WM are not recommended by HW team for GEN9 */ if (INTEL_GEN(dev_priv) <= 9) - goto exit; + return; /* Transition WM don't make any sense if ipc is disabled */ if (!dev_priv->ipc_enabled) - goto exit; + return; trans_min = 14; if (INTEL_GEN(dev_priv) >= 11) @@ -4956,11 +4952,7 @@ static void skl_compute_transition_wm(const struct intel_crtc_state *cstate, if (res_blocks < ddb_allocation) { trans_wm->plane_res_b = res_blocks; trans_wm->plane_en = true; - return; } - -exit: - trans_wm->plane_en = false; } static int __skl_build_plane_wm_single(struct skl_ddb_allocation *ddb, -- 2.18.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: HPD IRQ storm detection fixes (rev5)
== Series Details == Series: drm/i915: HPD IRQ storm detection fixes (rev5) URL : https://patchwork.freedesktop.org/series/51556/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5096_full -> Patchwork_10746_full = == Summary - WARNING == Minor unknown changes coming with Patchwork_10746_full need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10746_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10746_full: === IGT changes === Warnings igt@pm_rc6_residency@rc6-accuracy: shard-kbl: SKIP -> PASS shard-snb: PASS -> SKIP == Known issues == Here are the changes found in Patchwork_10746_full that come from known issues: === IGT changes === Issues hit igt@gem_cpu_reloc@full: shard-skl: PASS -> INCOMPLETE (fdo#108073) igt@gem_ctx_isolation@rcs0-s3: shard-skl: PASS -> INCOMPLETE (fdo#104108, fdo#107773) igt@kms_busy@extended-modeset-hang-newfb-render-b: shard-skl: NOTRUN -> DMESG-WARN (fdo#107956) igt@kms_cursor_crc@cursor-256x256-onscreen: shard-glk: PASS -> FAIL (fdo#103232) +1 igt@kms_cursor_crc@cursor-256x256-random: shard-apl: PASS -> FAIL (fdo#103232) +2 igt@kms_cursor_crc@cursor-256x256-suspend: shard-skl: PASS -> INCOMPLETE (fdo#104108) igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move: shard-glk: PASS -> FAIL (fdo#103167) +5 igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render: shard-skl: NOTRUN -> FAIL (fdo#103167) igt@kms_pipe_crc_basic@read-crc-pipe-c: shard-skl: PASS -> FAIL (fdo#107362) igt@kms_plane_alpha_blend@pipe-a-alpha-basic: shard-skl: NOTRUN -> FAIL (fdo#107815, fdo#108145) igt@kms_plane_alpha_blend@pipe-c-alpha-transparant-fb: shard-skl: NOTRUN -> FAIL (fdo#108145) +1 igt@pm_rpm@universal-planes: shard-skl: PASS -> INCOMPLETE (fdo#107807) Possible fixes igt@drv_suspend@shrink: shard-skl: INCOMPLETE (fdo#106886) -> PASS shard-glk: INCOMPLETE (fdo#106886, k.org#198133, fdo#103359) -> PASS igt@gem_ctx_isolation@vcs0-s3: shard-skl: INCOMPLETE (fdo#104108, fdo#107773) -> PASS igt@gem_exec_reuse@baggage: shard-apl: DMESG-WARN (fdo#108690) -> PASS igt@kms_cursor_crc@cursor-128x42-sliding: shard-apl: FAIL (fdo#103232) -> PASS +1 igt@kms_cursor_crc@cursor-64x64-random: shard-glk: FAIL (fdo#103232) -> PASS igt@kms_draw_crc@draw-method-xrgb2101010-blt-untiled: shard-skl: FAIL (fdo#103184) -> PASS igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-untiled: shard-skl: FAIL (fdo#103232, fdo#103184) -> PASS igt@kms_flip@2x-flip-vs-expired-vblank-interruptible: shard-hsw: FAIL (fdo#102887) -> PASS igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render: shard-skl: FAIL (fdo#105682) -> PASS igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt: shard-apl: FAIL (fdo#103167) -> PASS +1 igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-pwrite: shard-skl: FAIL (fdo#103167) -> PASS +1 igt@kms_plane@plane-position-covered-pipe-b-planes: shard-apl: FAIL (fdo#103166) -> PASS igt@kms_plane_alpha_blend@pipe-b-coverage-7efc: shard-skl: FAIL (fdo#107815) -> PASS igt@pm_rpm@dpms-lpsp: shard-skl: INCOMPLETE (fdo#107807) -> PASS +2 igt@prime_busy@after-vebox: shard-snb: INCOMPLETE (fdo#105411) -> SKIP fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887 fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166 fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103184 https://bugs.freedesktop.org/show_bug.cgi?id=103184 fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232 fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359 fdo#104108 https://bugs.freedesktop.org/show_bug.cgi?id=104108 fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411 fdo#105682 https://bugs.freedesktop.org/show_bug.cgi?id=105682 fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107773 https://bugs.freedesktop.org/show_bug.cgi?id=107773 fdo#107807 https://bugs.freedesktop.org/show_bug.cgi?id=107807 fdo#107815 https://bugs.freedesktop.org/show_bug.cgi?id=107815 fdo#107956 https://bugs.freedesktop
[Intel-gfx] [PATCH v2 13/14] drm/i915: Move ddb/wm programming into plane update/disable hooks on skl+
From: Ville Syrjälä On SKL+ the plane WM/BUF_CFG registers are a proper part of each plane's register set. That means accessing them will cancel any pending plane update, and we would need a PLANE_SURF register write to arm the wm/ddb change as well. To avoid all the problems with that let's just move the wm/ddb programming into the plane update/disable hooks. Now all plane registers get written in one (hopefully atomic) operation. To make that feasible we'll move the plane ddb tracking into the crtc state. Watermarks were already tracked there. v2: Rebase due to input CSC Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/i915_debugfs.c | 21 +- drivers/gpu/drm/i915/i915_drv.h | 3 - drivers/gpu/drm/i915/intel_display.c | 16 +- drivers/gpu/drm/i915/intel_display.h | 11 +- drivers/gpu/drm/i915/intel_drv.h | 9 + drivers/gpu/drm/i915/intel_pm.c | 450 --- drivers/gpu/drm/i915/intel_sprite.c | 4 + 7 files changed, 250 insertions(+), 264 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index f60485906f7e..3e80a04d2790 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -3437,31 +3437,32 @@ static int i915_ddb_info(struct seq_file *m, void *unused) { struct drm_i915_private *dev_priv = node_to_i915(m->private); struct drm_device *dev = &dev_priv->drm; - struct skl_ddb_allocation *ddb; struct skl_ddb_entry *entry; - enum pipe pipe; - int plane; + struct intel_crtc *crtc; if (INTEL_GEN(dev_priv) < 9) return -ENODEV; drm_modeset_lock_all(dev); - ddb = &dev_priv->wm.skl_hw.ddb; - seq_printf(m, "%-15s%8s%8s%8s\n", "", "Start", "End", "Size"); - for_each_pipe(dev_priv, pipe) { + for_each_intel_crtc(&dev_priv->drm, crtc) { + struct intel_crtc_state *crtc_state = + to_intel_crtc_state(crtc->base.state); + enum pipe pipe = crtc->pipe; + enum plane_id plane_id; + seq_printf(m, "Pipe %c\n", pipe_name(pipe)); - for_each_universal_plane(dev_priv, pipe, plane) { - entry = &ddb->plane[pipe][plane]; - seq_printf(m, " Plane%-8d%8u%8u%8u\n", plane + 1, + for_each_plane_id_on_crtc(crtc, plane_id) { + entry = &crtc_state->wm.skl.plane_ddb_y[plane_id]; + seq_printf(m, " Plane%-8d%8u%8u%8u\n", plane_id + 1, entry->start, entry->end, skl_ddb_entry_size(entry)); } - entry = &ddb->plane[pipe][PLANE_CURSOR]; + entry = &crtc_state->wm.skl.plane_ddb_y[PLANE_CURSOR]; seq_printf(m, " %-13s%8u%8u%8u\n", "Cursor", entry->start, entry->end, skl_ddb_entry_size(entry)); } diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 2a88a7eb871b..17023a869091 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -1236,9 +1236,6 @@ static inline bool skl_ddb_entry_equal(const struct skl_ddb_entry *e1, } struct skl_ddb_allocation { - /* packed/y */ - struct skl_ddb_entry plane[I915_MAX_PIPES][I915_MAX_PLANES]; - struct skl_ddb_entry uv_plane[I915_MAX_PIPES][I915_MAX_PLANES]; u8 enabled_slices; /* GEN11 has configurable 2 slices */ }; diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index ac3687a0245d..f497bb521baf 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -10040,6 +10040,10 @@ static void i9xx_update_cursor(struct intel_plane *plane, * except when the plane is getting enabled at which time * the CURCNTR write arms the update. */ + + if (INTEL_GEN(dev_priv) >= 9) + skl_write_cursor_wm(plane, crtc_state); + if (plane->cursor.base != base || plane->cursor.size != fbc_ctl || plane->cursor.cntl != cntl) { @@ -11829,6 +11833,8 @@ static void verify_wm_state(struct drm_crtc *crtc, struct skl_pipe_wm hw_wm, *sw_wm; struct skl_plane_wm *hw_plane_wm, *sw_plane_wm; struct skl_ddb_entry *hw_ddb_entry, *sw_ddb_entry; + struct skl_ddb_entry hw_ddb_y[I915_MAX_PLANES]; + struct skl_ddb_entry hw_ddb_uv[I915_MAX_PLANES]; struct intel_crtc *intel_crtc = to_intel_crtc(crtc); const enum pipe pipe = intel_crtc->pipe; int plane, level, max_level = ilk_wm_max_level(dev_priv); @@ -11839,6 +11845,8 @@ static void verify_wm_state(struct drm_crtc *crtc, skl_pipe_wm_get_hw_state(crtc, &hw_wm); sw_wm = &to_intel_crtc_state(new_state)->wm.skl.optimal; + skl_pipe_ddb_get_hw_state(intel_crtc, hw_ddb_y, hw_dd
Re: [Intel-gfx] [PATCH] drm/i915/icl: Fix power well 2 wrt. DC-off toggling order
On Fri, Nov 02, 2018 at 08:22:00PM +0200, Imre Deak wrote: > To enable DC5/6 power well 2 has to be disabled as for previous > platforms, so fix things up. > > Bspec: 4234 > Fixes: 67ca07e7ac10 ("drm/i915/icl: Add power well support") > Cc: Animesh Manna > Cc: Paulo Zanoni > Cc: Ville Syrjälä > Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä > --- > drivers/gpu/drm/i915/intel_runtime_pm.c | 12 ++-- > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c > b/drivers/gpu/drm/i915/intel_runtime_pm.c > index 763912c0245c..c9c1477e648b 100644 > --- a/drivers/gpu/drm/i915/intel_runtime_pm.c > +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c > @@ -2799,6 +2799,12 @@ static const struct i915_power_well_desc > icl_power_wells[] = { > }, > }, > { > + .name = "DC off", > + .domains = ICL_DISPLAY_DC_OFF_POWER_DOMAINS, > + .ops = &gen9_dc_off_power_well_ops, > + .id = DISP_PW_ID_NONE, > + }, > + { > .name = "power well 2", > .domains = ICL_PW_2_POWER_DOMAINS, > .ops = &hsw_power_well_ops, > @@ -2810,12 +2816,6 @@ static const struct i915_power_well_desc > icl_power_wells[] = { > }, > }, > { > - .name = "DC off", > - .domains = ICL_DISPLAY_DC_OFF_POWER_DOMAINS, > - .ops = &gen9_dc_off_power_well_ops, > - .id = DISP_PW_ID_NONE, > - }, > - { > .name = "power well 3", > .domains = ICL_PW_3_POWER_DOMAINS, > .ops = &hsw_power_well_ops, > -- > 2.13.2 -- 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 v5 5/5] drm/i915: Add short HPD IRQ storm detection for non-MST systems
On Tue, Nov 06, 2018 at 04:30:16PM -0500, Lyude Paul wrote: > Unfortunately, it seems that the HPD IRQ storm problem from the early > days of Intel GPUs was never entirely solved, only mostly. Within the > last couple of days, I got a bug report from one of our customers who > had been having issues with their machine suddenly booting up very > slowly after having updated. The amount of time it took to boot went > from around 30 seconds, to over 6 minutes consistently. > > After some investigation, I discovered that i915 was reporting massive > amounts of short HPD IRQ spam on this system from the DisplayPort port, > despite there not being anything actually connected. The symptoms would > start with one "long" HPD IRQ being detected at boot: > > [1.891398] [drm:intel_get_hpd_pins [i915]] hotplug event received, stat > 0x0044, dig 0x0044, pins 0x00a0 > [1.891436] [drm:intel_hpd_irq_handler [i915]] digital hpd port B - long > [1.891472] [drm:intel_hpd_irq_handler [i915]] Received HPD interrupt on > PIN 5 - cnt: 0 > [1.891508] [drm:intel_hpd_irq_handler [i915]] digital hpd port D - long > [1.891544] [drm:intel_hpd_irq_handler [i915]] Received HPD interrupt on > PIN 7 - cnt: 0 > [1.891592] [drm:intel_dp_hpd_pulse [i915]] got hpd irq on port B - long > [1.891628] [drm:intel_dp_hpd_pulse [i915]] got hpd irq on port D - long > … > > followed by constant short IRQs afterwards: > > [1.895091] [drm:intel_encoder_hotplug [i915]] [CONNECTOR:66:DP-1] status > updated from unknown to disconnected > [1.895129] [drm:i915_hotplug_work_func [i915]] Connector DP-3 (pin 7) > received hotplug event. > [1.895165] [drm:intel_dp_detect [i915]] [CONNECTOR:72:DP-3] > [1.895275] [drm:intel_get_hpd_pins [i915]] hotplug event received, stat > 0x0020, dig 0x0020, pins 0x0080 > [1.895312] [drm:intel_hpd_irq_handler [i915]] digital hpd port D - short > [1.895762] [drm:intel_get_hpd_pins [i915]] hotplug event received, stat > 0x0020, dig 0x0020, pins 0x0080 > [1.895799] [drm:intel_hpd_irq_handler [i915]] digital hpd port D - short > [1.896239] [drm:intel_dp_aux_xfer [i915]] dp_aux_ch timeout status > 0x71450085 > [1.896293] [drm:intel_get_hpd_pins [i915]] hotplug event received, stat > 0x0020, dig 0x0020, pins 0x0080 > [1.896330] [drm:intel_hpd_irq_handler [i915]] digital hpd port D - short > [1.896781] [drm:intel_get_hpd_pins [i915]] hotplug event received, stat > 0x0020, dig 0x0020, pins 0x0080 > [1.896817] [drm:intel_hpd_irq_handler [i915]] digital hpd port D - short > [1.897275] [drm:intel_get_hpd_pins [i915]] hotplug event received, stat > 0x0020, dig 0x0020, pins 0x0080 > > The customer's system in question has a GM45 GPU, which is apparently > well known for hotplugging storms. > > So, workaround this impressively broken hardware by changing the default > HPD storm threshold from 5 to 50. Then, make long IRQs count for 10, and > short IRQs count for 1. This makes it so that 5 long IRQs will trigger > an HPD storm, and on systems with short HPD storm detection 50 short > IRQs will trigger an HPD storm. 50 short IRQs amounts to 100ms of > constant pulsing, which seems like a good middleground between being too > sensitive and not being sensitive enough (which would cause visible > stutters in userspace every time a storm occurs). > > And just to be extra safe: we don't enable this by default on systems > with MST support. There's too high of a chance of MST support triggering > storm detection, and systems that are new enough to support MST are a > lot less likely to have issues with IRQ storms anyway. > > As a note: this patch was tested using a ThinkPad T450s and a Chamelium > to simulate the short IRQ storms. > > Changes since v1: > - Don't use two separate thresholds, just make long IRQs count for 10 > each and short IRQs count for 1. This simplifies the code a bit > - Ville Syrjälä > Changes since v2: > - Document @long_hpd in intel_hpd_irq_storm_detect, no functional > changes > Changes since v4: > - Remove !! in long_hpd assignment - Ville Syrjälä > - queue_hp = true - Ville Syrjälä > > Signed-off-by: Lyude Paul > Cc: Ville Syrjälä > Cc: Rodrigo Vivi lgtm Reviewed-by: Ville Syrjälä > --- > drivers/gpu/drm/i915/i915_debugfs.c | 74 > drivers/gpu/drm/i915/i915_drv.h | 5 +- > drivers/gpu/drm/i915/i915_irq.c | 7 +++ > drivers/gpu/drm/i915/intel_hotplug.c | 50 +++ > 4 files changed, 115 insertions(+), 21 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c > b/drivers/gpu/drm/i915/i915_debugfs.c > index f60485906f7e..670db5073d70 100644 > --- a/drivers/gpu/drm/i915/i915_debugfs.c > +++ b/drivers/gpu/drm/i915/i915_debugfs.c > @@ -4658,6 +4658,79 @@ static const struct file_operations > i915_hpd_storm_ctl_fops = { > .write = i915_hpd_storm_ctl_write > }; > > +stati
Re: [Intel-gfx] [PATCH 03/14] drm/i915: Remove the PS_PWR_GATE write from skl_program_scaler()
On Thu, Nov 01, 2018 at 05:05:54PM +0200, Ville Syrjala wrote: > From: Ville Syrjälä > > If we don't need the PS_PWR_GATE write when programming the > pipe scaler I don't see why we'd need it for plane scalers either. > Just remove it. > > Signed-off-by: Ville Syrjälä Reviewed-by: Rodrigo Vivi > --- > drivers/gpu/drm/i915/intel_sprite.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_sprite.c > b/drivers/gpu/drm/i915/intel_sprite.c > index a1e215636331..399d44c57a7d 100644 > --- a/drivers/gpu/drm/i915/intel_sprite.c > +++ b/drivers/gpu/drm/i915/intel_sprite.c > @@ -354,7 +354,6 @@ skl_program_scaler(struct intel_plane *plane, > > I915_WRITE_FW(SKL_PS_CTRL(pipe, scaler_id), > PS_SCALER_EN | PS_PLANE_SEL(plane->id) | scaler->mode); > - I915_WRITE_FW(SKL_PS_PWR_GATE(pipe, scaler_id), 0); > I915_WRITE_FW(SKL_PS_VPHASE(pipe, scaler_id), > PS_Y_PHASE(y_vphase) | PS_UV_RGB_PHASE(uv_rgb_vphase)); > I915_WRITE_FW(SKL_PS_HPHASE(pipe, scaler_id), > -- > 2.18.1 > > ___ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915: Program SKL+ watermarks/ddb more carefully (rev6)
== Series Details == Series: drm/i915: Program SKL+ watermarks/ddb more carefully (rev6) URL : https://patchwork.freedesktop.org/series/51878/ State : failure == Summary == Applying: drm/i915: Nuke posting reads from plane update/disable funcs error: sha1 information is lacking or useless (drivers/gpu/drm/i915/intel_display.c). error: could not build fake ancestor Patch failed at 0001 drm/i915: Nuke posting reads from plane update/disable funcs Use 'git am --show-current-patch' to see the failed 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
Re: [Intel-gfx] [PATCH 04/14] drm/i915: Polish the skl+ plane keyval/msk/max register setup
On Thu, Nov 01, 2018 at 05:05:55PM +0200, Ville Syrjala wrote: > From: Ville Syrjälä > > Due to the constant alpha we're going to have to program two of > the the tree keying registers anyway, so might as well always > program all three. > > And parametrize the plane constant alpha define while at it. > > Signed-off-by: Ville Syrjälä I'm not 100% confident we can just ignore the key->flags, but I couldn't convince me that we need that either. And clean-up by itself looks good, so: Reviewed-by: Rodrigo Vivi > --- > drivers/gpu/drm/i915/i915_reg.h | 2 +- > drivers/gpu/drm/i915/intel_sprite.c | 22 +- > 2 files changed, 10 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h > index 8d089ef848b2..b6ee863b5df2 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -6545,7 +6545,7 @@ enum { > #define PLANE_KEYMSK_ALPHA_ENABLE (1 << 31) > #define _PLANE_KEYMAX_1_A0x701a0 > #define _PLANE_KEYMAX_2_A0x702a0 > -#define PLANE_KEYMAX_ALPHA_SHIFT24 > +#define PLANE_KEYMAX_ALPHA(a) ((a) << 24) > #define _PLANE_AUX_DIST_1_A 0x701c0 > #define _PLANE_AUX_DIST_2_A 0x702c0 > #define _PLANE_AUX_OFFSET_1_A0x701c4 > diff --git a/drivers/gpu/drm/i915/intel_sprite.c > b/drivers/gpu/drm/i915/intel_sprite.c > index 399d44c57a7d..b36238282b4e 100644 > --- a/drivers/gpu/drm/i915/intel_sprite.c > +++ b/drivers/gpu/drm/i915/intel_sprite.c > @@ -382,31 +382,27 @@ skl_program_plane(struct intel_plane *plane, > uint32_t src_w = drm_rect_width(&plane_state->base.src) >> 16; > uint32_t src_h = drm_rect_height(&plane_state->base.src) >> 16; > struct intel_plane *linked = plane_state->linked_plane; > + u8 alpha = plane_state->base.alpha >> 8; > unsigned long irqflags; > - u32 keymsk = 0, keymax = 0; > + u32 keymsk, keymax; > > /* Sizes are 0 based */ > src_w--; > src_h--; > > + keymax = (key->max_value & 0xff) | PLANE_KEYMAX_ALPHA(alpha); > + > + keymsk = key->channel_mask & 0x3ff; > + if (alpha < 0xff) > + keymsk |= PLANE_KEYMSK_ALPHA_ENABLE; > + > spin_lock_irqsave(&dev_priv->uncore.lock, irqflags); > > if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) > I915_WRITE_FW(PLANE_COLOR_CTL(pipe, plane_id), > plane_state->color_ctl); > > - if (key->flags) { > - I915_WRITE_FW(PLANE_KEYVAL(pipe, plane_id), key->min_value); > - > - keymax |= key->max_value & 0xff; > - keymsk |= key->channel_mask & 0x3ff; > - } > - > - keymax |= (plane_state->base.alpha >> 8) << PLANE_KEYMAX_ALPHA_SHIFT; > - > - if (plane_state->base.alpha < 0xff00) > - keymsk |= PLANE_KEYMSK_ALPHA_ENABLE; > - > + I915_WRITE_FW(PLANE_KEYVAL(pipe, plane_id), key->min_value); > I915_WRITE_FW(PLANE_KEYMAX(pipe, plane_id), keymax); > I915_WRITE_FW(PLANE_KEYMSK(pipe, plane_id), keymsk); > > -- > 2.18.1 > > ___ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm: Check if primary mst is null
Thanks for noticing this one! With the changes that Ville mentioned in their response: Reviewed-by: Lyude Paul If you need me to push this for you; poke me here or on IRC On Wed, 2018-11-07 at 18:11 +0200, Stanislav Lisovskiy wrote: > Unfortunately drm_dp_get_mst_branch_device which is called from both > drm_dp_mst_handle_down_rep and drm_dp_mst_handle_up_rep seem to rely > on that mgr->mst_primary is not NULL, which seem to be wrong as it can be > cleared with simultaneous mode set, if probing fails or in other case. > mgr->lock mutex doesn't protect against that as it might just get assigned > to NULL > right before, not simultaneously. > There are currently bugs 107738, 108816 bugs which crash in > drm_dp_get_mst_branch_device, caused by this issue. > > Signed-off-by: Stanislav Lisovskiy > --- > drivers/gpu/drm/drm_dp_mst_topology.c | 6 ++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c > b/drivers/gpu/drm/drm_dp_mst_topology.c > index 5ff1d79b86c4..fb90ed4cdc3a 100644 > --- a/drivers/gpu/drm/drm_dp_mst_topology.c > +++ b/drivers/gpu/drm/drm_dp_mst_topology.c > @@ -1273,6 +1273,12 @@ static struct drm_dp_mst_branch > *drm_dp_get_mst_branch_device(struct drm_dp_mst_ > /* find the port by iterating down */ > > mutex_lock(&mgr->lock); > + > + if (!mgr->mst_primary) { > + mstb = NULL; > + goto out; > + } > + > mstb = mgr->mst_primary; > > for (i = 0; i < lct - 1; i++) { -- Cheers, Lyude Paul ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 05/14] drm/i915: Clean up skl+ PLANE_POS vs. scaler handling
On Thu, Nov 01, 2018 at 05:05:56PM +0200, Ville Syrjala wrote: > From: Ville Syrjälä > > On skl+ the scaler (when enabled) will take care of the plane output > position. Make the code less ugly by just setting crtc_x/y to 0 > when the scaler is enabled. > > Signed-off-by: Ville Syrjälä Reviewed-by: Rodrigo Vivi > --- > drivers/gpu/drm/i915/intel_sprite.c | 16 +--- > 1 file changed, 9 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_sprite.c > b/drivers/gpu/drm/i915/intel_sprite.c > index b36238282b4e..8a40879abe30 100644 > --- a/drivers/gpu/drm/i915/intel_sprite.c > +++ b/drivers/gpu/drm/i915/intel_sprite.c > @@ -396,6 +396,12 @@ skl_program_plane(struct intel_plane *plane, > if (alpha < 0xff) > keymsk |= PLANE_KEYMSK_ALPHA_ENABLE; > > + /* The scaler will handle the output position */ > + if (plane_state->scaler_id >= 0) { > + crtc_x = 0; > + crtc_y = 0; > + } > + > spin_lock_irqsave(&dev_priv->uncore.lock, irqflags); > > if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) > @@ -438,14 +444,10 @@ skl_program_plane(struct intel_plane *plane, > I915_WRITE_FW(PLANE_CUS_CTL(pipe, plane_id), cus_ctl); > } > > - if (plane_state->scaler_id >= 0) { > - if (!slave) > - skl_program_scaler(plane, crtc_state, plane_state); > + if (!slave && plane_state->scaler_id >= 0) > + skl_program_scaler(plane, crtc_state, plane_state); > > - I915_WRITE_FW(PLANE_POS(pipe, plane_id), 0); > - } else { > - I915_WRITE_FW(PLANE_POS(pipe, plane_id), (crtc_y << 16) | > crtc_x); > - } > + I915_WRITE_FW(PLANE_POS(pipe, plane_id), (crtc_y << 16) | crtc_x); > > I915_WRITE_FW(PLANE_CTL(pipe, plane_id), plane_ctl); > I915_WRITE_FW(PLANE_SURF(pipe, plane_id), > -- > 2.18.1 > > ___ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 2/2] drm/i915/icl: Fix PLL mapping sanitization for DP ports
We shouldn't consider an encoder inactive if it doesn't have a CRTC linked, but has virtual MST encoders with a crtc linked. Fix this. Also we should not sanitize the mapping for MST encoders, as it's always their primary encoder (which could be even in SST mode) whose active state determines if we need the clock being enabled for the corresponding physical port. Fix this too. This fixes at least an existing breakage where we incorrectly disabled the clock for an active DP encoder when sanitizing its MST virtual encoders. Not sure if there are BIOSes that enable an output in MST mode, but our HW readout is mostly missing for it anyway, so just warn for that case. Fixes: 70332ac539c5 ("drm/i915/icl+: Sanitize port to PLL mapping") Cc: Antonio Argenziano Cc: Paulo Zanoni Cc: Ville Syrjälä Cc: José Roberto de Souza Cc: Rodrigo Vivi Reported-by: Antonio Argenziano Signed-off-by: Imre Deak --- drivers/gpu/drm/i915/intel_ddi.c | 27 +-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index abc51693eec9..4913bbdac843 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c @@ -2853,9 +2853,32 @@ void icl_unmap_plls_to_ports(struct drm_crtc *crtc, void icl_sanitize_encoder_pll_mapping(struct intel_encoder *encoder) { struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); - u32 val = I915_READ(DPCLKA_CFGCR0_ICL); + u32 val; enum port port = encoder->port; - bool clk_enabled = !(val & icl_dpclka_cfgcr0_clk_off(dev_priv, port)); + bool clk_enabled; + + /* +* In case of DP MST, we sanitize the primary encoder only, not the +* virtual ones. +*/ + if (encoder->type == INTEL_OUTPUT_DP_MST) + return; + + val = I915_READ(DPCLKA_CFGCR0_ICL); + clk_enabled = !(val & icl_dpclka_cfgcr0_clk_off(dev_priv, port)); + + if (!encoder->base.crtc && intel_encoder_is_dp(encoder)) { + u8 pipe_mask; + bool is_mst; + + intel_ddi_get_encoder_pipes(encoder, &pipe_mask, &is_mst); + /* +* In the unlikely case that BIOS enables DP in MST mode, just +* warn since our MST HW readout is incomplete. +*/ + if (WARN_ON(is_mst)) + return; + } if (clk_enabled == !!encoder->base.crtc) return; -- 2.13.2 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 1/2] drm/i915/ddi: Add more sanity check to the encoder HW readout
Check for reserved register field values and conflicting transcoder->port mappings (both MST and non-MST mappings or multiple SST mappings). This is also needed for the next patch to determine if a port is in MST mode during sanitization after HW readout. Cc: Paulo Zanoni Cc: Ville Syrjälä Cc: José Roberto de Souza Cc: Rodrigo Vivi Cc: Antonio Argenziano Signed-off-by: Imre Deak --- drivers/gpu/drm/i915/intel_ddi.c | 76 +++- 1 file changed, 52 insertions(+), 24 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index ab9a36c4ba3b..abc51693eec9 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c @@ -2005,24 +2005,24 @@ bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector) return ret; } -bool intel_ddi_get_hw_state(struct intel_encoder *encoder, - enum pipe *pipe) +static void intel_ddi_get_encoder_pipes(struct intel_encoder *encoder, + u8 *pipe_mask, bool *is_dp_mst) { struct drm_device *dev = encoder->base.dev; struct drm_i915_private *dev_priv = to_i915(dev); enum port port = encoder->port; enum pipe p; u32 tmp; - bool ret; + u8 mst_pipe_mask; + + *pipe_mask = 0; + *is_dp_mst = false; if (!intel_display_power_get_if_enabled(dev_priv, encoder->power_domain)) - return false; - - ret = false; + return; tmp = I915_READ(DDI_BUF_CTL(port)); - if (!(tmp & DDI_BUF_CTL_ENABLE)) goto out; @@ -2030,44 +2030,58 @@ bool intel_ddi_get_hw_state(struct intel_encoder *encoder, tmp = I915_READ(TRANS_DDI_FUNC_CTL(TRANSCODER_EDP)); switch (tmp & TRANS_DDI_EDP_INPUT_MASK) { + default: + MISSING_CASE(tmp & TRANS_DDI_EDP_INPUT_MASK); + /* fallthrough */ case TRANS_DDI_EDP_INPUT_A_ON: case TRANS_DDI_EDP_INPUT_A_ONOFF: - *pipe = PIPE_A; + *pipe_mask = BIT(PIPE_A); break; case TRANS_DDI_EDP_INPUT_B_ONOFF: - *pipe = PIPE_B; + *pipe_mask = BIT(PIPE_B); break; case TRANS_DDI_EDP_INPUT_C_ONOFF: - *pipe = PIPE_C; + *pipe_mask = BIT(PIPE_C); break; } - ret = true; - goto out; } + mst_pipe_mask = 0; for_each_pipe(dev_priv, p) { - enum transcoder cpu_transcoder = (enum transcoder) p; + enum transcoder cpu_transcoder = (enum transcoder)p; tmp = I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder)); - if ((tmp & TRANS_DDI_PORT_MASK) == TRANS_DDI_SELECT_PORT(port)) { - if ((tmp & TRANS_DDI_MODE_SELECT_MASK) == - TRANS_DDI_MODE_SELECT_DP_MST) - goto out; + if ((tmp & TRANS_DDI_PORT_MASK) != TRANS_DDI_SELECT_PORT(port)) + continue; - *pipe = p; - ret = true; + if ((tmp & TRANS_DDI_MODE_SELECT_MASK) == + TRANS_DDI_MODE_SELECT_DP_MST) + mst_pipe_mask |= BIT(p); - goto out; - } + *pipe_mask |= BIT(p); } - DRM_DEBUG_KMS("No pipe for ddi port %c found\n", port_name(port)); + if (!*pipe_mask) + DRM_DEBUG_KMS("No pipe for ddi port %c found\n", + port_name(port)); + + if (!mst_pipe_mask && hweight8(*pipe_mask) > 1) { + DRM_DEBUG_KMS("Multiple pipes for non DP-MST port %c (pipe_mask %02x)\n", + port_name(port), *pipe_mask); + *pipe_mask = BIT(ffs(*pipe_mask) - 1); + } + + if (mst_pipe_mask && mst_pipe_mask != *pipe_mask) + DRM_DEBUG_KMS("Conflicting MST and non-MST encoders for port %c (pipe_mask %02x mst_pipe_mask %02x)\n", + port_name(port), *pipe_mask, mst_pipe_mask); + else + *is_dp_mst = mst_pipe_mask; out: - if (ret && IS_GEN9_LP(dev_priv)) { + if (*pipe_mask && IS_GEN9_LP(dev_priv)) { tmp = I915_READ(BXT_PHY_CTL(port)); if ((tmp & (BXT_PHY_CMNLANE_POWERDOWN_ACK | BXT_PHY_LANE_POWERDOWN_ACK | @@ -2077,8 +2091,22 @@ bool intel_ddi_get_hw_state(struct intel_encoder *encoder, } intel_display_power_put(dev_priv, encoder->power_domain); +} - return ret; +bool intel_ddi_get_hw_state(struct intel_encoder *e
Re: [Intel-gfx] [PULL] drm-misc-next
On Wed, Nov 07, 2018 at 12:58:56PM +0100, Maarten Lankhorst wrote: > Hey Dave, > > First pull for drm-next this cycle. There's been a lot of changes, so I > hope I recorded everything from the changelog correctly. > > drm-misc-next-2018-11-07: > drm-misc-next for v4.21, part 1: > > UAPI Changes: > - Add syncobj timeline support to drm. With all the CI breakage this caused I kinda missed that it didn't get reverted. But afaict this didn't have the ack from anv/radv folks (which I explicitly asked for as part of what I think should be the merge criteria), and I'm not sure where the userspace is, and this here isn't just prep, but already adds new uapi. The prep work is imo totally ok to keep, but the uapi side seems rather questionable. -Daniel > > Cross-subsystem Changes: > - Remove shared fence staging in dma-buf's fence object, and allow > reserving more than 1 fence and add more paranoia when debugging. > - Constify infoframe functions in video/hdmi. > > Core Changes: > - Add vkms todo, and a lot of assorted doc fixes. > - Drop transitional helpers and convert drivers to use > drm_atomic_helper_shutdown(). > - Move atomic state helper functions to drm_atomic_state_helper.[ch] > - Refactor drm selftests, and add new tests. > - DP MST atomic state cleanups. > - Drop EXPORT_SYMBOL from drm leases. > - Lease cleanups and fixes. > - Create render node for vgem. > > Driver Changes: > - Fix build failure in imx without fbdev emulation. > - Add rotation quirk for GPD win2 panel. > - Add support for various CDTech panels, Banana Pi Panel, DLC1010GIG, > Olimex LCD-O-LinuXino, Samsung S6D16D0, Truly NT35597 WQXGA, > Himax HX8357D, simulated RTSM AEMv8. > - Add dw_hdmi support to rockchip driver. > - Fix YUV support in vc4. > - Fix resource id handling in virtio. > - Make rockchip use dw-mipi-dsi bridge driver, and add dual dsi support. > - Advertise that tinydrm only supports DRM_FORMAT_MOD_LINEAR. > - Convert many drivers to use atomic helpers, and drm_fbdev_generic_setup(). > - Add Mali linear tiled formats, and enable them in the Mali-DP driver. > - Add support for H6 DE3 mixer 0, DW HDMI, HDMI PHY and TCON TOP. > - Assorted driver cleanups and fixes. > > The following changes since commit f2bfc71aee75feff33ca659322b72ffeed5a243d: > > Merge tag 'drm-intel-next-fixes-2018-10-18' of > git://anongit.freedesktop.org/drm/drm-intel into drm-next (2018-10-19 > 14:28:11 +1000) > > are available in the Git repository at: > > git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-next-2018-11-07 > > for you to fetch changes up to e7afb623b4fb82089c9a50c733c740522b8220bc: > > drm: Add drm_any_plane_has_format() (2018-11-06 21:34:22 +0200) > > > drm-misc-next for v4.21, part 1: > > UAPI Changes: > - Add syncobj timeline support to drm. > > Cross-subsystem Changes: > - Remove shared fence staging in dma-buf's fence object, and allow > reserving more than 1 fence and add more paranoia when debugging. > - Constify infoframe functions in video/hdmi. > > Core Changes: > - Add vkms todo, and a lot of assorted doc fixes. > - Drop transitional helpers and convert drivers to use > drm_atomic_helper_shutdown(). > - Move atomic state helper functions to drm_atomic_state_helper.[ch] > - Refactor drm selftests, and add new tests. > - DP MST atomic state cleanups. > - Drop EXPORT_SYMBOL from drm leases. > - Lease cleanups and fixes. > - Create render node for vgem. > > Driver Changes: > - Fix build failure in imx without fbdev emulation. > - Add rotation quirk for GPD win2 panel. > - Add support for various CDTech panels, Banana Pi Panel, DLC1010GIG, > Olimex LCD-O-LinuXino, Samsung S6D16D0, Truly NT35597 WQXGA, > Himax HX8357D, simulated RTSM AEMv8. > - Add dw_hdmi support to rockchip driver. > - Fix YUV support in vc4. > - Fix resource id handling in virtio. > - Make rockchip use dw-mipi-dsi bridge driver, and add dual dsi support. > - Advertise that tinydrm only supports DRM_FORMAT_MOD_LINEAR. > - Convert many drivers to use atomic helpers, and drm_fbdev_generic_setup(). > - Add Mali linear tiled formats, and enable them in the Mali-DP driver. > - Add support for H6 DE3 mixer 0, DW HDMI, HDMI PHY and TCON TOP. > - Assorted driver cleanups and fixes. > > > Aaron Ma (2): > vgaarb: Add support for 64-bit frame buffer address > vgaarb: Keep adding VGA device in queue > > Abhinav Kumar (2): > drm/panel: Add support for Truly NT35597 panel driver > dt-bindings: Add Truly NT35597 panel driver bindings > > Alexandru Gheorghe (9): > drm: fourcc: Convert drm_format_info kerneldoc to in-line member > documentation > drm/selftest: Refactor test-drm_plane_helper > drm/fourcc: Add char_per_block, block_w and block_h in drm_format_info > drm/fourcc: Add fourcc for Mali linear tiled formats > drm: mali-dp: Enable Mali-DP t
Re: [Intel-gfx] [PULL] drm-misc-next
On Wed, Nov 07, 2018 at 09:18:16PM +0100, Daniel Vetter wrote: > On Wed, Nov 07, 2018 at 12:58:56PM +0100, Maarten Lankhorst wrote: > > Hey Dave, > > > > First pull for drm-next this cycle. There's been a lot of changes, so I > > hope I recorded everything from the changelog correctly. > > > > drm-misc-next-2018-11-07: > > drm-misc-next for v4.21, part 1: > > > > UAPI Changes: > > - Add syncobj timeline support to drm. > > With all the CI breakage this caused I kinda missed that it didn't get > reverted. But afaict this didn't have the ack from anv/radv folks (which I > explicitly asked for as part of what I think should be the merge > criteria), and I'm not sure where the userspace is, and this here isn't > just prep, but already adds new uapi. > +Christian Can you please land the revert while we get this sorted out? Sean > The prep work is imo totally ok to keep, but the uapi side seems rather > questionable. > -Daniel > > > > > Cross-subsystem Changes: > > - Remove shared fence staging in dma-buf's fence object, and allow > > reserving more than 1 fence and add more paranoia when debugging. > > - Constify infoframe functions in video/hdmi. > > > > Core Changes: > > - Add vkms todo, and a lot of assorted doc fixes. > > - Drop transitional helpers and convert drivers to use > > drm_atomic_helper_shutdown(). > > - Move atomic state helper functions to drm_atomic_state_helper.[ch] > > - Refactor drm selftests, and add new tests. > > - DP MST atomic state cleanups. > > - Drop EXPORT_SYMBOL from drm leases. > > - Lease cleanups and fixes. > > - Create render node for vgem. > > > > Driver Changes: > > - Fix build failure in imx without fbdev emulation. > > - Add rotation quirk for GPD win2 panel. > > - Add support for various CDTech panels, Banana Pi Panel, DLC1010GIG, > > Olimex LCD-O-LinuXino, Samsung S6D16D0, Truly NT35597 WQXGA, > > Himax HX8357D, simulated RTSM AEMv8. > > - Add dw_hdmi support to rockchip driver. > > - Fix YUV support in vc4. > > - Fix resource id handling in virtio. > > - Make rockchip use dw-mipi-dsi bridge driver, and add dual dsi support. > > - Advertise that tinydrm only supports DRM_FORMAT_MOD_LINEAR. > > - Convert many drivers to use atomic helpers, and drm_fbdev_generic_setup(). > > - Add Mali linear tiled formats, and enable them in the Mali-DP driver. > > - Add support for H6 DE3 mixer 0, DW HDMI, HDMI PHY and TCON TOP. > > - Assorted driver cleanups and fixes. > > > > The following changes since commit f2bfc71aee75feff33ca659322b72ffeed5a243d: > > > > Merge tag 'drm-intel-next-fixes-2018-10-18' of > > git://anongit.freedesktop.org/drm/drm-intel into drm-next (2018-10-19 > > 14:28:11 +1000) > > > > are available in the Git repository at: > > > > git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-next-2018-11-07 > > > > for you to fetch changes up to e7afb623b4fb82089c9a50c733c740522b8220bc: > > > > drm: Add drm_any_plane_has_format() (2018-11-06 21:34:22 +0200) > > > > > > drm-misc-next for v4.21, part 1: > > > > UAPI Changes: > > - Add syncobj timeline support to drm. > > > > Cross-subsystem Changes: > > - Remove shared fence staging in dma-buf's fence object, and allow > > reserving more than 1 fence and add more paranoia when debugging. > > - Constify infoframe functions in video/hdmi. > > > > Core Changes: > > - Add vkms todo, and a lot of assorted doc fixes. > > - Drop transitional helpers and convert drivers to use > > drm_atomic_helper_shutdown(). > > - Move atomic state helper functions to drm_atomic_state_helper.[ch] > > - Refactor drm selftests, and add new tests. > > - DP MST atomic state cleanups. > > - Drop EXPORT_SYMBOL from drm leases. > > - Lease cleanups and fixes. > > - Create render node for vgem. > > > > Driver Changes: > > - Fix build failure in imx without fbdev emulation. > > - Add rotation quirk for GPD win2 panel. > > - Add support for various CDTech panels, Banana Pi Panel, DLC1010GIG, > > Olimex LCD-O-LinuXino, Samsung S6D16D0, Truly NT35597 WQXGA, > > Himax HX8357D, simulated RTSM AEMv8. > > - Add dw_hdmi support to rockchip driver. > > - Fix YUV support in vc4. > > - Fix resource id handling in virtio. > > - Make rockchip use dw-mipi-dsi bridge driver, and add dual dsi support. > > - Advertise that tinydrm only supports DRM_FORMAT_MOD_LINEAR. > > - Convert many drivers to use atomic helpers, and drm_fbdev_generic_setup(). > > - Add Mali linear tiled formats, and enable them in the Mali-DP driver. > > - Add support for H6 DE3 mixer 0, DW HDMI, HDMI PHY and TCON TOP. > > - Assorted driver cleanups and fixes. > > > > > > Aaron Ma (2): > > vgaarb: Add support for 64-bit frame buffer address > > vgaarb: Keep adding VGA device in queue > > > > Abhinav Kumar (2): > > drm/panel: Add support for Truly NT35597 panel driver > > dt-bindings: Add Truly NT3559
Re: [Intel-gfx] [PULL] drm-misc-next
On Wed, Nov 7, 2018 at 9:29 PM Sean Paul wrote: > > On Wed, Nov 07, 2018 at 09:18:16PM +0100, Daniel Vetter wrote: > > On Wed, Nov 07, 2018 at 12:58:56PM +0100, Maarten Lankhorst wrote: > > > Hey Dave, > > > > > > First pull for drm-next this cycle. There's been a lot of changes, so I > > > hope I recorded everything from the changelog correctly. > > > > > > drm-misc-next-2018-11-07: > > > drm-misc-next for v4.21, part 1: > > > > > > UAPI Changes: > > > - Add syncobj timeline support to drm. > > > > With all the CI breakage this caused I kinda missed that it didn't get > > reverted. But afaict this didn't have the ack from anv/radv folks (which I > > explicitly asked for as part of what I think should be the merge > > criteria), and I'm not sure where the userspace is, and this here isn't > > just prep, but already adds new uapi. > > > > +Christian > > Can you please land the revert while we get this sorted out? The revert was for the CI breakage, which is sorted out differently already. That was kinda just my excuse for not being in the loop. For just the uapi disallowing timeline obj creation and moving the #define away from the uapi include is all that's really needed. Assuming of course that I'm not again having my stuff all mixed up :-) -Daniel > > Sean > > > The prep work is imo totally ok to keep, but the uapi side seems rather > > questionable. > > -Daniel > > > > > > > > Cross-subsystem Changes: > > > - Remove shared fence staging in dma-buf's fence object, and allow > > > reserving more than 1 fence and add more paranoia when debugging. > > > - Constify infoframe functions in video/hdmi. > > > > > > Core Changes: > > > - Add vkms todo, and a lot of assorted doc fixes. > > > - Drop transitional helpers and convert drivers to use > > > drm_atomic_helper_shutdown(). > > > - Move atomic state helper functions to drm_atomic_state_helper.[ch] > > > - Refactor drm selftests, and add new tests. > > > - DP MST atomic state cleanups. > > > - Drop EXPORT_SYMBOL from drm leases. > > > - Lease cleanups and fixes. > > > - Create render node for vgem. > > > > > > Driver Changes: > > > - Fix build failure in imx without fbdev emulation. > > > - Add rotation quirk for GPD win2 panel. > > > - Add support for various CDTech panels, Banana Pi Panel, DLC1010GIG, > > > Olimex LCD-O-LinuXino, Samsung S6D16D0, Truly NT35597 WQXGA, > > > Himax HX8357D, simulated RTSM AEMv8. > > > - Add dw_hdmi support to rockchip driver. > > > - Fix YUV support in vc4. > > > - Fix resource id handling in virtio. > > > - Make rockchip use dw-mipi-dsi bridge driver, and add dual dsi support. > > > - Advertise that tinydrm only supports DRM_FORMAT_MOD_LINEAR. > > > - Convert many drivers to use atomic helpers, and > > > drm_fbdev_generic_setup(). > > > - Add Mali linear tiled formats, and enable them in the Mali-DP driver. > > > - Add support for H6 DE3 mixer 0, DW HDMI, HDMI PHY and TCON TOP. > > > - Assorted driver cleanups and fixes. > > > > > > The following changes since commit > > > f2bfc71aee75feff33ca659322b72ffeed5a243d: > > > > > > Merge tag 'drm-intel-next-fixes-2018-10-18' of > > > git://anongit.freedesktop.org/drm/drm-intel into drm-next (2018-10-19 > > > 14:28:11 +1000) > > > > > > are available in the Git repository at: > > > > > > git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-next-2018-11-07 > > > > > > for you to fetch changes up to e7afb623b4fb82089c9a50c733c740522b8220bc: > > > > > > drm: Add drm_any_plane_has_format() (2018-11-06 21:34:22 +0200) > > > > > > > > > drm-misc-next for v4.21, part 1: > > > > > > UAPI Changes: > > > - Add syncobj timeline support to drm. > > > > > > Cross-subsystem Changes: > > > - Remove shared fence staging in dma-buf's fence object, and allow > > > reserving more than 1 fence and add more paranoia when debugging. > > > - Constify infoframe functions in video/hdmi. > > > > > > Core Changes: > > > - Add vkms todo, and a lot of assorted doc fixes. > > > - Drop transitional helpers and convert drivers to use > > > drm_atomic_helper_shutdown(). > > > - Move atomic state helper functions to drm_atomic_state_helper.[ch] > > > - Refactor drm selftests, and add new tests. > > > - DP MST atomic state cleanups. > > > - Drop EXPORT_SYMBOL from drm leases. > > > - Lease cleanups and fixes. > > > - Create render node for vgem. > > > > > > Driver Changes: > > > - Fix build failure in imx without fbdev emulation. > > > - Add rotation quirk for GPD win2 panel. > > > - Add support for various CDTech panels, Banana Pi Panel, DLC1010GIG, > > > Olimex LCD-O-LinuXino, Samsung S6D16D0, Truly NT35597 WQXGA, > > > Himax HX8357D, simulated RTSM AEMv8. > > > - Add dw_hdmi support to rockchip driver. > > > - Fix YUV support in vc4. > > > - Fix resource id handling in virtio. > > > - Make rockchip use dw-mipi-dsi bridge driver, and add dual dsi support. > > > - Advertise that tinydrm only supports DRM_FORMAT_MOD_LINE
Re: [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/icl: Fix power well 2 wrt. DC-off toggling order
On Fri, Nov 02, 2018 at 11:54:51PM +, Patchwork wrote: > == Series Details == > > Series: drm/i915/icl: Fix power well 2 wrt. DC-off toggling order > URL : https://patchwork.freedesktop.org/series/51971/ > State : success Thanks for the review, pushed to -dinq. > > == Summary == > > = CI Bug Log - changes from CI_DRM_5081_full -> Patchwork_10715_full = > > == Summary - WARNING == > > Minor unknown changes coming with Patchwork_10715_full need to be verified > manually. > > If you think the reported changes have nothing to do with the changes > introduced in Patchwork_10715_full, please notify your bug team to allow > them > to document this new failure mode, which will reduce false positives in CI. > > > > == Possible new issues == > > Here are the unknown changes that may have been introduced in > Patchwork_10715_full: > > === IGT changes === > > Warnings > > igt@kms_cursor_legacy@flip-vs-cursor-crc-legacy: > shard-snb: SKIP -> PASS +3 > > igt@perf_pmu@rc6: > shard-kbl: PASS -> SKIP > > > == Known issues == > > Here are the changes found in Patchwork_10715_full that come from known > issues: > > === IGT changes === > > Issues hit > > igt@gem_exec_schedule@preempt-contexts-render: > shard-glk: PASS -> DMESG-WARN (fdo#106538, fdo#105763) +1 > > igt@gem_exec_whisper@normal: > shard-skl: PASS -> TIMEOUT (fdo#108592) > > igt@gem_ppgtt@blt-vs-render-ctxn: > shard-kbl: PASS -> INCOMPLETE (fdo#106887, fdo#103665, > fdo#106023) > > igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-a: > shard-skl: NOTRUN -> DMESG-WARN (fdo#107956) > > igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c: > shard-glk: PASS -> DMESG-WARN (fdo#107956) > > igt@kms_color@pipe-b-ctm-0-75: > shard-apl: PASS -> DMESG-WARN (fdo#103558, fdo#105602) +6 > > igt@kms_color@pipe-c-ctm-negative: > shard-skl: PASS -> FAIL (fdo#107361) > > igt@kms_cursor_crc@cursor-64x64-onscreen: > shard-glk: PASS -> FAIL (fdo#103232) +1 > > igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic: > shard-glk: PASS -> FAIL (fdo#105454) > > igt@kms_flip@basic-flip-vs-dpms: > shard-kbl: PASS -> DMESG-WARN (fdo#103313, fdo#105345) > > igt@kms_flip@flip-vs-expired-vblank: > shard-glk: PASS -> FAIL (fdo#105363) > > igt@kms_flip@modeset-vs-vblank-race: > shard-glk: PASS -> FAIL (fdo#103060) > > igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt: > shard-apl: PASS -> FAIL (fdo#103167) > > igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt: > shard-glk: PASS -> FAIL (fdo#103167) > > igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc: > shard-glk: PASS -> DMESG-FAIL (fdo#106538) > > igt@kms_plane_alpha_blend@pipe-b-alpha-basic: > shard-skl: NOTRUN -> FAIL (fdo#108145, fdo#107815) > > igt@kms_plane_multiple@atomic-pipe-b-tiling-yf: > shard-apl: PASS -> FAIL (fdo#103166) > > igt@kms_setmode@basic: > shard-kbl: PASS -> FAIL (fdo#99912) > > igt@kms_vblank@pipe-a-wait-idle-hang: > shard-glk: PASS -> INCOMPLETE (fdo#103359, k.org#198133) > > > Possible fixes > > igt@kms_cursor_crc@cursor-128x128-suspend: > shard-skl: INCOMPLETE (fdo#104108) -> PASS > > igt@kms_cursor_crc@cursor-256x256-sliding: > shard-glk: FAIL (fdo#103232) -> PASS > > igt@kms_cursor_crc@cursor-256x85-random: > shard-apl: FAIL (fdo#103232) -> PASS > > igt@kms_flip@flip-vs-expired-vblank: > shard-skl: FAIL (fdo#105363) -> PASS > > igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt: > shard-glk: FAIL (fdo#103167) -> PASS > > igt@kms_plane_multiple@atomic-pipe-b-tiling-yf: > shard-glk: FAIL (fdo#103166) -> PASS > > igt@pm_rpm@legacy-planes-dpms: > shard-skl: INCOMPLETE (fdo#105959, fdo#107807) -> PASS > > > 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#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232 > fdo#103313 https://bugs.freedesktop.org/show_bug.cgi?id=103313 > fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359 > fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558 > fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665 > fdo#104108 https://bugs.freedesktop.org/show_bug.cgi?id=104108 > fdo#105345 https://bugs.freedesktop.org/show_bug.cgi?id=105345 > fd
Re: [Intel-gfx] [PATCH v2 1/5] drm/i915/icl: Fix combo PHY uninit
On Tue, 2018-11-06 at 18:06 +0200, Imre Deak wrote: > BSpec says to clear the comp init HW flag too during combo PHY > uninit, > so do that. The lack of this could badly interact with the PHY reinit > after a DC6/9 transition at least, where (after a follow-up patch > fixing > the init code) we'd skip the initialization incorrectly due to this > flag > being set. > > BSpec: 21257 > Cc: Paulo Zanoni > Cc: Ville Syrjälä Reviewed-by: José Roberto de Souza > Cc: José Roberto de Souza > Cc: Rodrigo Vivi Signed-off-by: Imre Deak > --- > drivers/gpu/drm/i915/intel_runtime_pm.c | 4 > 1 file changed, 4 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c > b/drivers/gpu/drm/i915/intel_runtime_pm.c > index 6c453366cd24..a7eea8423580 100644 > --- a/drivers/gpu/drm/i915/intel_runtime_pm.c > +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c > @@ -3668,6 +3668,10 @@ void icl_display_core_uninit(struct > drm_i915_private *dev_priv) > val = I915_READ(ICL_PHY_MISC(port)); > val |= ICL_PHY_MISC_DE_IO_COMP_PWR_DOWN; > I915_WRITE(ICL_PHY_MISC(port), val); > + > + val = I915_READ(ICL_PORT_COMP_DW0(port)); > + val &= ~COMP_INIT; > + I915_WRITE(ICL_PORT_COMP_DW0(port), val); > } > } > signature.asc Description: This is a digitally signed message part ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915/ddi: Add more sanity check to the encoder HW readout
== Series Details == Series: series starting with [1/2] drm/i915/ddi: Add more sanity check to the encoder HW readout URL : https://patchwork.freedesktop.org/series/52187/ State : failure == Summary == = CI Bug Log - changes from CI_DRM_5100 -> Patchwork_10758 = == Summary - FAILURE == Serious unknown changes coming with Patchwork_10758 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10758, 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/52187/revisions/1/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10758: === IGT changes === Possible regressions igt@gem_exec_nop@basic-parallel: fi-icl-u: PASS -> INCOMPLETE == Known issues == Here are the changes found in Patchwork_10758 that come from known issues: === IGT changes === Issues hit igt@gem_ctx_create@basic-files: fi-bsw-kefka: PASS -> FAIL (fdo#108656) igt@gem_mmap_gtt@basic-small-bo-tiledx: fi-glk-dsi: PASS -> INCOMPLETE (fdo#103359, k.org#198133) igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: fi-byt-clapper: PASS -> FAIL (fdo#103191, fdo#107362) Possible fixes igt@drv_getparams_basic@basic-subslice-total: fi-cfl-8109u: DMESG-WARN (fdo#106107) -> PASS igt@drv_selftest@live_coherency: fi-gdg-551: DMESG-FAIL (fdo#107164) -> PASS igt@gem_exec_suspend@basic-s3: fi-cfl-8109u: INCOMPLETE (fdo#108126, fdo#107187) -> PASS igt@kms_chamelium@common-hpd-after-suspend: fi-skl-6700k2: WARN (fdo#108680) -> PASS igt@kms_frontbuffer_tracking@basic: fi-hsw-peppy: DMESG-WARN (fdo#102614) -> PASS fi-byt-clapper: FAIL (fdo#103167) -> PASS Warnings igt@drv_selftest@live_contexts: fi-icl-u2: DMESG-FAIL (fdo#108569) -> INCOMPLETE (fdo#108315) fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614 fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359 fdo#106107 https://bugs.freedesktop.org/show_bug.cgi?id=106107 fdo#107164 https://bugs.freedesktop.org/show_bug.cgi?id=107164 fdo#107187 https://bugs.freedesktop.org/show_bug.cgi?id=107187 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#108126 https://bugs.freedesktop.org/show_bug.cgi?id=108126 fdo#108315 https://bugs.freedesktop.org/show_bug.cgi?id=108315 fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569 fdo#108656 https://bugs.freedesktop.org/show_bug.cgi?id=108656 fdo#108680 https://bugs.freedesktop.org/show_bug.cgi?id=108680 k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133 == Participating hosts (54 -> 46) == Missing(8): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-snb-2520m fi-ctg-p8600 fi-pnv-d510 == Build changes == * Linux: CI_DRM_5100 -> Patchwork_10758 CI_DRM_5100: c5f9a3064d90c86dab99d5aef011b87f6f8921dc @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4712: a3ede1b535ac8137f6949c468edd7054453d5dae @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10758: 60ace73cb0f8e814e6a6e34d6c9775d5fcf077a8 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 60ace73cb0f8 drm/i915/icl: Fix PLL mapping sanitization for DP ports ee7b2ea5708d drm/i915/ddi: Add more sanity check to the encoder HW readout == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10758/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v2 2/5] drm/i915/cnl+: Move the combo PHY init/uninit code to a new file
On Tue, 2018-11-06 at 18:06 +0200, Imre Deak wrote: > Similarly to the GEN9_LP DPIO PHY code keep the CNL+ combo PHY code > in a > separate file. > > No functional change. > > v2: > - Use SPDX license tag instead of boilerplate. (Rodrigo) > > Suggested-by: Ville Syrjälä > Cc: Paulo Zanoni > Cc: Ville Syrjälä Reviewed-by: José Roberto de Souza > Cc: José Roberto de Souza > Cc: Rodrigo Vivi > Signed-off-by: Imre Deak > Reviewed-by: Rodrigo Vivi > --- > drivers/gpu/drm/i915/Makefile | 1 + > drivers/gpu/drm/i915/i915_drv.h | 6 ++ > drivers/gpu/drm/i915/intel_combo_phy.c | 141 > > drivers/gpu/drm/i915/intel_runtime_pm.c | 127 ++-- > > 4 files changed, 156 insertions(+), 119 deletions(-) > create mode 100644 drivers/gpu/drm/i915/intel_combo_phy.c > > diff --git a/drivers/gpu/drm/i915/Makefile > b/drivers/gpu/drm/i915/Makefile > index 6fbda5977658..0ff878c994e2 100644 > --- a/drivers/gpu/drm/i915/Makefile > +++ b/drivers/gpu/drm/i915/Makefile > @@ -113,6 +113,7 @@ i915-y += intel_audio.o \ > intel_bios.o \ > intel_cdclk.o \ > intel_color.o \ > + intel_combo_phy.o \ > intel_connector.o \ > intel_display.o \ > intel_dpio_phy.o \ > diff --git a/drivers/gpu/drm/i915/i915_drv.h > b/drivers/gpu/drm/i915/i915_drv.h > index 2a88a7eb871b..ef47cae13573 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -3571,6 +3571,12 @@ void vlv_phy_pre_encoder_enable(struct > intel_encoder *encoder, > void vlv_phy_reset_lanes(struct intel_encoder *encoder, >const struct intel_crtc_state > *old_crtc_state); > > +/* intel_combo_phy.c */ > +void icl_combo_phys_init(struct drm_i915_private *dev_priv); > +void icl_combo_phys_uninit(struct drm_i915_private *dev_priv); > +void cnl_combo_phys_init(struct drm_i915_private *dev_priv); > +void cnl_combo_phys_uninit(struct drm_i915_private *dev_priv); > + > int intel_gpu_freq(struct drm_i915_private *dev_priv, int val); > int intel_freq_opcode(struct drm_i915_private *dev_priv, int val); > u64 intel_rc6_residency_ns(struct drm_i915_private *dev_priv, > diff --git a/drivers/gpu/drm/i915/intel_combo_phy.c > b/drivers/gpu/drm/i915/intel_combo_phy.c > new file mode 100644 > index ..8dd0a3c68f01 > --- /dev/null > +++ b/drivers/gpu/drm/i915/intel_combo_phy.c > @@ -0,0 +1,141 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Copyright © 2018 Intel Corporation > + */ > + > +#include "intel_drv.h" > + > +enum { > + PROCMON_0_85V_DOT_0, > + PROCMON_0_95V_DOT_0, > + PROCMON_0_95V_DOT_1, > + PROCMON_1_05V_DOT_0, > + PROCMON_1_05V_DOT_1, > +}; > + > +static const struct cnl_procmon { > + u32 dw1, dw9, dw10; > +} cnl_procmon_values[] = { > + [PROCMON_0_85V_DOT_0] = > + { .dw1 = 0x, .dw9 = 0x62AB67BB, .dw10 = > 0x51914F96, }, > + [PROCMON_0_95V_DOT_0] = > + { .dw1 = 0x, .dw9 = 0x86E172C7, .dw10 = > 0x77CA5EAB, }, > + [PROCMON_0_95V_DOT_1] = > + { .dw1 = 0x, .dw9 = 0x93F87FE1, .dw10 = > 0x8AE871C5, }, > + [PROCMON_1_05V_DOT_0] = > + { .dw1 = 0x, .dw9 = 0x98FA82DD, .dw10 = > 0x89E46DC1, }, > + [PROCMON_1_05V_DOT_1] = > + { .dw1 = 0x0044, .dw9 = 0x9A00AB25, .dw10 = > 0x8AE38FF1, }, > +}; > + > +/* > + * CNL has just one set of registers, while ICL has two sets: one > for port A and > + * the other for port B. The CNL registers are equivalent to the ICL > port A > + * registers, that's why we call the ICL macros even though the > function has CNL > + * on its name. > + */ > +static void cnl_set_procmon_ref_values(struct drm_i915_private > *dev_priv, > +enum port port) > +{ > + const struct cnl_procmon *procmon; > + u32 val; > + > + val = I915_READ(ICL_PORT_COMP_DW3(port)); > + switch (val & (PROCESS_INFO_MASK | VOLTAGE_INFO_MASK)) { > + default: > + MISSING_CASE(val); > + /* fall through */ > + case VOLTAGE_INFO_0_85V | PROCESS_INFO_DOT_0: > + procmon = &cnl_procmon_values[PROCMON_0_85V_DOT_0]; > + break; > + case VOLTAGE_INFO_0_95V | PROCESS_INFO_DOT_0: > + procmon = &cnl_procmon_values[PROCMON_0_95V_DOT_0]; > + break; > + case VOLTAGE_INFO_0_95V | PROCESS_INFO_DOT_1: > + procmon = &cnl_procmon_values[PROCMON_0_95V_DOT_1]; > + break; > + case VOLTAGE_INFO_1_05V | PROCESS_INFO_DOT_0: > + procmon = &cnl_procmon_values[PROCMON_1_05V_DOT_0]; > + break; > + case VOLTAGE_INFO_1_05V | PROCESS_INFO_DOT_1: > + procmon = &cnl_procmon_values[PROCMON_1_05V_DOT_1]; > + break; > + } > + > + val = I915_READ(ICL_PORT_COMP_DW1(port)); > + val &= ~((0xff << 16) | 0xff); > + val |= procmon->dw1; > + I915_WRITE(ICL_PORT_COMP_
Re: [Intel-gfx] [PATCH v2 3/5] drm/i915/cnl+: Verify combo PHY HW state during PHY uninit
On Tue, 2018-11-06 at 18:06 +0200, Imre Deak wrote: > Verify on CNL, ICL that the combo PHY HW state stayed intact after > PHY > initialization. > > v2: > - Print 'Port X' as we do elsewhere instead of 'Port-X'. (Jose) > > Cc: Paulo Zanoni > Cc: Ville Syrjälä Reviewed-by: José Roberto de Souza > Cc: José Roberto de Souza > Cc: Rodrigo Vivi > Signed-off-by: Imre Deak > --- > drivers/gpu/drm/i915/intel_combo_phy.c | 103 > - > 1 file changed, 101 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_combo_phy.c > b/drivers/gpu/drm/i915/intel_combo_phy.c > index 8dd0a3c68f01..83132d763e34 100644 > --- a/drivers/gpu/drm/i915/intel_combo_phy.c > +++ b/drivers/gpu/drm/i915/intel_combo_phy.c > @@ -34,8 +34,8 @@ static const struct cnl_procmon { > * registers, that's why we call the ICL macros even though the > function has CNL > * on its name. > */ > -static void cnl_set_procmon_ref_values(struct drm_i915_private > *dev_priv, > -enum port port) > +static const struct cnl_procmon * > +cnl_get_procmon_ref_values(struct drm_i915_private *dev_priv, enum > port port) > { > const struct cnl_procmon *procmon; > u32 val; > @@ -62,6 +62,17 @@ static void cnl_set_procmon_ref_values(struct > drm_i915_private *dev_priv, > break; > } > > + return procmon; > +} > + > +static void cnl_set_procmon_ref_values(struct drm_i915_private > *dev_priv, > +enum port port) > +{ > + const struct cnl_procmon *procmon; > + u32 val; > + > + procmon = cnl_get_procmon_ref_values(dev_priv, port); > + > val = I915_READ(ICL_PORT_COMP_DW1(port)); > val &= ~((0xff << 16) | 0xff); > val |= procmon->dw1; > @@ -71,6 +82,63 @@ static void cnl_set_procmon_ref_values(struct > drm_i915_private *dev_priv, > I915_WRITE(ICL_PORT_COMP_DW10(port), procmon->dw10); > } > > +static bool check_phy_reg(struct drm_i915_private *dev_priv, > + enum port port, i915_reg_t reg, u32 mask, > + u32 expected_val) > +{ > + u32 val = I915_READ(reg); > + > + if ((val & mask) != expected_val) { > + DRM_DEBUG_DRIVER("Port %c combo PHY reg %08x state > mismatch: " > + "current %08x mask %08x expected > %08x\n", > + port_name(port), > + reg.reg, val, mask, expected_val); > + return false; > + } > + > + return true; > +} > + > +static bool cnl_verify_procmon_ref_values(struct drm_i915_private > *dev_priv, > + enum port port) > +{ > + const struct cnl_procmon *procmon; > + bool ret; > + > + procmon = cnl_get_procmon_ref_values(dev_priv, port); > + > + ret = check_phy_reg(dev_priv, port, ICL_PORT_COMP_DW1(port), > + (0xff << 16) | 0xff, procmon->dw1); > + ret &= check_phy_reg(dev_priv, port, ICL_PORT_COMP_DW9(port), > + -1U, procmon->dw9); > + ret &= check_phy_reg(dev_priv, port, ICL_PORT_COMP_DW10(port), > + -1U, procmon->dw10); > + > + return ret; > +} > + > +static bool cnl_combo_phy_enabled(struct drm_i915_private *dev_priv) > +{ > + return !(I915_READ(CHICKEN_MISC_2) & CNL_COMP_PWR_DOWN) && > + (I915_READ(CNL_PORT_COMP_DW0) & COMP_INIT); > +} > + > +static bool cnl_combo_phy_verify_state(struct drm_i915_private > *dev_priv) > +{ > + enum port port = PORT_A; > + bool ret; > + > + if (!cnl_combo_phy_enabled(dev_priv)) > + return false; > + > + ret = cnl_verify_procmon_ref_values(dev_priv, port); > + > + ret &= check_phy_reg(dev_priv, port, CNL_PORT_CL1CM_DW5, > + CL_POWER_DOWN_ENABLE, > CL_POWER_DOWN_ENABLE); > + > + return ret; > +} > + > void cnl_combo_phys_init(struct drm_i915_private *dev_priv) > { > u32 val; > @@ -95,11 +163,38 @@ void cnl_combo_phys_uninit(struct > drm_i915_private *dev_priv) > { > u32 val; > > + if (!cnl_combo_phy_verify_state(dev_priv)) > + DRM_WARN("Combo PHY HW state changed unexpectedly.\n"); > + > val = I915_READ(CHICKEN_MISC_2); > val |= CNL_COMP_PWR_DOWN; > I915_WRITE(CHICKEN_MISC_2, val); > } > > +static bool icl_combo_phy_enabled(struct drm_i915_private *dev_priv, > + enum port port) > +{ > + return !(I915_READ(ICL_PHY_MISC(port)) & > + ICL_PHY_MISC_DE_IO_COMP_PWR_DOWN) && > + (I915_READ(ICL_PORT_COMP_DW0(port)) & COMP_INIT); > +} > + > +static bool icl_combo_phy_verify_state(struct drm_i915_private > *dev_priv, > +enum port port) > +{ > + bool ret; > + > + if (!icl_combo_phy_enabled(dev_priv, port)) > + return false; > + > + ret = cnl_verify_procmon_ref_values(dev_priv, port); > + >
Re: [Intel-gfx] [PATCH v2 5/5] drm/i915/icl: Fix port B combo PHY context loss after DC transitions
On Tue, 2018-11-06 at 18:06 +0200, Imre Deak wrote: > On ICL DMC/PCODE retains the HW context only for port A across DC > transitions, for the other port B combo PHY, it doesn't. So we need > to > do this manually after exiting from DC6. Do the reinit even after > exiting from DC5, it won't hurt since we only reinit the PHY in case > it's needed (in case it was disabled to begin with). > > As can be guessed from the bugzilla report leaving the PHY uninited > will > lead to a later timeout during the port B specific AUX and DDI_IO > power > well enabling. > > v2: > - Apply the fix on all GEN>=11 platforms. (Rodrigo) > > Bspec: 21257 > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108070 > Cc: Paulo Zanoni > Cc: Ville Syrjälä Reviewed-by: José Roberto de Souza > Cc: José Roberto de Souza > Cc: Rodrigo Vivi > Signed-off-by: Imre Deak > Reviewed-by: Rodrigo Vivi > --- > drivers/gpu/drm/i915/intel_runtime_pm.c | 8 > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c > b/drivers/gpu/drm/i915/intel_runtime_pm.c > index f8da471e81aa..c20f25d6964a 100644 > --- a/drivers/gpu/drm/i915/intel_runtime_pm.c > +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c > @@ -843,6 +843,14 @@ static void gen9_dc_off_power_well_enable(struct > drm_i915_private *dev_priv, > > if (IS_GEN9_LP(dev_priv)) > bxt_verify_ddi_phy_power_wells(dev_priv); > + > + if (INTEL_GEN(dev_priv) >= 11) > + /* > + * DMC retains HW context only for port A, the other > combo > + * PHY's HW context for port B is lost after DC > transitions, > + * so we need to restore it manually. > + */ > + icl_combo_phys_init(dev_priv); > } > > static void gen9_dc_off_power_well_disable(struct drm_i915_private > *dev_priv, signature.asc Description: This is a digitally signed message part ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PULL] drm-misc-next
On Wed, Nov 07, 2018 at 09:31:51PM +0100, Daniel Vetter wrote: > On Wed, Nov 7, 2018 at 9:29 PM Sean Paul wrote: > > > > On Wed, Nov 07, 2018 at 09:18:16PM +0100, Daniel Vetter wrote: > > > On Wed, Nov 07, 2018 at 12:58:56PM +0100, Maarten Lankhorst wrote: > > > > Hey Dave, > > > > > > > > First pull for drm-next this cycle. There's been a lot of changes, so I > > > > hope I recorded everything from the changelog correctly. > > > > > > > > drm-misc-next-2018-11-07: > > > > drm-misc-next for v4.21, part 1: > > > > > > > > UAPI Changes: > > > > - Add syncobj timeline support to drm. > > > > > > With all the CI breakage this caused I kinda missed that it didn't get > > > reverted. But afaict this didn't have the ack from anv/radv folks (which I > > > explicitly asked for as part of what I think should be the merge > > > criteria), and I'm not sure where the userspace is, and this here isn't > > > just prep, but already adds new uapi. > > > > > > > +Christian > > > > Can you please land the revert while we get this sorted out? > > The revert was for the CI breakage, which is sorted out differently > already. That was kinda just my excuse for not being in the loop. For > just the uapi disallowing timeline obj creation and moving the #define > away from the uapi include is all that's really needed. Yeah, the uapi #define looked simple enough to back out. Whatever unblocks us from moving forward is good with me. That said, reading through the review thread, this doesn't seem like something that should have been applied in the first place. Sean > > Assuming of course that I'm not again having my stuff all mixed up :-) > -Daniel > > > > > Sean > > > > > The prep work is imo totally ok to keep, but the uapi side seems rather > > > questionable. > > > -Daniel > > > > > > > > > > > Cross-subsystem Changes: > > > > - Remove shared fence staging in dma-buf's fence object, and allow > > > > reserving more than 1 fence and add more paranoia when debugging. > > > > - Constify infoframe functions in video/hdmi. > > > > > > > > Core Changes: > > > > - Add vkms todo, and a lot of assorted doc fixes. > > > > - Drop transitional helpers and convert drivers to use > > > > drm_atomic_helper_shutdown(). > > > > - Move atomic state helper functions to drm_atomic_state_helper.[ch] > > > > - Refactor drm selftests, and add new tests. > > > > - DP MST atomic state cleanups. > > > > - Drop EXPORT_SYMBOL from drm leases. > > > > - Lease cleanups and fixes. > > > > - Create render node for vgem. > > > > > > > > Driver Changes: > > > > - Fix build failure in imx without fbdev emulation. > > > > - Add rotation quirk for GPD win2 panel. > > > > - Add support for various CDTech panels, Banana Pi Panel, DLC1010GIG, > > > > Olimex LCD-O-LinuXino, Samsung S6D16D0, Truly NT35597 WQXGA, > > > > Himax HX8357D, simulated RTSM AEMv8. > > > > - Add dw_hdmi support to rockchip driver. > > > > - Fix YUV support in vc4. > > > > - Fix resource id handling in virtio. > > > > - Make rockchip use dw-mipi-dsi bridge driver, and add dual dsi support. > > > > - Advertise that tinydrm only supports DRM_FORMAT_MOD_LINEAR. > > > > - Convert many drivers to use atomic helpers, and > > > > drm_fbdev_generic_setup(). > > > > - Add Mali linear tiled formats, and enable them in the Mali-DP driver. > > > > - Add support for H6 DE3 mixer 0, DW HDMI, HDMI PHY and TCON TOP. > > > > - Assorted driver cleanups and fixes. > > > > > > > > The following changes since commit > > > > f2bfc71aee75feff33ca659322b72ffeed5a243d: > > > > > > > > Merge tag 'drm-intel-next-fixes-2018-10-18' of > > > > git://anongit.freedesktop.org/drm/drm-intel into drm-next (2018-10-19 > > > > 14:28:11 +1000) > > > > > > > > are available in the Git repository at: > > > > > > > > git://anongit.freedesktop.org/drm/drm-misc > > > > tags/drm-misc-next-2018-11-07 > > > > > > > > for you to fetch changes up to e7afb623b4fb82089c9a50c733c740522b8220bc: > > > > > > > > drm: Add drm_any_plane_has_format() (2018-11-06 21:34:22 +0200) > > > > > > > > > > > > drm-misc-next for v4.21, part 1: > > > > > > > > UAPI Changes: > > > > - Add syncobj timeline support to drm. > > > > > > > > Cross-subsystem Changes: > > > > - Remove shared fence staging in dma-buf's fence object, and allow > > > > reserving more than 1 fence and add more paranoia when debugging. > > > > - Constify infoframe functions in video/hdmi. > > > > > > > > Core Changes: > > > > - Add vkms todo, and a lot of assorted doc fixes. > > > > - Drop transitional helpers and convert drivers to use > > > > drm_atomic_helper_shutdown(). > > > > - Move atomic state helper functions to drm_atomic_state_helper.[ch] > > > > - Refactor drm selftests, and add new tests. > > > > - DP MST atomic state cleanups. > > > > - Drop EXPORT_SYMBOL from drm leases. > > > > - Lease cleanups and fixes. > > > > - Create render node for vgem. > > > > > > > > Driver Changes: > > > > - F
[Intel-gfx] [PULL] drm-misc-fixes
Hi Dave, First fixes pull for 4.20, some NULL protection for sun4i. drm-misc-fixes-2018-11-07: - sun4i: tcon->panel NULL deref protections (Giulio) Cc: Giulio Benetti Cheers, Sean The following changes since commit 651022382c7f8da46cb4872a545ee1da6d097d2a: Linux 4.20-rc1 (2018-11-04 15:37:52 -0800) are available in the Git repository at: git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-fixes-2018-11-07 for you to fetch changes up to a8939766c75c06b5a0ab691ecbba9347e4e520cf: drm/sun4i: tcon: prevent tcon->panel dereference if NULL (2018-11-06 16:55:29 +0100) - sun4i: tcon->panel NULL deref protections (Giulio) Cc: Giulio Benetti Giulio Benetti (2): drm/sun4i: tcon: fix check of tcon->panel null pointer drm/sun4i: tcon: prevent tcon->panel dereference if NULL drivers/gpu/drm/sun4i/sun4i_lvds.c | 4 ++-- drivers/gpu/drm/sun4i/sun4i_rgb.c | 4 ++-- drivers/gpu/drm/sun4i/sun4i_tcon.c | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) -- Sean Paul, Software Engineer, Google / Chromium OS ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 04/14] drm/i915: Polish the skl+ plane keyval/msk/max register setup
On Wed, Nov 07, 2018 at 11:55:27AM -0800, Rodrigo Vivi wrote: > On Thu, Nov 01, 2018 at 05:05:55PM +0200, Ville Syrjala wrote: > > From: Ville Syrjälä > > > > Due to the constant alpha we're going to have to program two of > > the the tree keying registers anyway, so might as well always > > program all three. > > > > And parametrize the plane constant alpha define while at it. > > > > Signed-off-by: Ville Syrjälä > > I'm not 100% confident we can just ignore the key->flags, > but I couldn't convince me that we need that either. The colorkey registers should be nops unless we enable the relevant bits in the control register (skl_plane_ctl()). If not we'd already have a bug because we were leaving stale values in those registers when colorkeying was not enabled. > > And clean-up by itself looks good, so: > > Reviewed-by: Rodrigo Vivi > > > > > --- > > drivers/gpu/drm/i915/i915_reg.h | 2 +- > > drivers/gpu/drm/i915/intel_sprite.c | 22 +- > > 2 files changed, 10 insertions(+), 14 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/i915_reg.h > > b/drivers/gpu/drm/i915/i915_reg.h > > index 8d089ef848b2..b6ee863b5df2 100644 > > --- a/drivers/gpu/drm/i915/i915_reg.h > > +++ b/drivers/gpu/drm/i915/i915_reg.h > > @@ -6545,7 +6545,7 @@ enum { > > #define PLANE_KEYMSK_ALPHA_ENABLE (1 << 31) > > #define _PLANE_KEYMAX_1_A 0x701a0 > > #define _PLANE_KEYMAX_2_A 0x702a0 > > -#define PLANE_KEYMAX_ALPHA_SHIFT 24 > > +#define PLANE_KEYMAX_ALPHA(a) ((a) << 24) > > #define _PLANE_AUX_DIST_1_A0x701c0 > > #define _PLANE_AUX_DIST_2_A0x702c0 > > #define _PLANE_AUX_OFFSET_1_A 0x701c4 > > diff --git a/drivers/gpu/drm/i915/intel_sprite.c > > b/drivers/gpu/drm/i915/intel_sprite.c > > index 399d44c57a7d..b36238282b4e 100644 > > --- a/drivers/gpu/drm/i915/intel_sprite.c > > +++ b/drivers/gpu/drm/i915/intel_sprite.c > > @@ -382,31 +382,27 @@ skl_program_plane(struct intel_plane *plane, > > uint32_t src_w = drm_rect_width(&plane_state->base.src) >> 16; > > uint32_t src_h = drm_rect_height(&plane_state->base.src) >> 16; > > struct intel_plane *linked = plane_state->linked_plane; > > + u8 alpha = plane_state->base.alpha >> 8; > > unsigned long irqflags; > > - u32 keymsk = 0, keymax = 0; > > + u32 keymsk, keymax; > > > > /* Sizes are 0 based */ > > src_w--; > > src_h--; > > > > + keymax = (key->max_value & 0xff) | PLANE_KEYMAX_ALPHA(alpha); > > + > > + keymsk = key->channel_mask & 0x3ff; > > + if (alpha < 0xff) > > + keymsk |= PLANE_KEYMSK_ALPHA_ENABLE; > > + > > spin_lock_irqsave(&dev_priv->uncore.lock, irqflags); > > > > if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) > > I915_WRITE_FW(PLANE_COLOR_CTL(pipe, plane_id), > > plane_state->color_ctl); > > > > - if (key->flags) { > > - I915_WRITE_FW(PLANE_KEYVAL(pipe, plane_id), key->min_value); > > - > > - keymax |= key->max_value & 0xff; > > - keymsk |= key->channel_mask & 0x3ff; > > - } > > - > > - keymax |= (plane_state->base.alpha >> 8) << PLANE_KEYMAX_ALPHA_SHIFT; > > - > > - if (plane_state->base.alpha < 0xff00) > > - keymsk |= PLANE_KEYMSK_ALPHA_ENABLE; > > - > > + I915_WRITE_FW(PLANE_KEYVAL(pipe, plane_id), key->min_value); > > I915_WRITE_FW(PLANE_KEYMAX(pipe, plane_id), keymax); > > I915_WRITE_FW(PLANE_KEYMSK(pipe, plane_id), keymsk); > > > > -- > > 2.18.1 > > > > ___ > > 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 v3 2/5] drm/dp_mst: Start tracking per-port VCPI allocations
On Tue, Nov 06, 2018 at 08:21:14PM -0500, Lyude Paul wrote: > There has been a TODO waiting for quite a long time in > drm_dp_mst_topology.c: > > /* We cannot rely on port->vcpi.num_slots to update >* topology_state->avail_slots as the port may not exist if the parent >* branch device was unplugged. This should be fixed by tracking >* per-port slot allocation in drm_dp_mst_topology_state instead of >* depending on the caller to tell us how many slots to release. >*/ > > That's not the only reason we should fix this: forcing the driver to > track the VCPI allocations throughout a state's atomic check is > error prone, because it means that extra care has to be taken with the > order that drm_dp_atomic_find_vcpi_slots() and > drm_dp_atomic_release_vcpi_slots() are called in in order to ensure > idempotency. Currently the only driver actually using these helpers, > i915, doesn't even do this correctly: multiple ->best_encoder() checks > with i915's current implementation would not be idempotent and would > over-allocate VCPI slots, something I learned trying to implement > fallback retraining in MST. > > So: simplify this whole mess, and teach drm_dp_atomic_find_vcpi_slots() > and drm_dp_atomic_release_vcpi_slots() to track the VCPI allocations for > each port. This allows us to ensure idempotency without having to rely > on the driver as much. Additionally: the driver doesn't need to do any > kind of VCPI slot tracking anymore if it doesn't need it for it's own > internal state. > > Additionally; this adds a new drm_dp_mst_atomic_check() helper which > must be used by atomic drivers to perform validity checks for the new > VCPI allocations incurred by a state. > > Also: update the documentation and make it more obvious that these > /must/ be called by /all/ atomic drivers supporting MST. > > Changes since v2: > - Use kmemdup() for duplicating MST state - danvet > - Move port validation out of duplicate state callback - danvet > - Handle looping through MST topology states in >drm_dp_mst_atomic_check() so the driver doesn't have to do it > - Fix documentation in drm_dp_atomic_find_vcpi_slots() > - Move the atomic check for each individual topology state into it's >own function, reduces indenting > - Don't consider "stale" MST ports when calculating the bandwidth >requirements. This is needed because originally we relied on the >state duplication functions to prune any stale ports from the new >state, which would prevent us from incorrectly considering their >bandwidth requirements alongside legitimate new payloads. > - Add function references in drm_dp_atomic_release_vcpi_slots() - danvet > - Annotate atomic VCPI and atomic check functions with __must_check >- danvet > > Changes since v1: > - Don't use the now-removed ->atomic_check() for private objects hook, >just give drivers a function to call themselves > > Signed-off-by: Lyude Paul > Cc: Daniel Vetter > --- > drivers/gpu/drm/drm_dp_mst_topology.c | 222 ++ > drivers/gpu/drm/i915/intel_display.c | 4 + > drivers/gpu/drm/i915/intel_dp_mst.c | 31 ++-- > include/drm/drm_dp_mst_helper.h | 23 ++- > 4 files changed, 225 insertions(+), 55 deletions(-) > > diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c > b/drivers/gpu/drm/drm_dp_mst_topology.c > index 8c3cfac437f4..74823afb262e 100644 > --- a/drivers/gpu/drm/drm_dp_mst_topology.c > +++ b/drivers/gpu/drm/drm_dp_mst_topology.c > @@ -2614,21 +2614,34 @@ static int drm_dp_init_vcpi(struct > drm_dp_mst_topology_mgr *mgr, > } > > /** > - * drm_dp_atomic_find_vcpi_slots() - Find and add vcpi slots to the state > + * drm_dp_atomic_find_vcpi_slots() - Find and add VCPI slots to the state > * @state: global atomic state > * @mgr: MST topology manager for the port > * @port: port to find vcpi slots for > * @pbn: bandwidth required for the mode in PBN > * > - * RETURNS: > - * Total slots in the atomic state assigned for this port or error > + * Allocates VCPI slots to @port, replacing any previous VCPI allocations it > + * may have had. Any atomic drivers which support MST must call this function > + * in their &drm_encoder_helper_funcs.atomic_check() callback to change the > + * current VCPI allocation for the new state. The allocations are not checked > + * against the bandwidth restraints of @mgr until the driver calls > + * drm_dp_mst_atomic_check(). > + * > + * See also: > + * drm_dp_atomic_release_vcpi_slots() > + * drm_dp_mst_atomic_check() > + * > + * Returns: > + * Total slots in the atomic state assigned for this port, or a negative > error > + * code if the port no longer exists > */ > int drm_dp_atomic_find_vcpi_slots(struct drm_atomic_state *state, > struct drm_dp_mst_topology_mgr *mgr, > struct drm_dp_mst_port *port, int pbn) > { > struct drm_dp_mst_topology_state *topology_state;
[Intel-gfx] ✓ Fi.CI.IGT: success for Make GEN macros more similar (rev2)
== Series Details == Series: Make GEN macros more similar (rev2) URL : https://patchwork.freedesktop.org/series/51860/ State : success == Summary == = CI Bug Log - changes from CI_DRM_5097_full -> Patchwork_10747_full = == Summary - WARNING == Minor unknown changes coming with Patchwork_10747_full need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10747_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10747_full: === IGT changes === Warnings igt@pm_rc6_residency@rc6-accuracy: shard-snb: PASS -> SKIP == Known issues == Here are the changes found in Patchwork_10747_full that come from known issues: === IGT changes === Issues hit igt@gem_eio@reset-stress: shard-apl: PASS -> INCOMPLETE (fdo#103927) +1 igt@gem_exec_create@madvise: shard-apl: PASS -> DMESG-WARN (fdo#108673) igt@kms_busy@extended-modeset-hang-newfb-render-a: shard-skl: NOTRUN -> DMESG-WARN (fdo#107956) +1 igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-c: shard-apl: NOTRUN -> DMESG-WARN (fdo#107956) igt@kms_color@pipe-c-legacy-gamma: shard-apl: PASS -> FAIL (fdo#104782) igt@kms_cursor_crc@cursor-128x128-onscreen: shard-apl: PASS -> FAIL (fdo#103232) igt@kms_cursor_crc@cursor-128x128-random: shard-skl: PASS -> FAIL (fdo#103232) igt@kms_cursor_crc@cursor-64x64-dpms: shard-kbl: PASS -> DMESG-WARN (fdo#105602, fdo#103558) +2 igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic: shard-hsw: PASS -> FAIL (fdo#105767) igt@kms_draw_crc@draw-method-xrgb2101010-blt-untiled: shard-skl: PASS -> FAIL (fdo#103184) +1 igt@kms_flip@flip-vs-expired-vblank: shard-skl: PASS -> FAIL (fdo#102887) igt@kms_flip@plain-flip-fb-recreate-interruptible: shard-skl: PASS -> FAIL (fdo#100368) igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt: shard-apl: PASS -> FAIL (fdo#103167) +2 igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen: shard-glk: PASS -> FAIL (fdo#103167) igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt: shard-skl: PASS -> FAIL (fdo#103167) +2 igt@kms_plane@plane-position-covered-pipe-b-planes: shard-apl: PASS -> FAIL (fdo#103166) igt@kms_plane_alpha_blend@pipe-a-coverage-7efc: shard-skl: PASS -> FAIL (fdo#108145, fdo#107815) igt@kms_plane_alpha_blend@pipe-b-alpha-transparant-fb: shard-skl: NOTRUN -> FAIL (fdo#108145) +1 igt@kms_properties@connector-properties-atomic: shard-skl: NOTRUN -> FAIL (fdo#108642) igt@kms_setmode@basic: shard-kbl: PASS -> FAIL (fdo#99912) igt@pm_rpm@modeset-non-lpsp: shard-skl: NOTRUN -> INCOMPLETE (fdo#107807) igt@pm_rpm@pc8-residency: shard-skl: SKIP -> INCOMPLETE (fdo#107807) igt@prime_busy@after-vebox: shard-snb: SKIP -> INCOMPLETE (fdo#105411) Possible fixes igt@gem_ctx_isolation@vecs0-s3: shard-skl: INCOMPLETE (fdo#107773, fdo#104108) -> PASS igt@gem_userptr_blits@stress-mm-invalidate-close-overlap: shard-apl: DMESG-WARN -> PASS igt@kms_available_modes_crc@available_mode_test_crc: shard-apl: FAIL (fdo#106641) -> PASS igt@kms_color@pipe-a-ctm-max: shard-apl: FAIL (fdo#108147) -> PASS igt@kms_cursor_crc@cursor-256x256-random: shard-apl: FAIL (fdo#103232) -> PASS +4 igt@kms_flip@flip-vs-expired-vblank-interruptible: shard-skl: FAIL (fdo#105363) -> PASS igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite: shard-apl: FAIL (fdo#103167) -> PASS +3 igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-pwrite: shard-glk: FAIL (fdo#103167) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: shard-apl: INCOMPLETE (fdo#103927) -> PASS +1 igt@kms_plane_alpha_blend@pipe-b-coverage-7efc: shard-skl: FAIL (fdo#107815) -> PASS igt@kms_plane_multiple@atomic-pipe-a-tiling-y: shard-apl: FAIL (fdo#103166) -> PASS igt@kms_plane_multiple@atomic-pipe-a-tiling-yf: shard-glk: FAIL (fdo#103166) -> PASS igt@kms_vblank@pipe-a-accuracy-idle: shard-skl: FAIL (fdo#102583) -> PASS igt@pm_rpm@dpms-lpsp: shard-skl: INCOMPLETE (fdo#107807) -> PASS fdo#100368 https://bugs.freedesktop.org/show_bug.cg