On Mon, Nov 07, 2011 at 10:02:52AM -0800, Jesse Barnes wrote: > Planes are a bit like half-CRTCs. They have a location and fb, but > don't drive outputs directly. Add support for handling them to the core > KMS code. > > Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
One question belowk, but still: Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch> > /** > + * drm_plane_funcs - driver plane control functions > + * @update_plane: update the plane configuration > + * @disable_plane: shut down the plane > + * @destroy: clean up plane resources > + */ > +struct drm_plane_funcs { > + int (*update_plane)(struct drm_plane *plane, > + struct drm_crtc *crtc, struct drm_framebuffer *fb, > + int crtc_x, int crtc_y, > + unsigned int crtc_w, unsigned int crtc_h, > + uint32_t src_x, uint32_t src_y, > + uint32_t src_w, uint32_t src_h); > + int (*disable_plane)(struct drm_plane *plane); > + void (*destroy)(struct drm_plane *plane); > +}; > + > +/** > + * drm_plane - central DRM plane control structure > + * @dev: DRM device this plane belongs to > + * @kdev: kernel device > + * @attr: kdev attributes > + * @head: for list management > + * @base: base mode object > + * @possible_crtcs: pipes this plane can be bound to > + * @format_types: array of formats supported by this plane > + * @format_count: number of formats supported > + * @crtc: currently bound CRTC > + * @fb: currently bound fb > + * @gamma_size: size of gamma table > + * @gamma_store: gamma correction table > + * @enabled: enabled flag > + * @funcs: helper functions > + * @helper_private: storage for drver layer > + */ > +struct drm_plane { > + struct drm_device *dev; > + struct device kdev; > + struct device_attribute *attr; What are these two for? -- Daniel Vetter Mail: daniel at ffwll.ch Mobile: +41 (0)79 365 57 48