* [Intel-gfx] [PATCH v3 1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes @ 2020-10-28 21:42 Manasi Navare 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 2/6] drm/i915: Add hw.pipe_mode to allow bigjoiner pipe/transcoder split Manasi Navare ` (6 more replies) 0 siblings, 7 replies; 9+ messages in thread From: Manasi Navare @ 2020-10-28 21:42 UTC (permalink / raw) To: intel-gfx No functional changes. This patch just moves some mode checks around to prepare for adding bigjoiner related mode validation Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_dp.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index 818daab252f3..2c29e7f5281b 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -721,6 +721,9 @@ intel_dp_mode_valid(struct drm_connector *connector, if (mode->flags & DRM_MODE_FLAG_DBLSCAN) return MODE_NO_DBLESCAN; + if (mode->flags & DRM_MODE_FLAG_DBLCLK) + return MODE_H_ILLEGAL; + if (intel_dp_is_edp(intel_dp) && fixed_mode) { if (mode->hdisplay > fixed_mode->hdisplay) return MODE_PANEL; @@ -731,6 +734,9 @@ intel_dp_mode_valid(struct drm_connector *connector, target_clock = fixed_mode->clock; } + if (mode->clock < 10000) + return MODE_CLOCK_LOW; + max_link_clock = intel_dp_max_link_rate(intel_dp); max_lanes = intel_dp_max_lane_count(intel_dp); @@ -771,12 +777,6 @@ intel_dp_mode_valid(struct drm_connector *connector, target_clock > max_dotclk) return MODE_CLOCK_HIGH; - if (mode->clock < 10000) - return MODE_CLOCK_LOW; - - if (mode->flags & DRM_MODE_FLAG_DBLCLK) - return MODE_H_ILLEGAL; - status = intel_dp_mode_valid_downstream(intel_connector, mode, target_clock); if (status != MODE_OK) -- 2.19.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Intel-gfx] [PATCH v3 2/6] drm/i915: Add hw.pipe_mode to allow bigjoiner pipe/transcoder split 2020-10-28 21:42 [Intel-gfx] [PATCH v3 1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes Manasi Navare @ 2020-10-28 21:42 ` Manasi Navare 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 3/6] drm/i915: Add pipe_mode readout in verify_crtc_state Manasi Navare ` (5 subsequent siblings) 6 siblings, 0 replies; 9+ messages in thread From: Manasi Navare @ 2020-10-28 21:42 UTC (permalink / raw) To: intel-gfx From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> With bigjoiner, there will be 2 pipes driving 2 halves of 1 transcoder, because of this, we need a pipe_mode for various calculations, including for example watermarks, plane clipping, etc. v7: * Remove redundant comment (Ville) * Just keep mode instead of pipe_mode (Ville) v6: * renaming in separate function, only pipe_mode here (Ville) * Add description (Maarten) v5: * Rebase (Manasi) v4: * Manual rebase (Manasi) v3: * Change state to crtc_state, fix rebase err (Manasi) v2: * Manual Rebase (Manasi) Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> Reviewed-by: Animesh Manna <animesh.manna@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_display.c | 38 +++++----- .../drm/i915/display/intel_display_types.h | 11 ++- drivers/gpu/drm/i915/intel_pm.c | 76 +++++++++---------- 3 files changed, 68 insertions(+), 57 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index f41b6f8b5618..756683b2a5be 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -6167,18 +6167,16 @@ skl_update_scaler(struct intel_crtc_state *crtc_state, bool force_detach, static int skl_update_scaler_crtc(struct intel_crtc_state *crtc_state) { - const struct drm_display_mode *adjusted_mode = - &crtc_state->hw.adjusted_mode; + const struct drm_display_mode *pipe_mode = &crtc_state->hw.pipe_mode; int width, height; if (crtc_state->pch_pfit.enabled) { width = drm_rect_width(&crtc_state->pch_pfit.dst); height = drm_rect_height(&crtc_state->pch_pfit.dst); } else { - width = adjusted_mode->crtc_hdisplay; - height = adjusted_mode->crtc_vdisplay; + width = pipe_mode->crtc_hdisplay; + height = pipe_mode->crtc_vdisplay; } - return skl_update_scaler(crtc_state, !crtc_state->hw.active, SKL_CRTC_INDEX, &crtc_state->scaler_state.scaler_id, @@ -8192,7 +8190,7 @@ static bool intel_crtc_supports_double_wide(const struct intel_crtc *crtc) static u32 ilk_pipe_pixel_rate(const struct intel_crtc_state *crtc_state) { - u32 pixel_rate = crtc_state->hw.adjusted_mode.crtc_clock; + u32 pixel_rate = crtc_state->hw.pipe_mode.crtc_clock; unsigned int pipe_w, pipe_h, pfit_w, pfit_h; /* @@ -8229,7 +8227,7 @@ static void intel_crtc_compute_pixel_rate(struct intel_crtc_state *crtc_state) if (HAS_GMCH(dev_priv)) /* FIXME calculate proper pipe pixel rate for GMCH pfit */ crtc_state->pixel_rate = - crtc_state->hw.adjusted_mode.crtc_clock; + crtc_state->hw.pipe_mode.crtc_clock; else crtc_state->pixel_rate = ilk_pipe_pixel_rate(crtc_state); @@ -8239,7 +8237,7 @@ static int intel_crtc_compute_config(struct intel_crtc *crtc, struct intel_crtc_state *pipe_config) { struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); - const struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode; + const struct drm_display_mode *pipe_mode = &pipe_config->hw.pipe_mode; int clock_limit = dev_priv->max_dotclk_freq; if (INTEL_GEN(dev_priv) < 4) { @@ -8250,16 +8248,16 @@ static int intel_crtc_compute_config(struct intel_crtc *crtc, * is > 90% of the (display) core speed. */ if (intel_crtc_supports_double_wide(crtc) && - adjusted_mode->crtc_clock > clock_limit) { + pipe_mode->crtc_clock > clock_limit) { clock_limit = dev_priv->max_dotclk_freq; pipe_config->double_wide = true; } } - if (adjusted_mode->crtc_clock > clock_limit) { + if (pipe_mode->crtc_clock > clock_limit) { drm_dbg_kms(&dev_priv->drm, "requested pixel clock (%d kHz) too high (max: %d kHz, double wide: %s)\n", - adjusted_mode->crtc_clock, clock_limit, + pipe_mode->crtc_clock, clock_limit, yesno(pipe_config->double_wide)); return -EINVAL; } @@ -8302,7 +8300,7 @@ static int intel_crtc_compute_config(struct intel_crtc *crtc, * WaPruneModeWithIncorrectHsyncOffset:ctg,elk,ilk,snb,ivb,vlv,hsw. */ if ((INTEL_GEN(dev_priv) > 4 || IS_G4X(dev_priv)) && - adjusted_mode->crtc_hsync_start == adjusted_mode->crtc_hdisplay) + pipe_mode->crtc_hsync_start == pipe_mode->crtc_hdisplay) return -EINVAL; intel_crtc_compute_pixel_rate(pipe_config); @@ -12821,15 +12819,15 @@ static bool c8_planes_changed(const struct intel_crtc_state *new_crtc_state) static u16 hsw_linetime_wm(const struct intel_crtc_state *crtc_state) { - const struct drm_display_mode *adjusted_mode = - &crtc_state->hw.adjusted_mode; + const struct drm_display_mode *pipe_mode = + &crtc_state->hw.pipe_mode; int linetime_wm; if (!crtc_state->hw.enable) return 0; - linetime_wm = DIV_ROUND_CLOSEST(adjusted_mode->crtc_htotal * 1000 * 8, - adjusted_mode->crtc_clock); + linetime_wm = DIV_ROUND_CLOSEST(pipe_mode->crtc_htotal * 1000 * 8, + pipe_mode->crtc_clock); return min(linetime_wm, 0x1ff); } @@ -13459,8 +13457,9 @@ intel_crtc_copy_uapi_to_hw_state(struct intel_crtc_state *crtc_state) crtc_state->hw.enable = crtc_state->uapi.enable; crtc_state->hw.active = crtc_state->uapi.active; crtc_state->hw.mode = crtc_state->uapi.mode; - crtc_state->hw.adjusted_mode = crtc_state->uapi.adjusted_mode; + crtc_state->hw.pipe_mode = crtc_state->hw.adjusted_mode = crtc_state->uapi.adjusted_mode; crtc_state->hw.scaling_filter = crtc_state->uapi.scaling_filter; + intel_crtc_copy_uapi_to_hw_state_nomodeset(crtc_state); } @@ -13657,6 +13656,9 @@ intel_modeset_pipe_config(struct intel_crtc_state *pipe_config) "hw max bpp: %i, pipe bpp: %i, dithering: %i\n", base_bpp, pipe_config->pipe_bpp, pipe_config->dither); + /* without bigjoiner, pipe_mode == adjusted_mode */ + pipe_config->hw.pipe_mode = pipe_config->hw.adjusted_mode; + return 0; } @@ -18914,6 +18916,8 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev) */ crtc_state->inherited = true; + crtc_state->hw.pipe_mode = crtc_state->hw.adjusted_mode; + intel_crtc_compute_pixel_rate(crtc_state); intel_crtc_update_active_timings(crtc_state); diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h index f6f0626649e0..b526afee595c 100644 --- a/drivers/gpu/drm/i915/display/intel_display_types.h +++ b/drivers/gpu/drm/i915/display/intel_display_types.h @@ -817,15 +817,22 @@ struct intel_crtc_state { * The following members are used to verify the hardware state: * - enable * - active - * - mode / adjusted_mode + * - mode/adjusted_mode * - color property blobs. * * During initial hw readout, they need to be copied to uapi. + * + * Bigjoiner will allow a transcoder mode that spans 2 pipes; + * Use the pipe_mode for calculations like watermarks, pipe + * scaler, and bandwidth. + * + * Use adjusted_mode for things that need to know the full + * mode on the transcoder, which spans all pipes. */ struct { bool active, enable; struct drm_property_blob *degamma_lut, *gamma_lut, *ctm; - struct drm_display_mode mode, adjusted_mode; + struct drm_display_mode mode, pipe_mode, adjusted_mode; enum drm_scaling_filter scaling_filter; } hw; diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 0ef01a01ef8d..18e52763dfec 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -899,12 +899,12 @@ static void pnv_update_wm(struct intel_crtc *unused_crtc) crtc = single_enabled_crtc(dev_priv); if (crtc) { - const struct drm_display_mode *adjusted_mode = - &crtc->config->hw.adjusted_mode; + const struct drm_display_mode *pipe_mode = + &crtc->config->hw.pipe_mode; const struct drm_framebuffer *fb = crtc->base.primary->state->fb; int cpp = fb->format->cpp[0]; - int clock = adjusted_mode->crtc_clock; + int clock = pipe_mode->crtc_clock; /* Display SR */ wm = intel_calculate_wm(clock, &pnv_display_wm, @@ -1135,8 +1135,8 @@ static u16 g4x_compute_wm(const struct intel_crtc_state *crtc_state, { struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane); struct drm_i915_private *dev_priv = to_i915(plane->base.dev); - const struct drm_display_mode *adjusted_mode = - &crtc_state->hw.adjusted_mode; + const struct drm_display_mode *pipe_mode = + &crtc_state->hw.pipe_mode; unsigned int latency = dev_priv->wm.pri_latency[level] * 10; unsigned int clock, htotal, cpp, width, wm; @@ -1163,8 +1163,8 @@ static u16 g4x_compute_wm(const struct intel_crtc_state *crtc_state, level != G4X_WM_LEVEL_NORMAL) cpp = max(cpp, 4u); - clock = adjusted_mode->crtc_clock; - htotal = adjusted_mode->crtc_htotal; + clock = pipe_mode->crtc_clock; + htotal = pipe_mode->crtc_htotal; width = drm_rect_width(&plane_state->uapi.dst); @@ -1660,8 +1660,8 @@ static u16 vlv_compute_wm_level(const struct intel_crtc_state *crtc_state, { struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane); struct drm_i915_private *dev_priv = to_i915(plane->base.dev); - const struct drm_display_mode *adjusted_mode = - &crtc_state->hw.adjusted_mode; + const struct drm_display_mode *pipe_mode = + &crtc_state->hw.pipe_mode; unsigned int clock, htotal, cpp, width, wm; if (dev_priv->wm.pri_latency[level] == 0) @@ -1671,8 +1671,8 @@ static u16 vlv_compute_wm_level(const struct intel_crtc_state *crtc_state, return 0; cpp = plane_state->hw.fb->format->cpp[0]; - clock = adjusted_mode->crtc_clock; - htotal = adjusted_mode->crtc_htotal; + clock = pipe_mode->crtc_clock; + htotal = pipe_mode->crtc_htotal; width = crtc_state->pipe_src_w; if (plane->id == PLANE_CURSOR) { @@ -2261,12 +2261,12 @@ static void i965_update_wm(struct intel_crtc *unused_crtc) if (crtc) { /* self-refresh has much higher latency */ static const int sr_latency_ns = 12000; - const struct drm_display_mode *adjusted_mode = - &crtc->config->hw.adjusted_mode; + const struct drm_display_mode *pipe_mode = + &crtc->config->hw.pipe_mode; const struct drm_framebuffer *fb = crtc->base.primary->state->fb; - int clock = adjusted_mode->crtc_clock; - int htotal = adjusted_mode->crtc_htotal; + int clock = pipe_mode->crtc_clock; + int htotal = pipe_mode->crtc_htotal; int hdisplay = crtc->config->pipe_src_w; int cpp = fb->format->cpp[0]; int entries; @@ -2345,8 +2345,8 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc) fifo_size = dev_priv->display.get_fifo_size(dev_priv, PLANE_A); crtc = intel_get_crtc_for_plane(dev_priv, PLANE_A); if (intel_crtc_active(crtc)) { - const struct drm_display_mode *adjusted_mode = - &crtc->config->hw.adjusted_mode; + const struct drm_display_mode *pipe_mode = + &crtc->config->hw.pipe_mode; const struct drm_framebuffer *fb = crtc->base.primary->state->fb; int cpp; @@ -2356,7 +2356,7 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc) else cpp = fb->format->cpp[0]; - planea_wm = intel_calculate_wm(adjusted_mode->crtc_clock, + planea_wm = intel_calculate_wm(pipe_mode->crtc_clock, wm_info, fifo_size, cpp, pessimal_latency_ns); enabled = crtc; @@ -2372,8 +2372,8 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc) fifo_size = dev_priv->display.get_fifo_size(dev_priv, PLANE_B); crtc = intel_get_crtc_for_plane(dev_priv, PLANE_B); if (intel_crtc_active(crtc)) { - const struct drm_display_mode *adjusted_mode = - &crtc->config->hw.adjusted_mode; + const struct drm_display_mode *pipe_mode = + &crtc->config->hw.pipe_mode; const struct drm_framebuffer *fb = crtc->base.primary->state->fb; int cpp; @@ -2383,7 +2383,7 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc) else cpp = fb->format->cpp[0]; - planeb_wm = intel_calculate_wm(adjusted_mode->crtc_clock, + planeb_wm = intel_calculate_wm(pipe_mode->crtc_clock, wm_info, fifo_size, cpp, pessimal_latency_ns); if (enabled == NULL) @@ -2421,12 +2421,12 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc) if (HAS_FW_BLC(dev_priv) && enabled) { /* self-refresh has much higher latency */ static const int sr_latency_ns = 6000; - const struct drm_display_mode *adjusted_mode = - &enabled->config->hw.adjusted_mode; + const struct drm_display_mode *pipe_mode = + &enabled->config->hw.pipe_mode; const struct drm_framebuffer *fb = enabled->base.primary->state->fb; - int clock = adjusted_mode->crtc_clock; - int htotal = adjusted_mode->crtc_htotal; + int clock = pipe_mode->crtc_clock; + int htotal = pipe_mode->crtc_htotal; int hdisplay = enabled->config->pipe_src_w; int cpp; int entries; @@ -2474,7 +2474,7 @@ static void i845_update_wm(struct intel_crtc *unused_crtc) { struct drm_i915_private *dev_priv = to_i915(unused_crtc->base.dev); struct intel_crtc *crtc; - const struct drm_display_mode *adjusted_mode; + const struct drm_display_mode *pipe_mode; u32 fwater_lo; int planea_wm; @@ -2482,8 +2482,8 @@ static void i845_update_wm(struct intel_crtc *unused_crtc) if (crtc == NULL) return; - adjusted_mode = &crtc->config->hw.adjusted_mode; - planea_wm = intel_calculate_wm(adjusted_mode->crtc_clock, + pipe_mode = &crtc->config->hw.pipe_mode; + planea_wm = intel_calculate_wm(pipe_mode->crtc_clock, &i845_wm_info, dev_priv->display.get_fifo_size(dev_priv, PLANE_A), 4, pessimal_latency_ns); @@ -2573,7 +2573,7 @@ static u32 ilk_compute_pri_wm(const struct intel_crtc_state *crtc_state, return method1; method2 = ilk_wm_method2(crtc_state->pixel_rate, - crtc_state->hw.adjusted_mode.crtc_htotal, + crtc_state->hw.pipe_mode.crtc_htotal, drm_rect_width(&plane_state->uapi.dst), cpp, mem_value); @@ -2601,7 +2601,7 @@ static u32 ilk_compute_spr_wm(const struct intel_crtc_state *crtc_state, method1 = ilk_wm_method1(crtc_state->pixel_rate, cpp, mem_value); method2 = ilk_wm_method2(crtc_state->pixel_rate, - crtc_state->hw.adjusted_mode.crtc_htotal, + crtc_state->hw.pipe_mode.crtc_htotal, drm_rect_width(&plane_state->uapi.dst), cpp, mem_value); return min(method1, method2); @@ -2626,7 +2626,7 @@ static u32 ilk_compute_cur_wm(const struct intel_crtc_state *crtc_state, cpp = plane_state->hw.fb->format->cpp[0]; return ilk_wm_method2(crtc_state->pixel_rate, - crtc_state->hw.adjusted_mode.crtc_htotal, + crtc_state->hw.pipe_mode.crtc_htotal, drm_rect_width(&plane_state->uapi.dst), cpp, mem_value); } @@ -3883,7 +3883,7 @@ static bool skl_crtc_can_enable_sagv(const struct intel_crtc_state *crtc_state) if (!crtc_state->hw.active) return true; - if (crtc_state->hw.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE) + if (crtc_state->hw.pipe_mode.flags & DRM_MODE_FLAG_INTERLACE) return false; intel_atomic_crtc_state_for_each_plane_state(plane, plane_state, crtc_state) { @@ -4174,8 +4174,8 @@ skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv, */ total_slice_mask = dbuf_slice_mask; for_each_new_intel_crtc_in_state(intel_state, crtc, crtc_state, i) { - const struct drm_display_mode *adjusted_mode = - &crtc_state->hw.adjusted_mode; + const struct drm_display_mode *pipe_mode = + &crtc_state->hw.pipe_mode; enum pipe pipe = crtc->pipe; int hdisplay, vdisplay; u32 pipe_dbuf_slice_mask; @@ -4205,7 +4205,7 @@ skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv, if (dbuf_slice_mask != pipe_dbuf_slice_mask) continue; - drm_mode_get_hv_timing(adjusted_mode, &hdisplay, &vdisplay); + drm_mode_get_hv_timing(pipe_mode, &hdisplay, &vdisplay); total_width_in_range += hdisplay; @@ -5093,7 +5093,7 @@ intel_get_linetime_us(const struct intel_crtc_state *crtc_state) if (drm_WARN_ON(&dev_priv->drm, pixel_rate == 0)) return u32_to_fixed16(0); - crtc_htotal = crtc_state->hw.adjusted_mode.crtc_htotal; + crtc_htotal = crtc_state->hw.pipe_mode.crtc_htotal; linetime_us = div_fixed16(crtc_htotal * 1000, pixel_rate); return linetime_us; @@ -5282,14 +5282,14 @@ static void skl_compute_plane_wm(const struct intel_crtc_state *crtc_state, method1 = skl_wm_method1(dev_priv, wp->plane_pixel_rate, wp->cpp, latency, wp->dbuf_block_size); method2 = skl_wm_method2(wp->plane_pixel_rate, - crtc_state->hw.adjusted_mode.crtc_htotal, + crtc_state->hw.pipe_mode.crtc_htotal, latency, wp->plane_blocks_per_line); if (wp->y_tiled) { selected_result = max_fixed16(method2, wp->y_tile_minimum); } else { - if ((wp->cpp * crtc_state->hw.adjusted_mode.crtc_htotal / + if ((wp->cpp * crtc_state->hw.pipe_mode.crtc_htotal / wp->dbuf_block_size < 1) && (wp->plane_bytes_per_line / wp->dbuf_block_size < 1)) { selected_result = method2; -- 2.19.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Intel-gfx] [PATCH v3 3/6] drm/i915: Add pipe_mode readout in verify_crtc_state 2020-10-28 21:42 [Intel-gfx] [PATCH v3 1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes Manasi Navare 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 2/6] drm/i915: Add hw.pipe_mode to allow bigjoiner pipe/transcoder split Manasi Navare @ 2020-10-28 21:42 ` Manasi Navare 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 4/6] drm/i915: Pass intel_atomic_state instead of drm_atomic_state Manasi Navare ` (4 subsequent siblings) 6 siblings, 0 replies; 9+ messages in thread From: Manasi Navare @ 2020-10-28 21:42 UTC (permalink / raw) To: intel-gfx This adds new pipe_mode readout in verify_crtc_state() Here it is just adjusted_mode without bigjoiner. Bigjoiner pipe_mode readout will be added later. While at it, create a separate intel_encoder_get_config() function that calls encoder->get_config hook. This is needed so that later we can add beigjoienr related readout here. Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> --- drivers/gpu/drm/i915/display/intel_display.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 756683b2a5be..50522c8a6ff0 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -8220,6 +8220,16 @@ static u32 ilk_pipe_pixel_rate(const struct intel_crtc_state *crtc_state) pfit_w * pfit_h); } +static void intel_encoder_get_config(struct intel_encoder *encoder, + struct intel_crtc_state *crtc_state) +{ + struct drm_display_mode *pipe_mode = &crtc_state->hw.pipe_mode; + + encoder->get_config(encoder, crtc_state); + + *pipe_mode = crtc_state->hw.adjusted_mode; +} + static void intel_crtc_compute_pixel_rate(struct intel_crtc_state *crtc_state) { struct drm_i915_private *dev_priv = to_i915(crtc_state->uapi.crtc->dev); @@ -12473,7 +12483,7 @@ intel_encoder_current_mode(struct intel_encoder *encoder) return NULL; } - encoder->get_config(encoder, crtc_state); + intel_encoder_get_config(encoder, crtc_state); intel_mode_from_pipe_config(mode, crtc_state); @@ -14522,7 +14532,7 @@ verify_crtc_state(struct intel_crtc *crtc, pipe_name(pipe)); if (active) - encoder->get_config(encoder, pipe_config); + intel_encoder_get_config(encoder, pipe_config); } intel_crtc_compute_pixel_rate(pipe_config); @@ -18837,7 +18847,7 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev) crtc_state = to_intel_crtc_state(crtc->base.state); encoder->base.crtc = &crtc->base; - encoder->get_config(encoder, crtc_state); + intel_encoder_get_config(encoder, crtc_state); if (encoder->sync_state) encoder->sync_state(encoder, crtc_state); } else { -- 2.19.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Intel-gfx] [PATCH v3 4/6] drm/i915: Pass intel_atomic_state instead of drm_atomic_state 2020-10-28 21:42 [Intel-gfx] [PATCH v3 1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes Manasi Navare 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 2/6] drm/i915: Add hw.pipe_mode to allow bigjoiner pipe/transcoder split Manasi Navare 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 3/6] drm/i915: Add pipe_mode readout in verify_crtc_state Manasi Navare @ 2020-10-28 21:42 ` Manasi Navare 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 5/6] drm/i915/dp: Prep for bigjoiner atomic check Manasi Navare ` (3 subsequent siblings) 6 siblings, 0 replies; 9+ messages in thread From: Manasi Navare @ 2020-10-28 21:42 UTC (permalink / raw) To: intel-gfx No functional changes, to align with previous cleanups pass intel_atomic_state instead of drm_atomic_state. Also pass this intel_atomic_state with crtc_state to some of the atomic_check functions. Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> --- drivers/gpu/drm/i915/display/intel_display.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 50522c8a6ff0..78708552095a 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -12671,7 +12671,7 @@ static bool encoders_cloneable(const struct intel_encoder *a, b->cloneable & (1 << a->type)); } -static bool check_single_encoder_cloning(struct drm_atomic_state *state, +static bool check_single_encoder_cloning(struct intel_atomic_state *state, struct intel_crtc *crtc, struct intel_encoder *encoder) { @@ -12680,7 +12680,7 @@ static bool check_single_encoder_cloning(struct drm_atomic_state *state, struct drm_connector_state *connector_state; int i; - for_each_new_connector_in_state(state, connector, connector_state, i) { + for_each_new_connector_in_state(&state->base, connector, connector_state, i) { if (connector_state->crtc != &crtc->base) continue; @@ -13531,10 +13531,10 @@ intel_crtc_prepare_cleared_state(struct intel_crtc_state *crtc_state) } static int -intel_modeset_pipe_config(struct intel_crtc_state *pipe_config) +intel_modeset_pipe_config(struct intel_atomic_state *state, + struct intel_crtc_state *pipe_config) { struct drm_crtc *crtc = pipe_config->uapi.crtc; - struct drm_atomic_state *state = pipe_config->uapi.state; struct drm_i915_private *i915 = to_i915(pipe_config->uapi.crtc->dev); struct drm_connector *connector; struct drm_connector_state *connector_state; @@ -13576,7 +13576,7 @@ intel_modeset_pipe_config(struct intel_crtc_state *pipe_config) &pipe_config->pipe_src_w, &pipe_config->pipe_src_h); - for_each_new_connector_in_state(state, connector, connector_state, i) { + for_each_new_connector_in_state(&state->base, connector, connector_state, i) { struct intel_encoder *encoder = to_intel_encoder(connector_state->best_encoder); @@ -13614,7 +13614,7 @@ intel_modeset_pipe_config(struct intel_crtc_state *pipe_config) * adjust it according to limitations or connector properties, and also * a chance to reject the mode entirely. */ - for_each_new_connector_in_state(state, connector, connector_state, i) { + for_each_new_connector_in_state(&state->base, connector, connector_state, i) { struct intel_encoder *encoder = to_intel_encoder(connector_state->best_encoder); @@ -15238,7 +15238,7 @@ static int intel_atomic_check(struct drm_device *dev, if (!new_crtc_state->hw.enable) continue; - ret = intel_modeset_pipe_config(new_crtc_state); + ret = intel_modeset_pipe_config(state, new_crtc_state); if (ret) goto fail; } -- 2.19.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Intel-gfx] [PATCH v3 5/6] drm/i915/dp: Prep for bigjoiner atomic check 2020-10-28 21:42 [Intel-gfx] [PATCH v3 1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes Manasi Navare ` (2 preceding siblings ...) 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 4/6] drm/i915: Pass intel_atomic_state instead of drm_atomic_state Manasi Navare @ 2020-10-28 21:42 ` Manasi Navare 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 6/6] drm/i915/dp: Allow big joiner modes in intel_dp_mode_valid(), v3 Manasi Navare ` (2 subsequent siblings) 6 siblings, 0 replies; 9+ messages in thread From: Manasi Navare @ 2020-10-28 21:42 UTC (permalink / raw) To: intel-gfx No functional changes here. Just pass intel_atomic_state along with crtc_state to certain atomic_check functions. This will lay the foundation for adding bigjoiner master/slave states in atomic check. v2: * More prep with intel_atomic_state (Ville) Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> --- drivers/gpu/drm/i915/display/intel_atomic.c | 9 +++++---- drivers/gpu/drm/i915/display/intel_atomic.h | 3 ++- drivers/gpu/drm/i915/display/intel_display.c | 21 ++++++++++++-------- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c b/drivers/gpu/drm/i915/display/intel_atomic.c index 86be032bcf96..e243ce97b534 100644 --- a/drivers/gpu/drm/i915/display/intel_atomic.c +++ b/drivers/gpu/drm/i915/display/intel_atomic.c @@ -270,14 +270,15 @@ void intel_crtc_free_hw_state(struct intel_crtc_state *crtc_state) intel_crtc_put_color_blobs(crtc_state); } -void intel_crtc_copy_color_blobs(struct intel_crtc_state *crtc_state) +void intel_crtc_copy_color_blobs(struct intel_crtc_state *crtc_state, + const struct intel_crtc_state *from_crtc_state) { drm_property_replace_blob(&crtc_state->hw.degamma_lut, - crtc_state->uapi.degamma_lut); + from_crtc_state->uapi.degamma_lut); drm_property_replace_blob(&crtc_state->hw.gamma_lut, - crtc_state->uapi.gamma_lut); + from_crtc_state->uapi.gamma_lut); drm_property_replace_blob(&crtc_state->hw.ctm, - crtc_state->uapi.ctm); + from_crtc_state->uapi.ctm); } /** diff --git a/drivers/gpu/drm/i915/display/intel_atomic.h b/drivers/gpu/drm/i915/display/intel_atomic.h index 285de07011dc..62a3365ed5e6 100644 --- a/drivers/gpu/drm/i915/display/intel_atomic.h +++ b/drivers/gpu/drm/i915/display/intel_atomic.h @@ -43,7 +43,8 @@ struct drm_crtc_state *intel_crtc_duplicate_state(struct drm_crtc *crtc); void intel_crtc_destroy_state(struct drm_crtc *crtc, struct drm_crtc_state *state); void intel_crtc_free_hw_state(struct intel_crtc_state *crtc_state); -void intel_crtc_copy_color_blobs(struct intel_crtc_state *crtc_state); +void intel_crtc_copy_color_blobs(struct intel_crtc_state *crtc_state, + const struct intel_crtc_state *from_crtc_state); struct drm_atomic_state *intel_atomic_state_alloc(struct drm_device *dev); void intel_atomic_state_free(struct drm_atomic_state *state); void intel_atomic_state_clear(struct drm_atomic_state *state); diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 78708552095a..233bd894c5c3 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -13456,13 +13456,17 @@ static bool check_digital_port_conflicts(struct intel_atomic_state *state) } static void -intel_crtc_copy_uapi_to_hw_state_nomodeset(struct intel_crtc_state *crtc_state) +intel_crtc_copy_uapi_to_hw_state_nomodeset(struct intel_atomic_state *state, + struct intel_crtc_state *crtc_state) { - intel_crtc_copy_color_blobs(crtc_state); + const struct intel_crtc_state *from_crtc_state = crtc_state; + + intel_crtc_copy_color_blobs(crtc_state, from_crtc_state); } static void -intel_crtc_copy_uapi_to_hw_state(struct intel_crtc_state *crtc_state) +intel_crtc_copy_uapi_to_hw_state(struct intel_atomic_state *state, + struct intel_crtc_state *crtc_state) { crtc_state->hw.enable = crtc_state->uapi.enable; crtc_state->hw.active = crtc_state->uapi.active; @@ -13470,7 +13474,7 @@ intel_crtc_copy_uapi_to_hw_state(struct intel_crtc_state *crtc_state) crtc_state->hw.pipe_mode = crtc_state->hw.adjusted_mode = crtc_state->uapi.adjusted_mode; crtc_state->hw.scaling_filter = crtc_state->uapi.scaling_filter; - intel_crtc_copy_uapi_to_hw_state_nomodeset(crtc_state); + intel_crtc_copy_uapi_to_hw_state_nomodeset(state, crtc_state); } static void intel_crtc_copy_hw_to_uapi_state(struct intel_crtc_state *crtc_state) @@ -13493,7 +13497,8 @@ static void intel_crtc_copy_hw_to_uapi_state(struct intel_crtc_state *crtc_state } static int -intel_crtc_prepare_cleared_state(struct intel_crtc_state *crtc_state) +intel_crtc_prepare_cleared_state(struct intel_atomic_state *state, + struct intel_crtc_state *crtc_state) { struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); @@ -13525,7 +13530,7 @@ intel_crtc_prepare_cleared_state(struct intel_crtc_state *crtc_state) memcpy(crtc_state, saved_state, sizeof(*crtc_state)); kfree(saved_state); - intel_crtc_copy_uapi_to_hw_state(crtc_state); + intel_crtc_copy_uapi_to_hw_state(state, crtc_state); return 0; } @@ -15226,12 +15231,12 @@ static int intel_atomic_check(struct drm_device *dev, new_crtc_state, i) { if (!needs_modeset(new_crtc_state)) { /* Light copy */ - intel_crtc_copy_uapi_to_hw_state_nomodeset(new_crtc_state); + intel_crtc_copy_uapi_to_hw_state_nomodeset(state, new_crtc_state); continue; } - ret = intel_crtc_prepare_cleared_state(new_crtc_state); + ret = intel_crtc_prepare_cleared_state(state, new_crtc_state); if (ret) goto fail; -- 2.19.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Intel-gfx] [PATCH v3 6/6] drm/i915/dp: Allow big joiner modes in intel_dp_mode_valid(), v3. 2020-10-28 21:42 [Intel-gfx] [PATCH v3 1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes Manasi Navare ` (3 preceding siblings ...) 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 5/6] drm/i915/dp: Prep for bigjoiner atomic check Manasi Navare @ 2020-10-28 21:42 ` Manasi Navare 2020-10-28 23:00 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v3,1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes Patchwork 2020-10-28 23:31 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork 6 siblings, 0 replies; 9+ messages in thread From: Manasi Navare @ 2020-10-28 21:42 UTC (permalink / raw) To: intel-gfx From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Small changes to intel_dp_mode_valid(), allow listing modes that can only be supported in the bigjoiner configuration, which is not supported yet. v12: * slice_count logic simplify (Ville) * Fix unnecessary changes in downstream_mode_valid (Ville) v11: * Make intel_dp_can_bigjoiner non static so it can be used in intel_display (Manasi) v10: * Simplify logic (Ville) * Allow bigjoiner on edp (Ville) v9: * Restric Bigjoiner on PORT A (Ville) v8: * use source dotclock for max dotclock (Manasi) v7: * Add can_bigjoiner() helper (Ville) * Pass bigjoiner to plane_size validation (Ville) v6: * Rebase after dp_downstream mode valid changes (Manasi) v5: * Increase max plane width to support 8K with bigjoiner (Maarten) v4: * Rebase (Manasi) Changes since v1: - Disallow bigjoiner on eDP. Changes since v2: - Rename intel_dp_downstream_max_dotclock to intel_dp_max_dotclock, and split off the downstream and source checking to its own function. (Ville) v3: * Rebase (Manasi) Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_display.c | 5 +- drivers/gpu/drm/i915/display/intel_display.h | 3 +- drivers/gpu/drm/i915/display/intel_dp.c | 77 ++++++++++++++++---- drivers/gpu/drm/i915/display/intel_dp.h | 1 + drivers/gpu/drm/i915/display/intel_dp_mst.c | 2 +- drivers/gpu/drm/i915/display/intel_dsi.c | 2 +- drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +- 7 files changed, 72 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 233bd894c5c3..45d8deafe89a 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -17770,7 +17770,8 @@ intel_mode_valid(struct drm_device *dev, enum drm_mode_status intel_mode_valid_max_plane_size(struct drm_i915_private *dev_priv, - const struct drm_display_mode *mode) + const struct drm_display_mode *mode, + bool bigjoiner) { int plane_width_max, plane_height_max; @@ -17787,7 +17788,7 @@ intel_mode_valid_max_plane_size(struct drm_i915_private *dev_priv, * too big for that. */ if (INTEL_GEN(dev_priv) >= 11) { - plane_width_max = 5120; + plane_width_max = 5120 << bigjoiner; plane_height_max = 4320; } else { plane_width_max = 5120; diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h index 1b946209e06b..4f8dee9dfb4d 100644 --- a/drivers/gpu/drm/i915/display/intel_display.h +++ b/drivers/gpu/drm/i915/display/intel_display.h @@ -497,7 +497,8 @@ u32 intel_plane_fb_max_stride(struct drm_i915_private *dev_priv, bool intel_plane_can_remap(const struct intel_plane_state *plane_state); enum drm_mode_status intel_mode_valid_max_plane_size(struct drm_i915_private *dev_priv, - const struct drm_display_mode *mode); + const struct drm_display_mode *mode, + bool bigjoiner); enum phy intel_port_to_phy(struct drm_i915_private *i915, enum port port); bool is_trans_port_sync_mode(const struct intel_crtc_state *state); diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index 2c29e7f5281b..2336b204a3e9 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -254,6 +254,17 @@ intel_dp_max_data_rate(int max_link_clock, int max_lanes) return max_link_clock * max_lanes; } +bool intel_dp_can_bigjoiner(struct intel_dp *intel_dp) +{ + struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); + struct intel_encoder *encoder = &intel_dig_port->base; + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); + + return INTEL_GEN(dev_priv) >= 12 || + (INTEL_GEN(dev_priv) == 11 && + encoder->port != PORT_A); +} + static int cnl_max_source_rate(struct intel_dp *intel_dp) { struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); @@ -519,7 +530,8 @@ small_joiner_ram_size_bits(struct drm_i915_private *i915) static u16 intel_dp_dsc_get_output_bpp(struct drm_i915_private *i915, u32 link_clock, u32 lane_count, - u32 mode_clock, u32 mode_hdisplay) + u32 mode_clock, u32 mode_hdisplay, + bool bigjoiner) { u32 bits_per_pixel, max_bpp_small_joiner_ram; int i; @@ -537,6 +549,10 @@ static u16 intel_dp_dsc_get_output_bpp(struct drm_i915_private *i915, /* Small Joiner Check: output bpp <= joiner RAM (bits) / Horiz. width */ max_bpp_small_joiner_ram = small_joiner_ram_size_bits(i915) / mode_hdisplay; + + if (bigjoiner) + max_bpp_small_joiner_ram *= 2; + drm_dbg_kms(&i915->drm, "Max small joiner bpp: %u\n", max_bpp_small_joiner_ram); @@ -546,6 +562,15 @@ static u16 intel_dp_dsc_get_output_bpp(struct drm_i915_private *i915, */ bits_per_pixel = min(bits_per_pixel, max_bpp_small_joiner_ram); + if (bigjoiner) { + u32 max_bpp_bigjoiner = + i915->max_cdclk_freq * 48 / + intel_dp_mode_to_fec_clock(mode_clock); + + DRM_DEBUG_KMS("Max big joiner bpp: %u\n", max_bpp_bigjoiner); + bits_per_pixel = min(bits_per_pixel, max_bpp_bigjoiner); + } + /* Error out if the max bpp is less than smallest allowed valid bpp */ if (bits_per_pixel < valid_dsc_bpp[0]) { drm_dbg_kms(&i915->drm, "Unsupported BPP %u, min %u\n", @@ -568,7 +593,8 @@ static u16 intel_dp_dsc_get_output_bpp(struct drm_i915_private *i915, } static u8 intel_dp_dsc_get_slice_count(struct intel_dp *intel_dp, - int mode_clock, int mode_hdisplay) + int mode_clock, int mode_hdisplay, + bool bigjoiner) { struct drm_i915_private *i915 = dp_to_i915(intel_dp); u8 min_slice_count, i; @@ -595,12 +621,18 @@ static u8 intel_dp_dsc_get_slice_count(struct intel_dp *intel_dp, /* Find the closest match to the valid slice count values */ for (i = 0; i < ARRAY_SIZE(valid_dsc_slicecount); i++) { - if (valid_dsc_slicecount[i] > - drm_dp_dsc_sink_max_slice_count(intel_dp->dsc_dpcd, - false)) + u8 test_slice_count = valid_dsc_slicecount[i] << bigjoiner; + + if (test_slice_count > + drm_dp_dsc_sink_max_slice_count(intel_dp->dsc_dpcd, false)) break; - if (min_slice_count <= valid_dsc_slicecount[i]) - return valid_dsc_slicecount[i]; + + /* big joiner needs small joiner to be enabled */ + if (bigjoiner && test_slice_count < 4) + continue; + + if (min_slice_count <= test_slice_count) + return test_slice_count; } drm_dbg_kms(&i915->drm, "Unsupported Slice Count %d\n", @@ -717,6 +749,7 @@ intel_dp_mode_valid(struct drm_connector *connector, u16 dsc_max_output_bpp = 0; u8 dsc_slice_count = 0; enum drm_mode_status status; + bool dsc = false, bigjoiner = false; if (mode->flags & DRM_MODE_FLAG_DBLSCAN) return MODE_NO_DBLESCAN; @@ -737,6 +770,13 @@ intel_dp_mode_valid(struct drm_connector *connector, if (mode->clock < 10000) return MODE_CLOCK_LOW; + if (target_clock > max_dotclk && intel_dp_can_bigjoiner(intel_dp)) { + bigjoiner = true; + max_dotclk *= 2; + } + if (target_clock > max_dotclk) + return MODE_CLOCK_HIGH; + max_link_clock = intel_dp_max_link_rate(intel_dp); max_lanes = intel_dp_max_lane_count(intel_dp); @@ -765,16 +805,23 @@ intel_dp_mode_valid(struct drm_connector *connector, max_link_clock, max_lanes, target_clock, - mode->hdisplay) >> 4; + mode->hdisplay, + bigjoiner) >> 4; dsc_slice_count = intel_dp_dsc_get_slice_count(intel_dp, target_clock, - mode->hdisplay); + mode->hdisplay, + bigjoiner); } + + dsc = dsc_max_output_bpp && dsc_slice_count; } - if ((mode_rate > max_rate && !(dsc_max_output_bpp && dsc_slice_count)) || - target_clock > max_dotclk) + /* big joiner configuration needs DSC */ + if (bigjoiner && !dsc) + return MODE_CLOCK_HIGH; + + if (mode_rate > max_rate && !dsc) return MODE_CLOCK_HIGH; status = intel_dp_mode_valid_downstream(intel_connector, @@ -782,7 +829,7 @@ intel_dp_mode_valid(struct drm_connector *connector, if (status != MODE_OK) return status; - return intel_mode_valid_max_plane_size(dev_priv, mode); + return intel_mode_valid_max_plane_size(dev_priv, mode, bigjoiner); } u32 intel_dp_pack_aux(const u8 *src, int src_bytes) @@ -2297,11 +2344,13 @@ static int intel_dp_dsc_compute_config(struct intel_dp *intel_dp, pipe_config->port_clock, pipe_config->lane_count, adjusted_mode->crtc_clock, - adjusted_mode->crtc_hdisplay); + adjusted_mode->crtc_hdisplay, + false); dsc_dp_slice_count = intel_dp_dsc_get_slice_count(intel_dp, adjusted_mode->crtc_clock, - adjusted_mode->crtc_hdisplay); + adjusted_mode->crtc_hdisplay, + false); if (!dsc_max_output_bpp || !dsc_dp_slice_count) { drm_dbg_kms(&dev_priv->drm, "Compressed BPP/Slice Count not supported\n"); diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h index 3f862b4fd34f..b871a09b6901 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.h +++ b/drivers/gpu/drm/i915/display/intel_dp.h @@ -106,6 +106,7 @@ bool intel_dp_source_supports_hbr3(struct intel_dp *intel_dp); bool intel_dp_get_colorimetry_status(struct intel_dp *intel_dp); int intel_dp_link_required(int pixel_clock, int bpp); int intel_dp_max_data_rate(int max_link_clock, int max_lanes); +bool intel_dp_can_bigjoiner(struct intel_dp *intel_dp); bool intel_dp_needs_vsc_sdp(const struct intel_crtc_state *crtc_state, const struct drm_connector_state *conn_state); void intel_dp_compute_psr_vsc_sdp(struct intel_dp *intel_dp, diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c index c8fcec4d0788..0c8684634fca 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c @@ -714,7 +714,7 @@ intel_dp_mst_mode_valid_ctx(struct drm_connector *connector, return 0; } - *status = intel_mode_valid_max_plane_size(dev_priv, mode); + *status = intel_mode_valid_max_plane_size(dev_priv, mode, false); return 0; } diff --git a/drivers/gpu/drm/i915/display/intel_dsi.c b/drivers/gpu/drm/i915/display/intel_dsi.c index afa4e6817e8c..f453ceb8d149 100644 --- a/drivers/gpu/drm/i915/display/intel_dsi.c +++ b/drivers/gpu/drm/i915/display/intel_dsi.c @@ -75,7 +75,7 @@ enum drm_mode_status intel_dsi_mode_valid(struct drm_connector *connector, return MODE_CLOCK_HIGH; } - return intel_mode_valid_max_plane_size(dev_priv, mode); + return intel_mode_valid_max_plane_size(dev_priv, mode, false); } struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi, diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c index f90838bc74fb..82674a8853c6 100644 --- a/drivers/gpu/drm/i915/display/intel_hdmi.c +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c @@ -2274,7 +2274,7 @@ intel_hdmi_mode_valid(struct drm_connector *connector, if (status != MODE_OK) return status; - return intel_mode_valid_max_plane_size(dev_priv, mode); + return intel_mode_valid_max_plane_size(dev_priv, mode, false); } bool intel_hdmi_deep_color_possible(const struct intel_crtc_state *crtc_state, -- 2.19.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v3,1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes 2020-10-28 21:42 [Intel-gfx] [PATCH v3 1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes Manasi Navare ` (4 preceding siblings ...) 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 6/6] drm/i915/dp: Allow big joiner modes in intel_dp_mode_valid(), v3 Manasi Navare @ 2020-10-28 23:00 ` Patchwork 2020-10-28 23:31 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork 6 siblings, 0 replies; 9+ messages in thread From: Patchwork @ 2020-10-28 23:00 UTC (permalink / raw) To: Navare, Manasi; +Cc: intel-gfx == Series Details == Series: series starting with [v3,1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes URL : https://patchwork.freedesktop.org/series/83173/ State : warning == Summary == $ dim checkpatch origin/drm-tip 29b307e050f4 drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes 7b5090a4c566 drm/i915: Add hw.pipe_mode to allow bigjoiner pipe/transcoder split -:141: CHECK:MULTIPLE_ASSIGNMENTS: multiple assignments should be avoided #141: FILE: drivers/gpu/drm/i915/display/intel_display.c:13460: + crtc_state->hw.pipe_mode = crtc_state->hw.adjusted_mode = crtc_state->uapi.adjusted_mode; total: 0 errors, 0 warnings, 1 checks, 357 lines checked f4900e21412a drm/i915: Add pipe_mode readout in verify_crtc_state a5f14d0b240f drm/i915: Pass intel_atomic_state instead of drm_atomic_state 779bec036a45 drm/i915/dp: Prep for bigjoiner atomic check 1388a0c36ca0 drm/i915/dp: Allow big joiner modes in intel_dp_mode_valid(), v3. _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [v3,1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes 2020-10-28 21:42 [Intel-gfx] [PATCH v3 1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes Manasi Navare ` (5 preceding siblings ...) 2020-10-28 23:00 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v3,1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes Patchwork @ 2020-10-28 23:31 ` Patchwork 2020-10-28 23:44 ` Navare, Manasi D 6 siblings, 1 reply; 9+ messages in thread From: Patchwork @ 2020-10-28 23:31 UTC (permalink / raw) To: Navare, Manasi; +Cc: intel-gfx [-- Attachment #1.1: Type: text/plain, Size: 11082 bytes --] == Series Details == Series: series starting with [v3,1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes URL : https://patchwork.freedesktop.org/series/83173/ State : failure == Summary == CI Bug Log - changes from CI_DRM_9214 -> Patchwork_18802 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_18802 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_18802, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/index.html Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_18802: ### IGT changes ### #### Possible regressions #### * igt@kms_force_connector_basic@force-load-detect: - fi-hsw-4770: [PASS][1] -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-hsw-4770/igt@kms_force_connector_basic@force-load-detect.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-hsw-4770/igt@kms_force_connector_basic@force-load-detect.html - fi-elk-e7500: [PASS][3] -> [FAIL][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-elk-e7500/igt@kms_force_connector_basic@force-load-detect.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-elk-e7500/igt@kms_force_connector_basic@force-load-detect.html - fi-ivb-3770: [PASS][5] -> [FAIL][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-ivb-3770/igt@kms_force_connector_basic@force-load-detect.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-ivb-3770/igt@kms_force_connector_basic@force-load-detect.html - fi-byt-j1900: [PASS][7] -> [FAIL][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-byt-j1900/igt@kms_force_connector_basic@force-load-detect.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-byt-j1900/igt@kms_force_connector_basic@force-load-detect.html - fi-blb-e6850: [PASS][9] -> [INCOMPLETE][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-blb-e6850/igt@kms_force_connector_basic@force-load-detect.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-blb-e6850/igt@kms_force_connector_basic@force-load-detect.html - fi-ilk-650: [PASS][11] -> [FAIL][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-ilk-650/igt@kms_force_connector_basic@force-load-detect.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-ilk-650/igt@kms_force_connector_basic@force-load-detect.html - fi-snb-2520m: [PASS][13] -> [FAIL][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-snb-2520m/igt@kms_force_connector_basic@force-load-detect.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-snb-2520m/igt@kms_force_connector_basic@force-load-detect.html - fi-bwr-2160: [PASS][15] -> [INCOMPLETE][16] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-bwr-2160/igt@kms_force_connector_basic@force-load-detect.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-bwr-2160/igt@kms_force_connector_basic@force-load-detect.html - fi-snb-2600: [PASS][17] -> [FAIL][18] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-snb-2600/igt@kms_force_connector_basic@force-load-detect.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-snb-2600/igt@kms_force_connector_basic@force-load-detect.html * igt@runner@aborted: - fi-pnv-d510: NOTRUN -> [FAIL][19] [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-pnv-d510/igt@runner@aborted.html - fi-gdg-551: NOTRUN -> [FAIL][20] [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-gdg-551/igt@runner@aborted.html - fi-bwr-2160: NOTRUN -> [FAIL][21] [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-bwr-2160/igt@runner@aborted.html - fi-blb-e6850: NOTRUN -> [FAIL][22] [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-blb-e6850/igt@runner@aborted.html New tests --------- New tests have been introduced between CI_DRM_9214 and Patchwork_18802: ### New CI tests (1) ### * boot: - Statuses : 39 pass(s) - Exec time: [0.0] s Known issues ------------ Here are the changes found in Patchwork_18802 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_module_load@reload: - fi-tgl-u2: [PASS][23] -> [DMESG-WARN][24] ([i915#1982] / [k.org#205379]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-u2/igt@i915_module_load@reload.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-u2/igt@i915_module_load@reload.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic: - fi-bsw-kefka: [PASS][25] -> [DMESG-WARN][26] ([i915#1982]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html * igt@kms_flip@basic-flip-vs-dpms@c-edp1: - fi-tgl-y: [PASS][27] -> [DMESG-WARN][28] ([i915#1982]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-y/igt@kms_flip@basic-flip-vs-dpms@c-edp1.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-y/igt@kms_flip@basic-flip-vs-dpms@c-edp1.html * igt@kms_force_connector_basic@force-load-detect: - fi-pnv-d510: [PASS][29] -> [INCOMPLETE][30] ([i915#299]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-pnv-d510/igt@kms_force_connector_basic@force-load-detect.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-pnv-d510/igt@kms_force_connector_basic@force-load-detect.html - fi-gdg-551: [PASS][31] -> [INCOMPLETE][32] ([i915#172]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-gdg-551/igt@kms_force_connector_basic@force-load-detect.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-gdg-551/igt@kms_force_connector_basic@force-load-detect.html * igt@prime_self_import@basic-with_two_bos: - fi-tgl-y: [PASS][33] -> [DMESG-WARN][34] ([i915#402]) +1 similar issue [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html #### Possible fixes #### * igt@debugfs_test@read_all_entries: - fi-tgl-y: [DMESG-WARN][35] ([i915#402]) -> [PASS][36] +2 similar issues [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-y/igt@debugfs_test@read_all_entries.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-y/igt@debugfs_test@read_all_entries.html - {fi-kbl-7560u}: [INCOMPLETE][37] ([i915#2417]) -> [PASS][38] [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-kbl-7560u/igt@debugfs_test@read_all_entries.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-kbl-7560u/igt@debugfs_test@read_all_entries.html * igt@i915_pm_rpm@basic-pci-d3-state: - fi-apl-guc: [DMESG-WARN][39] ([i915#1635] / [i915#1982]) -> [PASS][40] [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-apl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-apl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html * igt@kms_busy@basic@flip: - fi-kbl-soraka: [DMESG-WARN][41] ([i915#1982]) -> [PASS][42] [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-kbl-soraka/igt@kms_busy@basic@flip.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-kbl-soraka/igt@kms_busy@basic@flip.html - fi-tgl-y: [DMESG-WARN][43] ([i915#1982]) -> [PASS][44] [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-y/igt@kms_busy@basic@flip.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-y/igt@kms_busy@basic@flip.html #### Warnings #### * igt@gem_exec_suspend@basic-s3: - fi-tgl-y: [DMESG-WARN][45] ([i915#2411]) -> [DMESG-WARN][46] ([i915#2411] / [i915#402]) [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-y/igt@gem_exec_suspend@basic-s3.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-y/igt@gem_exec_suspend@basic-s3.html * igt@i915_pm_rpm@module-reload: - fi-tgl-y: [DMESG-WARN][47] ([i915#2411]) -> [DMESG-WARN][48] ([i915#1982] / [i915#2411]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-y/igt@i915_pm_rpm@module-reload.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-y/igt@i915_pm_rpm@module-reload.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635 [i915#172]: https://gitlab.freedesktop.org/drm/intel/issues/172 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411 [i915#2417]: https://gitlab.freedesktop.org/drm/intel/issues/2417 [i915#299]: https://gitlab.freedesktop.org/drm/intel/issues/299 [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402 [k.org#205379]: https://bugzilla.kernel.org/show_bug.cgi?id=205379 Participating hosts (41 -> 39) ------------------------------ Missing (2): fi-bsw-cyan fi-bdw-samus Build changes ------------- * Linux: CI_DRM_9214 -> Patchwork_18802 CI-20190529: 20190529 CI_DRM_9214: c485050a56cf0edaed15b8297d5540bd0f4310b9 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5827: 7fd7e3fb8b42eb4e62a4575f6edc5a048e5bec3d @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_18802: 1388a0c36ca0a250e8f8dc39240096d044d5cb65 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 1388a0c36ca0 drm/i915/dp: Allow big joiner modes in intel_dp_mode_valid(), v3. 779bec036a45 drm/i915/dp: Prep for bigjoiner atomic check a5f14d0b240f drm/i915: Pass intel_atomic_state instead of drm_atomic_state f4900e21412a drm/i915: Add pipe_mode readout in verify_crtc_state 7b5090a4c566 drm/i915: Add hw.pipe_mode to allow bigjoiner pipe/transcoder split 29b307e050f4 drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/index.html [-- Attachment #1.2: Type: text/html, Size: 13028 bytes --] [-- Attachment #2: Type: text/plain, Size: 160 bytes --] _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [v3,1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes 2020-10-28 23:31 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork @ 2020-10-28 23:44 ` Navare, Manasi D 0 siblings, 0 replies; 9+ messages in thread From: Navare, Manasi D @ 2020-10-28 23:44 UTC (permalink / raw) To: intel-gfx; +Cc: Syrjala, Ville [-- Attachment #1.1: Type: text/plain, Size: 10971 bytes --] I don’t see how these failures are related to the patch series Manasi From: Patchwork <patchwork@emeril.freedesktop.org> Sent: Wednesday, October 28, 2020 4:31 PM To: Navare, Manasi D <manasi.d.navare@intel.com> Cc: intel-gfx@lists.freedesktop.org Subject: ✗ Fi.CI.BAT: failure for series starting with [v3,1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes Patch Details Series: series starting with [v3,1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes URL: https://patchwork.freedesktop.org/series/83173/ State: failure Details: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/index.html CI Bug Log - changes from CI_DRM_9214 -> Patchwork_18802 Summary FAILURE Serious unknown changes coming with Patchwork_18802 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_18802, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/index.html Possible new issues Here are the unknown changes that may have been introduced in Patchwork_18802: IGT changes Possible regressions * igt@kms_force_connector_basic@force-load-detect: * fi-hsw-4770: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-hsw-4770/igt@kms_force_connector_basic@force-load-detect.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-hsw-4770/igt@kms_force_connector_basic@force-load-detect.html> * fi-elk-e7500: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-elk-e7500/igt@kms_force_connector_basic@force-load-detect.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-elk-e7500/igt@kms_force_connector_basic@force-load-detect.html> * fi-ivb-3770: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-ivb-3770/igt@kms_force_connector_basic@force-load-detect.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-ivb-3770/igt@kms_force_connector_basic@force-load-detect.html> * fi-byt-j1900: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-byt-j1900/igt@kms_force_connector_basic@force-load-detect.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-byt-j1900/igt@kms_force_connector_basic@force-load-detect.html> * fi-blb-e6850: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-blb-e6850/igt@kms_force_connector_basic@force-load-detect.html> -> INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-blb-e6850/igt@kms_force_connector_basic@force-load-detect.html> * fi-ilk-650: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-ilk-650/igt@kms_force_connector_basic@force-load-detect.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-ilk-650/igt@kms_force_connector_basic@force-load-detect.html> * fi-snb-2520m: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-snb-2520m/igt@kms_force_connector_basic@force-load-detect.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-snb-2520m/igt@kms_force_connector_basic@force-load-detect.html> * fi-bwr-2160: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-bwr-2160/igt@kms_force_connector_basic@force-load-detect.html> -> INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-bwr-2160/igt@kms_force_connector_basic@force-load-detect.html> * fi-snb-2600: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-snb-2600/igt@kms_force_connector_basic@force-load-detect.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-snb-2600/igt@kms_force_connector_basic@force-load-detect.html> * igt@runner@aborted: * fi-pnv-d510: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-pnv-d510/igt@runner@aborted.html> * fi-gdg-551: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-gdg-551/igt@runner@aborted.html> * fi-bwr-2160: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-bwr-2160/igt@runner@aborted.html> * fi-blb-e6850: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-blb-e6850/igt@runner@aborted.html> New tests New tests have been introduced between CI_DRM_9214 and Patchwork_18802: New CI tests (1) * boot: * Statuses : 39 pass(s) * Exec time: [0.0] s Known issues Here are the changes found in Patchwork_18802 that come from known issues: IGT changes Issues hit * igt@i915_module_load@reload: * fi-tgl-u2: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-u2/igt@i915_module_load@reload.html> -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-u2/igt@i915_module_load@reload.html> (i915#1982<https://gitlab.freedesktop.org/drm/intel/issues/1982> / k.org#205379<https://bugzilla.kernel.org/show_bug.cgi?id=205379>) * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic: * fi-bsw-kefka: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html> -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html> (i915#1982<https://gitlab.freedesktop.org/drm/intel/issues/1982>) * igt@kms_flip@basic-flip-vs-dpms@c-edp1: * fi-tgl-y: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-y/igt@kms_flip@basic-flip-vs-dpms@c-edp1.html> -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-y/igt@kms_flip@basic-flip-vs-dpms@c-edp1.html> (i915#1982<https://gitlab.freedesktop.org/drm/intel/issues/1982>) * igt@kms_force_connector_basic@force-load-detect: * fi-pnv-d510: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-pnv-d510/igt@kms_force_connector_basic@force-load-detect.html> -> INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-pnv-d510/igt@kms_force_connector_basic@force-load-detect.html> (i915#299<https://gitlab.freedesktop.org/drm/intel/issues/299>) * fi-gdg-551: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-gdg-551/igt@kms_force_connector_basic@force-load-detect.html> -> INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-gdg-551/igt@kms_force_connector_basic@force-load-detect.html> (i915#172<https://gitlab.freedesktop.org/drm/intel/issues/172>) * igt@prime_self_import@basic-with_two_bos: * fi-tgl-y: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html> -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html> (i915#402<https://gitlab.freedesktop.org/drm/intel/issues/402>) +1 similar issue Possible fixes * igt@debugfs_test@read_all_entries: * fi-tgl-y: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-y/igt@debugfs_test@read_all_entries.html> (i915#402<https://gitlab.freedesktop.org/drm/intel/issues/402>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-y/igt@debugfs_test@read_all_entries.html> +2 similar issues * {fi-kbl-7560u}: INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-kbl-7560u/igt@debugfs_test@read_all_entries.html> (i915#2417<https://gitlab.freedesktop.org/drm/intel/issues/2417>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-kbl-7560u/igt@debugfs_test@read_all_entries.html> * igt@i915_pm_rpm@basic-pci-d3-state: * fi-apl-guc: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-apl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html> (i915#1635<https://gitlab.freedesktop.org/drm/intel/issues/1635> / i915#1982<https://gitlab.freedesktop.org/drm/intel/issues/1982>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-apl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html> * igt@kms_busy@basic@flip: * fi-kbl-soraka: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-kbl-soraka/igt@kms_busy@basic@flip.html> (i915#1982<https://gitlab.freedesktop.org/drm/intel/issues/1982>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-kbl-soraka/igt@kms_busy@basic@flip.html> * fi-tgl-y: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-y/igt@kms_busy@basic@flip.html> (i915#1982<https://gitlab.freedesktop.org/drm/intel/issues/1982>) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-y/igt@kms_busy@basic@flip.html> Warnings * igt@gem_exec_suspend@basic-s3: * fi-tgl-y: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-y/igt@gem_exec_suspend@basic-s3.html> (i915#2411<https://gitlab.freedesktop.org/drm/intel/issues/2411>) -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-y/igt@gem_exec_suspend@basic-s3.html> (i915#2411<https://gitlab.freedesktop.org/drm/intel/issues/2411> / i915#402<https://gitlab.freedesktop.org/drm/intel/issues/402>) * igt@i915_pm_rpm@module-reload: * fi-tgl-y: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9214/fi-tgl-y/igt@i915_pm_rpm@module-reload.html> (i915#2411<https://gitlab.freedesktop.org/drm/intel/issues/2411>) -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18802/fi-tgl-y/igt@i915_pm_rpm@module-reload.html> (i915#1982<https://gitlab.freedesktop.org/drm/intel/issues/1982> / i915#2411<https://gitlab.freedesktop.org/drm/intel/issues/2411>) {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). Participating hosts (41 -> 39) Missing (2): fi-bsw-cyan fi-bdw-samus Build changes * Linux: CI_DRM_9214 -> Patchwork_18802 CI-20190529: 20190529 CI_DRM_9214: c485050a56cf0edaed15b8297d5540bd0f4310b9 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5827: 7fd7e3fb8b42eb4e62a4575f6edc5a048e5bec3d @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_18802: 1388a0c36ca0a250e8f8dc39240096d044d5cb65 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 1388a0c36ca0 drm/i915/dp: Allow big joiner modes in intel_dp_mode_valid(), v3. 779bec036a45 drm/i915/dp: Prep for bigjoiner atomic check a5f14d0b240f drm/i915: Pass intel_atomic_state instead of drm_atomic_state f4900e21412a drm/i915: Add pipe_mode readout in verify_crtc_state 7b5090a4c566 drm/i915: Add hw.pipe_mode to allow bigjoiner pipe/transcoder split 29b307e050f4 drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes [-- Attachment #1.2: Type: text/html, Size: 32872 bytes --] [-- Attachment #2: Type: text/plain, Size: 160 bytes --] _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2020-10-28 23:44 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-10-28 21:42 [Intel-gfx] [PATCH v3 1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes Manasi Navare 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 2/6] drm/i915: Add hw.pipe_mode to allow bigjoiner pipe/transcoder split Manasi Navare 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 3/6] drm/i915: Add pipe_mode readout in verify_crtc_state Manasi Navare 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 4/6] drm/i915: Pass intel_atomic_state instead of drm_atomic_state Manasi Navare 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 5/6] drm/i915/dp: Prep for bigjoiner atomic check Manasi Navare 2020-10-28 21:42 ` [Intel-gfx] [PATCH v3 6/6] drm/i915/dp: Allow big joiner modes in intel_dp_mode_valid(), v3 Manasi Navare 2020-10-28 23:00 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v3,1/6] drm/i915/dp: Some reshuffling in mode_valid as prep for bigjoiner modes Patchwork 2020-10-28 23:31 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork 2020-10-28 23:44 ` Navare, Manasi D
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.