39,7 → 39,11 |
|
#include <linux/fb.h> |
|
#include "drm_fb_helper.h" |
enum mode_set_atomic { |
LEAVE_ATOMIC_MODE_SET, |
ENTER_ATOMIC_MODE_SET, |
}; |
|
struct drm_crtc_helper_funcs { |
/* |
* Control power levels on the CRTC. If the mode passed in is |
61,9 → 65,15 |
/* Move the crtc on the current fb to the given position *optional* */ |
int (*mode_set_base)(struct drm_crtc *crtc, int x, int y, |
struct drm_framebuffer *old_fb); |
int (*mode_set_base_atomic)(struct drm_crtc *crtc, |
struct drm_framebuffer *fb, int x, int y, |
enum mode_set_atomic); |
|
/* reload the current crtc LUT */ |
void (*load_lut)(struct drm_crtc *crtc); |
|
/* disable crtc when not in use - more explicit than dpms off */ |
void (*disable)(struct drm_crtc *crtc); |
}; |
|
struct drm_encoder_helper_funcs { |
96,8 → 106,6 |
|
extern int drm_helper_probe_single_connector_modes(struct drm_connector *connector, uint32_t maxX, uint32_t maxY); |
extern void drm_helper_disable_unused_functions(struct drm_device *dev); |
extern int drm_helper_hotplug_stage_two(struct drm_device *dev); |
extern bool drm_helper_initial_config(struct drm_device *dev); |
extern int drm_crtc_helper_set_config(struct drm_mode_set *set); |
extern bool drm_crtc_helper_set_mode(struct drm_crtc *crtc, |
struct drm_display_mode *mode, |
123,12 → 131,17 |
encoder->helper_private = (void *)funcs; |
} |
|
static inline int drm_connector_helper_add(struct drm_connector *connector, |
static inline void drm_connector_helper_add(struct drm_connector *connector, |
const struct drm_connector_helper_funcs *funcs) |
{ |
connector->helper_private = (void *)funcs; |
return drm_fb_helper_add_connector(connector); |
} |
|
extern int drm_helper_resume_force_mode(struct drm_device *dev); |
extern void drm_kms_helper_poll_init(struct drm_device *dev); |
extern void drm_kms_helper_poll_fini(struct drm_device *dev); |
extern void drm_helper_hpd_irq_event(struct drm_device *dev); |
|
extern void drm_kms_helper_poll_disable(struct drm_device *dev); |
extern void drm_kms_helper_poll_enable(struct drm_device *dev); |
#endif |