1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33#ifndef __DRM_CRTC_HELPER_H__
34#define __DRM_CRTC_HELPER_H__
35
36#include <linux/spinlock.h>
37#include <linux/types.h>
38#include <linux/idr.h>
39
40#include <linux/fb.h>
41
42#include <drm/drm_crtc.h>
43#include <drm/drm_modeset_helper_vtables.h>
44
45extern void drm_helper_disable_unused_functions(struct drm_device *dev);
46extern int drm_crtc_helper_set_config(struct drm_mode_set *set);
47extern bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
48 struct drm_display_mode *mode,
49 int x, int y,
50 struct drm_framebuffer *old_fb);
51extern bool drm_helper_crtc_in_use(struct drm_crtc *crtc);
52extern bool drm_helper_encoder_in_use(struct drm_encoder *encoder);
53
54extern int drm_helper_connector_dpms(struct drm_connector *connector, int mode);
55
56extern void drm_helper_move_panel_connectors_to_head(struct drm_device *);
57
58extern void drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb,
59 const struct drm_mode_fb_cmd2 *mode_cmd);
60
61extern void drm_helper_resume_force_mode(struct drm_device *dev);
62
63int drm_helper_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode,
64 struct drm_display_mode *adjusted_mode, int x, int y,
65 struct drm_framebuffer *old_fb);
66int drm_helper_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
67 struct drm_framebuffer *old_fb);
68
69
70extern int drm_helper_probe_single_connector_modes(struct drm_connector
71 *connector, uint32_t maxX,
72 uint32_t maxY);
73extern void drm_kms_helper_poll_init(struct drm_device *dev);
74extern void drm_kms_helper_poll_fini(struct drm_device *dev);
75extern bool drm_helper_hpd_irq_event(struct drm_device *dev);
76extern void drm_kms_helper_hotplug_event(struct drm_device *dev);
77
78extern void drm_kms_helper_poll_disable(struct drm_device *dev);
79extern void drm_kms_helper_poll_enable(struct drm_device *dev);
80extern void drm_kms_helper_poll_enable_locked(struct drm_device *dev);
81
82#endif
83