On Mon, 18 Feb 2013 19:19:55 +0200 Ville Syrj?l? <ville.syrjala at linux.intel.com> wrote: > On Fri, Feb 15, 2013 at 01:23:10PM -0800, Jesse Barnes wrote: > > To be used to restore sprite state on resume. > > > > v2: move sprite tracking bits up so we don't track modified sprite state > > > > Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org> > > --- > > drivers/gpu/drm/i915/intel_drv.h | 5 +++++ > > drivers/gpu/drm/i915/intel_sprite.c | 23 +++++++++++++++++++++++ > > 2 files changed, 28 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > > index 005a91f..1b548e0 100644 > > --- a/drivers/gpu/drm/i915/intel_drv.h > > +++ b/drivers/gpu/drm/i915/intel_drv.h > > @@ -247,6 +247,10 @@ struct intel_plane { > > bool can_scale; > > int max_downscale; > > u32 lut_r[1024], lut_g[1024], lut_b[1024]; > > + int crtc_x, crtc_y; > > + unsigned int crtc_w, crtc_h; > > + uint32_t x, y; > > Can we call just them src_x/src_y instead? > > > + uint32_t src_w, src_h; > > void (*update_plane)(struct drm_plane *plane, > > struct drm_framebuffer *fb, > > struct drm_i915_gem_object *obj, > > @@ -532,6 +536,7 @@ extern bool intel_encoder_check_is_cloned(struct intel_encoder *encoder); > > extern void intel_connector_dpms(struct drm_connector *, int mode); > > extern bool intel_connector_get_hw_state(struct intel_connector *connector); > > extern void intel_modeset_check_state(struct drm_device *dev); > > +extern void intel_plane_restore(struct drm_plane *plane); > > > > > > static inline struct intel_encoder *intel_attached_encoder(struct drm_connector *connector) > > diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c > > index 03cfd62..ca171af 100644 > > --- a/drivers/gpu/drm/i915/intel_sprite.c > > +++ b/drivers/gpu/drm/i915/intel_sprite.c > > @@ -438,6 +438,15 @@ intel_update_plane(struct drm_plane *plane, struct drm_crtc *crtc, > > > > old_obj = intel_plane->obj; > > > > + intel_plane->crtc_x = crtc_x; > > + intel_plane->crtc_y = crtc_y; > > + intel_plane->crtc_w = crtc_w; > > + intel_plane->crtc_h = crtc_h; > > + intel_plane->x = x; > > + intel_plane->y = y; > > x and y are not fixed point numbers. They just contain the integer parts > of src_x and src_y. So you need to use src_x and src_y here instead. > Oops, thanks. Will fix and use the suggested terminology to avoid future confusion. -- Jesse Barnes, Intel Open Source Technology Center