aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm/drm_crtc.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/drm/drm_crtc.h')
-rw-r--r--include/drm/drm_crtc.h34
1 files changed, 19 insertions, 15 deletions
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index d59bb7d93657..73e45600f95d 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -294,20 +294,16 @@ struct drm_plane;
294 294
295/** 295/**
296 * drm_crtc_funcs - control CRTCs for a given device 296 * drm_crtc_funcs - control CRTCs for a given device
297 * @reset: reset CRTC after state has been invalidate (e.g. resume)
298 * @dpms: control display power levels
299 * @save: save CRTC state 297 * @save: save CRTC state
300 * @resore: restore CRTC state 298 * @restore: restore CRTC state
301 * @lock: lock the CRTC 299 * @reset: reset CRTC after state has been invalidate (e.g. resume)
302 * @unlock: unlock the CRTC 300 * @cursor_set: setup the cursor
303 * @shadow_allocate: allocate shadow pixmap 301 * @cursor_move: move the cursor
304 * @shadow_create: create shadow pixmap for rotation support
305 * @shadow_destroy: free shadow pixmap
306 * @mode_fixup: fixup proposed mode
307 * @mode_set: set the desired mode on the CRTC
308 * @gamma_set: specify color ramp for CRTC 302 * @gamma_set: specify color ramp for CRTC
309 * @destroy: deinit and free object 303 * @destroy: deinit and free object
310 * @set_property: called when a property is changed 304 * @set_property: called when a property is changed
305 * @set_config: apply a new CRTC configuration
306 * @page_flip: initiate a page flip
311 * 307 *
312 * The drm_crtc_funcs structure is the central CRTC management structure 308 * The drm_crtc_funcs structure is the central CRTC management structure
313 * in the DRM. Each CRTC controls one or more connectors (note that the name 309 * in the DRM. Each CRTC controls one or more connectors (note that the name
@@ -420,11 +416,8 @@ struct drm_crtc {
420 * @save: save connector state 416 * @save: save connector state
421 * @restore: restore connector state 417 * @restore: restore connector state
422 * @reset: reset connector after state has been invalidate (e.g. resume) 418 * @reset: reset connector after state has been invalidate (e.g. resume)
423 * @mode_valid: is this mode valid on the given connector?
424 * @mode_fixup: try to fixup proposed mode for this connector
425 * @mode_set: set this mode
426 * @detect: is this connector active? 419 * @detect: is this connector active?
427 * @get_modes: get mode list for this connector 420 * @fill_modes: fill mode list for this connector
428 * @set_property: property for this connector may need update 421 * @set_property: property for this connector may need update
429 * @destroy: make object go away 422 * @destroy: make object go away
430 * @force: notify the driver the connector is forced on 423 * @force: notify the driver the connector is forced on
@@ -608,6 +601,7 @@ struct drm_connector {
608 * @update_plane: update the plane configuration 601 * @update_plane: update the plane configuration
609 * @disable_plane: shut down the plane 602 * @disable_plane: shut down the plane
610 * @destroy: clean up plane resources 603 * @destroy: clean up plane resources
604 * @set_property: called when a property is changed
611 */ 605 */
612struct drm_plane_funcs { 606struct drm_plane_funcs {
613 int (*update_plane)(struct drm_plane *plane, 607 int (*update_plane)(struct drm_plane *plane,
@@ -618,6 +612,9 @@ struct drm_plane_funcs {
618 uint32_t src_w, uint32_t src_h); 612 uint32_t src_w, uint32_t src_h);
619 int (*disable_plane)(struct drm_plane *plane); 613 int (*disable_plane)(struct drm_plane *plane);
620 void (*destroy)(struct drm_plane *plane); 614 void (*destroy)(struct drm_plane *plane);
615
616 int (*set_property)(struct drm_plane *plane,
617 struct drm_property *property, uint64_t val);
621}; 618};
622 619
623/** 620/**
@@ -635,6 +632,7 @@ struct drm_plane_funcs {
635 * @enabled: enabled flag 632 * @enabled: enabled flag
636 * @funcs: helper functions 633 * @funcs: helper functions
637 * @helper_private: storage for drver layer 634 * @helper_private: storage for drver layer
635 * @properties: property tracking for this plane
638 */ 636 */
639struct drm_plane { 637struct drm_plane {
640 struct drm_device *dev; 638 struct drm_device *dev;
@@ -657,6 +655,8 @@ struct drm_plane {
657 655
658 const struct drm_plane_funcs *funcs; 656 const struct drm_plane_funcs *funcs;
659 void *helper_private; 657 void *helper_private;
658
659 struct drm_object_properties properties;
660}; 660};
661 661
662/** 662/**
@@ -774,7 +774,7 @@ struct drm_mode_config {
774 774
775 int min_width, min_height; 775 int min_width, min_height;
776 int max_width, max_height; 776 int max_width, max_height;
777 struct drm_mode_config_funcs *funcs; 777 const struct drm_mode_config_funcs *funcs;
778 resource_size_t fb_base; 778 resource_size_t fb_base;
779 779
780 /* output poll support */ 780 /* output poll support */
@@ -940,6 +940,10 @@ extern struct drm_property *drm_property_create_enum(struct drm_device *dev, int
940 const char *name, 940 const char *name,
941 const struct drm_prop_enum_list *props, 941 const struct drm_prop_enum_list *props,
942 int num_values); 942 int num_values);
943struct drm_property *drm_property_create_bitmask(struct drm_device *dev,
944 int flags, const char *name,
945 const struct drm_prop_enum_list *props,
946 int num_values);
943struct drm_property *drm_property_create_range(struct drm_device *dev, int flags, 947struct drm_property *drm_property_create_range(struct drm_device *dev, int flags,
944 const char *name, 948 const char *name,
945 uint64_t min, uint64_t max); 949 uint64_t min, uint64_t max);