Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5f030b7 authored by Gerd Hoffmann's avatar Gerd Hoffmann
Browse files

drm/qxl: use kernel mode db



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: default avatarGerd Hoffmann <kraxel@redhat.com>
Acked-by: default avatarNoralf Trønnes <noralf@tronnes.org>
Link: http://patchwork.freedesktop.org/patch/msgid/20190118122020.27596-23-kraxel@redhat.com
parent 1b043677
Loading
Loading
Loading
Loading
+7 −20
Original line number Diff line number Diff line
@@ -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;