drm/qxl: use kernel mode db
authorGerd Hoffmann <kraxel@redhat.com>
Fri, 18 Jan 2019 12:20:19 +0000 (13:20 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Mon, 28 Jan 2019 13:24:54 +0000 (14:24 +0100)
Add all standard modes from the kernel's video mode data base.
Keep a few non-standard modes in the qxl mode list.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Noralf Trønnes <noralf@tronnes.org>
Link: http://patchwork.freedesktop.org/patch/msgid/20190118122020.27596-23-kraxel@redhat.com
drivers/gpu/drm/qxl/qxl_display.c

index a0562d5..08c7255 100644 (file)
@@ -262,34 +262,20 @@ static int qxl_add_monitors_config_modes(struct drm_connector *connector)
 static struct mode_size {
        int w;
        int h;
-} common_modes[] = {
-       { 640,  480},
+} extra_modes[] = {
        { 720,  480},
-       { 800,  600},
-       { 848,  480},
-       {1024,  768},
        {1152,  768},
-       {1280,  720},
-       {1280,  800},
        {1280,  854},
-       {1280,  960},
-       {1280, 1024},
-       {1440,  900},
-       {1400, 1050},
-       {1680, 1050},
-       {1600, 1200},
-       {1920, 1080},
-       {1920, 1200}
 };
 
-static int qxl_add_common_modes(struct drm_connector *connector)
+static int qxl_add_extra_modes(struct drm_connector *connector)
 {
        int i, ret = 0;
 
-       for (i = 0; i < ARRAY_SIZE(common_modes); i++)
+       for (i = 0; i < ARRAY_SIZE(extra_modes); i++)
                ret += qxl_add_mode(connector,
-                                   common_modes[i].w,
-                                   common_modes[i].h,
+                                   extra_modes[i].w,
+                                   extra_modes[i].h,
                                    false);
        return ret;
 }
@@ -1010,7 +996,8 @@ static int qxl_conn_get_modes(struct drm_connector *connector)
                        pheight = head->height;
        }
 
-       ret += qxl_add_common_modes(connector);
+       ret += drm_add_modes_noedid(connector, 8192, 8192);
+       ret += qxl_add_extra_modes(connector);
        ret += qxl_add_monitors_config_modes(connector);
        drm_set_preferred_mode(connector, pwidth, pheight);
        return ret;