Commit 7b3cb17a authored by Maarten Lankhorst's avatar Maarten Lankhorst

drm/i915: Perform automated conversions for plane uapi/hw split, base -> hw.

Split up plane_state->base to hw. This is done using the following patch:

@@
struct intel_plane_state *T;
identifier x =~ "^(crtc|fb|alpha|pixel_blend_mode|rotation|color_encoding|color_range)$";
@@
-T->base.x
+T->hw.x
Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191031112610.27608-9-maarten.lankhorst@linux.intel.com
parent a456f65f
...@@ -283,9 +283,9 @@ static void intel_atomic_setup_scaler(struct intel_crtc_scaler_state *scaler_sta ...@@ -283,9 +283,9 @@ static void intel_atomic_setup_scaler(struct intel_crtc_scaler_state *scaler_sta
return; return;
/* set scaler mode */ /* set scaler mode */
if (plane_state && plane_state->base.fb && if (plane_state && plane_state->hw.fb &&
plane_state->base.fb->format->is_yuv && plane_state->hw.fb->format->is_yuv &&
plane_state->base.fb->format->num_planes > 1) { plane_state->hw.fb->format->num_planes > 1) {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
if (IS_GEN(dev_priv, 9) && if (IS_GEN(dev_priv, 9) &&
!IS_GEMINILAKE(dev_priv)) { !IS_GEMINILAKE(dev_priv)) {
......
...@@ -118,7 +118,7 @@ intel_plane_destroy_state(struct drm_plane *plane, ...@@ -118,7 +118,7 @@ intel_plane_destroy_state(struct drm_plane *plane,
unsigned int intel_plane_data_rate(const struct intel_crtc_state *crtc_state, unsigned int intel_plane_data_rate(const struct intel_crtc_state *crtc_state,
const struct intel_plane_state *plane_state) const struct intel_plane_state *plane_state)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int cpp; unsigned int cpp;
if (!plane_state->base.visible) if (!plane_state->base.visible)
...@@ -144,7 +144,7 @@ bool intel_plane_calc_min_cdclk(struct intel_atomic_state *state, ...@@ -144,7 +144,7 @@ bool intel_plane_calc_min_cdclk(struct intel_atomic_state *state,
struct drm_i915_private *dev_priv = to_i915(plane->base.dev); struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
const struct intel_plane_state *plane_state = const struct intel_plane_state *plane_state =
intel_atomic_get_new_plane_state(state, plane); intel_atomic_get_new_plane_state(state, plane);
struct intel_crtc *crtc = to_intel_crtc(plane_state->base.crtc); struct intel_crtc *crtc = to_intel_crtc(plane_state->hw.crtc);
struct intel_crtc_state *crtc_state; struct intel_crtc_state *crtc_state;
if (!plane_state->base.visible || !plane->min_cdclk) if (!plane_state->base.visible || !plane->min_cdclk)
...@@ -182,7 +182,7 @@ int intel_plane_atomic_check_with_state(const struct intel_crtc_state *old_crtc_ ...@@ -182,7 +182,7 @@ int intel_plane_atomic_check_with_state(const struct intel_crtc_state *old_crtc_
struct intel_plane_state *new_plane_state) struct intel_plane_state *new_plane_state)
{ {
struct intel_plane *plane = to_intel_plane(new_plane_state->base.plane); struct intel_plane *plane = to_intel_plane(new_plane_state->base.plane);
const struct drm_framebuffer *fb = new_plane_state->base.fb; const struct drm_framebuffer *fb = new_plane_state->hw.fb;
int ret; int ret;
new_crtc_state->active_planes &= ~BIT(plane->id); new_crtc_state->active_planes &= ~BIT(plane->id);
...@@ -192,7 +192,7 @@ int intel_plane_atomic_check_with_state(const struct intel_crtc_state *old_crtc_ ...@@ -192,7 +192,7 @@ int intel_plane_atomic_check_with_state(const struct intel_crtc_state *old_crtc_
new_crtc_state->min_cdclk[plane->id] = 0; new_crtc_state->min_cdclk[plane->id] = 0;
new_plane_state->base.visible = false; new_plane_state->base.visible = false;
if (!new_plane_state->base.crtc && !old_plane_state->base.crtc) if (!new_plane_state->hw.crtc && !old_plane_state->hw.crtc)
return 0; return 0;
ret = plane->check_plane(new_crtc_state, new_plane_state); ret = plane->check_plane(new_crtc_state, new_plane_state);
......
...@@ -2215,7 +2215,7 @@ u32 intel_fb_xy_to_linear(int x, int y, ...@@ -2215,7 +2215,7 @@ u32 intel_fb_xy_to_linear(int x, int y,
const struct intel_plane_state *state, const struct intel_plane_state *state,
int color_plane) int color_plane)
{ {
const struct drm_framebuffer *fb = state->base.fb; const struct drm_framebuffer *fb = state->hw.fb;
unsigned int cpp = fb->format->cpp[color_plane]; unsigned int cpp = fb->format->cpp[color_plane];
unsigned int pitch = state->color_plane[color_plane].stride; unsigned int pitch = state->color_plane[color_plane].stride;
...@@ -2316,8 +2316,8 @@ static u32 intel_plane_adjust_aligned_offset(int *x, int *y, ...@@ -2316,8 +2316,8 @@ static u32 intel_plane_adjust_aligned_offset(int *x, int *y,
int color_plane, int color_plane,
u32 old_offset, u32 new_offset) u32 old_offset, u32 new_offset)
{ {
return intel_adjust_aligned_offset(x, y, state->base.fb, color_plane, return intel_adjust_aligned_offset(x, y, state->hw.fb, color_plane,
state->base.rotation, state->hw.rotation,
state->color_plane[color_plane].stride, state->color_plane[color_plane].stride,
old_offset, new_offset); old_offset, new_offset);
} }
...@@ -2393,8 +2393,8 @@ static u32 intel_plane_compute_aligned_offset(int *x, int *y, ...@@ -2393,8 +2393,8 @@ static u32 intel_plane_compute_aligned_offset(int *x, int *y,
{ {
struct intel_plane *intel_plane = to_intel_plane(state->base.plane); struct intel_plane *intel_plane = to_intel_plane(state->base.plane);
struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev); struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev);
const struct drm_framebuffer *fb = state->base.fb; const struct drm_framebuffer *fb = state->hw.fb;
unsigned int rotation = state->base.rotation; unsigned int rotation = state->hw.rotation;
int pitch = state->color_plane[color_plane].stride; int pitch = state->color_plane[color_plane].stride;
u32 alignment; u32 alignment;
...@@ -2581,7 +2581,7 @@ bool intel_plane_can_remap(const struct intel_plane_state *plane_state) ...@@ -2581,7 +2581,7 @@ bool intel_plane_can_remap(const struct intel_plane_state *plane_state)
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
struct drm_i915_private *dev_priv = to_i915(plane->base.dev); struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
int i; int i;
/* We don't want to deal with remapping with cursors */ /* We don't want to deal with remapping with cursors */
...@@ -2620,8 +2620,8 @@ bool intel_plane_can_remap(const struct intel_plane_state *plane_state) ...@@ -2620,8 +2620,8 @@ bool intel_plane_can_remap(const struct intel_plane_state *plane_state)
static bool intel_plane_needs_remap(const struct intel_plane_state *plane_state) static bool intel_plane_needs_remap(const struct intel_plane_state *plane_state)
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
u32 stride, max_stride; u32 stride, max_stride;
/* /*
...@@ -2812,10 +2812,10 @@ intel_plane_remap_gtt(struct intel_plane_state *plane_state) ...@@ -2812,10 +2812,10 @@ intel_plane_remap_gtt(struct intel_plane_state *plane_state)
{ {
struct drm_i915_private *dev_priv = struct drm_i915_private *dev_priv =
to_i915(plane_state->base.plane->dev); to_i915(plane_state->base.plane->dev);
struct drm_framebuffer *fb = plane_state->base.fb; struct drm_framebuffer *fb = plane_state->hw.fb;
struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb); struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb);
struct intel_rotation_info *info = &plane_state->view.rotated; struct intel_rotation_info *info = &plane_state->view.rotated;
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
int i, num_planes = fb->format->num_planes; int i, num_planes = fb->format->num_planes;
unsigned int tile_size = intel_tile_size(dev_priv); unsigned int tile_size = intel_tile_size(dev_priv);
unsigned int src_x, src_y; unsigned int src_x, src_y;
...@@ -2921,8 +2921,8 @@ static int ...@@ -2921,8 +2921,8 @@ static int
intel_plane_compute_gtt(struct intel_plane_state *plane_state) intel_plane_compute_gtt(struct intel_plane_state *plane_state)
{ {
const struct intel_framebuffer *fb = const struct intel_framebuffer *fb =
to_intel_framebuffer(plane_state->base.fb); to_intel_framebuffer(plane_state->hw.fb);
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
int i, num_planes; int i, num_planes;
if (!fb) if (!fb)
...@@ -3225,7 +3225,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc, ...@@ -3225,7 +3225,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
continue; continue;
if (intel_plane_ggtt_offset(state) == plane_config->base) { if (intel_plane_ggtt_offset(state) == plane_config->base) {
fb = state->base.fb; fb = state->hw.fb;
drm_framebuffer_get(fb); drm_framebuffer_get(fb);
goto valid_fb; goto valid_fb;
} }
...@@ -3243,11 +3243,11 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc, ...@@ -3243,11 +3243,11 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
return; return;
valid_fb: valid_fb:
intel_state->base.rotation = plane_config->rotation; intel_state->hw.rotation = plane_config->rotation;
intel_fill_fb_ggtt_view(&intel_state->view, fb, intel_fill_fb_ggtt_view(&intel_state->view, fb,
intel_state->base.rotation); intel_state->hw.rotation);
intel_state->color_plane[0].stride = intel_state->color_plane[0].stride =
intel_fb_pitch(fb, 0, intel_state->base.rotation); intel_fb_pitch(fb, 0, intel_state->hw.rotation);
intel_state->vma = intel_state->vma =
intel_pin_and_fence_fb_obj(fb, intel_pin_and_fence_fb_obj(fb,
...@@ -3374,7 +3374,7 @@ static int icl_max_plane_height(void) ...@@ -3374,7 +3374,7 @@ static int icl_max_plane_height(void)
static bool skl_check_main_ccs_coordinates(struct intel_plane_state *plane_state, static bool skl_check_main_ccs_coordinates(struct intel_plane_state *plane_state,
int main_x, int main_y, u32 main_offset) int main_x, int main_y, u32 main_offset)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
int hsub = fb->format->hsub; int hsub = fb->format->hsub;
int vsub = fb->format->vsub; int vsub = fb->format->vsub;
int aux_x = plane_state->color_plane[1].x; int aux_x = plane_state->color_plane[1].x;
...@@ -3412,8 +3412,8 @@ static bool skl_check_main_ccs_coordinates(struct intel_plane_state *plane_state ...@@ -3412,8 +3412,8 @@ static bool skl_check_main_ccs_coordinates(struct intel_plane_state *plane_state
static int skl_check_main_surface(struct intel_plane_state *plane_state) static int skl_check_main_surface(struct intel_plane_state *plane_state)
{ {
struct drm_i915_private *dev_priv = to_i915(plane_state->base.plane->dev); struct drm_i915_private *dev_priv = to_i915(plane_state->base.plane->dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
int x = plane_state->base.src.x1 >> 16; int x = plane_state->base.src.x1 >> 16;
int y = plane_state->base.src.y1 >> 16; int y = plane_state->base.src.y1 >> 16;
int w = drm_rect_width(&plane_state->base.src) >> 16; int w = drm_rect_width(&plane_state->base.src) >> 16;
...@@ -3508,8 +3508,8 @@ static int skl_check_main_surface(struct intel_plane_state *plane_state) ...@@ -3508,8 +3508,8 @@ static int skl_check_main_surface(struct intel_plane_state *plane_state)
static int skl_check_nv12_aux_surface(struct intel_plane_state *plane_state) static int skl_check_nv12_aux_surface(struct intel_plane_state *plane_state)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
int max_width = skl_max_plane_width(fb, 1, rotation); int max_width = skl_max_plane_width(fb, 1, rotation);
int max_height = 4096; int max_height = 4096;
int x = plane_state->base.src.x1 >> 17; int x = plane_state->base.src.x1 >> 17;
...@@ -3537,7 +3537,7 @@ static int skl_check_nv12_aux_surface(struct intel_plane_state *plane_state) ...@@ -3537,7 +3537,7 @@ static int skl_check_nv12_aux_surface(struct intel_plane_state *plane_state)
static int skl_check_ccs_aux_surface(struct intel_plane_state *plane_state) static int skl_check_ccs_aux_surface(struct intel_plane_state *plane_state)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
int src_x = plane_state->base.src.x1 >> 16; int src_x = plane_state->base.src.x1 >> 16;
int src_y = plane_state->base.src.y1 >> 16; int src_y = plane_state->base.src.y1 >> 16;
int hsub = fb->format->hsub; int hsub = fb->format->hsub;
...@@ -3558,7 +3558,7 @@ static int skl_check_ccs_aux_surface(struct intel_plane_state *plane_state) ...@@ -3558,7 +3558,7 @@ static int skl_check_ccs_aux_surface(struct intel_plane_state *plane_state)
int skl_check_plane_surface(struct intel_plane_state *plane_state) int skl_check_plane_surface(struct intel_plane_state *plane_state)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
int ret; int ret;
ret = intel_plane_compute_gtt(plane_state); ret = intel_plane_compute_gtt(plane_state);
...@@ -3597,7 +3597,7 @@ static void i9xx_plane_ratio(const struct intel_crtc_state *crtc_state, ...@@ -3597,7 +3597,7 @@ static void i9xx_plane_ratio(const struct intel_crtc_state *crtc_state,
const struct intel_plane_state *plane_state, const struct intel_plane_state *plane_state,
unsigned int *num, unsigned int *den) unsigned int *num, unsigned int *den)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int cpp = fb->format->cpp[0]; unsigned int cpp = fb->format->cpp[0];
/* /*
...@@ -3690,8 +3690,8 @@ static u32 i9xx_plane_ctl(const struct intel_crtc_state *crtc_state, ...@@ -3690,8 +3690,8 @@ static u32 i9xx_plane_ctl(const struct intel_crtc_state *crtc_state,
{ {
struct drm_i915_private *dev_priv = struct drm_i915_private *dev_priv =
to_i915(plane_state->base.plane->dev); to_i915(plane_state->base.plane->dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
u32 dspcntr; u32 dspcntr;
dspcntr = DISPLAY_PLANE_ENABLE; dspcntr = DISPLAY_PLANE_ENABLE;
...@@ -3747,7 +3747,7 @@ int i9xx_check_plane_surface(struct intel_plane_state *plane_state) ...@@ -3747,7 +3747,7 @@ int i9xx_check_plane_surface(struct intel_plane_state *plane_state)
{ {
struct drm_i915_private *dev_priv = struct drm_i915_private *dev_priv =
to_i915(plane_state->base.plane->dev); to_i915(plane_state->base.plane->dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
int src_x, src_y, src_w; int src_x, src_y, src_w;
u32 offset; u32 offset;
int ret; int ret;
...@@ -3784,7 +3784,7 @@ int i9xx_check_plane_surface(struct intel_plane_state *plane_state) ...@@ -3784,7 +3784,7 @@ int i9xx_check_plane_surface(struct intel_plane_state *plane_state)
/* HSW/BDW do this automagically in hardware */ /* HSW/BDW do this automagically in hardware */
if (!IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv)) { if (!IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv)) {
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
int src_w = drm_rect_width(&plane_state->base.src) >> 16; int src_w = drm_rect_width(&plane_state->base.src) >> 16;
int src_h = drm_rect_height(&plane_state->base.src) >> 16; int src_h = drm_rect_height(&plane_state->base.src) >> 16;
...@@ -4037,8 +4037,8 @@ static unsigned int skl_plane_stride_mult(const struct drm_framebuffer *fb, ...@@ -4037,8 +4037,8 @@ static unsigned int skl_plane_stride_mult(const struct drm_framebuffer *fb,
u32 skl_plane_stride(const struct intel_plane_state *plane_state, u32 skl_plane_stride(const struct intel_plane_state *plane_state,
int color_plane) int color_plane)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
u32 stride = plane_state->color_plane[color_plane].stride; u32 stride = plane_state->color_plane[color_plane].stride;
if (color_plane >= fb->format->num_planes) if (color_plane >= fb->format->num_planes)
...@@ -4107,10 +4107,10 @@ static u32 skl_plane_ctl_format(u32 pixel_format) ...@@ -4107,10 +4107,10 @@ static u32 skl_plane_ctl_format(u32 pixel_format)
static u32 skl_plane_ctl_alpha(const struct intel_plane_state *plane_state) static u32 skl_plane_ctl_alpha(const struct intel_plane_state *plane_state)
{ {
if (!plane_state->base.fb->format->has_alpha) if (!plane_state->hw.fb->format->has_alpha)
return PLANE_CTL_ALPHA_DISABLE; return PLANE_CTL_ALPHA_DISABLE;
switch (plane_state->base.pixel_blend_mode) { switch (plane_state->hw.pixel_blend_mode) {
case DRM_MODE_BLEND_PIXEL_NONE: case DRM_MODE_BLEND_PIXEL_NONE:
return PLANE_CTL_ALPHA_DISABLE; return PLANE_CTL_ALPHA_DISABLE;
case DRM_MODE_BLEND_PREMULTI: case DRM_MODE_BLEND_PREMULTI:
...@@ -4118,17 +4118,17 @@ static u32 skl_plane_ctl_alpha(const struct intel_plane_state *plane_state) ...@@ -4118,17 +4118,17 @@ static u32 skl_plane_ctl_alpha(const struct intel_plane_state *plane_state)
case DRM_MODE_BLEND_COVERAGE: case DRM_MODE_BLEND_COVERAGE:
return PLANE_CTL_ALPHA_HW_PREMULTIPLY; return PLANE_CTL_ALPHA_HW_PREMULTIPLY;
default: default:
MISSING_CASE(plane_state->base.pixel_blend_mode); MISSING_CASE(plane_state->hw.pixel_blend_mode);
return PLANE_CTL_ALPHA_DISABLE; return PLANE_CTL_ALPHA_DISABLE;
} }
} }
static u32 glk_plane_color_ctl_alpha(const struct intel_plane_state *plane_state) static u32 glk_plane_color_ctl_alpha(const struct intel_plane_state *plane_state)
{ {
if (!plane_state->base.fb->format->has_alpha) if (!plane_state->hw.fb->format->has_alpha)
return PLANE_COLOR_ALPHA_DISABLE; return PLANE_COLOR_ALPHA_DISABLE;
switch (plane_state->base.pixel_blend_mode) { switch (plane_state->hw.pixel_blend_mode) {
case DRM_MODE_BLEND_PIXEL_NONE: case DRM_MODE_BLEND_PIXEL_NONE:
return PLANE_COLOR_ALPHA_DISABLE; return PLANE_COLOR_ALPHA_DISABLE;
case DRM_MODE_BLEND_PREMULTI: case DRM_MODE_BLEND_PREMULTI:
...@@ -4136,7 +4136,7 @@ static u32 glk_plane_color_ctl_alpha(const struct intel_plane_state *plane_state ...@@ -4136,7 +4136,7 @@ static u32 glk_plane_color_ctl_alpha(const struct intel_plane_state *plane_state
case DRM_MODE_BLEND_COVERAGE: case DRM_MODE_BLEND_COVERAGE:
return PLANE_COLOR_ALPHA_HW_PREMULTIPLY; return PLANE_COLOR_ALPHA_HW_PREMULTIPLY;
default: default:
MISSING_CASE(plane_state->base.pixel_blend_mode); MISSING_CASE(plane_state->hw.pixel_blend_mode);
return PLANE_COLOR_ALPHA_DISABLE; return PLANE_COLOR_ALPHA_DISABLE;
} }
} }
...@@ -4222,8 +4222,8 @@ u32 skl_plane_ctl(const struct intel_crtc_state *crtc_state, ...@@ -4222,8 +4222,8 @@ u32 skl_plane_ctl(const struct intel_crtc_state *crtc_state,
{ {
struct drm_i915_private *dev_priv = struct drm_i915_private *dev_priv =
to_i915(plane_state->base.plane->dev); to_i915(plane_state->base.plane->dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
const struct drm_intel_sprite_colorkey *key = &plane_state->ckey; const struct drm_intel_sprite_colorkey *key = &plane_state->ckey;
u32 plane_ctl; u32 plane_ctl;
...@@ -4233,10 +4233,10 @@ u32 skl_plane_ctl(const struct intel_crtc_state *crtc_state, ...@@ -4233,10 +4233,10 @@ u32 skl_plane_ctl(const struct intel_crtc_state *crtc_state,
plane_ctl |= skl_plane_ctl_alpha(plane_state); plane_ctl |= skl_plane_ctl_alpha(plane_state);
plane_ctl |= PLANE_CTL_PLANE_GAMMA_DISABLE; plane_ctl |= PLANE_CTL_PLANE_GAMMA_DISABLE;
if (plane_state->base.color_encoding == DRM_COLOR_YCBCR_BT709) if (plane_state->hw.color_encoding == DRM_COLOR_YCBCR_BT709)
plane_ctl |= PLANE_CTL_YUV_TO_RGB_CSC_FORMAT_BT709; plane_ctl |= PLANE_CTL_YUV_TO_RGB_CSC_FORMAT_BT709;
if (plane_state->base.color_range == DRM_COLOR_YCBCR_FULL_RANGE) if (plane_state->hw.color_range == DRM_COLOR_YCBCR_FULL_RANGE)
plane_ctl |= PLANE_CTL_YUV_RANGE_CORRECTION_DISABLE; plane_ctl |= PLANE_CTL_YUV_RANGE_CORRECTION_DISABLE;
} }
...@@ -4278,7 +4278,7 @@ u32 glk_plane_color_ctl(const struct intel_crtc_state *crtc_state, ...@@ -4278,7 +4278,7 @@ u32 glk_plane_color_ctl(const struct intel_crtc_state *crtc_state,
{ {
struct drm_i915_private *dev_priv = struct drm_i915_private *dev_priv =
to_i915(plane_state->base.plane->dev); to_i915(plane_state->base.plane->dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
u32 plane_color_ctl = 0; u32 plane_color_ctl = 0;
...@@ -4286,12 +4286,12 @@ u32 glk_plane_color_ctl(const struct intel_crtc_state *crtc_state, ...@@ -4286,12 +4286,12 @@ u32 glk_plane_color_ctl(const struct intel_crtc_state *crtc_state,
plane_color_ctl |= glk_plane_color_ctl_alpha(plane_state); plane_color_ctl |= glk_plane_color_ctl_alpha(plane_state);
if (fb->format->is_yuv && !icl_is_hdr_plane(dev_priv, plane->id)) { if (fb->format->is_yuv && !icl_is_hdr_plane(dev_priv, plane->id)) {
if (plane_state->base.color_encoding == DRM_COLOR_YCBCR_BT709) if (plane_state->hw.color_encoding == DRM_COLOR_YCBCR_BT709)
plane_color_ctl |= PLANE_COLOR_CSC_MODE_YUV709_TO_RGB709; plane_color_ctl |= PLANE_COLOR_CSC_MODE_YUV709_TO_RGB709;
else else
plane_color_ctl |= PLANE_COLOR_CSC_MODE_YUV601_TO_RGB709; plane_color_ctl |= PLANE_COLOR_CSC_MODE_YUV601_TO_RGB709;
if (plane_state->base.color_range == DRM_COLOR_YCBCR_FULL_RANGE) if (plane_state->hw.color_range == DRM_COLOR_YCBCR_FULL_RANGE)
plane_color_ctl |= PLANE_COLOR_YUV_RANGE_CORRECTION_DISABLE; plane_color_ctl |= PLANE_COLOR_YUV_RANGE_CORRECTION_DISABLE;
} else if (fb->format->is_yuv) { } else if (fb->format->is_yuv) {
plane_color_ctl |= PLANE_COLOR_INPUT_CSC_ENABLE; plane_color_ctl |= PLANE_COLOR_INPUT_CSC_ENABLE;
...@@ -5625,7 +5625,7 @@ static int skl_update_scaler_plane(struct intel_crtc_state *crtc_state, ...@@ -5625,7 +5625,7 @@ static int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
struct intel_plane *intel_plane = struct intel_plane *intel_plane =
to_intel_plane(plane_state->base.plane); to_intel_plane(plane_state->base.plane);
struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev); struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev);
struct drm_framebuffer *fb = plane_state->base.fb; struct drm_framebuffer *fb = plane_state->hw.fb;
int ret; int ret;
bool force_detach = !fb || !plane_state->base.visible; bool force_detach = !fb || !plane_state->base.visible;
bool need_scaler = false; bool need_scaler = false;
...@@ -10729,7 +10729,7 @@ static u32 intel_cursor_base(const struct intel_plane_state *plane_state) ...@@ -10729,7 +10729,7 @@ static u32 intel_cursor_base(const struct intel_plane_state *plane_state)
{ {
struct drm_i915_private *dev_priv = struct drm_i915_private *dev_priv =
to_i915(plane_state->base.plane->dev); to_i915(plane_state->base.plane->dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
const struct drm_i915_gem_object *obj = intel_fb_obj(fb); const struct drm_i915_gem_object *obj = intel_fb_obj(fb);
u32 base; u32 base;
...@@ -10777,7 +10777,7 @@ static int intel_cursor_check_surface(struct intel_plane_state *plane_state) ...@@ -10777,7 +10777,7 @@ static int intel_cursor_check_surface(struct intel_plane_state *plane_state)
{ {
struct drm_i915_private *dev_priv = struct drm_i915_private *dev_priv =
to_i915(plane_state->base.plane->dev); to_i915(plane_state->base.plane->dev);
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
int src_x, src_y; int src_x, src_y;
u32 offset; u32 offset;
int ret; int ret;
...@@ -10810,7 +10810,7 @@ static int intel_cursor_check_surface(struct intel_plane_state *plane_state) ...@@ -10810,7 +10810,7 @@ static int intel_cursor_check_surface(struct intel_plane_state *plane_state)
/* ILK+ do this automagically in hardware */ /* ILK+ do this automagically in hardware */
if (HAS_GMCH(dev_priv) && rotation & DRM_MODE_ROTATE_180) { if (HAS_GMCH(dev_priv) && rotation & DRM_MODE_ROTATE_180) {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
int src_w = drm_rect_width(&plane_state->base.src) >> 16; int src_w = drm_rect_width(&plane_state->base.src) >> 16;
int src_h = drm_rect_height(&plane_state->base.src) >> 16; int src_h = drm_rect_height(&plane_state->base.src) >> 16;
...@@ -10827,7 +10827,7 @@ static int intel_cursor_check_surface(struct intel_plane_state *plane_state) ...@@ -10827,7 +10827,7 @@ static int intel_cursor_check_surface(struct intel_plane_state *plane_state)
static int intel_check_cursor(struct intel_crtc_state *crtc_state, static int intel_check_cursor(struct intel_crtc_state *crtc_state,
struct intel_plane_state *plane_state) struct intel_plane_state *plane_state)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
int ret; int ret;
if (fb && fb->modifier != DRM_FORMAT_MOD_LINEAR) { if (fb && fb->modifier != DRM_FORMAT_MOD_LINEAR) {
...@@ -10901,7 +10901,7 @@ static bool i845_cursor_size_ok(const struct intel_plane_state *plane_state) ...@@ -10901,7 +10901,7 @@ static bool i845_cursor_size_ok(const struct intel_plane_state *plane_state)
static int i845_check_cursor(struct intel_crtc_state *crtc_state, static int i845_check_cursor(struct intel_crtc_state *crtc_state,
struct intel_plane_state *plane_state) struct intel_plane_state *plane_state)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
int ret; int ret;
ret = intel_check_cursor(crtc_state, plane_state); ret = intel_check_cursor(crtc_state, plane_state);
...@@ -11067,7 +11067,7 @@ static u32 i9xx_cursor_ctl(const struct intel_crtc_state *crtc_state, ...@@ -11067,7 +11067,7 @@ static u32 i9xx_cursor_ctl(const struct intel_crtc_state *crtc_state,
return 0; return 0;
} }
if (plane_state->base.rotation & DRM_MODE_ROTATE_180) if (plane_state->hw.rotation & DRM_MODE_ROTATE_180)
cntl |= MCURSOR_ROTATE_180; cntl |= MCURSOR_ROTATE_180;
return cntl; return cntl;
...@@ -11100,7 +11100,7 @@ static bool i9xx_cursor_size_ok(const struct intel_plane_state *plane_state) ...@@ -11100,7 +11100,7 @@ static bool i9xx_cursor_size_ok(const struct intel_plane_state *plane_state)
* cursors. * cursors.
*/ */
if (HAS_CUR_FBC(dev_priv) && if (HAS_CUR_FBC(dev_priv) &&
plane_state->base.rotation & DRM_MODE_ROTATE_0) { plane_state->hw.rotation & DRM_MODE_ROTATE_0) {
if (height < 8 || height > width) if (height < 8 || height > width)
return false; return false;
} else { } else {
...@@ -11116,7 +11116,7 @@ static int i9xx_check_cursor(struct intel_crtc_state *crtc_state, ...@@ -11116,7 +11116,7 @@ static int i9xx_check_cursor(struct intel_crtc_state *crtc_state,
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
struct drm_i915_private *dev_priv = to_i915(plane->base.dev); struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
enum pipe pipe = plane->pipe; enum pipe pipe = plane->pipe;
int ret; int ret;
...@@ -11717,11 +11717,11 @@ static bool intel_wm_need_update(const struct intel_plane_state *cur, ...@@ -11717,11 +11717,11 @@ static bool intel_wm_need_update(const struct intel_plane_state *cur,
if (new->base.visible != cur->base.visible) if (new->base.visible != cur->base.visible)
return true; return true;
if (!cur->base.fb || !new->base.fb) if (!cur->hw.fb || !new->hw.fb)
return false; return false;
if (cur->base.fb->modifier != new->base.fb->modifier || if (cur->hw.fb->modifier != new->hw.fb->modifier ||
cur->base.rotation != new->base.rotation || cur->hw.rotation != new->hw.rotation ||
drm_rect_width(&new->base.src) != drm_rect_width(&cur->base.src) || drm_rect_width(&new->base.src) != drm_rect_width(&cur->base.src) ||
drm_rect_height(&new->base.src) != drm_rect_height(&cur->base.src) || drm_rect_height(&new->base.src) != drm_rect_height(&cur->base.src) ||
drm_rect_width(&new->base.dst) != drm_rect_width(&cur->base.dst) || drm_rect_width(&new->base.dst) != drm_rect_width(&cur->base.dst) ||
...@@ -12353,7 +12353,7 @@ static const char *output_formats(enum intel_output_format format) ...@@ -12353,7 +12353,7 @@ static const char *output_formats(enum intel_output_format format)
static void intel_dump_plane_state(const struct intel_plane_state *plane_state) static void intel_dump_plane_state(const struct intel_plane_state *plane_state)
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
struct drm_format_name_buf format_name; struct drm_format_name_buf format_name;
if (!fb) { if (!fb) {
...@@ -12369,7 +12369,7 @@ static void intel_dump_plane_state(const struct intel_plane_state *plane_state) ...@@ -12369,7 +12369,7 @@ static void intel_dump_plane_state(const struct intel_plane_state *plane_state)
drm_get_format_name(fb->format->format, &format_name), drm_get_format_name(fb->format->format, &format_name),
yesno(plane_state->base.visible)); yesno(plane_state->base.visible));
DRM_DEBUG_KMS("\trotation: 0x%x, scaler: %d\n", DRM_DEBUG_KMS("\trotation: 0x%x, scaler: %d\n",
plane_state->base.rotation, plane_state->scaler_id); plane_state->hw.rotation, plane_state->scaler_id);
if (plane_state->base.visible) if (plane_state->base.visible)
DRM_DEBUG_KMS("\tsrc: " DRM_RECT_FP_FMT " dst: " DRM_RECT_FMT "\n", DRM_DEBUG_KMS("\tsrc: " DRM_RECT_FP_FMT " dst: " DRM_RECT_FMT "\n",
DRM_RECT_FP_ARG(&plane_state->base.src), DRM_RECT_FP_ARG(&plane_state->base.src),
...@@ -14869,8 +14869,8 @@ static void intel_atomic_track_fbs(struct intel_atomic_state *state) ...@@ -14869,8 +14869,8 @@ static void intel_atomic_track_fbs(struct intel_atomic_state *state)
for_each_oldnew_intel_plane_in_state(state, plane, old_plane_state, for_each_oldnew_intel_plane_in_state(state, plane, old_plane_state,
new_plane_state, i) new_plane_state, i)
intel_frontbuffer_track(to_intel_frontbuffer(old_plane_state->base.fb), intel_frontbuffer_track(to_intel_frontbuffer(old_plane_state->hw.fb),
to_intel_frontbuffer(new_plane_state->base.fb), to_intel_frontbuffer(new_plane_state->hw.fb),
plane->frontbuffer_bit); plane->frontbuffer_bit);
} }
...@@ -15039,7 +15039,7 @@ static int intel_plane_pin_fb(struct intel_plane_state *plane_state) ...@@ -15039,7 +15039,7 @@ static int intel_plane_pin_fb(struct intel_plane_state *plane_state)
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
struct drm_i915_private *dev_priv = to_i915(plane->base.dev); struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
struct drm_framebuffer *fb = plane_state->base.fb; struct drm_framebuffer *fb = plane_state->hw.fb;
struct i915_vma *vma; struct i915_vma *vma;
if (plane->id == PLANE_CURSOR && if (plane->id == PLANE_CURSOR &&
...@@ -15104,7 +15104,7 @@ intel_prepare_plane_fb(struct drm_plane *plane, ...@@ -15104,7 +15104,7 @@ intel_prepare_plane_fb(struct drm_plane *plane,
struct intel_atomic_state *intel_state = struct intel_atomic_state *intel_state =
to_intel_atomic_state(new_plane_state->base.state); to_intel_atomic_state(new_plane_state->base.state);
struct drm_i915_private *dev_priv = to_i915(plane->dev); struct drm_i915_private *dev_priv = to_i915(plane->dev);
struct drm_framebuffer *fb = new_plane_state->base.fb; struct drm_framebuffer *fb = new_plane_state->hw.fb;
struct drm_i915_gem_object *obj = intel_fb_obj(fb); struct drm_i915_gem_object *obj = intel_fb_obj(fb);
struct drm_i915_gem_object *old_obj = intel_fb_obj(plane->state->fb); struct drm_i915_gem_object *old_obj = intel_fb_obj(plane->state->fb);
int ret; int ret;
...@@ -15172,12 +15172,12 @@ intel_prepare_plane_fb(struct drm_plane *plane, ...@@ -15172,12 +15172,12 @@ intel_prepare_plane_fb(struct drm_plane *plane,
fence = dma_resv_get_excl_rcu(obj->base.resv); fence = dma_resv_get_excl_rcu(obj->base.resv);
if (fence) { if (fence) {
add_rps_boost_after_vblank(new_plane_state->base.crtc, add_rps_boost_after_vblank(new_plane_state->hw.crtc,
fence); fence);
dma_fence_put(fence); dma_fence_put(fence);
} }
} else { } else {
add_rps_boost_after_vblank(new_plane_state->base.crtc, add_rps_boost_after_vblank(new_plane_state->hw.crtc,
new_plane_state->base.fence); new_plane_state->base.fence);
} }
......
...@@ -662,7 +662,7 @@ static void intel_fbc_update_state_cache(struct intel_crtc *crtc, ...@@ -662,7 +662,7 @@ static void intel_fbc_update_state_cache(struct intel_crtc *crtc,
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
struct intel_fbc *fbc = &dev_priv->fbc; struct intel_fbc *fbc = &dev_priv->fbc;
struct intel_fbc_state_cache *cache = &fbc->state_cache; struct intel_fbc_state_cache *cache = &fbc->state_cache;
struct drm_framebuffer *fb = plane_state->base.fb; struct drm_framebuffer *fb = plane_state->hw.fb;
cache->vma = NULL; cache->vma = NULL;
cache->flags = 0; cache->flags = 0;
...@@ -671,7 +671,7 @@ static void intel_fbc_update_state_cache(struct intel_crtc *crtc, ...@@ -671,7 +671,7 @@ static void intel_fbc_update_state_cache(struct intel_crtc *crtc,
if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
cache->crtc.hsw_bdw_pixel_rate = crtc_state->pixel_rate; cache->crtc.hsw_bdw_pixel_rate = crtc_state->pixel_rate;
cache->plane.rotation = plane_state->base.rotation; cache->plane.rotation = plane_state->hw.rotation;
/* /*
* Src coordinates are already rotated by 270 degrees for * Src coordinates are already rotated by 270 degrees for
* the 90/270 degree plane rotation cases (to match the * the 90/270 degree plane rotation cases (to match the
...@@ -684,7 +684,7 @@ static void intel_fbc_update_state_cache(struct intel_crtc *crtc, ...@@ -684,7 +684,7 @@ static void intel_fbc_update_state_cache(struct intel_crtc *crtc,
cache->plane.adjusted_y = plane_state->color_plane[0].y; cache->plane.adjusted_y = plane_state->color_plane[0].y;
cache->plane.y = plane_state->base.src.y1 >> 16; cache->plane.y = plane_state->base.src.y1 >> 16;
cache->plane.pixel_blend_mode = plane_state->base.pixel_blend_mode; cache->plane.pixel_blend_mode = plane_state->hw.pixel_blend_mode;
if (!cache->plane.visible) if (!cache->plane.visible)
return; return;
...@@ -1047,7 +1047,7 @@ void intel_fbc_choose_crtc(struct drm_i915_private *dev_priv, ...@@ -1047,7 +1047,7 @@ void intel_fbc_choose_crtc(struct drm_i915_private *dev_priv,
* to pipe or plane A. */ * to pipe or plane A. */
for_each_new_intel_plane_in_state(state, plane, plane_state, i) { for_each_new_intel_plane_in_state(state, plane, plane_state, i) {
struct intel_crtc_state *crtc_state; struct intel_crtc_state *crtc_state;
struct intel_crtc *crtc = to_intel_crtc(plane_state->base.crtc); struct intel_crtc *crtc = to_intel_crtc(plane_state->hw.crtc);
if (!plane->has_fbc) if (!plane->has_fbc)
continue; continue;
......
...@@ -669,7 +669,7 @@ static void update_colorkey(struct intel_overlay *overlay, ...@@ -669,7 +669,7 @@ static void update_colorkey(struct intel_overlay *overlay,
flags |= DST_KEY_ENABLE; flags |= DST_KEY_ENABLE;
if (state->base.visible) if (state->base.visible)
format = state->base.fb->format->format; format = state->hw.fb->format->format;
switch (format) { switch (format) {
case DRM_FORMAT_C8: case DRM_FORMAT_C8:
......
...@@ -241,8 +241,8 @@ void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state) ...@@ -241,8 +241,8 @@ void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state)
int intel_plane_check_stride(const struct intel_plane_state *plane_state) int intel_plane_check_stride(const struct intel_plane_state *plane_state)
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
u32 stride, max_stride; u32 stride, max_stride;
/* /*
...@@ -272,10 +272,10 @@ int intel_plane_check_stride(const struct intel_plane_state *plane_state) ...@@ -272,10 +272,10 @@ int intel_plane_check_stride(const struct intel_plane_state *plane_state)
int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state) int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
struct drm_rect *src = &plane_state->base.src; struct drm_rect *src = &plane_state->base.src;
u32 src_x, src_y, src_w, src_h, hsub, vsub; u32 src_x, src_y, src_w, src_h, hsub, vsub;
bool rotated = drm_rotation_90_or_270(plane_state->base.rotation); bool rotated = drm_rotation_90_or_270(plane_state->hw.rotation);
/* /*
* Hardware doesn't handle subpixel coordinates. * Hardware doesn't handle subpixel coordinates.
...@@ -329,7 +329,7 @@ skl_plane_ratio(const struct intel_crtc_state *crtc_state, ...@@ -329,7 +329,7 @@ skl_plane_ratio(const struct intel_crtc_state *crtc_state,
unsigned int *num, unsigned int *den) unsigned int *num, unsigned int *den)
{ {
struct drm_i915_private *dev_priv = to_i915(plane_state->base.plane->dev); struct drm_i915_private *dev_priv = to_i915(plane_state->base.plane->dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
if (fb->format->cpp[0] == 8) { if (fb->format->cpp[0] == 8) {
if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) { if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) {
...@@ -396,7 +396,7 @@ skl_program_scaler(struct intel_plane *plane, ...@@ -396,7 +396,7 @@ skl_program_scaler(struct intel_plane *plane,
const struct intel_plane_state *plane_state) const struct intel_plane_state *plane_state)
{ {
struct drm_i915_private *dev_priv = to_i915(plane->base.dev); struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
enum pipe pipe = plane->pipe; enum pipe pipe = plane->pipe;
int scaler_id = plane_state->scaler_id; int scaler_id = plane_state->scaler_id;
const struct intel_scaler *scaler = const struct intel_scaler *scaler =
...@@ -542,10 +542,10 @@ icl_program_input_csc(struct intel_plane *plane, ...@@ -542,10 +542,10 @@ icl_program_input_csc(struct intel_plane *plane,
}; };
const u16 *csc; const u16 *csc;
if (plane_state->base.color_range == DRM_COLOR_YCBCR_FULL_RANGE) if (plane_state->hw.color_range == DRM_COLOR_YCBCR_FULL_RANGE)
csc = input_csc_matrix[plane_state->base.color_encoding]; csc = input_csc_matrix[plane_state->hw.color_encoding];
else else
csc = input_csc_matrix_lr[plane_state->base.color_encoding]; csc = input_csc_matrix_lr[plane_state->hw.color_encoding];
I915_WRITE_FW(PLANE_INPUT_CSC_COEFF(pipe, plane_id, 0), ROFF(csc[0]) | I915_WRITE_FW(PLANE_INPUT_CSC_COEFF(pipe, plane_id, 0), ROFF(csc[0]) |
GOFF(csc[1])); GOFF(csc[1]));
...@@ -559,7 +559,7 @@ icl_program_input_csc(struct intel_plane *plane, ...@@ -559,7 +559,7 @@ icl_program_input_csc(struct intel_plane *plane,
I915_WRITE_FW(PLANE_INPUT_CSC_PREOFF(pipe, plane_id, 0), I915_WRITE_FW(PLANE_INPUT_CSC_PREOFF(pipe, plane_id, 0),
PREOFF_YUV_TO_RGB_HI); PREOFF_YUV_TO_RGB_HI);
if (plane_state->base.color_range == DRM_COLOR_YCBCR_FULL_RANGE) if (plane_state->hw.color_range == DRM_COLOR_YCBCR_FULL_RANGE)
I915_WRITE_FW(PLANE_INPUT_CSC_PREOFF(pipe, plane_id, 1), 0); I915_WRITE_FW(PLANE_INPUT_CSC_PREOFF(pipe, plane_id, 1), 0);
else else
I915_WRITE_FW(PLANE_INPUT_CSC_PREOFF(pipe, plane_id, 1), I915_WRITE_FW(PLANE_INPUT_CSC_PREOFF(pipe, plane_id, 1),
...@@ -591,8 +591,8 @@ skl_program_plane(struct intel_plane *plane, ...@@ -591,8 +591,8 @@ skl_program_plane(struct intel_plane *plane,
u32 src_w = drm_rect_width(&plane_state->base.src) >> 16; u32 src_w = drm_rect_width(&plane_state->base.src) >> 16;
u32 src_h = drm_rect_height(&plane_state->base.src) >> 16; u32 src_h = drm_rect_height(&plane_state->base.src) >> 16;
struct intel_plane *linked = plane_state->planar_linked_plane; struct intel_plane *linked = plane_state->planar_linked_plane;
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
u8 alpha = plane_state->base.alpha >> 8; u8 alpha = plane_state->hw.alpha >> 8;
u32 plane_color_ctl = 0; u32 plane_color_ctl = 0;
unsigned long irqflags; unsigned long irqflags;
u32 keymsk, keymax; u32 keymsk, keymax;
...@@ -768,7 +768,7 @@ chv_update_csc(const struct intel_plane_state *plane_state) ...@@ -768,7 +768,7 @@ chv_update_csc(const struct intel_plane_state *plane_state)
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
struct drm_i915_private *dev_priv = to_i915(plane->base.dev); struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
enum plane_id plane_id = plane->id; enum plane_id plane_id = plane->id;
/* /*
* |r| | c0 c1 c2 | |cr| * |r| | c0 c1 c2 | |cr|
...@@ -794,7 +794,7 @@ chv_update_csc(const struct intel_plane_state *plane_state) ...@@ -794,7 +794,7 @@ chv_update_csc(const struct intel_plane_state *plane_state)
0, 4096, 7601, 0, 4096, 7601,
}, },
}; };
const s16 *csc = csc_matrix[plane_state->base.color_encoding]; const s16 *csc = csc_matrix[plane_state->hw.color_encoding];
/* Seems RGB data bypasses the CSC always */ /* Seems RGB data bypasses the CSC always */
if (!fb->format->is_yuv) if (!fb->format->is_yuv)
...@@ -827,13 +827,13 @@ vlv_update_clrc(const struct intel_plane_state *plane_state) ...@@ -827,13 +827,13 @@ vlv_update_clrc(const struct intel_plane_state *plane_state)
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
struct drm_i915_private *dev_priv = to_i915(plane->base.dev); struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
enum pipe pipe = plane->pipe; enum pipe pipe = plane->pipe;
enum plane_id plane_id = plane->id; enum plane_id plane_id = plane->id;
int contrast, brightness, sh_scale, sh_sin, sh_cos; int contrast, brightness, sh_scale, sh_sin, sh_cos;
if (fb->format->is_yuv && if (fb->format->is_yuv &&
plane_state->base.color_range == DRM_COLOR_YCBCR_LIMITED_RANGE) { plane_state->hw.color_range == DRM_COLOR_YCBCR_LIMITED_RANGE) {
/* /*
* Expand limited range to full range: * Expand limited range to full range:
* Contrast is applied first and is used to expand Y range. * Contrast is applied first and is used to expand Y range.
...@@ -867,7 +867,7 @@ vlv_plane_ratio(const struct intel_crtc_state *crtc_state, ...@@ -867,7 +867,7 @@ vlv_plane_ratio(const struct intel_crtc_state *crtc_state,
unsigned int *num, unsigned int *den) unsigned int *num, unsigned int *den)
{ {
u8 active_planes = crtc_state->active_planes & ~BIT(PLANE_CURSOR); u8 active_planes = crtc_state->active_planes & ~BIT(PLANE_CURSOR);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int cpp = fb->format->cpp[0]; unsigned int cpp = fb->format->cpp[0];
/* /*
...@@ -953,8 +953,8 @@ static u32 vlv_sprite_ctl_crtc(const struct intel_crtc_state *crtc_state) ...@@ -953,8 +953,8 @@ static u32 vlv_sprite_ctl_crtc(const struct intel_crtc_state *crtc_state)
static u32 vlv_sprite_ctl(const struct intel_crtc_state *crtc_state, static u32 vlv_sprite_ctl(const struct intel_crtc_state *crtc_state,
const struct intel_plane_state *plane_state) const struct intel_plane_state *plane_state)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
const struct drm_intel_sprite_colorkey *key = &plane_state->ckey; const struct drm_intel_sprite_colorkey *key = &plane_state->ckey;
u32 sprctl; u32 sprctl;
...@@ -999,7 +999,7 @@ static u32 vlv_sprite_ctl(const struct intel_crtc_state *crtc_state, ...@@ -999,7 +999,7 @@ static u32 vlv_sprite_ctl(const struct intel_crtc_state *crtc_state,
return 0; return 0;
} }
if (plane_state->base.color_encoding == DRM_COLOR_YCBCR_BT709) if (plane_state->hw.color_encoding == DRM_COLOR_YCBCR_BT709)
sprctl |= SP_YUV_FORMAT_BT709; sprctl |= SP_YUV_FORMAT_BT709;
if (fb->modifier == I915_FORMAT_MOD_X_TILED) if (fb->modifier == I915_FORMAT_MOD_X_TILED)
...@@ -1021,7 +1021,7 @@ static void vlv_update_gamma(const struct intel_plane_state *plane_state) ...@@ -1021,7 +1021,7 @@ static void vlv_update_gamma(const struct intel_plane_state *plane_state)
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
struct drm_i915_private *dev_priv = to_i915(plane->base.dev); struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
enum pipe pipe = plane->pipe; enum pipe pipe = plane->pipe;
enum plane_id plane_id = plane->id; enum plane_id plane_id = plane->id;
u16 gamma[8]; u16 gamma[8];
...@@ -1151,7 +1151,7 @@ static void ivb_plane_ratio(const struct intel_crtc_state *crtc_state, ...@@ -1151,7 +1151,7 @@ static void ivb_plane_ratio(const struct intel_crtc_state *crtc_state,
unsigned int *num, unsigned int *den) unsigned int *num, unsigned int *den)
{ {
u8 active_planes = crtc_state->active_planes & ~BIT(PLANE_CURSOR); u8 active_planes = crtc_state->active_planes & ~BIT(PLANE_CURSOR);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int cpp = fb->format->cpp[0]; unsigned int cpp = fb->format->cpp[0];
if (hweight8(active_planes) == 2) { if (hweight8(active_planes) == 2) {
...@@ -1187,7 +1187,7 @@ static void ivb_plane_ratio_scaling(const struct intel_crtc_state *crtc_state, ...@@ -1187,7 +1187,7 @@ static void ivb_plane_ratio_scaling(const struct intel_crtc_state *crtc_state,
const struct intel_plane_state *plane_state, const struct intel_plane_state *plane_state,
unsigned int *num, unsigned int *den) unsigned int *num, unsigned int *den)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int cpp = fb->format->cpp[0]; unsigned int cpp = fb->format->cpp[0];
switch (cpp) { switch (cpp) {
...@@ -1265,7 +1265,7 @@ static void hsw_plane_ratio(const struct intel_crtc_state *crtc_state, ...@@ -1265,7 +1265,7 @@ static void hsw_plane_ratio(const struct intel_crtc_state *crtc_state,
unsigned int *num, unsigned int *den) unsigned int *num, unsigned int *den)
{ {
u8 active_planes = crtc_state->active_planes & ~BIT(PLANE_CURSOR); u8 active_planes = crtc_state->active_planes & ~BIT(PLANE_CURSOR);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int cpp = fb->format->cpp[0]; unsigned int cpp = fb->format->cpp[0];
if (hweight8(active_planes) == 2) { if (hweight8(active_planes) == 2) {
...@@ -1321,7 +1321,7 @@ static bool ivb_need_sprite_gamma(const struct intel_plane_state *plane_state) ...@@ -1321,7 +1321,7 @@ static bool ivb_need_sprite_gamma(const struct intel_plane_state *plane_state)
{ {
struct drm_i915_private *dev_priv = struct drm_i915_private *dev_priv =
to_i915(plane_state->base.plane->dev); to_i915(plane_state->base.plane->dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
return fb->format->cpp[0] == 8 && return fb->format->cpp[0] == 8 &&
(IS_IVYBRIDGE(dev_priv) || IS_HASWELL(dev_priv)); (IS_IVYBRIDGE(dev_priv) || IS_HASWELL(dev_priv));
...@@ -1332,8 +1332,8 @@ static u32 ivb_sprite_ctl(const struct intel_crtc_state *crtc_state, ...@@ -1332,8 +1332,8 @@ static u32 ivb_sprite_ctl(const struct intel_crtc_state *crtc_state,
{ {
struct drm_i915_private *dev_priv = struct drm_i915_private *dev_priv =
to_i915(plane_state->base.plane->dev); to_i915(plane_state->base.plane->dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
const struct drm_intel_sprite_colorkey *key = &plane_state->ckey; const struct drm_intel_sprite_colorkey *key = &plane_state->ckey;
u32 sprctl; u32 sprctl;
...@@ -1375,10 +1375,10 @@ static u32 ivb_sprite_ctl(const struct intel_crtc_state *crtc_state, ...@@ -1375,10 +1375,10 @@ static u32 ivb_sprite_ctl(const struct intel_crtc_state *crtc_state,
if (!ivb_need_sprite_gamma(plane_state)) if (!ivb_need_sprite_gamma(plane_state))
sprctl |= SPRITE_INT_GAMMA_DISABLE; sprctl |= SPRITE_INT_GAMMA_DISABLE;
if (plane_state->base.color_encoding == DRM_COLOR_YCBCR_BT709) if (plane_state->hw.color_encoding == DRM_COLOR_YCBCR_BT709)
sprctl |= SPRITE_YUV_TO_RGB_CSC_FORMAT_BT709; sprctl |= SPRITE_YUV_TO_RGB_CSC_FORMAT_BT709;
if (plane_state->base.color_range == DRM_COLOR_YCBCR_FULL_RANGE) if (plane_state->hw.color_range == DRM_COLOR_YCBCR_FULL_RANGE)
sprctl |= SPRITE_YUV_RANGE_CORRECTION_DISABLE; sprctl |= SPRITE_YUV_RANGE_CORRECTION_DISABLE;
if (fb->modifier == I915_FORMAT_MOD_X_TILED) if (fb->modifier == I915_FORMAT_MOD_X_TILED)
...@@ -1567,7 +1567,7 @@ ivb_plane_get_hw_state(struct intel_plane *plane, ...@@ -1567,7 +1567,7 @@ ivb_plane_get_hw_state(struct intel_plane *plane,
static int g4x_sprite_min_cdclk(const struct intel_crtc_state *crtc_state, static int g4x_sprite_min_cdclk(const struct intel_crtc_state *crtc_state,
const struct intel_plane_state *plane_state) const struct intel_plane_state *plane_state)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int hscale, pixel_rate; unsigned int hscale, pixel_rate;
unsigned int limit, decimate; unsigned int limit, decimate;
...@@ -1637,8 +1637,8 @@ static u32 g4x_sprite_ctl(const struct intel_crtc_state *crtc_state, ...@@ -1637,8 +1637,8 @@ static u32 g4x_sprite_ctl(const struct intel_crtc_state *crtc_state,
{ {
struct drm_i915_private *dev_priv = struct drm_i915_private *dev_priv =
to_i915(plane_state->base.plane->dev); to_i915(plane_state->base.plane->dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
const struct drm_intel_sprite_colorkey *key = &plane_state->ckey; const struct drm_intel_sprite_colorkey *key = &plane_state->ckey;
u32 dvscntr; u32 dvscntr;
...@@ -1677,10 +1677,10 @@ static u32 g4x_sprite_ctl(const struct intel_crtc_state *crtc_state, ...@@ -1677,10 +1677,10 @@ static u32 g4x_sprite_ctl(const struct intel_crtc_state *crtc_state,
return 0; return 0;
} }
if (plane_state->base.color_encoding == DRM_COLOR_YCBCR_BT709) if (plane_state->hw.color_encoding == DRM_COLOR_YCBCR_BT709)
dvscntr |= DVS_YUV_FORMAT_BT709; dvscntr |= DVS_YUV_FORMAT_BT709;
if (plane_state->base.color_range == DRM_COLOR_YCBCR_FULL_RANGE) if (plane_state->hw.color_range == DRM_COLOR_YCBCR_FULL_RANGE)
dvscntr |= DVS_YUV_RANGE_CORRECTION_DISABLE; dvscntr |= DVS_YUV_RANGE_CORRECTION_DISABLE;
if (fb->modifier == I915_FORMAT_MOD_X_TILED) if (fb->modifier == I915_FORMAT_MOD_X_TILED)
...@@ -1701,7 +1701,7 @@ static void g4x_update_gamma(const struct intel_plane_state *plane_state) ...@@ -1701,7 +1701,7 @@ static void g4x_update_gamma(const struct intel_plane_state *plane_state)
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
struct drm_i915_private *dev_priv = to_i915(plane->base.dev); struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
enum pipe pipe = plane->pipe; enum pipe pipe = plane->pipe;
u16 gamma[8]; u16 gamma[8];
int i; int i;
...@@ -1733,7 +1733,7 @@ static void ilk_update_gamma(const struct intel_plane_state *plane_state) ...@@ -1733,7 +1733,7 @@ static void ilk_update_gamma(const struct intel_plane_state *plane_state)
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
struct drm_i915_private *dev_priv = to_i915(plane->base.dev); struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
enum pipe pipe = plane->pipe; enum pipe pipe = plane->pipe;
u16 gamma[17]; u16 gamma[17];
int i; int i;
...@@ -1887,7 +1887,7 @@ static int ...@@ -1887,7 +1887,7 @@ static int
g4x_sprite_check_scaling(struct intel_crtc_state *crtc_state, g4x_sprite_check_scaling(struct intel_crtc_state *crtc_state,
struct intel_plane_state *plane_state) struct intel_plane_state *plane_state)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
const struct drm_rect *src = &plane_state->base.src; const struct drm_rect *src = &plane_state->base.src;
const struct drm_rect *dst = &plane_state->base.dst; const struct drm_rect *dst = &plane_state->base.dst;
int src_x, src_w, src_h, crtc_w, crtc_h; int src_x, src_w, src_h, crtc_w, crtc_h;
...@@ -1954,7 +1954,7 @@ g4x_sprite_check(struct intel_crtc_state *crtc_state, ...@@ -1954,7 +1954,7 @@ g4x_sprite_check(struct intel_crtc_state *crtc_state,
int max_scale = DRM_PLANE_HELPER_NO_SCALING; int max_scale = DRM_PLANE_HELPER_NO_SCALING;
int ret; int ret;
if (intel_fb_scalable(plane_state->base.fb)) { if (intel_fb_scalable(plane_state->hw.fb)) {
if (INTEL_GEN(dev_priv) < 7) { if (INTEL_GEN(dev_priv) < 7) {
min_scale = 1; min_scale = 1;
max_scale = 16 << 16; max_scale = 16 << 16;
...@@ -1998,7 +1998,7 @@ int chv_plane_check_rotation(const struct intel_plane_state *plane_state) ...@@ -1998,7 +1998,7 @@ int chv_plane_check_rotation(const struct intel_plane_state *plane_state)
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
struct drm_i915_private *dev_priv = to_i915(plane->base.dev); struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
/* CHV ignores the mirror bit when the rotate bit is set :( */ /* CHV ignores the mirror bit when the rotate bit is set :( */
if (IS_CHERRYVIEW(dev_priv) && if (IS_CHERRYVIEW(dev_priv) &&
...@@ -2050,8 +2050,8 @@ static int skl_plane_check_fb(const struct intel_crtc_state *crtc_state, ...@@ -2050,8 +2050,8 @@ static int skl_plane_check_fb(const struct intel_crtc_state *crtc_state,
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
struct drm_i915_private *dev_priv = to_i915(plane->base.dev); struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
struct drm_format_name_buf format_name; struct drm_format_name_buf format_name;
if (!fb) if (!fb)
...@@ -2151,8 +2151,8 @@ static int skl_plane_check_dst_coordinates(const struct intel_crtc_state *crtc_s ...@@ -2151,8 +2151,8 @@ static int skl_plane_check_dst_coordinates(const struct intel_crtc_state *crtc_s
static int skl_plane_check_nv12_rotation(const struct intel_plane_state *plane_state) static int skl_plane_check_nv12_rotation(const struct intel_plane_state *plane_state)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
unsigned int rotation = plane_state->base.rotation; unsigned int rotation = plane_state->hw.rotation;
int src_w = drm_rect_width(&plane_state->base.src) >> 16; int src_w = drm_rect_width(&plane_state->base.src) >> 16;
/* Display WA #1106 */ /* Display WA #1106 */
...@@ -2187,7 +2187,7 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state, ...@@ -2187,7 +2187,7 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
struct drm_i915_private *dev_priv = to_i915(plane->base.dev); struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
int min_scale = DRM_PLANE_HELPER_NO_SCALING; int min_scale = DRM_PLANE_HELPER_NO_SCALING;
int max_scale = DRM_PLANE_HELPER_NO_SCALING; int max_scale = DRM_PLANE_HELPER_NO_SCALING;
int ret; int ret;
...@@ -2229,7 +2229,7 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state, ...@@ -2229,7 +2229,7 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
return ret; return ret;
/* HW only has 8 bits pixel precision, disable plane if invisible */ /* HW only has 8 bits pixel precision, disable plane if invisible */
if (!(plane_state->base.alpha >> 8)) if (!(plane_state->hw.alpha >> 8))
plane_state->base.visible = false; plane_state->base.visible = false;
plane_state->ctl = skl_plane_ctl(crtc_state, plane_state); plane_state->ctl = skl_plane_ctl(crtc_state, plane_state);
......
...@@ -801,7 +801,7 @@ static bool intel_wm_plane_visible(const struct intel_crtc_state *crtc_state, ...@@ -801,7 +801,7 @@ static bool intel_wm_plane_visible(const struct intel_crtc_state *crtc_state,
* around this problem with the watermark code. * around this problem with the watermark code.
*/ */
if (plane->id == PLANE_CURSOR) if (plane->id == PLANE_CURSOR)
return plane_state->base.fb != NULL; return plane_state->hw.fb != NULL;
else else
return plane_state->base.visible; return plane_state->base.visible;
} }
...@@ -1088,7 +1088,7 @@ static u16 g4x_compute_wm(const struct intel_crtc_state *crtc_state, ...@@ -1088,7 +1088,7 @@ static u16 g4x_compute_wm(const struct intel_crtc_state *crtc_state,
if (!intel_wm_plane_visible(crtc_state, plane_state)) if (!intel_wm_plane_visible(crtc_state, plane_state))
return 0; return 0;
cpp = plane_state->base.fb->format->cpp[0]; cpp = plane_state->hw.fb->format->cpp[0];
/* /*
* Not 100% sure which way ELK should go here as the * Not 100% sure which way ELK should go here as the
...@@ -1308,8 +1308,8 @@ static int g4x_compute_pipe_wm(struct intel_crtc_state *crtc_state) ...@@ -1308,8 +1308,8 @@ static int g4x_compute_pipe_wm(struct intel_crtc_state *crtc_state)
for_each_oldnew_intel_plane_in_state(state, plane, for_each_oldnew_intel_plane_in_state(state, plane,
old_plane_state, old_plane_state,
new_plane_state, i) { new_plane_state, i) {
if (new_plane_state->base.crtc != &crtc->base && if (new_plane_state->hw.crtc != &crtc->base &&
old_plane_state->base.crtc != &crtc->base) old_plane_state->hw.crtc != &crtc->base)
continue; continue;
if (g4x_raw_plane_wm_compute(crtc_state, new_plane_state)) if (g4x_raw_plane_wm_compute(crtc_state, new_plane_state))
...@@ -1593,7 +1593,7 @@ static u16 vlv_compute_wm_level(const struct intel_crtc_state *crtc_state, ...@@ -1593,7 +1593,7 @@ static u16 vlv_compute_wm_level(const struct intel_crtc_state *crtc_state,
if (!intel_wm_plane_visible(crtc_state, plane_state)) if (!intel_wm_plane_visible(crtc_state, plane_state))
return 0; return 0;
cpp = plane_state->base.fb->format->cpp[0]; cpp = plane_state->hw.fb->format->cpp[0];
clock = adjusted_mode->crtc_clock; clock = adjusted_mode->crtc_clock;
htotal = adjusted_mode->crtc_htotal; htotal = adjusted_mode->crtc_htotal;
width = crtc_state->pipe_src_w; width = crtc_state->pipe_src_w;
...@@ -1829,8 +1829,8 @@ static int vlv_compute_pipe_wm(struct intel_crtc_state *crtc_state) ...@@ -1829,8 +1829,8 @@ static int vlv_compute_pipe_wm(struct intel_crtc_state *crtc_state)
for_each_oldnew_intel_plane_in_state(state, plane, for_each_oldnew_intel_plane_in_state(state, plane,
old_plane_state, old_plane_state,
new_plane_state, i) { new_plane_state, i) {
if (new_plane_state->base.crtc != &crtc->base && if (new_plane_state->hw.crtc != &crtc->base &&
old_plane_state->base.crtc != &crtc->base) old_plane_state->hw.crtc != &crtc->base)
continue; continue;
if (vlv_raw_plane_wm_compute(crtc_state, new_plane_state)) if (vlv_raw_plane_wm_compute(crtc_state, new_plane_state))
...@@ -2475,7 +2475,7 @@ static u32 ilk_compute_pri_wm(const struct intel_crtc_state *crtc_state, ...@@ -2475,7 +2475,7 @@ static u32 ilk_compute_pri_wm(const struct intel_crtc_state *crtc_state,
if (!intel_wm_plane_visible(crtc_state, plane_state)) if (!intel_wm_plane_visible(crtc_state, plane_state))
return 0; return 0;
cpp = plane_state->base.fb->format->cpp[0]; cpp = plane_state->hw.fb->format->cpp[0];
method1 = ilk_wm_method1(crtc_state->pixel_rate, cpp, mem_value); method1 = ilk_wm_method1(crtc_state->pixel_rate, cpp, mem_value);
...@@ -2507,7 +2507,7 @@ static u32 ilk_compute_spr_wm(const struct intel_crtc_state *crtc_state, ...@@ -2507,7 +2507,7 @@ static u32 ilk_compute_spr_wm(const struct intel_crtc_state *crtc_state,
if (!intel_wm_plane_visible(crtc_state, plane_state)) if (!intel_wm_plane_visible(crtc_state, plane_state))
return 0; return 0;
cpp = plane_state->base.fb->format->cpp[0]; cpp = plane_state->hw.fb->format->cpp[0];
method1 = ilk_wm_method1(crtc_state->pixel_rate, cpp, mem_value); method1 = ilk_wm_method1(crtc_state->pixel_rate, cpp, mem_value);
method2 = ilk_wm_method2(crtc_state->pixel_rate, method2 = ilk_wm_method2(crtc_state->pixel_rate,
...@@ -2533,7 +2533,7 @@ static u32 ilk_compute_cur_wm(const struct intel_crtc_state *crtc_state, ...@@ -2533,7 +2533,7 @@ static u32 ilk_compute_cur_wm(const struct intel_crtc_state *crtc_state,
if (!intel_wm_plane_visible(crtc_state, plane_state)) if (!intel_wm_plane_visible(crtc_state, plane_state))
return 0; return 0;
cpp = plane_state->base.fb->format->cpp[0]; cpp = plane_state->hw.fb->format->cpp[0];
return ilk_wm_method2(crtc_state->pixel_rate, return ilk_wm_method2(crtc_state->pixel_rate,
crtc_state->hw.adjusted_mode.crtc_htotal, crtc_state->hw.adjusted_mode.crtc_htotal,
...@@ -2551,7 +2551,7 @@ static u32 ilk_compute_fbc_wm(const struct intel_crtc_state *crtc_state, ...@@ -2551,7 +2551,7 @@ static u32 ilk_compute_fbc_wm(const struct intel_crtc_state *crtc_state,
if (!intel_wm_plane_visible(crtc_state, plane_state)) if (!intel_wm_plane_visible(crtc_state, plane_state))
return 0; return 0;
cpp = plane_state->base.fb->format->cpp[0]; cpp = plane_state->hw.fb->format->cpp[0];
return ilk_wm_fbc(pri_val, drm_rect_width(&plane_state->base.dst), cpp); return ilk_wm_fbc(pri_val, drm_rect_width(&plane_state->base.dst), cpp);
} }
...@@ -4091,7 +4091,7 @@ skl_plane_relative_data_rate(const struct intel_crtc_state *crtc_state, ...@@ -4091,7 +4091,7 @@ skl_plane_relative_data_rate(const struct intel_crtc_state *crtc_state,
int color_plane) int color_plane)
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
u32 data_rate; u32 data_rate;
u32 width = 0, height = 0; u32 width = 0, height = 0;
uint_fixed_16_16_t down_scale_amount; uint_fixed_16_16_t down_scale_amount;
...@@ -4612,7 +4612,7 @@ skl_compute_plane_wm_params(const struct intel_crtc_state *crtc_state, ...@@ -4612,7 +4612,7 @@ skl_compute_plane_wm_params(const struct intel_crtc_state *crtc_state,
const struct intel_plane_state *plane_state, const struct intel_plane_state *plane_state,
struct skl_wm_params *wp, int color_plane) struct skl_wm_params *wp, int color_plane)
{ {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
int width; int width;
/* /*
...@@ -4624,7 +4624,7 @@ skl_compute_plane_wm_params(const struct intel_crtc_state *crtc_state, ...@@ -4624,7 +4624,7 @@ skl_compute_plane_wm_params(const struct intel_crtc_state *crtc_state,
return skl_compute_wm_params(crtc_state, width, return skl_compute_wm_params(crtc_state, width,
fb->format, fb->modifier, fb->format, fb->modifier,
plane_state->base.rotation, plane_state->hw.rotation,
skl_adjusted_plane_pixel_rate(crtc_state, plane_state), skl_adjusted_plane_pixel_rate(crtc_state, plane_state),
wp, color_plane); wp, color_plane);
} }
...@@ -4903,7 +4903,7 @@ static int skl_build_plane_wm(struct intel_crtc_state *crtc_state, ...@@ -4903,7 +4903,7 @@ static int skl_build_plane_wm(struct intel_crtc_state *crtc_state,
const struct intel_plane_state *plane_state) const struct intel_plane_state *plane_state)
{ {
struct intel_plane *plane = to_intel_plane(plane_state->base.plane); struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
enum plane_id plane_id = plane->id; enum plane_id plane_id = plane->id;
int ret; int ret;
...@@ -4936,7 +4936,7 @@ static int icl_build_plane_wm(struct intel_crtc_state *crtc_state, ...@@ -4936,7 +4936,7 @@ static int icl_build_plane_wm(struct intel_crtc_state *crtc_state,
return 0; return 0;
if (plane_state->planar_linked_plane) { if (plane_state->planar_linked_plane) {
const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_framebuffer *fb = plane_state->hw.fb;
enum plane_id y_plane_id = plane_state->planar_linked_plane->id; enum plane_id y_plane_id = plane_state->planar_linked_plane->id;
WARN_ON(!intel_wm_plane_visible(crtc_state, plane_state)); WARN_ON(!intel_wm_plane_visible(crtc_state, plane_state));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment