diff options
Diffstat (limited to 'include/drm/drm_crtc.h')
-rw-r--r-- | include/drm/drm_crtc.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index 7300fb866767..b69347b8904f 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h | |||
@@ -259,6 +259,8 @@ struct drm_framebuffer { | |||
259 | void *fbdev; | 259 | void *fbdev; |
260 | u32 pseudo_palette[17]; | 260 | u32 pseudo_palette[17]; |
261 | struct list_head filp_head; | 261 | struct list_head filp_head; |
262 | /* if you are using the helper */ | ||
263 | void *helper_private; | ||
262 | }; | 264 | }; |
263 | 265 | ||
264 | struct drm_property_blob { | 266 | struct drm_property_blob { |
@@ -385,6 +387,7 @@ struct drm_crtc { | |||
385 | * @get_modes: get mode list for this connector | 387 | * @get_modes: get mode list for this connector |
386 | * @set_property: property for this connector may need update | 388 | * @set_property: property for this connector may need update |
387 | * @destroy: make object go away | 389 | * @destroy: make object go away |
390 | * @force: notify the driver the connector is forced on | ||
388 | * | 391 | * |
389 | * Each CRTC may have one or more connectors attached to it. The functions | 392 | * Each CRTC may have one or more connectors attached to it. The functions |
390 | * below allow the core DRM code to control connectors, enumerate available modes, | 393 | * below allow the core DRM code to control connectors, enumerate available modes, |
@@ -399,6 +402,7 @@ struct drm_connector_funcs { | |||
399 | int (*set_property)(struct drm_connector *connector, struct drm_property *property, | 402 | int (*set_property)(struct drm_connector *connector, struct drm_property *property, |
400 | uint64_t val); | 403 | uint64_t val); |
401 | void (*destroy)(struct drm_connector *connector); | 404 | void (*destroy)(struct drm_connector *connector); |
405 | void (*force)(struct drm_connector *connector); | ||
402 | }; | 406 | }; |
403 | 407 | ||
404 | struct drm_encoder_funcs { | 408 | struct drm_encoder_funcs { |
@@ -427,6 +431,13 @@ struct drm_encoder { | |||
427 | void *helper_private; | 431 | void *helper_private; |
428 | }; | 432 | }; |
429 | 433 | ||
434 | enum drm_connector_force { | ||
435 | DRM_FORCE_UNSPECIFIED, | ||
436 | DRM_FORCE_OFF, | ||
437 | DRM_FORCE_ON, /* force on analog part normally */ | ||
438 | DRM_FORCE_ON_DIGITAL, /* for DVI-I use digital connector */ | ||
439 | }; | ||
440 | |||
430 | /** | 441 | /** |
431 | * drm_connector - central DRM connector control structure | 442 | * drm_connector - central DRM connector control structure |
432 | * @crtc: CRTC this connector is currently connected to, NULL if none | 443 | * @crtc: CRTC this connector is currently connected to, NULL if none |
@@ -476,9 +487,12 @@ struct drm_connector { | |||
476 | 487 | ||
477 | void *helper_private; | 488 | void *helper_private; |
478 | 489 | ||
490 | /* forced on connector */ | ||
491 | enum drm_connector_force force; | ||
479 | uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER]; | 492 | uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER]; |
480 | uint32_t force_encoder_id; | 493 | uint32_t force_encoder_id; |
481 | struct drm_encoder *encoder; /* currently active encoder */ | 494 | struct drm_encoder *encoder; /* currently active encoder */ |
495 | void *fb_helper_private; | ||
482 | }; | 496 | }; |
483 | 497 | ||
484 | /** | 498 | /** |
@@ -572,6 +586,12 @@ struct drm_mode_config { | |||
572 | struct drm_property *tv_right_margin_property; | 586 | struct drm_property *tv_right_margin_property; |
573 | struct drm_property *tv_top_margin_property; | 587 | struct drm_property *tv_top_margin_property; |
574 | struct drm_property *tv_bottom_margin_property; | 588 | struct drm_property *tv_bottom_margin_property; |
589 | struct drm_property *tv_brightness_property; | ||
590 | struct drm_property *tv_contrast_property; | ||
591 | struct drm_property *tv_flicker_reduction_property; | ||
592 | struct drm_property *tv_overscan_property; | ||
593 | struct drm_property *tv_saturation_property; | ||
594 | struct drm_property *tv_hue_property; | ||
575 | 595 | ||
576 | /* Optional properties */ | 596 | /* Optional properties */ |
577 | struct drm_property *scaling_mode_property; | 597 | struct drm_property *scaling_mode_property; |
@@ -736,4 +756,12 @@ extern int drm_mode_gamma_get_ioctl(struct drm_device *dev, | |||
736 | extern int drm_mode_gamma_set_ioctl(struct drm_device *dev, | 756 | extern int drm_mode_gamma_set_ioctl(struct drm_device *dev, |
737 | void *data, struct drm_file *file_priv); | 757 | void *data, struct drm_file *file_priv); |
738 | extern bool drm_detect_hdmi_monitor(struct edid *edid); | 758 | extern bool drm_detect_hdmi_monitor(struct edid *edid); |
759 | extern struct drm_display_mode *drm_cvt_mode(struct drm_device *dev, | ||
760 | int hdisplay, int vdisplay, int vrefresh, | ||
761 | bool reduced, bool interlaced, bool margins); | ||
762 | extern struct drm_display_mode *drm_gtf_mode(struct drm_device *dev, | ||
763 | int hdisplay, int vdisplay, int vrefresh, | ||
764 | bool interlaced, int margins); | ||
765 | extern int drm_add_modes_noedid(struct drm_connector *connector, | ||
766 | int hdisplay, int vdisplay); | ||
739 | #endif /* __DRM_CRTC_H__ */ | 767 | #endif /* __DRM_CRTC_H__ */ |