aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2010-03-30 01:34:14 -0400
committerDave Airlie <airlied@redhat.com>2010-04-06 20:24:56 -0400
commit8be48d924c307e72e3797ab5bde81b07a1ccc52d (patch)
tree7d2fec8d40b0a6e9f7bd8a5aef5bb100783ecd44 /include/drm
parent386516744ba45d50f42c6999151cc210cb4f96e4 (diff)
drm/kms/fb: move to using fb helper crtc grouping instead of core crtc list
This move to using the list of crtcs in the fb helper and cleans up the whole picking code, now we store the crtc/connectors we want directly into the modeset and we use the modeset directly to set the mode. Fixes from James Simmons and Ben Skeggs. Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'include/drm')
-rw-r--r--include/drm/drm_crtc.h5
-rw-r--r--include/drm/drm_fb_helper.h21
2 files changed, 13 insertions, 13 deletions
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index c70814b184e8..e4e34bae22cd 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -367,9 +367,6 @@ struct drm_crtc_funcs {
367 * @enabled: is this CRTC enabled? 367 * @enabled: is this CRTC enabled?
368 * @x: x position on screen 368 * @x: x position on screen
369 * @y: y position on screen 369 * @y: y position on screen
370 * @desired_mode: new desired mode
371 * @desired_x: desired x for desired_mode
372 * @desired_y: desired y for desired_mode
373 * @funcs: CRTC control functions 370 * @funcs: CRTC control functions
374 * 371 *
375 * Each CRTC may have one or more connectors associated with it. This structure 372 * Each CRTC may have one or more connectors associated with it. This structure
@@ -389,8 +386,6 @@ struct drm_crtc {
389 struct drm_display_mode mode; 386 struct drm_display_mode mode;
390 387
391 int x, y; 388 int x, y;
392 struct drm_display_mode *desired_mode;
393 int desired_x, desired_y;
394 const struct drm_crtc_funcs *funcs; 389 const struct drm_crtc_funcs *funcs;
395 390
396 /* CRTC gamma size for reporting to userspace */ 391 /* CRTC gamma size for reporting to userspace */
diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
index 38ab0daffd1f..b1ea66f11ded 100644
--- a/include/drm/drm_fb_helper.h
+++ b/include/drm/drm_fb_helper.h
@@ -33,6 +33,7 @@
33struct drm_fb_helper_crtc { 33struct drm_fb_helper_crtc {
34 uint32_t crtc_id; 34 uint32_t crtc_id;
35 struct drm_mode_set mode_set; 35 struct drm_mode_set mode_set;
36 struct drm_display_mode *desired_mode;
36}; 37};
37 38
38 39
@@ -81,14 +82,16 @@ struct drm_fb_helper {
81 struct fb_info *fbdev; 82 struct fb_info *fbdev;
82 u32 pseudo_palette[17]; 83 u32 pseudo_palette[17];
83 struct list_head kernel_fb_list; 84 struct list_head kernel_fb_list;
85
86 int (*fb_probe)(struct drm_fb_helper *helper,
87 struct drm_fb_helper_surface_size *sizes);
84}; 88};
85 89
86int drm_fb_helper_single_fb_probe(struct drm_device *dev, 90int drm_fb_helper_single_fb_probe(struct drm_fb_helper *helper,
87 int preferred_bpp, 91 int preferred_bpp);
88 int (*fb_create)(struct drm_device *dev, 92
89 struct drm_fb_helper_surface_size *sizes, 93int drm_fb_helper_init_crtc_count(struct drm_device *dev,
90 struct drm_fb_helper **fb_ptr)); 94 struct drm_fb_helper *helper, int crtc_count,
91int drm_fb_helper_init_crtc_count(struct drm_fb_helper *helper, int crtc_count,
92 int max_conn); 95 int max_conn);
93void drm_fb_helper_free(struct drm_fb_helper *helper); 96void drm_fb_helper_free(struct drm_fb_helper *helper);
94int drm_fb_helper_blank(int blank, struct fb_info *info); 97int drm_fb_helper_blank(int blank, struct fb_info *info);
@@ -114,6 +117,8 @@ int drm_fb_helper_add_connector(struct drm_connector *connector);
114int drm_fb_helper_parse_command_line(struct drm_device *dev); 117int drm_fb_helper_parse_command_line(struct drm_device *dev);
115int drm_fb_helper_setcmap(struct fb_cmap *cmap, struct fb_info *info); 118int drm_fb_helper_setcmap(struct fb_cmap *cmap, struct fb_info *info);
116 119
117bool drm_helper_fb_hotplug_event(struct drm_device *dev); 120bool drm_helper_fb_hotplug_event(struct drm_fb_helper *fb_helper, u32 max_width,
118bool drm_helper_initial_config(struct drm_device *dev); 121 u32 max_height);
122bool drm_fb_helper_initial_config(struct drm_fb_helper *fb_helper);
123
119#endif 124#endif