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@virtuousgeek.org
One question belowk, but still: Reviewed-by: Daniel Vetter daniel.vetter@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?