* [PATCH 0/9] drm/i915/pfit: Panel fitter stuff
@ 2024-10-16 14:31 Ville Syrjala
2024-10-16 14:31 ` [PATCH 1/9] drm/i915/pfit: Check pipe source size against pfit limits on ILK-BDW Ville Syrjala
` (12 more replies)
0 siblings, 13 replies; 24+ messages in thread
From: Ville Syrjala @ 2024-10-16 14:31 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Add a bunch of missing validity checks for panel fitter
usage, and extract the pane fitter code into its own file.
Ville Syrjälä (9):
drm/i915/pfit: Check pipe source size against pfit limits on ILK-BDW
drm/i915/pfit: Check pfit scaling factors on ILK-BDW
drm/i915/pfit: Reject pfit downscaling for GMCH platforms
drm/i915/pfit: Check pfit minimum timings in pre-SKL
drm/i915/pfit: Reject cloning when using pfit on ILK-BDW
drm/i915/pfit: Check pfit destination window on ILK-BDW
drm/i915/panel: Convert panel code to intel_display
drm/i915/pfit: Extract intel_pfit.c
drm/i915: Remove ckey/format checks from skl_update_scaler_plane()
drivers/gpu/drm/i915/Makefile | 1 +
drivers/gpu/drm/i915/display/icl_dsi.c | 1 +
drivers/gpu/drm/i915/display/intel_cx0_phy.c | 3 +-
drivers/gpu/drm/i915/display/intel_dp.c | 1 +
drivers/gpu/drm/i915/display/intel_dpll.c | 27 +-
drivers/gpu/drm/i915/display/intel_hdmi.c | 1 +
drivers/gpu/drm/i915/display/intel_lvds.c | 1 +
drivers/gpu/drm/i915/display/intel_panel.c | 330 +----------
drivers/gpu/drm/i915/display/intel_panel.h | 6 +-
.../gpu/drm/i915/display/intel_pch_refclk.c | 9 +-
drivers/gpu/drm/i915/display/intel_pfit.c | 553 ++++++++++++++++++
drivers/gpu/drm/i915/display/intel_pfit.h | 15 +
drivers/gpu/drm/i915/display/skl_scaler.c | 77 +--
drivers/gpu/drm/i915/display/vlv_dsi.c | 1 +
drivers/gpu/drm/xe/Makefile | 1 +
15 files changed, 628 insertions(+), 399 deletions(-)
create mode 100644 drivers/gpu/drm/i915/display/intel_pfit.c
create mode 100644 drivers/gpu/drm/i915/display/intel_pfit.h
--
2.45.2
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 1/9] drm/i915/pfit: Check pipe source size against pfit limits on ILK-BDW
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
@ 2024-10-16 14:31 ` Ville Syrjala
2024-10-22 8:24 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 2/9] drm/i915/pfit: Check pfit scaling factors " Ville Syrjala
` (11 subsequent siblings)
12 siblings, 1 reply; 24+ messages in thread
From: Ville Syrjala @ 2024-10-16 14:31 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The ILK-BDW panel fitter imposes extra limits on the maximum
pipe source size we can use. Check for that.
Only HSW/BDW are really affected by this since on older platforms
the max hdisplay/vdisplay matches the max PIPESRC. But we'll
put in the limits for all the platforms just to keep things
clear.
Note that pch_panel_fitting() is also used on SKL+, but we'll
skip the checks for those as it's all supposed to be handled
in the unified scaler code.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_panel.c | 52 +++++++++++++++++++++-
1 file changed, 51 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
index 71454ddef20f..b77017144818 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.c
+++ b/drivers/gpu/drm/i915/display/intel_panel.c
@@ -383,15 +383,54 @@ void intel_panel_add_encoder_fixed_mode(struct intel_connector *connector,
"current (BIOS)");
}
+static int intel_pch_pfit_check_src_size(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
+ int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
+ int max_src_w, max_src_h;
+
+ if (DISPLAY_VER(display) >= 8) {
+ max_src_w = 4096;
+ max_src_h = 4096;
+ } else if (DISPLAY_VER(display) >= 7) {
+ /*
+ * PF0 7x5 capable
+ * PF1 3x3 capable (could be switched to 7x5
+ * mode on HSW when PF2 unused)
+ * PF2 3x3 capable
+ *
+ * This assumes we use a 1:1 mapping between pipe and PF.
+ */
+ max_src_w = crtc->pipe == PIPE_A ? 4096 : 2048;
+ max_src_h = 4096;
+ } else {
+ max_src_w = 4096;
+ max_src_h = 4096;
+ }
+
+ if (pipe_src_w > max_src_w || pipe_src_h > max_src_h) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] source size (%dx%d) exceeds pfit max (%dx%d)\n",
+ crtc->base.base.id, crtc->base.name,
+ pipe_src_w, pipe_src_h, max_src_w, max_src_h);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
/* adjusted_mode has been preset to be the panel's fixed mode */
static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state)
{
+ struct intel_display *display = to_intel_display(crtc_state);
const struct drm_display_mode *adjusted_mode =
&crtc_state->hw.adjusted_mode;
int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
- int x, y, width, height;
+ int ret, x, y, width, height;
/* Native modes don't need fitting */
if (adjusted_mode->crtc_hdisplay == pipe_src_w &&
@@ -453,6 +492,17 @@ static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
x, y, width, height);
crtc_state->pch_pfit.enabled = true;
+ /*
+ * SKL+ have unified scalers for pipes/planes so the
+ * checks are done in a single place for all scalers.
+ */
+ if (DISPLAY_VER(display) >= 9)
+ return 0;
+
+ ret = intel_pch_pfit_check_src_size(crtc_state);
+ if (ret)
+ return ret;
+
return 0;
}
--
2.45.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 2/9] drm/i915/pfit: Check pfit scaling factors on ILK-BDW
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
2024-10-16 14:31 ` [PATCH 1/9] drm/i915/pfit: Check pipe source size against pfit limits on ILK-BDW Ville Syrjala
@ 2024-10-16 14:31 ` Ville Syrjala
2024-10-22 8:24 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 3/9] drm/i915/pfit: Reject pfit downscaling for GMCH platforms Ville Syrjala
` (10 subsequent siblings)
12 siblings, 1 reply; 24+ messages in thread
From: Ville Syrjala @ 2024-10-16 14:31 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Make sure we're not exceeding the max scaling factors for the panel
fitter on ILK-BDW. SKL+ is skipped here since this is all supposed to
be handled by the unified scaler code.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_panel.c | 39 ++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
index b77017144818..fb7def772376 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.c
+++ b/drivers/gpu/drm/i915/display/intel_panel.c
@@ -421,6 +421,41 @@ static int intel_pch_pfit_check_src_size(const struct intel_crtc_state *crtc_sta
return 0;
}
+static int intel_pch_pfit_check_scaling(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ const struct drm_rect *dst = &crtc_state->pch_pfit.dst;
+ int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
+ int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
+ int hscale, vscale, max_scale = 0x12000; /* 1.125 */
+ struct drm_rect src;
+
+ drm_rect_init(&src, 0, 0, pipe_src_w << 16, pipe_src_h << 16);
+
+ hscale = drm_rect_calc_hscale(&src, dst, 0, max_scale);
+ if (hscale < 0) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit horizontal downscaling (%d->%d) exceeds max (0x%x)\n",
+ crtc->base.base.id, crtc->base.name,
+ pipe_src_w, drm_rect_width(dst),
+ max_scale);
+ return hscale;
+ }
+
+ vscale = drm_rect_calc_vscale(&src, dst, 0, max_scale);
+ if (vscale < 0) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit vertical downscaling (%d->%d) exceeds max (0x%x)\n",
+ crtc->base.base.id, crtc->base.name,
+ pipe_src_h, drm_rect_height(dst),
+ max_scale);
+ return vscale;
+ }
+
+ return 0;
+}
+
/* adjusted_mode has been preset to be the panel's fixed mode */
static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state)
@@ -503,6 +538,10 @@ static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
if (ret)
return ret;
+ ret = intel_pch_pfit_check_scaling(crtc_state);
+ if (ret)
+ return ret;
+
return 0;
}
--
2.45.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 3/9] drm/i915/pfit: Reject pfit downscaling for GMCH platforms
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
2024-10-16 14:31 ` [PATCH 1/9] drm/i915/pfit: Check pipe source size against pfit limits on ILK-BDW Ville Syrjala
2024-10-16 14:31 ` [PATCH 2/9] drm/i915/pfit: Check pfit scaling factors " Ville Syrjala
@ 2024-10-16 14:31 ` Ville Syrjala
2024-10-22 8:25 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 4/9] drm/i915/pfit: Check pfit minimum timings in pre-SKL Ville Syrjala
` (9 subsequent siblings)
12 siblings, 1 reply; 24+ messages in thread
From: Ville Syrjala @ 2024-10-16 14:31 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Gen2/3 pfit doesn't support downscaling at all, so reject it.
On i965+ downscaling is supported by the hardware (max scale
factor < 2.0), but as downscaling increases the effective
pixel rate we can't safely allow it unless
intel_crtc_compute_pixel_rate() gets fixed. Probably the
best solution would be to calculate (at least an
apporiximate) pfit destination window and use
ilk_pipe_pixel_rate() for all platforms. For now reject
downscaling on all gmch platforms.
The intel ddx has a similar check for this in userspace,
modesetting ddx does not. And presumably wayland compositors
also do not make such assumptions in userspace.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_panel.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
index fb7def772376..89cac3b3fd02 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.c
+++ b/drivers/gpu/drm/i915/display/intel_panel.c
@@ -681,6 +681,7 @@ static void i9xx_scale_aspect(struct intel_crtc_state *crtc_state,
static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state)
{
+ struct intel_display *display = to_intel_display(crtc_state);
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
u32 pfit_control = 0, pfit_pgm_ratios = 0, border = 0;
@@ -693,6 +694,25 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
adjusted_mode->crtc_vdisplay == pipe_src_h)
goto out;
+ /*
+ * TODO: implement downscaling for i965+. Need to account
+ * for downscaling in intel_crtc_compute_pixel_rate().
+ */
+ if (adjusted_mode->crtc_hdisplay < pipe_src_w) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit horizontal downscaling (%d->%d) not supported\n",
+ crtc->base.base.id, crtc->base.name,
+ pipe_src_w, adjusted_mode->crtc_hdisplay);
+ return -EINVAL;
+ }
+ if (adjusted_mode->crtc_vdisplay < pipe_src_h) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit vertical downscaling (%d->%d) not supported\n",
+ crtc->base.base.id, crtc->base.name,
+ pipe_src_h, adjusted_mode->crtc_vdisplay);
+ return -EINVAL;
+ }
+
switch (conn_state->scaling_mode) {
case DRM_MODE_SCALE_CENTER:
/*
--
2.45.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 4/9] drm/i915/pfit: Check pfit minimum timings in pre-SKL
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
` (2 preceding siblings ...)
2024-10-16 14:31 ` [PATCH 3/9] drm/i915/pfit: Reject pfit downscaling for GMCH platforms Ville Syrjala
@ 2024-10-16 14:31 ` Ville Syrjala
2024-10-22 8:25 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 5/9] drm/i915/pfit: Reject cloning when using pfit on ILK-BDW Ville Syrjala
` (8 subsequent siblings)
12 siblings, 1 reply; 24+ messages in thread
From: Ville Syrjala @ 2024-10-16 14:31 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Transcoder hdisplay/vdisplay have documented minimum limits
when using the panel fitter. Enforce those limits for all
pre-SKL platforms. SKL+ handles everything in the unified
scaler code instead.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_panel.c | 59 +++++++++++++++++++++-
1 file changed, 58 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
index 89cac3b3fd02..dc843892b01b 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.c
+++ b/drivers/gpu/drm/i915/display/intel_panel.c
@@ -456,6 +456,24 @@ static int intel_pch_pfit_check_scaling(const struct intel_crtc_state *crtc_stat
return 0;
}
+static int intel_pch_pfit_check_timings(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ const struct drm_display_mode *adjusted_mode =
+ &crtc_state->hw.adjusted_mode;
+
+ if (adjusted_mode->crtc_vdisplay < 7) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] vertical active (%d) below minimum (%d) for pfit\n",
+ crtc->base.base.id, crtc->base.name,
+ adjusted_mode->crtc_vdisplay, 7);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
/* adjusted_mode has been preset to be the panel's fixed mode */
static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state)
@@ -542,6 +560,10 @@ static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
if (ret)
return ret;
+ ret = intel_pch_pfit_check_timings(crtc_state);
+ if (ret)
+ return ret;
+
return 0;
}
@@ -678,6 +700,38 @@ static void i9xx_scale_aspect(struct intel_crtc_state *crtc_state,
}
}
+static int intel_gmch_pfit_check_timings(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ const struct drm_display_mode *adjusted_mode =
+ &crtc_state->hw.adjusted_mode;
+ int min;
+
+ if (DISPLAY_VER(display) >= 4)
+ min = 3;
+ else
+ min = 2;
+
+ if (adjusted_mode->crtc_hdisplay < min) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] horizontal active (%d) below minimum (%d) for pfit\n",
+ crtc->base.base.id, crtc->base.name,
+ adjusted_mode->crtc_hdisplay, min);
+ return -EINVAL;
+ }
+
+ if (adjusted_mode->crtc_vdisplay < min) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] vertical active (%d) below minimum (%d) for pfit\n",
+ crtc->base.base.id, crtc->base.name,
+ adjusted_mode->crtc_vdisplay, min);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state)
{
@@ -772,7 +826,10 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
crtc_state->gmch_pfit.pgm_ratios = pfit_pgm_ratios;
crtc_state->gmch_pfit.lvds_border_bits = border;
- return 0;
+ if ((pfit_control & PFIT_ENABLE) == 0)
+ return 0;
+
+ return intel_gmch_pfit_check_timings(crtc_state);
}
int intel_panel_fitting(struct intel_crtc_state *crtc_state,
--
2.45.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 5/9] drm/i915/pfit: Reject cloning when using pfit on ILK-BDW
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
` (3 preceding siblings ...)
2024-10-16 14:31 ` [PATCH 4/9] drm/i915/pfit: Check pfit minimum timings in pre-SKL Ville Syrjala
@ 2024-10-16 14:31 ` Ville Syrjala
2024-10-22 8:25 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 6/9] drm/i915/pfit: Check pfit destination window " Ville Syrjala
` (7 subsequent siblings)
12 siblings, 1 reply; 24+ messages in thread
From: Ville Syrjala @ 2024-10-16 14:31 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The panel fitter lives inside the pipe and so would affect all cloned
outputs. However the relevant properties (scaling mode, TV margins)
are per-connector so we could end up with a situation where each cloned
output wants a different pfit configuration. Let's just reject pfit
usage with cloning entirely.
Currently not an issue as we don't yet expose the TV margin
properties, but if/when we add those to HDMI we could end up
in this situation. For eDP/DP we don't support cloning anyyway.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_panel.c | 27 ++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
index dc843892b01b..593e41907d53 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.c
+++ b/drivers/gpu/drm/i915/display/intel_panel.c
@@ -474,6 +474,29 @@ static int intel_pch_pfit_check_timings(const struct intel_crtc_state *crtc_stat
return 0;
}
+static int intel_pch_pfit_check_cloning(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+
+ /*
+ * The panel fitter is in the pipe and thus would affect every
+ * cloned output. The relevant properties (scaling mode, TV
+ * margins) are per-connector so we'd have to make sure each
+ * output sets them up identically. Seems like a very niche use
+ * case so let's just reject cloning entirely when pfit is used.
+ */
+ if (crtc_state->uapi.encoder_mask &&
+ !is_power_of_2(crtc_state->uapi.encoder_mask)) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] no pfit when cloning\n",
+ crtc->base.base.id, crtc->base.name);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
/* adjusted_mode has been preset to be the panel's fixed mode */
static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state)
@@ -564,6 +587,10 @@ static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
if (ret)
return ret;
+ ret = intel_pch_pfit_check_cloning(crtc_state);
+ if (ret)
+ return ret;
+
return 0;
}
--
2.45.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 6/9] drm/i915/pfit: Check pfit destination window on ILK-BDW
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
` (4 preceding siblings ...)
2024-10-16 14:31 ` [PATCH 5/9] drm/i915/pfit: Reject cloning when using pfit on ILK-BDW Ville Syrjala
@ 2024-10-16 14:31 ` Ville Syrjala
2024-10-22 8:26 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 7/9] drm/i915/panel: Convert panel code to intel_display Ville Syrjala
` (6 subsequent siblings)
12 siblings, 1 reply; 24+ messages in thread
From: Ville Syrjala @ 2024-10-16 14:31 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The ILK-BDW panel fitter has several restrictions on the
destination window size. Check for those and reject the
configuration if things aren't entirely proper.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_panel.c | 55 ++++++++++++++++++++++
1 file changed, 55 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
index 593e41907d53..d66ce8537f7d 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.c
+++ b/drivers/gpu/drm/i915/display/intel_panel.c
@@ -383,6 +383,57 @@ void intel_panel_add_encoder_fixed_mode(struct intel_connector *connector,
"current (BIOS)");
}
+static int intel_pch_pfit_check_dst_window(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ const struct drm_display_mode *adjusted_mode =
+ &crtc_state->hw.adjusted_mode;
+ const struct drm_rect *dst = &crtc_state->pch_pfit.dst;
+ int width = drm_rect_width(dst);
+ int height = drm_rect_height(dst);
+ int x = dst->x1;
+ int y = dst->y1;
+
+ if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE &&
+ (y & 1 || height & 1)) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit window (" DRM_RECT_FMT ") misaligned for interlaced output\n",
+ crtc->base.base.id, crtc->base.name, DRM_RECT_ARG(dst));
+ return -EINVAL;
+ }
+
+ /*
+ * "Restriction : When pipe scaling is enabled, the scaled
+ * output must equal the pipe active area, so Pipe active
+ * size = (2 * PF window position) + PF window size."
+ *
+ * The vertical direction seems more forgiving than the
+ * horizontal direction, but still has some issues so
+ * let's follow the same hard rule for both.
+ */
+ if (adjusted_mode->crtc_hdisplay != 2 * x + width ||
+ adjusted_mode->crtc_vdisplay != 2 * y + height) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit window (" DRM_RECT_FMT ") not centered\n",
+ crtc->base.base.id, crtc->base.name, DRM_RECT_ARG(dst));
+ return -EINVAL;
+ }
+
+ /*
+ * "Restriction : The X position must not be programmed
+ * to be 1 (28:16=0 0000 0000 0001b)."
+ */
+ if (x == 1) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit window (" DRM_RECT_FMT ") badly positioned\n",
+ crtc->base.base.id, crtc->base.name, DRM_RECT_ARG(dst));
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
static int intel_pch_pfit_check_src_size(const struct intel_crtc_state *crtc_state)
{
struct intel_display *display = to_intel_display(crtc_state);
@@ -575,6 +626,10 @@ static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
if (DISPLAY_VER(display) >= 9)
return 0;
+ ret = intel_pch_pfit_check_dst_window(crtc_state);
+ if (ret)
+ return ret;
+
ret = intel_pch_pfit_check_src_size(crtc_state);
if (ret)
return ret;
--
2.45.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 7/9] drm/i915/panel: Convert panel code to intel_display
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
` (5 preceding siblings ...)
2024-10-16 14:31 ` [PATCH 6/9] drm/i915/pfit: Check pfit destination window " Ville Syrjala
@ 2024-10-16 14:31 ` Ville Syrjala
2024-10-22 8:26 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 8/9] drm/i915/pfit: Extract intel_pfit.c Ville Syrjala
` (5 subsequent siblings)
12 siblings, 1 reply; 24+ messages in thread
From: Ville Syrjala @ 2024-10-16 14:31 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
struct intel_display will replace struct drm_i915_private as
the main thing for display code. Convert the panel code to
use it (as much as possible at this stage).
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_cx0_phy.c | 3 +-
drivers/gpu/drm/i915/display/intel_dpll.c | 27 ++++++++----
drivers/gpu/drm/i915/display/intel_panel.c | 44 +++++++++----------
drivers/gpu/drm/i915/display/intel_panel.h | 4 +-
.../gpu/drm/i915/display/intel_pch_refclk.c | 9 ++--
5 files changed, 47 insertions(+), 40 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
index f73d576fd99e..045ad6539c65 100644
--- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
@@ -2003,12 +2003,13 @@ intel_c10pll_tables_get(struct intel_crtc_state *crtc_state,
static void intel_c10pll_update_pll(struct intel_crtc_state *crtc_state,
struct intel_encoder *encoder)
{
+ struct intel_display *display = to_intel_display(encoder);
struct drm_i915_private *i915 = to_i915(encoder->base.dev);
struct intel_cx0pll_state *pll_state = &crtc_state->dpll_hw_state.cx0pll;
int i;
if (intel_crtc_has_dp_encoder(crtc_state)) {
- if (intel_panel_use_ssc(i915)) {
+ if (intel_panel_use_ssc(display)) {
struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
pll_state->ssc_enabled =
diff --git a/drivers/gpu/drm/i915/display/intel_dpll.c b/drivers/gpu/drm/i915/display/intel_dpll.c
index b679c5391fe6..c0a3c4b53b0a 100644
--- a/drivers/gpu/drm/i915/display/intel_dpll.c
+++ b/drivers/gpu/drm/i915/display/intel_dpll.c
@@ -1003,6 +1003,7 @@ static u32 i9xx_dpll(const struct intel_crtc_state *crtc_state,
const struct dpll *clock,
const struct dpll *reduced_clock)
{
+ struct intel_display *display = to_intel_display(crtc_state);
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
u32 dpll;
@@ -1061,7 +1062,7 @@ static u32 i9xx_dpll(const struct intel_crtc_state *crtc_state,
if (crtc_state->sdvo_tv_clock)
dpll |= PLL_REF_INPUT_TVCLKINBC;
else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS) &&
- intel_panel_use_ssc(dev_priv))
+ intel_panel_use_ssc(display))
dpll |= PLLB_REF_INPUT_SPREADSPECTRUMIN;
else
dpll |= PLL_REF_INPUT_DREFCLK;
@@ -1095,6 +1096,7 @@ static u32 i8xx_dpll(const struct intel_crtc_state *crtc_state,
const struct dpll *clock,
const struct dpll *reduced_clock)
{
+ struct intel_display *display = to_intel_display(crtc_state);
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
u32 dpll;
@@ -1131,7 +1133,7 @@ static u32 i8xx_dpll(const struct intel_crtc_state *crtc_state,
dpll |= DPLL_DVO_2X_MODE;
if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS) &&
- intel_panel_use_ssc(dev_priv))
+ intel_panel_use_ssc(display))
dpll |= PLLB_REF_INPUT_SPREADSPECTRUMIN;
else
dpll |= PLL_REF_INPUT_DREFCLK;
@@ -1237,11 +1239,12 @@ static int mtl_crtc_compute_clock(struct intel_atomic_state *state,
static int ilk_fb_cb_factor(const struct intel_crtc_state *crtc_state)
{
+ struct intel_display *display = to_intel_display(crtc_state);
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
struct drm_i915_private *i915 = to_i915(crtc->base.dev);
if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS) &&
- ((intel_panel_use_ssc(i915) && i915->display.vbt.lvds_ssc_freq == 100000) ||
+ ((intel_panel_use_ssc(display) && i915->display.vbt.lvds_ssc_freq == 100000) ||
(HAS_PCH_IBX(i915) && intel_is_dual_link_lvds(i915))))
return 25;
@@ -1271,6 +1274,7 @@ static u32 ilk_dpll(const struct intel_crtc_state *crtc_state,
const struct dpll *clock,
const struct dpll *reduced_clock)
{
+ struct intel_display *display = to_intel_display(crtc_state);
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
u32 dpll;
@@ -1332,7 +1336,7 @@ static u32 ilk_dpll(const struct intel_crtc_state *crtc_state,
WARN_ON(reduced_clock->p2 != clock->p2);
if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS) &&
- intel_panel_use_ssc(dev_priv))
+ intel_panel_use_ssc(display))
dpll |= PLLB_REF_INPUT_SPREADSPECTRUMIN;
else
dpll |= PLL_REF_INPUT_DREFCLK;
@@ -1356,6 +1360,7 @@ static void ilk_compute_dpll(struct intel_crtc_state *crtc_state,
static int ilk_crtc_compute_clock(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{
+ struct intel_display *display = to_intel_display(state);
struct drm_i915_private *dev_priv = to_i915(state->base.dev);
struct intel_crtc_state *crtc_state =
intel_atomic_get_new_crtc_state(state, crtc);
@@ -1368,7 +1373,7 @@ static int ilk_crtc_compute_clock(struct intel_atomic_state *state,
return 0;
if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS)) {
- if (intel_panel_use_ssc(dev_priv)) {
+ if (intel_panel_use_ssc(display)) {
drm_dbg_kms(&dev_priv->drm,
"using SSC reference clock of %d kHz\n",
dev_priv->display.vbt.lvds_ssc_freq);
@@ -1532,6 +1537,7 @@ static int vlv_crtc_compute_clock(struct intel_atomic_state *state,
static int g4x_crtc_compute_clock(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{
+ struct intel_display *display = to_intel_display(state);
struct drm_i915_private *dev_priv = to_i915(state->base.dev);
struct intel_crtc_state *crtc_state =
intel_atomic_get_new_crtc_state(state, crtc);
@@ -1539,7 +1545,7 @@ static int g4x_crtc_compute_clock(struct intel_atomic_state *state,
int refclk = 96000;
if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS)) {
- if (intel_panel_use_ssc(dev_priv)) {
+ if (intel_panel_use_ssc(display)) {
refclk = dev_priv->display.vbt.lvds_ssc_freq;
drm_dbg_kms(&dev_priv->drm,
"using SSC reference clock of %d kHz\n",
@@ -1581,6 +1587,7 @@ static int g4x_crtc_compute_clock(struct intel_atomic_state *state,
static int pnv_crtc_compute_clock(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{
+ struct intel_display *display = to_intel_display(state);
struct drm_i915_private *dev_priv = to_i915(state->base.dev);
struct intel_crtc_state *crtc_state =
intel_atomic_get_new_crtc_state(state, crtc);
@@ -1588,7 +1595,7 @@ static int pnv_crtc_compute_clock(struct intel_atomic_state *state,
int refclk = 96000;
if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS)) {
- if (intel_panel_use_ssc(dev_priv)) {
+ if (intel_panel_use_ssc(display)) {
refclk = dev_priv->display.vbt.lvds_ssc_freq;
drm_dbg_kms(&dev_priv->drm,
"using SSC reference clock of %d kHz\n",
@@ -1619,6 +1626,7 @@ static int pnv_crtc_compute_clock(struct intel_atomic_state *state,
static int i9xx_crtc_compute_clock(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{
+ struct intel_display *display = to_intel_display(state);
struct drm_i915_private *dev_priv = to_i915(state->base.dev);
struct intel_crtc_state *crtc_state =
intel_atomic_get_new_crtc_state(state, crtc);
@@ -1626,7 +1634,7 @@ static int i9xx_crtc_compute_clock(struct intel_atomic_state *state,
int refclk = 96000;
if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS)) {
- if (intel_panel_use_ssc(dev_priv)) {
+ if (intel_panel_use_ssc(display)) {
refclk = dev_priv->display.vbt.lvds_ssc_freq;
drm_dbg_kms(&dev_priv->drm,
"using SSC reference clock of %d kHz\n",
@@ -1659,6 +1667,7 @@ static int i9xx_crtc_compute_clock(struct intel_atomic_state *state,
static int i8xx_crtc_compute_clock(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{
+ struct intel_display *display = to_intel_display(state);
struct drm_i915_private *dev_priv = to_i915(state->base.dev);
struct intel_crtc_state *crtc_state =
intel_atomic_get_new_crtc_state(state, crtc);
@@ -1666,7 +1675,7 @@ static int i8xx_crtc_compute_clock(struct intel_atomic_state *state,
int refclk = 48000;
if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS)) {
- if (intel_panel_use_ssc(dev_priv)) {
+ if (intel_panel_use_ssc(display)) {
refclk = dev_priv->display.vbt.lvds_ssc_freq;
drm_dbg_kms(&dev_priv->drm,
"using SSC reference clock of %d kHz\n",
diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
index d66ce8537f7d..7fa0a54a3d3a 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.c
+++ b/drivers/gpu/drm/i915/display/intel_panel.c
@@ -45,10 +45,8 @@
#include "intel_quirks.h"
#include "intel_vrr.h"
-bool intel_panel_use_ssc(struct drm_i915_private *i915)
+bool intel_panel_use_ssc(struct intel_display *display)
{
- struct intel_display *display = &i915->display;
-
if (display->params.panel_use_ssc >= 0)
return display->params.panel_use_ssc != 0;
return display->vbt.lvds_use_ssc &&
@@ -252,7 +250,7 @@ int intel_panel_compute_config(struct intel_connector *connector,
static void intel_panel_add_edid_alt_fixed_modes(struct intel_connector *connector)
{
- struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+ struct intel_display *display = to_intel_display(connector);
const struct drm_display_mode *preferred_mode =
intel_panel_preferred_fixed_mode(connector);
struct drm_display_mode *mode, *next;
@@ -261,7 +259,7 @@ static void intel_panel_add_edid_alt_fixed_modes(struct intel_connector *connect
if (!is_alt_fixed_mode(mode, preferred_mode))
continue;
- drm_dbg_kms(&dev_priv->drm,
+ drm_dbg_kms(display->drm,
"[CONNECTOR:%d:%s] using alternate EDID fixed mode: " DRM_MODE_FMT "\n",
connector->base.base.id, connector->base.name,
DRM_MODE_ARG(mode));
@@ -272,7 +270,7 @@ static void intel_panel_add_edid_alt_fixed_modes(struct intel_connector *connect
static void intel_panel_add_edid_preferred_mode(struct intel_connector *connector)
{
- struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+ struct intel_display *display = to_intel_display(connector);
struct drm_display_mode *scan, *fixed_mode = NULL;
if (list_empty(&connector->base.probed_modes))
@@ -290,7 +288,7 @@ static void intel_panel_add_edid_preferred_mode(struct intel_connector *connecto
fixed_mode = list_first_entry(&connector->base.probed_modes,
typeof(*fixed_mode), head);
- drm_dbg_kms(&dev_priv->drm,
+ drm_dbg_kms(display->drm,
"[CONNECTOR:%d:%s] using %s EDID fixed mode: " DRM_MODE_FMT "\n",
connector->base.base.id, connector->base.name,
fixed_mode->type & DRM_MODE_TYPE_PREFERRED ? "preferred" : "first",
@@ -303,16 +301,16 @@ static void intel_panel_add_edid_preferred_mode(struct intel_connector *connecto
static void intel_panel_destroy_probed_modes(struct intel_connector *connector)
{
- struct drm_i915_private *i915 = to_i915(connector->base.dev);
+ struct intel_display *display = to_intel_display(connector);
struct drm_display_mode *mode, *next;
list_for_each_entry_safe(mode, next, &connector->base.probed_modes, head) {
- drm_dbg_kms(&i915->drm,
+ drm_dbg_kms(display->drm,
"[CONNECTOR:%d:%s] not using EDID mode: " DRM_MODE_FMT "\n",
connector->base.base.id, connector->base.name,
DRM_MODE_ARG(mode));
list_del(&mode->head);
- drm_mode_destroy(&i915->drm, mode);
+ drm_mode_destroy(display->drm, mode);
}
}
@@ -329,7 +327,7 @@ static void intel_panel_add_fixed_mode(struct intel_connector *connector,
struct drm_display_mode *fixed_mode,
const char *type)
{
- struct drm_i915_private *i915 = to_i915(connector->base.dev);
+ struct intel_display *display = to_intel_display(connector);
struct drm_display_info *info = &connector->base.display_info;
if (!fixed_mode)
@@ -340,7 +338,7 @@ static void intel_panel_add_fixed_mode(struct intel_connector *connector,
info->width_mm = fixed_mode->width_mm;
info->height_mm = fixed_mode->height_mm;
- drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] using %s fixed mode: " DRM_MODE_FMT "\n",
+ drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] using %s fixed mode: " DRM_MODE_FMT "\n",
connector->base.base.id, connector->base.name, type,
DRM_MODE_ARG(fixed_mode));
@@ -349,7 +347,7 @@ static void intel_panel_add_fixed_mode(struct intel_connector *connector,
void intel_panel_add_vbt_lfp_fixed_mode(struct intel_connector *connector)
{
- struct drm_i915_private *i915 = to_i915(connector->base.dev);
+ struct intel_display *display = to_intel_display(connector);
const struct drm_display_mode *mode;
mode = connector->panel.vbt.lfp_vbt_mode;
@@ -357,13 +355,13 @@ void intel_panel_add_vbt_lfp_fixed_mode(struct intel_connector *connector)
return;
intel_panel_add_fixed_mode(connector,
- drm_mode_duplicate(&i915->drm, mode),
+ drm_mode_duplicate(display->drm, mode),
"VBT LFP");
}
void intel_panel_add_vbt_sdvo_fixed_mode(struct intel_connector *connector)
{
- struct drm_i915_private *i915 = to_i915(connector->base.dev);
+ struct intel_display *display = to_intel_display(connector);
const struct drm_display_mode *mode;
mode = connector->panel.vbt.sdvo_lvds_vbt_mode;
@@ -371,7 +369,7 @@ void intel_panel_add_vbt_sdvo_fixed_mode(struct intel_connector *connector)
return;
intel_panel_add_fixed_mode(connector,
- drm_mode_duplicate(&i915->drm, mode),
+ drm_mode_duplicate(display->drm, mode),
"VBT SDVO");
}
@@ -819,7 +817,6 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
{
struct intel_display *display = to_intel_display(crtc_state);
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
- struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
u32 pfit_control = 0, pfit_pgm_ratios = 0, border = 0;
struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
@@ -861,7 +858,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
break;
case DRM_MODE_SCALE_ASPECT:
/* Scale but preserve the aspect ratio */
- if (DISPLAY_VER(dev_priv) >= 4)
+ if (DISPLAY_VER(display) >= 4)
i965_scale_aspect(crtc_state, &pfit_control);
else
i9xx_scale_aspect(crtc_state, &pfit_control,
@@ -875,7 +872,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
if (pipe_src_h != adjusted_mode->crtc_vdisplay ||
pipe_src_w != adjusted_mode->crtc_hdisplay) {
pfit_control |= PFIT_ENABLE;
- if (DISPLAY_VER(dev_priv) >= 4)
+ if (DISPLAY_VER(display) >= 4)
pfit_control |= PFIT_SCALING_AUTO;
else
pfit_control |= (PFIT_VERT_AUTO_SCALE |
@@ -891,7 +888,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
/* 965+ wants fuzzy fitting */
/* FIXME: handle multiple panels by failing gracefully */
- if (DISPLAY_VER(dev_priv) >= 4)
+ if (DISPLAY_VER(display) >= 4)
pfit_control |= PFIT_PIPE(crtc->pipe) | PFIT_FILTER_FUZZY;
out:
@@ -901,7 +898,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
}
/* Make sure pre-965 set dither correctly for 18bpp panels. */
- if (DISPLAY_VER(dev_priv) < 4 && crtc_state->pipe_bpp == 18)
+ if (DISPLAY_VER(display) < 4 && crtc_state->pipe_bpp == 18)
pfit_control |= PFIT_PANEL_8TO6_DITHER_ENABLE;
crtc_state->gmch_pfit.control = pfit_control;
@@ -917,10 +914,9 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
int intel_panel_fitting(struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state)
{
- struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
- struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+ struct intel_display *display = to_intel_display(crtc_state);
- if (HAS_GMCH(i915))
+ if (HAS_GMCH(display))
return gmch_panel_fitting(crtc_state, conn_state);
else
return pch_panel_fitting(crtc_state, conn_state);
diff --git a/drivers/gpu/drm/i915/display/intel_panel.h b/drivers/gpu/drm/i915/display/intel_panel.h
index 15a8c897b33f..d6dd88473555 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.h
+++ b/drivers/gpu/drm/i915/display/intel_panel.h
@@ -14,9 +14,9 @@ struct drm_connector;
struct drm_connector_state;
struct drm_display_mode;
struct drm_edid;
-struct drm_i915_private;
struct intel_connector;
struct intel_crtc_state;
+struct intel_display;
struct intel_encoder;
void intel_panel_init_alloc(struct intel_connector *connector);
@@ -25,7 +25,7 @@ int intel_panel_init(struct intel_connector *connector,
void intel_panel_fini(struct intel_connector *connector);
enum drm_connector_status
intel_panel_detect(struct drm_connector *connector, bool force);
-bool intel_panel_use_ssc(struct drm_i915_private *i915);
+bool intel_panel_use_ssc(struct intel_display *display);
const struct drm_display_mode *
intel_panel_preferred_fixed_mode(struct intel_connector *connector);
const struct drm_display_mode *
diff --git a/drivers/gpu/drm/i915/display/intel_pch_refclk.c b/drivers/gpu/drm/i915/display/intel_pch_refclk.c
index 713cfba71475..84c55971e91a 100644
--- a/drivers/gpu/drm/i915/display/intel_pch_refclk.c
+++ b/drivers/gpu/drm/i915/display/intel_pch_refclk.c
@@ -491,6 +491,7 @@ static void lpt_init_pch_refclk(struct drm_i915_private *dev_priv)
static void ilk_init_pch_refclk(struct drm_i915_private *dev_priv)
{
+ struct intel_display *display = &dev_priv->display;
struct intel_encoder *encoder;
struct intel_shared_dpll *pll;
int i;
@@ -572,11 +573,11 @@ static void ilk_init_pch_refclk(struct drm_i915_private *dev_priv)
if (has_panel) {
final |= DREF_SSC_SOURCE_ENABLE;
- if (intel_panel_use_ssc(dev_priv) && can_ssc)
+ if (intel_panel_use_ssc(display) && can_ssc)
final |= DREF_SSC1_ENABLE;
if (has_cpu_edp) {
- if (intel_panel_use_ssc(dev_priv) && can_ssc)
+ if (intel_panel_use_ssc(display) && can_ssc)
final |= DREF_CPU_SOURCE_OUTPUT_DOWNSPREAD;
else
final |= DREF_CPU_SOURCE_OUTPUT_NONSPREAD;
@@ -604,7 +605,7 @@ static void ilk_init_pch_refclk(struct drm_i915_private *dev_priv)
val |= DREF_SSC_SOURCE_ENABLE;
/* SSC must be turned on before enabling the CPU output */
- if (intel_panel_use_ssc(dev_priv) && can_ssc) {
+ if (intel_panel_use_ssc(display) && can_ssc) {
drm_dbg_kms(&dev_priv->drm, "Using SSC on panel\n");
val |= DREF_SSC1_ENABLE;
} else {
@@ -620,7 +621,7 @@ static void ilk_init_pch_refclk(struct drm_i915_private *dev_priv)
/* Enable CPU source on CPU attached eDP */
if (has_cpu_edp) {
- if (intel_panel_use_ssc(dev_priv) && can_ssc) {
+ if (intel_panel_use_ssc(display) && can_ssc) {
drm_dbg_kms(&dev_priv->drm,
"Using SSC on eDP\n");
val |= DREF_CPU_SOURCE_OUTPUT_DOWNSPREAD;
--
2.45.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 8/9] drm/i915/pfit: Extract intel_pfit.c
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
` (6 preceding siblings ...)
2024-10-16 14:31 ` [PATCH 7/9] drm/i915/panel: Convert panel code to intel_display Ville Syrjala
@ 2024-10-16 14:31 ` Ville Syrjala
2024-10-22 8:31 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 9/9] drm/i915: Remove ckey/format checks from skl_update_scaler_plane() Ville Syrjala
` (4 subsequent siblings)
12 siblings, 1 reply; 24+ messages in thread
From: Ville Syrjala @ 2024-10-16 14:31 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The panel fitter code doesn't really have much to do with the
rest of intel_panel.c, so extract it all into its own file.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/Makefile | 1 +
drivers/gpu/drm/i915/display/icl_dsi.c | 1 +
drivers/gpu/drm/i915/display/intel_dp.c | 1 +
drivers/gpu/drm/i915/display/intel_hdmi.c | 1 +
drivers/gpu/drm/i915/display/intel_lvds.c | 1 +
drivers/gpu/drm/i915/display/intel_panel.c | 546 +-------------------
drivers/gpu/drm/i915/display/intel_panel.h | 2 -
drivers/gpu/drm/i915/display/intel_pfit.c | 554 +++++++++++++++++++++
drivers/gpu/drm/i915/display/intel_pfit.h | 15 +
drivers/gpu/drm/i915/display/vlv_dsi.c | 1 +
drivers/gpu/drm/xe/Makefile | 1 +
11 files changed, 578 insertions(+), 546 deletions(-)
create mode 100644 drivers/gpu/drm/i915/display/intel_pfit.c
create mode 100644 drivers/gpu/drm/i915/display/intel_pfit.h
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index e033bcaef4f3..31710d98cad5 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -339,6 +339,7 @@ i915-y += \
display/intel_lspcon.o \
display/intel_lvds.o \
display/intel_panel.o \
+ display/intel_pfit.o \
display/intel_pps.o \
display/intel_qp_tables.o \
display/intel_sdvo.o \
diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 87a27d91d15d..115d79c80b9a 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -46,6 +46,7 @@
#include "intel_dsi.h"
#include "intel_dsi_vbt.h"
#include "intel_panel.h"
+#include "intel_pfit.h"
#include "intel_vdsc.h"
#include "intel_vdsc_regs.h"
#include "skl_scaler.h"
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 6b27fabd61c3..7e02da8f84a7 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -83,6 +83,7 @@
#include "intel_modeset_lock.h"
#include "intel_panel.h"
#include "intel_pch_display.h"
+#include "intel_pfit.h"
#include "intel_pps.h"
#include "intel_psr.h"
#include "intel_runtime_pm.h"
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 72ac910bf6ec..6a16194b1105 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -62,6 +62,7 @@
#include "intel_hdmi.h"
#include "intel_lspcon.h"
#include "intel_panel.h"
+#include "intel_pfit.h"
#include "intel_snps_phy.h"
static void
diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
index 5f753ee743c6..5d022b4215ee 100644
--- a/drivers/gpu/drm/i915/display/intel_lvds.c
+++ b/drivers/gpu/drm/i915/display/intel_lvds.c
@@ -52,6 +52,7 @@
#include "intel_lvds.h"
#include "intel_lvds_regs.h"
#include "intel_panel.h"
+#include "intel_pfit.h"
#include "intel_pps_regs.h"
/* Private structure for the integrated LVDS support */
diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
index 7fa0a54a3d3a..313bd3f35ace 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.c
+++ b/drivers/gpu/drm/i915/display/intel_panel.c
@@ -33,14 +33,13 @@
#include <drm/drm_edid.h>
-#include "i915_reg.h"
+#include "i915_drv.h"
#include "intel_backlight.h"
#include "intel_connector.h"
-#include "intel_de.h"
+#include "intel_display_core.h"
#include "intel_display_driver.h"
#include "intel_display_types.h"
#include "intel_drrs.h"
-#include "intel_lvds_regs.h"
#include "intel_panel.h"
#include "intel_quirks.h"
#include "intel_vrr.h"
@@ -381,547 +380,6 @@ void intel_panel_add_encoder_fixed_mode(struct intel_connector *connector,
"current (BIOS)");
}
-static int intel_pch_pfit_check_dst_window(const struct intel_crtc_state *crtc_state)
-{
- struct intel_display *display = to_intel_display(crtc_state);
- struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
- const struct drm_display_mode *adjusted_mode =
- &crtc_state->hw.adjusted_mode;
- const struct drm_rect *dst = &crtc_state->pch_pfit.dst;
- int width = drm_rect_width(dst);
- int height = drm_rect_height(dst);
- int x = dst->x1;
- int y = dst->y1;
-
- if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE &&
- (y & 1 || height & 1)) {
- drm_dbg_kms(display->drm,
- "[CRTC:%d:%s] pfit window (" DRM_RECT_FMT ") misaligned for interlaced output\n",
- crtc->base.base.id, crtc->base.name, DRM_RECT_ARG(dst));
- return -EINVAL;
- }
-
- /*
- * "Restriction : When pipe scaling is enabled, the scaled
- * output must equal the pipe active area, so Pipe active
- * size = (2 * PF window position) + PF window size."
- *
- * The vertical direction seems more forgiving than the
- * horizontal direction, but still has some issues so
- * let's follow the same hard rule for both.
- */
- if (adjusted_mode->crtc_hdisplay != 2 * x + width ||
- adjusted_mode->crtc_vdisplay != 2 * y + height) {
- drm_dbg_kms(display->drm,
- "[CRTC:%d:%s] pfit window (" DRM_RECT_FMT ") not centered\n",
- crtc->base.base.id, crtc->base.name, DRM_RECT_ARG(dst));
- return -EINVAL;
- }
-
- /*
- * "Restriction : The X position must not be programmed
- * to be 1 (28:16=0 0000 0000 0001b)."
- */
- if (x == 1) {
- drm_dbg_kms(display->drm,
- "[CRTC:%d:%s] pfit window (" DRM_RECT_FMT ") badly positioned\n",
- crtc->base.base.id, crtc->base.name, DRM_RECT_ARG(dst));
- return -EINVAL;
- }
-
- return 0;
-}
-
-static int intel_pch_pfit_check_src_size(const struct intel_crtc_state *crtc_state)
-{
- struct intel_display *display = to_intel_display(crtc_state);
- struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
- int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
- int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
- int max_src_w, max_src_h;
-
- if (DISPLAY_VER(display) >= 8) {
- max_src_w = 4096;
- max_src_h = 4096;
- } else if (DISPLAY_VER(display) >= 7) {
- /*
- * PF0 7x5 capable
- * PF1 3x3 capable (could be switched to 7x5
- * mode on HSW when PF2 unused)
- * PF2 3x3 capable
- *
- * This assumes we use a 1:1 mapping between pipe and PF.
- */
- max_src_w = crtc->pipe == PIPE_A ? 4096 : 2048;
- max_src_h = 4096;
- } else {
- max_src_w = 4096;
- max_src_h = 4096;
- }
-
- if (pipe_src_w > max_src_w || pipe_src_h > max_src_h) {
- drm_dbg_kms(display->drm,
- "[CRTC:%d:%s] source size (%dx%d) exceeds pfit max (%dx%d)\n",
- crtc->base.base.id, crtc->base.name,
- pipe_src_w, pipe_src_h, max_src_w, max_src_h);
- return -EINVAL;
- }
-
- return 0;
-}
-
-static int intel_pch_pfit_check_scaling(const struct intel_crtc_state *crtc_state)
-{
- struct intel_display *display = to_intel_display(crtc_state);
- struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
- const struct drm_rect *dst = &crtc_state->pch_pfit.dst;
- int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
- int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
- int hscale, vscale, max_scale = 0x12000; /* 1.125 */
- struct drm_rect src;
-
- drm_rect_init(&src, 0, 0, pipe_src_w << 16, pipe_src_h << 16);
-
- hscale = drm_rect_calc_hscale(&src, dst, 0, max_scale);
- if (hscale < 0) {
- drm_dbg_kms(display->drm,
- "[CRTC:%d:%s] pfit horizontal downscaling (%d->%d) exceeds max (0x%x)\n",
- crtc->base.base.id, crtc->base.name,
- pipe_src_w, drm_rect_width(dst),
- max_scale);
- return hscale;
- }
-
- vscale = drm_rect_calc_vscale(&src, dst, 0, max_scale);
- if (vscale < 0) {
- drm_dbg_kms(display->drm,
- "[CRTC:%d:%s] pfit vertical downscaling (%d->%d) exceeds max (0x%x)\n",
- crtc->base.base.id, crtc->base.name,
- pipe_src_h, drm_rect_height(dst),
- max_scale);
- return vscale;
- }
-
- return 0;
-}
-
-static int intel_pch_pfit_check_timings(const struct intel_crtc_state *crtc_state)
-{
- struct intel_display *display = to_intel_display(crtc_state);
- struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
- const struct drm_display_mode *adjusted_mode =
- &crtc_state->hw.adjusted_mode;
-
- if (adjusted_mode->crtc_vdisplay < 7) {
- drm_dbg_kms(display->drm,
- "[CRTC:%d:%s] vertical active (%d) below minimum (%d) for pfit\n",
- crtc->base.base.id, crtc->base.name,
- adjusted_mode->crtc_vdisplay, 7);
- return -EINVAL;
- }
-
- return 0;
-}
-
-static int intel_pch_pfit_check_cloning(const struct intel_crtc_state *crtc_state)
-{
- struct intel_display *display = to_intel_display(crtc_state);
- struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
-
- /*
- * The panel fitter is in the pipe and thus would affect every
- * cloned output. The relevant properties (scaling mode, TV
- * margins) are per-connector so we'd have to make sure each
- * output sets them up identically. Seems like a very niche use
- * case so let's just reject cloning entirely when pfit is used.
- */
- if (crtc_state->uapi.encoder_mask &&
- !is_power_of_2(crtc_state->uapi.encoder_mask)) {
- drm_dbg_kms(display->drm,
- "[CRTC:%d:%s] no pfit when cloning\n",
- crtc->base.base.id, crtc->base.name);
- return -EINVAL;
- }
-
- return 0;
-}
-
-/* adjusted_mode has been preset to be the panel's fixed mode */
-static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
- const struct drm_connector_state *conn_state)
-{
- struct intel_display *display = to_intel_display(crtc_state);
- const struct drm_display_mode *adjusted_mode =
- &crtc_state->hw.adjusted_mode;
- int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
- int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
- int ret, x, y, width, height;
-
- /* Native modes don't need fitting */
- if (adjusted_mode->crtc_hdisplay == pipe_src_w &&
- adjusted_mode->crtc_vdisplay == pipe_src_h &&
- crtc_state->output_format != INTEL_OUTPUT_FORMAT_YCBCR420)
- return 0;
-
- switch (conn_state->scaling_mode) {
- case DRM_MODE_SCALE_CENTER:
- width = pipe_src_w;
- height = pipe_src_h;
- x = (adjusted_mode->crtc_hdisplay - width + 1)/2;
- y = (adjusted_mode->crtc_vdisplay - height + 1)/2;
- break;
-
- case DRM_MODE_SCALE_ASPECT:
- /* Scale but preserve the aspect ratio */
- {
- u32 scaled_width = adjusted_mode->crtc_hdisplay * pipe_src_h;
- u32 scaled_height = pipe_src_w * adjusted_mode->crtc_vdisplay;
- if (scaled_width > scaled_height) { /* pillar */
- width = scaled_height / pipe_src_h;
- if (width & 1)
- width++;
- x = (adjusted_mode->crtc_hdisplay - width + 1) / 2;
- y = 0;
- height = adjusted_mode->crtc_vdisplay;
- } else if (scaled_width < scaled_height) { /* letter */
- height = scaled_width / pipe_src_w;
- if (height & 1)
- height++;
- y = (adjusted_mode->crtc_vdisplay - height + 1) / 2;
- x = 0;
- width = adjusted_mode->crtc_hdisplay;
- } else {
- x = y = 0;
- width = adjusted_mode->crtc_hdisplay;
- height = adjusted_mode->crtc_vdisplay;
- }
- }
- break;
-
- case DRM_MODE_SCALE_NONE:
- WARN_ON(adjusted_mode->crtc_hdisplay != pipe_src_w);
- WARN_ON(adjusted_mode->crtc_vdisplay != pipe_src_h);
- fallthrough;
- case DRM_MODE_SCALE_FULLSCREEN:
- x = y = 0;
- width = adjusted_mode->crtc_hdisplay;
- height = adjusted_mode->crtc_vdisplay;
- break;
-
- default:
- MISSING_CASE(conn_state->scaling_mode);
- return -EINVAL;
- }
-
- drm_rect_init(&crtc_state->pch_pfit.dst,
- x, y, width, height);
- crtc_state->pch_pfit.enabled = true;
-
- /*
- * SKL+ have unified scalers for pipes/planes so the
- * checks are done in a single place for all scalers.
- */
- if (DISPLAY_VER(display) >= 9)
- return 0;
-
- ret = intel_pch_pfit_check_dst_window(crtc_state);
- if (ret)
- return ret;
-
- ret = intel_pch_pfit_check_src_size(crtc_state);
- if (ret)
- return ret;
-
- ret = intel_pch_pfit_check_scaling(crtc_state);
- if (ret)
- return ret;
-
- ret = intel_pch_pfit_check_timings(crtc_state);
- if (ret)
- return ret;
-
- ret = intel_pch_pfit_check_cloning(crtc_state);
- if (ret)
- return ret;
-
- return 0;
-}
-
-static void
-centre_horizontally(struct drm_display_mode *adjusted_mode,
- int width)
-{
- u32 border, sync_pos, blank_width, sync_width;
-
- /* keep the hsync and hblank widths constant */
- sync_width = adjusted_mode->crtc_hsync_end - adjusted_mode->crtc_hsync_start;
- blank_width = adjusted_mode->crtc_hblank_end - adjusted_mode->crtc_hblank_start;
- sync_pos = (blank_width - sync_width + 1) / 2;
-
- border = (adjusted_mode->crtc_hdisplay - width + 1) / 2;
- border += border & 1; /* make the border even */
-
- adjusted_mode->crtc_hdisplay = width;
- adjusted_mode->crtc_hblank_start = width + border;
- adjusted_mode->crtc_hblank_end = adjusted_mode->crtc_hblank_start + blank_width;
-
- adjusted_mode->crtc_hsync_start = adjusted_mode->crtc_hblank_start + sync_pos;
- adjusted_mode->crtc_hsync_end = adjusted_mode->crtc_hsync_start + sync_width;
-}
-
-static void
-centre_vertically(struct drm_display_mode *adjusted_mode,
- int height)
-{
- u32 border, sync_pos, blank_width, sync_width;
-
- /* keep the vsync and vblank widths constant */
- sync_width = adjusted_mode->crtc_vsync_end - adjusted_mode->crtc_vsync_start;
- blank_width = adjusted_mode->crtc_vblank_end - adjusted_mode->crtc_vblank_start;
- sync_pos = (blank_width - sync_width + 1) / 2;
-
- border = (adjusted_mode->crtc_vdisplay - height + 1) / 2;
-
- adjusted_mode->crtc_vdisplay = height;
- adjusted_mode->crtc_vblank_start = height + border;
- adjusted_mode->crtc_vblank_end = adjusted_mode->crtc_vblank_start + blank_width;
-
- adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vblank_start + sync_pos;
- adjusted_mode->crtc_vsync_end = adjusted_mode->crtc_vsync_start + sync_width;
-}
-
-static u32 panel_fitter_scaling(u32 source, u32 target)
-{
- /*
- * Floating point operation is not supported. So the FACTOR
- * is defined, which can avoid the floating point computation
- * when calculating the panel ratio.
- */
-#define ACCURACY 12
-#define FACTOR (1 << ACCURACY)
- u32 ratio = source * FACTOR / target;
- return (FACTOR * ratio + FACTOR/2) / FACTOR;
-}
-
-static void i965_scale_aspect(struct intel_crtc_state *crtc_state,
- u32 *pfit_control)
-{
- const struct drm_display_mode *adjusted_mode =
- &crtc_state->hw.adjusted_mode;
- int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
- int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
- u32 scaled_width = adjusted_mode->crtc_hdisplay * pipe_src_h;
- u32 scaled_height = pipe_src_w * adjusted_mode->crtc_vdisplay;
-
- /* 965+ is easy, it does everything in hw */
- if (scaled_width > scaled_height)
- *pfit_control |= PFIT_ENABLE |
- PFIT_SCALING_PILLAR;
- else if (scaled_width < scaled_height)
- *pfit_control |= PFIT_ENABLE |
- PFIT_SCALING_LETTER;
- else if (adjusted_mode->crtc_hdisplay != pipe_src_w)
- *pfit_control |= PFIT_ENABLE | PFIT_SCALING_AUTO;
-}
-
-static void i9xx_scale_aspect(struct intel_crtc_state *crtc_state,
- u32 *pfit_control, u32 *pfit_pgm_ratios,
- u32 *border)
-{
- struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
- int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
- int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
- u32 scaled_width = adjusted_mode->crtc_hdisplay * pipe_src_h;
- u32 scaled_height = pipe_src_w * adjusted_mode->crtc_vdisplay;
- u32 bits;
-
- /*
- * For earlier chips we have to calculate the scaling
- * ratio by hand and program it into the
- * PFIT_PGM_RATIO register
- */
- if (scaled_width > scaled_height) { /* pillar */
- centre_horizontally(adjusted_mode,
- scaled_height / pipe_src_h);
-
- *border = LVDS_BORDER_ENABLE;
- if (pipe_src_h != adjusted_mode->crtc_vdisplay) {
- bits = panel_fitter_scaling(pipe_src_h,
- adjusted_mode->crtc_vdisplay);
-
- *pfit_pgm_ratios |= (PFIT_HORIZ_SCALE(bits) |
- PFIT_VERT_SCALE(bits));
- *pfit_control |= (PFIT_ENABLE |
- PFIT_VERT_INTERP_BILINEAR |
- PFIT_HORIZ_INTERP_BILINEAR);
- }
- } else if (scaled_width < scaled_height) { /* letter */
- centre_vertically(adjusted_mode,
- scaled_width / pipe_src_w);
-
- *border = LVDS_BORDER_ENABLE;
- if (pipe_src_w != adjusted_mode->crtc_hdisplay) {
- bits = panel_fitter_scaling(pipe_src_w,
- adjusted_mode->crtc_hdisplay);
-
- *pfit_pgm_ratios |= (PFIT_HORIZ_SCALE(bits) |
- PFIT_VERT_SCALE(bits));
- *pfit_control |= (PFIT_ENABLE |
- PFIT_VERT_INTERP_BILINEAR |
- PFIT_HORIZ_INTERP_BILINEAR);
- }
- } else {
- /* Aspects match, Let hw scale both directions */
- *pfit_control |= (PFIT_ENABLE |
- PFIT_VERT_AUTO_SCALE |
- PFIT_HORIZ_AUTO_SCALE |
- PFIT_VERT_INTERP_BILINEAR |
- PFIT_HORIZ_INTERP_BILINEAR);
- }
-}
-
-static int intel_gmch_pfit_check_timings(const struct intel_crtc_state *crtc_state)
-{
- struct intel_display *display = to_intel_display(crtc_state);
- struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
- const struct drm_display_mode *adjusted_mode =
- &crtc_state->hw.adjusted_mode;
- int min;
-
- if (DISPLAY_VER(display) >= 4)
- min = 3;
- else
- min = 2;
-
- if (adjusted_mode->crtc_hdisplay < min) {
- drm_dbg_kms(display->drm,
- "[CRTC:%d:%s] horizontal active (%d) below minimum (%d) for pfit\n",
- crtc->base.base.id, crtc->base.name,
- adjusted_mode->crtc_hdisplay, min);
- return -EINVAL;
- }
-
- if (adjusted_mode->crtc_vdisplay < min) {
- drm_dbg_kms(display->drm,
- "[CRTC:%d:%s] vertical active (%d) below minimum (%d) for pfit\n",
- crtc->base.base.id, crtc->base.name,
- adjusted_mode->crtc_vdisplay, min);
- return -EINVAL;
- }
-
- return 0;
-}
-
-static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
- const struct drm_connector_state *conn_state)
-{
- struct intel_display *display = to_intel_display(crtc_state);
- struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
- u32 pfit_control = 0, pfit_pgm_ratios = 0, border = 0;
- struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
- int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
- int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
-
- /* Native modes don't need fitting */
- if (adjusted_mode->crtc_hdisplay == pipe_src_w &&
- adjusted_mode->crtc_vdisplay == pipe_src_h)
- goto out;
-
- /*
- * TODO: implement downscaling for i965+. Need to account
- * for downscaling in intel_crtc_compute_pixel_rate().
- */
- if (adjusted_mode->crtc_hdisplay < pipe_src_w) {
- drm_dbg_kms(display->drm,
- "[CRTC:%d:%s] pfit horizontal downscaling (%d->%d) not supported\n",
- crtc->base.base.id, crtc->base.name,
- pipe_src_w, adjusted_mode->crtc_hdisplay);
- return -EINVAL;
- }
- if (adjusted_mode->crtc_vdisplay < pipe_src_h) {
- drm_dbg_kms(display->drm,
- "[CRTC:%d:%s] pfit vertical downscaling (%d->%d) not supported\n",
- crtc->base.base.id, crtc->base.name,
- pipe_src_h, adjusted_mode->crtc_vdisplay);
- return -EINVAL;
- }
-
- switch (conn_state->scaling_mode) {
- case DRM_MODE_SCALE_CENTER:
- /*
- * For centered modes, we have to calculate border widths &
- * heights and modify the values programmed into the CRTC.
- */
- centre_horizontally(adjusted_mode, pipe_src_w);
- centre_vertically(adjusted_mode, pipe_src_h);
- border = LVDS_BORDER_ENABLE;
- break;
- case DRM_MODE_SCALE_ASPECT:
- /* Scale but preserve the aspect ratio */
- if (DISPLAY_VER(display) >= 4)
- i965_scale_aspect(crtc_state, &pfit_control);
- else
- i9xx_scale_aspect(crtc_state, &pfit_control,
- &pfit_pgm_ratios, &border);
- break;
- case DRM_MODE_SCALE_FULLSCREEN:
- /*
- * Full scaling, even if it changes the aspect ratio.
- * Fortunately this is all done for us in hw.
- */
- if (pipe_src_h != adjusted_mode->crtc_vdisplay ||
- pipe_src_w != adjusted_mode->crtc_hdisplay) {
- pfit_control |= PFIT_ENABLE;
- if (DISPLAY_VER(display) >= 4)
- pfit_control |= PFIT_SCALING_AUTO;
- else
- pfit_control |= (PFIT_VERT_AUTO_SCALE |
- PFIT_VERT_INTERP_BILINEAR |
- PFIT_HORIZ_AUTO_SCALE |
- PFIT_HORIZ_INTERP_BILINEAR);
- }
- break;
- default:
- MISSING_CASE(conn_state->scaling_mode);
- return -EINVAL;
- }
-
- /* 965+ wants fuzzy fitting */
- /* FIXME: handle multiple panels by failing gracefully */
- if (DISPLAY_VER(display) >= 4)
- pfit_control |= PFIT_PIPE(crtc->pipe) | PFIT_FILTER_FUZZY;
-
-out:
- if ((pfit_control & PFIT_ENABLE) == 0) {
- pfit_control = 0;
- pfit_pgm_ratios = 0;
- }
-
- /* Make sure pre-965 set dither correctly for 18bpp panels. */
- if (DISPLAY_VER(display) < 4 && crtc_state->pipe_bpp == 18)
- pfit_control |= PFIT_PANEL_8TO6_DITHER_ENABLE;
-
- crtc_state->gmch_pfit.control = pfit_control;
- crtc_state->gmch_pfit.pgm_ratios = pfit_pgm_ratios;
- crtc_state->gmch_pfit.lvds_border_bits = border;
-
- if ((pfit_control & PFIT_ENABLE) == 0)
- return 0;
-
- return intel_gmch_pfit_check_timings(crtc_state);
-}
-
-int intel_panel_fitting(struct intel_crtc_state *crtc_state,
- const struct drm_connector_state *conn_state)
-{
- struct intel_display *display = to_intel_display(crtc_state);
-
- if (HAS_GMCH(display))
- return gmch_panel_fitting(crtc_state, conn_state);
- else
- return pch_panel_fitting(crtc_state, conn_state);
-}
-
enum drm_connector_status
intel_panel_detect(struct drm_connector *connector, bool force)
{
diff --git a/drivers/gpu/drm/i915/display/intel_panel.h b/drivers/gpu/drm/i915/display/intel_panel.h
index d6dd88473555..b60d12322e5d 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.h
+++ b/drivers/gpu/drm/i915/display/intel_panel.h
@@ -42,8 +42,6 @@ enum drrs_type intel_panel_drrs_type(struct intel_connector *connector);
enum drm_mode_status
intel_panel_mode_valid(struct intel_connector *connector,
const struct drm_display_mode *mode);
-int intel_panel_fitting(struct intel_crtc_state *crtc_state,
- const struct drm_connector_state *conn_state);
int intel_panel_compute_config(struct intel_connector *connector,
struct drm_display_mode *adjusted_mode);
void intel_panel_add_edid_fixed_modes(struct intel_connector *connector,
diff --git a/drivers/gpu/drm/i915/display/intel_pfit.c b/drivers/gpu/drm/i915/display/intel_pfit.c
new file mode 100644
index 000000000000..50861aa78a89
--- /dev/null
+++ b/drivers/gpu/drm/i915/display/intel_pfit.c
@@ -0,0 +1,554 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2024 Intel Corporation
+ */
+
+#include "i915_drv.h"
+#include "i915_reg.h"
+#include "intel_display_core.h"
+#include "intel_display_driver.h"
+#include "intel_display_types.h"
+#include "intel_lvds_regs.h"
+#include "intel_pfit.h"
+
+static int intel_pch_pfit_check_dst_window(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ const struct drm_display_mode *adjusted_mode =
+ &crtc_state->hw.adjusted_mode;
+ const struct drm_rect *dst = &crtc_state->pch_pfit.dst;
+ int width = drm_rect_width(dst);
+ int height = drm_rect_height(dst);
+ int x = dst->x1;
+ int y = dst->y1;
+
+ if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE &&
+ (y & 1 || height & 1)) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit window (" DRM_RECT_FMT ") misaligned for interlaced output\n",
+ crtc->base.base.id, crtc->base.name, DRM_RECT_ARG(dst));
+ return -EINVAL;
+ }
+
+ /*
+ * "Restriction : When pipe scaling is enabled, the scaled
+ * output must equal the pipe active area, so Pipe active
+ * size = (2 * PF window position) + PF window size."
+ *
+ * The vertical direction seems more forgiving than the
+ * horizontal direction, but still has some issues so
+ * let's follow the same hard rule for both.
+ */
+ if (adjusted_mode->crtc_hdisplay != 2 * x + width ||
+ adjusted_mode->crtc_vdisplay != 2 * y + height) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit window (" DRM_RECT_FMT ") not centered\n",
+ crtc->base.base.id, crtc->base.name, DRM_RECT_ARG(dst));
+ return -EINVAL;
+ }
+
+ /*
+ * "Restriction : The X position must not be programmed
+ * to be 1 (28:16=0 0000 0000 0001b)."
+ */
+ if (x == 1) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit window (" DRM_RECT_FMT ") badly positioned\n",
+ crtc->base.base.id, crtc->base.name, DRM_RECT_ARG(dst));
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static int intel_pch_pfit_check_src_size(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
+ int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
+ int max_src_w, max_src_h;
+
+ if (DISPLAY_VER(display) >= 8) {
+ max_src_w = 4096;
+ max_src_h = 4096;
+ } else if (DISPLAY_VER(display) >= 7) {
+ /*
+ * PF0 7x5 capable
+ * PF1 3x3 capable (could be switched to 7x5
+ * mode on HSW when PF2 unused)
+ * PF2 3x3 capable
+ *
+ * This assumes we use a 1:1 mapping between pipe and PF.
+ */
+ max_src_w = crtc->pipe == PIPE_A ? 4096 : 2048;
+ max_src_h = 4096;
+ } else {
+ max_src_w = 4096;
+ max_src_h = 4096;
+ }
+
+ if (pipe_src_w > max_src_w || pipe_src_h > max_src_h) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] source size (%dx%d) exceeds pfit max (%dx%d)\n",
+ crtc->base.base.id, crtc->base.name,
+ pipe_src_w, pipe_src_h, max_src_w, max_src_h);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static int intel_pch_pfit_check_scaling(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ const struct drm_rect *dst = &crtc_state->pch_pfit.dst;
+ int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
+ int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
+ int hscale, vscale, max_scale = 0x12000; /* 1.125 */
+ struct drm_rect src;
+
+ drm_rect_init(&src, 0, 0, pipe_src_w << 16, pipe_src_h << 16);
+
+ hscale = drm_rect_calc_hscale(&src, dst, 0, max_scale);
+ if (hscale < 0) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit horizontal downscaling (%d->%d) exceeds max (0x%x)\n",
+ crtc->base.base.id, crtc->base.name,
+ pipe_src_w, drm_rect_width(dst),
+ max_scale);
+ return hscale;
+ }
+
+ vscale = drm_rect_calc_vscale(&src, dst, 0, max_scale);
+ if (vscale < 0) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit vertical downscaling (%d->%d) exceeds max (0x%x)\n",
+ crtc->base.base.id, crtc->base.name,
+ pipe_src_h, drm_rect_height(dst),
+ max_scale);
+ return vscale;
+ }
+
+ return 0;
+}
+
+static int intel_pch_pfit_check_timings(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ const struct drm_display_mode *adjusted_mode =
+ &crtc_state->hw.adjusted_mode;
+
+ if (adjusted_mode->crtc_vdisplay < 7) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] vertical active (%d) below minimum (%d) for pfit\n",
+ crtc->base.base.id, crtc->base.name,
+ adjusted_mode->crtc_vdisplay, 7);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static int intel_pch_pfit_check_cloning(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+
+ /*
+ * The panel fitter is in the pipe and thus would affect every
+ * cloned output. The relevant properties (scaling mode, TV
+ * margins) are per-connector so we'd have to make sure each
+ * output sets them up identically. Seems like a very niche use
+ * case so let's just reject cloning entirely when pfit is used.
+ */
+ if (crtc_state->uapi.encoder_mask &&
+ !is_power_of_2(crtc_state->uapi.encoder_mask)) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] no pfit when cloning\n",
+ crtc->base.base.id, crtc->base.name);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+/* adjusted_mode has been preset to be the panel's fixed mode */
+static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
+ const struct drm_connector_state *conn_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ const struct drm_display_mode *adjusted_mode =
+ &crtc_state->hw.adjusted_mode;
+ int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
+ int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
+ int ret, x, y, width, height;
+
+ /* Native modes don't need fitting */
+ if (adjusted_mode->crtc_hdisplay == pipe_src_w &&
+ adjusted_mode->crtc_vdisplay == pipe_src_h &&
+ crtc_state->output_format != INTEL_OUTPUT_FORMAT_YCBCR420)
+ return 0;
+
+ switch (conn_state->scaling_mode) {
+ case DRM_MODE_SCALE_CENTER:
+ width = pipe_src_w;
+ height = pipe_src_h;
+ x = (adjusted_mode->crtc_hdisplay - width + 1)/2;
+ y = (adjusted_mode->crtc_vdisplay - height + 1)/2;
+ break;
+
+ case DRM_MODE_SCALE_ASPECT:
+ /* Scale but preserve the aspect ratio */
+ {
+ u32 scaled_width = adjusted_mode->crtc_hdisplay * pipe_src_h;
+ u32 scaled_height = pipe_src_w * adjusted_mode->crtc_vdisplay;
+
+ if (scaled_width > scaled_height) { /* pillar */
+ width = scaled_height / pipe_src_h;
+ if (width & 1)
+ width++;
+ x = (adjusted_mode->crtc_hdisplay - width + 1) / 2;
+ y = 0;
+ height = adjusted_mode->crtc_vdisplay;
+ } else if (scaled_width < scaled_height) { /* letter */
+ height = scaled_width / pipe_src_w;
+ if (height & 1)
+ height++;
+ y = (adjusted_mode->crtc_vdisplay - height + 1) / 2;
+ x = 0;
+ width = adjusted_mode->crtc_hdisplay;
+ } else {
+ x = y = 0;
+ width = adjusted_mode->crtc_hdisplay;
+ height = adjusted_mode->crtc_vdisplay;
+ }
+ }
+ break;
+
+ case DRM_MODE_SCALE_NONE:
+ WARN_ON(adjusted_mode->crtc_hdisplay != pipe_src_w);
+ WARN_ON(adjusted_mode->crtc_vdisplay != pipe_src_h);
+ fallthrough;
+ case DRM_MODE_SCALE_FULLSCREEN:
+ x = y = 0;
+ width = adjusted_mode->crtc_hdisplay;
+ height = adjusted_mode->crtc_vdisplay;
+ break;
+
+ default:
+ MISSING_CASE(conn_state->scaling_mode);
+ return -EINVAL;
+ }
+
+ drm_rect_init(&crtc_state->pch_pfit.dst,
+ x, y, width, height);
+ crtc_state->pch_pfit.enabled = true;
+
+ /*
+ * SKL+ have unified scalers for pipes/planes so the
+ * checks are done in a single place for all scalers.
+ */
+ if (DISPLAY_VER(display) >= 9)
+ return 0;
+
+ ret = intel_pch_pfit_check_dst_window(crtc_state);
+ if (ret)
+ return ret;
+
+ ret = intel_pch_pfit_check_src_size(crtc_state);
+ if (ret)
+ return ret;
+
+ ret = intel_pch_pfit_check_scaling(crtc_state);
+ if (ret)
+ return ret;
+
+ ret = intel_pch_pfit_check_timings(crtc_state);
+ if (ret)
+ return ret;
+
+ ret = intel_pch_pfit_check_cloning(crtc_state);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
+static void
+centre_horizontally(struct drm_display_mode *adjusted_mode,
+ int width)
+{
+ u32 border, sync_pos, blank_width, sync_width;
+
+ /* keep the hsync and hblank widths constant */
+ sync_width = adjusted_mode->crtc_hsync_end - adjusted_mode->crtc_hsync_start;
+ blank_width = adjusted_mode->crtc_hblank_end - adjusted_mode->crtc_hblank_start;
+ sync_pos = (blank_width - sync_width + 1) / 2;
+
+ border = (adjusted_mode->crtc_hdisplay - width + 1) / 2;
+ border += border & 1; /* make the border even */
+
+ adjusted_mode->crtc_hdisplay = width;
+ adjusted_mode->crtc_hblank_start = width + border;
+ adjusted_mode->crtc_hblank_end = adjusted_mode->crtc_hblank_start + blank_width;
+
+ adjusted_mode->crtc_hsync_start = adjusted_mode->crtc_hblank_start + sync_pos;
+ adjusted_mode->crtc_hsync_end = adjusted_mode->crtc_hsync_start + sync_width;
+}
+
+static void
+centre_vertically(struct drm_display_mode *adjusted_mode,
+ int height)
+{
+ u32 border, sync_pos, blank_width, sync_width;
+
+ /* keep the vsync and vblank widths constant */
+ sync_width = adjusted_mode->crtc_vsync_end - adjusted_mode->crtc_vsync_start;
+ blank_width = adjusted_mode->crtc_vblank_end - adjusted_mode->crtc_vblank_start;
+ sync_pos = (blank_width - sync_width + 1) / 2;
+
+ border = (adjusted_mode->crtc_vdisplay - height + 1) / 2;
+
+ adjusted_mode->crtc_vdisplay = height;
+ adjusted_mode->crtc_vblank_start = height + border;
+ adjusted_mode->crtc_vblank_end = adjusted_mode->crtc_vblank_start + blank_width;
+
+ adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vblank_start + sync_pos;
+ adjusted_mode->crtc_vsync_end = adjusted_mode->crtc_vsync_start + sync_width;
+}
+
+static u32 panel_fitter_scaling(u32 source, u32 target)
+{
+ /*
+ * Floating point operation is not supported. So the FACTOR
+ * is defined, which can avoid the floating point computation
+ * when calculating the panel ratio.
+ */
+#define ACCURACY 12
+#define FACTOR (1 << ACCURACY)
+ u32 ratio = source * FACTOR / target;
+ return (FACTOR * ratio + FACTOR/2) / FACTOR;
+}
+
+static void i965_scale_aspect(struct intel_crtc_state *crtc_state,
+ u32 *pfit_control)
+{
+ const struct drm_display_mode *adjusted_mode =
+ &crtc_state->hw.adjusted_mode;
+ int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
+ int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
+ u32 scaled_width = adjusted_mode->crtc_hdisplay * pipe_src_h;
+ u32 scaled_height = pipe_src_w * adjusted_mode->crtc_vdisplay;
+
+ /* 965+ is easy, it does everything in hw */
+ if (scaled_width > scaled_height)
+ *pfit_control |= PFIT_ENABLE |
+ PFIT_SCALING_PILLAR;
+ else if (scaled_width < scaled_height)
+ *pfit_control |= PFIT_ENABLE |
+ PFIT_SCALING_LETTER;
+ else if (adjusted_mode->crtc_hdisplay != pipe_src_w)
+ *pfit_control |= PFIT_ENABLE | PFIT_SCALING_AUTO;
+}
+
+static void i9xx_scale_aspect(struct intel_crtc_state *crtc_state,
+ u32 *pfit_control, u32 *pfit_pgm_ratios,
+ u32 *border)
+{
+ struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
+ int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
+ int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
+ u32 scaled_width = adjusted_mode->crtc_hdisplay * pipe_src_h;
+ u32 scaled_height = pipe_src_w * adjusted_mode->crtc_vdisplay;
+ u32 bits;
+
+ /*
+ * For earlier chips we have to calculate the scaling
+ * ratio by hand and program it into the
+ * PFIT_PGM_RATIO register
+ */
+ if (scaled_width > scaled_height) { /* pillar */
+ centre_horizontally(adjusted_mode,
+ scaled_height / pipe_src_h);
+
+ *border = LVDS_BORDER_ENABLE;
+ if (pipe_src_h != adjusted_mode->crtc_vdisplay) {
+ bits = panel_fitter_scaling(pipe_src_h,
+ adjusted_mode->crtc_vdisplay);
+
+ *pfit_pgm_ratios |= (PFIT_HORIZ_SCALE(bits) |
+ PFIT_VERT_SCALE(bits));
+ *pfit_control |= (PFIT_ENABLE |
+ PFIT_VERT_INTERP_BILINEAR |
+ PFIT_HORIZ_INTERP_BILINEAR);
+ }
+ } else if (scaled_width < scaled_height) { /* letter */
+ centre_vertically(adjusted_mode,
+ scaled_width / pipe_src_w);
+
+ *border = LVDS_BORDER_ENABLE;
+ if (pipe_src_w != adjusted_mode->crtc_hdisplay) {
+ bits = panel_fitter_scaling(pipe_src_w,
+ adjusted_mode->crtc_hdisplay);
+
+ *pfit_pgm_ratios |= (PFIT_HORIZ_SCALE(bits) |
+ PFIT_VERT_SCALE(bits));
+ *pfit_control |= (PFIT_ENABLE |
+ PFIT_VERT_INTERP_BILINEAR |
+ PFIT_HORIZ_INTERP_BILINEAR);
+ }
+ } else {
+ /* Aspects match, Let hw scale both directions */
+ *pfit_control |= (PFIT_ENABLE |
+ PFIT_VERT_AUTO_SCALE |
+ PFIT_HORIZ_AUTO_SCALE |
+ PFIT_VERT_INTERP_BILINEAR |
+ PFIT_HORIZ_INTERP_BILINEAR);
+ }
+}
+
+static int intel_gmch_pfit_check_timings(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ const struct drm_display_mode *adjusted_mode =
+ &crtc_state->hw.adjusted_mode;
+ int min;
+
+ if (DISPLAY_VER(display) >= 4)
+ min = 3;
+ else
+ min = 2;
+
+ if (adjusted_mode->crtc_hdisplay < min) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] horizontal active (%d) below minimum (%d) for pfit\n",
+ crtc->base.base.id, crtc->base.name,
+ adjusted_mode->crtc_hdisplay, min);
+ return -EINVAL;
+ }
+
+ if (adjusted_mode->crtc_vdisplay < min) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] vertical active (%d) below minimum (%d) for pfit\n",
+ crtc->base.base.id, crtc->base.name,
+ adjusted_mode->crtc_vdisplay, min);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
+ const struct drm_connector_state *conn_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ u32 pfit_control = 0, pfit_pgm_ratios = 0, border = 0;
+ struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
+ int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
+ int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
+
+ /* Native modes don't need fitting */
+ if (adjusted_mode->crtc_hdisplay == pipe_src_w &&
+ adjusted_mode->crtc_vdisplay == pipe_src_h)
+ goto out;
+
+ /*
+ * TODO: implement downscaling for i965+. Need to account
+ * for downscaling in intel_crtc_compute_pixel_rate().
+ */
+ if (adjusted_mode->crtc_hdisplay < pipe_src_w) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit horizontal downscaling (%d->%d) not supported\n",
+ crtc->base.base.id, crtc->base.name,
+ pipe_src_w, adjusted_mode->crtc_hdisplay);
+ return -EINVAL;
+ }
+ if (adjusted_mode->crtc_vdisplay < pipe_src_h) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] pfit vertical downscaling (%d->%d) not supported\n",
+ crtc->base.base.id, crtc->base.name,
+ pipe_src_h, adjusted_mode->crtc_vdisplay);
+ return -EINVAL;
+ }
+
+ switch (conn_state->scaling_mode) {
+ case DRM_MODE_SCALE_CENTER:
+ /*
+ * For centered modes, we have to calculate border widths &
+ * heights and modify the values programmed into the CRTC.
+ */
+ centre_horizontally(adjusted_mode, pipe_src_w);
+ centre_vertically(adjusted_mode, pipe_src_h);
+ border = LVDS_BORDER_ENABLE;
+ break;
+ case DRM_MODE_SCALE_ASPECT:
+ /* Scale but preserve the aspect ratio */
+ if (DISPLAY_VER(display) >= 4)
+ i965_scale_aspect(crtc_state, &pfit_control);
+ else
+ i9xx_scale_aspect(crtc_state, &pfit_control,
+ &pfit_pgm_ratios, &border);
+ break;
+ case DRM_MODE_SCALE_FULLSCREEN:
+ /*
+ * Full scaling, even if it changes the aspect ratio.
+ * Fortunately this is all done for us in hw.
+ */
+ if (pipe_src_h != adjusted_mode->crtc_vdisplay ||
+ pipe_src_w != adjusted_mode->crtc_hdisplay) {
+ pfit_control |= PFIT_ENABLE;
+ if (DISPLAY_VER(display) >= 4)
+ pfit_control |= PFIT_SCALING_AUTO;
+ else
+ pfit_control |= (PFIT_VERT_AUTO_SCALE |
+ PFIT_VERT_INTERP_BILINEAR |
+ PFIT_HORIZ_AUTO_SCALE |
+ PFIT_HORIZ_INTERP_BILINEAR);
+ }
+ break;
+ default:
+ MISSING_CASE(conn_state->scaling_mode);
+ return -EINVAL;
+ }
+
+ /* 965+ wants fuzzy fitting */
+ /* FIXME: handle multiple panels by failing gracefully */
+ if (DISPLAY_VER(display) >= 4)
+ pfit_control |= PFIT_PIPE(crtc->pipe) | PFIT_FILTER_FUZZY;
+
+out:
+ if ((pfit_control & PFIT_ENABLE) == 0) {
+ pfit_control = 0;
+ pfit_pgm_ratios = 0;
+ }
+
+ /* Make sure pre-965 set dither correctly for 18bpp panels. */
+ if (DISPLAY_VER(display) < 4 && crtc_state->pipe_bpp == 18)
+ pfit_control |= PFIT_PANEL_8TO6_DITHER_ENABLE;
+
+ crtc_state->gmch_pfit.control = pfit_control;
+ crtc_state->gmch_pfit.pgm_ratios = pfit_pgm_ratios;
+ crtc_state->gmch_pfit.lvds_border_bits = border;
+
+ if ((pfit_control & PFIT_ENABLE) == 0)
+ return 0;
+
+ return intel_gmch_pfit_check_timings(crtc_state);
+}
+
+int intel_panel_fitting(struct intel_crtc_state *crtc_state,
+ const struct drm_connector_state *conn_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+
+ if (HAS_GMCH(display))
+ return gmch_panel_fitting(crtc_state, conn_state);
+ else
+ return pch_panel_fitting(crtc_state, conn_state);
+}
diff --git a/drivers/gpu/drm/i915/display/intel_pfit.h b/drivers/gpu/drm/i915/display/intel_pfit.h
new file mode 100644
index 000000000000..add8d78de2c9
--- /dev/null
+++ b/drivers/gpu/drm/i915/display/intel_pfit.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2024 Intel Corporation
+ */
+
+#ifndef __INTEL_PFIT_H__
+#define __INTEL_PFIT_H__
+
+struct drm_connector_state;
+struct intel_crtc_state;
+
+int intel_panel_fitting(struct intel_crtc_state *crtc_state,
+ const struct drm_connector_state *conn_state);
+
+#endif /* __INTEL_PFIT_H__ */
diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
index 32d15bd9a358..9383eedee2d4 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
@@ -44,6 +44,7 @@
#include "intel_dsi_vbt.h"
#include "intel_fifo_underrun.h"
#include "intel_panel.h"
+#include "intel_pfit.h"
#include "skl_scaler.h"
#include "vlv_dsi.h"
#include "vlv_dsi_pll.h"
diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index da80c29aa363..bc7a04ce69fd 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -252,6 +252,7 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \
i915-display/intel_modeset_setup.o \
i915-display/intel_modeset_verify.o \
i915-display/intel_panel.o \
+ i915-display/intel_pfit.o \
i915-display/intel_pmdemand.o \
i915-display/intel_pps.o \
i915-display/intel_psr.o \
--
2.45.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 9/9] drm/i915: Remove ckey/format checks from skl_update_scaler_plane()
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
` (7 preceding siblings ...)
2024-10-16 14:31 ` [PATCH 8/9] drm/i915/pfit: Extract intel_pfit.c Ville Syrjala
@ 2024-10-16 14:31 ` Ville Syrjala
2024-10-22 9:04 ` Jani Nikula
2024-10-16 19:58 ` ✓ Fi.CI.BAT: success for drm/i915/pfit: Panel fitter stuff Patchwork
` (3 subsequent siblings)
12 siblings, 1 reply; 24+ messages in thread
From: Ville Syrjala @ 2024-10-16 14:31 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
skl_plane_check() already takes care to reject scaling when an
unsupported pixel format or color keying is used. No need to
replicate that in the scaler code.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/skl_scaler.c | 77 +++--------------------
1 file changed, 10 insertions(+), 67 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
index baa601d27815..7dbc99b02eaa 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.c
+++ b/drivers/gpu/drm/i915/display/skl_scaler.c
@@ -272,7 +272,6 @@ int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
to_intel_plane(plane_state->uapi.plane);
struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev);
struct drm_framebuffer *fb = plane_state->hw.fb;
- int ret;
bool force_detach = !fb || !plane_state->uapi.visible;
bool need_scaler = false;
@@ -281,72 +280,16 @@ int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
fb && intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier))
need_scaler = true;
- ret = skl_update_scaler(crtc_state, force_detach,
- drm_plane_index(&intel_plane->base),
- &plane_state->scaler_id,
- drm_rect_width(&plane_state->uapi.src) >> 16,
- drm_rect_height(&plane_state->uapi.src) >> 16,
- drm_rect_width(&plane_state->uapi.dst),
- drm_rect_height(&plane_state->uapi.dst),
- fb ? fb->format : NULL,
- fb ? fb->modifier : 0,
- need_scaler);
-
- if (ret || plane_state->scaler_id < 0)
- return ret;
-
- /* check colorkey */
- if (plane_state->ckey.flags) {
- drm_dbg_kms(&dev_priv->drm,
- "[PLANE:%d:%s] scaling with color key not allowed",
- intel_plane->base.base.id,
- intel_plane->base.name);
- return -EINVAL;
- }
-
- /* Check src format */
- switch (fb->format->format) {
- case DRM_FORMAT_RGB565:
- case DRM_FORMAT_XBGR8888:
- case DRM_FORMAT_XRGB8888:
- case DRM_FORMAT_ABGR8888:
- case DRM_FORMAT_ARGB8888:
- case DRM_FORMAT_XRGB2101010:
- case DRM_FORMAT_XBGR2101010:
- case DRM_FORMAT_ARGB2101010:
- case DRM_FORMAT_ABGR2101010:
- case DRM_FORMAT_YUYV:
- case DRM_FORMAT_YVYU:
- case DRM_FORMAT_UYVY:
- case DRM_FORMAT_VYUY:
- case DRM_FORMAT_NV12:
- case DRM_FORMAT_XYUV8888:
- case DRM_FORMAT_P010:
- case DRM_FORMAT_P012:
- case DRM_FORMAT_P016:
- case DRM_FORMAT_Y210:
- case DRM_FORMAT_Y212:
- case DRM_FORMAT_Y216:
- case DRM_FORMAT_XVYU2101010:
- case DRM_FORMAT_XVYU12_16161616:
- case DRM_FORMAT_XVYU16161616:
- break;
- case DRM_FORMAT_XBGR16161616F:
- case DRM_FORMAT_ABGR16161616F:
- case DRM_FORMAT_XRGB16161616F:
- case DRM_FORMAT_ARGB16161616F:
- if (DISPLAY_VER(dev_priv) >= 11)
- break;
- fallthrough;
- default:
- drm_dbg_kms(&dev_priv->drm,
- "[PLANE:%d:%s] FB:%d unsupported scaling format 0x%x\n",
- intel_plane->base.base.id, intel_plane->base.name,
- fb->base.id, fb->format->format);
- return -EINVAL;
- }
-
- return 0;
+ return skl_update_scaler(crtc_state, force_detach,
+ drm_plane_index(&intel_plane->base),
+ &plane_state->scaler_id,
+ drm_rect_width(&plane_state->uapi.src) >> 16,
+ drm_rect_height(&plane_state->uapi.src) >> 16,
+ drm_rect_width(&plane_state->uapi.dst),
+ drm_rect_height(&plane_state->uapi.dst),
+ fb ? fb->format : NULL,
+ fb ? fb->modifier : 0,
+ need_scaler);
}
static int intel_atomic_setup_scaler(struct intel_crtc_scaler_state *scaler_state,
--
2.45.2
^ permalink raw reply related [flat|nested] 24+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915/pfit: Panel fitter stuff
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
` (8 preceding siblings ...)
2024-10-16 14:31 ` [PATCH 9/9] drm/i915: Remove ckey/format checks from skl_update_scaler_plane() Ville Syrjala
@ 2024-10-16 19:58 ` Patchwork
2024-10-16 19:59 ` ✗ Fi.CI.CHECKPATCH: warning " Patchwork
` (2 subsequent siblings)
12 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2024-10-16 19:58 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 11164 bytes --]
== Series Details ==
Series: drm/i915/pfit: Panel fitter stuff
URL : https://patchwork.freedesktop.org/series/140066/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_15541 -> Patchwork_140066v1
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/index.html
Participating hosts (42 -> 42)
------------------------------
Additional (1): bat-arls-1
Missing (1): fi-snb-2520m
Known issues
------------
Here are the changes found in Patchwork_140066v1 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@debugfs_test@basic-hwmon:
- bat-arls-1: NOTRUN -> [SKIP][1] ([i915#9318])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@debugfs_test@basic-hwmon.html
* igt@gem_lmem_swapping@basic:
- bat-arls-1: NOTRUN -> [SKIP][2] ([i915#10213] / [i915#11671]) +3 other tests skip
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@gem_lmem_swapping@basic.html
* igt@gem_mmap@basic:
- bat-arls-1: NOTRUN -> [SKIP][3] ([i915#11343] / [i915#4083])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@gem_mmap@basic.html
* igt@gem_render_tiled_blits@basic:
- bat-arls-1: NOTRUN -> [SKIP][4] ([i915#10197] / [i915#10211] / [i915#4079])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@gem_render_tiled_blits@basic.html
* igt@gem_tiled_blits@basic:
- bat-arls-1: NOTRUN -> [SKIP][5] ([i915#10196] / [i915#4077]) +2 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@gem_tiled_blits@basic.html
* igt@gem_tiled_pread_basic:
- bat-arls-1: NOTRUN -> [SKIP][6] ([i915#10206] / [i915#4079])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@gem_tiled_pread_basic.html
* igt@i915_module_load@reload:
- fi-kbl-7567u: [PASS][7] -> [DMESG-WARN][8] ([i915#11621] / [i915#180] / [i915#1982])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/fi-kbl-7567u/igt@i915_module_load@reload.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/fi-kbl-7567u/igt@i915_module_load@reload.html
* igt@i915_pm_rps@basic-api:
- bat-arls-1: NOTRUN -> [SKIP][9] ([i915#10209] / [i915#11681])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@i915_pm_rps@basic-api.html
* igt@i915_selftest@live:
- bat-arls-2: [PASS][10] -> [ABORT][11] ([i915#12133])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/bat-arls-2/igt@i915_selftest@live.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-2/igt@i915_selftest@live.html
* igt@i915_selftest@live@sanitycheck:
- fi-kbl-7567u: [PASS][12] -> [DMESG-WARN][13] ([i915#11621]) +46 other tests dmesg-warn
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
* igt@i915_selftest@live@workarounds:
- bat-arls-2: [PASS][14] -> [ABORT][15] ([i915#12061])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/bat-arls-2/igt@i915_selftest@live@workarounds.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-2/igt@i915_selftest@live@workarounds.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-arls-1: NOTRUN -> [SKIP][16] ([i915#10200] / [i915#12203])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_addfb_basic@basic-y-tiled-legacy:
- bat-arls-1: NOTRUN -> [SKIP][17] ([i915#10200]) +8 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@kms_addfb_basic@basic-y-tiled-legacy.html
* igt@kms_busy@basic@flip:
- fi-kbl-7567u: [PASS][18] -> [DMESG-WARN][19] ([i915#180])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/fi-kbl-7567u/igt@kms_busy@basic@flip.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/fi-kbl-7567u/igt@kms_busy@basic@flip.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-arls-1: NOTRUN -> [SKIP][20] ([i915#10202] / [i915#11346]) +1 other test skip
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-arls-1: NOTRUN -> [SKIP][21] ([i915#11346] / [i915#9886])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@kms_dsc@dsc-basic.html
* igt@kms_force_connector_basic@force-load-detect:
- bat-arls-1: NOTRUN -> [SKIP][22] ([i915#10207] / [i915#11346])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_pm_backlight@basic-brightness:
- bat-arls-1: NOTRUN -> [SKIP][23] ([i915#11346] / [i915#9812])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@kms_pm_backlight@basic-brightness.html
* igt@kms_pm_rpm@basic-pci-d3-state:
- fi-kbl-7567u: [PASS][24] -> [DMESG-WARN][25] ([i915#11621] / [i915#180]) +51 other tests dmesg-warn
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
* igt@kms_psr@psr-primary-mmap-gtt:
- bat-arls-1: NOTRUN -> [SKIP][26] ([i915#11346] / [i915#9732]) +3 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@kms_psr@psr-primary-mmap-gtt.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-arls-1: NOTRUN -> [SKIP][27] ([i915#10208] / [i915#8809])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-fence-read:
- bat-arls-1: NOTRUN -> [SKIP][28] ([i915#10212] / [i915#3708])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@prime_vgem@basic-fence-read.html
* igt@prime_vgem@basic-gtt:
- bat-arls-1: NOTRUN -> [SKIP][29] ([i915#10196] / [i915#3708] / [i915#4077]) +1 other test skip
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@prime_vgem@basic-gtt.html
* igt@prime_vgem@basic-read:
- bat-arls-1: NOTRUN -> [SKIP][30] ([i915#10214] / [i915#3708])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@prime_vgem@basic-read.html
* igt@prime_vgem@basic-write:
- bat-arls-1: NOTRUN -> [SKIP][31] ([i915#10216] / [i915#3708])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-arls-1/igt@prime_vgem@basic-write.html
#### Possible fixes ####
* igt@kms_chamelium_frames@dp-crc-fast:
- bat-dg2-13: [FAIL][32] -> [PASS][33]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/bat-dg2-13/igt@kms_chamelium_frames@dp-crc-fast.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-dg2-13/igt@kms_chamelium_frames@dp-crc-fast.html
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
- bat-dg2-11: [SKIP][34] ([i915#9197]) -> [PASS][35] +2 other tests pass
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
[i915#10196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10196
[i915#10197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10197
[i915#10200]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10200
[i915#10202]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10202
[i915#10206]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10206
[i915#10207]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10207
[i915#10208]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10208
[i915#10209]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10209
[i915#10211]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10211
[i915#10212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10212
[i915#10213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10213
[i915#10214]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10214
[i915#10216]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10216
[i915#11343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11343
[i915#11346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11346
[i915#11621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11621
[i915#11671]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11671
[i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#12133]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12133
[i915#12203]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12203
[i915#180]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/180
[i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809
[i915#9197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9197
[i915#9318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9318
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
[i915#9886]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9886
Build changes
-------------
* Linux: CI_DRM_15541 -> Patchwork_140066v1
CI-20190529: 20190529
CI_DRM_15541: 87312f4bbb70018f831a8ef565db9cdc37b4da67 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8077: 42f9e9702f74a4993318adea936baaa186084689 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_140066v1: 87312f4bbb70018f831a8ef565db9cdc37b4da67 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/index.html
[-- Attachment #2: Type: text/html, Size: 13517 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for drm/i915/pfit: Panel fitter stuff
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
` (9 preceding siblings ...)
2024-10-16 19:58 ` ✓ Fi.CI.BAT: success for drm/i915/pfit: Panel fitter stuff Patchwork
@ 2024-10-16 19:59 ` Patchwork
2024-10-16 19:59 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-10-16 22:16 ` ✗ Fi.CI.IGT: failure " Patchwork
12 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2024-10-16 19:59 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/pfit: Panel fitter stuff
URL : https://patchwork.freedesktop.org/series/140066/
State : warning
== Summary ==
Error: dim checkpatch failed
df5c45ccdc0b drm/i915/pfit: Check pipe source size against pfit limits on ILK-BDW
32e09391e38a drm/i915/pfit: Check pfit scaling factors on ILK-BDW
da314a733c24 drm/i915/pfit: Reject pfit downscaling for GMCH platforms
f55885cd7645 drm/i915/pfit: Check pfit minimum timings in pre-SKL
dde2416f0585 drm/i915/pfit: Reject cloning when using pfit on ILK-BDW
458d45d38d7b drm/i915/pfit: Check pfit destination window on ILK-BDW
b13556b67b99 drm/i915/panel: Convert panel code to intel_display
531fe8f3bab7 drm/i915/pfit: Extract intel_pfit.c
-:657: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#657:
new file mode 100644
-:861: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#861: FILE: drivers/gpu/drm/i915/display/intel_pfit.c:200:
+ x = (adjusted_mode->crtc_hdisplay - width + 1)/2;
^
-:862: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#862: FILE: drivers/gpu/drm/i915/display/intel_pfit.c:201:
+ y = (adjusted_mode->crtc_vdisplay - height + 1)/2;
^
-:886: CHECK:MULTIPLE_ASSIGNMENTS: multiple assignments should be avoided
#886: FILE: drivers/gpu/drm/i915/display/intel_pfit.c:225:
+ x = y = 0;
-:898: CHECK:MULTIPLE_ASSIGNMENTS: multiple assignments should be avoided
#898: FILE: drivers/gpu/drm/i915/display/intel_pfit.c:237:
+ x = y = 0;
-:995: WARNING:LINE_SPACING: Missing a blank line after declarations
#995: FILE: drivers/gpu/drm/i915/display/intel_pfit.c:334:
+ u32 ratio = source * FACTOR / target;
+ return (FACTOR * ratio + FACTOR/2) / FACTOR;
-:995: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#995: FILE: drivers/gpu/drm/i915/display/intel_pfit.c:334:
+ return (FACTOR * ratio + FACTOR/2) / FACTOR;
^
total: 0 errors, 2 warnings, 5 checks, 1189 lines checked
55ebe385d8e2 drm/i915: Remove ckey/format checks from skl_update_scaler_plane()
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✗ Fi.CI.SPARSE: warning for drm/i915/pfit: Panel fitter stuff
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
` (10 preceding siblings ...)
2024-10-16 19:59 ` ✗ Fi.CI.CHECKPATCH: warning " Patchwork
@ 2024-10-16 19:59 ` Patchwork
2024-10-16 22:16 ` ✗ Fi.CI.IGT: failure " Patchwork
12 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2024-10-16 19:59 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/pfit: Panel fitter stuff
URL : https://patchwork.freedesktop.org/series/140066/
State : warning
== Summary ==
Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✗ Fi.CI.IGT: failure for drm/i915/pfit: Panel fitter stuff
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
` (11 preceding siblings ...)
2024-10-16 19:59 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2024-10-16 22:16 ` Patchwork
12 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2024-10-16 22:16 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 99034 bytes --]
== Series Details ==
Series: drm/i915/pfit: Panel fitter stuff
URL : https://patchwork.freedesktop.org/series/140066/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_15541_full -> Patchwork_140066v1_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_140066v1_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_140066v1_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (8 -> 8)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_140066v1_full:
### IGT changes ###
#### Possible regressions ####
* igt@gem_exec_schedule@smoketest-all:
- shard-dg1: NOTRUN -> [INCOMPLETE][1] +1 other test incomplete
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-16/igt@gem_exec_schedule@smoketest-all.html
- shard-glk: NOTRUN -> [INCOMPLETE][2]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk8/igt@gem_exec_schedule@smoketest-all.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- shard-dg1: [PASS][3] -> [INCOMPLETE][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg1-19/igt@kms_pipe_crc_basic@suspend-read-crc.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-13/igt@kms_pipe_crc_basic@suspend-read-crc.html
Known issues
------------
Here are the changes found in Patchwork_140066v1_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@api_intel_bb@blit-reloc-purge-cache:
- shard-dg2: NOTRUN -> [SKIP][5] ([i915#8411])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@api_intel_bb@blit-reloc-purge-cache.html
* igt@device_reset@unbind-reset-rebind:
- shard-dg1: NOTRUN -> [ABORT][6] ([i915#11814] / [i915#11815])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-18/igt@device_reset@unbind-reset-rebind.html
* igt@drm_fdinfo@busy-idle-check-all@vcs0:
- shard-dg2: NOTRUN -> [SKIP][7] ([i915#8414]) +7 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@drm_fdinfo@busy-idle-check-all@vcs0.html
* igt@drm_fdinfo@most-busy-check-all:
- shard-dg1: NOTRUN -> [SKIP][8] ([i915#8414]) +5 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-14/igt@drm_fdinfo@most-busy-check-all.html
* igt@drm_fdinfo@most-busy-check-all@vcs0:
- shard-mtlp: NOTRUN -> [SKIP][9] ([i915#8414]) +6 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@drm_fdinfo@most-busy-check-all@vcs0.html
* igt@fbdev@eof:
- shard-dg2: [PASS][10] -> [SKIP][11] ([i915#2582]) +1 other test skip
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@fbdev@eof.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@fbdev@eof.html
* igt@gem_ccs@block-copy-compressed:
- shard-rkl: NOTRUN -> [SKIP][12] ([i915#3555] / [i915#9323])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-4/igt@gem_ccs@block-copy-compressed.html
- shard-tglu: NOTRUN -> [SKIP][13] ([i915#3555] / [i915#9323])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-3/igt@gem_ccs@block-copy-compressed.html
* igt@gem_ctx_persistence@heartbeat-hostile:
- shard-mtlp: NOTRUN -> [SKIP][14] ([i915#8555])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@gem_ctx_persistence@heartbeat-hostile.html
* igt@gem_ctx_persistence@hostile:
- shard-dg2: NOTRUN -> [FAIL][15] ([i915#11980])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@gem_ctx_persistence@hostile.html
- shard-tglu: [PASS][16] -> [FAIL][17] ([i915#11980])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-tglu-3/igt@gem_ctx_persistence@hostile.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-8/igt@gem_ctx_persistence@hostile.html
* igt@gem_ctx_sseu@invalid-sseu:
- shard-dg2: NOTRUN -> [SKIP][18] ([i915#280])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@gem_ctx_sseu@invalid-sseu.html
- shard-tglu: NOTRUN -> [SKIP][19] ([i915#280])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-4/igt@gem_ctx_sseu@invalid-sseu.html
* igt@gem_exec_balancer@parallel-balancer:
- shard-rkl: NOTRUN -> [SKIP][20] ([i915#4525])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-4/igt@gem_exec_balancer@parallel-balancer.html
* igt@gem_exec_balancer@sliced:
- shard-dg2: NOTRUN -> [SKIP][21] ([i915#4812])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@gem_exec_balancer@sliced.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [PASS][22] -> [FAIL][23] ([i915#2842]) +1 other test fail
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-glk1/igt@gem_exec_fair@basic-pace-share@rcs0.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_fair@basic-pace@vecs0:
- shard-rkl: [PASS][24] -> [FAIL][25] ([i915#2842])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-rkl-2/igt@gem_exec_fair@basic-pace@vecs0.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-5/igt@gem_exec_fair@basic-pace@vecs0.html
* igt@gem_exec_flush@basic-wb-ro-before-default:
- shard-dg2: NOTRUN -> [SKIP][26] ([i915#3539] / [i915#4852])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@gem_exec_flush@basic-wb-ro-before-default.html
* igt@gem_exec_reloc@basic-cpu:
- shard-dg1: NOTRUN -> [SKIP][27] ([i915#3281]) +1 other test skip
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-18/igt@gem_exec_reloc@basic-cpu.html
* igt@gem_exec_reloc@basic-wc-cpu:
- shard-mtlp: NOTRUN -> [SKIP][28] ([i915#3281]) +1 other test skip
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@gem_exec_reloc@basic-wc-cpu.html
* igt@gem_exec_reloc@basic-write-read-active:
- shard-dg2: NOTRUN -> [SKIP][29] ([i915#3281]) +3 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@gem_exec_reloc@basic-write-read-active.html
- shard-rkl: NOTRUN -> [SKIP][30] ([i915#3281]) +1 other test skip
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-4/igt@gem_exec_reloc@basic-write-read-active.html
* igt@gem_exec_suspend@basic-s0:
- shard-dg2: [PASS][31] -> [INCOMPLETE][32] ([i915#11441]) +1 other test incomplete
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@gem_exec_suspend@basic-s0.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-4/igt@gem_exec_suspend@basic-s0.html
* igt@gem_exec_suspend@basic-s4-devices:
- shard-dg2: [PASS][33] -> [ABORT][34] ([i915#7975] / [i915#8213]) +1 other test abort
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@gem_exec_suspend@basic-s4-devices.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-10/igt@gem_exec_suspend@basic-s4-devices.html
- shard-rkl: NOTRUN -> [ABORT][35] ([i915#7975] / [i915#8213]) +1 other test abort
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-1/igt@gem_exec_suspend@basic-s4-devices.html
* igt@gem_lmem_swapping@parallel-random-verify-ccs:
- shard-tglu: NOTRUN -> [SKIP][36] ([i915#4613]) +3 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-7/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
* igt@gem_lmem_swapping@random-engines:
- shard-glk: NOTRUN -> [SKIP][37] ([i915#4613])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk8/igt@gem_lmem_swapping@random-engines.html
* igt@gem_mmap_gtt@big-copy-xy:
- shard-dg1: NOTRUN -> [SKIP][38] ([i915#4077])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-18/igt@gem_mmap_gtt@big-copy-xy.html
* igt@gem_mmap_gtt@cpuset-basic-small-copy:
- shard-mtlp: NOTRUN -> [SKIP][39] ([i915#4077])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@gem_mmap_gtt@cpuset-basic-small-copy.html
* igt@gem_mmap_wc@bad-object:
- shard-dg1: NOTRUN -> [SKIP][40] ([i915#4083])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-16/igt@gem_mmap_wc@bad-object.html
* igt@gem_mmap_wc@invalid-flags:
- shard-dg2: NOTRUN -> [SKIP][41] ([i915#4083]) +2 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@gem_mmap_wc@invalid-flags.html
* igt@gem_pread@bench:
- shard-dg1: NOTRUN -> [SKIP][42] ([i915#3282])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-14/igt@gem_pread@bench.html
- shard-mtlp: NOTRUN -> [SKIP][43] ([i915#3282])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@gem_pread@bench.html
* igt@gem_pread@exhaustion:
- shard-dg2: NOTRUN -> [SKIP][44] ([i915#3282])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@gem_pread@exhaustion.html
- shard-tglu: NOTRUN -> [WARN][45] ([i915#2658])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-4/igt@gem_pread@exhaustion.html
* igt@gem_pxp@protected-raw-src-copy-not-readible:
- shard-dg2: NOTRUN -> [SKIP][46] ([i915#4270])
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@gem_pxp@protected-raw-src-copy-not-readible.html
- shard-rkl: NOTRUN -> [SKIP][47] ([i915#4270]) +1 other test skip
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-4/igt@gem_pxp@protected-raw-src-copy-not-readible.html
- shard-tglu: NOTRUN -> [SKIP][48] ([i915#4270]) +2 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-3/igt@gem_pxp@protected-raw-src-copy-not-readible.html
* igt@gem_render_copy@y-tiled-ccs-to-linear:
- shard-mtlp: NOTRUN -> [SKIP][49] ([i915#8428])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@gem_render_copy@y-tiled-ccs-to-linear.html
* igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs:
- shard-glk: NOTRUN -> [SKIP][50] +60 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk3/igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs.html
* igt@gem_render_copy@y-tiled-ccs-to-yf-tiled:
- shard-dg2: NOTRUN -> [SKIP][51] ([i915#5190] / [i915#8428])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@gem_render_copy@y-tiled-ccs-to-yf-tiled.html
* igt@gem_set_tiling_vs_blt@untiled-to-tiled:
- shard-dg2: NOTRUN -> [SKIP][52] ([i915#4079])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@gem_set_tiling_vs_blt@untiled-to-tiled.html
* igt@gem_tiled_blits@basic:
- shard-dg2: NOTRUN -> [SKIP][53] ([i915#4077]) +4 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@gem_tiled_blits@basic.html
* igt@gem_userptr_blits@invalid-mmap-offset-unsync:
- shard-mtlp: NOTRUN -> [SKIP][54] ([i915#3297])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html
* igt@gem_userptr_blits@unsync-overlap:
- shard-dg2: NOTRUN -> [SKIP][55] ([i915#3297])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@gem_userptr_blits@unsync-overlap.html
* igt@gem_userptr_blits@unsync-unmap-cycles:
- shard-tglu: NOTRUN -> [SKIP][56] ([i915#3297])
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-4/igt@gem_userptr_blits@unsync-unmap-cycles.html
* igt@gen9_exec_parse@bb-secure:
- shard-tglu: NOTRUN -> [SKIP][57] ([i915#2527] / [i915#2856])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-4/igt@gen9_exec_parse@bb-secure.html
* igt@i915_module_load@load:
- shard-tglu: NOTRUN -> [SKIP][58] ([i915#6227])
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-10/igt@i915_module_load@load.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-snb: [PASS][59] -> [ABORT][60] ([i915#9820])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-snb2/igt@i915_module_load@reload-with-fault-injection.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-snb4/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_pm_freq_api@freq-reset:
- shard-tglu: NOTRUN -> [SKIP][61] ([i915#8399])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-4/igt@i915_pm_freq_api@freq-reset.html
* igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0:
- shard-dg1: [PASS][62] -> [FAIL][63] ([i915#3591]) +2 other tests fail
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0.html
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-18/igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0.html
* igt@i915_pm_rps@basic-api:
- shard-dg2: NOTRUN -> [SKIP][64] ([i915#11681] / [i915#6621])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@i915_pm_rps@basic-api.html
* igt@i915_pm_rps@reset:
- shard-snb: [PASS][65] -> [INCOMPLETE][66] ([i915#7790])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-snb6/igt@i915_pm_rps@reset.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-snb5/igt@i915_pm_rps@reset.html
* igt@i915_power@sanity:
- shard-mtlp: [PASS][67] -> [SKIP][68] ([i915#7984])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-mtlp-2/igt@i915_power@sanity.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-7/igt@i915_power@sanity.html
* igt@kms_addfb_basic@basic-x-tiled-legacy:
- shard-dg2: NOTRUN -> [SKIP][69] ([i915#4212])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_addfb_basic@basic-x-tiled-legacy.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-1-y-rc-ccs-cc:
- shard-rkl: NOTRUN -> [SKIP][70] ([i915#8709]) +3 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-2/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-1-y-rc-ccs-cc.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-3-4-mc-ccs:
- shard-dg2: NOTRUN -> [SKIP][71] ([i915#8709]) +11 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-3-4-mc-ccs.html
* igt@kms_atomic_interruptible@atomic-setmode:
- shard-dg2: [PASS][72] -> [SKIP][73] ([i915#9197]) +34 other tests skip
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-1/igt@kms_atomic_interruptible@atomic-setmode.html
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_atomic_interruptible@atomic-setmode.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
- shard-mtlp: [PASS][74] -> [FAIL][75] ([i915#11808] / [i915#5956]) +1 other test fail
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-mtlp-4/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-2/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-90:
- shard-dg1: NOTRUN -> [SKIP][76] ([i915#4538] / [i915#5286])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-14/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-180:
- shard-tglu: NOTRUN -> [SKIP][77] ([i915#5286]) +2 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-4/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html
* igt@kms_big_fb@x-tiled-16bpp-rotate-90:
- shard-mtlp: NOTRUN -> [SKIP][78] +2 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-dg2: NOTRUN -> [SKIP][79] ([i915#5190] / [i915#9197]) +1 other test skip
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-addfb:
- shard-mtlp: NOTRUN -> [SKIP][80] ([i915#6187])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@kms_big_fb@yf-tiled-addfb.html
* igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
- shard-dg2: NOTRUN -> [SKIP][81] ([i915#5190])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html
* igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs:
- shard-mtlp: NOTRUN -> [SKIP][82] ([i915#6095]) +4 other tests skip
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs.html
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-1:
- shard-rkl: NOTRUN -> [SKIP][83] ([i915#6095]) +40 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-2/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-1.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc:
- shard-tglu: NOTRUN -> [SKIP][84] ([i915#6095]) +29 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-10/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs-cc@pipe-c-dp-3:
- shard-dg2: NOTRUN -> [SKIP][85] ([i915#10307] / [i915#6095]) +154 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-10/igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs-cc@pipe-c-dp-3.html
* igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
- shard-tglu: NOTRUN -> [SKIP][86] ([i915#12313])
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-10/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-3:
- shard-dg1: NOTRUN -> [SKIP][87] ([i915#6095]) +95 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-12/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-3.html
* igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][88] ([i915#10307] / [i915#10434] / [i915#6095]) +3 other tests skip
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-8/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-hdmi-a-1.html
* igt@kms_chamelium_audio@dp-audio:
- shard-tglu: NOTRUN -> [SKIP][89] ([i915#7828]) +6 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-10/igt@kms_chamelium_audio@dp-audio.html
* igt@kms_chamelium_audio@dp-audio-edid:
- shard-rkl: NOTRUN -> [SKIP][90] ([i915#7828])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-4/igt@kms_chamelium_audio@dp-audio-edid.html
* igt@kms_chamelium_color@ctm-green-to-red:
- shard-rkl: NOTRUN -> [SKIP][91] +5 other tests skip
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-1/igt@kms_chamelium_color@ctm-green-to-red.html
* igt@kms_chamelium_hpd@vga-hpd-with-enabled-mode:
- shard-dg2: NOTRUN -> [SKIP][92] ([i915#7828]) +1 other test skip
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_chamelium_hpd@vga-hpd-with-enabled-mode.html
* igt@kms_color@deep-color:
- shard-rkl: NOTRUN -> [SKIP][93] ([i915#3555]) +1 other test skip
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-1/igt@kms_color@deep-color.html
* igt@kms_content_protection@type1:
- shard-tglu: NOTRUN -> [SKIP][94] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424]) +1 other test skip
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-10/igt@kms_content_protection@type1.html
* igt@kms_cursor_crc@cursor-onscreen-256x85:
- shard-mtlp: NOTRUN -> [SKIP][95] ([i915#8814]) +1 other test skip
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@kms_cursor_crc@cursor-onscreen-256x85.html
* igt@kms_cursor_crc@cursor-rapid-movement-32x32:
- shard-tglu: NOTRUN -> [SKIP][96] ([i915#3555]) +3 other tests skip
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-10/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x512:
- shard-rkl: NOTRUN -> [SKIP][97] ([i915#11453])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-1/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
* igt@kms_cursor_edge_walk@256x256-top-edge:
- shard-dg2: NOTRUN -> [SKIP][98] ([i915#9197]) +3 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_cursor_edge_walk@256x256-top-edge.html
* igt@kms_cursor_legacy@cursora-vs-flipb-atomic:
- shard-mtlp: NOTRUN -> [SKIP][99] ([i915#9809])
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@kms_cursor_legacy@cursora-vs-flipb-atomic.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-glk: [PASS][100] -> [FAIL][101] ([i915#2346])
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_dsc@dsc-with-bpc-formats:
- shard-dg2: NOTRUN -> [SKIP][102] ([i915#3555] / [i915#3840])
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@kms_dsc@dsc-with-bpc-formats.html
- shard-tglu: NOTRUN -> [SKIP][103] ([i915#3555] / [i915#3840]) +1 other test skip
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-4/igt@kms_dsc@dsc-with-bpc-formats.html
* igt@kms_feature_discovery@display-4x:
- shard-tglu: NOTRUN -> [SKIP][104] ([i915#1839])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-7/igt@kms_feature_discovery@display-4x.html
* igt@kms_feature_discovery@psr2:
- shard-tglu: NOTRUN -> [SKIP][105] ([i915#658])
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-4/igt@kms_feature_discovery@psr2.html
- shard-dg2: NOTRUN -> [SKIP][106] ([i915#658])
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@kms_feature_discovery@psr2.html
* igt@kms_flip@2x-flip-vs-expired-vblank:
- shard-glk: [PASS][107] -> [FAIL][108] ([i915#79]) +1 other test fail
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-glk9/igt@kms_flip@2x-flip-vs-expired-vblank.html
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank.html
* igt@kms_flip@2x-flip-vs-fences:
- shard-dg2: NOTRUN -> [SKIP][109] ([i915#8381]) +1 other test skip
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@kms_flip@2x-flip-vs-fences.html
* igt@kms_flip@2x-flip-vs-panning:
- shard-dg2: NOTRUN -> [SKIP][110] +4 other tests skip
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_flip@2x-flip-vs-panning.html
- shard-tglu: NOTRUN -> [SKIP][111] ([i915#3637]) +1 other test skip
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-3/igt@kms_flip@2x-flip-vs-panning.html
* igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible:
- shard-dg1: [PASS][112] -> [FAIL][113] ([i915#2122]) +1 other test fail
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg1-19/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-14/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
- shard-tglu: [PASS][114] -> [FAIL][115] ([i915#2122]) +3 other tests fail
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-tglu-7/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-8/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
- shard-mtlp: [PASS][116] -> [FAIL][117] ([i915#2122]) +1 other test fail
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-mtlp-5/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
- shard-glk: [PASS][118] -> [FAIL][119] ([i915#2122]) +1 other test fail
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-glk6/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk2/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
* igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible@a-vga1:
- shard-snb: [PASS][120] -> [FAIL][121] ([i915#2122]) +3 other tests fail
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-snb5/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible@a-vga1.html
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-snb4/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible@a-vga1.html
* igt@kms_flip@flip-vs-blocking-wf-vblank@c-hdmi-a3:
- shard-dg2: NOTRUN -> [INCOMPLETE][122] ([i915#6113])
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_flip@flip-vs-blocking-wf-vblank@c-hdmi-a3.html
* igt@kms_flip@flip-vs-wf_vblank-interruptible@a-hdmi-a3:
- shard-dg2: NOTRUN -> [FAIL][123] ([i915#2122])
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_flip@flip-vs-wf_vblank-interruptible@a-hdmi-a3.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
- shard-dg2: [PASS][124] -> [SKIP][125] ([i915#3555]) +7 other tests skip
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
- shard-tglu: NOTRUN -> [SKIP][126] ([i915#2672] / [i915#3555]) +3 other tests skip
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-3/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
- shard-dg2: NOTRUN -> [SKIP][127] ([i915#2672] / [i915#3555])
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
- shard-rkl: NOTRUN -> [SKIP][128] ([i915#2672] / [i915#3555])
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][129] ([i915#2672])
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html
- shard-tglu: NOTRUN -> [SKIP][130] ([i915#2587] / [i915#2672]) +3 other tests skip
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-3/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][131] ([i915#2672]) +1 other test skip
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling:
- shard-dg2: NOTRUN -> [SKIP][132] ([i915#3555] / [i915#5190])
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][133] ([i915#8708])
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt:
- shard-dg2: [PASS][134] -> [FAIL][135] ([i915#6880])
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt.html
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-render:
- shard-dg2: [PASS][136] -> [SKIP][137] ([i915#5354]) +3 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-render.html
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt:
- shard-dg1: NOTRUN -> [SKIP][138] ([i915#3458]) +1 other test skip
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-blt:
- shard-dg1: NOTRUN -> [SKIP][139] +4 other tests skip
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-12/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][140] ([i915#8708]) +2 other tests skip
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render:
- shard-rkl: NOTRUN -> [SKIP][141] ([i915#1825]) +5 other tests skip
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt:
- shard-mtlp: NOTRUN -> [SKIP][142] ([i915#1825]) +4 other tests skip
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu:
- shard-rkl: NOTRUN -> [SKIP][143] ([i915#3023]) +2 other tests skip
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-1/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@pipe-fbc-rte:
- shard-tglu: NOTRUN -> [SKIP][144] ([i915#9766])
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-7/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite:
- shard-tglu: NOTRUN -> [SKIP][145] +64 other tests skip
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-fullscreen:
- shard-dg2: NOTRUN -> [SKIP][146] ([i915#3458]) +1 other test skip
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-render:
- shard-dg2: NOTRUN -> [SKIP][147] ([i915#5354]) +11 other tests skip
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-render.html
* igt@kms_hdr@invalid-hdr:
- shard-tglu: NOTRUN -> [SKIP][148] ([i915#3555] / [i915#8228])
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-10/igt@kms_hdr@invalid-hdr.html
* igt@kms_hdr@static-swap:
- shard-dg1: NOTRUN -> [SKIP][149] ([i915#3555] / [i915#8228])
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-18/igt@kms_hdr@static-swap.html
* igt@kms_hdr@static-toggle-dpms:
- shard-dg2: [PASS][150] -> [SKIP][151] ([i915#3555] / [i915#8228])
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-10/igt@kms_hdr@static-toggle-dpms.html
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-3/igt@kms_hdr@static-toggle-dpms.html
* igt@kms_joiner@basic-ultra-joiner:
- shard-rkl: NOTRUN -> [SKIP][152] ([i915#12339]) +1 other test skip
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-1/igt@kms_joiner@basic-ultra-joiner.html
* igt@kms_joiner@invalid-modeset-ultra-joiner:
- shard-tglu: NOTRUN -> [SKIP][153] ([i915#12339])
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-3/igt@kms_joiner@invalid-modeset-ultra-joiner.html
* igt@kms_panel_fitting@atomic-fastset:
- shard-dg2: NOTRUN -> [SKIP][154] ([i915#6301])
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@kms_panel_fitting@atomic-fastset.html
- shard-tglu: NOTRUN -> [SKIP][155] ([i915#6301])
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-4/igt@kms_panel_fitting@atomic-fastset.html
* igt@kms_plane@plane-panning-bottom-right-suspend:
- shard-dg2: [PASS][156] -> [SKIP][157] ([i915#8825])
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@kms_plane@plane-panning-bottom-right-suspend.html
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_plane@plane-panning-bottom-right-suspend.html
* igt@kms_plane_alpha_blend@alpha-transparent-fb:
- shard-glk: NOTRUN -> [FAIL][158] ([i915#12177])
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk7/igt@kms_plane_alpha_blend@alpha-transparent-fb.html
* igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-a-hdmi-a-1:
- shard-glk: NOTRUN -> [FAIL][159] ([i915#10647]) +1 other test fail
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk7/igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-a-hdmi-a-1.html
* igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-4:
- shard-dg1: NOTRUN -> [FAIL][160] ([i915#8292])
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-19/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-4.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format:
- shard-dg2: [PASS][161] -> [SKIP][162] ([i915#8152] / [i915#9423])
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format.html
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-d:
- shard-dg2: [PASS][163] -> [SKIP][164] ([i915#8152]) +1 other test skip
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-d.html
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-d.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b:
- shard-dg1: NOTRUN -> [SKIP][165] ([i915#12247]) +4 other tests skip
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-14/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20:
- shard-dg2: NOTRUN -> [SKIP][166] ([i915#12247] / [i915#8152] / [i915#9423])
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-b:
- shard-dg2: NOTRUN -> [SKIP][167] ([i915#12247]) +2 other tests skip
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-b.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-d:
- shard-dg2: NOTRUN -> [SKIP][168] ([i915#12247] / [i915#8152])
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-d.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5:
- shard-tglu: NOTRUN -> [SKIP][169] ([i915#12247] / [i915#6953])
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-10/igt@kms_plane_scaling@planes-downscale-factor-0-5.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a:
- shard-tglu: NOTRUN -> [SKIP][170] ([i915#12247]) +3 other tests skip
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-10/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75:
- shard-dg2: [PASS][171] -> [SKIP][172] ([i915#3555] / [i915#6953] / [i915#8152] / [i915#9423])
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75.html
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-d:
- shard-dg2: [PASS][173] -> [SKIP][174] ([i915#12247] / [i915#8152])
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-d.html
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-d.html
* igt@kms_plane_scaling@planes-upscale-20x20:
- shard-dg2: [PASS][175] -> [SKIP][176] ([i915#6953] / [i915#8152] / [i915#9423])
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@kms_plane_scaling@planes-upscale-20x20.html
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_plane_scaling@planes-upscale-20x20.html
* igt@kms_plane_scaling@planes-upscale-20x20@pipe-b:
- shard-dg2: [PASS][177] -> [SKIP][178] ([i915#12247]) +8 other tests skip
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@kms_plane_scaling@planes-upscale-20x20@pipe-b.html
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_plane_scaling@planes-upscale-20x20@pipe-b.html
* igt@kms_pm_backlight@fade-with-dpms:
- shard-rkl: NOTRUN -> [SKIP][179] ([i915#5354])
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-4/igt@kms_pm_backlight@fade-with-dpms.html
- shard-tglu: NOTRUN -> [SKIP][180] ([i915#9812])
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-3/igt@kms_pm_backlight@fade-with-dpms.html
* igt@kms_pm_dc@dc5-psr:
- shard-tglu: NOTRUN -> [SKIP][181] ([i915#9685])
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-4/igt@kms_pm_dc@dc5-psr.html
* igt@kms_pm_dc@dc6-dpms:
- shard-tglu: [PASS][182] -> [FAIL][183] ([i915#9295])
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-tglu-10/igt@kms_pm_dc@dc6-dpms.html
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-7/igt@kms_pm_dc@dc6-dpms.html
* igt@kms_pm_rpm@cursor:
- shard-dg2: [PASS][184] -> [SKIP][185] ([i915#1849])
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@kms_pm_rpm@cursor.html
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_pm_rpm@cursor.html
* igt@kms_pm_rpm@dpms-lpsp:
- shard-dg2: [PASS][186] -> [SKIP][187] ([i915#9519]) +3 other tests skip
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-8/igt@kms_pm_rpm@dpms-lpsp.html
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-1/igt@kms_pm_rpm@dpms-lpsp.html
* igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
- shard-rkl: [PASS][188] -> [SKIP][189] ([i915#9519])
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-rkl-5/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-2/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
* igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf:
- shard-tglu: NOTRUN -> [SKIP][190] ([i915#11520]) +6 other tests skip
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-10/igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf.html
* igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-fully-sf:
- shard-mtlp: NOTRUN -> [SKIP][191] ([i915#12316])
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-fully-sf.html
- shard-glk: NOTRUN -> [SKIP][192] ([i915#11520])
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk7/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area:
- shard-dg2: NOTRUN -> [SKIP][193] ([i915#11520])
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html
- shard-rkl: NOTRUN -> [SKIP][194] ([i915#11520])
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-4/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_su@page_flip-nv12:
- shard-mtlp: NOTRUN -> [SKIP][195] ([i915#4348])
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@kms_psr2_su@page_flip-nv12.html
* igt@kms_psr@fbc-pr-cursor-mmap-gtt:
- shard-rkl: NOTRUN -> [SKIP][196] ([i915#1072] / [i915#9732])
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-4/igt@kms_psr@fbc-pr-cursor-mmap-gtt.html
* igt@kms_psr@fbc-pr-sprite-plane-onoff:
- shard-mtlp: NOTRUN -> [SKIP][197] ([i915#9688])
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-7/igt@kms_psr@fbc-pr-sprite-plane-onoff.html
* igt@kms_psr@fbc-psr-cursor-blt:
- shard-dg2: NOTRUN -> [SKIP][198] ([i915#1072] / [i915#9732]) +7 other tests skip
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@kms_psr@fbc-psr-cursor-blt.html
* igt@kms_psr@pr-sprite-plane-move:
- shard-tglu: NOTRUN -> [SKIP][199] ([i915#9732]) +13 other tests skip
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-7/igt@kms_psr@pr-sprite-plane-move.html
* igt@kms_psr@psr2-primary-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][200] ([i915#1072] / [i915#9732]) +3 other tests skip
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-18/igt@kms_psr@psr2-primary-mmap-gtt.html
* igt@kms_rotation_crc@primary-rotation-270:
- shard-mtlp: NOTRUN -> [SKIP][201] ([i915#11131])
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-3/igt@kms_rotation_crc@primary-rotation-270.html
* igt@kms_setmode@clone-exclusive-crtc:
- shard-dg2: NOTRUN -> [SKIP][202] ([i915#3555])
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_setmode@clone-exclusive-crtc.html
* igt@kms_vblank@wait-idle:
- shard-dg1: [PASS][203] -> [DMESG-WARN][204] ([i915#4423])
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg1-19/igt@kms_vblank@wait-idle.html
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-13/igt@kms_vblank@wait-idle.html
* igt@kms_vrr@negative-basic:
- shard-dg2: NOTRUN -> [SKIP][205] ([i915#3555] / [i915#9906])
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@kms_vrr@negative-basic.html
- shard-tglu: NOTRUN -> [SKIP][206] ([i915#3555] / [i915#9906])
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-4/igt@kms_vrr@negative-basic.html
* igt@kms_vrr@seamless-rr-switch-vrr:
- shard-tglu: NOTRUN -> [SKIP][207] ([i915#9906])
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-10/igt@kms_vrr@seamless-rr-switch-vrr.html
* igt@kms_writeback@writeback-check-output:
- shard-tglu: NOTRUN -> [SKIP][208] ([i915#2437])
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-7/igt@kms_writeback@writeback-check-output.html
* igt@kms_writeback@writeback-pixel-formats:
- shard-glk: NOTRUN -> [SKIP][209] ([i915#2437])
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk1/igt@kms_writeback@writeback-pixel-formats.html
* igt@perf_pmu@render-node-busy-idle:
- shard-mtlp: [PASS][210] -> [FAIL][211] ([i915#4349]) +1 other test fail
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-mtlp-8/igt@perf_pmu@render-node-busy-idle.html
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-4/igt@perf_pmu@render-node-busy-idle.html
* igt@prime_vgem@basic-fence-flip:
- shard-dg2: NOTRUN -> [SKIP][212] ([i915#3708])
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@prime_vgem@basic-fence-flip.html
* igt@tools_test@sysfs_l3_parity:
- shard-dg1: NOTRUN -> [SKIP][213] ([i915#4818])
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-16/igt@tools_test@sysfs_l3_parity.html
#### Possible fixes ####
* igt@gem_ccs@suspend-resume:
- shard-dg2: [INCOMPLETE][214] ([i915#7297]) -> [PASS][215] +1 other test pass
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-1/igt@gem_ccs@suspend-resume.html
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@gem_ccs@suspend-resume.html
* igt@gem_ctx_engines@invalid-engines:
- shard-glk: [FAIL][216] ([i915#12027] / [i915#12031]) -> [PASS][217]
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-glk9/igt@gem_ctx_engines@invalid-engines.html
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk7/igt@gem_ctx_engines@invalid-engines.html
* igt@gem_ctx_freq@sysfs@gt0:
- shard-dg2: [FAIL][218] ([i915#9561]) -> [PASS][219] +1 other test pass
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-5/igt@gem_ctx_freq@sysfs@gt0.html
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-3/igt@gem_ctx_freq@sysfs@gt0.html
* igt@gem_eio@hibernate:
- shard-dg2: [ABORT][220] ([i915#10030] / [i915#7975] / [i915#8213]) -> [PASS][221]
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-4/igt@gem_eio@hibernate.html
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@gem_eio@hibernate.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-rkl: [FAIL][222] ([i915#2842]) -> [PASS][223] +1 other test pass
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-rkl-1/igt@gem_exec_fair@basic-pace-share@rcs0.html
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-3/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_suspend@basic-s4-devices:
- shard-dg1: [ABORT][224] ([i915#7975] / [i915#8213]) -> [PASS][225] +1 other test pass
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg1-14/igt@gem_exec_suspend@basic-s4-devices.html
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-18/igt@gem_exec_suspend@basic-s4-devices.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-dg2: [ABORT][226] ([i915#9820]) -> [PASS][227]
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-6/igt@i915_module_load@reload-with-fault-injection.html
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@i915_module_load@reload-with-fault-injection.html
- shard-rkl: [ABORT][228] ([i915#9820]) -> [PASS][229]
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-rkl-2/igt@i915_module_load@reload-with-fault-injection.html
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-4/igt@i915_module_load@reload-with-fault-injection.html
- shard-tglu: [ABORT][230] ([i915#9820]) -> [PASS][231]
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-tglu-6/igt@i915_module_load@reload-with-fault-injection.html
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-3/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_pipe_stress@stress-xrgb8888-untiled:
- shard-mtlp: [DMESG-WARN][232] ([i915#1982]) -> [PASS][233]
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-mtlp-3/igt@i915_pipe_stress@stress-xrgb8888-untiled.html
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-8/igt@i915_pipe_stress@stress-xrgb8888-untiled.html
* igt@i915_suspend@basic-s3-without-i915:
- shard-rkl: [INCOMPLETE][234] ([i915#4817]) -> [PASS][235]
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-rkl-3/igt@i915_suspend@basic-s3-without-i915.html
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-1/igt@i915_suspend@basic-s3-without-i915.html
* igt@kms_color@deep-color:
- shard-dg2: [SKIP][236] ([i915#3555]) -> [PASS][237] +3 other tests pass
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@kms_color@deep-color.html
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-10/igt@kms_color@deep-color.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-glk: [FAIL][238] ([i915#2346]) -> [PASS][239]
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_cursor_legacy@flip-vs-cursor-toggle:
- shard-snb: [FAIL][240] ([i915#2346]) -> [PASS][241]
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-snb2/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-snb2/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html
* igt@kms_flip@basic-flip-vs-dpms:
- shard-dg2: [SKIP][242] ([i915#5354]) -> [PASS][243] +9 other tests pass
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_flip@basic-flip-vs-dpms.html
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_flip@basic-flip-vs-dpms.html
* igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible:
- shard-rkl: [FAIL][244] ([i915#2122]) -> [PASS][245] +1 other test pass
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-rkl-7/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-7/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
* igt@kms_flip@flip-vs-blocking-wf-vblank:
- shard-rkl: [FAIL][246] ([i915#11989] / [i915#2122]) -> [PASS][247]
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-rkl-5/igt@kms_flip@flip-vs-blocking-wf-vblank.html
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-2/igt@kms_flip@flip-vs-blocking-wf-vblank.html
* igt@kms_flip@flip-vs-suspend:
- shard-dg1: [INCOMPLETE][248] ([i915#4839] / [i915#6113]) -> [PASS][249]
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg1-13/igt@kms_flip@flip-vs-suspend.html
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-16/igt@kms_flip@flip-vs-suspend.html
* igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a4:
- shard-dg1: [DMESG-WARN][250] ([i915#4423]) -> [PASS][251] +4 other tests pass
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg1-18/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a4.html
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-15/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a4.html
* igt@kms_flip@flip-vs-suspend@c-hdmi-a2:
- shard-glk: [INCOMPLETE][252] ([i915#4839]) -> [PASS][253] +1 other test pass
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-glk5/igt@kms_flip@flip-vs-suspend@c-hdmi-a2.html
[253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk8/igt@kms_flip@flip-vs-suspend@c-hdmi-a2.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite:
- shard-dg2: [FAIL][254] ([i915#6880]) -> [PASS][255] +1 other test pass
[254]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite.html
[255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-snb: [SKIP][256] -> [PASS][257]
[256]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-snb7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc.html
[257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-snb6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_plane_scaling@invalid-num-scalers:
- shard-dg2: [SKIP][258] ([i915#3555] / [i915#6953] / [i915#8152] / [i915#9423]) -> [PASS][259]
[258]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_plane_scaling@invalid-num-scalers.html
[259]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_plane_scaling@invalid-num-scalers.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation:
- shard-dg2: [SKIP][260] ([i915#12247] / [i915#8152] / [i915#9423]) -> [PASS][261]
[260]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation.html
[261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b:
- shard-dg2: [SKIP][262] ([i915#12247]) -> [PASS][263] +5 other tests pass
[262]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b.html
[263]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-d:
- shard-dg2: [SKIP][264] ([i915#12247] / [i915#8152]) -> [PASS][265] +1 other test pass
[264]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-d.html
[265]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-d.html
* igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation:
- shard-dg2: [SKIP][266] ([i915#3555] / [i915#8152] / [i915#9423]) -> [PASS][267]
[266]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html
[267]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html
* igt@kms_pm_rpm@cursor-dpms:
- shard-dg2: [SKIP][268] ([i915#1849]) -> [PASS][269]
[268]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_pm_rpm@cursor-dpms.html
[269]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_pm_rpm@cursor-dpms.html
* igt@kms_pm_rpm@modeset-lpsp-stress:
- shard-dg2: [SKIP][270] ([i915#9519]) -> [PASS][271] +3 other tests pass
[270]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@kms_pm_rpm@modeset-lpsp-stress.html
[271]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-4/igt@kms_pm_rpm@modeset-lpsp-stress.html
- shard-rkl: [SKIP][272] ([i915#9519]) -> [PASS][273] +2 other tests pass
[272]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-rkl-3/igt@kms_pm_rpm@modeset-lpsp-stress.html
[273]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-2/igt@kms_pm_rpm@modeset-lpsp-stress.html
* igt@kms_psr@psr2-cursor-plane-onoff:
- shard-mtlp: [FAIL][274] ([i915#12380]) -> [PASS][275] +1 other test pass
[274]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-mtlp-8/igt@kms_psr@psr2-cursor-plane-onoff.html
[275]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-mtlp-4/igt@kms_psr@psr2-cursor-plane-onoff.html
* igt@kms_sysfs_edid_timing:
- shard-dg2: [FAIL][276] ([IGT#2]) -> [PASS][277]
[276]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@kms_sysfs_edid_timing.html
[277]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_sysfs_edid_timing.html
* igt@kms_vblank@wait-idle-hang:
- shard-dg2: [SKIP][278] ([i915#9197]) -> [PASS][279] +31 other tests pass
[278]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_vblank@wait-idle-hang.html
[279]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_vblank@wait-idle-hang.html
#### Warnings ####
* igt@gem_create@create-ext-cpu-access-big:
- shard-dg2: [FAIL][280] -> [ABORT][281] ([i915#9846])
[280]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@gem_create@create-ext-cpu-access-big.html
[281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-4/igt@gem_create@create-ext-cpu-access-big.html
* igt@gem_ctx_engines@invalid-engines:
- shard-rkl: [FAIL][282] ([i915#12027] / [i915#12031]) -> [FAIL][283] ([i915#12031] / [i915#12065])
[282]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-rkl-3/igt@gem_ctx_engines@invalid-engines.html
[283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-1/igt@gem_ctx_engines@invalid-engines.html
* igt@gem_exec_fair@basic-pace@rcs0:
- shard-rkl: [FAIL][284] ([i915#2876]) -> [FAIL][285] ([i915#2842])
[284]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-rkl-2/igt@gem_exec_fair@basic-pace@rcs0.html
[285]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-5/igt@gem_exec_fair@basic-pace@rcs0.html
* igt@gem_exec_fair@basic-pace@vcs1:
- shard-tglu: [FAIL][286] ([i915#2842]) -> [FAIL][287] ([i915#2876])
[286]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-tglu-2/igt@gem_exec_fair@basic-pace@vcs1.html
[287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-tglu-6/igt@gem_exec_fair@basic-pace@vcs1.html
* igt@gem_exec_schedule@preempt-queue-contexts-chain:
- shard-snb: [SKIP][288] -> [INCOMPLETE][289] ([i915#2295])
[288]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-snb7/igt@gem_exec_schedule@preempt-queue-contexts-chain.html
[289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-snb1/igt@gem_exec_schedule@preempt-queue-contexts-chain.html
* igt@kms_atomic@plane-primary-overlay-mutable-zpos:
- shard-dg2: [SKIP][290] ([i915#9197]) -> [SKIP][291] ([i915#9531])
[290]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
[291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
* igt@kms_big_fb@linear-16bpp-rotate-90:
- shard-dg2: [SKIP][292] ([i915#9197]) -> [SKIP][293] +2 other tests skip
[292]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_big_fb@linear-16bpp-rotate-90.html
[293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_big_fb@linear-16bpp-rotate-90.html
* igt@kms_big_fb@linear-32bpp-rotate-90:
- shard-dg2: [SKIP][294] -> [SKIP][295] ([i915#9197])
[294]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@kms_big_fb@linear-32bpp-rotate-90.html
[295]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_big_fb@linear-32bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-8bpp-rotate-180:
- shard-dg2: [SKIP][296] ([i915#4538] / [i915#5190]) -> [SKIP][297] ([i915#5190] / [i915#9197]) +7 other tests skip
[296]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-1/igt@kms_big_fb@y-tiled-8bpp-rotate-180.html
[297]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_big_fb@y-tiled-8bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-addfb:
- shard-dg2: [SKIP][298] ([i915#5190] / [i915#9197]) -> [SKIP][299] ([i915#5190])
[298]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_big_fb@yf-tiled-addfb.html
[299]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_big_fb@yf-tiled-addfb.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0:
- shard-dg2: [SKIP][300] ([i915#5190] / [i915#9197]) -> [SKIP][301] ([i915#4538] / [i915#5190]) +6 other tests skip
[300]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html
[301]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html
* igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc:
- shard-dg2: [SKIP][302] ([i915#9197]) -> [SKIP][303] ([i915#10307] / [i915#6095]) +5 other tests skip
[302]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc.html
[303]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc.html
* igt@kms_ccs@bad-aux-stride-yf-tiled-ccs:
- shard-dg2: [SKIP][304] ([i915#10307] / [i915#6095]) -> [SKIP][305] ([i915#9197]) +10 other tests skip
[304]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@kms_ccs@bad-aux-stride-yf-tiled-ccs.html
[305]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_ccs@bad-aux-stride-yf-tiled-ccs.html
* igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs:
- shard-dg2: [SKIP][306] ([i915#9197]) -> [SKIP][307] ([i915#12313])
[306]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html
[307]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
- shard-dg2: [SKIP][308] ([i915#12313]) -> [SKIP][309] ([i915#9197]) +1 other test skip
[308]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
[309]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-dg2: [SKIP][310] ([i915#9197]) -> [SKIP][311] ([i915#11616] / [i915#7213])
[310]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_cdclk@mode-transition-all-outputs.html
[311]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_content_protection@content-type-change:
- shard-dg2: [SKIP][312] ([i915#9197]) -> [SKIP][313] ([i915#9424])
[312]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_content_protection@content-type-change.html
[313]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_content_protection@content-type-change.html
* igt@kms_content_protection@dp-mst-type-0:
- shard-dg2: [SKIP][314] ([i915#3299]) -> [SKIP][315] ([i915#9197]) +1 other test skip
[314]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@kms_content_protection@dp-mst-type-0.html
[315]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_content_protection@dp-mst-type-0.html
* igt@kms_content_protection@type1:
- shard-dg2: [SKIP][316] ([i915#7118] / [i915#7162] / [i915#9424]) -> [SKIP][317] ([i915#7118] / [i915#9424])
[316]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-10/igt@kms_content_protection@type1.html
[317]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-11/igt@kms_content_protection@type1.html
* igt@kms_cursor_crc@cursor-random-512x512:
- shard-dg2: [SKIP][318] ([i915#9197]) -> [SKIP][319] ([i915#11453]) +1 other test skip
[318]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_cursor_crc@cursor-random-512x512.html
[319]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_cursor_crc@cursor-random-512x512.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x170:
- shard-dg2: [SKIP][320] ([i915#11453]) -> [SKIP][321] ([i915#9197])
[320]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
[321]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
* igt@kms_cursor_crc@cursor-rapid-movement-max-size:
- shard-dg2: [SKIP][322] ([i915#3555]) -> [SKIP][323] ([i915#9197]) +2 other tests skip
[322]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-1/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html
[323]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
- shard-dg2: [SKIP][324] ([i915#9197]) -> [SKIP][325] ([i915#5354]) +1 other test skip
[324]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
[325]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@cursora-vs-flipb-toggle:
- shard-dg2: [SKIP][326] ([i915#5354]) -> [SKIP][327] ([i915#9197]) +3 other tests skip
[326]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-1/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html
[327]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
- shard-dg2: [SKIP][328] ([i915#9197]) -> [SKIP][329] ([i915#4103] / [i915#4213]) +1 other test skip
[328]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
[329]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
* igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
- shard-dg2: [SKIP][330] ([i915#9197]) -> [SKIP][331] ([i915#9833])
[330]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
[331]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
* igt@kms_dither@fb-8bpc-vs-panel-8bpc:
- shard-dg2: [SKIP][332] ([i915#9197]) -> [SKIP][333] ([i915#3555]) +2 other tests skip
[332]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html
[333]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html
* igt@kms_draw_crc@draw-method-mmap-wc:
- shard-dg2: [SKIP][334] ([i915#8812]) -> [SKIP][335] ([i915#9197])
[334]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@kms_draw_crc@draw-method-mmap-wc.html
[335]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_draw_crc@draw-method-mmap-wc.html
* igt@kms_dsc@dsc-fractional-bpp:
- shard-dg2: [SKIP][336] ([i915#3840] / [i915#9688]) -> [SKIP][337] ([i915#9197])
[336]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@kms_dsc@dsc-fractional-bpp.html
[337]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_dsc@dsc-fractional-bpp.html
* igt@kms_dsc@dsc-fractional-bpp-with-bpc:
- shard-dg2: [SKIP][338] ([i915#3840]) -> [SKIP][339] ([i915#9197])
[338]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-1/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
[339]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
* igt@kms_flip@flip-vs-blocking-wf-vblank:
- shard-dg2: [SKIP][340] ([i915#5354]) -> [INCOMPLETE][341] ([i915#6113])
[340]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_flip@flip-vs-blocking-wf-vblank.html
[341]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_flip@flip-vs-blocking-wf-vblank.html
* igt@kms_flip@flip-vs-wf_vblank-interruptible:
- shard-dg2: [SKIP][342] ([i915#5354]) -> [FAIL][343] ([i915#2122])
[342]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_flip@flip-vs-wf_vblank-interruptible.html
[343]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_flip@flip-vs-wf_vblank-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
- shard-dg2: [SKIP][344] ([i915#2672] / [i915#3555] / [i915#5190]) -> [SKIP][345] ([i915#3555] / [i915#5190]) +1 other test skip
[344]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html
[345]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
- shard-dg2: [SKIP][346] ([i915#3555] / [i915#5190]) -> [SKIP][347] ([i915#2672] / [i915#3555] / [i915#5190])
[346]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
[347]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack-mmap-gtt:
- shard-dg2: [SKIP][348] ([i915#5354]) -> [SKIP][349] ([i915#8708]) +13 other tests skip
[348]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack-mmap-gtt.html
[349]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt:
- shard-dg2: [SKIP][350] ([i915#3458]) -> [SKIP][351] ([i915#5354]) +15 other tests skip
[350]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt.html
[351]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-modesetfrombusy:
- shard-dg1: [SKIP][352] ([i915#3458]) -> [SKIP][353] ([i915#3458] / [i915#4423])
[352]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg1-19/igt@kms_frontbuffer_tracking@fbcpsr-modesetfrombusy.html
[353]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsr-modesetfrombusy.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite:
- shard-dg2: [SKIP][354] ([i915#10433] / [i915#3458]) -> [SKIP][355] ([i915#3458])
[354]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite.html
[355]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-7/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-suspend:
- shard-dg2: [SKIP][356] ([i915#3458]) -> [SKIP][357] ([i915#10433] / [i915#3458]) +2 other tests skip
[356]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-10/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html
[357]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt:
- shard-dg2: [SKIP][358] ([i915#5354]) -> [SKIP][359] ([i915#3458]) +8 other tests skip
[358]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html
[359]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-dg2: [SKIP][360] ([i915#8708]) -> [SKIP][361] ([i915#5354]) +16 other tests skip
[360]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc.html
[361]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_hdr@bpc-switch:
- shard-dg2: [SKIP][362] ([i915#9197]) -> [SKIP][363] ([i915#3555] / [i915#8228]) +1 other test skip
[362]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_hdr@bpc-switch.html
[363]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_hdr@bpc-switch.html
* igt@kms_hdr@static-toggle-suspend:
- shard-dg2: [SKIP][364] ([i915#3555] / [i915#8228]) -> [SKIP][365] ([i915#9197])
[364]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-1/igt@kms_hdr@static-toggle-suspend.html
[365]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-rkl: [SKIP][366] ([i915#4070] / [i915#4816]) -> [SKIP][367] ([i915#4816])
[366]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-rkl-1/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
[367]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-rkl-3/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
* igt@kms_plane_multiple@tiling-y:
- shard-dg2: [SKIP][368] ([i915#9197]) -> [SKIP][369] ([i915#8806])
[368]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_plane_multiple@tiling-y.html
[369]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_plane_multiple@tiling-y.html
* igt@kms_plane_scaling@2x-scaler-multi-pipe:
- shard-dg2: [SKIP][370] ([i915#5354] / [i915#9423]) -> [SKIP][371] ([i915#5354] / [i915#8152] / [i915#9423])
[370]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-1/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
[371]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format:
- shard-dg2: [SKIP][372] ([i915#12247] / [i915#9423]) -> [SKIP][373] ([i915#12247] / [i915#8152] / [i915#9423])
[372]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html
[373]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-d:
- shard-dg2: [SKIP][374] ([i915#12247]) -> [SKIP][375] ([i915#12247] / [i915#8152])
[374]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-d.html
[375]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-d.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25:
- shard-dg2: [SKIP][376] ([i915#12247] / [i915#3555] / [i915#8152] / [i915#9423]) -> [SKIP][377] ([i915#12247] / [i915#3555] / [i915#9423])
[376]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html
[377]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25:
- shard-dg2: [SKIP][378] ([i915#12247] / [i915#6953] / [i915#8152] / [i915#9423]) -> [SKIP][379] ([i915#12247] / [i915#6953] / [i915#9423])
[378]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25.html
[379]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-d:
- shard-dg2: [SKIP][380] ([i915#12247] / [i915#8152]) -> [SKIP][381] ([i915#12247]) +1 other test skip
[380]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-d.html
[381]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-5/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-d.html
* igt@kms_psr@fbc-psr2-primary-mmap-cpu:
- shard-dg1: [SKIP][382] ([i915#1072] / [i915#9732]) -> [SKIP][383] ([i915#1072] / [i915#4423] / [i915#9732])
[382]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg1-19/igt@kms_psr@fbc-psr2-primary-mmap-cpu.html
[383]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg1-13/igt@kms_psr@fbc-psr2-primary-mmap-cpu.html
* igt@kms_rotation_crc@bad-pixel-format:
- shard-dg2: [SKIP][384] ([i915#11131]) -> [SKIP][385] ([i915#9197]) +1 other test skip
[384]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@kms_rotation_crc@bad-pixel-format.html
[385]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_rotation_crc@bad-pixel-format.html
* igt@kms_rotation_crc@exhaust-fences:
- shard-dg2: [SKIP][386] ([i915#4235]) -> [SKIP][387] ([i915#9197])
[386]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-11/igt@kms_rotation_crc@exhaust-fences.html
[387]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_rotation_crc@exhaust-fences.html
* igt@kms_rotation_crc@primary-rotation-270:
- shard-dg2: [SKIP][388] ([i915#9197]) -> [SKIP][389] ([i915#11131])
[388]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@kms_rotation_crc@primary-rotation-270.html
[389]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@kms_rotation_crc@primary-rotation-270.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
- shard-dg2: [SKIP][390] ([i915#5190]) -> [SKIP][391] ([i915#5190] / [i915#9197]) +1 other test skip
[390]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-3/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html
[391]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-2/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-glk: [SKIP][392] -> [FAIL][393] ([i915#10959])
[392]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-glk8/igt@kms_tiled_display@basic-test-pattern.html
[393]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-glk9/igt@kms_tiled_display@basic-test-pattern.html
* igt@perf@non-zero-reason@0-rcs0:
- shard-dg2: [FAIL][394] ([i915#7484]) -> [FAIL][395] ([i915#9100]) +1 other test fail
[394]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15541/shard-dg2-2/igt@perf@non-zero-reason@0-rcs0.html
[395]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/shard-dg2-6/igt@perf@non-zero-reason@0-rcs0.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
[i915#10030]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10030
[i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
[i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
[i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
[i915#10647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10647
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#10959]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10959
[i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
[i915#11131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11131
[i915#11441]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11441
[i915#11453]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11453
[i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
[i915#11616]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11616
[i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
[i915#11808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11808
[i915#11814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11814
[i915#11815]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11815
[i915#11980]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11980
[i915#11989]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11989
[i915#12027]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12027
[i915#12031]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12031
[i915#12065]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12065
[i915#12177]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12177
[i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
[i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
[i915#12316]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12316
[i915#12339]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12339
[i915#12380]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12380
[i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
[i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
[i915#1849]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1849
[i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982
[i915#2122]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2122
[i915#2295]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2295
[i915#2346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2346
[i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
[i915#2582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2582
[i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
[i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
[i915#2681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2681
[i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2842
[i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
[i915#2876]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2876
[i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
[i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
[i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
[i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
[i915#3469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3469
[i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3591
[i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
[i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#3966]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3966
[i915#4070]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4235]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4235
[i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
[i915#4348]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4348
[i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
[i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
[i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
[i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
[i915#4816]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4816
[i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
[i915#4818]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4818
[i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
[i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
[i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
[i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113
[i915#6187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6187
[i915#6227]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6227
[i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
[i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
[i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
[i915#6880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6880
[i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944
[i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
[i915#7116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
[i915#7162]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7162
[i915#7213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7213
[i915#7297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7297
[i915#7484]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7484
[i915#7790]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7790
[i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
[i915#79]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/79
[i915#7975]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7975
[i915#7984]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7984
[i915#8152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8152
[i915#8213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8213
[i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
[i915#8292]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8292
[i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381
[i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
[i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
[i915#8414]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8414
[i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
[i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
[i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555
[i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
[i915#8709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8709
[i915#8806]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8806
[i915#8812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8812
[i915#8814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8814
[i915#8825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8825
[i915#9100]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9100
[i915#9197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9197
[i915#9295]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9295
[i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
[i915#9337]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9337
[i915#9412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9412
[i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423
[i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
[i915#9519]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9519
[i915#9531]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9531
[i915#9561]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9561
[i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
[i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9766]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9766
[i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809
[i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
[i915#9820]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9820
[i915#9833]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9833
[i915#9846]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9846
[i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
Build changes
-------------
* Linux: CI_DRM_15541 -> Patchwork_140066v1
CI-20190529: 20190529
CI_DRM_15541: 87312f4bbb70018f831a8ef565db9cdc37b4da67 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8077: 42f9e9702f74a4993318adea936baaa186084689 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_140066v1: 87312f4bbb70018f831a8ef565db9cdc37b4da67 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_140066v1/index.html
[-- Attachment #2: Type: text/html, Size: 125088 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 1/9] drm/i915/pfit: Check pipe source size against pfit limits on ILK-BDW
2024-10-16 14:31 ` [PATCH 1/9] drm/i915/pfit: Check pipe source size against pfit limits on ILK-BDW Ville Syrjala
@ 2024-10-22 8:24 ` Jani Nikula
0 siblings, 0 replies; 24+ messages in thread
From: Jani Nikula @ 2024-10-22 8:24 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Wed, 16 Oct 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The ILK-BDW panel fitter imposes extra limits on the maximum
> pipe source size we can use. Check for that.
>
> Only HSW/BDW are really affected by this since on older platforms
> the max hdisplay/vdisplay matches the max PIPESRC. But we'll
> put in the limits for all the platforms just to keep things
> clear.
>
> Note that pch_panel_fitting() is also used on SKL+, but we'll
> skip the checks for those as it's all supposed to be handled
> in the unified scaler code.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Looks sensible, but I'm just not going to dig through all the old specs
to verify all of this, and I don't expect anyone else to do it
either. I'll take your word for it, and I trust you to fix any fallout
as well.
With that,
Acked-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_panel.c | 52 +++++++++++++++++++++-
> 1 file changed, 51 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
> index 71454ddef20f..b77017144818 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.c
> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
> @@ -383,15 +383,54 @@ void intel_panel_add_encoder_fixed_mode(struct intel_connector *connector,
> "current (BIOS)");
> }
>
> +static int intel_pch_pfit_check_src_size(const struct intel_crtc_state *crtc_state)
> +{
> + struct intel_display *display = to_intel_display(crtc_state);
> + struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> + int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
> + int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
> + int max_src_w, max_src_h;
> +
> + if (DISPLAY_VER(display) >= 8) {
> + max_src_w = 4096;
> + max_src_h = 4096;
> + } else if (DISPLAY_VER(display) >= 7) {
> + /*
> + * PF0 7x5 capable
> + * PF1 3x3 capable (could be switched to 7x5
> + * mode on HSW when PF2 unused)
> + * PF2 3x3 capable
> + *
> + * This assumes we use a 1:1 mapping between pipe and PF.
> + */
> + max_src_w = crtc->pipe == PIPE_A ? 4096 : 2048;
> + max_src_h = 4096;
> + } else {
> + max_src_w = 4096;
> + max_src_h = 4096;
> + }
> +
> + if (pipe_src_w > max_src_w || pipe_src_h > max_src_h) {
> + drm_dbg_kms(display->drm,
> + "[CRTC:%d:%s] source size (%dx%d) exceeds pfit max (%dx%d)\n",
> + crtc->base.base.id, crtc->base.name,
> + pipe_src_w, pipe_src_h, max_src_w, max_src_h);
> + return -EINVAL;
> + }
> +
> + return 0;
> +}
> +
> /* adjusted_mode has been preset to be the panel's fixed mode */
> static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
> const struct drm_connector_state *conn_state)
> {
> + struct intel_display *display = to_intel_display(crtc_state);
> const struct drm_display_mode *adjusted_mode =
> &crtc_state->hw.adjusted_mode;
> int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
> int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
> - int x, y, width, height;
> + int ret, x, y, width, height;
>
> /* Native modes don't need fitting */
> if (adjusted_mode->crtc_hdisplay == pipe_src_w &&
> @@ -453,6 +492,17 @@ static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
> x, y, width, height);
> crtc_state->pch_pfit.enabled = true;
>
> + /*
> + * SKL+ have unified scalers for pipes/planes so the
> + * checks are done in a single place for all scalers.
> + */
> + if (DISPLAY_VER(display) >= 9)
> + return 0;
> +
> + ret = intel_pch_pfit_check_src_size(crtc_state);
> + if (ret)
> + return ret;
> +
> return 0;
> }
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/9] drm/i915/pfit: Check pfit scaling factors on ILK-BDW
2024-10-16 14:31 ` [PATCH 2/9] drm/i915/pfit: Check pfit scaling factors " Ville Syrjala
@ 2024-10-22 8:24 ` Jani Nikula
0 siblings, 0 replies; 24+ messages in thread
From: Jani Nikula @ 2024-10-22 8:24 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Wed, 16 Oct 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Make sure we're not exceeding the max scaling factors for the panel
> fitter on ILK-BDW. SKL+ is skipped here since this is all supposed to
> be handled by the unified scaler code.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_panel.c | 39 ++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
> index b77017144818..fb7def772376 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.c
> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
> @@ -421,6 +421,41 @@ static int intel_pch_pfit_check_src_size(const struct intel_crtc_state *crtc_sta
> return 0;
> }
>
> +static int intel_pch_pfit_check_scaling(const struct intel_crtc_state *crtc_state)
> +{
> + struct intel_display *display = to_intel_display(crtc_state);
> + struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> + const struct drm_rect *dst = &crtc_state->pch_pfit.dst;
> + int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
> + int pipe_src_h = drm_rect_height(&crtc_state->pipe_src);
> + int hscale, vscale, max_scale = 0x12000; /* 1.125 */
> + struct drm_rect src;
> +
> + drm_rect_init(&src, 0, 0, pipe_src_w << 16, pipe_src_h << 16);
> +
> + hscale = drm_rect_calc_hscale(&src, dst, 0, max_scale);
> + if (hscale < 0) {
> + drm_dbg_kms(display->drm,
> + "[CRTC:%d:%s] pfit horizontal downscaling (%d->%d) exceeds max (0x%x)\n",
> + crtc->base.base.id, crtc->base.name,
> + pipe_src_w, drm_rect_width(dst),
> + max_scale);
> + return hscale;
> + }
> +
> + vscale = drm_rect_calc_vscale(&src, dst, 0, max_scale);
> + if (vscale < 0) {
> + drm_dbg_kms(display->drm,
> + "[CRTC:%d:%s] pfit vertical downscaling (%d->%d) exceeds max (0x%x)\n",
> + crtc->base.base.id, crtc->base.name,
> + pipe_src_h, drm_rect_height(dst),
> + max_scale);
> + return vscale;
> + }
> +
> + return 0;
> +}
> +
> /* adjusted_mode has been preset to be the panel's fixed mode */
> static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
> const struct drm_connector_state *conn_state)
> @@ -503,6 +538,10 @@ static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
> if (ret)
> return ret;
>
> + ret = intel_pch_pfit_check_scaling(crtc_state);
> + if (ret)
> + return ret;
> +
> return 0;
> }
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 3/9] drm/i915/pfit: Reject pfit downscaling for GMCH platforms
2024-10-16 14:31 ` [PATCH 3/9] drm/i915/pfit: Reject pfit downscaling for GMCH platforms Ville Syrjala
@ 2024-10-22 8:25 ` Jani Nikula
0 siblings, 0 replies; 24+ messages in thread
From: Jani Nikula @ 2024-10-22 8:25 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Wed, 16 Oct 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Gen2/3 pfit doesn't support downscaling at all, so reject it.
>
> On i965+ downscaling is supported by the hardware (max scale
> factor < 2.0), but as downscaling increases the effective
> pixel rate we can't safely allow it unless
> intel_crtc_compute_pixel_rate() gets fixed. Probably the
> best solution would be to calculate (at least an
> apporiximate) pfit destination window and use
> ilk_pipe_pixel_rate() for all platforms. For now reject
> downscaling on all gmch platforms.
>
> The intel ddx has a similar check for this in userspace,
> modesetting ddx does not. And presumably wayland compositors
> also do not make such assumptions in userspace.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_panel.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
> index fb7def772376..89cac3b3fd02 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.c
> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
> @@ -681,6 +681,7 @@ static void i9xx_scale_aspect(struct intel_crtc_state *crtc_state,
> static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
> const struct drm_connector_state *conn_state)
> {
> + struct intel_display *display = to_intel_display(crtc_state);
> struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> u32 pfit_control = 0, pfit_pgm_ratios = 0, border = 0;
> @@ -693,6 +694,25 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
> adjusted_mode->crtc_vdisplay == pipe_src_h)
> goto out;
>
> + /*
> + * TODO: implement downscaling for i965+. Need to account
> + * for downscaling in intel_crtc_compute_pixel_rate().
> + */
> + if (adjusted_mode->crtc_hdisplay < pipe_src_w) {
> + drm_dbg_kms(display->drm,
> + "[CRTC:%d:%s] pfit horizontal downscaling (%d->%d) not supported\n",
> + crtc->base.base.id, crtc->base.name,
> + pipe_src_w, adjusted_mode->crtc_hdisplay);
> + return -EINVAL;
> + }
> + if (adjusted_mode->crtc_vdisplay < pipe_src_h) {
> + drm_dbg_kms(display->drm,
> + "[CRTC:%d:%s] pfit vertical downscaling (%d->%d) not supported\n",
> + crtc->base.base.id, crtc->base.name,
> + pipe_src_h, adjusted_mode->crtc_vdisplay);
> + return -EINVAL;
> + }
> +
> switch (conn_state->scaling_mode) {
> case DRM_MODE_SCALE_CENTER:
> /*
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 4/9] drm/i915/pfit: Check pfit minimum timings in pre-SKL
2024-10-16 14:31 ` [PATCH 4/9] drm/i915/pfit: Check pfit minimum timings in pre-SKL Ville Syrjala
@ 2024-10-22 8:25 ` Jani Nikula
0 siblings, 0 replies; 24+ messages in thread
From: Jani Nikula @ 2024-10-22 8:25 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Wed, 16 Oct 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Transcoder hdisplay/vdisplay have documented minimum limits
> when using the panel fitter. Enforce those limits for all
> pre-SKL platforms. SKL+ handles everything in the unified
> scaler code instead.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_panel.c | 59 +++++++++++++++++++++-
> 1 file changed, 58 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
> index 89cac3b3fd02..dc843892b01b 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.c
> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
> @@ -456,6 +456,24 @@ static int intel_pch_pfit_check_scaling(const struct intel_crtc_state *crtc_stat
> return 0;
> }
>
> +static int intel_pch_pfit_check_timings(const struct intel_crtc_state *crtc_state)
> +{
> + struct intel_display *display = to_intel_display(crtc_state);
> + struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> + const struct drm_display_mode *adjusted_mode =
> + &crtc_state->hw.adjusted_mode;
> +
> + if (adjusted_mode->crtc_vdisplay < 7) {
> + drm_dbg_kms(display->drm,
> + "[CRTC:%d:%s] vertical active (%d) below minimum (%d) for pfit\n",
> + crtc->base.base.id, crtc->base.name,
> + adjusted_mode->crtc_vdisplay, 7);
> + return -EINVAL;
> + }
> +
> + return 0;
> +}
> +
> /* adjusted_mode has been preset to be the panel's fixed mode */
> static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
> const struct drm_connector_state *conn_state)
> @@ -542,6 +560,10 @@ static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
> if (ret)
> return ret;
>
> + ret = intel_pch_pfit_check_timings(crtc_state);
> + if (ret)
> + return ret;
> +
> return 0;
> }
>
> @@ -678,6 +700,38 @@ static void i9xx_scale_aspect(struct intel_crtc_state *crtc_state,
> }
> }
>
> +static int intel_gmch_pfit_check_timings(const struct intel_crtc_state *crtc_state)
> +{
> + struct intel_display *display = to_intel_display(crtc_state);
> + struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> + const struct drm_display_mode *adjusted_mode =
> + &crtc_state->hw.adjusted_mode;
> + int min;
> +
> + if (DISPLAY_VER(display) >= 4)
> + min = 3;
> + else
> + min = 2;
> +
> + if (adjusted_mode->crtc_hdisplay < min) {
> + drm_dbg_kms(display->drm,
> + "[CRTC:%d:%s] horizontal active (%d) below minimum (%d) for pfit\n",
> + crtc->base.base.id, crtc->base.name,
> + adjusted_mode->crtc_hdisplay, min);
> + return -EINVAL;
> + }
> +
> + if (adjusted_mode->crtc_vdisplay < min) {
> + drm_dbg_kms(display->drm,
> + "[CRTC:%d:%s] vertical active (%d) below minimum (%d) for pfit\n",
> + crtc->base.base.id, crtc->base.name,
> + adjusted_mode->crtc_vdisplay, min);
> + return -EINVAL;
> + }
> +
> + return 0;
> +}
> +
> static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
> const struct drm_connector_state *conn_state)
> {
> @@ -772,7 +826,10 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
> crtc_state->gmch_pfit.pgm_ratios = pfit_pgm_ratios;
> crtc_state->gmch_pfit.lvds_border_bits = border;
>
> - return 0;
> + if ((pfit_control & PFIT_ENABLE) == 0)
> + return 0;
> +
> + return intel_gmch_pfit_check_timings(crtc_state);
> }
>
> int intel_panel_fitting(struct intel_crtc_state *crtc_state,
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 5/9] drm/i915/pfit: Reject cloning when using pfit on ILK-BDW
2024-10-16 14:31 ` [PATCH 5/9] drm/i915/pfit: Reject cloning when using pfit on ILK-BDW Ville Syrjala
@ 2024-10-22 8:25 ` Jani Nikula
0 siblings, 0 replies; 24+ messages in thread
From: Jani Nikula @ 2024-10-22 8:25 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Wed, 16 Oct 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The panel fitter lives inside the pipe and so would affect all cloned
> outputs. However the relevant properties (scaling mode, TV margins)
> are per-connector so we could end up with a situation where each cloned
> output wants a different pfit configuration. Let's just reject pfit
> usage with cloning entirely.
>
> Currently not an issue as we don't yet expose the TV margin
> properties, but if/when we add those to HDMI we could end up
> in this situation. For eDP/DP we don't support cloning anyyway.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_panel.c | 27 ++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
> index dc843892b01b..593e41907d53 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.c
> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
> @@ -474,6 +474,29 @@ static int intel_pch_pfit_check_timings(const struct intel_crtc_state *crtc_stat
> return 0;
> }
>
> +static int intel_pch_pfit_check_cloning(const struct intel_crtc_state *crtc_state)
> +{
> + struct intel_display *display = to_intel_display(crtc_state);
> + struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> +
> + /*
> + * The panel fitter is in the pipe and thus would affect every
> + * cloned output. The relevant properties (scaling mode, TV
> + * margins) are per-connector so we'd have to make sure each
> + * output sets them up identically. Seems like a very niche use
> + * case so let's just reject cloning entirely when pfit is used.
> + */
> + if (crtc_state->uapi.encoder_mask &&
> + !is_power_of_2(crtc_state->uapi.encoder_mask)) {
> + drm_dbg_kms(display->drm,
> + "[CRTC:%d:%s] no pfit when cloning\n",
> + crtc->base.base.id, crtc->base.name);
> + return -EINVAL;
> + }
> +
> + return 0;
> +}
> +
> /* adjusted_mode has been preset to be the panel's fixed mode */
> static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
> const struct drm_connector_state *conn_state)
> @@ -564,6 +587,10 @@ static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
> if (ret)
> return ret;
>
> + ret = intel_pch_pfit_check_cloning(crtc_state);
> + if (ret)
> + return ret;
> +
> return 0;
> }
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 6/9] drm/i915/pfit: Check pfit destination window on ILK-BDW
2024-10-16 14:31 ` [PATCH 6/9] drm/i915/pfit: Check pfit destination window " Ville Syrjala
@ 2024-10-22 8:26 ` Jani Nikula
0 siblings, 0 replies; 24+ messages in thread
From: Jani Nikula @ 2024-10-22 8:26 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Wed, 16 Oct 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The ILK-BDW panel fitter has several restrictions on the
> destination window size. Check for those and reject the
> configuration if things aren't entirely proper.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_panel.c | 55 ++++++++++++++++++++++
> 1 file changed, 55 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
> index 593e41907d53..d66ce8537f7d 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.c
> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
> @@ -383,6 +383,57 @@ void intel_panel_add_encoder_fixed_mode(struct intel_connector *connector,
> "current (BIOS)");
> }
>
> +static int intel_pch_pfit_check_dst_window(const struct intel_crtc_state *crtc_state)
> +{
> + struct intel_display *display = to_intel_display(crtc_state);
> + struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> + const struct drm_display_mode *adjusted_mode =
> + &crtc_state->hw.adjusted_mode;
> + const struct drm_rect *dst = &crtc_state->pch_pfit.dst;
> + int width = drm_rect_width(dst);
> + int height = drm_rect_height(dst);
> + int x = dst->x1;
> + int y = dst->y1;
> +
> + if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE &&
> + (y & 1 || height & 1)) {
> + drm_dbg_kms(display->drm,
> + "[CRTC:%d:%s] pfit window (" DRM_RECT_FMT ") misaligned for interlaced output\n",
> + crtc->base.base.id, crtc->base.name, DRM_RECT_ARG(dst));
> + return -EINVAL;
> + }
> +
> + /*
> + * "Restriction : When pipe scaling is enabled, the scaled
> + * output must equal the pipe active area, so Pipe active
> + * size = (2 * PF window position) + PF window size."
> + *
> + * The vertical direction seems more forgiving than the
> + * horizontal direction, but still has some issues so
> + * let's follow the same hard rule for both.
> + */
> + if (adjusted_mode->crtc_hdisplay != 2 * x + width ||
> + adjusted_mode->crtc_vdisplay != 2 * y + height) {
> + drm_dbg_kms(display->drm,
> + "[CRTC:%d:%s] pfit window (" DRM_RECT_FMT ") not centered\n",
> + crtc->base.base.id, crtc->base.name, DRM_RECT_ARG(dst));
> + return -EINVAL;
> + }
> +
> + /*
> + * "Restriction : The X position must not be programmed
> + * to be 1 (28:16=0 0000 0000 0001b)."
> + */
> + if (x == 1) {
> + drm_dbg_kms(display->drm,
> + "[CRTC:%d:%s] pfit window (" DRM_RECT_FMT ") badly positioned\n",
> + crtc->base.base.id, crtc->base.name, DRM_RECT_ARG(dst));
> + return -EINVAL;
> + }
> +
> + return 0;
> +}
> +
> static int intel_pch_pfit_check_src_size(const struct intel_crtc_state *crtc_state)
> {
> struct intel_display *display = to_intel_display(crtc_state);
> @@ -575,6 +626,10 @@ static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
> if (DISPLAY_VER(display) >= 9)
> return 0;
>
> + ret = intel_pch_pfit_check_dst_window(crtc_state);
> + if (ret)
> + return ret;
> +
> ret = intel_pch_pfit_check_src_size(crtc_state);
> if (ret)
> return ret;
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 7/9] drm/i915/panel: Convert panel code to intel_display
2024-10-16 14:31 ` [PATCH 7/9] drm/i915/panel: Convert panel code to intel_display Ville Syrjala
@ 2024-10-22 8:26 ` Jani Nikula
0 siblings, 0 replies; 24+ messages in thread
From: Jani Nikula @ 2024-10-22 8:26 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Wed, 16 Oct 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> struct intel_display will replace struct drm_i915_private as
> the main thing for display code. Convert the panel code to
> use it (as much as possible at this stage).
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_cx0_phy.c | 3 +-
> drivers/gpu/drm/i915/display/intel_dpll.c | 27 ++++++++----
> drivers/gpu/drm/i915/display/intel_panel.c | 44 +++++++++----------
> drivers/gpu/drm/i915/display/intel_panel.h | 4 +-
> .../gpu/drm/i915/display/intel_pch_refclk.c | 9 ++--
> 5 files changed, 47 insertions(+), 40 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> index f73d576fd99e..045ad6539c65 100644
> --- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> @@ -2003,12 +2003,13 @@ intel_c10pll_tables_get(struct intel_crtc_state *crtc_state,
> static void intel_c10pll_update_pll(struct intel_crtc_state *crtc_state,
> struct intel_encoder *encoder)
> {
> + struct intel_display *display = to_intel_display(encoder);
> struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> struct intel_cx0pll_state *pll_state = &crtc_state->dpll_hw_state.cx0pll;
> int i;
>
> if (intel_crtc_has_dp_encoder(crtc_state)) {
> - if (intel_panel_use_ssc(i915)) {
> + if (intel_panel_use_ssc(display)) {
> struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>
> pll_state->ssc_enabled =
> diff --git a/drivers/gpu/drm/i915/display/intel_dpll.c b/drivers/gpu/drm/i915/display/intel_dpll.c
> index b679c5391fe6..c0a3c4b53b0a 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpll.c
> +++ b/drivers/gpu/drm/i915/display/intel_dpll.c
> @@ -1003,6 +1003,7 @@ static u32 i9xx_dpll(const struct intel_crtc_state *crtc_state,
> const struct dpll *clock,
> const struct dpll *reduced_clock)
> {
> + struct intel_display *display = to_intel_display(crtc_state);
> struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> u32 dpll;
> @@ -1061,7 +1062,7 @@ static u32 i9xx_dpll(const struct intel_crtc_state *crtc_state,
> if (crtc_state->sdvo_tv_clock)
> dpll |= PLL_REF_INPUT_TVCLKINBC;
> else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS) &&
> - intel_panel_use_ssc(dev_priv))
> + intel_panel_use_ssc(display))
> dpll |= PLLB_REF_INPUT_SPREADSPECTRUMIN;
> else
> dpll |= PLL_REF_INPUT_DREFCLK;
> @@ -1095,6 +1096,7 @@ static u32 i8xx_dpll(const struct intel_crtc_state *crtc_state,
> const struct dpll *clock,
> const struct dpll *reduced_clock)
> {
> + struct intel_display *display = to_intel_display(crtc_state);
> struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> u32 dpll;
> @@ -1131,7 +1133,7 @@ static u32 i8xx_dpll(const struct intel_crtc_state *crtc_state,
> dpll |= DPLL_DVO_2X_MODE;
>
> if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS) &&
> - intel_panel_use_ssc(dev_priv))
> + intel_panel_use_ssc(display))
> dpll |= PLLB_REF_INPUT_SPREADSPECTRUMIN;
> else
> dpll |= PLL_REF_INPUT_DREFCLK;
> @@ -1237,11 +1239,12 @@ static int mtl_crtc_compute_clock(struct intel_atomic_state *state,
>
> static int ilk_fb_cb_factor(const struct intel_crtc_state *crtc_state)
> {
> + struct intel_display *display = to_intel_display(crtc_state);
> struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> struct drm_i915_private *i915 = to_i915(crtc->base.dev);
>
> if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS) &&
> - ((intel_panel_use_ssc(i915) && i915->display.vbt.lvds_ssc_freq == 100000) ||
> + ((intel_panel_use_ssc(display) && i915->display.vbt.lvds_ssc_freq == 100000) ||
> (HAS_PCH_IBX(i915) && intel_is_dual_link_lvds(i915))))
> return 25;
>
> @@ -1271,6 +1274,7 @@ static u32 ilk_dpll(const struct intel_crtc_state *crtc_state,
> const struct dpll *clock,
> const struct dpll *reduced_clock)
> {
> + struct intel_display *display = to_intel_display(crtc_state);
> struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> u32 dpll;
> @@ -1332,7 +1336,7 @@ static u32 ilk_dpll(const struct intel_crtc_state *crtc_state,
> WARN_ON(reduced_clock->p2 != clock->p2);
>
> if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS) &&
> - intel_panel_use_ssc(dev_priv))
> + intel_panel_use_ssc(display))
> dpll |= PLLB_REF_INPUT_SPREADSPECTRUMIN;
> else
> dpll |= PLL_REF_INPUT_DREFCLK;
> @@ -1356,6 +1360,7 @@ static void ilk_compute_dpll(struct intel_crtc_state *crtc_state,
> static int ilk_crtc_compute_clock(struct intel_atomic_state *state,
> struct intel_crtc *crtc)
> {
> + struct intel_display *display = to_intel_display(state);
> struct drm_i915_private *dev_priv = to_i915(state->base.dev);
> struct intel_crtc_state *crtc_state =
> intel_atomic_get_new_crtc_state(state, crtc);
> @@ -1368,7 +1373,7 @@ static int ilk_crtc_compute_clock(struct intel_atomic_state *state,
> return 0;
>
> if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS)) {
> - if (intel_panel_use_ssc(dev_priv)) {
> + if (intel_panel_use_ssc(display)) {
> drm_dbg_kms(&dev_priv->drm,
> "using SSC reference clock of %d kHz\n",
> dev_priv->display.vbt.lvds_ssc_freq);
> @@ -1532,6 +1537,7 @@ static int vlv_crtc_compute_clock(struct intel_atomic_state *state,
> static int g4x_crtc_compute_clock(struct intel_atomic_state *state,
> struct intel_crtc *crtc)
> {
> + struct intel_display *display = to_intel_display(state);
> struct drm_i915_private *dev_priv = to_i915(state->base.dev);
> struct intel_crtc_state *crtc_state =
> intel_atomic_get_new_crtc_state(state, crtc);
> @@ -1539,7 +1545,7 @@ static int g4x_crtc_compute_clock(struct intel_atomic_state *state,
> int refclk = 96000;
>
> if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS)) {
> - if (intel_panel_use_ssc(dev_priv)) {
> + if (intel_panel_use_ssc(display)) {
> refclk = dev_priv->display.vbt.lvds_ssc_freq;
> drm_dbg_kms(&dev_priv->drm,
> "using SSC reference clock of %d kHz\n",
> @@ -1581,6 +1587,7 @@ static int g4x_crtc_compute_clock(struct intel_atomic_state *state,
> static int pnv_crtc_compute_clock(struct intel_atomic_state *state,
> struct intel_crtc *crtc)
> {
> + struct intel_display *display = to_intel_display(state);
> struct drm_i915_private *dev_priv = to_i915(state->base.dev);
> struct intel_crtc_state *crtc_state =
> intel_atomic_get_new_crtc_state(state, crtc);
> @@ -1588,7 +1595,7 @@ static int pnv_crtc_compute_clock(struct intel_atomic_state *state,
> int refclk = 96000;
>
> if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS)) {
> - if (intel_panel_use_ssc(dev_priv)) {
> + if (intel_panel_use_ssc(display)) {
> refclk = dev_priv->display.vbt.lvds_ssc_freq;
> drm_dbg_kms(&dev_priv->drm,
> "using SSC reference clock of %d kHz\n",
> @@ -1619,6 +1626,7 @@ static int pnv_crtc_compute_clock(struct intel_atomic_state *state,
> static int i9xx_crtc_compute_clock(struct intel_atomic_state *state,
> struct intel_crtc *crtc)
> {
> + struct intel_display *display = to_intel_display(state);
> struct drm_i915_private *dev_priv = to_i915(state->base.dev);
> struct intel_crtc_state *crtc_state =
> intel_atomic_get_new_crtc_state(state, crtc);
> @@ -1626,7 +1634,7 @@ static int i9xx_crtc_compute_clock(struct intel_atomic_state *state,
> int refclk = 96000;
>
> if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS)) {
> - if (intel_panel_use_ssc(dev_priv)) {
> + if (intel_panel_use_ssc(display)) {
> refclk = dev_priv->display.vbt.lvds_ssc_freq;
> drm_dbg_kms(&dev_priv->drm,
> "using SSC reference clock of %d kHz\n",
> @@ -1659,6 +1667,7 @@ static int i9xx_crtc_compute_clock(struct intel_atomic_state *state,
> static int i8xx_crtc_compute_clock(struct intel_atomic_state *state,
> struct intel_crtc *crtc)
> {
> + struct intel_display *display = to_intel_display(state);
> struct drm_i915_private *dev_priv = to_i915(state->base.dev);
> struct intel_crtc_state *crtc_state =
> intel_atomic_get_new_crtc_state(state, crtc);
> @@ -1666,7 +1675,7 @@ static int i8xx_crtc_compute_clock(struct intel_atomic_state *state,
> int refclk = 48000;
>
> if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_LVDS)) {
> - if (intel_panel_use_ssc(dev_priv)) {
> + if (intel_panel_use_ssc(display)) {
> refclk = dev_priv->display.vbt.lvds_ssc_freq;
> drm_dbg_kms(&dev_priv->drm,
> "using SSC reference clock of %d kHz\n",
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
> index d66ce8537f7d..7fa0a54a3d3a 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.c
> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
> @@ -45,10 +45,8 @@
> #include "intel_quirks.h"
> #include "intel_vrr.h"
>
> -bool intel_panel_use_ssc(struct drm_i915_private *i915)
> +bool intel_panel_use_ssc(struct intel_display *display)
> {
> - struct intel_display *display = &i915->display;
> -
> if (display->params.panel_use_ssc >= 0)
> return display->params.panel_use_ssc != 0;
> return display->vbt.lvds_use_ssc &&
> @@ -252,7 +250,7 @@ int intel_panel_compute_config(struct intel_connector *connector,
>
> static void intel_panel_add_edid_alt_fixed_modes(struct intel_connector *connector)
> {
> - struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> + struct intel_display *display = to_intel_display(connector);
> const struct drm_display_mode *preferred_mode =
> intel_panel_preferred_fixed_mode(connector);
> struct drm_display_mode *mode, *next;
> @@ -261,7 +259,7 @@ static void intel_panel_add_edid_alt_fixed_modes(struct intel_connector *connect
> if (!is_alt_fixed_mode(mode, preferred_mode))
> continue;
>
> - drm_dbg_kms(&dev_priv->drm,
> + drm_dbg_kms(display->drm,
> "[CONNECTOR:%d:%s] using alternate EDID fixed mode: " DRM_MODE_FMT "\n",
> connector->base.base.id, connector->base.name,
> DRM_MODE_ARG(mode));
> @@ -272,7 +270,7 @@ static void intel_panel_add_edid_alt_fixed_modes(struct intel_connector *connect
>
> static void intel_panel_add_edid_preferred_mode(struct intel_connector *connector)
> {
> - struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> + struct intel_display *display = to_intel_display(connector);
> struct drm_display_mode *scan, *fixed_mode = NULL;
>
> if (list_empty(&connector->base.probed_modes))
> @@ -290,7 +288,7 @@ static void intel_panel_add_edid_preferred_mode(struct intel_connector *connecto
> fixed_mode = list_first_entry(&connector->base.probed_modes,
> typeof(*fixed_mode), head);
>
> - drm_dbg_kms(&dev_priv->drm,
> + drm_dbg_kms(display->drm,
> "[CONNECTOR:%d:%s] using %s EDID fixed mode: " DRM_MODE_FMT "\n",
> connector->base.base.id, connector->base.name,
> fixed_mode->type & DRM_MODE_TYPE_PREFERRED ? "preferred" : "first",
> @@ -303,16 +301,16 @@ static void intel_panel_add_edid_preferred_mode(struct intel_connector *connecto
>
> static void intel_panel_destroy_probed_modes(struct intel_connector *connector)
> {
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> + struct intel_display *display = to_intel_display(connector);
> struct drm_display_mode *mode, *next;
>
> list_for_each_entry_safe(mode, next, &connector->base.probed_modes, head) {
> - drm_dbg_kms(&i915->drm,
> + drm_dbg_kms(display->drm,
> "[CONNECTOR:%d:%s] not using EDID mode: " DRM_MODE_FMT "\n",
> connector->base.base.id, connector->base.name,
> DRM_MODE_ARG(mode));
> list_del(&mode->head);
> - drm_mode_destroy(&i915->drm, mode);
> + drm_mode_destroy(display->drm, mode);
> }
> }
>
> @@ -329,7 +327,7 @@ static void intel_panel_add_fixed_mode(struct intel_connector *connector,
> struct drm_display_mode *fixed_mode,
> const char *type)
> {
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> + struct intel_display *display = to_intel_display(connector);
> struct drm_display_info *info = &connector->base.display_info;
>
> if (!fixed_mode)
> @@ -340,7 +338,7 @@ static void intel_panel_add_fixed_mode(struct intel_connector *connector,
> info->width_mm = fixed_mode->width_mm;
> info->height_mm = fixed_mode->height_mm;
>
> - drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] using %s fixed mode: " DRM_MODE_FMT "\n",
> + drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] using %s fixed mode: " DRM_MODE_FMT "\n",
> connector->base.base.id, connector->base.name, type,
> DRM_MODE_ARG(fixed_mode));
>
> @@ -349,7 +347,7 @@ static void intel_panel_add_fixed_mode(struct intel_connector *connector,
>
> void intel_panel_add_vbt_lfp_fixed_mode(struct intel_connector *connector)
> {
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> + struct intel_display *display = to_intel_display(connector);
> const struct drm_display_mode *mode;
>
> mode = connector->panel.vbt.lfp_vbt_mode;
> @@ -357,13 +355,13 @@ void intel_panel_add_vbt_lfp_fixed_mode(struct intel_connector *connector)
> return;
>
> intel_panel_add_fixed_mode(connector,
> - drm_mode_duplicate(&i915->drm, mode),
> + drm_mode_duplicate(display->drm, mode),
> "VBT LFP");
> }
>
> void intel_panel_add_vbt_sdvo_fixed_mode(struct intel_connector *connector)
> {
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> + struct intel_display *display = to_intel_display(connector);
> const struct drm_display_mode *mode;
>
> mode = connector->panel.vbt.sdvo_lvds_vbt_mode;
> @@ -371,7 +369,7 @@ void intel_panel_add_vbt_sdvo_fixed_mode(struct intel_connector *connector)
> return;
>
> intel_panel_add_fixed_mode(connector,
> - drm_mode_duplicate(&i915->drm, mode),
> + drm_mode_duplicate(display->drm, mode),
> "VBT SDVO");
> }
>
> @@ -819,7 +817,6 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
> {
> struct intel_display *display = to_intel_display(crtc_state);
> struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> - struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> u32 pfit_control = 0, pfit_pgm_ratios = 0, border = 0;
> struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
> int pipe_src_w = drm_rect_width(&crtc_state->pipe_src);
> @@ -861,7 +858,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
> break;
> case DRM_MODE_SCALE_ASPECT:
> /* Scale but preserve the aspect ratio */
> - if (DISPLAY_VER(dev_priv) >= 4)
> + if (DISPLAY_VER(display) >= 4)
> i965_scale_aspect(crtc_state, &pfit_control);
> else
> i9xx_scale_aspect(crtc_state, &pfit_control,
> @@ -875,7 +872,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
> if (pipe_src_h != adjusted_mode->crtc_vdisplay ||
> pipe_src_w != adjusted_mode->crtc_hdisplay) {
> pfit_control |= PFIT_ENABLE;
> - if (DISPLAY_VER(dev_priv) >= 4)
> + if (DISPLAY_VER(display) >= 4)
> pfit_control |= PFIT_SCALING_AUTO;
> else
> pfit_control |= (PFIT_VERT_AUTO_SCALE |
> @@ -891,7 +888,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
>
> /* 965+ wants fuzzy fitting */
> /* FIXME: handle multiple panels by failing gracefully */
> - if (DISPLAY_VER(dev_priv) >= 4)
> + if (DISPLAY_VER(display) >= 4)
> pfit_control |= PFIT_PIPE(crtc->pipe) | PFIT_FILTER_FUZZY;
>
> out:
> @@ -901,7 +898,7 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
> }
>
> /* Make sure pre-965 set dither correctly for 18bpp panels. */
> - if (DISPLAY_VER(dev_priv) < 4 && crtc_state->pipe_bpp == 18)
> + if (DISPLAY_VER(display) < 4 && crtc_state->pipe_bpp == 18)
> pfit_control |= PFIT_PANEL_8TO6_DITHER_ENABLE;
>
> crtc_state->gmch_pfit.control = pfit_control;
> @@ -917,10 +914,9 @@ static int gmch_panel_fitting(struct intel_crtc_state *crtc_state,
> int intel_panel_fitting(struct intel_crtc_state *crtc_state,
> const struct drm_connector_state *conn_state)
> {
> - struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> - struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> + struct intel_display *display = to_intel_display(crtc_state);
>
> - if (HAS_GMCH(i915))
> + if (HAS_GMCH(display))
> return gmch_panel_fitting(crtc_state, conn_state);
> else
> return pch_panel_fitting(crtc_state, conn_state);
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.h b/drivers/gpu/drm/i915/display/intel_panel.h
> index 15a8c897b33f..d6dd88473555 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.h
> +++ b/drivers/gpu/drm/i915/display/intel_panel.h
> @@ -14,9 +14,9 @@ struct drm_connector;
> struct drm_connector_state;
> struct drm_display_mode;
> struct drm_edid;
> -struct drm_i915_private;
> struct intel_connector;
> struct intel_crtc_state;
> +struct intel_display;
> struct intel_encoder;
>
> void intel_panel_init_alloc(struct intel_connector *connector);
> @@ -25,7 +25,7 @@ int intel_panel_init(struct intel_connector *connector,
> void intel_panel_fini(struct intel_connector *connector);
> enum drm_connector_status
> intel_panel_detect(struct drm_connector *connector, bool force);
> -bool intel_panel_use_ssc(struct drm_i915_private *i915);
> +bool intel_panel_use_ssc(struct intel_display *display);
> const struct drm_display_mode *
> intel_panel_preferred_fixed_mode(struct intel_connector *connector);
> const struct drm_display_mode *
> diff --git a/drivers/gpu/drm/i915/display/intel_pch_refclk.c b/drivers/gpu/drm/i915/display/intel_pch_refclk.c
> index 713cfba71475..84c55971e91a 100644
> --- a/drivers/gpu/drm/i915/display/intel_pch_refclk.c
> +++ b/drivers/gpu/drm/i915/display/intel_pch_refclk.c
> @@ -491,6 +491,7 @@ static void lpt_init_pch_refclk(struct drm_i915_private *dev_priv)
>
> static void ilk_init_pch_refclk(struct drm_i915_private *dev_priv)
> {
> + struct intel_display *display = &dev_priv->display;
> struct intel_encoder *encoder;
> struct intel_shared_dpll *pll;
> int i;
> @@ -572,11 +573,11 @@ static void ilk_init_pch_refclk(struct drm_i915_private *dev_priv)
> if (has_panel) {
> final |= DREF_SSC_SOURCE_ENABLE;
>
> - if (intel_panel_use_ssc(dev_priv) && can_ssc)
> + if (intel_panel_use_ssc(display) && can_ssc)
> final |= DREF_SSC1_ENABLE;
>
> if (has_cpu_edp) {
> - if (intel_panel_use_ssc(dev_priv) && can_ssc)
> + if (intel_panel_use_ssc(display) && can_ssc)
> final |= DREF_CPU_SOURCE_OUTPUT_DOWNSPREAD;
> else
> final |= DREF_CPU_SOURCE_OUTPUT_NONSPREAD;
> @@ -604,7 +605,7 @@ static void ilk_init_pch_refclk(struct drm_i915_private *dev_priv)
> val |= DREF_SSC_SOURCE_ENABLE;
>
> /* SSC must be turned on before enabling the CPU output */
> - if (intel_panel_use_ssc(dev_priv) && can_ssc) {
> + if (intel_panel_use_ssc(display) && can_ssc) {
> drm_dbg_kms(&dev_priv->drm, "Using SSC on panel\n");
> val |= DREF_SSC1_ENABLE;
> } else {
> @@ -620,7 +621,7 @@ static void ilk_init_pch_refclk(struct drm_i915_private *dev_priv)
>
> /* Enable CPU source on CPU attached eDP */
> if (has_cpu_edp) {
> - if (intel_panel_use_ssc(dev_priv) && can_ssc) {
> + if (intel_panel_use_ssc(display) && can_ssc) {
> drm_dbg_kms(&dev_priv->drm,
> "Using SSC on eDP\n");
> val |= DREF_CPU_SOURCE_OUTPUT_DOWNSPREAD;
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 8/9] drm/i915/pfit: Extract intel_pfit.c
2024-10-16 14:31 ` [PATCH 8/9] drm/i915/pfit: Extract intel_pfit.c Ville Syrjala
@ 2024-10-22 8:31 ` Jani Nikula
2024-10-23 15:38 ` Ville Syrjälä
0 siblings, 1 reply; 24+ messages in thread
From: Jani Nikula @ 2024-10-22 8:31 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Wed, 16 Oct 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> diff --git a/drivers/gpu/drm/i915/display/intel_pfit.h b/drivers/gpu/drm/i915/display/intel_pfit.h
> new file mode 100644
> index 000000000000..add8d78de2c9
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/display/intel_pfit.h
> @@ -0,0 +1,15 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2024 Intel Corporation
> + */
> +
> +#ifndef __INTEL_PFIT_H__
> +#define __INTEL_PFIT_H__
> +
> +struct drm_connector_state;
> +struct intel_crtc_state;
> +
> +int intel_panel_fitting(struct intel_crtc_state *crtc_state,
> + const struct drm_connector_state *conn_state);
Nitpick, would be nice to rename this to intel_pfit_something() in
follow-up.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 9/9] drm/i915: Remove ckey/format checks from skl_update_scaler_plane()
2024-10-16 14:31 ` [PATCH 9/9] drm/i915: Remove ckey/format checks from skl_update_scaler_plane() Ville Syrjala
@ 2024-10-22 9:04 ` Jani Nikula
0 siblings, 0 replies; 24+ messages in thread
From: Jani Nikula @ 2024-10-22 9:04 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Wed, 16 Oct 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> skl_plane_check() already takes care to reject scaling when an
> unsupported pixel format or color keying is used. No need to
> replicate that in the scaler code.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/skl_scaler.c | 77 +++--------------------
> 1 file changed, 10 insertions(+), 67 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
> index baa601d27815..7dbc99b02eaa 100644
> --- a/drivers/gpu/drm/i915/display/skl_scaler.c
> +++ b/drivers/gpu/drm/i915/display/skl_scaler.c
> @@ -272,7 +272,6 @@ int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
> to_intel_plane(plane_state->uapi.plane);
> struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev);
> struct drm_framebuffer *fb = plane_state->hw.fb;
> - int ret;
> bool force_detach = !fb || !plane_state->uapi.visible;
> bool need_scaler = false;
>
> @@ -281,72 +280,16 @@ int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
> fb && intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier))
> need_scaler = true;
>
> - ret = skl_update_scaler(crtc_state, force_detach,
> - drm_plane_index(&intel_plane->base),
> - &plane_state->scaler_id,
> - drm_rect_width(&plane_state->uapi.src) >> 16,
> - drm_rect_height(&plane_state->uapi.src) >> 16,
> - drm_rect_width(&plane_state->uapi.dst),
> - drm_rect_height(&plane_state->uapi.dst),
> - fb ? fb->format : NULL,
> - fb ? fb->modifier : 0,
> - need_scaler);
> -
> - if (ret || plane_state->scaler_id < 0)
> - return ret;
> -
> - /* check colorkey */
> - if (plane_state->ckey.flags) {
> - drm_dbg_kms(&dev_priv->drm,
> - "[PLANE:%d:%s] scaling with color key not allowed",
> - intel_plane->base.base.id,
> - intel_plane->base.name);
> - return -EINVAL;
> - }
> -
> - /* Check src format */
> - switch (fb->format->format) {
> - case DRM_FORMAT_RGB565:
> - case DRM_FORMAT_XBGR8888:
> - case DRM_FORMAT_XRGB8888:
> - case DRM_FORMAT_ABGR8888:
> - case DRM_FORMAT_ARGB8888:
> - case DRM_FORMAT_XRGB2101010:
> - case DRM_FORMAT_XBGR2101010:
> - case DRM_FORMAT_ARGB2101010:
> - case DRM_FORMAT_ABGR2101010:
> - case DRM_FORMAT_YUYV:
> - case DRM_FORMAT_YVYU:
> - case DRM_FORMAT_UYVY:
> - case DRM_FORMAT_VYUY:
> - case DRM_FORMAT_NV12:
> - case DRM_FORMAT_XYUV8888:
> - case DRM_FORMAT_P010:
> - case DRM_FORMAT_P012:
> - case DRM_FORMAT_P016:
> - case DRM_FORMAT_Y210:
> - case DRM_FORMAT_Y212:
> - case DRM_FORMAT_Y216:
> - case DRM_FORMAT_XVYU2101010:
> - case DRM_FORMAT_XVYU12_16161616:
> - case DRM_FORMAT_XVYU16161616:
> - break;
> - case DRM_FORMAT_XBGR16161616F:
> - case DRM_FORMAT_ABGR16161616F:
> - case DRM_FORMAT_XRGB16161616F:
> - case DRM_FORMAT_ARGB16161616F:
> - if (DISPLAY_VER(dev_priv) >= 11)
> - break;
> - fallthrough;
> - default:
> - drm_dbg_kms(&dev_priv->drm,
> - "[PLANE:%d:%s] FB:%d unsupported scaling format 0x%x\n",
> - intel_plane->base.base.id, intel_plane->base.name,
> - fb->base.id, fb->format->format);
> - return -EINVAL;
> - }
> -
> - return 0;
> + return skl_update_scaler(crtc_state, force_detach,
> + drm_plane_index(&intel_plane->base),
> + &plane_state->scaler_id,
> + drm_rect_width(&plane_state->uapi.src) >> 16,
> + drm_rect_height(&plane_state->uapi.src) >> 16,
> + drm_rect_width(&plane_state->uapi.dst),
> + drm_rect_height(&plane_state->uapi.dst),
> + fb ? fb->format : NULL,
> + fb ? fb->modifier : 0,
> + need_scaler);
> }
>
> static int intel_atomic_setup_scaler(struct intel_crtc_scaler_state *scaler_state,
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 8/9] drm/i915/pfit: Extract intel_pfit.c
2024-10-22 8:31 ` Jani Nikula
@ 2024-10-23 15:38 ` Ville Syrjälä
0 siblings, 0 replies; 24+ messages in thread
From: Ville Syrjälä @ 2024-10-23 15:38 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
On Tue, Oct 22, 2024 at 11:31:57AM +0300, Jani Nikula wrote:
> On Wed, 16 Oct 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > diff --git a/drivers/gpu/drm/i915/display/intel_pfit.h b/drivers/gpu/drm/i915/display/intel_pfit.h
> > new file mode 100644
> > index 000000000000..add8d78de2c9
> > --- /dev/null
> > +++ b/drivers/gpu/drm/i915/display/intel_pfit.h
> > @@ -0,0 +1,15 @@
> > +/* SPDX-License-Identifier: MIT */
> > +/*
> > + * Copyright © 2024 Intel Corporation
> > + */
> > +
> > +#ifndef __INTEL_PFIT_H__
> > +#define __INTEL_PFIT_H__
> > +
> > +struct drm_connector_state;
> > +struct intel_crtc_state;
> > +
> > +int intel_panel_fitting(struct intel_crtc_state *crtc_state,
> > + const struct drm_connector_state *conn_state);
>
> Nitpick, would be nice to rename this to intel_pfit_something() in
> follow-up.
The joiner vs. pfit changes will probably involve further
renaming, so figured I'd leave it as is until then.
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Thanks. Pushed the lot.
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2024-10-23 15:38 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-16 14:31 [PATCH 0/9] drm/i915/pfit: Panel fitter stuff Ville Syrjala
2024-10-16 14:31 ` [PATCH 1/9] drm/i915/pfit: Check pipe source size against pfit limits on ILK-BDW Ville Syrjala
2024-10-22 8:24 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 2/9] drm/i915/pfit: Check pfit scaling factors " Ville Syrjala
2024-10-22 8:24 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 3/9] drm/i915/pfit: Reject pfit downscaling for GMCH platforms Ville Syrjala
2024-10-22 8:25 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 4/9] drm/i915/pfit: Check pfit minimum timings in pre-SKL Ville Syrjala
2024-10-22 8:25 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 5/9] drm/i915/pfit: Reject cloning when using pfit on ILK-BDW Ville Syrjala
2024-10-22 8:25 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 6/9] drm/i915/pfit: Check pfit destination window " Ville Syrjala
2024-10-22 8:26 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 7/9] drm/i915/panel: Convert panel code to intel_display Ville Syrjala
2024-10-22 8:26 ` Jani Nikula
2024-10-16 14:31 ` [PATCH 8/9] drm/i915/pfit: Extract intel_pfit.c Ville Syrjala
2024-10-22 8:31 ` Jani Nikula
2024-10-23 15:38 ` Ville Syrjälä
2024-10-16 14:31 ` [PATCH 9/9] drm/i915: Remove ckey/format checks from skl_update_scaler_plane() Ville Syrjala
2024-10-22 9:04 ` Jani Nikula
2024-10-16 19:58 ` ✓ Fi.CI.BAT: success for drm/i915/pfit: Panel fitter stuff Patchwork
2024-10-16 19:59 ` ✗ Fi.CI.CHECKPATCH: warning " Patchwork
2024-10-16 19:59 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-10-16 22:16 ` ✗ Fi.CI.IGT: failure " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox