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: Clemens Ladisch <clemens@ladisch.de> Tested-by: Paulius Zaleckas <paulius.zaleckas@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
79cc304f3e
commit
5349ef3127
1 changed files with 3 additions and 3 deletions
|
@ -599,7 +599,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 !!! */
|
||||
|
@ -691,7 +691,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;
|
||||
}
|
||||
|
@ -904,7 +904,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 {
|
||||
|
|
Loading…
Reference in a new issue