* [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code
@ 2026-04-07 17:52 Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 1/9] drm/i915/casf: s/casf_enable/enable/ Ville Syrjala
` (11 more replies)
0 siblings, 12 replies; 13+ messages in thread
From: Ville Syrjala @ 2026-04-07 17:52 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The sharpness filter isn't anything special. It's just another
mode of the pipe scaler, so treat is as such.
This gets rid of tons of special casing all over the place,
and will allow me to finally land the pending pipe prefill
series: https://patchwork.freedesktop.org/series/156137/
Note that this will fail some kms_sharpness_filter tests,
because those tests are basically incorrect. But I couldn't
decide yet how much of that entire test should be nuked. It
seems to be doing a *lot* of things, most of which have
nothing to do with the sharpness filter...
v2: Rebase due to related changes
Also reject sharpness + scaling_filter!=DEFAULT
Ville Syrjälä (9):
drm/i915/casf: s/casf_enable/enable/
drm/i915/casf: Make a proper hw state copy of the sharpness_strength
drm/i915/casf: Move the casf state to better place
drm/i915/casf: Extract scaler_has_casf()
drm/i915/casf: Handle CASF in skl_scaler_get_filter_select()
drm/i915/casf: Constify crtc_state
drm/i915/casf: Remove redundant argument from
intel_casf_filter_lut_load()
drm/i915/pfit: Call intel_pfit_compute_config() unconditionally on
(e)DP/HDMI
drm/i915/casf: Integrate the sharpness filter properly into the scaler
code
drivers/gpu/drm/i915/display/intel_casf.c | 102 +++++-----------
drivers/gpu/drm/i915/display/intel_casf.h | 6 +-
.../drm/i915/display/intel_crtc_state_dump.c | 11 +-
drivers/gpu/drm/i915/display/intel_display.c | 46 ++------
.../drm/i915/display/intel_display_debugfs.c | 5 +-
.../drm/i915/display/intel_display_types.h | 5 +-
drivers/gpu/drm/i915/display/intel_dp.c | 9 +-
drivers/gpu/drm/i915/display/intel_hdmi.c | 8 +-
.../drm/i915/display/intel_modeset_setup.c | 1 +
drivers/gpu/drm/i915/display/intel_pfit.c | 13 ++-
drivers/gpu/drm/i915/display/skl_scaler.c | 110 +++++++-----------
drivers/gpu/drm/i915/display/skl_scaler.h | 2 -
12 files changed, 112 insertions(+), 206 deletions(-)
--
2.52.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 1/9] drm/i915/casf: s/casf_enable/enable/
2026-04-07 17:52 [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
@ 2026-04-07 17:52 ` Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 2/9] drm/i915/casf: Make a proper hw state copy of the sharpness_strength Ville Syrjala
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Ville Syrjala @ 2026-04-07 17:52 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Michał Grzelak, Nemesa Garg
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The 'casf_enable' boolean is already inside a casf specific
structure, so drop the extra 'casf_' namespace from the bool.
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com>
Reviewed-by: Nemesa Garg <nemesa.garg@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_casf.c | 8 ++++----
drivers/gpu/drm/i915/display/intel_crtc_state_dump.c | 2 +-
drivers/gpu/drm/i915/display/intel_display.c | 6 +++---
drivers/gpu/drm/i915/display/intel_display_types.h | 2 +-
drivers/gpu/drm/i915/display/skl_scaler.c | 4 ++--
5 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_casf.c b/drivers/gpu/drm/i915/display/intel_casf.c
index b167af31de5b..32e6f7c8acdd 100644
--- a/drivers/gpu/drm/i915/display/intel_casf.c
+++ b/drivers/gpu/drm/i915/display/intel_casf.c
@@ -110,7 +110,7 @@ int intel_casf_compute_config(struct intel_crtc_state *crtc_state)
return 0;
if (crtc_state->uapi.sharpness_strength == 0) {
- crtc_state->hw.casf_params.casf_enable = false;
+ crtc_state->hw.casf_params.enable = false;
crtc_state->hw.casf_params.strength = 0;
return 0;
}
@@ -121,7 +121,7 @@ int intel_casf_compute_config(struct intel_crtc_state *crtc_state)
return -EINVAL;
}
- crtc_state->hw.casf_params.casf_enable = true;
+ crtc_state->hw.casf_params.enable = true;
/*
* HW takes a value in form (1.0 + strength) in 4.4 fixed format.
@@ -155,7 +155,7 @@ void intel_casf_sharpness_get_config(struct intel_crtc_state *crtc_state)
else
crtc_state->hw.casf_params.strength =
REG_FIELD_GET(FILTER_STRENGTH_MASK, sharp);
- crtc_state->hw.casf_params.casf_enable = true;
+ crtc_state->hw.casf_params.enable = true;
crtc_state->hw.casf_params.win_size =
REG_FIELD_GET(FILTER_SIZE_MASK, sharp);
}
@@ -163,7 +163,7 @@ void intel_casf_sharpness_get_config(struct intel_crtc_state *crtc_state)
bool intel_casf_needs_scaler(const struct intel_crtc_state *crtc_state)
{
- if (crtc_state->hw.casf_params.casf_enable)
+ if (crtc_state->hw.casf_params.enable)
return true;
return false;
diff --git a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
index c85ba9a95322..a11a79a0211e 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
@@ -351,7 +351,7 @@ void intel_crtc_state_dump(const struct intel_crtc_state *pipe_config,
drm_printf(&p, "sharpness strength: %d, sharpness tap size: %d, sharpness enable: %d\n",
pipe_config->hw.casf_params.strength,
pipe_config->hw.casf_params.win_size,
- pipe_config->hw.casf_params.casf_enable);
+ pipe_config->hw.casf_params.enable);
drm_printf(&p, "ips: %i, double wide: %i, drrs: %i\n",
pipe_config->ips_enabled, pipe_config->double_wide,
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 10b6c6fcb03f..78d97441f682 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -994,7 +994,7 @@ static bool intel_casf_enabling(const struct intel_crtc_state *new_crtc_state,
if (!new_crtc_state->hw.active)
return false;
- return is_enabling(hw.casf_params.casf_enable, old_crtc_state, new_crtc_state);
+ return is_enabling(hw.casf_params.enable, old_crtc_state, new_crtc_state);
}
static bool intel_casf_disabling(const struct intel_crtc_state *old_crtc_state,
@@ -1003,7 +1003,7 @@ static bool intel_casf_disabling(const struct intel_crtc_state *old_crtc_state,
if (!new_crtc_state->hw.active)
return false;
- return is_disabling(hw.casf_params.casf_enable, old_crtc_state, new_crtc_state);
+ return is_disabling(hw.casf_params.enable, old_crtc_state, new_crtc_state);
}
static bool intel_crtc_lobf_enabling(const struct intel_crtc_state *old_crtc_state,
@@ -5371,7 +5371,7 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
PIPE_CONF_CHECK_I(scaler_state.scaler_id);
PIPE_CONF_CHECK_I(pixel_rate);
- PIPE_CONF_CHECK_BOOL(hw.casf_params.casf_enable);
+ PIPE_CONF_CHECK_BOOL(hw.casf_params.enable);
PIPE_CONF_CHECK_I(hw.casf_params.win_size);
PIPE_CONF_CHECK_I(hw.casf_params.strength);
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index e2496db1642a..83bb5d19b6f6 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -997,7 +997,7 @@ struct intel_casf {
struct scaler_filter_coeff coeff[SCALER_FILTER_NUM_TAPS];
u8 strength;
u8 win_size;
- bool casf_enable;
+ bool enable;
};
struct intel_crtc_state {
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
index 7c5cb188ebf0..cfa17ddb4018 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.c
+++ b/drivers/gpu/drm/i915/display/skl_scaler.c
@@ -986,13 +986,13 @@ void skl_scaler_get_config(struct intel_crtc_state *crtc_state)
if (HAS_CASF(display) && id == 1)
intel_casf_sharpness_get_config(crtc_state);
- if (!crtc_state->hw.casf_params.casf_enable)
+ if (!crtc_state->hw.casf_params.enable)
crtc_state->pch_pfit.enabled = true;
pos = intel_de_read(display, SKL_PS_WIN_POS(crtc->pipe, i));
size = intel_de_read(display, SKL_PS_WIN_SZ(crtc->pipe, i));
- if (!crtc_state->hw.casf_params.casf_enable)
+ if (!crtc_state->hw.casf_params.enable)
drm_rect_init(&crtc_state->pch_pfit.dst,
REG_FIELD_GET(PS_WIN_XPOS_MASK, pos),
REG_FIELD_GET(PS_WIN_YPOS_MASK, pos),
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 2/9] drm/i915/casf: Make a proper hw state copy of the sharpness_strength
2026-04-07 17:52 [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 1/9] drm/i915/casf: s/casf_enable/enable/ Ville Syrjala
@ 2026-04-07 17:52 ` Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 3/9] drm/i915/casf: Move the casf state to better place Ville Syrjala
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Ville Syrjala @ 2026-04-07 17:52 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Michał Grzelak, Nemesa Garg
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Make a copy of the uapi.sharpness_strength property value in our hw
state. This is how we deal with having proper state for joined pipes.
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com>
Reviewed-by: Nemesa Garg <nemesa.garg@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_casf.c | 4 ++--
drivers/gpu/drm/i915/display/intel_crtc_state_dump.c | 5 +++--
drivers/gpu/drm/i915/display/intel_display.c | 6 ++++++
drivers/gpu/drm/i915/display/intel_display_debugfs.c | 5 +++--
drivers/gpu/drm/i915/display/intel_display_types.h | 1 +
drivers/gpu/drm/i915/display/intel_modeset_setup.c | 1 +
6 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_casf.c b/drivers/gpu/drm/i915/display/intel_casf.c
index 32e6f7c8acdd..4316d8214e80 100644
--- a/drivers/gpu/drm/i915/display/intel_casf.c
+++ b/drivers/gpu/drm/i915/display/intel_casf.c
@@ -109,7 +109,7 @@ int intel_casf_compute_config(struct intel_crtc_state *crtc_state)
if (!HAS_CASF(display))
return 0;
- if (crtc_state->uapi.sharpness_strength == 0) {
+ if (crtc_state->hw.sharpness_strength == 0) {
crtc_state->hw.casf_params.enable = false;
crtc_state->hw.casf_params.strength = 0;
return 0;
@@ -132,7 +132,7 @@ int intel_casf_compute_config(struct intel_crtc_state *crtc_state)
* Also 85 + 16 = 101.
*/
crtc_state->hw.casf_params.strength =
- min(crtc_state->uapi.sharpness_strength, 0xEF) + 0x10;
+ min(crtc_state->hw.sharpness_strength, 0xEF) + 0x10;
intel_casf_compute_win_size(crtc_state);
diff --git a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
index a11a79a0211e..42676adf6062 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
@@ -328,11 +328,12 @@ void intel_crtc_state_dump(const struct intel_crtc_state *pipe_config,
pipe_config->linetime, pipe_config->ips_linetime);
if (DISPLAY_VER(display) >= 9)
- drm_printf(&p, "num_scalers: %d, scaler_users: 0x%x, scaler_id: %d, scaling_filter: %d\n",
+ drm_printf(&p, "num_scalers: %d, scaler_users: 0x%x, scaler_id: %d, scaling_filter: %d, sharpness_strength: %d\n",
crtc->num_scalers,
pipe_config->scaler_state.scaler_users,
pipe_config->scaler_state.scaler_id,
- pipe_config->hw.scaling_filter);
+ pipe_config->hw.scaling_filter,
+ pipe_config->hw.sharpness_strength);
drm_printf(&p, "pipe src: " DRM_RECT_FMT "\n",
DRM_RECT_ARG(&pipe_config->pipe_src));
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 78d97441f682..a02c58b5a34d 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -4550,6 +4550,7 @@ intel_crtc_copy_uapi_to_hw_state_modeset(struct intel_atomic_state *state,
drm_mode_copy(&crtc_state->hw.adjusted_mode,
&crtc_state->uapi.adjusted_mode);
crtc_state->hw.scaling_filter = crtc_state->uapi.scaling_filter;
+ crtc_state->hw.sharpness_strength = crtc_state->uapi.sharpness_strength;
intel_crtc_copy_uapi_to_hw_state_nomodeset(state, crtc);
}
@@ -4615,6 +4616,7 @@ copy_joiner_crtc_state_modeset(struct intel_atomic_state *state,
drm_mode_copy(&secondary_crtc_state->hw.adjusted_mode,
&primary_crtc_state->hw.adjusted_mode);
secondary_crtc_state->hw.scaling_filter = primary_crtc_state->hw.scaling_filter;
+ secondary_crtc_state->hw.sharpness_strength = primary_crtc_state->hw.sharpness_strength;
if (primary_crtc_state->dp_tunnel_ref.tunnel)
drm_dp_tunnel_ref_get(primary_crtc_state->dp_tunnel_ref.tunnel,
@@ -6441,6 +6443,10 @@ int intel_atomic_check(struct drm_device *dev,
if (new_crtc_state->uapi.scaling_filter !=
old_crtc_state->uapi.scaling_filter)
new_crtc_state->uapi.mode_changed = true;
+
+ if (new_crtc_state->uapi.sharpness_strength !=
+ old_crtc_state->uapi.sharpness_strength)
+ new_crtc_state->uapi.mode_changed = true;
}
intel_vrr_check_modeset(state);
diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
index 2614c4863c87..f244a2b5d139 100644
--- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
+++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
@@ -416,11 +416,12 @@ static void intel_scaler_info(struct seq_file *m, struct intel_crtc *crtc)
/* Not all platforms have a scaler */
if (num_scalers) {
- seq_printf(m, "\tnum_scalers=%d, scaler_users=%x scaler_id=%d scaling_filter=%d",
+ seq_printf(m, "\tnum_scalers=%d, scaler_users=%x scaler_id=%d scaling_filter=%d sharpness_strength=%d",
num_scalers,
crtc_state->scaler_state.scaler_users,
crtc_state->scaler_state.scaler_id,
- crtc_state->hw.scaling_filter);
+ crtc_state->hw.scaling_filter,
+ crtc_state->hw.sharpness_strength);
for (i = 0; i < num_scalers; i++) {
const struct intel_scaler *sc =
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 83bb5d19b6f6..af0d870de342 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1036,6 +1036,7 @@ struct intel_crtc_state {
struct drm_property_blob *degamma_lut, *gamma_lut, *ctm;
struct drm_display_mode mode, pipe_mode, adjusted_mode;
enum drm_scaling_filter scaling_filter;
+ u8 sharpness_strength;
struct intel_casf casf_params;
} hw;
diff --git a/drivers/gpu/drm/i915/display/intel_modeset_setup.c b/drivers/gpu/drm/i915/display/intel_modeset_setup.c
index 4086f16a12bf..40a65a0d7ec7 100644
--- a/drivers/gpu/drm/i915/display/intel_modeset_setup.c
+++ b/drivers/gpu/drm/i915/display/intel_modeset_setup.c
@@ -333,6 +333,7 @@ static void intel_crtc_copy_hw_to_uapi_state(struct intel_crtc_state *crtc_state
crtc_state->uapi.adjusted_mode = crtc_state->hw.adjusted_mode;
crtc_state->uapi.scaling_filter = crtc_state->hw.scaling_filter;
+ crtc_state->uapi.sharpness_strength = crtc_state->hw.sharpness_strength;
if (DISPLAY_INFO(display)->color.degamma_lut_size) {
/* assume 1:1 mapping */
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 3/9] drm/i915/casf: Move the casf state to better place
2026-04-07 17:52 [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 1/9] drm/i915/casf: s/casf_enable/enable/ Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 2/9] drm/i915/casf: Make a proper hw state copy of the sharpness_strength Ville Syrjala
@ 2026-04-07 17:52 ` Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 4/9] drm/i915/casf: Extract scaler_has_casf() Ville Syrjala
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Ville Syrjala @ 2026-04-07 17:52 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Michał Grzelak, Nemesa Garg
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The casf state is placed inside the 'hw' state for some reason.
That is only really meant for things we have to duplicate from
the uapi state. The rest can live on its own in our actual state.
And since casf is just one aspect of the pfit/pipe scaler the
proper place for it seems to be under pch_pfit.
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com>
Reviewed-by: Nemesa Garg <nemesa.garg@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_casf.c | 40 +++++++++----------
.../drm/i915/display/intel_crtc_state_dump.c | 6 +--
drivers/gpu/drm/i915/display/intel_display.c | 12 +++---
.../drm/i915/display/intel_display_types.h | 2 +-
drivers/gpu/drm/i915/display/skl_scaler.c | 4 +-
5 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_casf.c b/drivers/gpu/drm/i915/display/intel_casf.c
index 4316d8214e80..5a8ffb40d30d 100644
--- a/drivers/gpu/drm/i915/display/intel_casf.c
+++ b/drivers/gpu/drm/i915/display/intel_casf.c
@@ -82,7 +82,7 @@ void intel_casf_update_strength(struct intel_crtc_state *crtc_state)
int win_size;
intel_de_rmw(display, SHARPNESS_CTL(crtc->pipe), FILTER_STRENGTH_MASK,
- FILTER_STRENGTH(crtc_state->hw.casf_params.strength));
+ FILTER_STRENGTH(crtc_state->pch_pfit.casf.strength));
win_size = intel_de_read(display, SKL_PS_WIN_SZ(crtc->pipe, 1));
@@ -95,11 +95,11 @@ static void intel_casf_compute_win_size(struct intel_crtc_state *crtc_state)
u32 total_pixels = mode->hdisplay * mode->vdisplay;
if (total_pixels <= MAX_PIXELS_FOR_3_TAP_FILTER)
- crtc_state->hw.casf_params.win_size = SHARPNESS_FILTER_SIZE_3X3;
+ crtc_state->pch_pfit.casf.win_size = SHARPNESS_FILTER_SIZE_3X3;
else if (total_pixels <= MAX_PIXELS_FOR_5_TAP_FILTER)
- crtc_state->hw.casf_params.win_size = SHARPNESS_FILTER_SIZE_5X5;
+ crtc_state->pch_pfit.casf.win_size = SHARPNESS_FILTER_SIZE_5X5;
else
- crtc_state->hw.casf_params.win_size = SHARPNESS_FILTER_SIZE_7X7;
+ crtc_state->pch_pfit.casf.win_size = SHARPNESS_FILTER_SIZE_7X7;
}
int intel_casf_compute_config(struct intel_crtc_state *crtc_state)
@@ -110,8 +110,8 @@ int intel_casf_compute_config(struct intel_crtc_state *crtc_state)
return 0;
if (crtc_state->hw.sharpness_strength == 0) {
- crtc_state->hw.casf_params.enable = false;
- crtc_state->hw.casf_params.strength = 0;
+ crtc_state->pch_pfit.casf.enable = false;
+ crtc_state->pch_pfit.casf.strength = 0;
return 0;
}
@@ -121,7 +121,7 @@ int intel_casf_compute_config(struct intel_crtc_state *crtc_state)
return -EINVAL;
}
- crtc_state->hw.casf_params.enable = true;
+ crtc_state->pch_pfit.casf.enable = true;
/*
* HW takes a value in form (1.0 + strength) in 4.4 fixed format.
@@ -131,7 +131,7 @@ int intel_casf_compute_config(struct intel_crtc_state *crtc_state)
* 6.3125 in 4.4 format is b01100101 which is equal to 101.
* Also 85 + 16 = 101.
*/
- crtc_state->hw.casf_params.strength =
+ crtc_state->pch_pfit.casf.strength =
min(crtc_state->hw.sharpness_strength, 0xEF) + 0x10;
intel_casf_compute_win_size(crtc_state);
@@ -151,19 +151,19 @@ void intel_casf_sharpness_get_config(struct intel_crtc_state *crtc_state)
if (sharp & FILTER_EN) {
if (drm_WARN_ON(display->drm,
REG_FIELD_GET(FILTER_STRENGTH_MASK, sharp) < 16))
- crtc_state->hw.casf_params.strength = 0;
+ crtc_state->pch_pfit.casf.strength = 0;
else
- crtc_state->hw.casf_params.strength =
+ crtc_state->pch_pfit.casf.strength =
REG_FIELD_GET(FILTER_STRENGTH_MASK, sharp);
- crtc_state->hw.casf_params.enable = true;
- crtc_state->hw.casf_params.win_size =
+ crtc_state->pch_pfit.casf.enable = true;
+ crtc_state->pch_pfit.casf.win_size =
REG_FIELD_GET(FILTER_SIZE_MASK, sharp);
}
}
bool intel_casf_needs_scaler(const struct intel_crtc_state *crtc_state)
{
- if (crtc_state->hw.casf_params.enable)
+ if (crtc_state->pch_pfit.casf.enable)
return true;
return false;
@@ -179,7 +179,7 @@ static u32 casf_coeff(struct intel_crtc_state *crtc_state, int t)
struct scaler_filter_coeff value;
u32 coeff;
- value = crtc_state->hw.casf_params.coeff[t];
+ value = crtc_state->pch_pfit.casf.coeff[t];
value.sign = 0;
coeff = value.sign << 15 | value.exp << 12 | value.mantissa << 3;
@@ -189,7 +189,7 @@ static u32 casf_coeff(struct intel_crtc_state *crtc_state, int t)
/*
* 17 phase of 7 taps requires 119 coefficients in 60 dwords per set.
* To enable casf: program scaler coefficients with the coeffients
- * that are calculated and stored in hw.casf_params.coeff as per
+ * that are calculated and stored in pch_pfit.casf.coeff as per
* SCALER_COEFFICIENT_FORMAT
*/
static void intel_casf_write_coeff(struct intel_crtc_state *crtc_state)
@@ -247,9 +247,9 @@ void intel_casf_scaler_compute_config(struct intel_crtc_state *crtc_state)
u16 sumcoeff = 0;
int i;
- if (crtc_state->hw.casf_params.win_size == 0)
+ if (crtc_state->pch_pfit.casf.win_size == 0)
filtercoeff = filtercoeff_1;
- else if (crtc_state->hw.casf_params.win_size == 1)
+ else if (crtc_state->pch_pfit.casf.win_size == 1)
filtercoeff = filtercoeff_2;
else
filtercoeff = filtercoeff_3;
@@ -259,7 +259,7 @@ void intel_casf_scaler_compute_config(struct intel_crtc_state *crtc_state)
for (i = 0; i < SCALER_FILTER_NUM_TAPS; i++) {
filter_coeff[i] = (*(filtercoeff + i) * 100 / sumcoeff);
- convert_sharpness_coef_binary(&crtc_state->hw.casf_params.coeff[i],
+ convert_sharpness_coef_binary(&crtc_state->pch_pfit.casf.coeff[i],
filter_coeff[i]);
}
}
@@ -274,9 +274,9 @@ void intel_casf_enable(struct intel_crtc_state *crtc_state)
intel_casf_write_coeff(crtc_state);
- sharpness_ctl = FILTER_EN | FILTER_STRENGTH(crtc_state->hw.casf_params.strength);
+ sharpness_ctl = FILTER_EN | FILTER_STRENGTH(crtc_state->pch_pfit.casf.strength);
- sharpness_ctl |= crtc_state->hw.casf_params.win_size;
+ sharpness_ctl |= crtc_state->pch_pfit.casf.win_size;
intel_de_write(display, SHARPNESS_CTL(crtc->pipe), sharpness_ctl);
diff --git a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
index 42676adf6062..4493483f10a9 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
@@ -350,9 +350,9 @@ void intel_crtc_state_dump(const struct intel_crtc_state *pipe_config,
str_yes_no(pipe_config->pch_pfit.force_thru));
drm_printf(&p, "sharpness strength: %d, sharpness tap size: %d, sharpness enable: %d\n",
- pipe_config->hw.casf_params.strength,
- pipe_config->hw.casf_params.win_size,
- pipe_config->hw.casf_params.enable);
+ pipe_config->pch_pfit.casf.strength,
+ pipe_config->pch_pfit.casf.win_size,
+ pipe_config->pch_pfit.casf.enable);
drm_printf(&p, "ips: %i, double wide: %i, drrs: %i\n",
pipe_config->ips_enabled, pipe_config->double_wide,
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index a02c58b5a34d..e02e69467871 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -994,7 +994,7 @@ static bool intel_casf_enabling(const struct intel_crtc_state *new_crtc_state,
if (!new_crtc_state->hw.active)
return false;
- return is_enabling(hw.casf_params.enable, old_crtc_state, new_crtc_state);
+ return is_enabling(pch_pfit.casf.enable, old_crtc_state, new_crtc_state);
}
static bool intel_casf_disabling(const struct intel_crtc_state *old_crtc_state,
@@ -1003,7 +1003,7 @@ static bool intel_casf_disabling(const struct intel_crtc_state *old_crtc_state,
if (!new_crtc_state->hw.active)
return false;
- return is_disabling(hw.casf_params.enable, old_crtc_state, new_crtc_state);
+ return is_disabling(pch_pfit.casf.enable, old_crtc_state, new_crtc_state);
}
static bool intel_crtc_lobf_enabling(const struct intel_crtc_state *old_crtc_state,
@@ -5370,12 +5370,12 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
PIPE_CONF_CHECK_BOOL(pch_pfit.enabled);
PIPE_CONF_CHECK_RECT(pch_pfit.dst);
+ PIPE_CONF_CHECK_BOOL(pch_pfit.casf.enable);
+ PIPE_CONF_CHECK_I(pch_pfit.casf.win_size);
+ PIPE_CONF_CHECK_I(pch_pfit.casf.strength);
PIPE_CONF_CHECK_I(scaler_state.scaler_id);
PIPE_CONF_CHECK_I(pixel_rate);
- PIPE_CONF_CHECK_BOOL(hw.casf_params.enable);
- PIPE_CONF_CHECK_I(hw.casf_params.win_size);
- PIPE_CONF_CHECK_I(hw.casf_params.strength);
PIPE_CONF_CHECK_X(gamma_mode);
if (display->platform.cherryview)
@@ -6819,7 +6819,7 @@ static void intel_pre_update_crtc(struct intel_atomic_state *state,
if (intel_casf_enabling(new_crtc_state, old_crtc_state))
intel_casf_enable(new_crtc_state);
- else if (new_crtc_state->hw.casf_params.strength != old_crtc_state->hw.casf_params.strength)
+ else if (new_crtc_state->pch_pfit.casf.strength != old_crtc_state->pch_pfit.casf.strength)
intel_casf_update_strength(new_crtc_state);
intel_fbc_update(state, crtc);
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index af0d870de342..ca2581fb7bbd 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1037,7 +1037,6 @@ struct intel_crtc_state {
struct drm_display_mode mode, pipe_mode, adjusted_mode;
enum drm_scaling_filter scaling_filter;
u8 sharpness_strength;
- struct intel_casf casf_params;
} hw;
/* actual state of LUTs */
@@ -1224,6 +1223,7 @@ struct intel_crtc_state {
/* Panel fitter placement and size for Ironlake+ */
struct {
+ struct intel_casf casf;
struct drm_rect dst;
bool enabled;
bool force_thru;
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
index cfa17ddb4018..e9fe5c0bf6ff 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.c
+++ b/drivers/gpu/drm/i915/display/skl_scaler.c
@@ -986,13 +986,13 @@ void skl_scaler_get_config(struct intel_crtc_state *crtc_state)
if (HAS_CASF(display) && id == 1)
intel_casf_sharpness_get_config(crtc_state);
- if (!crtc_state->hw.casf_params.enable)
+ if (!crtc_state->pch_pfit.casf.enable)
crtc_state->pch_pfit.enabled = true;
pos = intel_de_read(display, SKL_PS_WIN_POS(crtc->pipe, i));
size = intel_de_read(display, SKL_PS_WIN_SZ(crtc->pipe, i));
- if (!crtc_state->hw.casf_params.enable)
+ if (!crtc_state->pch_pfit.casf.enable)
drm_rect_init(&crtc_state->pch_pfit.dst,
REG_FIELD_GET(PS_WIN_XPOS_MASK, pos),
REG_FIELD_GET(PS_WIN_YPOS_MASK, pos),
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 4/9] drm/i915/casf: Extract scaler_has_casf()
2026-04-07 17:52 [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
` (2 preceding siblings ...)
2026-04-07 17:52 ` [PATCH v2 3/9] drm/i915/casf: Move the casf state to better place Ville Syrjala
@ 2026-04-07 17:52 ` Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 5/9] drm/i915/casf: Handle CASF in skl_scaler_get_filter_select() Ville Syrjala
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Ville Syrjala @ 2026-04-07 17:52 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Michał Grzelak, Nemesa Garg
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Extract a small helper to determine if the scaler supports
the sharpness filter or not.
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com>
Reviewed-by: Nemesa Garg <nemesa.garg@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/skl_scaler.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
index e9fe5c0bf6ff..525afd736195 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.c
+++ b/drivers/gpu/drm/i915/display/skl_scaler.c
@@ -323,19 +323,24 @@ int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
need_scaler);
}
+static bool scaler_has_casf(struct intel_display *display, int scaler_id)
+{
+ return HAS_CASF(display) && scaler_id == 1;
+}
+
static int intel_allocate_scaler(struct intel_crtc_scaler_state *scaler_state,
struct intel_crtc *crtc,
struct intel_plane_state *plane_state,
bool casf_scaler)
{
+ struct intel_display *display = to_intel_display(crtc);
int i;
for (i = 0; i < crtc->num_scalers; i++) {
if (scaler_state->scalers[i].in_use)
continue;
- /* CASF needs second scaler */
- if (!plane_state && casf_scaler && i != 1)
+ if (casf_scaler && !scaler_has_casf(display, i))
continue;
scaler_state->scalers[i].in_use = true;
@@ -982,8 +987,7 @@ void skl_scaler_get_config(struct intel_crtc_state *crtc_state)
id = i;
- /* Read CASF regs for second scaler */
- if (HAS_CASF(display) && id == 1)
+ if (scaler_has_casf(display, i))
intel_casf_sharpness_get_config(crtc_state);
if (!crtc_state->pch_pfit.casf.enable)
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 5/9] drm/i915/casf: Handle CASF in skl_scaler_get_filter_select()
2026-04-07 17:52 [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
` (3 preceding siblings ...)
2026-04-07 17:52 ` [PATCH v2 4/9] drm/i915/casf: Extract scaler_has_casf() Ville Syrjala
@ 2026-04-07 17:52 ` Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 6/9] drm/i915/casf: Constify crtc_state Ville Syrjala
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Ville Syrjala @ 2026-04-07 17:52 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Michał Grzelak, Nemesa Garg
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Nuke the duplicate CASF_SCALER_FILTER_SELECT and just have
skl_scaler_get_filter_select() return the proper value for
sharpness filter use. It is the same "use programmable coefficients"
value we already use for the nearest neighbor filtering.
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com>
Reviewed-by: Nemesa Garg <nemesa.garg@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/skl_scaler.c | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
index 525afd736195..d8bf65c6b4a7 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.c
+++ b/drivers/gpu/drm/i915/display/skl_scaler.c
@@ -730,9 +730,9 @@ static void glk_program_nearest_filter_coefs(struct intel_display *display,
GLK_PS_COEF_INDEX_SET(pipe, id, set), 0);
}
-static u32 skl_scaler_get_filter_select(enum drm_scaling_filter filter)
+static u32 skl_scaler_get_filter_select(enum drm_scaling_filter filter, bool casf)
{
- if (filter == DRM_SCALING_FILTER_NEAREST_NEIGHBOR)
+ if (filter == DRM_SCALING_FILTER_NEAREST_NEIGHBOR || casf)
return (PS_FILTER_PROGRAMMED |
PS_Y_VERT_FILTER_SELECT(0) |
PS_Y_HORZ_FILTER_SELECT(0) |
@@ -757,13 +757,6 @@ static void skl_scaler_setup_filter(struct intel_display *display,
}
}
-#define CASF_SCALER_FILTER_SELECT \
- (PS_FILTER_PROGRAMMED | \
- PS_Y_VERT_FILTER_SELECT(0) | \
- PS_Y_HORZ_FILTER_SELECT(0) | \
- PS_UV_VERT_FILTER_SELECT(0) | \
- PS_UV_HORZ_FILTER_SELECT(0))
-
void skl_scaler_setup_casf(struct intel_crtc_state *crtc_state)
{
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
@@ -794,7 +787,7 @@ void skl_scaler_setup_casf(struct intel_crtc_state *crtc_state)
trace_intel_pipe_scaler_update_arm(crtc, id, x, y, width, height);
ps_ctrl = PS_SCALER_EN | PS_BINDING_PIPE | scaler_state->scalers[id].mode |
- CASF_SCALER_FILTER_SELECT;
+ skl_scaler_get_filter_select(crtc_state->hw.scaling_filter, true);
intel_de_write_fw(display, SKL_PS_CTRL(pipe, id), ps_ctrl);
intel_de_write_fw(display, SKL_PS_WIN_POS(pipe, id),
@@ -844,7 +837,7 @@ void skl_pfit_enable(const struct intel_crtc_state *crtc_state)
id = scaler_state->scaler_id;
ps_ctrl = PS_SCALER_EN | PS_BINDING_PIPE | scaler_state->scalers[id].mode |
- skl_scaler_get_filter_select(crtc_state->hw.scaling_filter);
+ skl_scaler_get_filter_select(crtc_state->hw.scaling_filter, false);
trace_intel_pipe_scaler_update_arm(crtc, id, x, y, width, height);
@@ -910,7 +903,7 @@ skl_program_plane_scaler(struct intel_dsb *dsb,
}
ps_ctrl = PS_SCALER_EN | PS_BINDING_PLANE(plane->id) | scaler->mode |
- skl_scaler_get_filter_select(plane_state->hw.scaling_filter);
+ skl_scaler_get_filter_select(plane_state->hw.scaling_filter, false);
trace_intel_plane_scaler_update_arm(plane, scaler_id,
crtc_x, crtc_y, crtc_w, crtc_h);
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 6/9] drm/i915/casf: Constify crtc_state
2026-04-07 17:52 [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
` (4 preceding siblings ...)
2026-04-07 17:52 ` [PATCH v2 5/9] drm/i915/casf: Handle CASF in skl_scaler_get_filter_select() Ville Syrjala
@ 2026-04-07 17:52 ` Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 7/9] drm/i915/casf: Remove redundant argument from intel_casf_filter_lut_load() Ville Syrjala
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Ville Syrjala @ 2026-04-07 17:52 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Michał Grzelak, Nemesa Garg
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Make the crtc_state const everywhere in the sharpness filter
code where it doesn't need to be mutated.
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com>
Reviewed-by: Nemesa Garg <nemesa.garg@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_casf.c | 8 ++++----
drivers/gpu/drm/i915/display/intel_casf.h | 4 ++--
drivers/gpu/drm/i915/display/skl_scaler.c | 8 ++++----
drivers/gpu/drm/i915/display/skl_scaler.h | 2 +-
4 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_casf.c b/drivers/gpu/drm/i915/display/intel_casf.c
index 5a8ffb40d30d..f777aae3fc57 100644
--- a/drivers/gpu/drm/i915/display/intel_casf.c
+++ b/drivers/gpu/drm/i915/display/intel_casf.c
@@ -75,7 +75,7 @@ static void intel_casf_filter_lut_load(struct intel_crtc *crtc,
sharpness_lut[i]);
}
-void intel_casf_update_strength(struct intel_crtc_state *crtc_state)
+void intel_casf_update_strength(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);
@@ -174,7 +174,7 @@ static int casf_coeff_tap(int i)
return i % SCALER_FILTER_NUM_TAPS;
}
-static u32 casf_coeff(struct intel_crtc_state *crtc_state, int t)
+static u32 casf_coeff(const struct intel_crtc_state *crtc_state, int t)
{
struct scaler_filter_coeff value;
u32 coeff;
@@ -192,7 +192,7 @@ static u32 casf_coeff(struct intel_crtc_state *crtc_state, int t)
* that are calculated and stored in pch_pfit.casf.coeff as per
* SCALER_COEFFICIENT_FORMAT
*/
-static void intel_casf_write_coeff(struct intel_crtc_state *crtc_state)
+static void intel_casf_write_coeff(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);
@@ -264,7 +264,7 @@ void intel_casf_scaler_compute_config(struct intel_crtc_state *crtc_state)
}
}
-void intel_casf_enable(struct intel_crtc_state *crtc_state)
+void intel_casf_enable(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);
diff --git a/drivers/gpu/drm/i915/display/intel_casf.h b/drivers/gpu/drm/i915/display/intel_casf.h
index b3fb0bcb3f5b..c4f984b73348 100644
--- a/drivers/gpu/drm/i915/display/intel_casf.h
+++ b/drivers/gpu/drm/i915/display/intel_casf.h
@@ -11,9 +11,9 @@
struct intel_crtc_state;
int intel_casf_compute_config(struct intel_crtc_state *crtc_state);
-void intel_casf_update_strength(struct intel_crtc_state *new_crtc_state);
+void intel_casf_update_strength(const struct intel_crtc_state *new_crtc_state);
void intel_casf_sharpness_get_config(struct intel_crtc_state *crtc_state);
-void intel_casf_enable(struct intel_crtc_state *crtc_state);
+void intel_casf_enable(const struct intel_crtc_state *crtc_state);
void intel_casf_disable(const struct intel_crtc_state *crtc_state);
void intel_casf_scaler_compute_config(struct intel_crtc_state *crtc_state);
bool intel_casf_needs_scaler(const struct intel_crtc_state *crtc_state);
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
index d8bf65c6b4a7..762f4bb46c2d 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.c
+++ b/drivers/gpu/drm/i915/display/skl_scaler.c
@@ -757,13 +757,13 @@ static void skl_scaler_setup_filter(struct intel_display *display,
}
}
-void skl_scaler_setup_casf(struct intel_crtc_state *crtc_state)
+void skl_scaler_setup_casf(const struct intel_crtc_state *crtc_state)
{
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
struct intel_display *display = to_intel_display(crtc);
- struct drm_display_mode *adjusted_mode =
- &crtc_state->hw.adjusted_mode;
- struct intel_crtc_scaler_state *scaler_state =
+ const struct drm_display_mode *adjusted_mode =
+ &crtc_state->hw.adjusted_mode;
+ const struct intel_crtc_scaler_state *scaler_state =
&crtc_state->scaler_state;
struct drm_rect src, dest;
int id, width, height;
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.h b/drivers/gpu/drm/i915/display/skl_scaler.h
index 7e8d819c019d..20ecf373eb19 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.h
+++ b/drivers/gpu/drm/i915/display/skl_scaler.h
@@ -36,7 +36,7 @@ void skl_scaler_disable(const struct intel_crtc_state *old_crtc_state);
void skl_scaler_get_config(struct intel_crtc_state *crtc_state);
-void skl_scaler_setup_casf(struct intel_crtc_state *crtc_state);
+void skl_scaler_setup_casf(const struct intel_crtc_state *crtc_state);
enum drm_mode_status
skl_scaler_mode_valid(struct intel_display *display,
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 7/9] drm/i915/casf: Remove redundant argument from intel_casf_filter_lut_load()
2026-04-07 17:52 [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
` (5 preceding siblings ...)
2026-04-07 17:52 ` [PATCH v2 6/9] drm/i915/casf: Constify crtc_state Ville Syrjala
@ 2026-04-07 17:52 ` Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 8/9] drm/i915/pfit: Call intel_pfit_compute_config() unconditionally on (e)DP/HDMI Ville Syrjala
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Ville Syrjala @ 2026-04-07 17:52 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Michał Grzelak, Nemesa Garg
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
intel_casf_filter_lut_load() can find the crtc from the crtc_state.
No need to pass in both.
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com>
Reviewed-by: Nemesa Garg <nemesa.garg@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_casf.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_casf.c b/drivers/gpu/drm/i915/display/intel_casf.c
index f777aae3fc57..21e84a4f9ff5 100644
--- a/drivers/gpu/drm/i915/display/intel_casf.c
+++ b/drivers/gpu/drm/i915/display/intel_casf.c
@@ -61,10 +61,10 @@ const u16 filtercoeff_3[] = {
FILTER_COEFF_0_125,
};
-static void intel_casf_filter_lut_load(struct intel_crtc *crtc,
- const struct intel_crtc_state *crtc_state)
+static void intel_casf_filter_lut_load(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 i;
intel_de_write(display, SHRPLUT_INDEX(crtc->pipe),
@@ -270,7 +270,7 @@ void intel_casf_enable(const struct intel_crtc_state *crtc_state)
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
u32 sharpness_ctl;
- intel_casf_filter_lut_load(crtc, crtc_state);
+ intel_casf_filter_lut_load(crtc_state);
intel_casf_write_coeff(crtc_state);
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 8/9] drm/i915/pfit: Call intel_pfit_compute_config() unconditionally on (e)DP/HDMI
2026-04-07 17:52 [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
` (6 preceding siblings ...)
2026-04-07 17:52 ` [PATCH v2 7/9] drm/i915/casf: Remove redundant argument from intel_casf_filter_lut_load() Ville Syrjala
@ 2026-04-07 17:52 ` Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 9/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Ville Syrjala @ 2026-04-07 17:52 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Michał Grzelak, Nemesa Garg
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
We now have three different reasons for calling
intel_pfit_compute_config():
- actual pfit scaling/centering
- YCbCr 4:2:0 output
- sharpness filter
So let's just call intel_pfit_compute_config() unconditionally
from both the DP and HDMI code. Both gmch and ilk+ pfit code
should be capable of judging whether anything actually
needs the pfit.
The only slightly questionable thing in the gmch code is
the dithering knob, but that's only a thing on gen2/3 which
don't even have HDMI/DP outputs, and so not an issue here.
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com>
Reviewed-by: Nemesa Garg <nemesa.garg@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_dp.c | 9 +++------
drivers/gpu/drm/i915/display/intel_hdmi.c | 8 +++-----
2 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 4955bd8b11d7..ff3904b77492 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -3545,12 +3545,9 @@ intel_dp_compute_config(struct intel_encoder *encoder,
if (ret)
return ret;
- if ((intel_dp_is_edp(intel_dp) && fixed_mode) ||
- pipe_config->output_format == INTEL_OUTPUT_FORMAT_YCBCR420) {
- ret = intel_pfit_compute_config(pipe_config, conn_state);
- if (ret)
- return ret;
- }
+ ret = intel_pfit_compute_config(pipe_config, conn_state);
+ if (ret)
+ return ret;
pipe_config->limited_color_range =
intel_dp_limited_color_range(pipe_config, conn_state);
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 05e898d10a2b..17bd2c207453 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -2380,11 +2380,9 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder,
return ret;
}
- if (intel_hdmi_is_ycbcr420(pipe_config)) {
- ret = intel_pfit_compute_config(pipe_config, conn_state);
- if (ret)
- return ret;
- }
+ ret = intel_pfit_compute_config(pipe_config, conn_state);
+ if (ret)
+ return ret;
pipe_config->limited_color_range =
intel_hdmi_limited_color_range(pipe_config, conn_state);
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 9/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code
2026-04-07 17:52 [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
` (7 preceding siblings ...)
2026-04-07 17:52 ` [PATCH v2 8/9] drm/i915/pfit: Call intel_pfit_compute_config() unconditionally on (e)DP/HDMI Ville Syrjala
@ 2026-04-07 17:52 ` Ville Syrjala
2026-04-07 18:05 ` ✓ CI.KUnit: success for drm/i915/casf: Integrate the sharpness filter properly into the scaler code (rev2) Patchwork
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Ville Syrjala @ 2026-04-07 17:52 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Nemesa Garg
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The sharpness filter is just a special mode of the pipe scaler.
It doesn't warrant all this special casing everywhere. Just
integrate it properly into the scaler code so that it's treated
no different from the other pipe scaler uses (scaling,centering,
YCbCr 4:2:0 output).
v2: Also reject scaling_filter vs. sharpness
Reviewed-by: Nemesa Garg <nemesa.garg@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_casf.c | 62 ++------------
drivers/gpu/drm/i915/display/intel_casf.h | 6 +-
drivers/gpu/drm/i915/display/intel_display.c | 34 +-------
drivers/gpu/drm/i915/display/intel_pfit.c | 13 ++-
drivers/gpu/drm/i915/display/skl_scaler.c | 85 ++++++++------------
drivers/gpu/drm/i915/display/skl_scaler.h | 2 -
6 files changed, 53 insertions(+), 149 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_casf.c b/drivers/gpu/drm/i915/display/intel_casf.c
index 21e84a4f9ff5..c2d2746c5f04 100644
--- a/drivers/gpu/drm/i915/display/intel_casf.c
+++ b/drivers/gpu/drm/i915/display/intel_casf.c
@@ -75,20 +75,6 @@ static void intel_casf_filter_lut_load(const struct intel_crtc_state *crtc_state
sharpness_lut[i]);
}
-void intel_casf_update_strength(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 win_size;
-
- intel_de_rmw(display, SHARPNESS_CTL(crtc->pipe), FILTER_STRENGTH_MASK,
- FILTER_STRENGTH(crtc_state->pch_pfit.casf.strength));
-
- win_size = intel_de_read(display, SKL_PS_WIN_SZ(crtc->pipe, 1));
-
- intel_de_write_fw(display, SKL_PS_WIN_SZ(crtc->pipe, 1), win_size);
-}
-
static void intel_casf_compute_win_size(struct intel_crtc_state *crtc_state)
{
const struct drm_display_mode *mode = &crtc_state->hw.adjusted_mode;
@@ -102,19 +88,15 @@ static void intel_casf_compute_win_size(struct intel_crtc_state *crtc_state)
crtc_state->pch_pfit.casf.win_size = SHARPNESS_FILTER_SIZE_7X7;
}
+static void intel_casf_scaler_compute_coef(struct intel_crtc_state *crtc_state);
+
int intel_casf_compute_config(struct intel_crtc_state *crtc_state)
{
struct intel_display *display = to_intel_display(crtc_state);
- if (!HAS_CASF(display))
+ if (crtc_state->hw.sharpness_strength == 0)
return 0;
- if (crtc_state->hw.sharpness_strength == 0) {
- crtc_state->pch_pfit.casf.enable = false;
- crtc_state->pch_pfit.casf.strength = 0;
- return 0;
- }
-
/* CASF with joiner not supported in hardware */
if (crtc_state->joiner_pipes) {
drm_dbg_kms(display->drm, "CASF not supported with joiner\n");
@@ -136,7 +118,7 @@ int intel_casf_compute_config(struct intel_crtc_state *crtc_state)
intel_casf_compute_win_size(crtc_state);
- intel_casf_scaler_compute_config(crtc_state);
+ intel_casf_scaler_compute_coef(crtc_state);
return 0;
}
@@ -161,14 +143,6 @@ void intel_casf_sharpness_get_config(struct intel_crtc_state *crtc_state)
}
}
-bool intel_casf_needs_scaler(const struct intel_crtc_state *crtc_state)
-{
- if (crtc_state->pch_pfit.casf.enable)
- return true;
-
- return false;
-}
-
static int casf_coeff_tap(int i)
{
return i % SCALER_FILTER_NUM_TAPS;
@@ -240,7 +214,7 @@ static void convert_sharpness_coef_binary(struct scaler_filter_coeff *coeff,
}
}
-void intel_casf_scaler_compute_config(struct intel_crtc_state *crtc_state)
+static void intel_casf_scaler_compute_coef(struct intel_crtc_state *crtc_state)
{
const u16 *filtercoeff;
u16 filter_coeff[SCALER_FILTER_NUM_TAPS];
@@ -264,32 +238,8 @@ void intel_casf_scaler_compute_config(struct intel_crtc_state *crtc_state)
}
}
-void intel_casf_enable(const struct intel_crtc_state *crtc_state)
+void intel_casf_setup(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);
- u32 sharpness_ctl;
-
intel_casf_filter_lut_load(crtc_state);
-
intel_casf_write_coeff(crtc_state);
-
- sharpness_ctl = FILTER_EN | FILTER_STRENGTH(crtc_state->pch_pfit.casf.strength);
-
- sharpness_ctl |= crtc_state->pch_pfit.casf.win_size;
-
- intel_de_write(display, SHARPNESS_CTL(crtc->pipe), sharpness_ctl);
-
- skl_scaler_setup_casf(crtc_state);
-}
-
-void intel_casf_disable(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);
-
- intel_de_write(display, SKL_PS_CTRL(crtc->pipe, 1), 0);
- intel_de_write(display, SKL_PS_WIN_POS(crtc->pipe, 1), 0);
- intel_de_write(display, SHARPNESS_CTL(crtc->pipe), 0);
- intel_de_write(display, SKL_PS_WIN_SZ(crtc->pipe, 1), 0);
}
diff --git a/drivers/gpu/drm/i915/display/intel_casf.h b/drivers/gpu/drm/i915/display/intel_casf.h
index c4f984b73348..3ebb7522af0a 100644
--- a/drivers/gpu/drm/i915/display/intel_casf.h
+++ b/drivers/gpu/drm/i915/display/intel_casf.h
@@ -11,11 +11,7 @@
struct intel_crtc_state;
int intel_casf_compute_config(struct intel_crtc_state *crtc_state);
-void intel_casf_update_strength(const struct intel_crtc_state *new_crtc_state);
void intel_casf_sharpness_get_config(struct intel_crtc_state *crtc_state);
-void intel_casf_enable(const struct intel_crtc_state *crtc_state);
-void intel_casf_disable(const struct intel_crtc_state *crtc_state);
-void intel_casf_scaler_compute_config(struct intel_crtc_state *crtc_state);
-bool intel_casf_needs_scaler(const struct intel_crtc_state *crtc_state);
+void intel_casf_setup(const struct intel_crtc_state *crtc_state);
#endif /* __INTEL_CASF_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index e02e69467871..58a654ca0d20 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -58,7 +58,6 @@
#include "intel_audio.h"
#include "intel_bo.h"
#include "intel_bw.h"
-#include "intel_casf.h"
#include "intel_cdclk.h"
#include "intel_clock_gating.h"
#include "intel_color.h"
@@ -988,24 +987,6 @@ static bool audio_disabling(const struct intel_crtc_state *old_crtc_state,
memcmp(old_crtc_state->eld, new_crtc_state->eld, MAX_ELD_BYTES) != 0);
}
-static bool intel_casf_enabling(const struct intel_crtc_state *new_crtc_state,
- const struct intel_crtc_state *old_crtc_state)
-{
- if (!new_crtc_state->hw.active)
- return false;
-
- return is_enabling(pch_pfit.casf.enable, old_crtc_state, new_crtc_state);
-}
-
-static bool intel_casf_disabling(const struct intel_crtc_state *old_crtc_state,
- const struct intel_crtc_state *new_crtc_state)
-{
- if (!new_crtc_state->hw.active)
- return false;
-
- return is_disabling(pch_pfit.casf.enable, old_crtc_state, new_crtc_state);
-}
-
static bool intel_crtc_lobf_enabling(const struct intel_crtc_state *old_crtc_state,
const struct intel_crtc_state *new_crtc_state)
{
@@ -1187,9 +1168,6 @@ static void intel_pre_plane_update(struct intel_atomic_state *state,
if (audio_disabling(old_crtc_state, new_crtc_state))
intel_encoders_audio_disable(state, crtc);
- if (intel_casf_disabling(old_crtc_state, new_crtc_state))
- intel_casf_disable(new_crtc_state);
-
intel_drrs_deactivate(old_crtc_state);
if (hsw_ips_pre_update(state, crtc))
@@ -4308,14 +4286,9 @@ static int intel_crtc_atomic_check(struct intel_atomic_state *state,
return ret;
}
- ret = intel_casf_compute_config(crtc_state);
- if (ret)
- return ret;
-
if (DISPLAY_VER(display) >= 9) {
if (intel_crtc_needs_modeset(crtc_state) ||
- intel_crtc_needs_fastset(crtc_state) ||
- intel_casf_needs_scaler(crtc_state)) {
+ intel_crtc_needs_fastset(crtc_state)) {
ret = skl_update_scaler_crtc(crtc_state);
if (ret)
return ret;
@@ -6817,11 +6790,6 @@ static void intel_pre_update_crtc(struct intel_atomic_state *state,
intel_vrr_set_transcoder_timings(new_crtc_state);
}
- if (intel_casf_enabling(new_crtc_state, old_crtc_state))
- intel_casf_enable(new_crtc_state);
- else if (new_crtc_state->pch_pfit.casf.strength != old_crtc_state->pch_pfit.casf.strength)
- intel_casf_update_strength(new_crtc_state);
-
intel_fbc_update(state, crtc);
drm_WARN_ON(display->drm, !intel_display_power_is_enabled(display, POWER_DOMAIN_DC_OFF));
diff --git a/drivers/gpu/drm/i915/display/intel_pfit.c b/drivers/gpu/drm/i915/display/intel_pfit.c
index 2dec4ccf74ce..5b170c74a510 100644
--- a/drivers/gpu/drm/i915/display/intel_pfit.c
+++ b/drivers/gpu/drm/i915/display/intel_pfit.c
@@ -196,7 +196,8 @@ static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
/* 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)
+ crtc_state->output_format != INTEL_OUTPUT_FORMAT_YCBCR420 &&
+ crtc_state->hw.sharpness_strength == 0)
return 0;
switch (conn_state->scaling_mode) {
@@ -260,6 +261,16 @@ static int pch_panel_fitting(struct intel_crtc_state *crtc_state,
return -EINVAL;
}
+ if (crtc_state->hw.sharpness_strength &&
+ (width != pipe_src_w || height != pipe_src_h ||
+ crtc_state->hw.scaling_filter != DRM_SCALING_FILTER_DEFAULT ||
+ crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB)) {
+ drm_dbg_kms(display->drm,
+ "[CRTC:%d:%s] no scaling/YCbCr output with sharpness filter\n",
+ crtc->base.base.id, crtc->base.name);
+ return -EINVAL;
+ }
+
drm_rect_init(&crtc_state->pch_pfit.dst,
x, y, width, height);
crtc_state->pch_pfit.enabled = true;
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
index 762f4bb46c2d..308b8d363bba 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.c
+++ b/drivers/gpu/drm/i915/display/skl_scaler.c
@@ -270,6 +270,11 @@ int skl_update_scaler_crtc(struct intel_crtc_state *crtc_state)
{
const struct drm_display_mode *pipe_mode = &crtc_state->hw.pipe_mode;
int width, height;
+ int ret;
+
+ ret = intel_casf_compute_config(crtc_state);
+ if (ret)
+ return ret;
if (crtc_state->pch_pfit.enabled) {
width = drm_rect_width(&crtc_state->pch_pfit.dst);
@@ -284,8 +289,7 @@ int skl_update_scaler_crtc(struct intel_crtc_state *crtc_state)
drm_rect_width(&crtc_state->pipe_src),
drm_rect_height(&crtc_state->pipe_src),
width, height, NULL, 0,
- crtc_state->pch_pfit.enabled ||
- intel_casf_needs_scaler(crtc_state));
+ crtc_state->pch_pfit.enabled);
}
/**
@@ -534,14 +538,11 @@ static int setup_crtc_scaler(struct intel_atomic_state *state,
struct intel_crtc_scaler_state *scaler_state =
&crtc_state->scaler_state;
- if (intel_casf_needs_scaler(crtc_state) && crtc_state->pch_pfit.enabled)
- return -EINVAL;
-
return intel_atomic_setup_scaler(crtc_state,
hweight32(scaler_state->scaler_users),
crtc, "CRTC", crtc->base.base.id,
NULL, &scaler_state->scaler_id,
- intel_casf_needs_scaler(crtc_state));
+ crtc_state->pch_pfit.casf.enable);
}
static int setup_plane_scaler(struct intel_atomic_state *state,
@@ -757,43 +758,14 @@ static void skl_scaler_setup_filter(struct intel_display *display,
}
}
-void skl_scaler_setup_casf(const struct intel_crtc_state *crtc_state)
+static u32 casf_sharpness_ctl(const struct intel_crtc_state *crtc_state)
{
- struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
- struct intel_display *display = to_intel_display(crtc);
- const struct drm_display_mode *adjusted_mode =
- &crtc_state->hw.adjusted_mode;
- const struct intel_crtc_scaler_state *scaler_state =
- &crtc_state->scaler_state;
- struct drm_rect src, dest;
- int id, width, height;
- int x = 0, y = 0;
- enum pipe pipe = crtc->pipe;
- u32 ps_ctrl;
+ if (!crtc_state->pch_pfit.casf.enable)
+ return 0;
- width = adjusted_mode->crtc_hdisplay;
- height = adjusted_mode->crtc_vdisplay;
-
- drm_rect_init(&dest, x, y, width, height);
-
- width = drm_rect_width(&dest);
- height = drm_rect_height(&dest);
- id = scaler_state->scaler_id;
-
- drm_rect_init(&src, 0, 0,
- drm_rect_width(&crtc_state->pipe_src) << 16,
- drm_rect_height(&crtc_state->pipe_src) << 16);
-
- trace_intel_pipe_scaler_update_arm(crtc, id, x, y, width, height);
-
- ps_ctrl = PS_SCALER_EN | PS_BINDING_PIPE | scaler_state->scalers[id].mode |
- skl_scaler_get_filter_select(crtc_state->hw.scaling_filter, true);
-
- intel_de_write_fw(display, SKL_PS_CTRL(pipe, id), ps_ctrl);
- intel_de_write_fw(display, SKL_PS_WIN_POS(pipe, id),
- PS_WIN_XPOS(x) | PS_WIN_YPOS(y));
- intel_de_write_fw(display, SKL_PS_WIN_SZ(pipe, id),
- PS_WIN_XSIZE(width) | PS_WIN_YSIZE(height));
+ return FILTER_EN |
+ FILTER_STRENGTH(crtc_state->pch_pfit.casf.strength) |
+ crtc_state->pch_pfit.casf.win_size;
}
void skl_pfit_enable(const struct intel_crtc_state *crtc_state)
@@ -837,12 +809,20 @@ void skl_pfit_enable(const struct intel_crtc_state *crtc_state)
id = scaler_state->scaler_id;
ps_ctrl = PS_SCALER_EN | PS_BINDING_PIPE | scaler_state->scalers[id].mode |
- skl_scaler_get_filter_select(crtc_state->hw.scaling_filter, false);
+ skl_scaler_get_filter_select(crtc_state->hw.scaling_filter,
+ crtc_state->pch_pfit.casf.enable);
trace_intel_pipe_scaler_update_arm(crtc, id, x, y, width, height);
- skl_scaler_setup_filter(display, NULL, pipe, id, 0,
- crtc_state->hw.scaling_filter);
+ if (crtc_state->pch_pfit.casf.enable)
+ intel_casf_setup(crtc_state);
+ else
+ skl_scaler_setup_filter(display, NULL, pipe, id, 0,
+ crtc_state->hw.scaling_filter);
+
+ if (scaler_has_casf(display, id))
+ intel_de_write_fw(display, SHARPNESS_CTL(crtc->pipe),
+ casf_sharpness_ctl(crtc_state));
intel_de_write_fw(display, SKL_PS_CTRL(pipe, id), ps_ctrl);
@@ -930,6 +910,9 @@ static void skl_detach_scaler(struct intel_dsb *dsb,
trace_intel_scaler_disable_arm(crtc, id);
+ if (scaler_has_casf(display, id))
+ intel_de_write_dsb(display, dsb, SHARPNESS_CTL(crtc->pipe), 0);
+
intel_de_write_dsb(display, dsb, SKL_PS_CTRL(crtc->pipe, id), 0);
intel_de_write_dsb(display, dsb, SKL_PS_WIN_POS(crtc->pipe, id), 0);
intel_de_write_dsb(display, dsb, SKL_PS_WIN_SZ(crtc->pipe, id), 0);
@@ -983,18 +966,16 @@ void skl_scaler_get_config(struct intel_crtc_state *crtc_state)
if (scaler_has_casf(display, i))
intel_casf_sharpness_get_config(crtc_state);
- if (!crtc_state->pch_pfit.casf.enable)
- crtc_state->pch_pfit.enabled = true;
+ crtc_state->pch_pfit.enabled = true;
pos = intel_de_read(display, SKL_PS_WIN_POS(crtc->pipe, i));
size = intel_de_read(display, SKL_PS_WIN_SZ(crtc->pipe, i));
- if (!crtc_state->pch_pfit.casf.enable)
- drm_rect_init(&crtc_state->pch_pfit.dst,
- REG_FIELD_GET(PS_WIN_XPOS_MASK, pos),
- REG_FIELD_GET(PS_WIN_YPOS_MASK, pos),
- REG_FIELD_GET(PS_WIN_XSIZE_MASK, size),
- REG_FIELD_GET(PS_WIN_YSIZE_MASK, size));
+ drm_rect_init(&crtc_state->pch_pfit.dst,
+ REG_FIELD_GET(PS_WIN_XPOS_MASK, pos),
+ REG_FIELD_GET(PS_WIN_YPOS_MASK, pos),
+ REG_FIELD_GET(PS_WIN_XSIZE_MASK, size),
+ REG_FIELD_GET(PS_WIN_YSIZE_MASK, size));
scaler_state->scalers[i].in_use = true;
break;
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.h b/drivers/gpu/drm/i915/display/skl_scaler.h
index 20ecf373eb19..5deabca909e6 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.h
+++ b/drivers/gpu/drm/i915/display/skl_scaler.h
@@ -36,8 +36,6 @@ void skl_scaler_disable(const struct intel_crtc_state *old_crtc_state);
void skl_scaler_get_config(struct intel_crtc_state *crtc_state);
-void skl_scaler_setup_casf(const struct intel_crtc_state *crtc_state);
-
enum drm_mode_status
skl_scaler_mode_valid(struct intel_display *display,
const struct drm_display_mode *mode,
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* ✓ CI.KUnit: success for drm/i915/casf: Integrate the sharpness filter properly into the scaler code (rev2)
2026-04-07 17:52 [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
` (8 preceding siblings ...)
2026-04-07 17:52 ` [PATCH v2 9/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
@ 2026-04-07 18:05 ` Patchwork
2026-04-07 18:54 ` ✓ Xe.CI.BAT: " Patchwork
2026-04-07 21:32 ` ✓ Xe.CI.FULL: " Patchwork
11 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2026-04-07 18:05 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-xe
== Series Details ==
Series: drm/i915/casf: Integrate the sharpness filter properly into the scaler code (rev2)
URL : https://patchwork.freedesktop.org/series/163952/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[18:04:12] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:04:17] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[18:04:48] Starting KUnit Kernel (1/1)...
[18:04:48] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:04:48] ================== guc_buf (11 subtests) ===================
[18:04:48] [PASSED] test_smallest
[18:04:48] [PASSED] test_largest
[18:04:48] [PASSED] test_granular
[18:04:48] [PASSED] test_unique
[18:04:48] [PASSED] test_overlap
[18:04:48] [PASSED] test_reusable
[18:04:48] [PASSED] test_too_big
[18:04:48] [PASSED] test_flush
[18:04:48] [PASSED] test_lookup
[18:04:48] [PASSED] test_data
[18:04:48] [PASSED] test_class
[18:04:48] ===================== [PASSED] guc_buf =====================
[18:04:48] =================== guc_dbm (7 subtests) ===================
[18:04:48] [PASSED] test_empty
[18:04:48] [PASSED] test_default
[18:04:48] ======================== test_size ========================
[18:04:48] [PASSED] 4
[18:04:48] [PASSED] 8
[18:04:48] [PASSED] 32
[18:04:48] [PASSED] 256
[18:04:48] ==================== [PASSED] test_size ====================
[18:04:48] ======================= test_reuse ========================
[18:04:48] [PASSED] 4
[18:04:48] [PASSED] 8
[18:04:48] [PASSED] 32
[18:04:48] [PASSED] 256
[18:04:48] =================== [PASSED] test_reuse ====================
[18:04:48] =================== test_range_overlap ====================
[18:04:48] [PASSED] 4
[18:04:48] [PASSED] 8
[18:04:48] [PASSED] 32
[18:04:48] [PASSED] 256
[18:04:48] =============== [PASSED] test_range_overlap ================
[18:04:48] =================== test_range_compact ====================
[18:04:48] [PASSED] 4
[18:04:48] [PASSED] 8
[18:04:48] [PASSED] 32
[18:04:48] [PASSED] 256
[18:04:48] =============== [PASSED] test_range_compact ================
[18:04:48] ==================== test_range_spare =====================
[18:04:48] [PASSED] 4
[18:04:48] [PASSED] 8
[18:04:48] [PASSED] 32
[18:04:48] [PASSED] 256
[18:04:48] ================ [PASSED] test_range_spare =================
[18:04:48] ===================== [PASSED] guc_dbm =====================
[18:04:48] =================== guc_idm (6 subtests) ===================
[18:04:48] [PASSED] bad_init
[18:04:48] [PASSED] no_init
[18:04:48] [PASSED] init_fini
[18:04:48] [PASSED] check_used
[18:04:48] [PASSED] check_quota
[18:04:48] [PASSED] check_all
[18:04:48] ===================== [PASSED] guc_idm =====================
[18:04:48] ================== no_relay (3 subtests) ===================
[18:04:48] [PASSED] xe_drops_guc2pf_if_not_ready
[18:04:48] [PASSED] xe_drops_guc2vf_if_not_ready
[18:04:48] [PASSED] xe_rejects_send_if_not_ready
[18:04:48] ==================== [PASSED] no_relay =====================
[18:04:48] ================== pf_relay (14 subtests) ==================
[18:04:48] [PASSED] pf_rejects_guc2pf_too_short
[18:04:48] [PASSED] pf_rejects_guc2pf_too_long
[18:04:48] [PASSED] pf_rejects_guc2pf_no_payload
[18:04:48] [PASSED] pf_fails_no_payload
[18:04:48] [PASSED] pf_fails_bad_origin
[18:04:48] [PASSED] pf_fails_bad_type
[18:04:48] [PASSED] pf_txn_reports_error
[18:04:48] [PASSED] pf_txn_sends_pf2guc
[18:04:48] [PASSED] pf_sends_pf2guc
[18:04:48] [SKIPPED] pf_loopback_nop
[18:04:48] [SKIPPED] pf_loopback_echo
[18:04:48] [SKIPPED] pf_loopback_fail
[18:04:48] [SKIPPED] pf_loopback_busy
[18:04:48] [SKIPPED] pf_loopback_retry
[18:04:48] ==================== [PASSED] pf_relay =====================
[18:04:48] ================== vf_relay (3 subtests) ===================
[18:04:48] [PASSED] vf_rejects_guc2vf_too_short
[18:04:48] [PASSED] vf_rejects_guc2vf_too_long
[18:04:48] [PASSED] vf_rejects_guc2vf_no_payload
[18:04:48] ==================== [PASSED] vf_relay =====================
[18:04:48] ================ pf_gt_config (9 subtests) =================
[18:04:48] [PASSED] fair_contexts_1vf
[18:04:48] [PASSED] fair_doorbells_1vf
[18:04:48] [PASSED] fair_ggtt_1vf
[18:04:48] ====================== fair_vram_1vf ======================
[18:04:48] [PASSED] 3.50 GiB
[18:04:48] [PASSED] 11.5 GiB
[18:04:48] [PASSED] 15.5 GiB
[18:04:48] [PASSED] 31.5 GiB
[18:04:48] [PASSED] 63.5 GiB
[18:04:48] [PASSED] 1.91 GiB
[18:04:48] ================== [PASSED] fair_vram_1vf ==================
[18:04:48] ================ fair_vram_1vf_admin_only =================
[18:04:48] [PASSED] 3.50 GiB
[18:04:48] [PASSED] 11.5 GiB
[18:04:48] [PASSED] 15.5 GiB
[18:04:48] [PASSED] 31.5 GiB
[18:04:48] [PASSED] 63.5 GiB
[18:04:48] [PASSED] 1.91 GiB
[18:04:48] ============ [PASSED] fair_vram_1vf_admin_only =============
[18:04:48] ====================== fair_contexts ======================
[18:04:48] [PASSED] 1 VF
[18:04:48] [PASSED] 2 VFs
[18:04:48] [PASSED] 3 VFs
[18:04:48] [PASSED] 4 VFs
[18:04:48] [PASSED] 5 VFs
[18:04:48] [PASSED] 6 VFs
[18:04:48] [PASSED] 7 VFs
[18:04:48] [PASSED] 8 VFs
[18:04:48] [PASSED] 9 VFs
[18:04:48] [PASSED] 10 VFs
[18:04:48] [PASSED] 11 VFs
[18:04:48] [PASSED] 12 VFs
[18:04:48] [PASSED] 13 VFs
[18:04:48] [PASSED] 14 VFs
[18:04:48] [PASSED] 15 VFs
[18:04:48] [PASSED] 16 VFs
[18:04:48] [PASSED] 17 VFs
[18:04:48] [PASSED] 18 VFs
[18:04:48] [PASSED] 19 VFs
[18:04:48] [PASSED] 20 VFs
[18:04:48] [PASSED] 21 VFs
[18:04:48] [PASSED] 22 VFs
[18:04:48] [PASSED] 23 VFs
[18:04:48] [PASSED] 24 VFs
[18:04:48] [PASSED] 25 VFs
[18:04:48] [PASSED] 26 VFs
[18:04:48] [PASSED] 27 VFs
[18:04:48] [PASSED] 28 VFs
[18:04:48] [PASSED] 29 VFs
[18:04:48] [PASSED] 30 VFs
[18:04:48] [PASSED] 31 VFs
[18:04:48] [PASSED] 32 VFs
[18:04:48] [PASSED] 33 VFs
[18:04:48] [PASSED] 34 VFs
[18:04:48] [PASSED] 35 VFs
[18:04:48] [PASSED] 36 VFs
[18:04:48] [PASSED] 37 VFs
[18:04:48] [PASSED] 38 VFs
[18:04:48] [PASSED] 39 VFs
[18:04:48] [PASSED] 40 VFs
[18:04:48] [PASSED] 41 VFs
[18:04:48] [PASSED] 42 VFs
[18:04:48] [PASSED] 43 VFs
[18:04:48] [PASSED] 44 VFs
[18:04:48] [PASSED] 45 VFs
[18:04:48] [PASSED] 46 VFs
[18:04:48] [PASSED] 47 VFs
[18:04:48] [PASSED] 48 VFs
[18:04:48] [PASSED] 49 VFs
[18:04:48] [PASSED] 50 VFs
[18:04:48] [PASSED] 51 VFs
[18:04:48] [PASSED] 52 VFs
[18:04:48] [PASSED] 53 VFs
[18:04:48] [PASSED] 54 VFs
[18:04:48] [PASSED] 55 VFs
[18:04:48] [PASSED] 56 VFs
[18:04:48] [PASSED] 57 VFs
[18:04:48] [PASSED] 58 VFs
[18:04:48] [PASSED] 59 VFs
[18:04:48] [PASSED] 60 VFs
[18:04:48] [PASSED] 61 VFs
[18:04:48] [PASSED] 62 VFs
[18:04:48] [PASSED] 63 VFs
[18:04:48] ================== [PASSED] fair_contexts ==================
[18:04:48] ===================== fair_doorbells ======================
[18:04:48] [PASSED] 1 VF
[18:04:48] [PASSED] 2 VFs
[18:04:48] [PASSED] 3 VFs
[18:04:48] [PASSED] 4 VFs
[18:04:48] [PASSED] 5 VFs
[18:04:48] [PASSED] 6 VFs
[18:04:48] [PASSED] 7 VFs
[18:04:48] [PASSED] 8 VFs
[18:04:48] [PASSED] 9 VFs
[18:04:48] [PASSED] 10 VFs
[18:04:48] [PASSED] 11 VFs
[18:04:48] [PASSED] 12 VFs
[18:04:48] [PASSED] 13 VFs
[18:04:48] [PASSED] 14 VFs
[18:04:48] [PASSED] 15 VFs
[18:04:48] [PASSED] 16 VFs
[18:04:48] [PASSED] 17 VFs
[18:04:48] [PASSED] 18 VFs
[18:04:48] [PASSED] 19 VFs
[18:04:48] [PASSED] 20 VFs
[18:04:48] [PASSED] 21 VFs
[18:04:48] [PASSED] 22 VFs
[18:04:48] [PASSED] 23 VFs
[18:04:48] [PASSED] 24 VFs
[18:04:48] [PASSED] 25 VFs
[18:04:48] [PASSED] 26 VFs
[18:04:48] [PASSED] 27 VFs
[18:04:48] [PASSED] 28 VFs
[18:04:48] [PASSED] 29 VFs
[18:04:48] [PASSED] 30 VFs
[18:04:48] [PASSED] 31 VFs
[18:04:48] [PASSED] 32 VFs
[18:04:48] [PASSED] 33 VFs
[18:04:48] [PASSED] 34 VFs
[18:04:48] [PASSED] 35 VFs
[18:04:48] [PASSED] 36 VFs
[18:04:48] [PASSED] 37 VFs
[18:04:48] [PASSED] 38 VFs
[18:04:48] [PASSED] 39 VFs
[18:04:48] [PASSED] 40 VFs
[18:04:48] [PASSED] 41 VFs
[18:04:48] [PASSED] 42 VFs
[18:04:48] [PASSED] 43 VFs
[18:04:48] [PASSED] 44 VFs
[18:04:48] [PASSED] 45 VFs
[18:04:48] [PASSED] 46 VFs
[18:04:48] [PASSED] 47 VFs
[18:04:48] [PASSED] 48 VFs
[18:04:48] [PASSED] 49 VFs
[18:04:48] [PASSED] 50 VFs
[18:04:48] [PASSED] 51 VFs
[18:04:48] [PASSED] 52 VFs
[18:04:48] [PASSED] 53 VFs
[18:04:48] [PASSED] 54 VFs
[18:04:48] [PASSED] 55 VFs
[18:04:48] [PASSED] 56 VFs
[18:04:48] [PASSED] 57 VFs
[18:04:48] [PASSED] 58 VFs
[18:04:48] [PASSED] 59 VFs
[18:04:48] [PASSED] 60 VFs
[18:04:48] [PASSED] 61 VFs
[18:04:48] [PASSED] 62 VFs
[18:04:48] [PASSED] 63 VFs
[18:04:48] ================= [PASSED] fair_doorbells ==================
[18:04:48] ======================== fair_ggtt ========================
[18:04:48] [PASSED] 1 VF
[18:04:48] [PASSED] 2 VFs
[18:04:48] [PASSED] 3 VFs
[18:04:48] [PASSED] 4 VFs
[18:04:48] [PASSED] 5 VFs
[18:04:48] [PASSED] 6 VFs
[18:04:48] [PASSED] 7 VFs
[18:04:48] [PASSED] 8 VFs
[18:04:48] [PASSED] 9 VFs
[18:04:48] [PASSED] 10 VFs
[18:04:48] [PASSED] 11 VFs
[18:04:48] [PASSED] 12 VFs
[18:04:48] [PASSED] 13 VFs
[18:04:48] [PASSED] 14 VFs
[18:04:48] [PASSED] 15 VFs
[18:04:48] [PASSED] 16 VFs
[18:04:48] [PASSED] 17 VFs
[18:04:48] [PASSED] 18 VFs
[18:04:48] [PASSED] 19 VFs
[18:04:48] [PASSED] 20 VFs
[18:04:48] [PASSED] 21 VFs
[18:04:48] [PASSED] 22 VFs
[18:04:48] [PASSED] 23 VFs
[18:04:48] [PASSED] 24 VFs
[18:04:48] [PASSED] 25 VFs
[18:04:48] [PASSED] 26 VFs
[18:04:48] [PASSED] 27 VFs
[18:04:48] [PASSED] 28 VFs
[18:04:48] [PASSED] 29 VFs
[18:04:48] [PASSED] 30 VFs
[18:04:48] [PASSED] 31 VFs
[18:04:48] [PASSED] 32 VFs
[18:04:48] [PASSED] 33 VFs
[18:04:48] [PASSED] 34 VFs
[18:04:48] [PASSED] 35 VFs
[18:04:48] [PASSED] 36 VFs
[18:04:48] [PASSED] 37 VFs
[18:04:48] [PASSED] 38 VFs
[18:04:48] [PASSED] 39 VFs
[18:04:48] [PASSED] 40 VFs
[18:04:48] [PASSED] 41 VFs
[18:04:48] [PASSED] 42 VFs
[18:04:48] [PASSED] 43 VFs
[18:04:48] [PASSED] 44 VFs
[18:04:48] [PASSED] 45 VFs
[18:04:48] [PASSED] 46 VFs
[18:04:48] [PASSED] 47 VFs
[18:04:48] [PASSED] 48 VFs
[18:04:48] [PASSED] 49 VFs
[18:04:48] [PASSED] 50 VFs
[18:04:48] [PASSED] 51 VFs
[18:04:48] [PASSED] 52 VFs
[18:04:48] [PASSED] 53 VFs
[18:04:48] [PASSED] 54 VFs
[18:04:48] [PASSED] 55 VFs
[18:04:48] [PASSED] 56 VFs
[18:04:48] [PASSED] 57 VFs
[18:04:48] [PASSED] 58 VFs
[18:04:48] [PASSED] 59 VFs
[18:04:48] [PASSED] 60 VFs
[18:04:48] [PASSED] 61 VFs
[18:04:48] [PASSED] 62 VFs
[18:04:48] [PASSED] 63 VFs
[18:04:48] ==================== [PASSED] fair_ggtt ====================
[18:04:48] ======================== fair_vram ========================
[18:04:48] [PASSED] 1 VF
[18:04:48] [PASSED] 2 VFs
[18:04:48] [PASSED] 3 VFs
[18:04:48] [PASSED] 4 VFs
[18:04:48] [PASSED] 5 VFs
[18:04:48] [PASSED] 6 VFs
[18:04:48] [PASSED] 7 VFs
[18:04:48] [PASSED] 8 VFs
[18:04:48] [PASSED] 9 VFs
[18:04:48] [PASSED] 10 VFs
[18:04:48] [PASSED] 11 VFs
[18:04:48] [PASSED] 12 VFs
[18:04:48] [PASSED] 13 VFs
[18:04:48] [PASSED] 14 VFs
[18:04:48] [PASSED] 15 VFs
[18:04:48] [PASSED] 16 VFs
[18:04:48] [PASSED] 17 VFs
[18:04:48] [PASSED] 18 VFs
[18:04:48] [PASSED] 19 VFs
[18:04:48] [PASSED] 20 VFs
[18:04:48] [PASSED] 21 VFs
[18:04:48] [PASSED] 22 VFs
[18:04:48] [PASSED] 23 VFs
[18:04:48] [PASSED] 24 VFs
[18:04:48] [PASSED] 25 VFs
[18:04:48] [PASSED] 26 VFs
[18:04:48] [PASSED] 27 VFs
[18:04:48] [PASSED] 28 VFs
[18:04:48] [PASSED] 29 VFs
[18:04:48] [PASSED] 30 VFs
[18:04:48] [PASSED] 31 VFs
[18:04:48] [PASSED] 32 VFs
[18:04:48] [PASSED] 33 VFs
[18:04:48] [PASSED] 34 VFs
[18:04:48] [PASSED] 35 VFs
[18:04:48] [PASSED] 36 VFs
[18:04:48] [PASSED] 37 VFs
[18:04:48] [PASSED] 38 VFs
[18:04:48] [PASSED] 39 VFs
[18:04:48] [PASSED] 40 VFs
[18:04:48] [PASSED] 41 VFs
[18:04:48] [PASSED] 42 VFs
[18:04:48] [PASSED] 43 VFs
[18:04:48] [PASSED] 44 VFs
[18:04:48] [PASSED] 45 VFs
[18:04:48] [PASSED] 46 VFs
[18:04:48] [PASSED] 47 VFs
[18:04:49] [PASSED] 48 VFs
[18:04:49] [PASSED] 49 VFs
[18:04:49] [PASSED] 50 VFs
[18:04:49] [PASSED] 51 VFs
[18:04:49] [PASSED] 52 VFs
[18:04:49] [PASSED] 53 VFs
[18:04:49] [PASSED] 54 VFs
[18:04:49] [PASSED] 55 VFs
[18:04:49] [PASSED] 56 VFs
[18:04:49] [PASSED] 57 VFs
[18:04:49] [PASSED] 58 VFs
[18:04:49] [PASSED] 59 VFs
[18:04:49] [PASSED] 60 VFs
[18:04:49] [PASSED] 61 VFs
[18:04:49] [PASSED] 62 VFs
[18:04:49] [PASSED] 63 VFs
[18:04:49] ==================== [PASSED] fair_vram ====================
[18:04:49] ================== [PASSED] pf_gt_config ===================
[18:04:49] ===================== lmtt (1 subtest) =====================
[18:04:49] ======================== test_ops =========================
[18:04:49] [PASSED] 2-level
[18:04:49] [PASSED] multi-level
[18:04:49] ==================== [PASSED] test_ops =====================
[18:04:49] ====================== [PASSED] lmtt =======================
[18:04:49] ================= pf_service (11 subtests) =================
[18:04:49] [PASSED] pf_negotiate_any
[18:04:49] [PASSED] pf_negotiate_base_match
[18:04:49] [PASSED] pf_negotiate_base_newer
[18:04:49] [PASSED] pf_negotiate_base_next
[18:04:49] [SKIPPED] pf_negotiate_base_older
[18:04:49] [PASSED] pf_negotiate_base_prev
[18:04:49] [PASSED] pf_negotiate_latest_match
[18:04:49] [PASSED] pf_negotiate_latest_newer
[18:04:49] [PASSED] pf_negotiate_latest_next
[18:04:49] [SKIPPED] pf_negotiate_latest_older
[18:04:49] [SKIPPED] pf_negotiate_latest_prev
[18:04:49] =================== [PASSED] pf_service ====================
[18:04:49] ================= xe_guc_g2g (2 subtests) ==================
[18:04:49] ============== xe_live_guc_g2g_kunit_default ==============
[18:04:49] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[18:04:49] ============== xe_live_guc_g2g_kunit_allmem ===============
[18:04:49] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[18:04:49] =================== [SKIPPED] xe_guc_g2g ===================
[18:04:49] =================== xe_mocs (2 subtests) ===================
[18:04:49] ================ xe_live_mocs_kernel_kunit ================
[18:04:49] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[18:04:49] ================ xe_live_mocs_reset_kunit =================
[18:04:49] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[18:04:49] ==================== [SKIPPED] xe_mocs =====================
[18:04:49] ================= xe_migrate (2 subtests) ==================
[18:04:49] ================= xe_migrate_sanity_kunit =================
[18:04:49] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[18:04:49] ================== xe_validate_ccs_kunit ==================
[18:04:49] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[18:04:49] =================== [SKIPPED] xe_migrate ===================
[18:04:49] ================== xe_dma_buf (1 subtest) ==================
[18:04:49] ==================== xe_dma_buf_kunit =====================
[18:04:49] ================ [SKIPPED] xe_dma_buf_kunit ================
[18:04:49] =================== [SKIPPED] xe_dma_buf ===================
[18:04:49] ================= xe_bo_shrink (1 subtest) =================
[18:04:49] =================== xe_bo_shrink_kunit ====================
[18:04:49] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[18:04:49] ================== [SKIPPED] xe_bo_shrink ==================
[18:04:49] ==================== xe_bo (2 subtests) ====================
[18:04:49] ================== xe_ccs_migrate_kunit ===================
[18:04:49] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[18:04:49] ==================== xe_bo_evict_kunit ====================
[18:04:49] =============== [SKIPPED] xe_bo_evict_kunit ================
[18:04:49] ===================== [SKIPPED] xe_bo ======================
[18:04:49] ==================== args (13 subtests) ====================
[18:04:49] [PASSED] count_args_test
[18:04:49] [PASSED] call_args_example
[18:04:49] [PASSED] call_args_test
[18:04:49] [PASSED] drop_first_arg_example
[18:04:49] [PASSED] drop_first_arg_test
[18:04:49] [PASSED] first_arg_example
[18:04:49] [PASSED] first_arg_test
[18:04:49] [PASSED] last_arg_example
[18:04:49] [PASSED] last_arg_test
[18:04:49] [PASSED] pick_arg_example
[18:04:49] [PASSED] if_args_example
[18:04:49] [PASSED] if_args_test
[18:04:49] [PASSED] sep_comma_example
[18:04:49] ====================== [PASSED] args =======================
[18:04:49] =================== xe_pci (3 subtests) ====================
[18:04:49] ==================== check_graphics_ip ====================
[18:04:49] [PASSED] 12.00 Xe_LP
[18:04:49] [PASSED] 12.10 Xe_LP+
[18:04:49] [PASSED] 12.55 Xe_HPG
[18:04:49] [PASSED] 12.60 Xe_HPC
[18:04:49] [PASSED] 12.70 Xe_LPG
[18:04:49] [PASSED] 12.71 Xe_LPG
[18:04:49] [PASSED] 12.74 Xe_LPG+
[18:04:49] [PASSED] 20.01 Xe2_HPG
[18:04:49] [PASSED] 20.02 Xe2_HPG
[18:04:49] [PASSED] 20.04 Xe2_LPG
[18:04:49] [PASSED] 30.00 Xe3_LPG
[18:04:49] [PASSED] 30.01 Xe3_LPG
[18:04:49] [PASSED] 30.03 Xe3_LPG
[18:04:49] [PASSED] 30.04 Xe3_LPG
[18:04:49] [PASSED] 30.05 Xe3_LPG
[18:04:49] [PASSED] 35.10 Xe3p_LPG
[18:04:49] [PASSED] 35.11 Xe3p_XPC
[18:04:49] ================ [PASSED] check_graphics_ip ================
[18:04:49] ===================== check_media_ip ======================
[18:04:49] [PASSED] 12.00 Xe_M
[18:04:49] [PASSED] 12.55 Xe_HPM
[18:04:49] [PASSED] 13.00 Xe_LPM+
[18:04:49] [PASSED] 13.01 Xe2_HPM
[18:04:49] [PASSED] 20.00 Xe2_LPM
[18:04:49] [PASSED] 30.00 Xe3_LPM
[18:04:49] [PASSED] 30.02 Xe3_LPM
[18:04:49] [PASSED] 35.00 Xe3p_LPM
[18:04:49] [PASSED] 35.03 Xe3p_HPM
[18:04:49] ================= [PASSED] check_media_ip ==================
[18:04:49] =================== check_platform_desc ===================
[18:04:49] [PASSED] 0x9A60 (TIGERLAKE)
[18:04:49] [PASSED] 0x9A68 (TIGERLAKE)
[18:04:49] [PASSED] 0x9A70 (TIGERLAKE)
[18:04:49] [PASSED] 0x9A40 (TIGERLAKE)
[18:04:49] [PASSED] 0x9A49 (TIGERLAKE)
[18:04:49] [PASSED] 0x9A59 (TIGERLAKE)
[18:04:49] [PASSED] 0x9A78 (TIGERLAKE)
[18:04:49] [PASSED] 0x9AC0 (TIGERLAKE)
[18:04:49] [PASSED] 0x9AC9 (TIGERLAKE)
[18:04:49] [PASSED] 0x9AD9 (TIGERLAKE)
[18:04:49] [PASSED] 0x9AF8 (TIGERLAKE)
[18:04:49] [PASSED] 0x4C80 (ROCKETLAKE)
[18:04:49] [PASSED] 0x4C8A (ROCKETLAKE)
[18:04:49] [PASSED] 0x4C8B (ROCKETLAKE)
[18:04:49] [PASSED] 0x4C8C (ROCKETLAKE)
[18:04:49] [PASSED] 0x4C90 (ROCKETLAKE)
[18:04:49] [PASSED] 0x4C9A (ROCKETLAKE)
[18:04:49] [PASSED] 0x4680 (ALDERLAKE_S)
[18:04:49] [PASSED] 0x4682 (ALDERLAKE_S)
[18:04:49] [PASSED] 0x4688 (ALDERLAKE_S)
[18:04:49] [PASSED] 0x468A (ALDERLAKE_S)
[18:04:49] [PASSED] 0x468B (ALDERLAKE_S)
[18:04:49] [PASSED] 0x4690 (ALDERLAKE_S)
[18:04:49] [PASSED] 0x4692 (ALDERLAKE_S)
[18:04:49] [PASSED] 0x4693 (ALDERLAKE_S)
[18:04:49] [PASSED] 0x46A0 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46A1 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46A2 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46A3 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46A6 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46A8 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46AA (ALDERLAKE_P)
[18:04:49] [PASSED] 0x462A (ALDERLAKE_P)
[18:04:49] [PASSED] 0x4626 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x4628 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46B0 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46B1 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46B2 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46B3 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46C0 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46C1 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46C2 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46C3 (ALDERLAKE_P)
[18:04:49] [PASSED] 0x46D0 (ALDERLAKE_N)
[18:04:49] [PASSED] 0x46D1 (ALDERLAKE_N)
[18:04:49] [PASSED] 0x46D2 (ALDERLAKE_N)
[18:04:49] [PASSED] 0x46D3 (ALDERLAKE_N)
[18:04:49] [PASSED] 0x46D4 (ALDERLAKE_N)
[18:04:49] [PASSED] 0xA721 (ALDERLAKE_P)
[18:04:49] [PASSED] 0xA7A1 (ALDERLAKE_P)
[18:04:49] [PASSED] 0xA7A9 (ALDERLAKE_P)
[18:04:49] [PASSED] 0xA7AC (ALDERLAKE_P)
[18:04:49] [PASSED] 0xA7AD (ALDERLAKE_P)
[18:04:49] [PASSED] 0xA720 (ALDERLAKE_P)
[18:04:49] [PASSED] 0xA7A0 (ALDERLAKE_P)
[18:04:49] [PASSED] 0xA7A8 (ALDERLAKE_P)
[18:04:49] [PASSED] 0xA7AA (ALDERLAKE_P)
[18:04:49] [PASSED] 0xA7AB (ALDERLAKE_P)
[18:04:49] [PASSED] 0xA780 (ALDERLAKE_S)
[18:04:49] [PASSED] 0xA781 (ALDERLAKE_S)
[18:04:49] [PASSED] 0xA782 (ALDERLAKE_S)
[18:04:49] [PASSED] 0xA783 (ALDERLAKE_S)
[18:04:49] [PASSED] 0xA788 (ALDERLAKE_S)
[18:04:49] [PASSED] 0xA789 (ALDERLAKE_S)
[18:04:49] [PASSED] 0xA78A (ALDERLAKE_S)
[18:04:49] [PASSED] 0xA78B (ALDERLAKE_S)
[18:04:49] [PASSED] 0x4905 (DG1)
[18:04:49] [PASSED] 0x4906 (DG1)
[18:04:49] [PASSED] 0x4907 (DG1)
[18:04:49] [PASSED] 0x4908 (DG1)
[18:04:49] [PASSED] 0x4909 (DG1)
[18:04:49] [PASSED] 0x56C0 (DG2)
[18:04:49] [PASSED] 0x56C2 (DG2)
[18:04:49] [PASSED] 0x56C1 (DG2)
[18:04:49] [PASSED] 0x7D51 (METEORLAKE)
[18:04:49] [PASSED] 0x7DD1 (METEORLAKE)
[18:04:49] [PASSED] 0x7D41 (METEORLAKE)
[18:04:49] [PASSED] 0x7D67 (METEORLAKE)
[18:04:49] [PASSED] 0xB640 (METEORLAKE)
[18:04:49] [PASSED] 0x56A0 (DG2)
[18:04:49] [PASSED] 0x56A1 (DG2)
[18:04:49] [PASSED] 0x56A2 (DG2)
[18:04:49] [PASSED] 0x56BE (DG2)
[18:04:49] [PASSED] 0x56BF (DG2)
[18:04:49] [PASSED] 0x5690 (DG2)
[18:04:49] [PASSED] 0x5691 (DG2)
[18:04:49] [PASSED] 0x5692 (DG2)
[18:04:49] [PASSED] 0x56A5 (DG2)
[18:04:49] [PASSED] 0x56A6 (DG2)
[18:04:49] [PASSED] 0x56B0 (DG2)
[18:04:49] [PASSED] 0x56B1 (DG2)
[18:04:49] [PASSED] 0x56BA (DG2)
[18:04:49] [PASSED] 0x56BB (DG2)
[18:04:49] [PASSED] 0x56BC (DG2)
[18:04:49] [PASSED] 0x56BD (DG2)
[18:04:49] [PASSED] 0x5693 (DG2)
[18:04:49] [PASSED] 0x5694 (DG2)
[18:04:49] [PASSED] 0x5695 (DG2)
[18:04:49] [PASSED] 0x56A3 (DG2)
[18:04:49] [PASSED] 0x56A4 (DG2)
[18:04:49] [PASSED] 0x56B2 (DG2)
[18:04:49] [PASSED] 0x56B3 (DG2)
[18:04:49] [PASSED] 0x5696 (DG2)
[18:04:49] [PASSED] 0x5697 (DG2)
[18:04:49] [PASSED] 0xB69 (PVC)
[18:04:49] [PASSED] 0xB6E (PVC)
[18:04:49] [PASSED] 0xBD4 (PVC)
[18:04:49] [PASSED] 0xBD5 (PVC)
[18:04:49] [PASSED] 0xBD6 (PVC)
[18:04:49] [PASSED] 0xBD7 (PVC)
[18:04:49] [PASSED] 0xBD8 (PVC)
[18:04:49] [PASSED] 0xBD9 (PVC)
[18:04:49] [PASSED] 0xBDA (PVC)
[18:04:49] [PASSED] 0xBDB (PVC)
[18:04:49] [PASSED] 0xBE0 (PVC)
[18:04:49] [PASSED] 0xBE1 (PVC)
[18:04:49] [PASSED] 0xBE5 (PVC)
[18:04:49] [PASSED] 0x7D40 (METEORLAKE)
[18:04:49] [PASSED] 0x7D45 (METEORLAKE)
[18:04:49] [PASSED] 0x7D55 (METEORLAKE)
[18:04:49] [PASSED] 0x7D60 (METEORLAKE)
[18:04:49] [PASSED] 0x7DD5 (METEORLAKE)
[18:04:49] [PASSED] 0x6420 (LUNARLAKE)
[18:04:49] [PASSED] 0x64A0 (LUNARLAKE)
[18:04:49] [PASSED] 0x64B0 (LUNARLAKE)
[18:04:49] [PASSED] 0xE202 (BATTLEMAGE)
[18:04:49] [PASSED] 0xE209 (BATTLEMAGE)
[18:04:49] [PASSED] 0xE20B (BATTLEMAGE)
[18:04:49] [PASSED] 0xE20C (BATTLEMAGE)
[18:04:49] [PASSED] 0xE20D (BATTLEMAGE)
[18:04:49] [PASSED] 0xE210 (BATTLEMAGE)
[18:04:49] [PASSED] 0xE211 (BATTLEMAGE)
[18:04:49] [PASSED] 0xE212 (BATTLEMAGE)
[18:04:49] [PASSED] 0xE216 (BATTLEMAGE)
[18:04:49] [PASSED] 0xE220 (BATTLEMAGE)
[18:04:49] [PASSED] 0xE221 (BATTLEMAGE)
[18:04:49] [PASSED] 0xE222 (BATTLEMAGE)
[18:04:49] [PASSED] 0xE223 (BATTLEMAGE)
[18:04:49] [PASSED] 0xB080 (PANTHERLAKE)
[18:04:49] [PASSED] 0xB081 (PANTHERLAKE)
[18:04:49] [PASSED] 0xB082 (PANTHERLAKE)
[18:04:49] [PASSED] 0xB083 (PANTHERLAKE)
[18:04:49] [PASSED] 0xB084 (PANTHERLAKE)
[18:04:49] [PASSED] 0xB085 (PANTHERLAKE)
[18:04:49] [PASSED] 0xB086 (PANTHERLAKE)
[18:04:49] [PASSED] 0xB087 (PANTHERLAKE)
[18:04:49] [PASSED] 0xB08F (PANTHERLAKE)
[18:04:49] [PASSED] 0xB090 (PANTHERLAKE)
[18:04:49] [PASSED] 0xB0A0 (PANTHERLAKE)
[18:04:49] [PASSED] 0xB0B0 (PANTHERLAKE)
[18:04:49] [PASSED] 0xFD80 (PANTHERLAKE)
[18:04:49] [PASSED] 0xFD81 (PANTHERLAKE)
[18:04:49] [PASSED] 0xD740 (NOVALAKE_S)
[18:04:49] [PASSED] 0xD741 (NOVALAKE_S)
[18:04:49] [PASSED] 0xD742 (NOVALAKE_S)
[18:04:49] [PASSED] 0xD743 (NOVALAKE_S)
[18:04:49] [PASSED] 0xD744 (NOVALAKE_S)
[18:04:49] [PASSED] 0xD745 (NOVALAKE_S)
[18:04:49] [PASSED] 0x674C (CRESCENTISLAND)
[18:04:49] [PASSED] 0xD750 (NOVALAKE_P)
[18:04:49] [PASSED] 0xD751 (NOVALAKE_P)
[18:04:49] [PASSED] 0xD752 (NOVALAKE_P)
[18:04:49] [PASSED] 0xD753 (NOVALAKE_P)
[18:04:49] [PASSED] 0xD754 (NOVALAKE_P)
[18:04:49] [PASSED] 0xD755 (NOVALAKE_P)
[18:04:49] [PASSED] 0xD756 (NOVALAKE_P)
[18:04:49] [PASSED] 0xD757 (NOVALAKE_P)
[18:04:49] [PASSED] 0xD75F (NOVALAKE_P)
[18:04:49] =============== [PASSED] check_platform_desc ===============
[18:04:49] ===================== [PASSED] xe_pci ======================
[18:04:49] =================== xe_rtp (2 subtests) ====================
[18:04:49] =============== xe_rtp_process_to_sr_tests ================
[18:04:49] [PASSED] coalesce-same-reg
[18:04:49] [PASSED] no-match-no-add
[18:04:49] [PASSED] match-or
[18:04:49] [PASSED] match-or-xfail
[18:04:49] [PASSED] no-match-no-add-multiple-rules
[18:04:49] [PASSED] two-regs-two-entries
[18:04:49] [PASSED] clr-one-set-other
[18:04:49] [PASSED] set-field
[18:04:49] [PASSED] conflict-duplicate
stty: 'standard input': Inappropriate ioctl for device
[18:04:49] [PASSED] conflict-not-disjoint
[18:04:49] [PASSED] conflict-reg-type
[18:04:49] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[18:04:49] ================== xe_rtp_process_tests ===================
[18:04:49] [PASSED] active1
[18:04:49] [PASSED] active2
[18:04:49] [PASSED] active-inactive
[18:04:49] [PASSED] inactive-active
[18:04:49] [PASSED] inactive-1st_or_active-inactive
[18:04:49] [PASSED] inactive-2nd_or_active-inactive
[18:04:49] [PASSED] inactive-last_or_active-inactive
[18:04:49] [PASSED] inactive-no_or_active-inactive
[18:04:49] ============== [PASSED] xe_rtp_process_tests ===============
[18:04:49] ===================== [PASSED] xe_rtp ======================
[18:04:49] ==================== xe_wa (1 subtest) =====================
[18:04:49] ======================== xe_wa_gt =========================
[18:04:49] [PASSED] TIGERLAKE B0
[18:04:49] [PASSED] DG1 A0
[18:04:49] [PASSED] DG1 B0
[18:04:49] [PASSED] ALDERLAKE_S A0
[18:04:49] [PASSED] ALDERLAKE_S B0
[18:04:49] [PASSED] ALDERLAKE_S C0
[18:04:49] [PASSED] ALDERLAKE_S D0
[18:04:49] [PASSED] ALDERLAKE_P A0
[18:04:49] [PASSED] ALDERLAKE_P B0
[18:04:49] [PASSED] ALDERLAKE_P C0
[18:04:49] [PASSED] ALDERLAKE_S RPLS D0
[18:04:49] [PASSED] ALDERLAKE_P RPLU E0
[18:04:49] [PASSED] DG2 G10 C0
[18:04:49] [PASSED] DG2 G11 B1
[18:04:49] [PASSED] DG2 G12 A1
[18:04:49] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[18:04:49] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[18:04:49] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[18:04:49] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[18:04:49] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[18:04:49] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[18:04:49] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[18:04:49] ==================== [PASSED] xe_wa_gt =====================
[18:04:49] ====================== [PASSED] xe_wa ======================
[18:04:49] ============================================================
[18:04:49] Testing complete. Ran 597 tests: passed: 579, skipped: 18
[18:04:49] Elapsed time: 36.123s total, 4.238s configuring, 31.267s building, 0.597s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[18:04:49] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:04:50] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[18:05:15] Starting KUnit Kernel (1/1)...
[18:05:15] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:05:15] ============ drm_test_pick_cmdline (2 subtests) ============
[18:05:15] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[18:05:15] =============== drm_test_pick_cmdline_named ===============
[18:05:15] [PASSED] NTSC
[18:05:15] [PASSED] NTSC-J
[18:05:15] [PASSED] PAL
[18:05:15] [PASSED] PAL-M
[18:05:15] =========== [PASSED] drm_test_pick_cmdline_named ===========
[18:05:15] ============== [PASSED] drm_test_pick_cmdline ==============
[18:05:15] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[18:05:15] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[18:05:15] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[18:05:15] =========== drm_validate_clone_mode (2 subtests) ===========
[18:05:15] ============== drm_test_check_in_clone_mode ===============
[18:05:15] [PASSED] in_clone_mode
[18:05:15] [PASSED] not_in_clone_mode
[18:05:15] ========== [PASSED] drm_test_check_in_clone_mode ===========
[18:05:15] =============== drm_test_check_valid_clones ===============
[18:05:15] [PASSED] not_in_clone_mode
[18:05:15] [PASSED] valid_clone
[18:05:15] [PASSED] invalid_clone
[18:05:15] =========== [PASSED] drm_test_check_valid_clones ===========
[18:05:15] ============= [PASSED] drm_validate_clone_mode =============
[18:05:15] ============= drm_validate_modeset (1 subtest) =============
[18:05:15] [PASSED] drm_test_check_connector_changed_modeset
[18:05:15] ============== [PASSED] drm_validate_modeset ===============
[18:05:15] ====== drm_test_bridge_get_current_state (2 subtests) ======
[18:05:15] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[18:05:15] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[18:05:15] ======== [PASSED] drm_test_bridge_get_current_state ========
[18:05:15] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[18:05:15] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[18:05:15] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[18:05:15] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[18:05:15] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[18:05:15] ============== drm_bridge_alloc (2 subtests) ===============
[18:05:15] [PASSED] drm_test_drm_bridge_alloc_basic
[18:05:15] [PASSED] drm_test_drm_bridge_alloc_get_put
[18:05:15] ================ [PASSED] drm_bridge_alloc =================
[18:05:15] ============= drm_cmdline_parser (40 subtests) =============
[18:05:15] [PASSED] drm_test_cmdline_force_d_only
[18:05:15] [PASSED] drm_test_cmdline_force_D_only_dvi
[18:05:15] [PASSED] drm_test_cmdline_force_D_only_hdmi
[18:05:15] [PASSED] drm_test_cmdline_force_D_only_not_digital
[18:05:15] [PASSED] drm_test_cmdline_force_e_only
[18:05:15] [PASSED] drm_test_cmdline_res
[18:05:15] [PASSED] drm_test_cmdline_res_vesa
[18:05:15] [PASSED] drm_test_cmdline_res_vesa_rblank
[18:05:15] [PASSED] drm_test_cmdline_res_rblank
[18:05:15] [PASSED] drm_test_cmdline_res_bpp
[18:05:15] [PASSED] drm_test_cmdline_res_refresh
[18:05:15] [PASSED] drm_test_cmdline_res_bpp_refresh
[18:05:15] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[18:05:15] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[18:05:15] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[18:05:15] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[18:05:15] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[18:05:15] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[18:05:15] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[18:05:15] [PASSED] drm_test_cmdline_res_margins_force_on
[18:05:15] [PASSED] drm_test_cmdline_res_vesa_margins
[18:05:15] [PASSED] drm_test_cmdline_name
[18:05:15] [PASSED] drm_test_cmdline_name_bpp
[18:05:15] [PASSED] drm_test_cmdline_name_option
[18:05:15] [PASSED] drm_test_cmdline_name_bpp_option
[18:05:15] [PASSED] drm_test_cmdline_rotate_0
[18:05:15] [PASSED] drm_test_cmdline_rotate_90
[18:05:15] [PASSED] drm_test_cmdline_rotate_180
[18:05:15] [PASSED] drm_test_cmdline_rotate_270
[18:05:15] [PASSED] drm_test_cmdline_hmirror
[18:05:15] [PASSED] drm_test_cmdline_vmirror
[18:05:15] [PASSED] drm_test_cmdline_margin_options
[18:05:15] [PASSED] drm_test_cmdline_multiple_options
[18:05:15] [PASSED] drm_test_cmdline_bpp_extra_and_option
[18:05:15] [PASSED] drm_test_cmdline_extra_and_option
[18:05:15] [PASSED] drm_test_cmdline_freestanding_options
[18:05:15] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[18:05:15] [PASSED] drm_test_cmdline_panel_orientation
[18:05:15] ================ drm_test_cmdline_invalid =================
[18:05:15] [PASSED] margin_only
[18:05:15] [PASSED] interlace_only
[18:05:15] [PASSED] res_missing_x
[18:05:15] [PASSED] res_missing_y
[18:05:15] [PASSED] res_bad_y
[18:05:15] [PASSED] res_missing_y_bpp
[18:05:15] [PASSED] res_bad_bpp
[18:05:15] [PASSED] res_bad_refresh
[18:05:15] [PASSED] res_bpp_refresh_force_on_off
[18:05:15] [PASSED] res_invalid_mode
[18:05:15] [PASSED] res_bpp_wrong_place_mode
[18:05:15] [PASSED] name_bpp_refresh
[18:05:15] [PASSED] name_refresh
[18:05:15] [PASSED] name_refresh_wrong_mode
[18:05:15] [PASSED] name_refresh_invalid_mode
[18:05:15] [PASSED] rotate_multiple
[18:05:15] [PASSED] rotate_invalid_val
[18:05:15] [PASSED] rotate_truncated
[18:05:15] [PASSED] invalid_option
[18:05:15] [PASSED] invalid_tv_option
[18:05:15] [PASSED] truncated_tv_option
[18:05:15] ============ [PASSED] drm_test_cmdline_invalid =============
[18:05:15] =============== drm_test_cmdline_tv_options ===============
[18:05:15] [PASSED] NTSC
[18:05:15] [PASSED] NTSC_443
[18:05:15] [PASSED] NTSC_J
[18:05:15] [PASSED] PAL
[18:05:15] [PASSED] PAL_M
[18:05:15] [PASSED] PAL_N
[18:05:15] [PASSED] SECAM
[18:05:15] [PASSED] MONO_525
[18:05:15] [PASSED] MONO_625
[18:05:15] =========== [PASSED] drm_test_cmdline_tv_options ===========
[18:05:15] =============== [PASSED] drm_cmdline_parser ================
[18:05:15] ========== drmm_connector_hdmi_init (20 subtests) ==========
[18:05:15] [PASSED] drm_test_connector_hdmi_init_valid
[18:05:15] [PASSED] drm_test_connector_hdmi_init_bpc_8
[18:05:15] [PASSED] drm_test_connector_hdmi_init_bpc_10
[18:05:15] [PASSED] drm_test_connector_hdmi_init_bpc_12
[18:05:15] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[18:05:15] [PASSED] drm_test_connector_hdmi_init_bpc_null
[18:05:15] [PASSED] drm_test_connector_hdmi_init_formats_empty
[18:05:15] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[18:05:15] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[18:05:15] [PASSED] supported_formats=0x9 yuv420_allowed=1
[18:05:15] [PASSED] supported_formats=0x9 yuv420_allowed=0
[18:05:15] [PASSED] supported_formats=0x5 yuv420_allowed=1
[18:05:15] [PASSED] supported_formats=0x5 yuv420_allowed=0
[18:05:15] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[18:05:15] [PASSED] drm_test_connector_hdmi_init_null_ddc
[18:05:15] [PASSED] drm_test_connector_hdmi_init_null_product
[18:05:15] [PASSED] drm_test_connector_hdmi_init_null_vendor
[18:05:15] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[18:05:15] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[18:05:15] [PASSED] drm_test_connector_hdmi_init_product_valid
[18:05:15] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[18:05:15] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[18:05:15] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[18:05:15] ========= drm_test_connector_hdmi_init_type_valid =========
[18:05:15] [PASSED] HDMI-A
[18:05:15] [PASSED] HDMI-B
[18:05:15] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[18:05:15] ======== drm_test_connector_hdmi_init_type_invalid ========
[18:05:15] [PASSED] Unknown
[18:05:15] [PASSED] VGA
[18:05:15] [PASSED] DVI-I
[18:05:15] [PASSED] DVI-D
[18:05:15] [PASSED] DVI-A
[18:05:15] [PASSED] Composite
[18:05:15] [PASSED] SVIDEO
[18:05:15] [PASSED] LVDS
[18:05:15] [PASSED] Component
[18:05:15] [PASSED] DIN
[18:05:15] [PASSED] DP
[18:05:15] [PASSED] TV
[18:05:15] [PASSED] eDP
[18:05:15] [PASSED] Virtual
[18:05:15] [PASSED] DSI
[18:05:15] [PASSED] DPI
[18:05:15] [PASSED] Writeback
[18:05:15] [PASSED] SPI
[18:05:15] [PASSED] USB
[18:05:15] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[18:05:15] ============ [PASSED] drmm_connector_hdmi_init =============
[18:05:15] ============= drmm_connector_init (3 subtests) =============
[18:05:15] [PASSED] drm_test_drmm_connector_init
[18:05:15] [PASSED] drm_test_drmm_connector_init_null_ddc
[18:05:15] ========= drm_test_drmm_connector_init_type_valid =========
[18:05:15] [PASSED] Unknown
[18:05:15] [PASSED] VGA
[18:05:15] [PASSED] DVI-I
[18:05:15] [PASSED] DVI-D
[18:05:15] [PASSED] DVI-A
[18:05:15] [PASSED] Composite
[18:05:15] [PASSED] SVIDEO
[18:05:15] [PASSED] LVDS
[18:05:15] [PASSED] Component
[18:05:15] [PASSED] DIN
[18:05:15] [PASSED] DP
[18:05:15] [PASSED] HDMI-A
[18:05:15] [PASSED] HDMI-B
[18:05:15] [PASSED] TV
[18:05:15] [PASSED] eDP
[18:05:15] [PASSED] Virtual
[18:05:15] [PASSED] DSI
[18:05:15] [PASSED] DPI
[18:05:15] [PASSED] Writeback
[18:05:15] [PASSED] SPI
[18:05:15] [PASSED] USB
[18:05:15] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[18:05:15] =============== [PASSED] drmm_connector_init ===============
[18:05:15] ========= drm_connector_dynamic_init (6 subtests) ==========
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_init
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_init_properties
[18:05:15] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[18:05:15] [PASSED] Unknown
[18:05:15] [PASSED] VGA
[18:05:15] [PASSED] DVI-I
[18:05:15] [PASSED] DVI-D
[18:05:15] [PASSED] DVI-A
[18:05:15] [PASSED] Composite
[18:05:15] [PASSED] SVIDEO
[18:05:15] [PASSED] LVDS
[18:05:15] [PASSED] Component
[18:05:15] [PASSED] DIN
[18:05:15] [PASSED] DP
[18:05:15] [PASSED] HDMI-A
[18:05:15] [PASSED] HDMI-B
[18:05:15] [PASSED] TV
[18:05:15] [PASSED] eDP
[18:05:15] [PASSED] Virtual
[18:05:15] [PASSED] DSI
[18:05:15] [PASSED] DPI
[18:05:15] [PASSED] Writeback
[18:05:15] [PASSED] SPI
[18:05:15] [PASSED] USB
[18:05:15] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[18:05:15] ======== drm_test_drm_connector_dynamic_init_name =========
[18:05:15] [PASSED] Unknown
[18:05:15] [PASSED] VGA
[18:05:15] [PASSED] DVI-I
[18:05:15] [PASSED] DVI-D
[18:05:15] [PASSED] DVI-A
[18:05:15] [PASSED] Composite
[18:05:15] [PASSED] SVIDEO
[18:05:15] [PASSED] LVDS
[18:05:15] [PASSED] Component
[18:05:15] [PASSED] DIN
[18:05:15] [PASSED] DP
[18:05:15] [PASSED] HDMI-A
[18:05:15] [PASSED] HDMI-B
[18:05:15] [PASSED] TV
[18:05:15] [PASSED] eDP
[18:05:15] [PASSED] Virtual
[18:05:15] [PASSED] DSI
[18:05:15] [PASSED] DPI
[18:05:15] [PASSED] Writeback
[18:05:15] [PASSED] SPI
[18:05:15] [PASSED] USB
[18:05:15] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[18:05:15] =========== [PASSED] drm_connector_dynamic_init ============
[18:05:15] ==== drm_connector_dynamic_register_early (4 subtests) =====
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[18:05:15] ====== [PASSED] drm_connector_dynamic_register_early =======
[18:05:15] ======= drm_connector_dynamic_register (7 subtests) ========
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[18:05:15] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[18:05:15] ========= [PASSED] drm_connector_dynamic_register ==========
[18:05:15] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[18:05:15] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[18:05:15] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[18:05:15] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[18:05:15] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[18:05:15] ========== drm_test_get_tv_mode_from_name_valid ===========
[18:05:15] [PASSED] NTSC
[18:05:15] [PASSED] NTSC-443
[18:05:15] [PASSED] NTSC-J
[18:05:15] [PASSED] PAL
[18:05:15] [PASSED] PAL-M
[18:05:15] [PASSED] PAL-N
[18:05:15] [PASSED] SECAM
[18:05:15] [PASSED] Mono
[18:05:15] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[18:05:15] [PASSED] drm_test_get_tv_mode_from_name_truncated
[18:05:15] ============ [PASSED] drm_get_tv_mode_from_name ============
[18:05:15] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[18:05:15] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[18:05:15] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[18:05:15] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[18:05:15] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[18:05:15] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[18:05:15] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[18:05:15] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[18:05:15] [PASSED] VIC 96
[18:05:15] [PASSED] VIC 97
[18:05:15] [PASSED] VIC 101
[18:05:15] [PASSED] VIC 102
[18:05:15] [PASSED] VIC 106
[18:05:15] [PASSED] VIC 107
[18:05:15] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[18:05:15] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[18:05:15] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[18:05:15] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[18:05:15] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[18:05:15] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[18:05:15] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[18:05:15] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[18:05:15] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[18:05:15] [PASSED] Automatic
[18:05:15] [PASSED] Full
[18:05:15] [PASSED] Limited 16:235
[18:05:15] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[18:05:15] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[18:05:15] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[18:05:15] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[18:05:15] === drm_test_drm_hdmi_connector_get_output_format_name ====
[18:05:15] [PASSED] RGB
[18:05:15] [PASSED] YUV 4:2:0
[18:05:15] [PASSED] YUV 4:2:2
[18:05:15] [PASSED] YUV 4:4:4
[18:05:15] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[18:05:15] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[18:05:15] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[18:05:15] ============= drm_damage_helper (21 subtests) ==============
[18:05:15] [PASSED] drm_test_damage_iter_no_damage
[18:05:15] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[18:05:15] [PASSED] drm_test_damage_iter_no_damage_src_moved
[18:05:15] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[18:05:15] [PASSED] drm_test_damage_iter_no_damage_not_visible
[18:05:15] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[18:05:15] [PASSED] drm_test_damage_iter_no_damage_no_fb
[18:05:15] [PASSED] drm_test_damage_iter_simple_damage
[18:05:15] [PASSED] drm_test_damage_iter_single_damage
[18:05:15] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[18:05:15] [PASSED] drm_test_damage_iter_single_damage_outside_src
[18:05:15] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[18:05:15] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[18:05:15] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[18:05:15] [PASSED] drm_test_damage_iter_single_damage_src_moved
[18:05:15] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[18:05:15] [PASSED] drm_test_damage_iter_damage
[18:05:15] [PASSED] drm_test_damage_iter_damage_one_intersect
[18:05:15] [PASSED] drm_test_damage_iter_damage_one_outside
[18:05:15] [PASSED] drm_test_damage_iter_damage_src_moved
[18:05:15] [PASSED] drm_test_damage_iter_damage_not_visible
[18:05:15] ================ [PASSED] drm_damage_helper ================
[18:05:15] ============== drm_dp_mst_helper (3 subtests) ==============
[18:05:15] ============== drm_test_dp_mst_calc_pbn_mode ==============
[18:05:15] [PASSED] Clock 154000 BPP 30 DSC disabled
[18:05:15] [PASSED] Clock 234000 BPP 30 DSC disabled
[18:05:15] [PASSED] Clock 297000 BPP 24 DSC disabled
[18:05:15] [PASSED] Clock 332880 BPP 24 DSC enabled
[18:05:15] [PASSED] Clock 324540 BPP 24 DSC enabled
[18:05:15] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[18:05:15] ============== drm_test_dp_mst_calc_pbn_div ===============
[18:05:15] [PASSED] Link rate 2000000 lane count 4
[18:05:15] [PASSED] Link rate 2000000 lane count 2
[18:05:15] [PASSED] Link rate 2000000 lane count 1
[18:05:15] [PASSED] Link rate 1350000 lane count 4
[18:05:15] [PASSED] Link rate 1350000 lane count 2
[18:05:15] [PASSED] Link rate 1350000 lane count 1
[18:05:15] [PASSED] Link rate 1000000 lane count 4
[18:05:15] [PASSED] Link rate 1000000 lane count 2
[18:05:15] [PASSED] Link rate 1000000 lane count 1
[18:05:15] [PASSED] Link rate 810000 lane count 4
[18:05:15] [PASSED] Link rate 810000 lane count 2
[18:05:15] [PASSED] Link rate 810000 lane count 1
[18:05:15] [PASSED] Link rate 540000 lane count 4
[18:05:15] [PASSED] Link rate 540000 lane count 2
[18:05:15] [PASSED] Link rate 540000 lane count 1
[18:05:15] [PASSED] Link rate 270000 lane count 4
[18:05:15] [PASSED] Link rate 270000 lane count 2
[18:05:15] [PASSED] Link rate 270000 lane count 1
[18:05:15] [PASSED] Link rate 162000 lane count 4
[18:05:15] [PASSED] Link rate 162000 lane count 2
[18:05:15] [PASSED] Link rate 162000 lane count 1
[18:05:15] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[18:05:15] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[18:05:15] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[18:05:15] [PASSED] DP_POWER_UP_PHY with port number
[18:05:15] [PASSED] DP_POWER_DOWN_PHY with port number
[18:05:15] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[18:05:15] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[18:05:15] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[18:05:15] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[18:05:15] [PASSED] DP_QUERY_PAYLOAD with port number
[18:05:15] [PASSED] DP_QUERY_PAYLOAD with VCPI
[18:05:15] [PASSED] DP_REMOTE_DPCD_READ with port number
[18:05:15] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[18:05:15] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[18:05:15] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[18:05:15] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[18:05:15] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[18:05:15] [PASSED] DP_REMOTE_I2C_READ with port number
[18:05:15] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[18:05:15] [PASSED] DP_REMOTE_I2C_READ with transactions array
[18:05:15] [PASSED] DP_REMOTE_I2C_WRITE with port number
[18:05:15] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[18:05:15] [PASSED] DP_REMOTE_I2C_WRITE with data array
[18:05:15] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[18:05:15] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[18:05:15] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[18:05:15] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[18:05:15] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[18:05:15] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[18:05:15] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[18:05:15] ================ [PASSED] drm_dp_mst_helper ================
[18:05:15] ================== drm_exec (7 subtests) ===================
[18:05:15] [PASSED] sanitycheck
[18:05:15] [PASSED] test_lock
[18:05:15] [PASSED] test_lock_unlock
[18:05:15] [PASSED] test_duplicates
[18:05:15] [PASSED] test_prepare
[18:05:15] [PASSED] test_prepare_array
[18:05:15] [PASSED] test_multiple_loops
[18:05:15] ==================== [PASSED] drm_exec =====================
[18:05:15] =========== drm_format_helper_test (17 subtests) ===========
[18:05:15] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[18:05:15] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[18:05:15] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[18:05:15] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[18:05:15] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[18:05:15] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[18:05:15] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[18:05:15] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[18:05:15] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[18:05:15] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[18:05:15] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[18:05:15] ============== drm_test_fb_xrgb8888_to_mono ===============
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[18:05:15] ==================== drm_test_fb_swab =====================
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ================ [PASSED] drm_test_fb_swab =================
[18:05:15] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[18:05:15] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[18:05:15] [PASSED] single_pixel_source_buffer
[18:05:15] [PASSED] single_pixel_clip_rectangle
[18:05:15] [PASSED] well_known_colors
[18:05:15] [PASSED] destination_pitch
[18:05:15] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[18:05:15] ================= drm_test_fb_clip_offset =================
[18:05:15] [PASSED] pass through
[18:05:15] [PASSED] horizontal offset
[18:05:15] [PASSED] vertical offset
[18:05:15] [PASSED] horizontal and vertical offset
[18:05:15] [PASSED] horizontal offset (custom pitch)
[18:05:15] [PASSED] vertical offset (custom pitch)
[18:05:15] [PASSED] horizontal and vertical offset (custom pitch)
[18:05:15] ============= [PASSED] drm_test_fb_clip_offset =============
[18:05:15] =================== drm_test_fb_memcpy ====================
[18:05:15] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[18:05:15] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[18:05:15] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[18:05:15] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[18:05:15] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[18:05:15] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[18:05:15] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[18:05:15] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[18:05:15] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[18:05:15] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[18:05:15] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[18:05:15] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[18:05:15] =============== [PASSED] drm_test_fb_memcpy ================
[18:05:15] ============= [PASSED] drm_format_helper_test ==============
[18:05:15] ================= drm_format (18 subtests) =================
[18:05:15] [PASSED] drm_test_format_block_width_invalid
[18:05:15] [PASSED] drm_test_format_block_width_one_plane
[18:05:15] [PASSED] drm_test_format_block_width_two_plane
[18:05:15] [PASSED] drm_test_format_block_width_three_plane
[18:05:15] [PASSED] drm_test_format_block_width_tiled
[18:05:15] [PASSED] drm_test_format_block_height_invalid
[18:05:15] [PASSED] drm_test_format_block_height_one_plane
[18:05:15] [PASSED] drm_test_format_block_height_two_plane
[18:05:15] [PASSED] drm_test_format_block_height_three_plane
[18:05:15] [PASSED] drm_test_format_block_height_tiled
[18:05:15] [PASSED] drm_test_format_min_pitch_invalid
[18:05:15] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[18:05:15] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[18:05:15] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[18:05:15] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[18:05:15] [PASSED] drm_test_format_min_pitch_two_plane
[18:05:15] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[18:05:15] [PASSED] drm_test_format_min_pitch_tiled
[18:05:15] =================== [PASSED] drm_format ====================
[18:05:15] ============== drm_framebuffer (10 subtests) ===============
[18:05:15] ========== drm_test_framebuffer_check_src_coords ==========
[18:05:15] [PASSED] Success: source fits into fb
[18:05:15] [PASSED] Fail: overflowing fb with x-axis coordinate
[18:05:15] [PASSED] Fail: overflowing fb with y-axis coordinate
[18:05:15] [PASSED] Fail: overflowing fb with source width
[18:05:15] [PASSED] Fail: overflowing fb with source height
[18:05:15] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[18:05:15] [PASSED] drm_test_framebuffer_cleanup
[18:05:15] =============== drm_test_framebuffer_create ===============
[18:05:15] [PASSED] ABGR8888 normal sizes
[18:05:15] [PASSED] ABGR8888 max sizes
[18:05:15] [PASSED] ABGR8888 pitch greater than min required
[18:05:15] [PASSED] ABGR8888 pitch less than min required
[18:05:15] [PASSED] ABGR8888 Invalid width
[18:05:15] [PASSED] ABGR8888 Invalid buffer handle
[18:05:15] [PASSED] No pixel format
[18:05:15] [PASSED] ABGR8888 Width 0
[18:05:15] [PASSED] ABGR8888 Height 0
[18:05:15] [PASSED] ABGR8888 Out of bound height * pitch combination
[18:05:15] [PASSED] ABGR8888 Large buffer offset
[18:05:15] [PASSED] ABGR8888 Buffer offset for inexistent plane
[18:05:15] [PASSED] ABGR8888 Invalid flag
[18:05:15] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[18:05:15] [PASSED] ABGR8888 Valid buffer modifier
[18:05:15] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[18:05:15] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[18:05:15] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[18:05:15] [PASSED] NV12 Normal sizes
[18:05:15] [PASSED] NV12 Max sizes
[18:05:15] [PASSED] NV12 Invalid pitch
[18:05:15] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[18:05:15] [PASSED] NV12 different modifier per-plane
[18:05:15] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[18:05:15] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[18:05:15] [PASSED] NV12 Modifier for inexistent plane
[18:05:15] [PASSED] NV12 Handle for inexistent plane
[18:05:15] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[18:05:15] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[18:05:15] [PASSED] YVU420 Normal sizes
[18:05:15] [PASSED] YVU420 Max sizes
[18:05:15] [PASSED] YVU420 Invalid pitch
[18:05:15] [PASSED] YVU420 Different pitches
[18:05:15] [PASSED] YVU420 Different buffer offsets/pitches
[18:05:15] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[18:05:15] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[18:05:15] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[18:05:15] [PASSED] YVU420 Valid modifier
[18:05:15] [PASSED] YVU420 Different modifiers per plane
[18:05:15] [PASSED] YVU420 Modifier for inexistent plane
[18:05:15] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[18:05:15] [PASSED] X0L2 Normal sizes
[18:05:15] [PASSED] X0L2 Max sizes
[18:05:15] [PASSED] X0L2 Invalid pitch
[18:05:15] [PASSED] X0L2 Pitch greater than minimum required
[18:05:15] [PASSED] X0L2 Handle for inexistent plane
[18:05:15] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[18:05:15] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[18:05:15] [PASSED] X0L2 Valid modifier
[18:05:15] [PASSED] X0L2 Modifier for inexistent plane
[18:05:15] =========== [PASSED] drm_test_framebuffer_create ===========
[18:05:15] [PASSED] drm_test_framebuffer_free
[18:05:15] [PASSED] drm_test_framebuffer_init
[18:05:15] [PASSED] drm_test_framebuffer_init_bad_format
[18:05:15] [PASSED] drm_test_framebuffer_init_dev_mismatch
[18:05:15] [PASSED] drm_test_framebuffer_lookup
[18:05:15] [PASSED] drm_test_framebuffer_lookup_inexistent
[18:05:15] [PASSED] drm_test_framebuffer_modifiers_not_supported
[18:05:15] ================= [PASSED] drm_framebuffer =================
[18:05:15] ================ drm_gem_shmem (8 subtests) ================
[18:05:15] [PASSED] drm_gem_shmem_test_obj_create
[18:05:15] [PASSED] drm_gem_shmem_test_obj_create_private
[18:05:15] [PASSED] drm_gem_shmem_test_pin_pages
[18:05:15] [PASSED] drm_gem_shmem_test_vmap
[18:05:15] [PASSED] drm_gem_shmem_test_get_sg_table
[18:05:15] [PASSED] drm_gem_shmem_test_get_pages_sgt
[18:05:15] [PASSED] drm_gem_shmem_test_madvise
[18:05:15] [PASSED] drm_gem_shmem_test_purge
[18:05:15] ================== [PASSED] drm_gem_shmem ==================
[18:05:15] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[18:05:15] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[18:05:15] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[18:05:15] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[18:05:15] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[18:05:15] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[18:05:15] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[18:05:15] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[18:05:15] [PASSED] Automatic
[18:05:15] [PASSED] Full
[18:05:15] [PASSED] Limited 16:235
[18:05:15] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[18:05:15] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[18:05:15] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[18:05:15] [PASSED] drm_test_check_disable_connector
[18:05:15] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[18:05:15] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[18:05:15] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[18:05:15] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[18:05:15] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[18:05:15] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[18:05:15] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[18:05:15] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[18:05:15] [PASSED] drm_test_check_output_bpc_dvi
[18:05:15] [PASSED] drm_test_check_output_bpc_format_vic_1
[18:05:15] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[18:05:15] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[18:05:15] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[18:05:15] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[18:05:15] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[18:05:15] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[18:05:15] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[18:05:15] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[18:05:15] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[18:05:15] [PASSED] drm_test_check_broadcast_rgb_value
[18:05:15] [PASSED] drm_test_check_bpc_8_value
[18:05:15] [PASSED] drm_test_check_bpc_10_value
[18:05:15] [PASSED] drm_test_check_bpc_12_value
[18:05:15] [PASSED] drm_test_check_format_value
[18:05:15] [PASSED] drm_test_check_tmds_char_value
[18:05:15] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[18:05:15] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[18:05:15] [PASSED] drm_test_check_mode_valid
[18:05:15] [PASSED] drm_test_check_mode_valid_reject
[18:05:15] [PASSED] drm_test_check_mode_valid_reject_rate
[18:05:15] [PASSED] drm_test_check_mode_valid_reject_max_clock
[18:05:15] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[18:05:15] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[18:05:15] [PASSED] drm_test_check_infoframes
[18:05:15] [PASSED] drm_test_check_reject_avi_infoframe
[18:05:15] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[18:05:15] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[18:05:15] [PASSED] drm_test_check_reject_audio_infoframe
[18:05:15] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[18:05:15] ================= drm_managed (2 subtests) =================
[18:05:15] [PASSED] drm_test_managed_release_action
[18:05:15] [PASSED] drm_test_managed_run_action
[18:05:15] =================== [PASSED] drm_managed ===================
[18:05:15] =================== drm_mm (6 subtests) ====================
[18:05:15] [PASSED] drm_test_mm_init
[18:05:15] [PASSED] drm_test_mm_debug
[18:05:15] [PASSED] drm_test_mm_align32
[18:05:15] [PASSED] drm_test_mm_align64
[18:05:15] [PASSED] drm_test_mm_lowest
[18:05:15] [PASSED] drm_test_mm_highest
[18:05:15] ===================== [PASSED] drm_mm ======================
[18:05:15] ============= drm_modes_analog_tv (5 subtests) =============
[18:05:15] [PASSED] drm_test_modes_analog_tv_mono_576i
[18:05:15] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[18:05:15] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[18:05:15] [PASSED] drm_test_modes_analog_tv_pal_576i
[18:05:15] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[18:05:15] =============== [PASSED] drm_modes_analog_tv ===============
[18:05:15] ============== drm_plane_helper (2 subtests) ===============
[18:05:15] =============== drm_test_check_plane_state ================
[18:05:15] [PASSED] clipping_simple
[18:05:15] [PASSED] clipping_rotate_reflect
[18:05:15] [PASSED] positioning_simple
[18:05:15] [PASSED] upscaling
[18:05:15] [PASSED] downscaling
[18:05:15] [PASSED] rounding1
[18:05:15] [PASSED] rounding2
[18:05:15] [PASSED] rounding3
[18:05:15] [PASSED] rounding4
[18:05:15] =========== [PASSED] drm_test_check_plane_state ============
[18:05:15] =========== drm_test_check_invalid_plane_state ============
[18:05:15] [PASSED] positioning_invalid
[18:05:15] [PASSED] upscaling_invalid
[18:05:15] [PASSED] downscaling_invalid
[18:05:15] ======= [PASSED] drm_test_check_invalid_plane_state ========
[18:05:15] ================ [PASSED] drm_plane_helper =================
[18:05:15] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[18:05:15] ====== drm_test_connector_helper_tv_get_modes_check =======
[18:05:15] [PASSED] None
[18:05:15] [PASSED] PAL
[18:05:15] [PASSED] NTSC
[18:05:15] [PASSED] Both, NTSC Default
[18:05:15] [PASSED] Both, PAL Default
[18:05:15] [PASSED] Both, NTSC Default, with PAL on command-line
[18:05:15] [PASSED] Both, PAL Default, with NTSC on command-line
[18:05:15] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[18:05:15] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[18:05:15] ================== drm_rect (9 subtests) ===================
[18:05:15] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[18:05:15] [PASSED] drm_test_rect_clip_scaled_not_clipped
[18:05:15] [PASSED] drm_test_rect_clip_scaled_clipped
[18:05:15] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[18:05:15] ================= drm_test_rect_intersect =================
[18:05:15] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[18:05:15] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[18:05:15] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[18:05:15] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[18:05:15] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[18:05:15] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[18:05:15] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[18:05:15] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[18:05:15] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[18:05:15] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[18:05:15] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[18:05:15] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[18:05:15] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[18:05:15] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[18:05:15] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[18:05:15] ============= [PASSED] drm_test_rect_intersect =============
[18:05:15] ================ drm_test_rect_calc_hscale ================
[18:05:15] [PASSED] normal use
[18:05:15] [PASSED] out of max range
[18:05:15] [PASSED] out of min range
[18:05:15] [PASSED] zero dst
[18:05:15] [PASSED] negative src
[18:05:15] [PASSED] negative dst
[18:05:15] ============ [PASSED] drm_test_rect_calc_hscale ============
[18:05:15] ================ drm_test_rect_calc_vscale ================
[18:05:15] [PASSED] normal use
[18:05:15] [PASSED] out of max range
[18:05:15] [PASSED] out of min range
[18:05:15] [PASSED] zero dst
[18:05:15] [PASSED] negative src
[18:05:15] [PASSED] negative dst
stty: 'standard input': Inappropriate ioctl for device
[18:05:15] ============ [PASSED] drm_test_rect_calc_vscale ============
[18:05:15] ================== drm_test_rect_rotate ===================
[18:05:15] [PASSED] reflect-x
[18:05:15] [PASSED] reflect-y
[18:05:15] [PASSED] rotate-0
[18:05:15] [PASSED] rotate-90
[18:05:15] [PASSED] rotate-180
[18:05:15] [PASSED] rotate-270
[18:05:15] ============== [PASSED] drm_test_rect_rotate ===============
[18:05:15] ================ drm_test_rect_rotate_inv =================
[18:05:15] [PASSED] reflect-x
[18:05:15] [PASSED] reflect-y
[18:05:15] [PASSED] rotate-0
[18:05:15] [PASSED] rotate-90
[18:05:15] [PASSED] rotate-180
[18:05:15] [PASSED] rotate-270
[18:05:15] ============ [PASSED] drm_test_rect_rotate_inv =============
[18:05:15] ==================== [PASSED] drm_rect =====================
[18:05:15] ============ drm_sysfb_modeset_test (1 subtest) ============
[18:05:15] ============ drm_test_sysfb_build_fourcc_list =============
[18:05:15] [PASSED] no native formats
[18:05:15] [PASSED] XRGB8888 as native format
[18:05:15] [PASSED] remove duplicates
[18:05:15] [PASSED] convert alpha formats
[18:05:15] [PASSED] random formats
[18:05:15] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[18:05:15] ============= [PASSED] drm_sysfb_modeset_test ==============
[18:05:15] ================== drm_fixp (2 subtests) ===================
[18:05:15] [PASSED] drm_test_int2fixp
[18:05:15] [PASSED] drm_test_sm2fixp
[18:05:15] ==================== [PASSED] drm_fixp =====================
[18:05:15] ============================================================
[18:05:15] Testing complete. Ran 621 tests: passed: 621
[18:05:15] Elapsed time: 26.366s total, 1.719s configuring, 24.476s building, 0.140s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[18:05:15] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:05:17] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[18:05:26] Starting KUnit Kernel (1/1)...
[18:05:26] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:05:26] ================= ttm_device (5 subtests) ==================
[18:05:26] [PASSED] ttm_device_init_basic
[18:05:26] [PASSED] ttm_device_init_multiple
[18:05:26] [PASSED] ttm_device_fini_basic
[18:05:26] [PASSED] ttm_device_init_no_vma_man
[18:05:26] ================== ttm_device_init_pools ==================
[18:05:26] [PASSED] No DMA allocations, no DMA32 required
[18:05:26] [PASSED] DMA allocations, DMA32 required
[18:05:26] [PASSED] No DMA allocations, DMA32 required
[18:05:26] [PASSED] DMA allocations, no DMA32 required
[18:05:26] ============== [PASSED] ttm_device_init_pools ==============
[18:05:26] =================== [PASSED] ttm_device ====================
[18:05:26] ================== ttm_pool (8 subtests) ===================
[18:05:26] ================== ttm_pool_alloc_basic ===================
[18:05:26] [PASSED] One page
[18:05:26] [PASSED] More than one page
[18:05:26] [PASSED] Above the allocation limit
[18:05:26] [PASSED] One page, with coherent DMA mappings enabled
[18:05:26] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[18:05:26] ============== [PASSED] ttm_pool_alloc_basic ===============
[18:05:26] ============== ttm_pool_alloc_basic_dma_addr ==============
[18:05:26] [PASSED] One page
[18:05:27] [PASSED] More than one page
[18:05:27] [PASSED] Above the allocation limit
[18:05:27] [PASSED] One page, with coherent DMA mappings enabled
[18:05:27] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[18:05:27] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[18:05:27] [PASSED] ttm_pool_alloc_order_caching_match
[18:05:27] [PASSED] ttm_pool_alloc_caching_mismatch
[18:05:27] [PASSED] ttm_pool_alloc_order_mismatch
[18:05:27] [PASSED] ttm_pool_free_dma_alloc
[18:05:27] [PASSED] ttm_pool_free_no_dma_alloc
[18:05:27] [PASSED] ttm_pool_fini_basic
[18:05:27] ==================== [PASSED] ttm_pool =====================
[18:05:27] ================ ttm_resource (8 subtests) =================
[18:05:27] ================= ttm_resource_init_basic =================
[18:05:27] [PASSED] Init resource in TTM_PL_SYSTEM
[18:05:27] [PASSED] Init resource in TTM_PL_VRAM
[18:05:27] [PASSED] Init resource in a private placement
[18:05:27] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[18:05:27] ============= [PASSED] ttm_resource_init_basic =============
[18:05:27] [PASSED] ttm_resource_init_pinned
[18:05:27] [PASSED] ttm_resource_fini_basic
[18:05:27] [PASSED] ttm_resource_manager_init_basic
[18:05:27] [PASSED] ttm_resource_manager_usage_basic
[18:05:27] [PASSED] ttm_resource_manager_set_used_basic
[18:05:27] [PASSED] ttm_sys_man_alloc_basic
[18:05:27] [PASSED] ttm_sys_man_free_basic
[18:05:27] ================== [PASSED] ttm_resource ===================
[18:05:27] =================== ttm_tt (15 subtests) ===================
[18:05:27] ==================== ttm_tt_init_basic ====================
[18:05:27] [PASSED] Page-aligned size
[18:05:27] [PASSED] Extra pages requested
[18:05:27] ================ [PASSED] ttm_tt_init_basic ================
[18:05:27] [PASSED] ttm_tt_init_misaligned
[18:05:27] [PASSED] ttm_tt_fini_basic
[18:05:27] [PASSED] ttm_tt_fini_sg
[18:05:27] [PASSED] ttm_tt_fini_shmem
[18:05:27] [PASSED] ttm_tt_create_basic
[18:05:27] [PASSED] ttm_tt_create_invalid_bo_type
[18:05:27] [PASSED] ttm_tt_create_ttm_exists
[18:05:27] [PASSED] ttm_tt_create_failed
[18:05:27] [PASSED] ttm_tt_destroy_basic
[18:05:27] [PASSED] ttm_tt_populate_null_ttm
[18:05:27] [PASSED] ttm_tt_populate_populated_ttm
[18:05:27] [PASSED] ttm_tt_unpopulate_basic
[18:05:27] [PASSED] ttm_tt_unpopulate_empty_ttm
[18:05:27] [PASSED] ttm_tt_swapin_basic
[18:05:27] ===================== [PASSED] ttm_tt ======================
[18:05:27] =================== ttm_bo (14 subtests) ===================
[18:05:27] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[18:05:27] [PASSED] Cannot be interrupted and sleeps
[18:05:27] [PASSED] Cannot be interrupted, locks straight away
[18:05:27] [PASSED] Can be interrupted, sleeps
[18:05:27] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[18:05:27] [PASSED] ttm_bo_reserve_locked_no_sleep
[18:05:27] [PASSED] ttm_bo_reserve_no_wait_ticket
[18:05:27] [PASSED] ttm_bo_reserve_double_resv
[18:05:27] [PASSED] ttm_bo_reserve_interrupted
[18:05:27] [PASSED] ttm_bo_reserve_deadlock
[18:05:27] [PASSED] ttm_bo_unreserve_basic
[18:05:27] [PASSED] ttm_bo_unreserve_pinned
[18:05:27] [PASSED] ttm_bo_unreserve_bulk
[18:05:27] [PASSED] ttm_bo_fini_basic
[18:05:27] [PASSED] ttm_bo_fini_shared_resv
[18:05:27] [PASSED] ttm_bo_pin_basic
[18:05:27] [PASSED] ttm_bo_pin_unpin_resource
[18:05:27] [PASSED] ttm_bo_multiple_pin_one_unpin
[18:05:27] ===================== [PASSED] ttm_bo ======================
[18:05:27] ============== ttm_bo_validate (22 subtests) ===============
[18:05:27] ============== ttm_bo_init_reserved_sys_man ===============
[18:05:27] [PASSED] Buffer object for userspace
[18:05:27] [PASSED] Kernel buffer object
[18:05:27] [PASSED] Shared buffer object
[18:05:27] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[18:05:27] ============== ttm_bo_init_reserved_mock_man ==============
[18:05:27] [PASSED] Buffer object for userspace
[18:05:27] [PASSED] Kernel buffer object
[18:05:27] [PASSED] Shared buffer object
[18:05:27] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[18:05:27] [PASSED] ttm_bo_init_reserved_resv
[18:05:27] ================== ttm_bo_validate_basic ==================
[18:05:27] [PASSED] Buffer object for userspace
[18:05:27] [PASSED] Kernel buffer object
[18:05:27] [PASSED] Shared buffer object
[18:05:27] ============== [PASSED] ttm_bo_validate_basic ==============
[18:05:27] [PASSED] ttm_bo_validate_invalid_placement
[18:05:27] ============= ttm_bo_validate_same_placement ==============
[18:05:27] [PASSED] System manager
[18:05:27] [PASSED] VRAM manager
[18:05:27] ========= [PASSED] ttm_bo_validate_same_placement ==========
[18:05:27] [PASSED] ttm_bo_validate_failed_alloc
[18:05:27] [PASSED] ttm_bo_validate_pinned
[18:05:27] [PASSED] ttm_bo_validate_busy_placement
[18:05:27] ================ ttm_bo_validate_multihop =================
[18:05:27] [PASSED] Buffer object for userspace
[18:05:27] [PASSED] Kernel buffer object
[18:05:27] [PASSED] Shared buffer object
[18:05:27] ============ [PASSED] ttm_bo_validate_multihop =============
[18:05:27] ========== ttm_bo_validate_no_placement_signaled ==========
[18:05:27] [PASSED] Buffer object in system domain, no page vector
[18:05:27] [PASSED] Buffer object in system domain with an existing page vector
[18:05:27] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[18:05:27] ======== ttm_bo_validate_no_placement_not_signaled ========
[18:05:27] [PASSED] Buffer object for userspace
[18:05:27] [PASSED] Kernel buffer object
[18:05:27] [PASSED] Shared buffer object
[18:05:27] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[18:05:27] [PASSED] ttm_bo_validate_move_fence_signaled
[18:05:27] ========= ttm_bo_validate_move_fence_not_signaled =========
[18:05:27] [PASSED] Waits for GPU
[18:05:27] [PASSED] Tries to lock straight away
[18:05:27] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[18:05:27] [PASSED] ttm_bo_validate_swapout
[18:05:27] [PASSED] ttm_bo_validate_happy_evict
[18:05:27] [PASSED] ttm_bo_validate_all_pinned_evict
[18:05:27] [PASSED] ttm_bo_validate_allowed_only_evict
[18:05:27] [PASSED] ttm_bo_validate_deleted_evict
[18:05:27] [PASSED] ttm_bo_validate_busy_domain_evict
[18:05:27] [PASSED] ttm_bo_validate_evict_gutting
[18:05:27] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[18:05:27] ================= [PASSED] ttm_bo_validate =================
[18:05:27] ============================================================
[18:05:27] Testing complete. Ran 102 tests: passed: 102
[18:05:27] Elapsed time: 11.464s total, 1.695s configuring, 9.502s building, 0.229s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 13+ messages in thread
* ✓ Xe.CI.BAT: success for drm/i915/casf: Integrate the sharpness filter properly into the scaler code (rev2)
2026-04-07 17:52 [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
` (9 preceding siblings ...)
2026-04-07 18:05 ` ✓ CI.KUnit: success for drm/i915/casf: Integrate the sharpness filter properly into the scaler code (rev2) Patchwork
@ 2026-04-07 18:54 ` Patchwork
2026-04-07 21:32 ` ✓ Xe.CI.FULL: " Patchwork
11 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2026-04-07 18:54 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 905 bytes --]
== Series Details ==
Series: drm/i915/casf: Integrate the sharpness filter properly into the scaler code (rev2)
URL : https://patchwork.freedesktop.org/series/163952/
State : success
== Summary ==
CI Bug Log - changes from xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7_BAT -> xe-pw-163952v2_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (14 -> 14)
------------------------------
No changes in participating hosts
Changes
-------
No changes found
Build changes
-------------
* Linux: xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7 -> xe-pw-163952v2
IGT_8850: 8850
xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7: 87b52c2ff4f00eff41866d728f82d2b109c397f7
xe-pw-163952v2: 163952v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/index.html
[-- Attachment #2: Type: text/html, Size: 1453 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* ✓ Xe.CI.FULL: success for drm/i915/casf: Integrate the sharpness filter properly into the scaler code (rev2)
2026-04-07 17:52 [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
` (10 preceding siblings ...)
2026-04-07 18:54 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-04-07 21:32 ` Patchwork
11 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2026-04-07 21:32 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 22484 bytes --]
== Series Details ==
Series: drm/i915/casf: Integrate the sharpness filter properly into the scaler code (rev2)
URL : https://patchwork.freedesktop.org/series/163952/
State : success
== Summary ==
CI Bug Log - changes from xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7_FULL -> xe-pw-163952v2_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-163952v2_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@linear-8bpp-rotate-270:
- shard-bmg: NOTRUN -> [SKIP][1] ([Intel XE#2327]) +1 other test skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_big_fb@linear-8bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-bmg: NOTRUN -> [SKIP][2] ([Intel XE#1124]) +1 other test skip
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_bw@linear-tiling-2-displays-3840x2160p:
- shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#367] / [Intel XE#7354])
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_bw@linear-tiling-2-displays-3840x2160p.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc:
- shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#2887]) +4 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_chamelium_hpd@dp-hpd-after-suspend:
- shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#2252]) +1 other test skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html
* igt@kms_content_protection@dp-mst-lic-type-1:
- shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#2390] / [Intel XE#6974])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_content_protection@dp-mst-lic-type-1.html
* igt@kms_cursor_crc@cursor-onscreen-512x170:
- shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#2321] / [Intel XE#7355])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_cursor_crc@cursor-onscreen-512x170.html
* igt@kms_cursor_crc@cursor-rapid-movement-64x21:
- shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#2320])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_cursor_crc@cursor-rapid-movement-64x21.html
* igt@kms_dp_linktrain_fallback@dsc-fallback:
- shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#4331] / [Intel XE#7227])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_dp_linktrain_fallback@dsc-fallback.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#4422] / [Intel XE#7442])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html
* igt@kms_flip@basic-flip-vs-wf_vblank:
- shard-lnl: [PASS][11] -> [FAIL][12] ([Intel XE#3098]) +1 other test fail
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-lnl-4/igt@kms_flip@basic-flip-vs-wf_vblank.html
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-lnl-1/igt@kms_flip@basic-flip-vs-wf_vblank.html
* igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#4141])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-pgflip-blt:
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#2311]) +6 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#2313]) +3 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#7283])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier.html
* igt@kms_psr@pr-primary-blt:
- shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#2234] / [Intel XE#2850]) +1 other test skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@kms_psr@pr-primary-blt.html
* igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1:
- shard-lnl: [PASS][18] -> [FAIL][19] ([Intel XE#2142]) +1 other test fail
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-lnl-5/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-lnl-4/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html
* igt@xe_eudebug_online@breakpoint-not-in-debug-mode:
- shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#7636]) +1 other test skip
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@xe_eudebug_online@breakpoint-not-in-debug-mode.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][21] ([Intel XE#2322] / [Intel XE#7372]) +1 other test skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate.html
* igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-rebind-prefetch:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#7136]) +1 other test skip
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-rebind-prefetch.html
* igt@xe_exec_multi_queue@few-execs-preempt-mode-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#6874]) +4 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@xe_exec_multi_queue@few-execs-preempt-mode-userptr-invalidate.html
* igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma:
- shard-lnl: [PASS][24] -> [FAIL][25] ([Intel XE#5625])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-lnl-8/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma.html
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-lnl-4/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma.html
* igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#7138])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race.html
* igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add:
- shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#6281] / [Intel XE#7426])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add.html
* igt@xe_media_fill@media-fill:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#2459] / [Intel XE#2596] / [Intel XE#7321] / [Intel XE#7453])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@xe_media_fill@media-fill.html
* igt@xe_pat@display-vs-wb-transient:
- shard-bmg: [PASS][29] -> [INCOMPLETE][30] ([Intel XE#6652])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-2/igt@xe_pat@display-vs-wb-transient.html
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-2/igt@xe_pat@display-vs-wb-transient.html
* igt@xe_pxp@pxp-stale-bo-bind-post-suspend:
- shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#4733] / [Intel XE#7417])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@xe_pxp@pxp-stale-bo-bind-post-suspend.html
* igt@xe_wedged@basic-wedged:
- shard-bmg: [PASS][32] -> [ABORT][33] ([Intel XE#7578])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-5/igt@xe_wedged@basic-wedged.html
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@xe_wedged@basic-wedged.html
#### Possible fixes ####
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-bmg: [INCOMPLETE][34] ([Intel XE#6321]) -> [PASS][35]
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-9/igt@xe_evict@evict-mixed-many-threads-small.html
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-7/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_exec_system_allocator@fault-threads-same-page-benchmark:
- shard-bmg: [TIMEOUT][36] -> [PASS][37]
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-4/igt@xe_exec_system_allocator@fault-threads-same-page-benchmark.html
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-5/igt@xe_exec_system_allocator@fault-threads-same-page-benchmark.html
* igt@xe_module_load@load:
- shard-bmg: ([PASS][38], [PASS][39], [PASS][40], [PASS][41], [PASS][42], [PASS][43], [PASS][44], [PASS][45], [PASS][46], [PASS][47], [PASS][48], [PASS][49], [PASS][50], [PASS][51], [SKIP][52], [PASS][53], [PASS][54], [PASS][55], [PASS][56], [PASS][57], [PASS][58], [PASS][59], [PASS][60], [PASS][61], [PASS][62], [PASS][63]) ([Intel XE#2457] / [Intel XE#7405]) -> ([PASS][64], [PASS][65], [PASS][66], [PASS][67], [PASS][68], [PASS][69], [PASS][70], [PASS][71], [PASS][72], [PASS][73], [PASS][74], [PASS][75], [PASS][76], [PASS][77], [PASS][78], [PASS][79], [PASS][80], [PASS][81], [PASS][82], [PASS][83], [PASS][84], [PASS][85], [PASS][86], [PASS][87], [PASS][88])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-4/igt@xe_module_load@load.html
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-6/igt@xe_module_load@load.html
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-8/igt@xe_module_load@load.html
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-8/igt@xe_module_load@load.html
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-2/igt@xe_module_load@load.html
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-2/igt@xe_module_load@load.html
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-4/igt@xe_module_load@load.html
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-4/igt@xe_module_load@load.html
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-2/igt@xe_module_load@load.html
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-8/igt@xe_module_load@load.html
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-5/igt@xe_module_load@load.html
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-9/igt@xe_module_load@load.html
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-9/igt@xe_module_load@load.html
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-9/igt@xe_module_load@load.html
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-5/igt@xe_module_load@load.html
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-3/igt@xe_module_load@load.html
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-3/igt@xe_module_load@load.html
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-5/igt@xe_module_load@load.html
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-5/igt@xe_module_load@load.html
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-10/igt@xe_module_load@load.html
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-10/igt@xe_module_load@load.html
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-1/igt@xe_module_load@load.html
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-1/igt@xe_module_load@load.html
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-7/igt@xe_module_load@load.html
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-7/igt@xe_module_load@load.html
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-6/igt@xe_module_load@load.html
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@xe_module_load@load.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-10/igt@xe_module_load@load.html
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-1/igt@xe_module_load@load.html
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-3/igt@xe_module_load@load.html
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-3/igt@xe_module_load@load.html
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-3/igt@xe_module_load@load.html
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-7/igt@xe_module_load@load.html
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-9/igt@xe_module_load@load.html
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@xe_module_load@load.html
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@xe_module_load@load.html
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-9/igt@xe_module_load@load.html
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-10/igt@xe_module_load@load.html
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-5/igt@xe_module_load@load.html
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-10/igt@xe_module_load@load.html
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-8/igt@xe_module_load@load.html
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-8/igt@xe_module_load@load.html
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-8/igt@xe_module_load@load.html
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-1/igt@xe_module_load@load.html
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-7/igt@xe_module_load@load.html
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-5/igt@xe_module_load@load.html
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-5/igt@xe_module_load@load.html
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-2/igt@xe_module_load@load.html
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-2/igt@xe_module_load@load.html
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-1/igt@xe_module_load@load.html
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-7/igt@xe_module_load@load.html
* igt@xe_pat@pt-caching:
- shard-bmg: [ABORT][89] -> [PASS][90]
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-1/igt@xe_pat@pt-caching.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-6/igt@xe_pat@pt-caching.html
#### Warnings ####
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [SKIP][91] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][92] ([Intel XE#1729] / [Intel XE#7424])
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-5/igt@kms_tiled_display@basic-test-pattern.html
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-10/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-bmg: [SKIP][93] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][94] ([Intel XE#2426] / [Intel XE#5848])
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-6/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#2142]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2142
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2457]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2457
[Intel XE#2459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2459
[Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
[Intel XE#2596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2596
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#3098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3098
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4331]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4331
[Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#5625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5625
[Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
[Intel XE#6281]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6281
[Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
[Intel XE#6652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6652
[Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
[Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
[Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
[Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
[Intel XE#7227]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7227
[Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
[Intel XE#7321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7321
[Intel XE#7354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7354
[Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
[Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[Intel XE#7405]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7405
[Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
[Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
[Intel XE#7426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7426
[Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
[Intel XE#7442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7442
[Intel XE#7453]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7453
[Intel XE#7578]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7578
[Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636
Build changes
-------------
* Linux: xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7 -> xe-pw-163952v2
IGT_8850: 8850
xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7: 87b52c2ff4f00eff41866d728f82d2b109c397f7
xe-pw-163952v2: 163952v2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163952v2/index.html
[-- Attachment #2: Type: text/html, Size: 24041 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-04-07 21:32 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-07 17:52 [PATCH v2 0/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 1/9] drm/i915/casf: s/casf_enable/enable/ Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 2/9] drm/i915/casf: Make a proper hw state copy of the sharpness_strength Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 3/9] drm/i915/casf: Move the casf state to better place Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 4/9] drm/i915/casf: Extract scaler_has_casf() Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 5/9] drm/i915/casf: Handle CASF in skl_scaler_get_filter_select() Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 6/9] drm/i915/casf: Constify crtc_state Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 7/9] drm/i915/casf: Remove redundant argument from intel_casf_filter_lut_load() Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 8/9] drm/i915/pfit: Call intel_pfit_compute_config() unconditionally on (e)DP/HDMI Ville Syrjala
2026-04-07 17:52 ` [PATCH v2 9/9] drm/i915/casf: Integrate the sharpness filter properly into the scaler code Ville Syrjala
2026-04-07 18:05 ` ✓ CI.KUnit: success for drm/i915/casf: Integrate the sharpness filter properly into the scaler code (rev2) Patchwork
2026-04-07 18:54 ` ✓ Xe.CI.BAT: " Patchwork
2026-04-07 21:32 ` ✓ Xe.CI.FULL: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox