[Intel-gfx] [PATCH xf86-video-intel] sna/io: Align the linear source buffer to cache line for 2d blt
On SKL+ the linear source buffer has to start from cache line boundary to meet the 2d engine source copy requirements. Signed-off-by: Guang Bai --- src/sna/sna_io.c | 17 +++-- 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/sna/sna_io.c b/src/sna/sna_io.c index d32bd58..5bfbdbb 100644 --- a/src/sna/sna_io.c +++ b/src/sna/sna_io.c @@ -1064,7 +1064,7 @@ tile: if (kgem->gen >= 0100) { cmd |= 8; do { - int nbox_this_time, rem; + int nbox_this_time, rem, pitch_aligned; nbox_this_time = nbox; rem = kgem_batch_space(kgem); @@ -1077,12 +1077,16 @@ tile: /* Count the total number of bytes to be read and allocate a * single buffer large enough. Or if it is very small, combine -* with other allocations. */ +* with other allocations. Each sub-buffer starting point has +* to be aligned to 64 bytes to conform latest hardware requirments. +* Align the pitch of each sub-buffer to 64 bytes for simplicities. +*/ offset = 0; for (n = 0; n < nbox_this_time; n++) { int height = box[n].y2 - box[n].y1; int width = box[n].x2 - box[n].x1; - offset += PITCH(width, dst->drawable.bitsPerPixel >> 3) * height; + pitch_aligned = ALIGN(PITCH(width, dst->drawable.bitsPerPixel >> 3), 64); + offset += pitch_aligned * height; } src_bo = kgem_create_buffer(kgem, offset, @@ -1113,9 +1117,10 @@ tile: assert(box->x1 + dst_dx >= 0); assert(box->y1 + dst_dy >= 0); + pitch_aligned = ALIGN(pitch, 64); memcpy_blt(src, (char *)ptr + offset, dst->drawable.bitsPerPixel, - stride, pitch, + stride, pitch_aligned, box->x1 + src_dx, box->y1 + src_dy, 0, 0, width, height); @@ -1133,7 +1138,7 @@ tile: KGEM_RELOC_FENCED, 0); b[6] = 0; - b[7] = pitch; + b[7] = pitch_aligned; *(uint64_t *)(b+8) = kgem_add_reloc64(kgem, kgem->nbatch + 8, src_bo, I915_GEM_DOMAIN_RENDER << 16 | @@ -1142,7 +1147,7 @@ tile: kgem->nbatch += 10; box++; - offset += pitch * height; + offset += pitch_aligned * height; } while (--nbox_this_time); assert(offset == __kgem_buffer_size(src_bo)); sigtrap_put(); -- 2.7.4 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] [intel-gfx] drm/i915/intel_csr.c Added ICL Stepping info.
Yeah, Thanks for the "Acked-by" Rodrigo. I request Imre/Anusha to review/acknowledge the same. Regards Jyoti -Original Message- From: Vivi, Rodrigo Sent: Tuesday, September 4, 2018 11:02 AM To: Yadav, Jyoti R Cc: intel-gfx@lists.freedesktop.org Subject: Re: [Intel-gfx] [PATCH] [intel-gfx] drm/i915/intel_csr.c Added ICL Stepping info. On Mon, Sep 03, 2018 at 03:45:13AM -0400, Jyoti Yadav wrote: > As DMC Package contain DMC FW for multiple steppings including default > stepping. This patch will help to load FW for that particular > stepping, if FW for that stepping is available, instead of loading default FW. > Cc: Imre Deak Cc: Anusha Srivatsa > Signed-off-by: Jyoti Yadav I'm not sure if I can properly review this, but based on previous platforms patch lgtm. Acked-by: Rodrigo Vivi I'm just not pushing because I'd like an ack from Anusha and/or Imre. > --- > drivers/gpu/drm/i915/intel_csr.c | 8 > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_csr.c > b/drivers/gpu/drm/i915/intel_csr.c > index 1ec4f09..f6352ab 100644 > --- a/drivers/gpu/drm/i915/intel_csr.c > +++ b/drivers/gpu/drm/i915/intel_csr.c > @@ -183,6 +183,11 @@ struct stepping_info { > {'A', '0'}, {'A', '1'}, {'A', '2'}, > {'B', '0'}, {'B', '1'}, {'B', '2'} > }; nip by checkpatch: missing blank line here. > +static const struct stepping_info icl_stepping_info[] = { > + {'A', '0'}, {'A', '1'}, {'A', '2'}, > + {'B', '0'}, {'B', '2'}, > + {'C', '0'} > +}; > > static const struct stepping_info no_stepping_info = { '*', '*' }; > > @@ -198,6 +203,9 @@ struct stepping_info { > } else if (IS_BROXTON(dev_priv)) { > size = ARRAY_SIZE(bxt_stepping_info); > si = bxt_stepping_info; > + } else if (IS_ICELAKE(dev_priv)) { > + size = ARRAY_SIZE(icl_stepping_info); > + si = icl_stepping_info; > } else { > size = 0; > si = NULL; > -- > 1.9.1 > > ___ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] [intel-gfx] drm/i915/intel_csr.c Added ICL Stepping info.
On Mon, Sep 03, 2018 at 03:45:13AM -0400, Jyoti Yadav wrote: > As DMC Package contain DMC FW for multiple steppings including default > stepping. This patch will help to load FW for that particular stepping, > if FW for that stepping is available, instead of loading default FW. > Cc: Imre Deak Cc: Anusha Srivatsa > Signed-off-by: Jyoti Yadav I'm not sure if I can properly review this, but based on previous platforms patch lgtm. Acked-by: Rodrigo Vivi I'm just not pushing because I'd like an ack from Anusha and/or Imre. > --- > drivers/gpu/drm/i915/intel_csr.c | 8 > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_csr.c > b/drivers/gpu/drm/i915/intel_csr.c > index 1ec4f09..f6352ab 100644 > --- a/drivers/gpu/drm/i915/intel_csr.c > +++ b/drivers/gpu/drm/i915/intel_csr.c > @@ -183,6 +183,11 @@ struct stepping_info { > {'A', '0'}, {'A', '1'}, {'A', '2'}, > {'B', '0'}, {'B', '1'}, {'B', '2'} > }; nip by checkpatch: missing blank line here. > +static const struct stepping_info icl_stepping_info[] = { > + {'A', '0'}, {'A', '1'}, {'A', '2'}, > + {'B', '0'}, {'B', '2'}, > + {'C', '0'} > +}; > > static const struct stepping_info no_stepping_info = { '*', '*' }; > > @@ -198,6 +203,9 @@ struct stepping_info { > } else if (IS_BROXTON(dev_priv)) { > size = ARRAY_SIZE(bxt_stepping_info); > si = bxt_stepping_info; > + } else if (IS_ICELAKE(dev_priv)) { > + size = ARRAY_SIZE(icl_stepping_info); > + si = icl_stepping_info; > } else { > size = 0; > si = NULL; > -- > 1.9.1 > > ___ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 1/1] firmware/dmc/icl: load v1.07 on icelake.
On Mon, Sep 03, 2018 at 01:00:39PM +0300, Imre Deak wrote: > On Mon, Aug 27, 2018 at 05:38:44PM -0700, Anusha Srivatsa wrote: > > Add Support to load DMC on Icelake. > > > > While at it, also add support to load the firmware > > during system resume. > > > > v2: load firmware during system resume.(Imre) > > > > v3: enable has_csr for icelake.(Jyoti) > > > > v4: Only load the firmware in this patch > > > > Cc: Jyoti Yadav > > Cc: Imre Deak > > Cc: Rodrigo Vivi > > Cc: Paulo Zanoni > > Signed-off-by: Anusha Srivatsa > > Reviewed-by: Imre Deak > > Is it ok to push this already now that the ICL 1.07 firmware is in [1] > or do we have to wait until it propagates to [2]? The main motivation behind having drm-firmware is the unpredictability of linux-firmware.git pull requests acceptance. It may take 1 day or it may take 2 months. So on drm-firmware we at least have it public in a way OSVs could easisly backport. Although hopefully by the end of 4.20 cycle I believe it will be there on linux-firmware.git already. So if fw is already on drm-firmware and passing all tests we should be able to push the patch to dinq. Thanks, Rodrigo. > > [1] https://cgit.freedesktop.org/drm/drm-firmware/ > [2] > https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git > > > --- > > drivers/gpu/drm/i915/intel_csr.c| 7 +++ > > drivers/gpu/drm/i915/intel_runtime_pm.c | 3 +++ > > 2 files changed, 10 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/intel_csr.c > > b/drivers/gpu/drm/i915/intel_csr.c > > index 1ec4f09c61f6..6d9d47322405 100644 > > --- a/drivers/gpu/drm/i915/intel_csr.c > > +++ b/drivers/gpu/drm/i915/intel_csr.c > > @@ -34,6 +34,9 @@ > > * low-power state and comes back to normal. > > */ > > > > +#define I915_CSR_ICL "i915/icl_dmc_ver1_07.bin" > > +#define ICL_CSR_VERSION_REQUIRED CSR_VERSION(1, 7) > > + > > #define I915_CSR_GLK "i915/glk_dmc_ver1_04.bin" > > MODULE_FIRMWARE(I915_CSR_GLK); > > #define GLK_CSR_VERSION_REQUIRED CSR_VERSION(1, 4) > > @@ -301,6 +304,8 @@ static uint32_t *parse_csr_fw(struct drm_i915_private > > *dev_priv, > > if (csr->fw_path == i915_modparams.dmc_firmware_path) { > > /* Bypass version check for firmware override. */ > > required_version = csr->version; > > + } else if (IS_ICELAKE(dev_priv)) { > > + required_version = ICL_CSR_VERSION_REQUIRED; > > } else if (IS_CANNONLAKE(dev_priv)) { > > required_version = CNL_CSR_VERSION_REQUIRED; > > } else if (IS_GEMINILAKE(dev_priv)) { > > @@ -458,6 +463,8 @@ void intel_csr_ucode_init(struct drm_i915_private > > *dev_priv) > > > > if (i915_modparams.dmc_firmware_path) > > csr->fw_path = i915_modparams.dmc_firmware_path; > > + else if (IS_ICELAKE(dev_priv)) > > + csr->fw_path = I915_CSR_ICL; > > else if (IS_CANNONLAKE(dev_priv)) > > csr->fw_path = I915_CSR_CNL; > > else if (IS_GEMINILAKE(dev_priv)) > > diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c > > b/drivers/gpu/drm/i915/intel_runtime_pm.c > > index 2852395125cd..bd7da068e813 100644 > > --- a/drivers/gpu/drm/i915/intel_runtime_pm.c > > +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c > > @@ -3563,6 +3563,9 @@ static void icl_display_core_init(struct > > drm_i915_private *dev_priv, > > > > /* 7. Setup MBUS. */ > > icl_mbus_init(dev_priv); > > + > > + if (resume && dev_priv->csr.dmc_payload) > > + intel_csr_load_program(dev_priv); > > } > > > > static void icl_display_core_uninit(struct drm_i915_private *dev_priv) > > -- > > 2.17.1 > > > ___ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v2] drm/i915: Fix ICL+ HDMI clock readout
On Mon, Sep 03, 2018 at 05:28:41PM +0300, Ville Syrjala wrote: > From: Ville Syrjälä > > Copy the 38.4 vs. 19.2 MHz ref clock exception from the dpll > mgr into the clock readout function as well. > > v2: Refactor the code into a common function > s/is_icl/gen11+/ (Rodrigo) neat > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107722 > Signed-off-by: Ville Syrjälä > Reviewed-by: Rodrigo Vivi #v1 Reviewed-by: Rodrigo Vivi > --- > drivers/gpu/drm/i915/intel_ddi.c | 2 +- > drivers/gpu/drm/i915/intel_dpll_mgr.c | 23 +++ > drivers/gpu/drm/i915/intel_dpll_mgr.h | 1 + > 3 files changed, 17 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c > b/drivers/gpu/drm/i915/intel_ddi.c > index f3b115ce4029..3e64488a2b0a 100644 > --- a/drivers/gpu/drm/i915/intel_ddi.c > +++ b/drivers/gpu/drm/i915/intel_ddi.c > @@ -1414,7 +1414,7 @@ static int cnl_calc_wrpll_link(struct drm_i915_private > *dev_priv, > break; > } > > - ref_clock = dev_priv->cdclk.hw.ref; > + ref_clock = cnl_hdmi_pll_ref_clock(dev_priv); > > dco_freq = (cfgcr0 & DPLL_CFGCR0_DCO_INTEGER_MASK) * ref_clock; > > diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.c > b/drivers/gpu/drm/i915/intel_dpll_mgr.c > index 04d41bc1a4bb..e6cac9225536 100644 > --- a/drivers/gpu/drm/i915/intel_dpll_mgr.c > +++ b/drivers/gpu/drm/i915/intel_dpll_mgr.c > @@ -2212,6 +2212,20 @@ static void cnl_wrpll_params_populate(struct > skl_wrpll_params *params, > params->dco_fraction = dco & 0x7fff; > } > > +int cnl_hdmi_pll_ref_clock(struct drm_i915_private *dev_priv) > +{ > + int ref_clock = dev_priv->cdclk.hw.ref; > + > + /* > + * For ICL+, the spec states: if reference frequency is 38.4, > + * use 19.2 because the DPLL automatically divides that by 2. > + */ > + if (INTEL_GEN(dev_priv) >= 11 && ref_clock == 38400) > + ref_clock = 19200; > + > + return ref_clock; > +} > + > static bool > cnl_ddi_calculate_wrpll(int clock, > struct drm_i915_private *dev_priv, > @@ -2251,14 +2265,7 @@ cnl_ddi_calculate_wrpll(int clock, > > cnl_wrpll_get_multipliers(best_div, , , ); > > - ref_clock = dev_priv->cdclk.hw.ref; > - > - /* > - * For ICL, the spec states: if reference frequency is 38.4, use 19.2 > - * because the DPLL automatically divides that by 2. > - */ > - if (IS_ICELAKE(dev_priv) && ref_clock == 38400) > - ref_clock = 19200; > + ref_clock = cnl_hdmi_pll_ref_clock(dev_priv); > > cnl_wrpll_params_populate(wrpll_params, best_dco, ref_clock, pdiv, qdiv, > kdiv); > diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.h > b/drivers/gpu/drm/i915/intel_dpll_mgr.h > index 7e522cf4f13f..bf0de8a4dc63 100644 > --- a/drivers/gpu/drm/i915/intel_dpll_mgr.h > +++ b/drivers/gpu/drm/i915/intel_dpll_mgr.h > @@ -344,5 +344,6 @@ void intel_dpll_dump_hw_state(struct drm_i915_private > *dev_priv, > struct intel_dpll_hw_state *hw_state); > int icl_calc_dp_combo_pll_link(struct drm_i915_private *dev_priv, > uint32_t pll_id); > +int cnl_hdmi_pll_ref_clock(struct drm_i915_private *dev_priv); > > #endif /* _INTEL_DPLL_MGR_H_ */ > -- > 2.16.4 > > ___ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PULL] gvt-fixes for 4.19
On Tue, Sep 04, 2018 at 10:54:37AM +0800, Zhenyu Wang wrote: > > Hi, > > Here's current gvt-fixes for 4.19 with more BXT fixes, > two guest warning fixes, dmabuf format mod fix and one > for recent multiple VM timeout failure. pulled, thanks! > > Thanks > -- > The following changes since commit 80ab316901bc4ae6dd0b5903dbe22766307eac9b: > > drm/i915/audio: Hook up component bindings even if displays are disabled > (2018-08-29 14:11:53 -0700) > > are available in the Git repository at: > > https://github.com/intel/gvt-linux.git tags/gvt-fixes-2018-09-04 > > for you to fetch changes up to 54ff01fd0d44b9681615f77c15fe9ea6dfadb501: > > drm/i915/gvt: Give new born vGPU higher scheduling chance (2018-09-03 > 14:28:23 +0800) > > > gvt-fixes-2018-09-04 > > - two BXT virtual display emulation fixes (Colin) > - gen9 dbuf guest warning fix (Xiaolin) > - vgpu close pm warning fix (Hang) > - dmabuf format_mod fix (Zhenyu) > - multiple VM guest failure fix for scheduling (Zhenyu) > > > Colin Xu (2): > drm/i915/gvt: Make correct handling to vreg BXT_PHY_CTL_FAMILY > drm/i915/gvt: Handle GEN9_WM_CHICKEN3 with F_CMD_ACCESS. > > Hang Yuan (1): > drm/i915/gvt: move intel_runtime_pm_get out of spin_lock in > stop_schedule > > Xiaolin Zhang (1): > drm/i915/gvt: emulate gen9 dbuf ctl register access > > Zhenyu Wang (2): > drm/i915/gvt: Fix drm_format_mod value for vGPU plane > drm/i915/gvt: Give new born vGPU higher scheduling chance > > drivers/gpu/drm/i915/gvt/dmabuf.c | 33 ++--- > drivers/gpu/drm/i915/gvt/fb_decoder.c | 5 ++--- > drivers/gpu/drm/i915/gvt/fb_decoder.h | 2 +- > drivers/gpu/drm/i915/gvt/handlers.c | 33 +++-- > drivers/gpu/drm/i915/gvt/mmio_context.c | 2 -- > drivers/gpu/drm/i915/gvt/sched_policy.c | 37 > ++--- > 6 files changed, 86 insertions(+), 26 deletions(-) > > > -- > Open Source Technology Center, Intel ltd. > > $gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PULL] gvt-next for 4.20
Hi, Here's initial gvt-next for 4.20 with two optimization for guest context shadowing and command parser, and with W=1 build fixes. Thanks -- The following changes since commit 279ce5d117078ee8ea40c40199399889981fd808: drm/i915/gvt: declare gvt as i915's soft dependency (2018-07-10 11:13:11 +0800) are available in the Git repository at: https://github.com/intel/gvt-linux.git tags/gvt-next-2018-09-04 for you to fetch changes up to 69ca5af4ff9a3ff96e4595c2b7522c01a2641779: drm/i915/gvt: Move some MMIO definitions to reg.h (2018-08-07 10:40:11 +0800) gvt-next-2018-09-04 - guest context shadow optimization for restore inhibit one (Yan) - cmd parser optimization (Yan) - W=1 warning fixes (Zhenyu) Zhao Yan (2): drm/i915/gvt: add a fastpath for cmd parsing on MI_NOOP drm/i915/gvt: only copy the first page for restore inhibit context Zhenyu Wang (3): drm/i915/gvt: make dma map/unmap kvmgt functions as static drm/i915/gvt: Fix function comment doc errors drm/i915/gvt: Move some MMIO definitions to reg.h drivers/gpu/drm/i915/gvt/cfg_space.c| 12 +++ drivers/gpu/drm/i915/gvt/cmd_parser.c | 11 +- drivers/gpu/drm/i915/gvt/display.c | 1 + drivers/gpu/drm/i915/gvt/edid.c | 9 + drivers/gpu/drm/i915/gvt/gtt.c | 9 +++-- drivers/gpu/drm/i915/gvt/gvt.c | 3 +- drivers/gpu/drm/i915/gvt/handlers.c | 1 + drivers/gpu/drm/i915/gvt/kvmgt.c| 4 +-- drivers/gpu/drm/i915/gvt/mmio.c | 3 +- drivers/gpu/drm/i915/gvt/mmio_context.c | 13 --- drivers/gpu/drm/i915/gvt/mmio_context.h | 3 ++ drivers/gpu/drm/i915/gvt/opregion.c | 1 - drivers/gpu/drm/i915/gvt/page_track.c | 2 ++ drivers/gpu/drm/i915/gvt/reg.h | 9 + drivers/gpu/drm/i915/gvt/scheduler.c| 64 + 15 files changed, 92 insertions(+), 53 deletions(-) -- Open Source Technology Center, Intel ltd. $gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827 signature.asc Description: PGP signature ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PULL] gvt-fixes for 4.19
Hi, Here's current gvt-fixes for 4.19 with more BXT fixes, two guest warning fixes, dmabuf format mod fix and one for recent multiple VM timeout failure. Thanks -- The following changes since commit 80ab316901bc4ae6dd0b5903dbe22766307eac9b: drm/i915/audio: Hook up component bindings even if displays are disabled (2018-08-29 14:11:53 -0700) are available in the Git repository at: https://github.com/intel/gvt-linux.git tags/gvt-fixes-2018-09-04 for you to fetch changes up to 54ff01fd0d44b9681615f77c15fe9ea6dfadb501: drm/i915/gvt: Give new born vGPU higher scheduling chance (2018-09-03 14:28:23 +0800) gvt-fixes-2018-09-04 - two BXT virtual display emulation fixes (Colin) - gen9 dbuf guest warning fix (Xiaolin) - vgpu close pm warning fix (Hang) - dmabuf format_mod fix (Zhenyu) - multiple VM guest failure fix for scheduling (Zhenyu) Colin Xu (2): drm/i915/gvt: Make correct handling to vreg BXT_PHY_CTL_FAMILY drm/i915/gvt: Handle GEN9_WM_CHICKEN3 with F_CMD_ACCESS. Hang Yuan (1): drm/i915/gvt: move intel_runtime_pm_get out of spin_lock in stop_schedule Xiaolin Zhang (1): drm/i915/gvt: emulate gen9 dbuf ctl register access Zhenyu Wang (2): drm/i915/gvt: Fix drm_format_mod value for vGPU plane drm/i915/gvt: Give new born vGPU higher scheduling chance drivers/gpu/drm/i915/gvt/dmabuf.c | 33 ++--- drivers/gpu/drm/i915/gvt/fb_decoder.c | 5 ++--- drivers/gpu/drm/i915/gvt/fb_decoder.h | 2 +- drivers/gpu/drm/i915/gvt/handlers.c | 33 +++-- drivers/gpu/drm/i915/gvt/mmio_context.c | 2 -- drivers/gpu/drm/i915/gvt/sched_policy.c | 37 ++--- 6 files changed, 86 insertions(+), 26 deletions(-) -- Open Source Technology Center, Intel ltd. $gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827 signature.asc Description: PGP signature ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/2] drm/i915: Combine cleanup_status_page()
== Series Details == Series: series starting with [1/2] drm/i915: Combine cleanup_status_page() URL : https://patchwork.freedesktop.org/series/49085/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4757_full -> Patchwork_10074_full = == Summary - SUCCESS == No regressions found. == Known issues == Here are the changes found in Patchwork_10074_full that come from known issues: === IGT changes === Issues hit igt@drv_suspend@shrink: shard-glk: PASS -> FAIL (fdo#106886) igt@gem_exec_basic@basic-bsd1: shard-snb: NOTRUN -> INCOMPLETE (fdo#105411) igt@gem_exec_big: shard-hsw: PASS -> INCOMPLETE (fdo#103540) igt@kms_setmode@basic: shard-kbl: PASS -> FAIL (fdo#99912) igt@kms_vblank@pipe-a-ts-continuation-suspend: shard-apl: PASS -> INCOMPLETE (fdo#103927) Possible fixes igt@gem_exec_await@wide-contexts: shard-glk: FAIL (fdo#105900) -> PASS igt@gem_wait@await-bsd2: shard-snb: INCOMPLETE (fdo#105411) -> SKIP igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite: shard-apl: DMESG-WARN (fdo#105602, fdo#103558) -> PASS +2 igt@kms_vblank@pipe-b-ts-continuation-idle-hang: shard-apl: DMESG-WARN -> PASS igt@pm_rc6_residency@rc6-accuracy: shard-glk: INCOMPLETE (fdo#103359, k.org#198133) -> PASS fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359 fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540 fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411 fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602 fdo#105900 https://bugs.freedesktop.org/show_bug.cgi?id=105900 fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886 fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912 k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133 == Participating hosts (5 -> 5) == No changes in participating hosts == Build changes == * Linux: CI_DRM_4757 -> Patchwork_10074 CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10074: 23b2d4ef0d61b349b77010f58f76d6d2a987b8fd @ 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_10074/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Fix ICL HDMI clock readout (rev2)
== Series Details == Series: drm/i915: Fix ICL HDMI clock readout (rev2) URL : https://patchwork.freedesktop.org/series/48805/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4757_full -> Patchwork_10072_full = == Summary - SUCCESS == No regressions found. == Known issues == Here are the changes found in Patchwork_10072_full that come from known issues: === IGT changes === Issues hit igt@kms_plane_lowres@pipe-b-tiling-x: shard-kbl: PASS -> DMESG-WARN (fdo#105345) igt@kms_setmode@basic: shard-kbl: PASS -> FAIL (fdo#99912) Possible fixes igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite: shard-apl: DMESG-WARN (fdo#105602, fdo#103558) -> PASS +2 igt@kms_setmode@basic: shard-apl: FAIL (fdo#99912) -> PASS igt@kms_vblank@pipe-b-ts-continuation-idle-hang: shard-apl: DMESG-WARN -> PASS igt@pm_rc6_residency@rc6-accuracy: shard-glk: INCOMPLETE (fdo#103359, k.org#198133) -> PASS fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359 fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558 fdo#105345 https://bugs.freedesktop.org/show_bug.cgi?id=105345 fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602 fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912 k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133 == Participating hosts (5 -> 5) == No changes in participating hosts == Build changes == * Linux: CI_DRM_4757 -> Patchwork_10072 CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10072: 7ea7034989566579e4784e861a66d533949ca598 @ 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_10072/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for kernel/panic: Show the stacktrace after additional notifier messages
== Series Details == Series: kernel/panic: Show the stacktrace after additional notifier messages URL : https://patchwork.freedesktop.org/series/49080/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4757_full -> Patchwork_10071_full = == Summary - SUCCESS == No regressions found. == Known issues == Here are the changes found in Patchwork_10071_full that come from known issues: === IGT changes === Issues hit igt@gem_ctx_isolation@bcs0-s3: shard-apl: PASS -> INCOMPLETE (fdo#103927) +1 Possible fixes igt@gem_exec_await@wide-contexts: shard-glk: FAIL (fdo#105900) -> PASS igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite: shard-apl: DMESG-WARN (fdo#103558, fdo#105602) -> PASS +2 igt@kms_setmode@basic: shard-apl: FAIL (fdo#99912) -> PASS igt@kms_vblank@pipe-b-ts-continuation-idle-hang: shard-apl: DMESG-WARN -> PASS igt@pm_rc6_residency@rc6-accuracy: shard-glk: INCOMPLETE (fdo#103359, k.org#198133) -> PASS fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359 fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602 fdo#105900 https://bugs.freedesktop.org/show_bug.cgi?id=105900 fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912 k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133 == Participating hosts (5 -> 5) == No changes in participating hosts == Build changes == * Linux: CI_DRM_4757 -> Patchwork_10071 CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10071: 2bd593b08f91000ef8b8c3070292c2d25634a25d @ 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_10071/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [01/14] drm: Add drm/kernel.h header file
== Series Details == Series: series starting with [01/14] drm: Add drm/kernel.h header file URL : https://patchwork.freedesktop.org/series/49089/ State : failure == Summary == = CI Bug Log - changes from CI_DRM_4758 -> Patchwork_10076 = == Summary - FAILURE == Serious unknown changes coming with Patchwork_10076 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10076, 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/49089/revisions/1/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10076: === IGT changes === Possible regressions igt@core_auth@basic-auth: fi-kbl-8809g: PASS -> INCOMPLETE == Known issues == Here are the changes found in Patchwork_10076 that come from known issues: === IGT changes === Issues hit igt@gem_exec_suspend@basic-s3: fi-blb-e6850: PASS -> INCOMPLETE (fdo#107718) igt@kms_chamelium@hdmi-hpd-fast: fi-kbl-7500u: SKIP -> FAIL (fdo#102672, fdo#103841) igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: fi-byt-clapper: PASS -> FAIL (fdo#103191, fdo#107362) igt@kms_psr@primary_page_flip: fi-cnl-psr: PASS -> FAIL (fdo#107336) igt@kms_setmode@basic-clone-single-crtc: fi-ilk-650: PASS -> DMESG-WARN (fdo#106387) igt@prime_vgem@basic-fence-flip: fi-ilk-650: PASS -> FAIL (fdo#104008) fdo#102672 https://bugs.freedesktop.org/show_bug.cgi?id=102672 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841 fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008 fdo#106387 https://bugs.freedesktop.org/show_bug.cgi?id=106387 fdo#107336 https://bugs.freedesktop.org/show_bug.cgi?id=107336 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 == Participating hosts (53 -> 48) == Missing(5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u == Build changes == * Linux: CI_DRM_4758 -> Patchwork_10076 CI_DRM_4758: 6e3c617fd15ac7bf8259d5741565a78a35004123 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4622: 022be555443eaa3317da6a9a451cf2c9dfcd6ab8 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10076: 64895f7efd90fea0de1af3dc0a3d892deb4d93c3 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 64895f7efd90 drm/vmwgfx: Add FIXME comments for customer page_flip handlers 835a147156e8 drm/atomic: Improve docs for drm_atomic_state->allow_modeset a00d9f872f7f drm/vmwgfx: Don't look at state->allow_modeset 3f52631f306e drm/vmwgfx: Remove confused comment from vmw_du_connector_atomic_set_property 0cac37810f9d drm: Extract drm_atomic_state_helper.[hc] e8bab7fce24b drm: Update todo.rst 743e2645a0a1 drm/amdgpu: Remove default best_encoder hook from DC a0725c65f9ee drm/atomic-helper: Unexport drm_atomic_helper_best_encoder 2433899462b1 drm: extract drm_atomic_uapi.c d53335198614 drm/atomic: trim driver interface/docs acd20948fa62 drm: drop drmP.h include from drm_crtc.c 963a78e5752b drm: drop drmP.h include from drm_plane.c 4e507bab6b77 drm: Drop drmP.h from drm_connector.c a39d30c28e70 drm: Add drm/kernel.h header file == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10076/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [01/14] drm: Add drm/kernel.h header file
== Series Details == Series: series starting with [01/14] drm: Add drm/kernel.h header file URL : https://patchwork.freedesktop.org/series/49089/ State : warning == Summary == $ dim sparse origin/drm-tip Commit: drm: Add drm/kernel.h header file -drivers/gpu/drm/i915/selftests/../i915_drv.h:3686:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/../i915_drv.h:3687:16: warning: expression using sizeof(void) Commit: drm: Drop drmP.h from drm_connector.c Okay! Commit: drm: drop drmP.h include from drm_plane.c Okay! Commit: drm: drop drmP.h include from drm_crtc.c Okay! Commit: drm/atomic: trim driver interface/docs Okay! Commit: drm: extract drm_atomic_uapi.c Okay! Commit: drm/atomic-helper: Unexport drm_atomic_helper_best_encoder Okay! Commit: drm/amdgpu: Remove default best_encoder hook from DC -drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3035:6: warning: symbol 'dm_drm_plane_destroy_state' was not declared. Should it be static? -drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3826:27: warning: expression using sizeof(void) -drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3826:27: warning: expression using sizeof(void) -drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3830:27: warning: expression using sizeof(void) -drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3830:27: warning: expression using sizeof(void) -drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3937:58: warning: Using plain integer as NULL pointer +drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3012:6: warning: symbol 'dm_drm_plane_destroy_state' was not declared. Should it be static? +drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3803:27: warning: expression using sizeof(void) +drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3803:27: warning: expression using sizeof(void) +drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3807:27: warning: expression using sizeof(void) +drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3807:27: warning: expression using sizeof(void) +drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3914:58: warning: Using plain integer as NULL pointer Commit: drm: Update todo.rst Okay! Commit: drm: Extract drm_atomic_state_helper.[hc] Okay! Commit: drm/vmwgfx: Remove confused comment from vmw_du_connector_atomic_set_property Okay! Commit: drm/vmwgfx: Don't look at state->allow_modeset Okay! Commit: drm/atomic: Improve docs for drm_atomic_state->allow_modeset Okay! Commit: drm/vmwgfx: Add FIXME comments for customer page_flip handlers Okay! ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [01/14] drm: Add drm/kernel.h header file
== Series Details == Series: series starting with [01/14] drm: Add drm/kernel.h header file URL : https://patchwork.freedesktop.org/series/49089/ State : warning == Summary == $ dim checkpatch origin/drm-tip a39d30c28e70 drm: Add drm/kernel.h header file -:139: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #139: new file mode 100644 -:144: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier tag in line 1 #144: FILE: include/drm/kernel.h:1: +/* -:173: ERROR:MULTISTATEMENT_MACRO_USE_DO_WHILE: Macros starting with if should be enclosed by a do - while loop to avoid possible if/else logic defects #173: FILE: include/drm/kernel.h:30: +#define for_each_if(condition) if (!(condition)) {} else -:173: WARNING:BRACES: braces {} are not necessary for single statement blocks #173: FILE: include/drm/kernel.h:30: +#define for_each_if(condition) if (!(condition)) {} else total: 1 errors, 3 warnings, 0 checks, 105 lines checked 4e507bab6b77 drm: Drop drmP.h from drm_connector.c -:56: WARNING:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Daniel Vetter ' total: 0 errors, 1 warnings, 0 checks, 30 lines checked 963a78e5752b drm: drop drmP.h include from drm_plane.c -:92: WARNING:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Daniel Vetter ' total: 0 errors, 1 warnings, 0 checks, 55 lines checked acd20948fa62 drm: drop drmP.h include from drm_crtc.c -:35: WARNING:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Daniel Vetter ' total: 0 errors, 1 warnings, 0 checks, 17 lines checked d53335198614 drm/atomic: trim driver interface/docs -:88: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis #88: FILE: drivers/gpu/drm/drm_atomic.c:501: +static int drm_atomic_crtc_set_property(struct drm_crtc *crtc, struct drm_crtc_state *state, struct drm_property *property, -:202: CHECK:OPEN_ENDED_LINE: Lines should not end with a '(' #202: FILE: drivers/gpu/drm/drm_atomic.c:1253: +static int drm_atomic_set_writeback_fb_for_connector( -:342: WARNING:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Daniel Vetter ' total: 0 errors, 1 warnings, 2 checks, 301 lines checked 2433899462b1 drm: extract drm_atomic_uapi.c -:1498: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #1498: new file mode 100644 -:1503: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier tag in line 1 #1503: FILE: drivers/gpu/drm/drm_atomic_uapi.c:1: +/* -:1552: WARNING:TYPO_SPELLING: 'similiar' may be misspelled - perhaps 'similar'? #1552: FILE: drivers/gpu/drm/drm_atomic_uapi.c:50: + * for load detect or similiar. -:1583: ERROR:CODE_INDENT: code indent should use tabs where possible #1583: FILE: drivers/gpu/drm/drm_atomic_uapi.c:81: +^I^I sizeof(umode),$ -:1583: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis #1583: FILE: drivers/gpu/drm/drm_atomic_uapi.c:81: + drm_property_create_blob(state->crtc->dev, +sizeof(umode), -:1584: ERROR:CODE_INDENT: code indent should use tabs where possible #1584: FILE: drivers/gpu/drm/drm_atomic_uapi.c:82: +^I^I );$ -:1617: ERROR:CODE_INDENT: code indent should use tabs where possible #1617: FILE: drivers/gpu/drm/drm_atomic_uapi.c:115: + struct drm_property_blob *blob)$ -:1617: WARNING:LEADING_SPACE: please, no spaces at the start of a line #1617: FILE: drivers/gpu/drm/drm_atomic_uapi.c:115: + struct drm_property_blob *blob)$ -:1860: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis #1860: FILE: drivers/gpu/drm/drm_atomic_uapi.c:358: +static int set_out_fence_for_connector(struct drm_atomic_state *state, + struct drm_connector *connector, -:1900: CHECK:COMPARISON_TO_NULL: Comparison to NULL could be written "!new_blob" #1900: FILE: drivers/gpu/drm/drm_atomic_uapi.c:398: + if (new_blob == NULL) -:1922: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis #1922: FILE: drivers/gpu/drm/drm_atomic_uapi.c:420: +static int drm_atomic_crtc_set_property(struct drm_crtc *crtc, + struct drm_crtc_state *state, struct drm_property *property, -:1930: CHECK:BRACES: braces {} should be used on all arms of this statement #1930: FILE: drivers/gpu/drm/drm_atomic_uapi.c:428: + if (property == config->prop_active) [...] + else if (property == config->prop_mode_id) { [...] + } else if (property == config->degamma_lut_property) { [...] + } else if (property == config->ctm_property) { [...] + } else if (property == config->gamma_lut_property) { [...] + } else if (property == config->prop_out_fence_ptr) { [...] +
Re: [Intel-gfx] [PATCH 09/14] drm: Update todo.rst
On 3 September 2018 at 17:54, Daniel Vetter wrote: > -Hide legacy cruft better > - > - > -Way back DRM supported only drivers which shadow-attached to PCI devices with > -userspace or fbdev drivers setting up outputs. Modern DRM drivers take charge > -of the entire device, you can spot them with the DRIVER_MODESET flag. > - > -Unfortunately there's still large piles of legacy code around which needs to > -be hidden so that driver writers don't accidentally end up using it. And to > -prevent security issues in those legacy IOCTLs from being exploited on modern > -drivers. This has multiple possible subtasks: > - > -* Extract support code for legacy features into a ``drm-legacy.ko`` kernel > - module and compile it only when one of the legacy drivers is enabled. > - This isn't done, > -This is mostly done, the only thing left is to split up ``drm_irq.c`` into > -legacy cruft and the parts needed by modern KMS drivers. > - ... while this one is. HTH -Emil ___ 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/icl: Fix context RPCS programming (rev2)
== Series Details == Series: drm/i915/icl: Fix context RPCS programming (rev2) URL : https://patchwork.freedesktop.org/series/49005/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4757_full -> Patchwork_10070_full = == Summary - WARNING == Minor unknown changes coming with Patchwork_10070_full need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10070_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_10070_full: === IGT changes === Warnings igt@perf_pmu@rc6: shard-kbl: PASS -> SKIP == Known issues == Here are the changes found in Patchwork_10070_full that come from known issues: === IGT changes === Issues hit igt@kms_cursor_legacy@cursor-vs-flip-toggle: shard-hsw: PASS -> FAIL (fdo#103355) igt@kms_setmode@basic: shard-kbl: PASS -> FAIL (fdo#99912) Possible fixes igt@gem_exec_await@wide-contexts: shard-glk: FAIL (fdo#105900) -> PASS igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite: shard-apl: DMESG-WARN (fdo#105602, fdo#103558) -> PASS +2 igt@kms_setmode@basic: shard-apl: FAIL (fdo#99912) -> PASS igt@kms_vblank@pipe-b-ts-continuation-idle-hang: shard-apl: DMESG-WARN -> PASS igt@pm_rc6_residency@rc6-accuracy: shard-glk: INCOMPLETE (fdo#103359, k.org#198133) -> PASS fdo#103355 https://bugs.freedesktop.org/show_bug.cgi?id=103355 fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359 fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558 fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602 fdo#105900 https://bugs.freedesktop.org/show_bug.cgi?id=105900 fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912 k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133 == Participating hosts (5 -> 5) == No changes in participating hosts == Build changes == * Linux: CI_DRM_4757 -> Patchwork_10070 CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10070: 9a2751c01ca21789da2a8f95dab23033540ad6c9 @ 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_10070/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 09/14] drm: Update todo.rst
Hi Daniel. > -Note that this is well in progress, but ``drmP.h`` is still huge. The updated > -plan is to switch to per-file driver API headers, which will also structure > -the kerneldoc better. This should also allow more fine-grained ``#include`` > -directives. > +The DRM subsystem originally had only one huge globale header, ``drmP.h``. > This globale => global > +is not split up, but many source files still include it. The remainig part of remainig => remaining Sam ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.BAT: failure for video/fbdev: Warn when we try to free a registered framebuffer
== Series Details == Series: video/fbdev: Warn when we try to free a registered framebuffer URL : https://patchwork.freedesktop.org/series/49088/ State : failure == Summary == = CI Bug Log - changes from CI_DRM_4757 -> Patchwork_10075 = == Summary - FAILURE == Serious unknown changes coming with Patchwork_10075 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10075, 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/49088/revisions/1/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10075: === IGT changes === Possible regressions igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: fi-icl-u: PASS -> INCOMPLETE == Known issues == Here are the changes found in Patchwork_10075 that come from known issues: === IGT changes === Issues hit igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence: fi-byt-clapper: PASS -> FAIL (fdo#107362, fdo#103191) Possible fixes igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence: fi-byt-clapper: FAIL (fdo#107362, fdo#103191) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c: fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 == Participating hosts (53 -> 48) == Missing(5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u == Build changes == * Linux: CI_DRM_4757 -> Patchwork_10075 CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10075: 19ba7c0f116fd5ec8f0e0a77b13ea3f9ae3c67a5 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 19ba7c0f116f video/fbdev: Warn when we try to free a registered framebuffer == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10075/issues.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/i915: Combine cleanup_status_page()
Quoting Matthew Auld (2018-09-03 17:39:09) > On Mon, 3 Sep 2018 at 16:25, Chris Wilson wrote: > > > > Pull the physical status page cleanup into a common > > cleanup_status_page() for caller simplicity. > > > > Signed-off-by: Chris Wilson > Reviewed-by: Matthew Auld And applied just on the off-chance it helps with a strange one-off occurrence of a missed breadcrumb on gdg. Thanks, -Chris ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for video/fbdev: Warn when we try to free a registered framebuffer
== Series Details == Series: video/fbdev: Warn when we try to free a registered framebuffer URL : https://patchwork.freedesktop.org/series/49088/ State : warning == Summary == $ dim checkpatch origin/drm-tip 19ba7c0f116f video/fbdev: Warn when we try to free a registered framebuffer -:28: ERROR:MISSING_SIGN_OFF: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 0 checks, 11 lines checked ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 14/14] drm/vmwgfx: Add FIXME comments for customer page_flip handlers
The idea behind allowing drivers to override legacy ioctls (instead of using the generic implementations unconditionally) is to handle bugs in old driver-specific userspace. Like e.g. vmw_kms_set_config does, to work around some vmwgfx userspace not clearing its ioctl structs properly. But you can't use it to augment semantics and put in additional checks, since from a correctly working userspace's pov there should not be any difference in behaviour between the legacy and the atomic paths. vmwgfx seems to be doing some strange things in its page_flip handlers. Since I'm not an expert of this codebase just wrap some FIXME comments around the potentially problematic code. Signed-off-by: Daniel Vetter Cc: VMware Graphics Cc: Sinclair Yeh Cc: Thomas Hellstrom --- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 2 ++ drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 1 + 2 files changed, 3 insertions(+) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c index 4c68ad6f3605..8e692334c3b9 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c @@ -326,6 +326,7 @@ static int vmw_sou_crtc_page_flip(struct drm_crtc *crtc, struct vmw_private *dev_priv = vmw_priv(crtc->dev); int ret; + /* FIMXE: This check needs to be moved into ->atomic_check code. */ if (!vmw_kms_crtc_flippable(dev_priv, crtc)) return -EINVAL; @@ -335,6 +336,7 @@ static int vmw_sou_crtc_page_flip(struct drm_crtc *crtc, return ret; } + /* FIMXE: This code needs to be moved into ->atomic_commit callbacks. */ if (vmw_crtc_to_du(crtc)->is_implicit) vmw_kms_update_implicit_fb(dev_priv, crtc); diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c index f5b2fe8a7793..1913e086d015 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c @@ -501,6 +501,7 @@ static int vmw_stdu_crtc_page_flip(struct drm_crtc *crtc, struct vmw_screen_target_display_unit *stdu = vmw_crtc_to_stdu(crtc); int ret; + /* FIMXE: This check needs to be moved into ->atomic_check code. */ if (!stdu->defined || !vmw_kms_crtc_flippable(dev_priv, crtc)) return -EINVAL; -- 2.18.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 12/14] drm/vmwgfx: Don't look at state->allow_modeset
That's purely for the uapi layer to implement the ALLOW_MODESET flag. Drivers should instead look at the state, e.g. through drm_atomic_crtc_needs_modeset(), which vmwgfx already does. Also remove the confusing comment, since checking allow_modeset is at best a micro optimization. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 8 1 file changed, 8 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index 0f7e116a59f0..71b7460d140f 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -1683,14 +1683,6 @@ vmw_kms_atomic_check_modeset(struct drm_device *dev, if (ret) return ret; - if (!state->allow_modeset) - return ret; - - /* -* Legacy path do not set allow_modeset properly like -* @drm_atomic_helper_update_plane, This will result in unnecessary call -* to vmw_kms_check_topology. So extra set of check. -*/ for_each_new_crtc_in_state(state, crtc, crtc_state, i) { if (drm_atomic_crtc_needs_modeset(crtc_state)) need_modeset = true; -- 2.18.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 13/14] drm/atomic: Improve docs for drm_atomic_state->allow_modeset
Motivated by vmwgfx digging around in core uapi bits it shouldn't dig around in. Signed-off-by: Daniel Vetter --- include/drm/drm_atomic.h | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h index 4aff40886acb..91d896ec9c10 100644 --- a/include/drm/drm_atomic.h +++ b/include/drm/drm_atomic.h @@ -254,7 +254,6 @@ struct __drm_private_objs_state { * struct drm_atomic_state - the global state object for atomic updates * @ref: count of all references to this state (will not be freed until zero) * @dev: parent DRM device - * @allow_modeset: allow full modeset * @legacy_cursor_update: hint to enforce legacy cursor IOCTL semantics * @async_update: hint for asynchronous plane update * @planes: pointer to array of structures with per-plane data @@ -273,6 +272,15 @@ struct drm_atomic_state { struct kref ref; struct drm_device *dev; + + /** +* @allow_modeset: +* +* Allow full modeset. This is used by the ATOMIC IOCTL handler to +* implement the DRM_MODE_ATOMIC_ALLOW_MODESET flag. Drivers should +* never consult this flag, instead looking at the output of +* drm_atomic_crtc_needs_modeset(). +*/ bool allow_modeset : 1; bool legacy_cursor_update : 1; bool async_update : 1; -- 2.18.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 10/14] drm: Extract drm_atomic_state_helper.[hc]
We already have a separate overview doc for this, makes sense to untangle it from the overall atomic helpers. Signed-off-by: Daniel Vetter --- Documentation/gpu/drm-kms-helpers.rst | 19 +- drivers/gpu/drm/Makefile | 3 +- drivers/gpu/drm/drm_atomic_helper.c | 568 drivers/gpu/drm/drm_atomic_state_helper.c | 603 ++ include/drm/drm_atomic_helper.h | 44 +- include/drm/drm_atomic_state_helper.h | 80 +++ 6 files changed, 700 insertions(+), 617 deletions(-) create mode 100644 drivers/gpu/drm/drm_atomic_state_helper.c create mode 100644 include/drm/drm_atomic_state_helper.h diff --git a/Documentation/gpu/drm-kms-helpers.rst b/Documentation/gpu/drm-kms-helpers.rst index f9cfcdcdf024..4b4dc236ef6f 100644 --- a/Documentation/gpu/drm-kms-helpers.rst +++ b/Documentation/gpu/drm-kms-helpers.rst @@ -59,19 +59,28 @@ Implementing Asynchronous Atomic Commit .. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c :doc: implementing nonblocking commit +Helper Functions Reference +-- + +.. kernel-doc:: include/drm/drm_atomic_helper.h + :internal: + +.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c + :export: + Atomic State Reset and Initialization - -.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c +.. kernel-doc:: drivers/gpu/drm/drm_atomic_state_helper.c :doc: atomic state reset and initialization -Helper Functions Reference --- +Atomic State Helper Reference +- -.. kernel-doc:: include/drm/drm_atomic_helper.h +.. kernel-doc:: include/drm/drm_atomic_state_helper.h :internal: -.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c +.. kernel-doc:: drivers/gpu/drm/drm_atomic_state_helper.c :export: Simple KMS Helper Reference diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile index bc6a16a3c36e..576ba985e138 100644 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@ -36,7 +36,8 @@ drm_kms_helper-y := drm_crtc_helper.o drm_dp_helper.o drm_probe_helper.o \ drm_plane_helper.o drm_dp_mst_topology.o drm_atomic_helper.o \ drm_kms_helper_common.o drm_dp_dual_mode_helper.o \ drm_simple_kms_helper.o drm_modeset_helper.o \ - drm_scdc_helper.o drm_gem_framebuffer_helper.o + drm_scdc_helper.o drm_gem_framebuffer_helper.o \ + drm_atomic_state_helper.o drm_kms_helper-$(CONFIG_DRM_PANEL_BRIDGE) += bridge/panel.o drm_kms_helper-$(CONFIG_DRM_FBDEV_EMULATION) += drm_fb_helper.o diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 334b121bd4d9..a5edc8757056 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -3382,571 +3382,3 @@ int drm_atomic_helper_page_flip_target(struct drm_crtc *crtc, return ret; } EXPORT_SYMBOL(drm_atomic_helper_page_flip_target); - -/** - * DOC: atomic state reset and initialization - * - * Both the drm core and the atomic helpers assume that there is always the full - * and correct atomic software state for all connectors, CRTCs and planes - * available. Which is a bit a problem on driver load and also after system - * suspend. One way to solve this is to have a hardware state read-out - * infrastructure which reconstructs the full software state (e.g. the i915 - * driver). - * - * The simpler solution is to just reset the software state to everything off, - * which is easiest to do by calling drm_mode_config_reset(). To facilitate this - * the atomic helpers provide default reset implementations for all hooks. - * - * On the upside the precise state tracking of atomic simplifies system suspend - * and resume a lot. For drivers using drm_mode_config_reset() a complete recipe - * is implemented in drm_atomic_helper_suspend() and drm_atomic_helper_resume(). - * For other drivers the building blocks are split out, see the documentation - * for these functions. - */ - -/** - * drm_atomic_helper_crtc_reset - default _crtc_funcs.reset hook for CRTCs - * @crtc: drm CRTC - * - * Resets the atomic state for @crtc by freeing the state pointer (which might - * be NULL, e.g. at driver load time) and allocating a new empty state object. - */ -void drm_atomic_helper_crtc_reset(struct drm_crtc *crtc) -{ - if (crtc->state) - __drm_atomic_helper_crtc_destroy_state(crtc->state); - - kfree(crtc->state); - crtc->state = kzalloc(sizeof(*crtc->state), GFP_KERNEL); - - if (crtc->state) - crtc->state->crtc = crtc; -} -EXPORT_SYMBOL(drm_atomic_helper_crtc_reset); - -/** - * __drm_atomic_helper_crtc_duplicate_state - copy atomic CRTC state - * @crtc: CRTC object - * @state: atomic CRTC state - * - * Copies atomic state from a CRTC's current state and resets inferred values. - * This is useful for drivers that subclass the CRTC state. -
[Intel-gfx] [PATCH 11/14] drm/vmwgfx: Remove confused comment from vmw_du_connector_atomic_set_property
The core _does_ the call to drm_atomic_commit for you. That's pretty much the entire point of having the fancy new atomic_set/get_prop callbacks. Signed-off-by: Daniel Vetter Cc: VMware Graphics Cc: Sinclair Yeh Cc: Thomas Hellstrom --- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 6 -- 1 file changed, 6 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index 0c25bb8faf80..0f7e116a59f0 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -2309,12 +2309,6 @@ vmw_du_connector_atomic_set_property(struct drm_connector *connector, if (property == dev_priv->implicit_placement_property) { vcs->is_implicit = val; - - /* -* We should really be doing a drm_atomic_commit() to -* commit the new state, but since this doesn't cause -* an immedate state change, this is probably ok -*/ du->is_implicit = vcs->is_implicit; } else { return -EINVAL; -- 2.18.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 07/14] drm/atomic-helper: Unexport drm_atomic_helper_best_encoder
It's the default. The exported version was kinda a transition state, before we made this the default. To stop new atomic drivers from using it (instead of just relying on the default) let's unexport it. Signed-off-by: Daniel Vetter Cc: Gustavo Padovan Cc: Maarten Lankhorst Cc: Sean Paul Cc: David Airlie Cc: VMware Graphics Cc: Sinclair Yeh Cc: Thomas Hellstrom Cc: Archit Taneja Cc: Neil Armstrong Cc: Laurent Pinchart Cc: Hans Verkuil Cc: Daniel Vetter Cc: Russell King Cc: Jernej Skrabec Cc: Jani Nikula Cc: Pierre-Hugues Husson Cc: Fabio Estevam --- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 1 - drivers/gpu/drm/drm_atomic_helper.c | 24 +++ drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 1 - drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 1 - drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 1 - include/drm/drm_atomic_helper.h | 2 -- 6 files changed, 7 insertions(+), 23 deletions(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index 5971976284bf..0aed51799526 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -1957,7 +1957,6 @@ static const struct drm_connector_funcs dw_hdmi_connector_funcs = { static const struct drm_connector_helper_funcs dw_hdmi_connector_helper_funcs = { .get_modes = dw_hdmi_connector_get_modes, - .best_encoder = drm_atomic_helper_best_encoder, }; static int dw_hdmi_bridge_attach(struct drm_bridge *bridge) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 8469a7e9afe3..334b121bd4d9 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -92,6 +92,13 @@ drm_atomic_helper_plane_changed(struct drm_atomic_state *state, } } +static struct drm_encoder * +drm_atomic_helper_best_encoder(struct drm_connector *connector) +{ + WARN_ON(connector->encoder_ids[1]); + return drm_encoder_find(connector->dev, NULL, connector->encoder_ids[0]); +} + static int handle_conflicting_encoders(struct drm_atomic_state *state, bool disable_conflicting_encoders) { @@ -3376,23 +3383,6 @@ int drm_atomic_helper_page_flip_target(struct drm_crtc *crtc, } EXPORT_SYMBOL(drm_atomic_helper_page_flip_target); -/** - * drm_atomic_helper_best_encoder - Helper for - * _connector_helper_funcs.best_encoder callback - * @connector: Connector control structure - * - * This is a _connector_helper_funcs.best_encoder callback helper for - * connectors that support exactly 1 encoder, statically determined at driver - * init time. - */ -struct drm_encoder * -drm_atomic_helper_best_encoder(struct drm_connector *connector) -{ - WARN_ON(connector->encoder_ids[1]); - return drm_encoder_find(connector->dev, NULL, connector->encoder_ids[0]); -} -EXPORT_SYMBOL(drm_atomic_helper_best_encoder); - /** * DOC: atomic state reset and initialization * diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c index 723578117191..4b5378495eea 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c @@ -274,7 +274,6 @@ static const struct drm_connector_funcs vmw_legacy_connector_funcs = { static const struct drm_connector_helper_funcs vmw_ldu_connector_helper_funcs = { - .best_encoder = drm_atomic_helper_best_encoder, }; /* diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c index ad0de7f0cd60..4c68ad6f3605 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c @@ -389,7 +389,6 @@ static const struct drm_connector_funcs vmw_sou_connector_funcs = { static const struct drm_connector_helper_funcs vmw_sou_connector_helper_funcs = { - .best_encoder = drm_atomic_helper_best_encoder, }; diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c index 93f6b96ca7bb..f5b2fe8a7793 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c @@ -1037,7 +1037,6 @@ static const struct drm_connector_funcs vmw_stdu_connector_funcs = { static const struct drm_connector_helper_funcs vmw_stdu_connector_helper_funcs = { - .best_encoder = drm_atomic_helper_best_encoder, }; diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h index 63e736eeb516..27aef91ca1c3 100644 --- a/include/drm/drm_atomic_helper.h +++ b/include/drm/drm_atomic_helper.h @@ -144,8 +144,6 @@ int drm_atomic_helper_page_flip_target( uint32_t flags, uint32_t target, struct drm_modeset_acquire_ctx *ctx); -struct drm_encoder * -drm_atomic_helper_best_encoder(struct drm_connector *connector); /* default implementations for state handling */ void drm_atomic_helper_crtc_reset(struct
[Intel-gfx] [PATCH 06/14] drm: extract drm_atomic_uapi.c
This leaves all the commit/check and state handling in drm_atomic.c, while pulling all the uapi glue and the huge ioctl itself into a seprate file. This seems to almost perfectly split the rather big drm_atomic.c file into 2 equal sizes. Also adjust the kerneldoc and type a very terse overview text. v2: Rebase. v3: Fix tiny typo. Signed-off-by: Daniel Vetter Cc: David Airlie Cc: Gustavo Padovan Cc: Maarten Lankhorst Cc: Sean Paul Cc: Jani Nikula Cc: Joonas Lahtinen Cc: Rodrigo Vivi Cc: Rob Clark Cc: Eric Anholt Cc: intel-gfx@lists.freedesktop.org Cc: linux-arm-...@vger.kernel.org Cc: freedr...@lists.freedesktop.org --- Documentation/gpu/drm-kms.rst| 11 +- drivers/gpu/drm/Makefile |3 +- drivers/gpu/drm/drm_atomic.c | 1359 + drivers/gpu/drm/drm_atomic_helper.c |1 + drivers/gpu/drm/drm_atomic_uapi.c| 1393 ++ drivers/gpu/drm/drm_crtc_helper.c|1 + drivers/gpu/drm/drm_crtc_internal.h |5 + drivers/gpu/drm/drm_framebuffer.c|1 + drivers/gpu/drm/drm_gem_framebuffer_helper.c |1 + drivers/gpu/drm/drm_plane_helper.c |1 + drivers/gpu/drm/i915/intel_display.c |1 + drivers/gpu/drm/msm/msm_atomic.c |2 + drivers/gpu/drm/vc4/vc4_crtc.c |1 + drivers/gpu/drm/vc4/vc4_plane.c |1 + include/drm/drm_atomic.h | 16 - include/drm/drm_atomic_uapi.h| 58 + 16 files changed, 1480 insertions(+), 1375 deletions(-) create mode 100644 drivers/gpu/drm/drm_atomic_uapi.c create mode 100644 include/drm/drm_atomic_uapi.h diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst index 3a9dd68b97c9..4b1501b4835b 100644 --- a/Documentation/gpu/drm-kms.rst +++ b/Documentation/gpu/drm-kms.rst @@ -287,6 +287,15 @@ Atomic Mode Setting Function Reference .. kernel-doc:: drivers/gpu/drm/drm_atomic.c :export: +Atomic Mode Setting IOCTL and UAPI Functions + + +.. kernel-doc:: drivers/gpu/drm/drm_atomic_uapi.c + :doc: overview + +.. kernel-doc:: drivers/gpu/drm/drm_atomic_uapi.c + :export: + CRTC Abstraction @@ -563,7 +572,7 @@ Tile Group Property Explicit Fencing Properties --- -.. kernel-doc:: drivers/gpu/drm/drm_atomic.c +.. kernel-doc:: drivers/gpu/drm/drm_atomic_uapi.c :doc: explicit fencing properties Existing KMS Properties diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile index a6771cef85e2..bc6a16a3c36e 100644 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@ -18,7 +18,8 @@ drm-y :=drm_auth.o drm_bufs.o drm_cache.o \ drm_encoder.o drm_mode_object.o drm_property.o \ drm_plane.o drm_color_mgmt.o drm_print.o \ drm_dumb_buffers.o drm_mode_config.o drm_vblank.o \ - drm_syncobj.o drm_lease.o drm_writeback.o drm_client.o + drm_syncobj.o drm_lease.o drm_writeback.o drm_client.o \ + drm_atomic_uapi.o drm-$(CONFIG_DRM_LIB_RANDOM) += lib/drm_random.o drm-$(CONFIG_DRM_VM) += drm_vm.o diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index 29a4e6959358..19634e03b78e 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -28,6 +28,7 @@ #include #include +#include #include #include #include @@ -309,285 +310,6 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state, } EXPORT_SYMBOL(drm_atomic_get_crtc_state); -static void set_out_fence_for_crtc(struct drm_atomic_state *state, - struct drm_crtc *crtc, s32 __user *fence_ptr) -{ - state->crtcs[drm_crtc_index(crtc)].out_fence_ptr = fence_ptr; -} - -static s32 __user *get_out_fence_for_crtc(struct drm_atomic_state *state, - struct drm_crtc *crtc) -{ - s32 __user *fence_ptr; - - fence_ptr = state->crtcs[drm_crtc_index(crtc)].out_fence_ptr; - state->crtcs[drm_crtc_index(crtc)].out_fence_ptr = NULL; - - return fence_ptr; -} - -static int set_out_fence_for_connector(struct drm_atomic_state *state, - struct drm_connector *connector, - s32 __user *fence_ptr) -{ - unsigned int index = drm_connector_index(connector); - - if (!fence_ptr) - return 0; - - if (put_user(-1, fence_ptr)) - return -EFAULT; - - state->connectors[index].out_fence_ptr = fence_ptr; - - return 0; -} - -static s32 __user *get_out_fence_for_connector(struct drm_atomic_state *state, - struct drm_connector *connector) -{ - unsigned int index = drm_connector_index(connector); - s32 __user *fence_ptr; - - fence_ptr =
[Intel-gfx] [PATCH 01/14] drm: Add drm/kernel.h header file
We have a bunch of neat little macros all over the place which should move to kernel.h. But some of them died in bikesheds on lkml, and we need a decent home for them. Start out by moving the for_each_if macro there. Cc: Sean Paul Signed-off-by: Daniel Vetter --- drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_display.h| 2 ++ drivers/gpu/drm/i915/intel_ringbuffer.h | 2 ++ drivers/gpu/drm/nouveau/nouveau_connector.h | 2 ++ include/drm/drmP.h | 3 -- include/drm/drm_atomic.h| 1 + include/drm/drm_atomic_helper.h | 1 + include/drm/drm_connector.h | 1 + include/drm/drm_encoder.h | 1 + include/drm/drm_plane.h | 1 + include/drm/kernel.h| 32 + 11 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 include/drm/kernel.h diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 14e562887307..63cd53067cc3 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -52,6 +52,7 @@ #include #include #include +#include #include "i915_params.h" #include "i915_reg.h" diff --git a/drivers/gpu/drm/i915/intel_display.h b/drivers/gpu/drm/i915/intel_display.h index e20e6a36a748..bb6e8d949ebb 100644 --- a/drivers/gpu/drm/i915/intel_display.h +++ b/drivers/gpu/drm/i915/intel_display.h @@ -25,6 +25,8 @@ #ifndef _INTEL_DISPLAY_H_ #define _INTEL_DISPLAY_H_ +#include + enum i915_gpio { GPIOA, GPIOB, diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h index 3f6920dd7880..c06ec8078313 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h @@ -2,6 +2,8 @@ #ifndef _INTEL_RINGBUFFER_H_ #define _INTEL_RINGBUFFER_H_ +#include + #include #include diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.h b/drivers/gpu/drm/nouveau/nouveau_connector.h index dc7454e7f19a..fff89cb4a792 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.h +++ b/drivers/gpu/drm/nouveau/nouveau_connector.h @@ -32,6 +32,8 @@ #include #include #include +#include + #include "nouveau_crtc.h" #include "nouveau_encoder.h" diff --git a/include/drm/drmP.h b/include/drm/drmP.h index f7a19c2a7a80..05350424a4d3 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -110,7 +110,4 @@ static inline bool drm_can_sleep(void) return true; } -/* helper for handling conditionals in various for_each macros */ -#define for_each_if(condition) if (!(condition)) {} else - #endif diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h index da9d95a19580..07b4cb1c9603 100644 --- a/include/drm/drm_atomic.h +++ b/include/drm/drm_atomic.h @@ -29,6 +29,7 @@ #define DRM_ATOMIC_H_ #include +#include /** * struct drm_crtc_commit - track modeset commits on a CRTC diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h index f4c7ed876c97..63e736eeb516 100644 --- a/include/drm/drm_atomic_helper.h +++ b/include/drm/drm_atomic_helper.h @@ -31,6 +31,7 @@ #include #include #include +#include struct drm_atomic_state; struct drm_private_obj; diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index 97ea41dc678f..95be147ee4db 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -28,6 +28,7 @@ #include #include #include +#include #include diff --git a/include/drm/drm_encoder.h b/include/drm/drm_encoder.h index 4f597c0730b4..9cb01c764fac 100644 --- a/include/drm/drm_encoder.h +++ b/include/drm/drm_encoder.h @@ -28,6 +28,7 @@ #include #include #include +#include struct drm_encoder; diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h index 16f5b66684ca..2af3f0a7d2e7 100644 --- a/include/drm/drm_plane.h +++ b/include/drm/drm_plane.h @@ -27,6 +27,7 @@ #include #include #include +#include struct drm_crtc; struct drm_printer; diff --git a/include/drm/kernel.h b/include/drm/kernel.h new file mode 100644 index ..6ea220c0c132 --- /dev/null +++ b/include/drm/kernel.h @@ -0,0 +1,32 @@ +/* + * Internal Header for the Direct Rendering Manager + * + * Copyright 2018 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE
[Intel-gfx] [PATCH 08/14] drm/amdgpu: Remove default best_encoder hook from DC
For atomic driver this is the default, no need to reimplement it. We still need to keep the copypasta for not-atomic drivers though, since no one polished the legacy crtc helpers as much as the atomic ones. Signed-off-by: Daniel Vetter Cc: Alex Deucher Cc: Harry Wentland Cc: Andrey Grodzovsky Cc: Tony Cheng Cc: "Leo (Sunpeng) Li" Cc: Shirish S --- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 23 --- 1 file changed, 23 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index af6adffba788..333f9904f135 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -2794,28 +2794,6 @@ static const struct drm_connector_funcs amdgpu_dm_connector_funcs = { .atomic_get_property = amdgpu_dm_connector_atomic_get_property }; -static struct drm_encoder *best_encoder(struct drm_connector *connector) -{ - int enc_id = connector->encoder_ids[0]; - struct drm_mode_object *obj; - struct drm_encoder *encoder; - - DRM_DEBUG_DRIVER("Finding the best encoder\n"); - - /* pick the encoder ids */ - if (enc_id) { - obj = drm_mode_object_find(connector->dev, NULL, enc_id, DRM_MODE_OBJECT_ENCODER); - if (!obj) { - DRM_ERROR("Couldn't find a matching encoder for our connector\n"); - return NULL; - } - encoder = obj_to_encoder(obj); - return encoder; - } - DRM_ERROR("No encoder id\n"); - return NULL; -} - static int get_modes(struct drm_connector *connector) { return amdgpu_dm_connector_get_modes(connector); @@ -2934,7 +2912,6 @@ amdgpu_dm_connector_helper_funcs = { */ .get_modes = get_modes, .mode_valid = amdgpu_dm_connector_mode_valid, - .best_encoder = best_encoder }; static void dm_crtc_helper_disable(struct drm_crtc *crtc) -- 2.18.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 09/14] drm: Update todo.rst
- drmP.h is now fully split up. - vkms is happening (and will gain its own todo and docs under a new vkms.rst file real soon) - legacy cruft is completely hidden now, drm_vblank.c is split out from drm_irq.c now. - best_encoder atomic cleanup is done (it's now the default, not even exported anymore) - bunch of smaller things Signed-off-by: Daniel Vetter Cc: Gustavo Padovan Cc: Maarten Lankhorst Cc: Sean Paul Cc: David Airlie --- Documentation/gpu/todo.rst | 68 ++ 1 file changed, 10 insertions(+), 58 deletions(-) diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst index a7c150d6b63f..96bfdbc9ebff 100644 --- a/Documentation/gpu/todo.rst +++ b/Documentation/gpu/todo.rst @@ -127,7 +127,8 @@ interfaces to fix these issues: the acquire context explicitly on stack and then also pass it down into drivers explicitly so that the legacy-on-atomic functions can use them. - Except for some driver code this is done. + Except for some driver code this is done. This task should be finished by + adding WARN_ON(!drm_drv_uses_atomic_modeset) in drm_modeset_lock_all(). * A bunch of the vtable hooks are now in the wrong place: DRM has a split between core vfunc tables (named ``drm_foo_funcs``), which are used to @@ -137,13 +138,6 @@ interfaces to fix these issues: ``_helper_funcs`` since they are not part of the core ABI. There's a ``FIXME`` comment in the kerneldoc for each such case in ``drm_crtc.h``. -* There's a new helper ``drm_atomic_helper_best_encoder()`` which could be - used by all atomic drivers which don't select the encoder for a given - connector at runtime. That's almost all of them, and would allow us to get - rid of a lot of ``best_encoder`` boilerplate in drivers. - - This was almost done, but new drivers added a few more cases again. - Contact: Daniel Vetter Get rid of dev->struct_mutex from GEM drivers @@ -164,9 +158,8 @@ private lock. The tricky part is the BO free functions, since those can't reliably take that lock any more. Instead state needs to be protected with suitable subordinate locks or some cleanup work pushed to a worker thread. For performance-critical drivers it might also be better to go with a more -fine-grained per-buffer object and per-context lockings scheme. Currently the -following drivers still use ``struct_mutex``: ``msm``, ``omapdrm`` and -``udl``. +fine-grained per-buffer object and per-context lockings scheme. Currently only the +``msm`` driver still use ``struct_mutex``. Contact: Daniel Vetter, respective driver maintainers @@ -190,7 +183,8 @@ Convert drivers to use simple modeset suspend/resume Most drivers (except i915 and nouveau) that use drm_atomic_helper_suspend/resume() can probably be converted to use -drm_mode_config_helper_suspend/resume(). +drm_mode_config_helper_suspend/resume(). Also there's still open-coded version +of the atomic suspend/resume code in older atomic modeset drivers. Contact: Maintainer of the driver you plan to convert @@ -246,20 +240,10 @@ Core refactorings Clean up the DRM header mess -Currently the DRM subsystem has only one global header, ``drmP.h``. This is -used both for functions exported to helper libraries and drivers and functions -only used internally in the ``drm.ko`` module. The goal would be to move all -header declarations not needed outside of ``drm.ko`` into -``drivers/gpu/drm/drm_*_internal.h`` header files. ``EXPORT_SYMBOL`` also -needs to be dropped for these functions. - -This would nicely tie in with the below task to create kerneldoc after the API -is cleaned up. Or with the "hide legacy cruft better" task. - -Note that this is well in progress, but ``drmP.h`` is still huge. The updated -plan is to switch to per-file driver API headers, which will also structure -the kerneldoc better. This should also allow more fine-grained ``#include`` -directives. +The DRM subsystem originally had only one huge globale header, ``drmP.h``. This +is not split up, but many source files still include it. The remainig part of +the cleanup work here is to replace any ``#include `` by only the +headers needed (and fixing up any missing pre-declarations in the headers). In the end no .c file should need to include ``drmP.h`` anymore. @@ -278,26 +262,6 @@ See https://dri.freedesktop.org/docs/drm/ for what's there already. Contact: Daniel Vetter -Hide legacy cruft better - - -Way back DRM supported only drivers which shadow-attached to PCI devices with -userspace or fbdev drivers setting up outputs. Modern DRM drivers take charge -of the entire device, you can spot them with the DRIVER_MODESET flag. - -Unfortunately there's still large piles of legacy code around which needs to -be hidden so that driver writers don't accidentally end up using it. And to -prevent security issues in those legacy IOCTLs from being exploited on modern -drivers. This has multiple
[Intel-gfx] [PATCH 05/14] drm/atomic: trim driver interface/docs
Remove the kerneldoc and EXPORT_SYMBOL which aren't used and really shouldn't ever be used by drivers directly. Unfortunately this means we need to move the set_writeback_fb function around to avoid a forward decl. Signed-off-by: Daniel Vetter Cc: David Airlie Cc: Gustavo Padovan Cc: Maarten Lankhorst Cc: Sean Paul --- Documentation/gpu/drm-kms.rst | 3 - drivers/gpu/drm/drm_atomic.c | 219 ++ include/drm/drm_atomic.h | 6 - 3 files changed, 34 insertions(+), 194 deletions(-) diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst index f8f5bf11a6ca..3a9dd68b97c9 100644 --- a/Documentation/gpu/drm-kms.rst +++ b/Documentation/gpu/drm-kms.rst @@ -287,9 +287,6 @@ Atomic Mode Setting Function Reference .. kernel-doc:: drivers/gpu/drm/drm_atomic.c :export: -.. kernel-doc:: drivers/gpu/drm/drm_atomic.c - :internal: - CRTC Abstraction diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index 151dd7162b3a..29a4e6959358 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -464,30 +464,6 @@ int drm_atomic_set_mode_prop_for_crtc(struct drm_crtc_state *state, } EXPORT_SYMBOL(drm_atomic_set_mode_prop_for_crtc); -/** - * drm_atomic_replace_property_blob_from_id - lookup the new blob and replace the old one with it - * @dev: DRM device - * @blob: a pointer to the member blob to be replaced - * @blob_id: ID of the new blob - * @expected_size: total expected size of the blob data (in bytes) - * @expected_elem_size: expected element size of the blob data (in bytes) - * @replaced: did the blob get replaced? - * - * Replace @blob with another blob with the ID @blob_id. If @blob_id is zero - * @blob becomes NULL. - * - * If @expected_size is positive the new blob length is expected to be equal - * to @expected_size bytes. If @expected_elem_size is positive the new blob - * length is expected to be a multiple of @expected_elem_size bytes. Otherwise - * an error is returned. - * - * @replaced will indicate to the caller whether the blob was replaced or not. - * If the old and new blobs were in fact the same blob @replaced will be false - * otherwise it will be true. - * - * RETURNS: - * Zero on success, error code on failure. - */ static int drm_atomic_replace_property_blob_from_id(struct drm_device *dev, struct drm_property_blob **blob, @@ -521,22 +497,7 @@ drm_atomic_replace_property_blob_from_id(struct drm_device *dev, return 0; } -/** - * drm_atomic_crtc_set_property - set property on CRTC - * @crtc: the drm CRTC to set a property on - * @state: the state object to update with the new property value - * @property: the property to set - * @val: the new property value - * - * This function handles generic/core properties and calls out to driver's - * _crtc_funcs.atomic_set_property for driver properties. To ensure - * consistent behavior you must call this function rather than the driver hook - * directly. - * - * RETURNS: - * Zero on success, error code on failure - */ -int drm_atomic_crtc_set_property(struct drm_crtc *crtc, +static int drm_atomic_crtc_set_property(struct drm_crtc *crtc, struct drm_crtc_state *state, struct drm_property *property, uint64_t val) { @@ -598,23 +559,7 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc, return 0; } -EXPORT_SYMBOL(drm_atomic_crtc_set_property); -/** - * drm_atomic_crtc_get_property - get property value from CRTC state - * @crtc: the drm CRTC to set a property on - * @state: the state object to get the property value from - * @property: the property to set - * @val: return location for the property value - * - * This function handles generic/core properties and calls out to driver's - * _crtc_funcs.atomic_get_property for driver properties. To ensure - * consistent behavior you must call this function rather than the driver hook - * directly. - * - * RETURNS: - * Zero on success, error code on failure - */ static int drm_atomic_crtc_get_property(struct drm_crtc *crtc, const struct drm_crtc_state *state, @@ -643,16 +588,6 @@ drm_atomic_crtc_get_property(struct drm_crtc *crtc, return 0; } -/** - * drm_atomic_crtc_check - check crtc state - * @crtc: crtc to check - * @state: crtc state to check - * - * Provides core sanity checks for crtc state. - * - * RETURNS: - * Zero on success, error code on failure - */ static int drm_atomic_crtc_check(struct drm_crtc *crtc, struct drm_crtc_state *state) { @@ -728,16 +663,6 @@ static void drm_atomic_crtc_print_state(struct drm_printer *p, crtc->funcs->atomic_print_state(p, state); } -/** - * drm_atomic_connector_check - check connector state - * @connector: connector to check - * @state: connector state to check - * - * Provides core sanity checks for connector state. - * - * RETURNS: - * Zero on success, error code on
[Intel-gfx] [PATCH 04/14] drm: drop drmP.h include from drm_crtc.c
This is starting to become easy! v2: Compiles now, with drm/kernel.h extracted. Reviewed-by: Sean Paul Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_crtc.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index bae43938c8f6..2f6c877299e4 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -34,7 +34,7 @@ #include #include #include -#include +#include #include #include #include @@ -42,6 +42,9 @@ #include #include #include +#include +#include +#include #include "drm_crtc_internal.h" #include "drm_internal.h" -- 2.18.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 03/14] drm: drop drmP.h include from drm_plane.c
Just a bit of missing includes and pre declarations. v2: Compiles now, with drm/kernel.h extracted. Reviewed-by: Sean Paul Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_crtc_internal.h | 8 drivers/gpu/drm/drm_plane.c | 11 ++- include/drm/drm_color_mgmt.h| 1 + include/drm/drm_plane.h | 2 ++ include/drm/drm_property.h | 2 ++ 5 files changed, 23 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/drm_crtc_internal.h b/drivers/gpu/drm/drm_crtc_internal.h index b61322763394..ff5e0d521c21 100644 --- a/drivers/gpu/drm/drm_crtc_internal.h +++ b/drivers/gpu/drm/drm_crtc_internal.h @@ -31,6 +31,14 @@ * and are not exported to drivers. */ +enum drm_mode_status; +enum drm_connector_force; + +struct drm_display_mode; +struct work_struct; +struct drm_connector; +struct drm_bridge; +struct edid; /* drm_crtc.c */ int drm_mode_crtc_set_obj_prop(struct drm_mode_object *obj, diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c index 6153cbda239f..36bf3fe9ad21 100644 --- a/drivers/gpu/drm/drm_plane.c +++ b/drivers/gpu/drm/drm_plane.c @@ -20,8 +20,17 @@ * OF THIS SOFTWARE. */ -#include +#include +#include + #include +#include +#include +#include +#include +#include +#include +#include #include "drm_crtc_internal.h" diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h index 44f04233e3db..90ef9996d9a4 100644 --- a/include/drm/drm_color_mgmt.h +++ b/include/drm/drm_color_mgmt.h @@ -24,6 +24,7 @@ #define __DRM_COLOR_MGMT_H__ #include +#include struct drm_crtc; struct drm_plane; diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h index 2af3f0a7d2e7..fe6c4aee2d08 100644 --- a/include/drm/drm_plane.h +++ b/include/drm/drm_plane.h @@ -27,6 +27,8 @@ #include #include #include +#include +#include #include struct drm_crtc; diff --git a/include/drm/drm_property.h b/include/drm/drm_property.h index c030f6ccab99..5b9efff35d6d 100644 --- a/include/drm/drm_property.h +++ b/include/drm/drm_property.h @@ -27,6 +27,8 @@ #include #include +#include + /** * struct drm_property_enum - symbolic values for enumerations * @value: numeric property value for this enum entry -- 2.18.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 02/14] drm: Drop drmP.h from drm_connector.c
Only needed minimal changes in drm_internal.h (for the drm_ioctl_t type and a few forward declarations), plus a few missing includes in drm_connector.c. Yay, the last stage of the drm header cleanup can finally commence! v2: Compiles now, with drm/kernel.h extracted. Reviewed-by: Sean Paul Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_connector.c | 6 +- drivers/gpu/drm/drm_internal.h | 5 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c index 6011d769d50b..526619f963e5 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -20,11 +20,15 @@ * OF THIS SOFTWARE. */ -#include #include #include #include #include +#include +#include +#include + +#include #include "drm_crtc_internal.h" #include "drm_internal.h" diff --git a/drivers/gpu/drm/drm_internal.h b/drivers/gpu/drm/drm_internal.h index 40179c5fc6b8..0c4eb4a9ab31 100644 --- a/drivers/gpu/drm/drm_internal.h +++ b/drivers/gpu/drm/drm_internal.h @@ -21,9 +21,14 @@ * OTHER DEALINGS IN THE SOFTWARE. */ +#include + #define DRM_IF_MAJOR 1 #define DRM_IF_MINOR 4 +struct drm_prime_file_private; +struct dma_buf; + /* drm_file.c */ extern struct mutex drm_global_mutex; struct drm_file *drm_file_alloc(struct drm_minor *minor); -- 2.18.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] video/fbdev: Warn when we try to free a registered framebuffer
Just a tool for CI to emit the stacktrace of who is lost track of their framebuffers and tried to free it before unregistering it. References: https://bugs.freedesktop.org/show_bug.cgi?id=107712 Cc: Daniel Vetter --- Would be useful to keep in core-for-CI as a debug aide. --- drivers/video/fbdev/core/fbsysfs.c | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/video/fbdev/core/fbsysfs.c b/drivers/video/fbdev/core/fbsysfs.c index e31a182b42bf..de3afba984c7 100644 --- a/drivers/video/fbdev/core/fbsysfs.c +++ b/drivers/video/fbdev/core/fbsysfs.c @@ -83,6 +83,11 @@ void framebuffer_release(struct fb_info *info) { if (!info) return; + + if (WARN(atomic_read(>count), +"framebuffer is still registered, leaking fb_info!\n")) + return; + kfree(info->apertures); kfree(info); } -- 2.19.0.rc1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm/i915: Fix up FORCE_GPU_RELOC (debug) to flush CPU write domains
On Mon, 3 Sep 2018 at 16:04, Chris Wilson wrote: > > We currently assert that if the target is in a CPU write domain, we use > a CPU path rather than the GPU path. However, we have a debug override > to force the GPU path and that unfortunately hits the assert. Include > the async clflush under the debug option. > > Signed-off-by: Chris Wilson Reviewed-by: Matthew Auld ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 3/4] fbdev: Add FBINFO_HIDE_SMEM_START flag
On Wed, Aug 22, 2018 at 10:54:04AM +0200, Daniel Vetter wrote: > DRM drivers really, really, really don't want random userspace to > share buffer behind it's back, bypassing the dma-buf buffer sharing > machanism. For that reason we've ruthlessly rejected any IOCTL > exposing the physical address of any graphics buffer. > > Unfortunately fbdev comes with that built-in. We could just set > smem_start to 0, but that means we'd have to hand-roll our own fb_mmap > implementation. For good reasons many drivers do that, but > smem_start/length is still super convenient. > > Hence instead just stop the leak in the ioctl, to keep fb mmap working > as-is. A second patch will set this flag for all drm drivers. > > Cc: Bartlomiej Zolnierkiewicz > Cc: Kees Cook > Cc: Daniel Vetter > Cc: linux-fb...@vger.kernel.org > Signed-off-by: Daniel Vetter Any comments from the fbdev side on this? -Daniel > --- > drivers/video/fbdev/core/fbmem.c | 4 > include/linux/fb.h | 7 +++ > 2 files changed, 11 insertions(+) > > diff --git a/drivers/video/fbdev/core/fbmem.c > b/drivers/video/fbdev/core/fbmem.c > index 609438d2465b..549d0f86fcf3 100644 > --- a/drivers/video/fbdev/core/fbmem.c > +++ b/drivers/video/fbdev/core/fbmem.c > @@ -1116,6 +1116,8 @@ static long do_fb_ioctl(struct fb_info *info, unsigned > int cmd, > if (!lock_fb_info(info)) > return -ENODEV; > fix = info->fix; > + if (info->flags & FBINFO_HIDE_SMEM_START) > + fix.smem_start = 0; > unlock_fb_info(info); > > ret = copy_to_user(argp, , sizeof(fix)) ? -EFAULT : 0; > @@ -1326,6 +1328,8 @@ static int fb_get_fscreeninfo(struct fb_info *info, > unsigned int cmd, > if (!lock_fb_info(info)) > return -ENODEV; > fix = info->fix; > + if (info->flags & FBINFO_HIDE_SMEM_START) > + fix.smem_start = 0; > unlock_fb_info(info); > return do_fscreeninfo_to_user(, compat_ptr(arg)); > } > diff --git a/include/linux/fb.h b/include/linux/fb.h > index fa8c6f9c9c3a..f42b09ca71f8 100644 > --- a/include/linux/fb.h > +++ b/include/linux/fb.h > @@ -456,6 +456,13 @@ struct fb_tile_ops { > * and host endianness. Drivers should not use this flag. > */ > #define FBINFO_BE_MATH 0x10 > +/* > + * Hide smem_start in the FBIOGET_FSCREENINFO IOCTL. This is used by modern > DRM > + * drivers to stop userspace from trying to share buffers behind the kernel's > + * back. Instead dma-buf based buffer sharing should be used. > + */ > +#define FBINFO_HIDE_SMEM_START 0x20 > + > > struct fb_info { > atomic_t count; > -- > 2.18.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 1/2] drm/i915: Combine cleanup_status_page()
On Mon, 3 Sep 2018 at 16:25, Chris Wilson wrote: > > Pull the physical status page cleanup into a common > cleanup_status_page() for caller simplicity. > > Signed-off-by: Chris Wilson Reviewed-by: Matthew Auld ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm: Remove "protection" around drm_vma_offset_manager_destroy()
On Mon, Sep 03, 2018 at 10:31:55AM +0100, Chris Wilson wrote: > Using a spinlock to serialize the destroy function, within the destroy > function itself does not prevent the buggy driver from shooting > themselves in the foot - either way they still have a use-after-free > issue. > > Reported-by: Jia-Ju Bai > Signed-off-by: Chris Wilson > Cc: Davidlohr Bueso > Cc: Liviu Dudau > Cc: Daniel Vetter Ah, now I understand a bit more ... Reviewed-by: Daniel Vetter > --- > drivers/gpu/drm/drm_vma_manager.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/drivers/gpu/drm/drm_vma_manager.c > b/drivers/gpu/drm/drm_vma_manager.c > index a6b2fe36b025..c5d0d2358301 100644 > --- a/drivers/gpu/drm/drm_vma_manager.c > +++ b/drivers/gpu/drm/drm_vma_manager.c > @@ -103,10 +103,7 @@ EXPORT_SYMBOL(drm_vma_offset_manager_init); > */ > void drm_vma_offset_manager_destroy(struct drm_vma_offset_manager *mgr) > { > - /* take the lock to protect against buggy drivers */ > - write_lock(>vm_lock); > drm_mm_takedown(>vm_addr_space_mm); > - write_unlock(>vm_lock); > } > EXPORT_SYMBOL(drm_vma_offset_manager_destroy); > > -- > 2.19.0.rc1 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Combine cleanup_status_page()
== Series Details == Series: series starting with [1/2] drm/i915: Combine cleanup_status_page() URL : https://patchwork.freedesktop.org/series/49085/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4757 -> Patchwork_10074 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/49085/revisions/1/mbox/ == Known issues == Here are the changes found in Patchwork_10074 that come from known issues: === IGT changes === Issues hit igt@gem_exec_suspend@basic-s3: fi-byt-clapper: PASS -> INCOMPLETE (fdo#102657) igt@prime_vgem@basic-fence-flip: fi-ilk-650: PASS -> FAIL (fdo#104008) Possible fixes igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c: fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS Warnings igt@pm_rpm@module-reload: fi-bsw-n3050: DMESG-WARN (fdo#107704) -> DMESG-FAIL (fdo#107704) fdo#102657 https://bugs.freedesktop.org/show_bug.cgi?id=102657 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008 fdo#107704 https://bugs.freedesktop.org/show_bug.cgi?id=107704 == Participating hosts (53 -> 48) == Missing(5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u == Build changes == * Linux: CI_DRM_4757 -> Patchwork_10074 CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10074: 23b2d4ef0d61b349b77010f58f76d6d2a987b8fd @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 23b2d4ef0d61 drm/i915: Use a cached mapping for the physical HWS 06a72134dc5f drm/i915: Combine cleanup_status_page() == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10074/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/2] drm/i915: Combine cleanup_status_page()
== Series Details == Series: series starting with [1/2] drm/i915: Combine cleanup_status_page() URL : https://patchwork.freedesktop.org/series/49085/ State : warning == Summary == $ dim sparse origin/drm-tip Commit: drm/i915: Combine cleanup_status_page() Okay! Commit: drm/i915: Use a cached mapping for the physical HWS -drivers/gpu/drm/i915/selftests/../i915_drv.h:3687:16: warning: expression using sizeof(void) +drivers/gpu/drm/i915/selftests/../i915_drv.h:3686: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 drm/i915: Fix up FORCE_GPU_RELOC (debug) to flush CPU write domains
== Series Details == Series: drm/i915: Fix up FORCE_GPU_RELOC (debug) to flush CPU write domains URL : https://patchwork.freedesktop.org/series/49084/ State : failure == Summary == = CI Bug Log - changes from CI_DRM_4757 -> Patchwork_10073 = == Summary - FAILURE == Serious unknown changes coming with Patchwork_10073 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10073, 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/49084/revisions/1/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10073: === IGT changes === Possible regressions igt@drv_selftest@live_hangcheck: fi-icl-u: PASS -> INCOMPLETE == Known issues == Here are the changes found in Patchwork_10073 that come from known issues: === IGT changes === Issues hit igt@amdgpu/amd_basic@userptr: fi-kbl-8809g: PASS -> INCOMPLETE (fdo#107402) {igt@pm_rpm@module-reload}: fi-cnl-psr: PASS -> WARN (fdo#107602, fdo#107708) Possible fixes igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c: fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS Warnings {igt@pm_rpm@module-reload}: fi-bsw-n3050: DMESG-WARN (fdo#107704) -> DMESG-FAIL (fdo#107704) {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#107402 https://bugs.freedesktop.org/show_bug.cgi?id=107402 fdo#107602 https://bugs.freedesktop.org/show_bug.cgi?id=107602 fdo#107704 https://bugs.freedesktop.org/show_bug.cgi?id=107704 fdo#107708 https://bugs.freedesktop.org/show_bug.cgi?id=107708 == Participating hosts (53 -> 48) == Missing(5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u == Build changes == * Linux: CI_DRM_4757 -> Patchwork_10073 CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10073: ff5e223ebdc09a4ceb959fcc4a47464d06616571 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == ff5e223ebdc0 drm/i915: Fix up FORCE_GPU_RELOC (debug) to flush CPU write domains == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10073/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 2/2] drm/i915: Use a cached mapping for the physical HWS
Older gen use a physical address for the hardware status page, for which we use cache-coherent writes. As the writes are into the cpu cache, we use a normal WB mapped page to read the HWS, used for our seqno tracking. Anecdotally, I observed lost breadcrumbs writes into the HWS on i965gm, which so far have not reoccurred with this patch. How reliable that evidence is remains to be seen. v2: Explicitly pass the expected physical address to the hw v3: Also remember the wild writes we once had for HWS above 4G. Signed-off-by: Chris Wilson Cc: Daniel Vetter Cc: Joonas Lahtinen Reviewed-by: Daniel Vetter --- drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/intel_engine_cs.c | 25 + drivers/gpu/drm/i915/intel_ringbuffer.c | 7 +-- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 9771f39d99b3..5a4da5b723fd 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -1666,7 +1666,6 @@ struct drm_i915_private { struct intel_engine_cs *engine_class[MAX_ENGINE_CLASS + 1] [MAX_ENGINE_INSTANCE + 1]; - struct drm_dma_handle *status_page_dmah; struct resource mch_res; /* protects the irq masks */ diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c index 292eae19fce2..10cd051ba29e 100644 --- a/drivers/gpu/drm/i915/intel_engine_cs.c +++ b/drivers/gpu/drm/i915/intel_engine_cs.c @@ -532,11 +532,11 @@ void intel_engine_cleanup_scratch(struct intel_engine_cs *engine) static void cleanup_status_page(struct intel_engine_cs *engine) { - struct drm_dma_handle *dmah; + if (HWS_NEEDS_PHYSICAL(engine->i915)) { + void *addr = fetch_and_zero(>status_page.page_addr); - dmah = fetch_and_zero(>i915->status_page_dmah); - if (dmah) - drm_pci_free(>i915->drm, dmah); + __free_page(virt_to_page(addr)); + } i915_vma_unpin_and_release(>status_page.vma, I915_VMA_RELEASE_MAP); @@ -605,17 +605,18 @@ static int init_status_page(struct intel_engine_cs *engine) static int init_phys_status_page(struct intel_engine_cs *engine) { - struct drm_i915_private *dev_priv = engine->i915; - - GEM_BUG_ON(engine->id != RCS); + struct page *page; - dev_priv->status_page_dmah = - drm_pci_alloc(_priv->drm, PAGE_SIZE, PAGE_SIZE); - if (!dev_priv->status_page_dmah) + /* +* Though the HWS register does support 36bit addresses, historically +* we have had hangs and corruption reported due to wild writes if +* the HWS is placed above 4G. +*/ + page = alloc_page(GFP_KERNEL | __GFP_DMA32 | __GFP_ZERO); + if (!page) return -ENOMEM; - engine->status_page.page_addr = dev_priv->status_page_dmah->vaddr; - memset(engine->status_page.page_addr, 0, PAGE_SIZE); + engine->status_page.page_addr = page_address(page); return 0; } diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 44432677160c..86604dd1c5a5 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -344,11 +344,14 @@ gen7_render_ring_flush(struct i915_request *rq, u32 mode) static void ring_setup_phys_status_page(struct intel_engine_cs *engine) { struct drm_i915_private *dev_priv = engine->i915; + struct page *page = virt_to_page(engine->status_page.page_addr); + phys_addr_t phys = PFN_PHYS(page_to_pfn(page)); u32 addr; - addr = dev_priv->status_page_dmah->busaddr; + addr = lower_32_bits(phys); if (INTEL_GEN(dev_priv) >= 4) - addr |= (dev_priv->status_page_dmah->busaddr >> 28) & 0xf0; + addr |= (phys >> 28) & 0xf0; + I915_WRITE(HWS_PGA, addr); } -- 2.19.0.rc1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 1/2] drm/i915: Combine cleanup_status_page()
Pull the physical status page cleanup into a common cleanup_status_page() for caller simplicity. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/intel_engine_cs.c | 20 ++-- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c index 1a34e8ff82d5..292eae19fce2 100644 --- a/drivers/gpu/drm/i915/intel_engine_cs.c +++ b/drivers/gpu/drm/i915/intel_engine_cs.c @@ -530,19 +530,14 @@ void intel_engine_cleanup_scratch(struct intel_engine_cs *engine) i915_vma_unpin_and_release(>scratch, 0); } -static void cleanup_phys_status_page(struct intel_engine_cs *engine) +static void cleanup_status_page(struct intel_engine_cs *engine) { - struct drm_i915_private *dev_priv = engine->i915; + struct drm_dma_handle *dmah; - if (!dev_priv->status_page_dmah) - return; + dmah = fetch_and_zero(>i915->status_page_dmah); + if (dmah) + drm_pci_free(>i915->drm, dmah); - drm_pci_free(_priv->drm, dev_priv->status_page_dmah); - engine->status_page.page_addr = NULL; -} - -static void cleanup_status_page(struct intel_engine_cs *engine) -{ i915_vma_unpin_and_release(>status_page.vma, I915_VMA_RELEASE_MAP); } @@ -710,10 +705,7 @@ void intel_engine_cleanup_common(struct intel_engine_cs *engine) intel_engine_cleanup_scratch(engine); - if (HWS_NEEDS_PHYSICAL(engine->i915)) - cleanup_phys_status_page(engine); - else - cleanup_status_page(engine); + cleanup_status_page(engine); intel_engine_fini_breadcrumbs(engine); intel_engine_cleanup_cmd_parser(engine); -- 2.19.0.rc1 ___ 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 ICL HDMI clock readout (rev2)
== Series Details == Series: drm/i915: Fix ICL HDMI clock readout (rev2) URL : https://patchwork.freedesktop.org/series/48805/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4757 -> Patchwork_10072 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/48805/revisions/2/mbox/ == Known issues == Here are the changes found in Patchwork_10072 that come from known issues: === IGT changes === Issues hit igt@amdgpu/amd_basic@userptr: fi-kbl-8809g: PASS -> INCOMPLETE (fdo#107402) igt@drv_module_reload@basic-reload: fi-blb-e6850: PASS -> INCOMPLETE (fdo#107718) igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b: {fi-byt-clapper}: PASS -> FAIL (fdo#107362) igt@prime_vgem@basic-fence-flip: fi-ilk-650: PASS -> FAIL (fdo#104008) Possible fixes igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence: {fi-byt-clapper}: FAIL (fdo#103191, fdo#107362) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c: fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS igt@kms_psr@primary_page_flip: fi-cnl-psr: FAIL (fdo#107336) -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008 fdo#107336 https://bugs.freedesktop.org/show_bug.cgi?id=107336 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107402 https://bugs.freedesktop.org/show_bug.cgi?id=107402 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 == Participating hosts (53 -> 48) == Missing(5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u == Build changes == * Linux: CI_DRM_4757 -> Patchwork_10072 CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10072: 7ea7034989566579e4784e861a66d533949ca598 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 7ea703498956 drm/i915: Fix ICL+ HDMI clock readout == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10072/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] drm/i915: Fix up FORCE_GPU_RELOC (debug) to flush CPU write domains
We currently assert that if the target is in a CPU write domain, we use a CPU path rather than the GPU path. However, we have a debug override to force the GPU path and that unfortunately hits the assert. Include the async clflush under the debug option. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index 43706c1db31a..7d0b3a2c30e2 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -1127,6 +1127,13 @@ static int __reloc_gpu_alloc(struct i915_execbuffer *eb, u32 *cmd; int err; + if (DBG_FORCE_RELOC == FORCE_GPU_RELOC) { + obj = vma->obj; + if (obj->cache_dirty & ~obj->cache_coherent) + i915_gem_clflush_object(obj, 0); + obj->write_domain = 0; + } + GEM_BUG_ON(vma->obj->write_domain & I915_GEM_DOMAIN_CPU); obj = i915_gem_batch_pool_get(>engine->batch_pool, PAGE_SIZE); -- 2.19.0.rc1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH v2] drm/i915: Fix ICL+ HDMI clock readout
From: Ville Syrjälä Copy the 38.4 vs. 19.2 MHz ref clock exception from the dpll mgr into the clock readout function as well. v2: Refactor the code into a common function s/is_icl/gen11+/ (Rodrigo) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107722 Signed-off-by: Ville Syrjälä Reviewed-by: Rodrigo Vivi #v1 --- drivers/gpu/drm/i915/intel_ddi.c | 2 +- drivers/gpu/drm/i915/intel_dpll_mgr.c | 23 +++ drivers/gpu/drm/i915/intel_dpll_mgr.h | 1 + 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index f3b115ce4029..3e64488a2b0a 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c @@ -1414,7 +1414,7 @@ static int cnl_calc_wrpll_link(struct drm_i915_private *dev_priv, break; } - ref_clock = dev_priv->cdclk.hw.ref; + ref_clock = cnl_hdmi_pll_ref_clock(dev_priv); dco_freq = (cfgcr0 & DPLL_CFGCR0_DCO_INTEGER_MASK) * ref_clock; diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.c b/drivers/gpu/drm/i915/intel_dpll_mgr.c index 04d41bc1a4bb..e6cac9225536 100644 --- a/drivers/gpu/drm/i915/intel_dpll_mgr.c +++ b/drivers/gpu/drm/i915/intel_dpll_mgr.c @@ -2212,6 +2212,20 @@ static void cnl_wrpll_params_populate(struct skl_wrpll_params *params, params->dco_fraction = dco & 0x7fff; } +int cnl_hdmi_pll_ref_clock(struct drm_i915_private *dev_priv) +{ + int ref_clock = dev_priv->cdclk.hw.ref; + + /* +* For ICL+, the spec states: if reference frequency is 38.4, +* use 19.2 because the DPLL automatically divides that by 2. +*/ + if (INTEL_GEN(dev_priv) >= 11 && ref_clock == 38400) + ref_clock = 19200; + + return ref_clock; +} + static bool cnl_ddi_calculate_wrpll(int clock, struct drm_i915_private *dev_priv, @@ -2251,14 +2265,7 @@ cnl_ddi_calculate_wrpll(int clock, cnl_wrpll_get_multipliers(best_div, , , ); - ref_clock = dev_priv->cdclk.hw.ref; - - /* -* For ICL, the spec states: if reference frequency is 38.4, use 19.2 -* because the DPLL automatically divides that by 2. -*/ - if (IS_ICELAKE(dev_priv) && ref_clock == 38400) - ref_clock = 19200; + ref_clock = cnl_hdmi_pll_ref_clock(dev_priv); cnl_wrpll_params_populate(wrpll_params, best_dco, ref_clock, pdiv, qdiv, kdiv); diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.h b/drivers/gpu/drm/i915/intel_dpll_mgr.h index 7e522cf4f13f..bf0de8a4dc63 100644 --- a/drivers/gpu/drm/i915/intel_dpll_mgr.h +++ b/drivers/gpu/drm/i915/intel_dpll_mgr.h @@ -344,5 +344,6 @@ void intel_dpll_dump_hw_state(struct drm_i915_private *dev_priv, struct intel_dpll_hw_state *hw_state); int icl_calc_dp_combo_pll_link(struct drm_i915_private *dev_priv, uint32_t pll_id); +int cnl_hdmi_pll_ref_clock(struct drm_i915_private *dev_priv); #endif /* _INTEL_DPLL_MGR_H_ */ -- 2.16.4 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for kernel/panic: Show the stacktrace after additional notifier messages
== Series Details == Series: kernel/panic: Show the stacktrace after additional notifier messages URL : https://patchwork.freedesktop.org/series/49080/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4757 -> Patchwork_10071 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/49080/revisions/1/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10071: === IGT changes === Warnings {igt@pm_rpm@module-reload}: fi-hsw-peppy: DMESG-WARN (fdo#107603) -> FAIL == Known issues == Here are the changes found in Patchwork_10071 that come from known issues: === IGT changes === Issues hit igt@kms_chamelium@dp-edid-read: fi-kbl-7500u: PASS -> FAIL (fdo#103841) igt@kms_frontbuffer_tracking@basic: {fi-byt-clapper}: PASS -> FAIL (fdo#103167) igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a: {fi-byt-clapper}: PASS -> FAIL (fdo#107362) {igt@pm_rpm@module-reload}: fi-cnl-psr: PASS -> WARN (fdo#107602, fdo#107708) Possible fixes igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence: {fi-byt-clapper}: FAIL (fdo#103191, fdo#107362) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c: fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107602 https://bugs.freedesktop.org/show_bug.cgi?id=107602 fdo#107603 https://bugs.freedesktop.org/show_bug.cgi?id=107603 fdo#107708 https://bugs.freedesktop.org/show_bug.cgi?id=107708 == Participating hosts (53 -> 47) == Missing(6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-skl-6700hq == Build changes == * Linux: CI_DRM_4757 -> Patchwork_10071 CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10071: 2bd593b08f91000ef8b8c3070292c2d25634a25d @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 2bd593b08f91 kernel/panic: Show the stacktrace after additional notifier messages == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10071/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH i-g-t v3] lib/pm: Wait a little for sound module load to complete
Sometimes we may probe the sound module as it is still being registered and its debugfs not yet fully populated. If we do not find a file we expect to exist, sleep a little and check again. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107801 Signed-off-by: Chris Wilson Cc: Imre Deak --- lib/igt_pm.c | 22 +++--- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/igt_pm.c b/lib/igt_pm.c index 339a51e6f..001025939 100644 --- a/lib/igt_pm.c +++ b/lib/igt_pm.c @@ -154,20 +154,28 @@ static int __igt_pm_enable_audio_runtime_pm(void) while ((de = readdir(dir))) { const char *match = "hwC"; char buf[32] = { }; /* for Valgrind */ - char *tmp; + int loops = 500; + int base; int ret; if (de->d_type != DT_LNK || strncmp(de->d_name, match, strlen(match))) continue; - igt_assert(asprintf(, - "/sys/class/sound/%s/vendor_name", - de->d_name)); + base = openat(dirfd(dir), de->d_name, O_RDONLY); + igt_assert_fd(base); + + do { + fd = openat(base, "vendor_name", O_RDONLY); + if (fd < 0) /* module is still loading? */ + usleep(1000); + else + break; + } while (--loops); + close(base); + if (fd < 0) + continue; - fd = open(tmp, O_RDONLY); - free(tmp); - igt_assert_fd(fd); ret = read(fd, buf, sizeof(buf)); close(fd); igt_assert(ret > 0); -- 2.19.0.rc1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] kernel/panic: Show the stacktrace after additional notifier messages
Most systems keep the last messages from the panic, and we value the stacktrace most, so dump it last in order to preserve it for post-mortems. Signed-off-by: Chris Wilson --- kernel/panic.c | 15 --- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/kernel/panic.c b/kernel/panic.c index 8b2e002d52eb..c0334516cb15 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -176,13 +176,6 @@ void panic(const char *fmt, ...) vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); pr_emerg("Kernel panic - not syncing: %s\n", buf); -#ifdef CONFIG_DEBUG_BUGVERBOSE - /* -* Avoid nested stack-dumping if a panic occurs during oops processing -*/ - if (!test_taint(TAINT_DIE) && oops_in_progress <= 1) - dump_stack(); -#endif /* * If we have crashed and we have a crash kernel loaded let it handle @@ -217,6 +210,14 @@ void panic(const char *fmt, ...) */ atomic_notifier_call_chain(_notifier_list, 0, buf); +#ifdef CONFIG_DEBUG_BUGVERBOSE + /* +* Avoid nested stack-dumping if a panic occurs during oops processing +*/ + if (!test_taint(TAINT_DIE) && oops_in_progress <= 1) + dump_stack(); +#endif + /* Call flush even twice. It tries harder with a single online CPU */ printk_safe_flush_on_panic(); kmsg_dump(KMSG_DUMP_PANIC); -- 2.19.0.rc1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH i-g-t v2] lib/pm: Wait a little for sound module load to complete
Sometimes we may probe the sound module as it is still being registered and its debugfs not yet fully populated. If we do not find a file we expect to exist, sleep a little and check again. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107801 Signed-off-by: Chris Wilson Cc: Imre Deak --- lib/igt_pm.c | 22 +++--- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/igt_pm.c b/lib/igt_pm.c index 339a51e6f..c18bb87c6 100644 --- a/lib/igt_pm.c +++ b/lib/igt_pm.c @@ -154,20 +154,28 @@ static int __igt_pm_enable_audio_runtime_pm(void) while ((de = readdir(dir))) { const char *match = "hwC"; char buf[32] = { }; /* for Valgrind */ - char *tmp; + int loops = 500; + int base; int ret; if (de->d_type != DT_LNK || strncmp(de->d_name, match, strlen(match))) continue; - igt_assert(asprintf(, - "/sys/class/sound/%s/vendor_name", - de->d_name)); + base = openat(dirfd(dir), de->d_name, O_RDONLY); + igt_assert_fd(base); + + do { + fd = open(base, "vendor_name", O_RDONLY); + if (fd < 0) /* module is still loading? */ + usleep(1000); + else + break; + } while (--loops); + close(base); + if (fd < 0) + continue; - fd = open(tmp, O_RDONLY); - free(tmp); - igt_assert_fd(fd); ret = read(fd, buf, sizeof(buf)); close(fd); igt_assert(ret > 0); -- 2.19.0.rc1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH i-g-t] lib/pm: Wait a little for sound module load to complete
Quoting Chris Wilson (2018-09-03 13:51:10) > Sometimes we may probe the sound module as it is still being registered > and its debugfs not yet fully populated. If we do not find a file we > expect to exist, sleep a little and check again. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107801 > Signed-off-by: Chris Wilson > Cc: Imre Deak > --- > lib/igt_pm.c | 22 +++--- > 1 file changed, 15 insertions(+), 7 deletions(-) > > diff --git a/lib/igt_pm.c b/lib/igt_pm.c > index 339a51e6f..e383f18b5 100644 > --- a/lib/igt_pm.c > +++ b/lib/igt_pm.c > @@ -154,20 +154,28 @@ static int __igt_pm_enable_audio_runtime_pm(void) > while ((de = readdir(dir))) { > const char *match = "hwC"; > char buf[32] = { }; /* for Valgrind */ > - char *tmp; > + int loops = 500; > + int base; > int ret; > > if (de->d_type != DT_LNK || > strncmp(de->d_name, match, strlen(match))) > continue; > > - igt_assert(asprintf(, > - "/sys/class/sound/%s/vendor_name", > - de->d_name)); > + base = openat(dir, de->d_name, O_RDONLY); s/dir/dirfd(dir)/ -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 drm/i915/icl: Fix context RPCS programming (rev2)
== Series Details == Series: drm/i915/icl: Fix context RPCS programming (rev2) URL : https://patchwork.freedesktop.org/series/49005/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4757 -> Patchwork_10070 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/49005/revisions/2/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10070: === IGT changes === Warnings {igt@pm_rpm@module-reload}: fi-hsw-4770r: PASS -> SKIP == Known issues == Here are the changes found in Patchwork_10070 that come from known issues: === IGT changes === Issues hit igt@drv_module_reload@basic-reload-inject: fi-hsw-4770r: PASS -> DMESG-WARN (fdo#107425) {igt@pm_rpm@module-reload}: fi-cnl-psr: PASS -> WARN (fdo#107708, fdo#107602) Possible fixes igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence: {fi-byt-clapper}: FAIL (fdo#103191, fdo#107362) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c: fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS igt@kms_psr@primary_page_flip: fi-cnl-psr: FAIL (fdo#107336) -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#107336 https://bugs.freedesktop.org/show_bug.cgi?id=107336 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107425 https://bugs.freedesktop.org/show_bug.cgi?id=107425 fdo#107602 https://bugs.freedesktop.org/show_bug.cgi?id=107602 fdo#107708 https://bugs.freedesktop.org/show_bug.cgi?id=107708 == Participating hosts (53 -> 48) == Missing(5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u == Build changes == * Linux: CI_DRM_4757 -> Patchwork_10070 CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10070: 9a2751c01ca21789da2a8f95dab23033540ad6c9 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 9a2751c01ca2 drm/i915/icl: Fix context RPCS programming == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10070/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH i-g-t] lib/pm: Wait a little for sound module load to complete
Sometimes we may probe the sound module as it is still being registered and its debugfs not yet fully populated. If we do not find a file we expect to exist, sleep a little and check again. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107801 Signed-off-by: Chris Wilson Cc: Imre Deak --- lib/igt_pm.c | 22 +++--- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/igt_pm.c b/lib/igt_pm.c index 339a51e6f..e383f18b5 100644 --- a/lib/igt_pm.c +++ b/lib/igt_pm.c @@ -154,20 +154,28 @@ static int __igt_pm_enable_audio_runtime_pm(void) while ((de = readdir(dir))) { const char *match = "hwC"; char buf[32] = { }; /* for Valgrind */ - char *tmp; + int loops = 500; + int base; int ret; if (de->d_type != DT_LNK || strncmp(de->d_name, match, strlen(match))) continue; - igt_assert(asprintf(, - "/sys/class/sound/%s/vendor_name", - de->d_name)); + base = openat(dir, de->d_name, O_RDONLY); + igt_assert_fd(base); + + do { + fd = open(base, "vendor_name", O_RDONLY); + if (fd < 0) /* module is still loading? */ + usleep(1000); + else + break; + } while (--loops); + close(base); + if (fd < 0) + continue; - fd = open(tmp, O_RDONLY); - free(tmp); - igt_assert_fd(fd); ret = read(fd, buf, sizeof(buf)); close(fd); igt_assert(ret > 0); -- 2.19.0.rc1 ___ 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 context RPCS programming (rev2)
== Series Details == Series: drm/i915/icl: Fix context RPCS programming (rev2) URL : https://patchwork.freedesktop.org/series/49005/ State : warning == Summary == $ dim checkpatch origin/drm-tip 9a2751c01ca2 drm/i915/icl: Fix context RPCS programming -:18: WARNING:TYPO_SPELLING: 'writting' may be misspelled - perhaps 'writing'? #18: writting to a bitfield starting three bits higher than it should). These total: 0 errors, 1 warnings, 0 checks, 118 lines checked ___ 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: Remove "protection" around drm_vma_offset_manager_destroy()
== Series Details == Series: drm: Remove "protection" around drm_vma_offset_manager_destroy() URL : https://patchwork.freedesktop.org/series/49069/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4754_full -> Patchwork_10069_full = == Summary - SUCCESS == No regressions found. == Known issues == Here are the changes found in Patchwork_10069_full that come from known issues: === IGT changes === Issues hit igt@kms_setmode@basic: shard-apl: PASS -> FAIL (fdo#99912) Possible fixes igt@kms_cursor_legacy@cursor-vs-flip-toggle: shard-hsw: FAIL (fdo#103355) -> PASS igt@perf@blocking: shard-hsw: FAIL (fdo#102252) -> PASS fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252 fdo#103355 https://bugs.freedesktop.org/show_bug.cgi?id=103355 fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912 == Participating hosts (5 -> 5) == No changes in participating hosts == Build changes == * Linux: CI_DRM_4754 -> Patchwork_10069 CI_DRM_4754: b6b0b80157c9ecad0569a42bb8efeb6d2f27dfb3 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4620: 20087bf22698612a526353f022bc232e2b0dcdcc @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10069: 72665cf7563f4485efa6b4a9606b7162f442c69e @ 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_10069/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 2/2] drm/i915/tracepoints: Remove DRM_I915_LOW_LEVEL_TRACEPOINTS Kconfig option
OK, so no end-user queries matter, just the queries from the tools for end-users do, right? And with making the open-source tool (shipped by distros, etc.) suitable for negotiations we need to hurry while at least the trace-point mechanism is not yet completely broken and can be used to show usefulness and to have at least something that can be taken to distro? If the new tool and kernel changes required by it are developed in parallel - you don't have that "shipped by a distro" condition, BTW, right? Or in case of parallel discussion you're deciding if the suggested tool has rights to exist? -Original Message- From: Joonas Lahtinen [mailto:joonas.lahti...@linux.intel.com] Sent: Wednesday, August 29, 2018 5:52 PM To: Intel-gfx@lists.freedesktop.org; Kukanova, Svetlana ; Chris Wilson ; Tvrtko Ursulin ; Tvrtko Ursulin Subject: RE: [Intel-gfx] [PATCH 2/2] drm/i915/tracepoints: Remove DRM_I915_LOW_LEVEL_TRACEPOINTS Kconfig option Quoting Kukanova, Svetlana (2018-08-27 16:37:14) > > Once there is an actual request to have some metrics from vanilla kernels > > through some end-user tools (not a developer tool, like here), I'll be glad > > to discuss about how to provide the information the best for them in a > > stable manner. > > Sorry for my ignorance, but looks like I don't understand what developer vs. > end-user means here. > With regard to GPU profiling VTune's end-user is somebody who develops gfx or > media applications basing on MediaSDK, OpenCL, C for Media, etc. > Or, more often it's an intel application engineer working with those people's > code. > AE in his\her turn may contact e.g. Dmitry's team if judging by VTune data > he\she decides that the problem is on the deeper level of the gfx stack, not > in the customer's code. > Then Dmitry's team would be experimenting with VTune and deciding if the > problem is in their code or it's deeper in i915. > Don't think that i915 people use VTune (sadly:)) so here the chain is broken. > Otherwise they could e.g. blame HW based on the same data. > I'm wondering who in this chain (app developer, AE, Dmitry, i915) is an > "end-user" and who's a "developer"? > Or is a "developer" a kernel developer only? > And e.g. Dmitry is an end-user and thus he is not supposed to use tools like > gpuvis or VTune? > Looks like all the chain before i915 is annoyed by the kernel-rebuilding > requirement. With end-user tool I'm referring to something that would have interest in being packaged and shipped by a distro. gpuvis team seems to be doing fine with the application being built from source and being run against a specially configured kernel for their purposes. I would assume there to be some queries about a enabling the tracepoints by default if there was demand. At the same time I would assume them to try to get the application packaged and into distros. And then we would commence discussing how to provide the information in a stable manner (most likely outside tracepoints). So far I'm not seeing such queries from gpuvis direction. > > The interface discussion would probably start from a DRM subsystem level, so > > that the tool would have an equivalent level of base experience from all > > drivers. > > That sounds like a solution from an ideal world. I mean if DRM had a uAPI for > scheduling observability and all the drivers had to implement this. And the > drivers would require info from HW like GuC pointing to the necessity of uAPI > support... > Would be just great for all the tools (, developers and end-users). > But I have no idea what kind of impulse should it be to bring this to reality. > And if all the energy available to human kind at the given evolution point > would be enough to at least start this. > Or am I just too pessimistic? Are there some simple defined steps to be done > to make it? Can we build a realistic plan? Step is "1. Have the tool" :) There seem to be three options: 1) open sourcing VTune 2) contributing to gpuvis project to drive the project into the above mentioned direction. 3) writing a new project from scratch (not encouraged, unless you have something differentiating to bring to the table). Unless somebody actively drives the feature to some Open Source userspace consumer, there won't be an interface for the information from kernel. Demand from an Open Source application is a hard requirement for kickstarting the interface discussion. > E.g. is this the first step? - > > There's just no Open Source tool to first design and then validate the > > interfaces against. There's just the debugging tool which happens to work > > currently, without any guarantees that next kernel version would not cause a > > substantial rework of the interfacing code. > > How does it usually work, I mean you can't have a widely shipped open-source > consumer already using a non-existent feature that is to be requested? > And I can't imagine what kind of existing tool should it be to decide suddenly > that it needs to add GPU
[Intel-gfx] [PATCH v2] drm/i915/icl: Fix context RPCS programming
From: Tvrtko Ursulin There are two issues with the current RPCS programming for Icelake: Expansion of the slice count bitfield has been missed, as well as the required programming workaround for the subslice count bitfield size limitation. 1) Bitfield width for configuring the active slice count has grown so we need to program the GEN8_R_PWR_CLK_STATE accordingly. Current code was always requesting eight times the number of slices (due writting to a bitfield starting three bits higher than it should). These requests were luckily a) capped by the hardware to the available number of slices, and b) we haven't yet exported the code to ask for reduced slice configurations. Due both of the above there was no impact from this incorrect programming but we should still fix it. 2) Due subslice count bitfield being only three bits wide and furthermore capped to a maximum documented value of four, special programming workaround is needed to enable more than four subslices. With this programming driver has to consider the GT configuration as 2x4x8, while the hardware internally translates this to 1x8x8. A limitation stemming from this is that either a subslice count between one and four can be selected, or a subslice count equaling the total number of subslices in all selected slices. In other words, odd subslice counts greater than four are impossible, as are odd subslice counts greater than a single slice subslice count. This also had no impact in the current code base due breakage from 1) always reqesting more than one slice. While fixing this we also add some asserts to flag up any future bitfield overflows. v2: * Use a local in all branches for clarity. (Lionel) Signed-off-by: Tvrtko Ursulin Bspec: 12247 Reported-by: tony...@intel.com Suggested-by: Lionel Landwerlin Cc: Lionel Landwerlin Cc: tony...@intel.com Cc: Mika Kuoppala Reviewed-by: Lionel Landwerlin --- drivers/gpu/drm/i915/i915_reg.h | 2 + drivers/gpu/drm/i915/intel_lrc.c | 87 +++- 2 files changed, 76 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index f2321785cbd6..09bc8e730ee1 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -344,6 +344,8 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg) #define GEN8_RPCS_S_CNT_ENABLE (1 << 18) #define GEN8_RPCS_S_CNT_SHIFT15 #define GEN8_RPCS_S_CNT_MASK (0x7 << GEN8_RPCS_S_CNT_SHIFT) +#define GEN11_RPCS_S_CNT_SHIFT 12 +#define GEN11_RPCS_S_CNT_MASK(0x3f << GEN11_RPCS_S_CNT_SHIFT) #define GEN8_RPCS_SS_CNT_ENABLE (1 << 11) #define GEN8_RPCS_SS_CNT_SHIFT 8 #define GEN8_RPCS_SS_CNT_MASK(0x7 << GEN8_RPCS_SS_CNT_SHIFT) diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index f8ceb9c99dd6..def467c2451b 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c @@ -2480,6 +2480,9 @@ int logical_xcs_ring_init(struct intel_engine_cs *engine) static u32 make_rpcs(struct drm_i915_private *dev_priv) { + bool subslice_pg = INTEL_INFO(dev_priv)->sseu.has_subslice_pg; + u8 slices = hweight8(INTEL_INFO(dev_priv)->sseu.slice_mask); + u8 subslices = hweight8(INTEL_INFO(dev_priv)->sseu.subslice_mask[0]); u32 rpcs = 0; /* @@ -2489,6 +2492,38 @@ make_rpcs(struct drm_i915_private *dev_priv) if (INTEL_GEN(dev_priv) < 9) return 0; + /* +* Since the SScount bitfield in GEN8_R_PWR_CLK_STATE is only three bits +* wide and Icelake has up to eight subslices, specfial programming is +* needed in order to correctly enable all subslices. +* +* According to documentation software must consider the configuration +* as 2x4x8 and hardware will translate this to 1x8x8. +* +* Furthemore, even though SScount is three bits, maximum documented +* value for it is four. From this some rules/restrictions follow: +* +* 1. +* If enabled subslice count is greater than four, two whole slices must +* be enabled instead. +* +* 2. +* When more than one slice is enabled, hardware ignores the subslice +* count altogether. +* +* From these restrictions it follows that it is not possible to enable +* a count of subslices between the SScount maximum of four restriction, +* and the maximum available number on a particular SKU. Either all +* subslices are enabled, or a count between one and four on the first +* slice. +*/ + if (IS_GEN11(dev_priv) && slices == 1 && subslices >= 4) { + GEM_BUG_ON(subslices & 1); + + subslice_pg = false; + slices *= 2; + } + /* * Starting in Gen9, render power gating can leave *
Re: [Intel-gfx] [PATCH] drm/i915/icl: Fix context RPCS programming
On 31/08/2018 17:52, Lionel Landwerlin wrote: On 31/08/2018 12:53, Tvrtko Ursulin wrote: From: Tvrtko Ursulin There are two issues with the current RPCS programming for Icelake: Expansion of the slice count bitfield has been missed, as well as the required programming workaround for the subslice count bitfield size limitation. 1) Bitfield width for configuring the active slice count has grown so we need to program the GEN8_R_PWR_CLK_STATE accordingly. Current code was always requesting eight times the number of slices (due writting to a bitfield starting three bits higher than it should). These requests were luckily a) capped by the hardware to the available number of slices, and b) we haven't yet exported the code to ask for reduced slice configurations. Due both of the above there was no impact from this incorrect programming but we should still fix it. 2) Due subslice count bitfield being only three bits wide and furthermore capped to a maximum documented value of four, special programming workaround is needed to enable more than four subslices. With this programming driver has to consider the GT configuration as 2x4x8, while the hardware internally translates this to 1x8x8. A limitation stemming from this is that either a subslice count between one and four can be selected, or a subslice count equaling the total number of subslices in all selected slices. In other words, odd subslice counts greater than four are impossible, as are odd subslice counts greater than a single slice subslice count. This also had no impact in the current code base due breakage from 1) always reqesting more than one slice. While fixing this we also add some asserts to flag up any future bitfield overflows. Signed-off-by: Tvrtko Ursulin Bspec: 12247 Reported-by: tony...@intel.com Suggested-by: Lionel Landwerlin Cc: Lionel Landwerlin Cc: tony...@intel.com Cc: Mika Kuoppala --- drivers/gpu/drm/i915/i915_reg.h | 2 + drivers/gpu/drm/i915/intel_lrc.c | 89 +++- 2 files changed, 78 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index f2321785cbd6..09bc8e730ee1 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -344,6 +344,8 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg) #define GEN8_RPCS_S_CNT_ENABLE (1 << 18) #define GEN8_RPCS_S_CNT_SHIFT 15 #define GEN8_RPCS_S_CNT_MASK (0x7 << GEN8_RPCS_S_CNT_SHIFT) +#define GEN11_RPCS_S_CNT_SHIFT 12 +#define GEN11_RPCS_S_CNT_MASK (0x3f << GEN11_RPCS_S_CNT_SHIFT) #define GEN8_RPCS_SS_CNT_ENABLE (1 << 11) #define GEN8_RPCS_SS_CNT_SHIFT 8 #define GEN8_RPCS_SS_CNT_MASK (0x7 << GEN8_RPCS_SS_CNT_SHIFT) diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index f8ceb9c99dd6..323c46319cb8 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c @@ -2480,6 +2480,9 @@ int logical_xcs_ring_init(struct intel_engine_cs *engine) static u32 make_rpcs(struct drm_i915_private *dev_priv) { + bool subslice_pg = INTEL_INFO(dev_priv)->sseu.has_subslice_pg; + u8 slices = hweight8(INTEL_INFO(dev_priv)->sseu.slice_mask); + u8 subslices = hweight8(INTEL_INFO(dev_priv)->sseu.subslice_mask[0]); u32 rpcs = 0; /* @@ -2489,6 +2492,38 @@ make_rpcs(struct drm_i915_private *dev_priv) if (INTEL_GEN(dev_priv) < 9) return 0; + /* + * Since the SScount bitfield in GEN8_R_PWR_CLK_STATE is only three bits + * wide and Icelake has up to eight subslices, specfial programming is + * needed in order to correctly enable all subslices. + * + * According to documentation software must consider the configuration + * as 2x4x8 and hardware will translate this to 1x8x8. + * + * Furthemore, even though SScount is three bits, maximum documented + * value for it is four. From this some rules/restrictions follow: + * + * 1. + * If enabled subslice count is greater than four, two whole slices must + * be enabled instead. + * + * 2. + * When more than one slice is enabled, hardware ignores the subslice + * count altogether. + * + * From these restrictions it follows that it is not possible to enable + * a count of subslices between the SScount maximum of four restriction, + * and the maximum available number on a particular SKU. Either all + * subslices are enabled, or a count between one and four on the first + * slice. + */ + if (IS_GEN11(dev_priv) && slices == 1 && subslices >= 4) { + GEM_BUG_ON(subslices & 1); + + subslice_pg = false; Err... Now I'm looking at the documentation again and I see this for the subslice enable field : Enable Subslice Count Request. 0 = Use Async subslice count 1 = Use SScount in this register Searching for "Async subslice count" leads me
Re: [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/5] drm/i915: Do a full device reset after being wedged
Quoting Patchwork (2018-09-03 11:29:24) > == Series Details == > > Series: series starting with [1/5] drm/i915: Do a full device reset after > being wedged > URL : https://patchwork.freedesktop.org/series/49061/ > State : success > > == Summary == > > = CI Bug Log - changes from CI_DRM_4753_full -> Patchwork_10068_full = > > == Summary - SUCCESS == > > No regressions found. A peaceful change. Thanks for the review, -Chris ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 2/5] drm/i915: Flag any possible writes for a GTT fault
Quoting Chris Wilson (2018-09-03 11:33:34) > We do not explicitly mark the PTE for the user's GTT mmap as being > wrprotect, so we don't get a refault when we would need to change a > read-only mmapping into read-write. As such, we must presume that if the > vma has PROT_WRITE it may be written to, although this is supposed to be > indicated by set-domain there are cases (e.g. after swap) where > userspace may not be aware of the implicit domain change. > > Signed-off-by: Chris Wilson Reviewed-by: Joonas Lahtinen Regards, Joonas ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/5] drm/i915: Do a full device reset after being wedged
== Series Details == Series: series starting with [1/5] drm/i915: Do a full device reset after being wedged URL : https://patchwork.freedesktop.org/series/49061/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4753_full -> Patchwork_10068_full = == Summary - SUCCESS == No regressions found. == Known issues == Here are the changes found in Patchwork_10068_full that come from known issues: === IGT changes === Issues hit igt@kms_flip@2x-flip-vs-expired-vblank: shard-glk: PASS -> INCOMPLETE (k.org#198133, fdo#103359) igt@kms_setmode@basic: shard-apl: PASS -> FAIL (fdo#99912) igt@perf@blocking: shard-hsw: PASS -> FAIL (fdo#102252) Possible fixes igt@kms_vblank@pipe-b-ts-continuation-suspend: shard-apl: INCOMPLETE (fdo#103927) -> PASS igt@perf@polling: shard-hsw: FAIL (fdo#102252) -> PASS fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252 fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912 k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133 == Participating hosts (5 -> 5) == No changes in participating hosts == Build changes == * Linux: CI_DRM_4753 -> Patchwork_10068 CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10068: f7020f7c61c7f49683d92ce208121a80b22206c2 @ 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_10068/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 5/5] drm/i915: Forcibly flush unwanted requests in drop-caches
Quoting Chris Wilson (2018-09-03 11:33:37) > Add a mode to debugfs/drop-caches to flush unwanted requests off the GPU > (by wedging the device and resetting). This is very useful if a test > terminated leaving a long queue of hanging batches that would ordinarily > require a round trip through hangcheck for each. > > It reduces the inter-test operation to just a write into drop-caches to > reset driver/GPU state between tests. > > Signed-off-by: Chris Wilson Reviewed-by: Joonas Lahtinen Regards, Joonas ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 4/5] drm/i915: Early rejection of buffer allocations larger than RAM
Quoting Chris Wilson (2018-09-03 11:33:36) > We currently try to pin and allocate the whole buffer at a time. If that > object is larger than RAM, we will try to pin the whole of physical > memory, force the machine into oom, and then still fail the allocation. > > If the request is obviously too large, error out early. We opt to do > this in the backend to make it easy to use alternate paths that do not > require the entire object pinned, or may easily handle proxy objects > that are larger than physical memory. > > Signed-off-by: Chris Wilson Reviewed-by: Joonas Lahtinen Regards, Joonas ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 3/5] drm/i915: Force the slow path after a user-write error
Quoting Chris Wilson (2018-09-03 11:33:35) > If we fail to write the user relocation back when it is changed, force > ourselves to take the slow relocation path where we can handle faults in > the write path. There is still an element of dubiousness as having > patched up the batch to use the correct offset, it no longer matches the > presumed_offset in the relocation, so a second pass may miss any changes > in layout. > > Signed-off-by: Chris Wilson Reviewed-by: Joonas Lahtinen Regards, Joonas ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 1/1] firmware/dmc/icl: load v1.07 on icelake.
On Mon, Aug 27, 2018 at 05:38:44PM -0700, Anusha Srivatsa wrote: > Add Support to load DMC on Icelake. > > While at it, also add support to load the firmware > during system resume. > > v2: load firmware during system resume.(Imre) > > v3: enable has_csr for icelake.(Jyoti) > > v4: Only load the firmware in this patch > > Cc: Jyoti Yadav > Cc: Imre Deak > Cc: Rodrigo Vivi > Cc: Paulo Zanoni > Signed-off-by: Anusha Srivatsa Reviewed-by: Imre Deak Is it ok to push this already now that the ICL 1.07 firmware is in [1] or do we have to wait until it propagates to [2]? [1] https://cgit.freedesktop.org/drm/drm-firmware/ [2] https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git > --- > drivers/gpu/drm/i915/intel_csr.c| 7 +++ > drivers/gpu/drm/i915/intel_runtime_pm.c | 3 +++ > 2 files changed, 10 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_csr.c > b/drivers/gpu/drm/i915/intel_csr.c > index 1ec4f09c61f6..6d9d47322405 100644 > --- a/drivers/gpu/drm/i915/intel_csr.c > +++ b/drivers/gpu/drm/i915/intel_csr.c > @@ -34,6 +34,9 @@ > * low-power state and comes back to normal. > */ > > +#define I915_CSR_ICL "i915/icl_dmc_ver1_07.bin" > +#define ICL_CSR_VERSION_REQUIRED CSR_VERSION(1, 7) > + > #define I915_CSR_GLK "i915/glk_dmc_ver1_04.bin" > MODULE_FIRMWARE(I915_CSR_GLK); > #define GLK_CSR_VERSION_REQUIRED CSR_VERSION(1, 4) > @@ -301,6 +304,8 @@ static uint32_t *parse_csr_fw(struct drm_i915_private > *dev_priv, > if (csr->fw_path == i915_modparams.dmc_firmware_path) { > /* Bypass version check for firmware override. */ > required_version = csr->version; > + } else if (IS_ICELAKE(dev_priv)) { > + required_version = ICL_CSR_VERSION_REQUIRED; > } else if (IS_CANNONLAKE(dev_priv)) { > required_version = CNL_CSR_VERSION_REQUIRED; > } else if (IS_GEMINILAKE(dev_priv)) { > @@ -458,6 +463,8 @@ void intel_csr_ucode_init(struct drm_i915_private > *dev_priv) > > if (i915_modparams.dmc_firmware_path) > csr->fw_path = i915_modparams.dmc_firmware_path; > + else if (IS_ICELAKE(dev_priv)) > + csr->fw_path = I915_CSR_ICL; > else if (IS_CANNONLAKE(dev_priv)) > csr->fw_path = I915_CSR_CNL; > else if (IS_GEMINILAKE(dev_priv)) > diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c > b/drivers/gpu/drm/i915/intel_runtime_pm.c > index 2852395125cd..bd7da068e813 100644 > --- a/drivers/gpu/drm/i915/intel_runtime_pm.c > +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c > @@ -3563,6 +3563,9 @@ static void icl_display_core_init(struct > drm_i915_private *dev_priv, > > /* 7. Setup MBUS. */ > icl_mbus_init(dev_priv); > + > + if (resume && dev_priv->csr.dmc_payload) > + intel_csr_load_program(dev_priv); > } > > static void icl_display_core_uninit(struct drm_i915_private *dev_priv) > -- > 2.17.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: Remove "protection" around drm_vma_offset_manager_destroy()
== Series Details == Series: drm: Remove "protection" around drm_vma_offset_manager_destroy() URL : https://patchwork.freedesktop.org/series/49069/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4754 -> Patchwork_10069 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/49069/revisions/1/mbox/ == Known issues == Here are the changes found in Patchwork_10069 that come from known issues: === IGT changes === Issues hit igt@gem_exec_suspend@basic-s3: fi-blb-e6850: PASS -> INCOMPLETE (fdo#107718) igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: {fi-byt-clapper}: PASS -> FAIL (fdo#103191, fdo#107362) Possible fixes igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence: {fi-byt-clapper}: FAIL (fdo#103191, fdo#107362) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: fi-snb-2520m: INCOMPLETE (fdo#103713) -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713 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 -> 47) == Additional (1): fi-skl-6700hq Missing(6): fi-hsw-4770r fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 == Build changes == * Linux: CI_DRM_4754 -> Patchwork_10069 CI_DRM_4754: b6b0b80157c9ecad0569a42bb8efeb6d2f27dfb3 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4620: 20087bf22698612a526353f022bc232e2b0dcdcc @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10069: 72665cf7563f4485efa6b4a9606b7162f442c69e @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 72665cf7563f drm: Remove "protection" around drm_vma_offset_manager_destroy() == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10069/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: Reduce context HW ID lifetime
On 31/08/2018 13:36, Chris Wilson wrote: Quoting Tvrtko Ursulin (2018-08-30 17:23:43) On 30/08/2018 11:24, Chris Wilson wrote: +static int steal_hw_id(struct drm_i915_private *i915) +{ + struct i915_gem_context *ctx, *cn; + LIST_HEAD(pinned); + int id = -ENOSPC; + + lockdep_assert_held(>contexts.mutex); + + list_for_each_entry_safe(ctx, cn, + >contexts.hw_id_list, hw_id_link) { + if (atomic_read(>pin_hw_id)) { + list_move_tail(>hw_id_link, ); + continue; + } + + GEM_BUG_ON(!ctx->hw_id); /* perma-pinned kernel context */ + list_del_init(>hw_id_link); + id = ctx->hw_id; + break; + } + + list_splice_tail(, >contexts.hw_id_list); Put a comment what is this code doing please. Trying to create some sort of LRU order? LRSearched. Same as the shrinker, and eviction code if you would also review that ;) Two things are infinite, the universe and your stream of patches! :) + return id; +} + +static int assign_hw_id(struct drm_i915_private *i915, unsigned int *out) +{ + int ret; + + lockdep_assert_held(>contexts.mutex); + + ret = new_hw_id(i915, GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN); + if (unlikely(ret < 0)) { + ret = steal_hw_id(i915); + if (ret < 0) /* once again for the correct erro code */ errno + ret = new_hw_id(i915, GFP_KERNEL); Hmm.. shouldn't you try GFP_KERNEL before attempting to steal? Actually I think you should branch based on -ENOSPC (steal) vs -ENOMEM (retry with GFP_KERNEL). Which would actually mean something like: I was applying the same strategy as we use elsewhere. Penalise any driver cache before hitting reclaim. I think that is fair from an application of soft backpressure point of view. (Lack of backpressure is probably a sore point for many.) My concern was lack of a phase which avoids hw id stealing for loads with few contexts but heavy memory pressure. Sounded like a thing worth "robustifying" against - you don't think so? - ret = ida_simple_get(_priv->contexts.hw_ida, - 0, max, GFP_KERNEL); Although now that I see this I am struggling not to say the change to try a lighter weight allocation strategy first (gfp may fail) needs to be split out to a separate patch. Pardon? I appear to suddenly be hard of hearing. The patch was all about the steal_hw_id(). Yes, but you could't have kept the GFP_KERNEL ida_simple_get and only then fall back to stealing. Or as I said, GFP_MAYFAIL, then GFP_KERNEL, then steal. - if (ret < 0) { - /* Contexts are only released when no longer active. - * Flush any pending retires to hopefully release some - * stale contexts and try again. - */ - i915_retire_requests(dev_priv); - ret = ida_simple_get(_priv->contexts.hw_ida, - 0, max, GFP_KERNEL); - if (ret < 0) - return ret; - } - - *out = ret; - return 0; -} - static u32 default_desc_template(const struct drm_i915_private *i915, const struct i915_hw_ppgtt *ppgtt) { @@ -276,12 +324,6 @@ __create_hw_context(struct drm_i915_private *dev_priv, if (ctx == NULL) return ERR_PTR(-ENOMEM); - ret = assign_hw_id(dev_priv, >hw_id); - if (ret) { - kfree(ctx); - return ERR_PTR(ret); - } - kref_init(>ref); list_add_tail(>link, _priv->contexts.list); ctx->i915 = dev_priv; @@ -295,6 +337,7 @@ __create_hw_context(struct drm_i915_private *dev_priv, INIT_RADIX_TREE(>handles_vma, GFP_KERNEL); INIT_LIST_HEAD(>handles_list); + INIT_LIST_HEAD(>hw_id_link); /* Default context will never have a file_priv */ ret = DEFAULT_CONTEXT_HANDLE; @@ -421,15 +464,35 @@ i915_gem_context_create_gvt(struct drm_device *dev) return ctx; } +static void +destroy_kernel_context(struct i915_gem_context **ctxp) +{ + struct i915_gem_context *ctx; + + /* Keep the context ref so that we can free it immediately ourselves */ + ctx = i915_gem_context_get(fetch_and_zero(ctxp)); + GEM_BUG_ON(!i915_gem_context_is_kernel(ctx)); + + context_close(ctx); + i915_gem_context_free(ctx); +} + struct i915_gem_context * i915_gem_context_create_kernel(struct drm_i915_private *i915, int prio) { struct i915_gem_context *ctx; + int err; ctx = i915_gem_create_context(i915, NULL); if (IS_ERR(ctx)) return ctx; + err = i915_gem_context_pin_hw_id(ctx); + if (err) { + destroy_kernel_context(); + return ERR_PTR(err); + } + i915_gem_context_clear_bannable(ctx); ctx->sched.priority = prio; ctx->ring_size =
Re: [Intel-gfx] [PATCH 1/5] drm/i915: Do a full device reset after being wedged
Quoting Chris Wilson (2018-09-03 11:33:33) > We only call unset_wedged on the global reset path (since it's a global > operation), so if we are terminally wedged and wish to reset, take the > full device reset path rather than the quicker individual engine resets. > > Signed-off-by: Chris Wilson > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -3309,7 +3309,8 @@ void i915_handle_error(struct drm_i915_private > *dev_priv, > * Try engine reset when available. We fall back to full reset if > * single reset fails. > */ > - if (intel_has_reset_engine(dev_priv)) { > + if (intel_has_reset_engine(dev_priv) && > + !i915_terminally_wedged(_priv->gpu_error)) { NOT terminally wedged AND can reset individually reads clearer, but either way: Reviewed-by: Joonas Lahtinen Regards, Joonas ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] drm: Remove "protection" around drm_vma_offset_manager_destroy()
Using a spinlock to serialize the destroy function, within the destroy function itself does not prevent the buggy driver from shooting themselves in the foot - either way they still have a use-after-free issue. Reported-by: Jia-Ju Bai Signed-off-by: Chris Wilson Cc: Davidlohr Bueso Cc: Liviu Dudau Cc: Daniel Vetter --- drivers/gpu/drm/drm_vma_manager.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/gpu/drm/drm_vma_manager.c b/drivers/gpu/drm/drm_vma_manager.c index a6b2fe36b025..c5d0d2358301 100644 --- a/drivers/gpu/drm/drm_vma_manager.c +++ b/drivers/gpu/drm/drm_vma_manager.c @@ -103,10 +103,7 @@ EXPORT_SYMBOL(drm_vma_offset_manager_init); */ void drm_vma_offset_manager_destroy(struct drm_vma_offset_manager *mgr) { - /* take the lock to protect against buggy drivers */ - write_lock(>vm_lock); drm_mm_takedown(>vm_addr_space_mm); - write_unlock(>vm_lock); } EXPORT_SYMBOL(drm_vma_offset_manager_destroy); -- 2.19.0.rc1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm/i915: Determine uses-full-ppgtt from context for execbuf
Quoting Rodrigo Vivi (2018-09-03 06:20:22) > On Sat, Sep 01, 2018 at 10:24:51AM +0100, Chris Wilson wrote: > > Rather than inspect the global module parameter for whether full-ppgtt > > maybe enabled, we can inspect the context directly as to whether it has > > its own vm. > > > > Signed-off-by: Chris Wilson > > Cc: Tvrtko Ursulin > > Cc: Bob Paauwe > > Cc: Rodrigo Vivi > > it is good that we don't need to depend on parameter for this. > > Reviewed-by: Rodrigo Vivi Ta, pushed. Along the create path it's a little trickier, but we would rather push the decision down as to what type of ppgtt to create (if any) to the responsible subsystem. There ought to be a simple way! -Chris ___ 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/intel_csr.c Added ICL Stepping info.
== Series Details == Series: drm/i915/intel_csr.c Added ICL Stepping info. URL : https://patchwork.freedesktop.org/series/49058/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4753_full -> Patchwork_10067_full = == Summary - WARNING == Minor unknown changes coming with Patchwork_10067_full need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_10067_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_10067_full: === IGT changes === Warnings igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-wc: shard-snb: PASS -> SKIP +1 == Known issues == Here are the changes found in Patchwork_10067_full that come from known issues: === IGT changes === Issues hit igt@gem_exec_big: shard-hsw: PASS -> INCOMPLETE (fdo#103540) igt@pm_rpm@system-suspend: shard-apl: PASS -> INCOMPLETE (fdo#103927) Possible fixes igt@kms_vblank@pipe-b-ts-continuation-suspend: shard-apl: INCOMPLETE (fdo#103927) -> PASS igt@perf@polling: shard-hsw: FAIL (fdo#102252) -> PASS fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252 fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 == Participating hosts (5 -> 5) == No changes in participating hosts == Build changes == * Linux: CI_DRM_4753 -> Patchwork_10067 CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10067: e524a457fd75a1429b392fb289e4e1a2167ff6b1 @ 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_10067/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/5] drm/i915: Do a full device reset after being wedged
== Series Details == Series: series starting with [1/5] drm/i915: Do a full device reset after being wedged URL : https://patchwork.freedesktop.org/series/49061/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4753 -> Patchwork_10068 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/49061/revisions/1/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10068: === IGT changes === Warnings {igt@pm_rpm@module-reload}: fi-hsw-4770r: PASS -> SKIP == Known issues == Here are the changes found in Patchwork_10068 that come from known issues: === IGT changes === Issues hit igt@amdgpu/amd_basic@userptr: fi-kbl-8809g: PASS -> INCOMPLETE (fdo#107402) igt@drv_module_reload@basic-reload-inject: fi-hsw-4770r: PASS -> DMESG-WARN (fdo#107425) {igt@pm_rpm@module-reload}: fi-glk-dsi: NOTRUN -> WARN (fdo#107708, fdo#107602) fi-cnl-psr: PASS -> WARN (fdo#107708, fdo#107602) Possible fixes igt@gem_exec_suspend@basic-s4-devices: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_chamelium@hdmi-hpd-fast: fi-kbl-7500u: FAIL (fdo#102672, fdo#103841) -> SKIP igt@kms_frontbuffer_tracking@basic: fi-hsw-peppy: DMESG-WARN (fdo#102614) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: {fi-byt-clapper}: FAIL (fdo#107362, fdo#103191) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c: fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS igt@prime_vgem@basic-fence-flip: fi-ilk-650: FAIL (fdo#104008) -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614 fdo#102672 https://bugs.freedesktop.org/show_bug.cgi?id=102672 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107402 https://bugs.freedesktop.org/show_bug.cgi?id=107402 fdo#107425 https://bugs.freedesktop.org/show_bug.cgi?id=107425 fdo#107602 https://bugs.freedesktop.org/show_bug.cgi?id=107602 fdo#107708 https://bugs.freedesktop.org/show_bug.cgi?id=107708 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 == Participating hosts (49 -> 48) == Additional (3): fi-cfl-8109u fi-glk-dsi fi-skl-6700hq Missing(4): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u == Build changes == * Linux: CI_DRM_4753 -> Patchwork_10068 CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10068: f7020f7c61c7f49683d92ce208121a80b22206c2 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == f7020f7c61c7 drm/i915: Forcibly flush unwanted requests in drop-caches 592099574554 drm/i915: Early rejection of buffer allocations larger than RAM 537b66e108d7 drm/i915: Force the slow path after a user-write error 81b274ed9f78 drm/i915: Flag any possible writes for a GTT fault 4125e8b6522d drm/i915: Do a full device reset after being wedged == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10068/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH libdrm] Add basic CONTRIBUTING file
I picked up a bunch of the pieces from wayland's version: https://gitlab.freedesktop.org/wayland/wayland/blob/master/CONTRIBUTING.md The weston one is fairly similar. Then I rather massively trimmed it down since in reality libdrm is a bit a dumping ground with very few real rules. The commit rights and CoC sections I've copied verbatim from igt respectively drm-misc. Weston/Wayland only differ in their pick of how many patches you need (10 instead of 5). I think for libdrm this is supremely relevant, since most everyone will get their commit rights by contributing already to the kernel or mesa and having commit rights there already. Anyway, I figured this is good to get the rules documented, even if there's mostly not many rules. Note: This references maintainers in a MAINTAINERS file, which needs to be created first. Note: With the gitlab migration the entire commit rights process is still a bit up in the air. But gitlab commit rights and roles are hierarchical, so we can do libdrm-only maintainer/commiter roles ("Owner" and "Developer" in gitlab-speak). This should avoid conflating libdrm roles with mesa roles, useful for those pushing to libdrm as primarily kernel contributors. v2: Comments from Emil: - Recommend subject prefix. - Fix copypaste fumbles, this isn't igt/wayland ... v3: Comments from Marek: - libdrm moved to mesa, update the document. Atm the entire account request situation is entirely not clear for gitlab and mesa projects, so that's a bit up in the air. Also, should probably send an announcement to dri-devel@, which didn't happen. - amd folks don't submit their patches to dri-devel, document that. Probably applies to other drivers too. v4: Comments from Rob: - Also include kernel/userspace in the commit counts criteria, due to libdrm's special role as a glue library. v5: Summarize the irc discussion on gitlab roles in the commit message a bit. v6: Some grammer stuff from Eric E. v7: Use --local in git config (Eric E.) Cc: Dave Airlie Cc: Michel Dänzer Cc: Emil Velikov Cc: Marek Olšák Cc: Rob Clark Cc: Eric Engestrom Reviewed-by: Rob Clark (v4) Reviewed-by: Eric Engestrom (v6) Acked-by: Emil Velikov (v6) Acked-by: Marek Olšák (v5) References: https://gitlab.freedesktop.org/wayland/weston/blob/master/CONTRIBUTING.md References: https://01.org/linuxgraphics/gfx-docs/maintainer-tools/drm-misc.html#commit-rights References: https://cgit.freedesktop.org/drm/igt-gpu-tools/tree/CONTRIBUTING#n54 Signed-off-by: Daniel Vetter --- CONTRIBUTING | 105 +++ 1 file changed, 105 insertions(+) create mode 100644 CONTRIBUTING diff --git a/CONTRIBUTING b/CONTRIBUTING new file mode 100644 index ..96f1e4fb0108 --- /dev/null +++ b/CONTRIBUTING @@ -0,0 +1,105 @@ +Contributing to libdrm +== + +Submitting Patches +-- + +Patches should be sent to dri-de...@lists.freedesktop.org, using git +send-email. For patches only touching driver specific code one of the driver +mailing lists (like amd-...@lists.freedesktop.org) is also appropriate. See git +documentation for help: + +http://git-scm.com/documentation + +Since dri-devel is a very busy mailing list please use --subject-prefix="PATCH +libdrm" to make it easier to find libdrm patches. This is best done by running + +git config --local format.subjectprefix "PATCH libdrm" + +The first line of a commit message should contain a prefix indicating what part +is affected by the patch followed by one sentence that describes the change. For +examples: + +amdgpu: Use uint32_t i in amdgpu_find_bo_by_cpu_mapping + +The body of the commit message should describe what the patch changes and why, +and also note any particular side effects. For a recommended reading on +writing commit messages, see: + +http://who-t.blogspot.de/2009/12/on-commit-messages.html + +Your patches should also include a Signed-off-by line with your name and email +address. If you're not the patch's original author, you should also gather +S-o-b's by them (and/or whomever gave the patch to you.) The significance of +this is that it certifies that you created the patch, that it was created under +an appropriate open source license, or provided to you under those terms. This +lets us indicate a chain of responsibility for the copyright status of the code. +For more details: + +https://developercertificate.org/ + +We won't reject patches that lack S-o-b, but it is strongly recommended. + +Review and Merging +-- + +Patches should have at least one positive review (Reviewed-by: tag) or +indication of approval (Acked-by: tag) before merging. For any code shared +between drivers this is mandatory. + +Please note that kernel/userspace API header files have special rules, see +include/drm/README. + +Coding style in the project loosely follows the CodingStyle of the linux kernel: +
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/5] drm/i915: Do a full device reset after being wedged
== Series Details == Series: series starting with [1/5] drm/i915: Do a full device reset after being wedged URL : https://patchwork.freedesktop.org/series/49061/ State : warning == Summary == $ dim checkpatch origin/drm-tip 4125e8b6522d drm/i915: Do a full device reset after being wedged 81b274ed9f78 drm/i915: Flag any possible writes for a GTT fault 537b66e108d7 drm/i915: Force the slow path after a user-write error -:25: WARNING:LONG_LINE: line over 100 characters #25: FILE: drivers/gpu/drm/i915/i915_gem_execbuffer.c:1489: + if (unlikely(__put_user(offset, [r-stack].presumed_offset))) { -:25: CHECK:SPACING: spaces preferred around that '-' (ctx:VxV) #25: FILE: drivers/gpu/drm/i915/i915_gem_execbuffer.c:1489: + if (unlikely(__put_user(offset, [r-stack].presumed_offset))) { ^ total: 0 errors, 1 warnings, 1 checks, 33 lines checked 592099574554 drm/i915: Early rejection of buffer allocations larger than RAM f7020f7c61c7 drm/i915: Forcibly flush unwanted requests in drop-caches ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 2/5] drm/i915: Flag any possible writes for a GTT fault
We do not explicitly mark the PTE for the user's GTT mmap as being wrprotect, so we don't get a refault when we would need to change a read-only mmapping into read-write. As such, we must presume that if the vma has PROT_WRITE it may be written to, although this is supposed to be indicated by set-domain there are cases (e.g. after swap) where userspace may not be aware of the implicit domain change. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 7b7bbfe59697..625e07c56fe2 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2018,7 +2018,7 @@ vm_fault_t i915_gem_fault(struct vm_fault *vmf) struct drm_device *dev = obj->base.dev; struct drm_i915_private *dev_priv = to_i915(dev); struct i915_ggtt *ggtt = _priv->ggtt; - bool write = !!(vmf->flags & FAULT_FLAG_WRITE); + bool write = area->vm_flags & VM_WRITE; struct i915_vma *vma; pgoff_t page_offset; int ret; -- 2.19.0.rc1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 4/5] drm/i915: Early rejection of buffer allocations larger than RAM
We currently try to pin and allocate the whole buffer at a time. If that object is larger than RAM, we will try to pin the whole of physical memory, force the machine into oom, and then still fail the allocation. If the request is obviously too large, error out early. We opt to do this in the backend to make it easy to use alternate paths that do not require the entire object pinned, or may easily handle proxy objects that are larger than physical memory. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_gem.c | 25 +++-- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 625e07c56fe2..89834ce19acd 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2533,13 +2533,21 @@ static int i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj) gfp_t noreclaim; int ret; - /* Assert that the object is not currently in any GPU domain. As it + /* +* Assert that the object is not currently in any GPU domain. As it * wasn't in the GTT, there shouldn't be any way it could have been in * a GPU cache */ GEM_BUG_ON(obj->read_domains & I915_GEM_GPU_DOMAINS); GEM_BUG_ON(obj->write_domain & I915_GEM_GPU_DOMAINS); + /* +* If there's no chance of allocating enough pages for the whole +* object, bail early. +*/ + if (page_count > totalram_pages) + return -ENOMEM; + st = kmalloc(sizeof(*st), GFP_KERNEL); if (st == NULL) return -ENOMEM; @@ -2550,7 +2558,8 @@ static int i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj) return -ENOMEM; } - /* Get the list of pages out of our struct file. They'll be pinned + /* +* Get the list of pages out of our struct file. They'll be pinned * at this point until we release them. * * Fail silently without starting the shrinker @@ -2582,7 +2591,8 @@ static int i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj) i915_gem_shrink(dev_priv, 2 * page_count, NULL, *s++); cond_resched(); - /* We've tried hard to allocate the memory by reaping + /* +* We've tried hard to allocate the memory by reaping * our own buffer, now let the real VM do its job and * go down in flames if truly OOM. * @@ -2594,7 +2604,8 @@ static int i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj) /* reclaim and warn, but no oom */ gfp = mapping_gfp_mask(mapping); - /* Our bo are always dirty and so we require + /* +* Our bo are always dirty and so we require * kswapd to reclaim our pages (direct reclaim * does not effectively begin pageout of our * buffers on its own). However, direct reclaim @@ -2638,7 +2649,8 @@ static int i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj) ret = i915_gem_gtt_prepare_pages(obj, st); if (ret) { - /* DMA remapping failed? One possible cause is that + /* +* DMA remapping failed? One possible cause is that * it could not reserve enough large entries, asking * for PAGE_SIZE chunks instead may be helpful. */ @@ -2672,7 +2684,8 @@ static int i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj) sg_free_table(st); kfree(st); - /* shmemfs first checks if there is enough memory to allocate the page + /* +* shmemfs first checks if there is enough memory to allocate the page * and reports ENOSPC should there be insufficient, along with the usual * ENOMEM for a genuine allocation failure. * -- 2.19.0.rc1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 3/5] drm/i915: Force the slow path after a user-write error
If we fail to write the user relocation back when it is changed, force ourselves to take the slow relocation path where we can handle faults in the write path. There is still an element of dubiousness as having patched up the batch to use the correct offset, it no longer matches the presumed_offset in the relocation, so a second pass may miss any changes in layout. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index a926d7d47183..931be2651f01 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -1486,8 +1486,10 @@ static int eb_relocate_vma(struct i915_execbuffer *eb, struct i915_vma *vma) * can read from this userspace address. */ offset = gen8_canonical_addr(offset & ~UPDATE); - __put_user(offset, - [r-stack].presumed_offset); + if (unlikely(__put_user(offset, [r-stack].presumed_offset))) { + remain = -EFAULT; + goto out; + } } } while (r++, --count); urelocs += ARRAY_SIZE(stack); @@ -1572,7 +1574,6 @@ static int eb_copy_relocations(const struct i915_execbuffer *eb) relocs = kvmalloc_array(size, 1, GFP_KERNEL); if (!relocs) { - kvfree(relocs); err = -ENOMEM; goto err; } @@ -1586,6 +1587,7 @@ static int eb_copy_relocations(const struct i915_execbuffer *eb) if (__copy_from_user((char *)relocs + copied, (char __user *)urelocs + copied, len)) { +end_user: kvfree(relocs); err = -EFAULT; goto err; @@ -1609,7 +1611,6 @@ static int eb_copy_relocations(const struct i915_execbuffer *eb) unsafe_put_user(-1, [copied].presumed_offset, end_user); -end_user: user_access_end(); eb->exec[i].relocs_ptr = (uintptr_t)relocs; -- 2.19.0.rc1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 1/5] drm/i915: Do a full device reset after being wedged
We only call unset_wedged on the global reset path (since it's a global operation), so if we are terminally wedged and wish to reset, take the full device reset path rather than the quicker individual engine resets. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_irq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index e31093ce871c..10f28a2ee2e6 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -3309,7 +3309,8 @@ void i915_handle_error(struct drm_i915_private *dev_priv, * Try engine reset when available. We fall back to full reset if * single reset fails. */ - if (intel_has_reset_engine(dev_priv)) { + if (intel_has_reset_engine(dev_priv) && + !i915_terminally_wedged(_priv->gpu_error)) { for_each_engine_masked(engine, dev_priv, engine_mask, tmp) { BUILD_BUG_ON(I915_RESET_MODESET >= I915_RESET_ENGINE); if (test_and_set_bit(I915_RESET_ENGINE + engine->id, -- 2.19.0.rc1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 5/5] drm/i915: Forcibly flush unwanted requests in drop-caches
Add a mode to debugfs/drop-caches to flush unwanted requests off the GPU (by wedging the device and resetting). This is very useful if a test terminated leaving a long queue of hanging batches that would ordinarily require a round trip through hangcheck for each. It reduces the inter-test operation to just a write into drop-caches to reset driver/GPU state between tests. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_debugfs.c | 52 - 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index a5265c236a33..4ad0e2ed8610 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -4131,13 +4131,17 @@ DEFINE_SIMPLE_ATTRIBUTE(i915_ring_test_irq_fops, #define DROP_FREED BIT(4) #define DROP_SHRINK_ALLBIT(5) #define DROP_IDLE BIT(6) +#define DROP_RESET_ACTIVE BIT(7) +#define DROP_RESET_SEQNO BIT(8) #define DROP_ALL (DROP_UNBOUND | \ DROP_BOUND| \ DROP_RETIRE | \ DROP_ACTIVE | \ DROP_FREED| \ DROP_SHRINK_ALL |\ - DROP_IDLE) + DROP_IDLE | \ + DROP_RESET_ACTIVE | \ + DROP_RESET_SEQNO) static int i915_drop_caches_get(void *data, u64 *val) { @@ -4149,53 +4153,69 @@ i915_drop_caches_get(void *data, u64 *val) static int i915_drop_caches_set(void *data, u64 val) { - struct drm_i915_private *dev_priv = data; - struct drm_device *dev = _priv->drm; + struct drm_i915_private *i915 = data; int ret = 0; DRM_DEBUG("Dropping caches: 0x%08llx [0x%08llx]\n", val, val & DROP_ALL); + if (val & DROP_RESET_ACTIVE && !intel_engines_are_idle(i915)) + i915_gem_set_wedged(i915); + /* No need to check and wait for gpu resets, only libdrm auto-restarts * on ioctls on -EAGAIN. */ - if (val & (DROP_ACTIVE | DROP_RETIRE)) { - ret = mutex_lock_interruptible(>struct_mutex); + if (val & (DROP_ACTIVE | DROP_RETIRE | DROP_RESET_SEQNO)) { + ret = mutex_lock_interruptible(>drm.struct_mutex); if (ret) return ret; if (val & DROP_ACTIVE) - ret = i915_gem_wait_for_idle(dev_priv, + ret = i915_gem_wait_for_idle(i915, I915_WAIT_INTERRUPTIBLE | I915_WAIT_LOCKED, MAX_SCHEDULE_TIMEOUT); + if (val & DROP_RESET_SEQNO) { + intel_runtime_pm_get(i915); + ret = i915_gem_set_global_seqno(>drm, 1); + intel_runtime_pm_put(i915); + } + if (val & DROP_RETIRE) - i915_retire_requests(dev_priv); + i915_retire_requests(i915); - mutex_unlock(>struct_mutex); + mutex_unlock(>drm.struct_mutex); + } + + if (val & DROP_RESET_ACTIVE && + i915_terminally_wedged(>gpu_error)) { + i915_handle_error(i915, ALL_ENGINES, 0, NULL); + wait_on_bit(>gpu_error.flags, + I915_RESET_HANDOFF, + TASK_UNINTERRUPTIBLE); } fs_reclaim_acquire(GFP_KERNEL); if (val & DROP_BOUND) - i915_gem_shrink(dev_priv, LONG_MAX, NULL, I915_SHRINK_BOUND); + i915_gem_shrink(i915, LONG_MAX, NULL, I915_SHRINK_BOUND); if (val & DROP_UNBOUND) - i915_gem_shrink(dev_priv, LONG_MAX, NULL, I915_SHRINK_UNBOUND); + i915_gem_shrink(i915, LONG_MAX, NULL, I915_SHRINK_UNBOUND); if (val & DROP_SHRINK_ALL) - i915_gem_shrink_all(dev_priv); + i915_gem_shrink_all(i915); fs_reclaim_release(GFP_KERNEL); if (val & DROP_IDLE) { do { - if (READ_ONCE(dev_priv->gt.active_requests)) - flush_delayed_work(_priv->gt.retire_work); - drain_delayed_work(_priv->gt.idle_work); - } while (READ_ONCE(dev_priv->gt.awake)); + if (READ_ONCE(i915->gt.active_requests)) + flush_delayed_work(>gt.retire_work); + drain_delayed_work(>gt.idle_work); + } while (READ_ONCE(i915->gt.awake)); } if (val & DROP_FREED) - i915_gem_drain_freed_objects(dev_priv); + i915_gem_drain_freed_objects(i915); return ret; } -- 2.19.0.rc1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/intel_csr.c Added ICL Stepping info.
== Series Details == Series: drm/i915/intel_csr.c Added ICL Stepping info. URL : https://patchwork.freedesktop.org/series/49058/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4753 -> Patchwork_10067 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/49058/revisions/1/mbox/ == Known issues == Here are the changes found in Patchwork_10067 that come from known issues: === IGT changes === Issues hit igt@kms_pipe_crc_basic@read-crc-pipe-a: {fi-byt-clapper}: PASS -> FAIL (fdo#107362) igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: {fi-byt-clapper}: PASS -> FAIL (fdo#107362, fdo#103191) {igt@pm_rpm@module-reload}: fi-glk-dsi: NOTRUN -> WARN (fdo#107708, fdo#107602) fi-cnl-psr: PASS -> WARN (fdo#107708, fdo#107602) Possible fixes igt@gem_exec_suspend@basic-s4-devices: fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS igt@kms_chamelium@hdmi-hpd-fast: fi-kbl-7500u: FAIL (fdo#102672, fdo#103841) -> SKIP igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: {fi-byt-clapper}: FAIL (fdo#107362, fdo#103191) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c: fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS igt@prime_vgem@basic-fence-flip: fi-ilk-650: FAIL (fdo#104008) -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). fdo#102672 https://bugs.freedesktop.org/show_bug.cgi?id=102672 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107602 https://bugs.freedesktop.org/show_bug.cgi?id=107602 fdo#107708 https://bugs.freedesktop.org/show_bug.cgi?id=107708 fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718 == Participating hosts (49 -> 47) == Additional (3): fi-cfl-8109u fi-glk-dsi fi-skl-6700hq Missing(5): fi-hsw-peppy fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u == Build changes == * Linux: CI_DRM_4753 -> Patchwork_10067 CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10067: e524a457fd75a1429b392fb289e4e1a2167ff6b1 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == e524a457fd75 drm/i915/intel_csr.c Added ICL Stepping info. == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10067/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/intel_csr.c Added ICL Stepping info.
== Series Details == Series: drm/i915/intel_csr.c Added ICL Stepping info. URL : https://patchwork.freedesktop.org/series/49058/ State : warning == Summary == $ dim checkpatch origin/drm-tip e524a457fd75 drm/i915/intel_csr.c Added ICL Stepping info. -:20: CHECK:LINE_SPACING: Please use a blank line after function/struct/union/enum declarations #20: FILE: drivers/gpu/drm/i915/intel_csr.c:188: }; +static const struct stepping_info icl_stepping_info[] = { total: 0 errors, 0 warnings, 1 checks, 20 lines checked ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] [intel-gfx] drm/i915/intel_csr.c Added ICL Stepping info.
As DMC Package contain DMC FW for multiple steppings including default stepping. This patch will help to load FW for that particular stepping, if FW for that stepping is available, instead of loading default FW. Signed-off-by: Jyoti Yadav --- drivers/gpu/drm/i915/intel_csr.c | 8 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c index 1ec4f09..f6352ab 100644 --- a/drivers/gpu/drm/i915/intel_csr.c +++ b/drivers/gpu/drm/i915/intel_csr.c @@ -183,6 +183,11 @@ struct stepping_info { {'A', '0'}, {'A', '1'}, {'A', '2'}, {'B', '0'}, {'B', '1'}, {'B', '2'} }; +static const struct stepping_info icl_stepping_info[] = { + {'A', '0'}, {'A', '1'}, {'A', '2'}, + {'B', '0'}, {'B', '2'}, + {'C', '0'} +}; static const struct stepping_info no_stepping_info = { '*', '*' }; @@ -198,6 +203,9 @@ struct stepping_info { } else if (IS_BROXTON(dev_priv)) { size = ARRAY_SIZE(bxt_stepping_info); si = bxt_stepping_info; + } else if (IS_ICELAKE(dev_priv)) { + size = ARRAY_SIZE(icl_stepping_info); + si = icl_stepping_info; } else { size = 0; si = NULL; -- 1.9.1 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Kill debugfs's i915_dpcd
== Series Details == Series: drm/i915: Kill debugfs's i915_dpcd URL : https://patchwork.freedesktop.org/series/49055/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4753_full -> Patchwork_10066_full = == Summary - SUCCESS == No regressions found. == Known issues == Here are the changes found in Patchwork_10066_full that come from known issues: === IGT changes === Issues hit igt@kms_cursor_legacy@cursor-vs-flip-toggle: shard-hsw: PASS -> FAIL (fdo#103355) igt@kms_setmode@basic: shard-apl: PASS -> FAIL (fdo#99912) Possible fixes igt@kms_setmode@basic: shard-kbl: FAIL (fdo#99912) -> PASS igt@kms_vblank@pipe-b-ts-continuation-suspend: shard-apl: INCOMPLETE (fdo#103927) -> PASS igt@perf@polling: shard-hsw: FAIL (fdo#102252) -> PASS fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252 fdo#103355 https://bugs.freedesktop.org/show_bug.cgi?id=103355 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912 == Participating hosts (5 -> 5) == No changes in participating hosts == Build changes == * Linux: CI_DRM_4753 -> Patchwork_10066 CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10066: 79975fae5a1293a653417dcdae5112dd8899f5ec @ 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_10066/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Protect against wrong reg offset and warn.
== Series Details == Series: drm/i915: Protect against wrong reg offset and warn. URL : https://patchwork.freedesktop.org/series/49054/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4753_full -> Patchwork_10065_full = == Summary - SUCCESS == No regressions found. == Known issues == Here are the changes found in Patchwork_10065_full that come from known issues: === IGT changes === Issues hit igt@kms_setmode@basic: shard-apl: PASS -> FAIL (fdo#99912) Possible fixes igt@kms_vblank@pipe-b-ts-continuation-suspend: shard-apl: INCOMPLETE (fdo#103927) -> PASS igt@perf@polling: shard-hsw: FAIL (fdo#102252) -> PASS fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912 == Participating hosts (5 -> 5) == No changes in participating hosts == Build changes == * Linux: CI_DRM_4753 -> Patchwork_10065 CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10065: 1622c0e1a6174b89f1a350b0e939497a7e92ab81 @ 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_10065/shards.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Kill debugfs's i915_dpcd
== Series Details == Series: drm/i915: Kill debugfs's i915_dpcd URL : https://patchwork.freedesktop.org/series/49055/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4753 -> Patchwork_10066 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/49055/revisions/1/mbox/ == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_10066: === IGT changes === Possible regressions {igt@pm_rpm@module-reload}: fi-cfl-guc: PASS -> FAIL == Known issues == Here are the changes found in Patchwork_10066 that come from known issues: === IGT changes === Issues hit igt@kms_pipe_crc_basic@read-crc-pipe-a: {fi-byt-clapper}: PASS -> FAIL (fdo#107362) igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: {fi-byt-clapper}: PASS -> FAIL (fdo#107362, fdo#103191) {igt@pm_rpm@module-reload}: fi-cnl-psr: PASS -> WARN (fdo#107602, fdo#107708) Possible fixes igt@kms_chamelium@hdmi-hpd-fast: fi-kbl-7500u: FAIL (fdo#103841, fdo#102672) -> SKIP igt@kms_frontbuffer_tracking@basic: fi-hsw-peppy: DMESG-WARN (fdo#102614) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b: {fi-byt-clapper}: FAIL (fdo#107362, fdo#103191) -> PASS igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c: fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS {igt@kms_psr@primary_page_flip}: fi-cnl-psr: FAIL (fdo#107336) -> PASS igt@prime_vgem@basic-fence-flip: fi-ilk-650: FAIL (fdo#104008) -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614 fdo#102672 https://bugs.freedesktop.org/show_bug.cgi?id=102672 fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191 fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008 fdo#107336 https://bugs.freedesktop.org/show_bug.cgi?id=107336 fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362 fdo#107602 https://bugs.freedesktop.org/show_bug.cgi?id=107602 fdo#107708 https://bugs.freedesktop.org/show_bug.cgi?id=107708 == Participating hosts (49 -> 45) == Additional (1): fi-skl-6700hq Missing(5): fi-kbl-7560u fi-byt-squawks fi-bsw-cyan fi-ilk-m540 fi-hsw-4200u == Build changes == * Linux: CI_DRM_4753 -> Patchwork_10066 CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_10066: 79975fae5a1293a653417dcdae5112dd8899f5ec @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 79975fae5a12 drm/i915: Kill debugfs's i915_dpcd == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10066/issues.html ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx