Re: [Intel-gfx] [PATCH v7 2/2] drm/i915/mtl: update scaler source and destination limits for MTL

2023-01-08 Thread Lisovskiy, Stanislav
On Fri, Dec 23, 2022 at 03:05:09PM +0200, Luca Coelho wrote:
> From: Animesh Manna 
> 
> The max source and destination limits for scalers in MTL have changed.
> Use the new values accordingly.
> 
> Signed-off-by: José Roberto de Souza 
> Signed-off-by: Animesh Manna 
> Signed-off-by: Luca Coelho 
> ---
> 
> In v2:
>* No changes;
> 
> In v3:
>* Removed stray reviewed-by tag;
>* Added my s-o-b.
> 
> In v4:
>* No changes.
> 
> In v5:
>* Just resent with a cover letter.
> 
> In v6:
>* Now the correct version again (same as v4).
> 
> In v7:
>* Update to new MTL limits according to the bspec.
> 
> 
>  drivers/gpu/drm/i915/display/skl_scaler.c | 40 ++-
>  1 file changed, 32 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c 
> b/drivers/gpu/drm/i915/display/skl_scaler.c
> index d7390067b7d4..01e881293612 100644
> --- a/drivers/gpu/drm/i915/display/skl_scaler.c
> +++ b/drivers/gpu/drm/i915/display/skl_scaler.c
> @@ -87,6 +87,10 @@ static u16 skl_scaler_calc_phase(int sub, int scale, bool 
> chroma_cosited)
>  #define ICL_MAX_SRC_H 4096
>  #define ICL_MAX_DST_W 5120
>  #define ICL_MAX_DST_H 4096
> +#define MTL_MAX_SRC_W 4096
> +#define MTL_MAX_SRC_H 8192
> +#define MTL_MAX_DST_W 8192
> +#define MTL_MAX_DST_H 8192
>  #define SKL_MIN_YUV_420_SRC_W 16
>  #define SKL_MIN_YUV_420_SRC_H 16
>  
> @@ -103,6 +107,8 @@ skl_update_scaler(struct intel_crtc_state *crtc_state, 
> bool force_detach,
>   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>   const struct drm_display_mode *adjusted_mode =
>   &crtc_state->hw.adjusted_mode;
> + int min_src_w, min_src_h, min_dst_w, min_dst_h;
> + int max_src_w, max_src_h, max_dst_w, max_dst_h;
>  
>   /*
>* Src coordinates are already rotated by 270 degrees for
> @@ -157,15 +163,33 @@ skl_update_scaler(struct intel_crtc_state *crtc_state, 
> bool force_detach,
>   return -EINVAL;
>   }
>  
> + min_src_w = SKL_MIN_SRC_W;
> + min_src_h = SKL_MIN_SRC_H;
> + min_dst_w = SKL_MIN_DST_W;
> + min_dst_h = SKL_MIN_DST_H;
> +
> + if (DISPLAY_VER(dev_priv) < 11) {
> + max_src_w = SKL_MAX_SRC_W;
> + max_src_h = SKL_MAX_SRC_H;
> + max_dst_w = SKL_MAX_DST_W;
> + max_dst_h = SKL_MAX_DST_H;
> + } else if (DISPLAY_VER(dev_priv) < 14) {
> + max_src_w = ICL_MAX_SRC_W;
> + max_src_h = ICL_MAX_SRC_H;
> + max_dst_w = ICL_MAX_DST_W;
> + max_dst_h = ICL_MAX_DST_H;
> + } else {
> + max_src_w = MTL_MAX_SRC_W;
> + max_src_h = MTL_MAX_SRC_H;
> + max_dst_w = MTL_MAX_DST_W;
> + max_dst_h = MTL_MAX_DST_H;
> + }
> +
>   /* range checks */
> - if (src_w < SKL_MIN_SRC_W || src_h < SKL_MIN_SRC_H ||
> - dst_w < SKL_MIN_DST_W || dst_h < SKL_MIN_DST_H ||
> - (DISPLAY_VER(dev_priv) >= 11 &&
> -  (src_w > ICL_MAX_SRC_W || src_h > ICL_MAX_SRC_H ||
> -   dst_w > ICL_MAX_DST_W || dst_h > ICL_MAX_DST_H)) ||
> - (DISPLAY_VER(dev_priv) < 11 &&
> -  (src_w > SKL_MAX_SRC_W || src_h > SKL_MAX_SRC_H ||
> -   dst_w > SKL_MAX_DST_W || dst_h > SKL_MAX_DST_H))) {
> + if (src_w < min_src_w || src_h < min_src_h ||
> + dst_w < min_dst_w || dst_h < min_dst_h ||
> + src_w > max_src_w || src_h > max_src_h ||
> + dst_w > max_dst_w || dst_h > max_dst_h) {

Yep, that looks definitely way cleaner than initial condition.

Reviewed-by: Stanislav Lisovskiy 

>   drm_dbg_kms(&dev_priv->drm,
>   "scaler_user index %u.%u: src %ux%u dst %ux%u "
>   "size is out of scaler range\n",
> -- 
> 2.39.0
> 


Re: [Intel-gfx] [PATCH v7 1/2] drm/i915/mtl: limit second scaler vertical scaling in ver >= 14

2023-01-08 Thread Lisovskiy, Stanislav
On Fri, Dec 23, 2022 at 03:05:08PM +0200, Luca Coelho wrote:
> In newer hardware versions (i.e. display version >= 14), the second
> scaler doesn't support vertical scaling.
> 
> The current implementation of the scaling limits is simplified and
> only occurs when the planes are created, so we don't know which scaler
> is being used.
> 
> In order to handle separate scaling limits for horizontal and vertical
> scaling, and different limits per scaler, split the checks in two
> phases.  We first do a simple check during plane creation and use the
> best-case scenario (because we don't know the scaler that may be used
> at a later point) and then do a more specific check when the scalers
> are actually being set up.
> 
> Signed-off-by: Luca Coelho 
> ---
> 
> In v2:
>* fix DRM_PLANE_NO_SCALING renamed macros;
> 
> In v3:
>* No changes.
> 
> In v4:
>* Got rid of the changes in the general planes max scale code;
>* Added a couple of FIXMEs;
>* Made intel_atomic_setup_scaler() return an int with errors;
> 
> In v5:
>* Just resent with a cover letter.
> 
> In v6:
>* Now the correct version again (same as v4).
> 
> In v7:
>* Constify a couple of local variables;
>* Return -EINVAL, instead of -EOPNOTSUPP and -EBUSY;
>* Add another FIXME;
>* Remove unnecessary undoing of change in error cases.
> 
> 
>  drivers/gpu/drm/i915/display/intel_atomic.c | 85 ++---
>  1 file changed, 75 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c 
> b/drivers/gpu/drm/i915/display/intel_atomic.c
> index 6621aa245caf..a9a3f3715279 100644
> --- a/drivers/gpu/drm/i915/display/intel_atomic.c
> +++ b/drivers/gpu/drm/i915/display/intel_atomic.c
> @@ -41,6 +41,7 @@
>  #include "intel_global_state.h"
>  #include "intel_hdcp.h"
>  #include "intel_psr.h"
> +#include "intel_fb.h"
>  #include "skl_universal_plane.h"
>  
>  /**
> @@ -310,11 +311,11 @@ intel_crtc_destroy_state(struct drm_crtc *crtc,
>   kfree(crtc_state);
>  }
>  
> -static void intel_atomic_setup_scaler(struct intel_crtc_scaler_state 
> *scaler_state,
> -   int num_scalers_need, struct intel_crtc 
> *intel_crtc,
> -   const char *name, int idx,
> -   struct intel_plane_state *plane_state,
> -   int *scaler_id)
> +static int intel_atomic_setup_scaler(struct intel_crtc_scaler_state 
> *scaler_state,
> +  int num_scalers_need, struct intel_crtc 
> *intel_crtc,
> +  const char *name, int idx,
> +  struct intel_plane_state *plane_state,
> +  int *scaler_id)
>  {
>   struct drm_i915_private *dev_priv = to_i915(intel_crtc->base.dev);
>   int j;
> @@ -334,7 +335,7 @@ static void intel_atomic_setup_scaler(struct 
> intel_crtc_scaler_state *scaler_sta
>  
>   if (drm_WARN(&dev_priv->drm, *scaler_id < 0,
>"Cannot find scaler for %s:%d\n", name, idx))
> - return;
> + return -EINVAL;

As I understand that change is a bit irrelevant to the patch topic,
ideally it should be reflected in the commit message, that we are doing
this and most importantly why.
However I'm not going to be picky here, as it is a small thing, just
as a side note.

Reviewed-by: Stanislav Lisovskiy 

>  
>   /* set scaler mode */
>   if (plane_state && plane_state->hw.fb &&
> @@ -375,9 +376,71 @@ static void intel_atomic_setup_scaler(struct 
> intel_crtc_scaler_state *scaler_sta
>   mode = SKL_PS_SCALER_MODE_DYN;
>   }
>  
> + /*
> +  * FIXME: we should also check the scaler factors for pfit, so
> +  * this shouldn't be tied directly to planes.
> +  */
> + if (plane_state && plane_state->hw.fb) {
> + const struct drm_framebuffer *fb = plane_state->hw.fb;
> + const struct drm_rect *src = &plane_state->uapi.src;
> + const struct drm_rect *dst = &plane_state->uapi.dst;
> + int hscale, vscale, max_vscale, max_hscale;
> +
> + /*
> +  * FIXME: When two scalers are needed, but only one of
> +  * them needs to downscale, we should make sure that
> +  * the one that needs downscaling support is assigned
> +  * as the first scaler, so we don't reject downscaling
> +  * unnecessarily.
> +  */
> +
> + if (DISPLAY_VER(dev_priv) >= 14) {
> + /*
> +  * On versions 14 and up, only the first
> +  * scaler supports a vertical scaling factor
> +  * of more than 1.0, while a horizontal
> +  * scaling factor of 3.0 is supported.
> +  */
> + max_hscale = 0x3 - 1;
> + if (*scaler_id == 0)
>

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/display: assume some pixelrate for src smaller than 1 (rev3)

2023-01-08 Thread Patchwork
== Series Details ==

Series: drm/i915/display: assume some pixelrate for src smaller than 1 (rev3)
URL   : https://patchwork.freedesktop.org/series/112396/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12556_full -> Patchwork_112396v3_full


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/index.html

Participating hosts (14 -> 11)
--

  Missing(3): pig-skl-6260u pig-kbl-iris pig-glk-j5005 

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_fair@basic-deadline:
- shard-glk:  [PASS][1] -> [FAIL][2] ([i915#2846])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-glk2/igt@gem_exec_f...@basic-deadline.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/shard-glk6/igt@gem_exec_f...@basic-deadline.html

  * igt@gem_exec_fair@basic-none@vcs0:
- shard-glk:  [PASS][3] -> [FAIL][4] ([i915#2842])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-glk6/igt@gem_exec_fair@basic-n...@vcs0.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/shard-glk3/igt@gem_exec_fair@basic-n...@vcs0.html

  * igt@perf@stress-open-close:
- shard-glk:  [PASS][5] -> [INCOMPLETE][6] ([i915#5213])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-glk3/igt@p...@stress-open-close.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/shard-glk4/igt@p...@stress-open-close.html

  * igt@runner@aborted:
- shard-glk:  NOTRUN -> [FAIL][7] ([i915#4312])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/shard-glk4/igt@run...@aborted.html

  
 Possible fixes 

  * igt@drm_read@short-buffer-block:
- {shard-rkl}:[SKIP][8] ([i915#4098]) -> [PASS][9]
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-5/igt@drm_r...@short-buffer-block.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/shard-rkl-6/igt@drm_r...@short-buffer-block.html

  * igt@fbdev@info:
- {shard-rkl}:[SKIP][10] ([i915#2582]) -> [PASS][11]
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-4/igt@fb...@info.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/shard-rkl-6/igt@fb...@info.html

  * igt@gem_eio@reset-stress:
- {shard-dg1}:[FAIL][12] ([i915#5784]) -> [PASS][13]
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-dg1-17/igt@gem_...@reset-stress.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/shard-dg1-16/igt@gem_...@reset-stress.html

  * igt@gem_eio@suspend:
- {shard-rkl}:[FAIL][14] ([i915#7052]) -> [PASS][15]
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-3/igt@gem_...@suspend.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/shard-rkl-1/igt@gem_...@suspend.html

  * igt@gem_exec_fair@basic-flow@rcs0:
- {shard-rkl}:[FAIL][16] ([i915#2842]) -> [PASS][17]
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-2/igt@gem_exec_fair@basic-f...@rcs0.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/shard-rkl-6/igt@gem_exec_fair@basic-f...@rcs0.html

  * igt@gem_exec_reloc@basic-gtt-cpu:
- {shard-rkl}:[SKIP][18] ([i915#3281]) -> [PASS][19] +1 similar 
issue
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-4/igt@gem_exec_re...@basic-gtt-cpu.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/shard-rkl-5/igt@gem_exec_re...@basic-gtt-cpu.html

  * igt@gem_tiled_pread_basic:
- {shard-rkl}:[SKIP][20] ([i915#3282]) -> [PASS][21] +1 similar 
issue
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-4/igt@gem_tiled_pread_basic.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/shard-rkl-5/igt@gem_tiled_pread_basic.html

  * igt@gen9_exec_parse@bb-start-far:
- {shard-rkl}:[SKIP][22] ([i915#2527]) -> [PASS][23]
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-4/igt@gen9_exec_pa...@bb-start-far.html
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/shard-rkl-5/igt@gen9_exec_pa...@bb-start-far.html

  * igt@i915_hangman@gt-engine-error@bcs0:
- {shard-rkl}:[SKIP][24] ([i915#6258]) -> [PASS][25]
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-5/igt@i915_hangman@gt-engine-er...@bcs0.html
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/shard-rkl-4/igt@i915_hangman@gt-engine-er...@bcs0.html

  * igt@i915_pm_rpm@drm-resources-equal:
- {shard-rkl}:[SKIP][26] ([fdo#109308]) -> [PAS

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/display: assume some pixelrate for src smaller than 1 (rev3)

2023-01-08 Thread Patchwork
== Series Details ==

Series: drm/i915/display: assume some pixelrate for src smaller than 1 (rev3)
URL   : https://patchwork.freedesktop.org/series/112396/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12556 -> Patchwork_112396v3


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/index.html

Participating hosts (39 -> 38)
--

  Additional (2): fi-kbl-soraka bat-rpls-2 
  Missing(3): fi-bsw-kefka fi-apl-guc fi-snb-2520m 

Possible new issues
---

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

### IGT changes ###

 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_selftest@live@gt_heartbeat:
- {bat-kbl-2}:[PASS][1] -> [DMESG-FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/bat-kbl-2/igt@i915_selftest@live@gt_heartbeat.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/bat-kbl-2/igt@i915_selftest@live@gt_heartbeat.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-b-dp-3:
- {bat-dg2-9}:[PASS][3] -> [FAIL][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/bat-dg2-9/igt@kms_pipe_crc_basic@suspend-read-...@pipe-b-dp-3.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/bat-dg2-9/igt@kms_pipe_crc_basic@suspend-read-...@pipe-b-dp-3.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_gttfill@basic:
- fi-kbl-soraka:  NOTRUN -> [SKIP][5] ([fdo#109271]) +7 similar issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/fi-kbl-soraka/igt@gem_exec_gttf...@basic.html

  * igt@gem_huc_copy@huc-copy:
- fi-kbl-soraka:  NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#2190])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html

  * igt@gem_lmem_swapping@basic:
- fi-kbl-soraka:  NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#4613]) +3 
similar issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html

  * igt@i915_selftest@live@gt_heartbeat:
- fi-kbl-soraka:  NOTRUN -> [DMESG-FAIL][8] ([i915#5334])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@gt_pm:
- fi-kbl-soraka:  NOTRUN -> [DMESG-FAIL][9] ([i915#1886])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@guc_multi_lrc:
- fi-kbl-soraka:  NOTRUN -> [INCOMPLETE][10] ([i915#7640])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/fi-kbl-soraka/igt@i915_selftest@live@guc_multi_lrc.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-soraka:  NOTRUN -> [SKIP][11] ([fdo#109271] / [fdo#111827]) +7 
similar issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/fi-kbl-soraka/igt@kms_chamel...@hdmi-hpd-fast.html

  
 Possible fixes 

  * igt@i915_selftest@live@gt_lrc:
- {bat-rpls-1}:   [INCOMPLETE][12] ([i915#4983]) -> [PASS][13]
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/bat-rpls-1/igt@i915_selftest@live@gt_lrc.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v3/bat-rpls-1/igt@i915_selftest@live@gt_lrc.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i9

[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/display: assume some pixelrate for src smaller than 1 (rev2)

2023-01-08 Thread Patchwork
== Series Details ==

Series: drm/i915/display: assume some pixelrate for src smaller than 1 (rev2)
URL   : https://patchwork.freedesktop.org/series/112396/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_12556 -> Patchwork_112396v2


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_112396v2 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_112396v2, 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_112396v2/index.html

Participating hosts (39 -> 39)
--

  Additional (2): fi-kbl-soraka bat-rpls-2 
  Missing(2): fi-bsw-kefka fi-snb-2520m 

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@evict:
- fi-kbl-soraka:  NOTRUN -> [INCOMPLETE][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v2/fi-kbl-soraka/igt@i915_selftest@l...@evict.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_gttfill@basic:
- fi-kbl-soraka:  NOTRUN -> [SKIP][2] ([fdo#109271]) +7 similar issues
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v2/fi-kbl-soraka/igt@gem_exec_gttf...@basic.html

  * igt@gem_huc_copy@huc-copy:
- fi-kbl-soraka:  NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#2190])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v2/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html

  * igt@gem_lmem_swapping@basic:
- fi-kbl-soraka:  NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#4613]) +3 
similar issues
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v2/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html

  * igt@i915_selftest@live@gt_heartbeat:
- fi-kbl-soraka:  NOTRUN -> [DMESG-FAIL][5] ([i915#5334])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v2/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@gt_pm:
- fi-kbl-soraka:  NOTRUN -> [DMESG-FAIL][6] ([i915#1886])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v2/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@migrate:
- bat-adlp-4: [PASS][7] -> [DMESG-FAIL][8] ([i915#7699])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/bat-adlp-4/igt@i915_selftest@l...@migrate.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v2/bat-adlp-4/igt@i915_selftest@l...@migrate.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-soraka:  NOTRUN -> [SKIP][9] ([fdo#109271] / [fdo#111827]) +7 
similar issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v2/fi-kbl-soraka/igt@kms_chamel...@hdmi-hpd-fast.html

  * 
igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size:
- fi-bsw-n3050:   [PASS][10] -> [FAIL][11] ([i915#6298])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cur...@atomic-transitions-varying-size.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v2/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cur...@atomic-transitions-varying-size.html

  
 Possible fixes 

  * igt@i915_selftest@live@gt_lrc:
- {bat-rpls-1}:   [INCOMPLETE][12] ([i915#4983]) -> [PASS][13]
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/bat-rpls-1/igt@i915_selftest@live@gt_lrc.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_112396v2/bat-rpls-1/igt@i915_selftest@live@gt_lrc.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555

[Intel-gfx] [PATCH v2] drm/i915/display: assume some pixelrate for src smaller than 1

2023-01-08 Thread Juha-Pekka Heikkila
intel_adjusted_rate() didn't take into account src rectangle
can be less than 1 in with or height.

Signed-off-by: Juha-Pekka Heikkila 
---
 drivers/gpu/drm/i915/display/intel_atomic_plane.c | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c 
b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 10e1fc9d0698..cd24d069b6eb 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -144,7 +144,7 @@ unsigned int intel_adjusted_rate(const struct drm_rect *src,
 const struct drm_rect *dst,
 unsigned int rate)
 {
-   unsigned int src_w, src_h, dst_w, dst_h;
+   unsigned int src_w, src_h, dst_w, dst_h, dst_wh;
 
src_w = drm_rect_width(src) >> 16;
src_h = drm_rect_height(src) >> 16;
@@ -155,8 +155,10 @@ unsigned int intel_adjusted_rate(const struct drm_rect 
*src,
dst_w = min(src_w, dst_w);
dst_h = min(src_h, dst_h);
 
-   return DIV_ROUND_UP_ULL(mul_u32_u32(rate, src_w * src_h),
-   dst_w * dst_h);
+   /* in case src contained only fractional part */
+   dst_wh = max(dst_w * dst_h, 1U);
+
+   return DIV_ROUND_UP_ULL(mul_u32_u32(rate, src_w * src_h), dst_wh);
 }
 
 unsigned int intel_plane_pixel_rate(const struct intel_crtc_state *crtc_state,
-- 
2.39.0