On Tue, Jul 26, 2016 at 12:06 PM, <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Replace the private drm_rects/flags in intel_plane_state > with the ones now living in drm_plane_state. > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Reviewed-by: Sean Paul <seanpaul@xxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_atomic_plane.c | 20 ++--- > drivers/gpu/drm/i915/intel_display.c | 132 +++++++++++++++--------------- > drivers/gpu/drm/i915/intel_drv.h | 3 - > drivers/gpu/drm/i915/intel_fbc.c | 12 +-- > drivers/gpu/drm/i915/intel_pm.c | 60 +++++++------- > drivers/gpu/drm/i915/intel_sprite.c | 84 +++++++++---------- > 6 files changed, 156 insertions(+), 155 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c > index 7de7721f65bc..14d40261db21 100644 > --- a/drivers/gpu/drm/i915/intel_atomic_plane.c > +++ b/drivers/gpu/drm/i915/intel_atomic_plane.c > @@ -139,14 +139,14 @@ static int intel_plane_atomic_check(struct drm_plane *plane, > * we want to keep another copy internal to our driver that we can > * clip/modify ourselves. > */ > - intel_state->src.x1 = state->src_x; > - intel_state->src.y1 = state->src_y; > - intel_state->src.x2 = state->src_x + state->src_w; > - intel_state->src.y2 = state->src_y + state->src_h; > - intel_state->dst.x1 = state->crtc_x; > - intel_state->dst.y1 = state->crtc_y; > - intel_state->dst.x2 = state->crtc_x + state->crtc_w; > - intel_state->dst.y2 = state->crtc_y + state->crtc_h; > + intel_state->base.src.x1 = state->src_x; > + intel_state->base.src.y1 = state->src_y; > + intel_state->base.src.x2 = state->src_x + state->src_w; > + intel_state->base.src.y2 = state->src_y + state->src_h; > + intel_state->base.dst.x1 = state->crtc_x; > + intel_state->base.dst.y1 = state->crtc_y; > + intel_state->base.dst.x2 = state->crtc_x + state->crtc_w; > + intel_state->base.dst.y2 = state->crtc_y + state->crtc_h; > > /* Clip all planes to CRTC size, or 0x0 if CRTC is disabled */ > intel_state->clip.x1 = 0; > @@ -180,7 +180,7 @@ static int intel_plane_atomic_check(struct drm_plane *plane, > } > } > > - intel_state->visible = false; > + intel_state->base.visible = false; > ret = intel_plane->check_plane(plane, crtc_state, intel_state); > if (ret) > return ret; > @@ -196,7 +196,7 @@ static void intel_plane_atomic_update(struct drm_plane *plane, > to_intel_plane_state(plane->state); > struct drm_crtc *crtc = plane->state->crtc ?: old_state->crtc; > > - if (intel_state->visible) > + if (intel_state->base.visible) > intel_plane->update_plane(plane, > to_intel_crtc_state(crtc->state), > intel_state); > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 78beb7e9d384..4f67b7c19b75 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -2565,7 +2565,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc, > * simplest solution is to just disable the primary plane now and > * pretend the BIOS never had it enabled. > */ > - to_intel_plane_state(plane_state)->visible = false; > + to_intel_plane_state(plane_state)->base.visible = false; > crtc_state->plane_mask &= ~(1 << drm_plane_index(primary)); > intel_pre_disable_primary_noatomic(&intel_crtc->base); > intel_plane->disable_plane(primary, &intel_crtc->base); > @@ -2583,14 +2583,14 @@ valid_fb: > plane_state->crtc_w = fb->width; > plane_state->crtc_h = fb->height; > > - intel_state->src.x1 = plane_state->src_x; > - intel_state->src.y1 = plane_state->src_y; > - intel_state->src.x2 = plane_state->src_x + plane_state->src_w; > - intel_state->src.y2 = plane_state->src_y + plane_state->src_h; > - intel_state->dst.x1 = plane_state->crtc_x; > - intel_state->dst.y1 = plane_state->crtc_y; > - intel_state->dst.x2 = plane_state->crtc_x + plane_state->crtc_w; > - intel_state->dst.y2 = plane_state->crtc_y + plane_state->crtc_h; > + intel_state->base.src.x1 = plane_state->src_x; > + intel_state->base.src.y1 = plane_state->src_y; > + intel_state->base.src.x2 = plane_state->src_x + plane_state->src_w; > + intel_state->base.src.y2 = plane_state->src_y + plane_state->src_h; > + intel_state->base.dst.x1 = plane_state->crtc_x; > + intel_state->base.dst.y1 = plane_state->crtc_y; > + intel_state->base.dst.x2 = plane_state->crtc_x + plane_state->crtc_w; > + intel_state->base.dst.y2 = plane_state->crtc_y + plane_state->crtc_h; > > obj = intel_fb_obj(fb); > if (obj->tiling_mode != I915_TILING_NONE) > @@ -2618,8 +2618,8 @@ static void i9xx_update_primary_plane(struct drm_plane *primary, > i915_reg_t reg = DSPCNTR(plane); > unsigned int rotation = plane_state->base.rotation; > int cpp = drm_format_plane_cpp(fb->pixel_format, 0); > - int x = plane_state->src.x1 >> 16; > - int y = plane_state->src.y1 >> 16; > + int x = plane_state->base.src.x1 >> 16; > + int y = plane_state->base.src.y1 >> 16; > > dspcntr = DISPPLANE_GAMMA_ENABLE; > > @@ -2748,8 +2748,8 @@ static void ironlake_update_primary_plane(struct drm_plane *primary, > i915_reg_t reg = DSPCNTR(plane); > unsigned int rotation = plane_state->base.rotation; > int cpp = drm_format_plane_cpp(fb->pixel_format, 0); > - int x = plane_state->src.x1 >> 16; > - int y = plane_state->src.y1 >> 16; > + int x = plane_state->base.src.x1 >> 16; > + int y = plane_state->base.src.y1 >> 16; > > dspcntr = DISPPLANE_GAMMA_ENABLE; > dspcntr |= DISPLAY_PLANE_ENABLE; > @@ -2987,14 +2987,14 @@ static void skylake_update_primary_plane(struct drm_plane *plane, > int x_offset, y_offset; > u32 surf_addr; > int scaler_id = plane_state->scaler_id; > - int src_x = plane_state->src.x1 >> 16; > - int src_y = plane_state->src.y1 >> 16; > - int src_w = drm_rect_width(&plane_state->src) >> 16; > - int src_h = drm_rect_height(&plane_state->src) >> 16; > - int dst_x = plane_state->dst.x1; > - int dst_y = plane_state->dst.y1; > - int dst_w = drm_rect_width(&plane_state->dst); > - int dst_h = drm_rect_height(&plane_state->dst); > + int src_x = plane_state->base.src.x1 >> 16; > + int src_y = plane_state->base.src.y1 >> 16; > + int src_w = drm_rect_width(&plane_state->base.src) >> 16; > + int src_h = drm_rect_height(&plane_state->base.src) >> 16; > + int dst_x = plane_state->base.dst.x1; > + int dst_y = plane_state->base.dst.y1; > + int dst_w = drm_rect_width(&plane_state->base.dst); > + int dst_h = drm_rect_height(&plane_state->base.dst); > > plane_ctl = PLANE_CTL_ENABLE | > PLANE_CTL_PIPE_GAMMA_ENABLE | > @@ -3009,7 +3009,7 @@ static void skylake_update_primary_plane(struct drm_plane *plane, > fb->pixel_format); > surf_addr = intel_plane_obj_offset(to_intel_plane(plane), obj, 0); > > - WARN_ON(drm_rect_width(&plane_state->src) == 0); > + WARN_ON(drm_rect_width(&plane_state->base.src) == 0); > > if (intel_rotation_90_or_270(rotation)) { > int cpp = drm_format_plane_cpp(fb->pixel_format, 0); > @@ -3098,7 +3098,7 @@ static void intel_update_primary_planes(struct drm_device *dev) > drm_modeset_lock_crtc(crtc, &plane->base); > plane_state = to_intel_plane_state(plane->base.state); > > - if (plane_state->visible) > + if (plane_state->base.visible) > plane->update_plane(&plane->base, > to_intel_crtc_state(crtc->state), > plane_state); > @@ -4273,7 +4273,7 @@ static int skl_update_scaler_plane(struct intel_crtc_state *crtc_state, > struct drm_framebuffer *fb = plane_state->base.fb; > int ret; > > - bool force_detach = !fb || !plane_state->visible; > + bool force_detach = !fb || !plane_state->base.visible; > > DRM_DEBUG_KMS("Updating scaler for [PLANE:%d:%s] scaler_user index %u.%u\n", > intel_plane->base.base.id, intel_plane->base.name, > @@ -4283,10 +4283,10 @@ static int skl_update_scaler_plane(struct intel_crtc_state *crtc_state, > drm_plane_index(&intel_plane->base), > &plane_state->scaler_id, > plane_state->base.rotation, > - drm_rect_width(&plane_state->src) >> 16, > - drm_rect_height(&plane_state->src) >> 16, > - drm_rect_width(&plane_state->dst), > - drm_rect_height(&plane_state->dst)); > + drm_rect_width(&plane_state->base.src) >> 16, > + drm_rect_height(&plane_state->base.src) >> 16, > + drm_rect_width(&plane_state->base.dst), > + drm_rect_height(&plane_state->base.dst)); > > if (ret || plane_state->scaler_id < 0) > return ret; > @@ -4584,9 +4584,9 @@ static void intel_post_plane_update(struct intel_crtc_state *old_crtc_state) > > intel_fbc_post_update(crtc); > > - if (primary_state->visible && > + if (primary_state->base.visible && > (needs_modeset(&pipe_config->base) || > - !old_primary_state->visible)) > + !old_primary_state->base.visible)) > intel_post_enable_primary(&crtc->base); > } > } > @@ -4612,8 +4612,8 @@ static void intel_pre_plane_update(struct intel_crtc_state *old_crtc_state) > > intel_fbc_pre_update(crtc, pipe_config, primary_state); > > - if (old_primary_state->visible && > - (modeset || !primary_state->visible)) > + if (old_primary_state->base.visible && > + (modeset || !primary_state->base.visible)) > intel_pre_disable_primary(&crtc->base); > } > > @@ -6298,13 +6298,13 @@ static void intel_crtc_disable_noatomic(struct drm_crtc *crtc) > if (!intel_crtc->active) > return; > > - if (to_intel_plane_state(crtc->primary->state)->visible) { > + if (to_intel_plane_state(crtc->primary->state)->base.visible) { > WARN_ON(intel_crtc->flip_work); > > intel_pre_disable_primary_noatomic(crtc); > > intel_crtc_disable_planes(crtc, 1 << drm_plane_index(crtc->primary)); > - to_intel_plane_state(crtc->primary->state)->visible = false; > + to_intel_plane_state(crtc->primary->state)->base.visible = false; > } > > dev_priv->display.crtc_disable(crtc); > @@ -10178,7 +10178,7 @@ static void i845_update_cursor(struct drm_crtc *crtc, u32 base, > struct intel_crtc *intel_crtc = to_intel_crtc(crtc); > uint32_t cntl = 0, size = 0; > > - if (plane_state && plane_state->visible) { > + if (plane_state && plane_state->base.visible) { > unsigned int width = plane_state->base.crtc_w; > unsigned int height = plane_state->base.crtc_h; > unsigned int stride = roundup_pow_of_two(width) * 4; > @@ -10242,7 +10242,7 @@ static void i9xx_update_cursor(struct drm_crtc *crtc, u32 base, > int pipe = intel_crtc->pipe; > uint32_t cntl = 0; > > - if (plane_state && plane_state->visible) { > + if (plane_state && plane_state->base.visible) { > cntl = MCURSOR_GAMMA_ENABLE; > switch (plane_state->base.crtc_w) { > case 64: > @@ -11824,7 +11824,7 @@ static bool intel_wm_need_update(struct drm_plane *plane, > struct intel_plane_state *cur = to_intel_plane_state(plane->state); > > /* Update watermarks on tiling or size changes. */ > - if (new->visible != cur->visible) > + if (new->base.visible != cur->base.visible) > return true; > > if (!cur->base.fb || !new->base.fb) > @@ -11832,10 +11832,10 @@ static bool intel_wm_need_update(struct drm_plane *plane, > > if (cur->base.fb->modifier[0] != new->base.fb->modifier[0] || > cur->base.rotation != new->base.rotation || > - drm_rect_width(&new->src) != drm_rect_width(&cur->src) || > - drm_rect_height(&new->src) != drm_rect_height(&cur->src) || > - drm_rect_width(&new->dst) != drm_rect_width(&cur->dst) || > - drm_rect_height(&new->dst) != drm_rect_height(&cur->dst)) > + 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_width(&new->base.dst) != drm_rect_width(&cur->base.dst) || > + drm_rect_height(&new->base.dst) != drm_rect_height(&cur->base.dst)) > return true; > > return false; > @@ -11843,10 +11843,10 @@ static bool intel_wm_need_update(struct drm_plane *plane, > > static bool needs_scaling(struct intel_plane_state *state) > { > - int src_w = drm_rect_width(&state->src) >> 16; > - int src_h = drm_rect_height(&state->src) >> 16; > - int dst_w = drm_rect_width(&state->dst); > - int dst_h = drm_rect_height(&state->dst); > + int src_w = drm_rect_width(&state->base.src) >> 16; > + int src_h = drm_rect_height(&state->base.src) >> 16; > + int dst_w = drm_rect_width(&state->base.dst); > + int dst_h = drm_rect_height(&state->base.dst); > > return (src_w != dst_w || src_h != dst_h); > } > @@ -11877,8 +11877,8 @@ int intel_plane_atomic_calc_changes(struct drm_crtc_state *crtc_state, > return ret; > } > > - was_visible = old_plane_state->visible; > - visible = to_intel_plane_state(plane_state)->visible; > + was_visible = old_plane_state->base.visible; > + visible = to_intel_plane_state(plane_state)->base.visible; > > if (!was_crtc_enabled && WARN_ON(was_visible)) > was_visible = false; > @@ -11894,7 +11894,7 @@ int intel_plane_atomic_calc_changes(struct drm_crtc_state *crtc_state, > * only combine the results from all planes in the current place? > */ > if (!is_crtc_enabled) > - to_intel_plane_state(plane_state)->visible = visible = false; > + to_intel_plane_state(plane_state)->base.visible = visible = false; > > if (!was_visible && !visible) > return 0; > @@ -12299,12 +12299,13 @@ static void intel_dump_pipe_config(struct intel_crtc *crtc, > drm_get_format_name(fb->pixel_format)); > DRM_DEBUG_KMS("\tscaler:%d src %dx%d+%d+%d dst %dx%d+%d+%d\n", > state->scaler_id, > - state->src.x1 >> 16, state->src.y1 >> 16, > - drm_rect_width(&state->src) >> 16, > - drm_rect_height(&state->src) >> 16, > - state->dst.x1, state->dst.y1, > - drm_rect_width(&state->dst), > - drm_rect_height(&state->dst)); > + state->base.src.x1 >> 16, > + state->base.src.y1 >> 16, > + drm_rect_width(&state->base.src) >> 16, > + drm_rect_height(&state->base.src) >> 16, > + state->base.dst.x1, state->base.dst.y1, > + drm_rect_width(&state->base.dst), > + drm_rect_height(&state->base.dst)); > } > } > > @@ -14139,12 +14140,14 @@ intel_check_primary_plane(struct drm_plane *plane, > can_position = true; > } > > - return drm_plane_helper_check_update(plane, crtc, fb, &state->src, > - &state->dst, &state->clip, > + return drm_plane_helper_check_update(plane, crtc, fb, > + &state->base.src, > + &state->base.dst, > + &state->base.clip, > state->base.rotation, > min_scale, max_scale, > can_position, true, > - &state->visible); > + &state->base.visible); > } > > static void intel_begin_crtc_commit(struct drm_crtc *crtc, > @@ -14331,12 +14334,13 @@ intel_check_cursor_plane(struct drm_plane *plane, > unsigned stride; > int ret; > > - ret = drm_plane_helper_check_update(plane, crtc, fb, &state->src, > - &state->dst, &state->clip, > + ret = drm_plane_helper_check_update(plane, crtc, fb, &state->base.src, > + &state->base.dst, > + &state->base.clip, > state->base.rotation, > DRM_PLANE_HELPER_NO_SCALING, > DRM_PLANE_HELPER_NO_SCALING, > - true, true, &state->visible); > + true, true, &state->base.visible); > if (ret) > return ret; > > @@ -14373,7 +14377,7 @@ intel_check_cursor_plane(struct drm_plane *plane, > * Refuse the put the cursor into that compromised position. > */ > if (IS_CHERRYVIEW(plane->dev) && pipe == PIPE_C && > - state->visible && state->base.crtc_x < 0) { > + state->base.visible && state->base.crtc_x < 0) { > DRM_DEBUG_KMS("CHV cursor C not allowed to straddle the left screen edge\n"); > return -EINVAL; > } > @@ -15822,7 +15826,7 @@ static void intel_sanitize_crtc(struct intel_crtc *crtc) > * Temporarily change the plane mapping and disable everything > * ... */ > plane = crtc->plane; > - to_intel_plane_state(crtc->base.primary->state)->visible = true; > + to_intel_plane_state(crtc->base.primary->state)->base.visible = true; > crtc->plane = !plane; > intel_crtc_disable_noatomic(&crtc->base); > crtc->plane = plane; > @@ -15949,10 +15953,10 @@ static void readout_plane_state(struct intel_crtc *crtc) > struct intel_plane_state *plane_state = > to_intel_plane_state(primary->state); > > - plane_state->visible = crtc->active && > + plane_state->base.visible = crtc->active && > primary_get_hw_state(to_intel_plane(primary)); > > - if (plane_state->visible) > + if (plane_state->base.visible) > crtc->base.state->plane_mask |= 1 << drm_plane_index(primary); > } > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index e74d851868c5..2f533aa0c3f3 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -338,10 +338,7 @@ struct intel_atomic_state { > > struct intel_plane_state { > struct drm_plane_state base; > - struct drm_rect src; > - struct drm_rect dst; > struct drm_rect clip; > - bool visible; > > /* > * scaler_id > diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c > index 781e2f5f7cd8..23d494b18459 100644 > --- a/drivers/gpu/drm/i915/intel_fbc.c > +++ b/drivers/gpu/drm/i915/intel_fbc.c > @@ -494,7 +494,7 @@ static bool multiple_pipes_ok(struct intel_crtc *crtc, > if (!no_fbc_on_multiple_pipes(dev_priv)) > return true; > > - if (plane_state->visible) > + if (plane_state->base.visible) > fbc->visible_pipes_mask |= (1 << pipe); > else > fbc->visible_pipes_mask &= ~(1 << pipe); > @@ -725,9 +725,9 @@ static void intel_fbc_update_state_cache(struct intel_crtc *crtc, > ilk_pipe_pixel_rate(crtc_state); > > cache->plane.rotation = plane_state->base.rotation; > - cache->plane.src_w = drm_rect_width(&plane_state->src) >> 16; > - cache->plane.src_h = drm_rect_height(&plane_state->src) >> 16; > - cache->plane.visible = plane_state->visible; > + cache->plane.src_w = drm_rect_width(&plane_state->base.src) >> 16; > + cache->plane.src_h = drm_rect_height(&plane_state->base.src) >> 16; > + cache->plane.visible = plane_state->base.visible; > > if (!cache->plane.visible) > return; > @@ -1050,7 +1050,7 @@ void intel_fbc_choose_crtc(struct drm_i915_private *dev_priv, > struct intel_plane_state *intel_plane_state = > to_intel_plane_state(plane_state); > > - if (!intel_plane_state->visible) > + if (!intel_plane_state->base.visible) > continue; > > for_each_crtc_in_state(state, crtc, crtc_state, j) { > @@ -1214,7 +1214,7 @@ void intel_fbc_init_pipe_state(struct drm_i915_private *dev_priv) > > for_each_intel_crtc(&dev_priv->drm, crtc) > if (intel_crtc_active(&crtc->base) && > - to_intel_plane_state(crtc->base.primary->state)->visible) > + to_intel_plane_state(crtc->base.primary->state)->base.visible) > dev_priv->fbc.visible_pipes_mask |= (1 << crtc->pipe); > } > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > index 64d628c915a3..8584e8f78b2e 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -960,7 +960,7 @@ static uint16_t vlv_compute_wm_level(struct intel_plane *plane, > if (dev_priv->wm.pri_latency[level] == 0) > return USHRT_MAX; > > - if (!state->visible) > + if (!state->base.visible) > return 0; > > cpp = drm_format_plane_cpp(state->base.fb->pixel_format, 0); > @@ -1002,7 +1002,7 @@ static void vlv_compute_fifo(struct intel_crtc *crtc) > if (plane->base.type == DRM_PLANE_TYPE_CURSOR) > continue; > > - if (state->visible) { > + if (state->base.visible) { > wm_state->num_active_planes++; > total_rate += drm_format_plane_cpp(state->base.fb->pixel_format, 0); > } > @@ -1018,7 +1018,7 @@ static void vlv_compute_fifo(struct intel_crtc *crtc) > continue; > } > > - if (!state->visible) { > + if (!state->base.visible) { > plane->wm.fifo_size = 0; > continue; > } > @@ -1118,7 +1118,7 @@ static void vlv_compute_wm(struct intel_crtc *crtc) > struct intel_plane_state *state = > to_intel_plane_state(plane->base.state); > > - if (!state->visible) > + if (!state->base.visible) > continue; > > /* normal watermarks */ > @@ -1767,7 +1767,7 @@ static uint32_t ilk_compute_pri_wm(const struct intel_crtc_state *cstate, > drm_format_plane_cpp(pstate->base.fb->pixel_format, 0) : 0; > uint32_t method1, method2; > > - if (!cstate->base.active || !pstate->visible) > + if (!cstate->base.active || !pstate->base.visible) > return 0; > > method1 = ilk_wm_method1(ilk_pipe_pixel_rate(cstate), cpp, mem_value); > @@ -1777,7 +1777,7 @@ static uint32_t ilk_compute_pri_wm(const struct intel_crtc_state *cstate, > > method2 = ilk_wm_method2(ilk_pipe_pixel_rate(cstate), > cstate->base.adjusted_mode.crtc_htotal, > - drm_rect_width(&pstate->dst), > + drm_rect_width(&pstate->base.dst), > cpp, mem_value); > > return min(method1, method2); > @@ -1795,13 +1795,13 @@ static uint32_t ilk_compute_spr_wm(const struct intel_crtc_state *cstate, > drm_format_plane_cpp(pstate->base.fb->pixel_format, 0) : 0; > uint32_t method1, method2; > > - if (!cstate->base.active || !pstate->visible) > + if (!cstate->base.active || !pstate->base.visible) > return 0; > > method1 = ilk_wm_method1(ilk_pipe_pixel_rate(cstate), cpp, mem_value); > method2 = ilk_wm_method2(ilk_pipe_pixel_rate(cstate), > cstate->base.adjusted_mode.crtc_htotal, > - drm_rect_width(&pstate->dst), > + drm_rect_width(&pstate->base.dst), > cpp, mem_value); > return min(method1, method2); > } > @@ -1820,7 +1820,7 @@ static uint32_t ilk_compute_cur_wm(const struct intel_crtc_state *cstate, > * this is necessary to avoid flickering. > */ > int cpp = 4; > - int width = pstate->visible ? pstate->base.crtc_w : 64; > + int width = pstate->base.visible ? pstate->base.crtc_w : 64; > > if (!cstate->base.active) > return 0; > @@ -1838,10 +1838,10 @@ static uint32_t ilk_compute_fbc_wm(const struct intel_crtc_state *cstate, > int cpp = pstate->base.fb ? > drm_format_plane_cpp(pstate->base.fb->pixel_format, 0) : 0; > > - if (!cstate->base.active || !pstate->visible) > + if (!cstate->base.active || !pstate->base.visible) > return 0; > > - return ilk_wm_fbc(pri_val, drm_rect_width(&pstate->dst), cpp); > + return ilk_wm_fbc(pri_val, drm_rect_width(&pstate->base.dst), cpp); > } > > static unsigned int ilk_display_fifo_size(const struct drm_device *dev) > @@ -2358,10 +2358,10 @@ static int ilk_compute_pipe_wm(struct intel_crtc_state *cstate) > > pipe_wm->pipe_enabled = cstate->base.active; > if (sprstate) { > - pipe_wm->sprites_enabled = sprstate->visible; > - pipe_wm->sprites_scaled = sprstate->visible && > - (drm_rect_width(&sprstate->dst) != drm_rect_width(&sprstate->src) >> 16 || > - drm_rect_height(&sprstate->dst) != drm_rect_height(&sprstate->src) >> 16); > + pipe_wm->sprites_enabled = sprstate->base.visible; > + pipe_wm->sprites_scaled = sprstate->base.visible && > + (drm_rect_width(&sprstate->base.dst) != drm_rect_width(&sprstate->base.src) >> 16 || > + drm_rect_height(&sprstate->base.dst) != drm_rect_height(&sprstate->base.src) >> 16); > } > > usable_level = max_level; > @@ -2996,14 +2996,14 @@ skl_plane_downscale_amount(const struct intel_plane_state *pstate) > uint32_t downscale_h, downscale_w; > uint32_t src_w, src_h, dst_w, dst_h; > > - if (WARN_ON(!pstate->visible)) > + if (WARN_ON(!pstate->base.visible)) > return DRM_PLANE_HELPER_NO_SCALING; > > /* n.b., src is 16.16 fixed point, dst is whole integer */ > - src_w = drm_rect_width(&pstate->src); > - src_h = drm_rect_height(&pstate->src); > - dst_w = drm_rect_width(&pstate->dst); > - dst_h = drm_rect_height(&pstate->dst); > + src_w = drm_rect_width(&pstate->base.src); > + src_h = drm_rect_height(&pstate->base.src); > + dst_w = drm_rect_width(&pstate->base.dst); > + dst_h = drm_rect_height(&pstate->base.dst); > if (intel_rotation_90_or_270(pstate->base.rotation)) > swap(dst_w, dst_h); > > @@ -3025,15 +3025,15 @@ skl_plane_relative_data_rate(const struct intel_crtc_state *cstate, > uint32_t width = 0, height = 0; > unsigned format = fb ? fb->pixel_format : DRM_FORMAT_XRGB8888; > > - if (!intel_pstate->visible) > + if (!intel_pstate->base.visible) > return 0; > if (pstate->plane->type == DRM_PLANE_TYPE_CURSOR) > return 0; > if (y && format != DRM_FORMAT_NV12) > return 0; > > - width = drm_rect_width(&intel_pstate->src) >> 16; > - height = drm_rect_height(&intel_pstate->src) >> 16; > + width = drm_rect_width(&intel_pstate->base.src) >> 16; > + height = drm_rect_height(&intel_pstate->base.src) >> 16; > > if (intel_rotation_90_or_270(pstate->rotation)) > swap(width, height); > @@ -3134,8 +3134,8 @@ skl_ddb_min_alloc(const struct drm_plane_state *pstate, > fb->modifier[0] != I915_FORMAT_MOD_Yf_TILED) > return 8; > > - src_w = drm_rect_width(&intel_pstate->src) >> 16; > - src_h = drm_rect_height(&intel_pstate->src) >> 16; > + src_w = drm_rect_width(&intel_pstate->base.src) >> 16; > + src_h = drm_rect_height(&intel_pstate->base.src) >> 16; > > if (intel_rotation_90_or_270(pstate->rotation)) > swap(src_w, src_h); > @@ -3226,7 +3226,7 @@ skl_allocate_pipe_ddb(struct intel_crtc_state *cstate, > if (intel_plane->pipe != pipe) > continue; > > - if (!to_intel_plane_state(pstate)->visible) { > + if (!to_intel_plane_state(pstate)->base.visible) { > minimum[id] = 0; > y_minimum[id] = 0; > continue; > @@ -3363,7 +3363,7 @@ static uint32_t skl_adjusted_plane_pixel_rate(const struct intel_crtc_state *cst > uint64_t pixel_rate; > > /* Shouldn't reach here on disabled planes... */ > - if (WARN_ON(!pstate->visible)) > + if (WARN_ON(!pstate->base.visible)) > return 0; > > /* > @@ -3399,13 +3399,13 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv, > uint32_t width = 0, height = 0; > uint32_t plane_pixel_rate; > > - if (latency == 0 || !cstate->base.active || !intel_pstate->visible) { > + if (latency == 0 || !cstate->base.active || !intel_pstate->base.visible) { > *enabled = false; > return 0; > } > > - width = drm_rect_width(&intel_pstate->src) >> 16; > - height = drm_rect_height(&intel_pstate->src) >> 16; > + width = drm_rect_width(&intel_pstate->base.src) >> 16; > + height = drm_rect_height(&intel_pstate->base.src) >> 16; > > if (intel_rotation_90_or_270(pstate->rotation)) > swap(width, height); > diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c > index 0de935ad01c2..10f10915c0bc 100644 > --- a/drivers/gpu/drm/i915/intel_sprite.c > +++ b/drivers/gpu/drm/i915/intel_sprite.c > @@ -211,14 +211,14 @@ skl_update_plane(struct drm_plane *drm_plane, > u32 tile_height, plane_offset, plane_size; > unsigned int rotation = plane_state->base.rotation; > int x_offset, y_offset; > - int crtc_x = plane_state->dst.x1; > - int crtc_y = plane_state->dst.y1; > - uint32_t crtc_w = drm_rect_width(&plane_state->dst); > - uint32_t crtc_h = drm_rect_height(&plane_state->dst); > - uint32_t x = plane_state->src.x1 >> 16; > - uint32_t y = plane_state->src.y1 >> 16; > - uint32_t src_w = drm_rect_width(&plane_state->src) >> 16; > - uint32_t src_h = drm_rect_height(&plane_state->src) >> 16; > + int crtc_x = plane_state->base.dst.x1; > + int crtc_y = plane_state->base.dst.y1; > + uint32_t crtc_w = drm_rect_width(&plane_state->base.dst); > + uint32_t crtc_h = drm_rect_height(&plane_state->base.dst); > + uint32_t x = plane_state->base.src.x1 >> 16; > + uint32_t y = plane_state->base.src.y1 >> 16; > + uint32_t src_w = drm_rect_width(&plane_state->base.src) >> 16; > + uint32_t src_h = drm_rect_height(&plane_state->base.src) >> 16; > > plane_ctl = PLANE_CTL_ENABLE | > PLANE_CTL_PIPE_GAMMA_ENABLE | > @@ -370,14 +370,14 @@ vlv_update_plane(struct drm_plane *dplane, > unsigned int rotation = dplane->state->rotation; > int cpp = drm_format_plane_cpp(fb->pixel_format, 0); > const struct drm_intel_sprite_colorkey *key = &plane_state->ckey; > - int crtc_x = plane_state->dst.x1; > - int crtc_y = plane_state->dst.y1; > - uint32_t crtc_w = drm_rect_width(&plane_state->dst); > - uint32_t crtc_h = drm_rect_height(&plane_state->dst); > - uint32_t x = plane_state->src.x1 >> 16; > - uint32_t y = plane_state->src.y1 >> 16; > - uint32_t src_w = drm_rect_width(&plane_state->src) >> 16; > - uint32_t src_h = drm_rect_height(&plane_state->src) >> 16; > + int crtc_x = plane_state->base.dst.x1; > + int crtc_y = plane_state->base.dst.y1; > + uint32_t crtc_w = drm_rect_width(&plane_state->base.dst); > + uint32_t crtc_h = drm_rect_height(&plane_state->base.dst); > + uint32_t x = plane_state->base.src.x1 >> 16; > + uint32_t y = plane_state->base.src.y1 >> 16; > + uint32_t src_w = drm_rect_width(&plane_state->base.src) >> 16; > + uint32_t src_h = drm_rect_height(&plane_state->base.src) >> 16; > > sprctl = SP_ENABLE; > > @@ -512,14 +512,14 @@ ivb_update_plane(struct drm_plane *plane, > unsigned int rotation = plane_state->base.rotation; > int cpp = drm_format_plane_cpp(fb->pixel_format, 0); > const struct drm_intel_sprite_colorkey *key = &plane_state->ckey; > - int crtc_x = plane_state->dst.x1; > - int crtc_y = plane_state->dst.y1; > - uint32_t crtc_w = drm_rect_width(&plane_state->dst); > - uint32_t crtc_h = drm_rect_height(&plane_state->dst); > - uint32_t x = plane_state->src.x1 >> 16; > - uint32_t y = plane_state->src.y1 >> 16; > - uint32_t src_w = drm_rect_width(&plane_state->src) >> 16; > - uint32_t src_h = drm_rect_height(&plane_state->src) >> 16; > + int crtc_x = plane_state->base.dst.x1; > + int crtc_y = plane_state->base.dst.y1; > + uint32_t crtc_w = drm_rect_width(&plane_state->base.dst); > + uint32_t crtc_h = drm_rect_height(&plane_state->base.dst); > + uint32_t x = plane_state->base.src.x1 >> 16; > + uint32_t y = plane_state->base.src.y1 >> 16; > + uint32_t src_w = drm_rect_width(&plane_state->base.src) >> 16; > + uint32_t src_h = drm_rect_height(&plane_state->base.src) >> 16; > > sprctl = SPRITE_ENABLE; > > @@ -653,14 +653,14 @@ ilk_update_plane(struct drm_plane *plane, > unsigned int rotation = plane_state->base.rotation; > int cpp = drm_format_plane_cpp(fb->pixel_format, 0); > const struct drm_intel_sprite_colorkey *key = &plane_state->ckey; > - int crtc_x = plane_state->dst.x1; > - int crtc_y = plane_state->dst.y1; > - uint32_t crtc_w = drm_rect_width(&plane_state->dst); > - uint32_t crtc_h = drm_rect_height(&plane_state->dst); > - uint32_t x = plane_state->src.x1 >> 16; > - uint32_t y = plane_state->src.y1 >> 16; > - uint32_t src_w = drm_rect_width(&plane_state->src) >> 16; > - uint32_t src_h = drm_rect_height(&plane_state->src) >> 16; > + int crtc_x = plane_state->base.dst.x1; > + int crtc_y = plane_state->base.dst.y1; > + uint32_t crtc_w = drm_rect_width(&plane_state->base.dst); > + uint32_t crtc_h = drm_rect_height(&plane_state->base.dst); > + uint32_t x = plane_state->base.src.x1 >> 16; > + uint32_t y = plane_state->base.src.y1 >> 16; > + uint32_t src_w = drm_rect_width(&plane_state->base.src) >> 16; > + uint32_t src_h = drm_rect_height(&plane_state->base.src) >> 16; > > dvscntr = DVS_ENABLE; > > @@ -778,15 +778,15 @@ intel_check_sprite_plane(struct drm_plane *plane, > int crtc_x, crtc_y; > unsigned int crtc_w, crtc_h; > uint32_t src_x, src_y, src_w, src_h; > - struct drm_rect *src = &state->src; > - struct drm_rect *dst = &state->dst; > + struct drm_rect *src = &state->base.src; > + struct drm_rect *dst = &state->base.dst; > const struct drm_rect *clip = &state->clip; > int hscale, vscale; > int max_scale, min_scale; > bool can_scale; > > if (!fb) { > - state->visible = false; > + state->base.visible = false; > return 0; > } > > @@ -834,14 +834,14 @@ intel_check_sprite_plane(struct drm_plane *plane, > vscale = drm_rect_calc_vscale_relaxed(src, dst, min_scale, max_scale); > BUG_ON(vscale < 0); > > - state->visible = drm_rect_clip_scaled(src, dst, clip, hscale, vscale); > + state->base.visible = drm_rect_clip_scaled(src, dst, clip, hscale, vscale); > > crtc_x = dst->x1; > crtc_y = dst->y1; > crtc_w = drm_rect_width(dst); > crtc_h = drm_rect_height(dst); > > - if (state->visible) { > + if (state->base.visible) { > /* check again in case clipping clamped the results */ > hscale = drm_rect_calc_hscale(src, dst, min_scale, max_scale); > if (hscale < 0) { > @@ -898,12 +898,12 @@ intel_check_sprite_plane(struct drm_plane *plane, > crtc_w &= ~1; > > if (crtc_w == 0) > - state->visible = false; > + state->base.visible = false; > } > } > > /* Check size restrictions when scaling */ > - if (state->visible && (src_w != crtc_w || src_h != crtc_h)) { > + if (state->base.visible && (src_w != crtc_w || src_h != crtc_h)) { > unsigned int width_bytes; > int cpp = drm_format_plane_cpp(fb->pixel_format, 0); > > @@ -912,10 +912,10 @@ intel_check_sprite_plane(struct drm_plane *plane, > /* FIXME interlacing min height is 6 */ > > if (crtc_w < 3 || crtc_h < 3) > - state->visible = false; > + state->base.visible = false; > > if (src_w < 3 || src_h < 3) > - state->visible = false; > + state->base.visible = false; > > width_bytes = ((src_x * cpp) & 63) + src_w * cpp; > > @@ -926,7 +926,7 @@ intel_check_sprite_plane(struct drm_plane *plane, > } > } > > - if (state->visible) { > + if (state->base.visible) { > src->x1 = src_x << 16; > src->x2 = (src_x + src_w) << 16; > src->y1 = src_y << 16; > -- > 2.7.4 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx