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

Commit cda6be1c authored by Clemens Ladisch's avatar Clemens Ladisch Committed by Dave Airlie
Browse files

drm/fb: fix FBIOGET/PUT_VSCREENINFO pixel clock handling



When the framebuffer driver does not publish detailed timing information
for the current video mode, the correct value for the pixclock field is
zero, not -1.

Since pixclock is actually unsigned, the value -1 would be interpreted
as 4294967295 picoseconds (i.e., about 4 milliseconds) by
register_framebuffer() and userspace programs.

This patch allows X.org's fbdev driver to work.

Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 731b5a15
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -602,7 +602,7 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
	struct drm_framebuffer *fb = fb_helper->fb;
	int depth;

	if (var->pixclock == -1 || !var->pixclock)
	if (var->pixclock != 0)
		return -EINVAL;

	/* Need to resize the fb object !!! */
@@ -694,7 +694,7 @@ int drm_fb_helper_set_par(struct fb_info *info)
	int ret;
	int i;

	if (var->pixclock != -1) {
	if (var->pixclock != 0) {
		DRM_ERROR("PIXEL CLCOK SET\n");
		return -EINVAL;
	}
@@ -907,7 +907,7 @@ int drm_fb_helper_single_fb_probe(struct drm_device *dev,
	fb_helper->fb = fb;

	if (new_fb) {
		info->var.pixclock = -1;
		info->var.pixclock = 0;
		if (register_framebuffer(info) < 0)
			return -EINVAL;
	} else {