drm: add helpers to go from plane state to drm_rect
Signed-off-by: Rob Clark <robdclark@gmail.com> Reviewed-by: Sean Paul <seanpaul@chromium.org> [seanpaul resolved conflict in drm_plane.h] Signed-off-by: Sean Paul <seanpaul@chromium.org>
This commit is contained in:
parent
d8187177b0
commit
1638d30c15
|
@ -130,15 +130,8 @@ int drm_plane_helper_check_state(struct drm_plane_state *state,
|
|||
unsigned int rotation = state->rotation;
|
||||
int hscale, vscale;
|
||||
|
||||
src->x1 = state->src_x;
|
||||
src->y1 = state->src_y;
|
||||
src->x2 = state->src_x + state->src_w;
|
||||
src->y2 = state->src_y + state->src_h;
|
||||
|
||||
dst->x1 = state->crtc_x;
|
||||
dst->y1 = state->crtc_y;
|
||||
dst->x2 = state->crtc_x + state->crtc_w;
|
||||
dst->y2 = state->crtc_y + state->crtc_h;
|
||||
*src = drm_plane_state_src(state);
|
||||
*dst = drm_plane_state_dest(state);
|
||||
|
||||
if (!fb) {
|
||||
state->visible = false;
|
||||
|
|
|
@ -2824,14 +2824,8 @@ valid_fb:
|
|||
plane_state->crtc_w = fb->width;
|
||||
plane_state->crtc_h = fb->height;
|
||||
|
||||
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;
|
||||
intel_state->base.src = drm_plane_state_src(plane_state);
|
||||
intel_state->base.dst = drm_plane_state_dest(plane_state);
|
||||
|
||||
obj = intel_fb_obj(fb);
|
||||
if (i915_gem_object_is_tiled(obj))
|
||||
|
|
|
@ -773,15 +773,8 @@ intel_check_sprite_plane(struct drm_plane *plane,
|
|||
bool can_scale;
|
||||
int ret;
|
||||
|
||||
src->x1 = state->base.src_x;
|
||||
src->y1 = state->base.src_y;
|
||||
src->x2 = state->base.src_x + state->base.src_w;
|
||||
src->y2 = state->base.src_y + state->base.src_h;
|
||||
|
||||
dst->x1 = state->base.crtc_x;
|
||||
dst->y1 = state->base.crtc_y;
|
||||
dst->x2 = state->base.crtc_x + state->base.crtc_w;
|
||||
dst->y2 = state->base.crtc_y + state->base.crtc_h;
|
||||
*src = drm_plane_state_src(&state->base);
|
||||
*dst = drm_plane_state_dest(&state->base);
|
||||
|
||||
if (!fb) {
|
||||
state->base.visible = false;
|
||||
|
|
|
@ -118,6 +118,30 @@ struct drm_plane_state {
|
|||
struct drm_atomic_state *state;
|
||||
};
|
||||
|
||||
static inline struct drm_rect
|
||||
drm_plane_state_src(const struct drm_plane_state *state)
|
||||
{
|
||||
struct drm_rect src = {
|
||||
.x1 = state->src_x,
|
||||
.y1 = state->src_y,
|
||||
.x2 = state->src_x + state->src_w,
|
||||
.y2 = state->src_y + state->src_h,
|
||||
};
|
||||
return src;
|
||||
}
|
||||
|
||||
static inline struct drm_rect
|
||||
drm_plane_state_dest(const struct drm_plane_state *state)
|
||||
{
|
||||
struct drm_rect dest = {
|
||||
.x1 = state->crtc_x,
|
||||
.y1 = state->crtc_y,
|
||||
.x2 = state->crtc_x + state->crtc_w,
|
||||
.y2 = state->crtc_y + state->crtc_h,
|
||||
};
|
||||
return dest;
|
||||
}
|
||||
|
||||
/**
|
||||
* struct drm_plane_funcs - driver plane control functions
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue