aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_edid.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2010-05-07 01:02:30 -0400
committerDave Airlie <airlied@redhat.com>2010-05-18 03:40:22 -0400
commit1d42bbc8f7f9ce4d852692ef7aa336b133b0830a (patch)
treea0ea2d17508104ab681c829f0552e7f13512c8e2 /drivers/gpu/drm/drm_edid.c
parenteb1f8e4f3be898df808e2dfc131099f5831d491d (diff)
drm/fbdev: fix cloning on fbcon
Simple cloning rules compared to server: (a) single crtc (b) > 1 connector active (c) check command line mode (d) try and find 1024x768 DMT mode if no command line. (e) fail to clone Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/drm_edid.c')
-rw-r--r--drivers/gpu/drm/drm_edid.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 0acb83a63727..dfd4f3677f3b 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -658,8 +658,8 @@ static struct drm_display_mode drm_dmt_modes[] = {
658static const int drm_num_dmt_modes = 658static const int drm_num_dmt_modes =
659 sizeof(drm_dmt_modes) / sizeof(struct drm_display_mode); 659 sizeof(drm_dmt_modes) / sizeof(struct drm_display_mode);
660 660
661static struct drm_display_mode *drm_find_dmt(struct drm_device *dev, 661struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev,
662 int hsize, int vsize, int fresh) 662 int hsize, int vsize, int fresh)
663{ 663{
664 int i; 664 int i;
665 struct drm_display_mode *ptr, *mode; 665 struct drm_display_mode *ptr, *mode;
@@ -677,6 +677,7 @@ static struct drm_display_mode *drm_find_dmt(struct drm_device *dev,
677 } 677 }
678 return mode; 678 return mode;
679} 679}
680EXPORT_SYMBOL(drm_mode_find_dmt);
680 681
681typedef void detailed_cb(struct detailed_timing *timing, void *closure); 682typedef void detailed_cb(struct detailed_timing *timing, void *closure);
682 683
@@ -866,7 +867,7 @@ drm_mode_std(struct drm_connector *connector, struct edid *edid,
866 } 867 }
867 868
868 /* check whether it can be found in default mode table */ 869 /* check whether it can be found in default mode table */
869 mode = drm_find_dmt(dev, hsize, vsize, vrefresh_rate); 870 mode = drm_mode_find_dmt(dev, hsize, vsize, vrefresh_rate);
870 if (mode) 871 if (mode)
871 return mode; 872 return mode;
872 873
@@ -1386,11 +1387,11 @@ drm_est3_modes(struct drm_connector *connector, struct detailed_timing *timing)
1386 if (m >= num_est3_modes) 1387 if (m >= num_est3_modes)
1387 break; 1388 break;
1388 if (est[i] & (1 << j)) { 1389 if (est[i] & (1 << j)) {
1389 mode = drm_find_dmt(connector->dev, 1390 mode = drm_mode_find_dmt(connector->dev,
1390 est3_modes[m].w, 1391 est3_modes[m].w,
1391 est3_modes[m].h, 1392 est3_modes[m].h,
1392 est3_modes[m].r 1393 est3_modes[m].r
1393 /*, est3_modes[m].rb */); 1394 /*, est3_modes[m].rb */);
1394 if (mode) { 1395 if (mode) {
1395 drm_mode_probed_add(connector, mode); 1396 drm_mode_probed_add(connector, mode);
1396 modes++; 1397 modes++;