linux/drivers/video/fbdev/core
Fredrik Noring 57a1dd7444 fbdev: Distinguish between interlaced and progressive modes
[ Upstream commit 1ba0a59cea ]

I discovered the problem when developing a frame buffer driver for the
PlayStation 2 (not yet merged), using the following video modes for the
PlayStation 3 in drivers/video/fbdev/ps3fb.c:

    }, {
        /* 1080if */
        "1080if", 50, 1920, 1080, 13468, 148, 484, 36, 4, 88, 5,
        FB_SYNC_BROADCAST, FB_VMODE_INTERLACED
    }, {
        /* 1080pf */
        "1080pf", 50, 1920, 1080, 6734, 148, 484, 36, 4, 88, 5,
        FB_SYNC_BROADCAST, FB_VMODE_NONINTERLACED
    },

In ps3fb_probe, the mode_option module parameter is used with fb_find_mode
but it can only select the interlaced variant of 1920x1080 since the loop
matching the modes does not take the difference between interlaced and
progressive modes into account.

In short, without the patch, progressive 1920x1080 cannot be chosen as a
mode_option parameter since fb_find_mode (falsely) thinks interlace is a
perfect match.

Signed-off-by: Fredrik Noring <noring@nocrew.org>
Cc: "Maciej W. Rozycki" <macro@linux-mips.org>
[b.zolnierkie: updated patch description]
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-26 08:35:06 +02:00
..
cfbcopyarea.c framebuffer: fix screen corruption when copying 2014-09-30 13:39:50 +03:00
cfbfillrect.c
cfbimgblt.c
fb_cmdline.c video/fbdev: Always built-in video= cmdline parsing 2014-08-06 14:50:02 +02:00
fb_ddc.c fb_ddc: Allow I2C adapters without SCL read capability 2015-09-30 10:46:55 +03:00
fb_defio.c framebuffer: don't link fb_devio into kernel image unconditionally 2015-05-07 13:59:45 +03:00
fb_draw.h
fb_notify.c
fb_sys_fops.c
fbcmap.c fbdev: color map copying bounds checking 2017-02-01 08:30:52 +01:00
fbcvt.c fbdev: fix CVT vertical front and back porch values 2015-01-27 13:35:37 +02:00
fbmem.c fb: fix lost console when the user unplugs a USB adapter 2018-09-09 20:04:35 +02:00
fbmon.c fbdev: fix cea_modes array size 2015-08-20 10:20:11 +03:00
fbsysfs.c fbdev: fix snprintf() limit in show_bl_curve() 2015-09-01 13:52:23 +03:00
Makefile framebuffer: don't link fb_devio into kernel image unconditionally 2015-05-07 13:59:45 +03:00
modedb.c fbdev: Distinguish between interlaced and progressive modes 2018-09-26 08:35:06 +02:00
svgalib.c
syscopyarea.c video: fbdev: fix sys_copyarea 2015-01-30 09:46:59 +02:00
sysfillrect.c
sysimgblt.c