summaryrefslogtreecommitdiff
path: root/arch/parisc/kernel/syscall_table.S
diff options
context:
space:
mode:
authorMikulas Patocka <mpatocka@redhat.com>2014-01-23 14:42:43 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-05-30 21:52:12 -0700
commitdd154e74b0aa11cd45d9c0f054fb8dabeba35935 (patch)
treef6e4af61842cfdaa3949847d4a9000aeec42c24e /arch/parisc/kernel/syscall_table.S
parent70c6edb3bcb97887f004515f17dd247657177cb5 (diff)
tgafb: fix mode setting with fbset
commit 624966589041deb32a2626ee2e176e8274581101 upstream. Mode setting in the TGA driver is broken for these reasons: - info->fix.line_length is set just once in tgafb_init_fix function. If we change videomode, info->fix.line_length is not recalculated - so the video mode is changed but the screen is corrupted because of wrong info->fix.line_length. - info->fix.smem_len is set in tgafb_init_fix to the size of the default video mode (640x480). If we set a higher resolution, info->fix.smem_len is smaller than the current screen size, preventing the userspace program from mapping the framebuffer. This patch fixes it: - info->fix.line_length initialization is moved to tgafb_set_par so that it is recalculated with each mode change. - info->fix.smem_len is set to a fixed value representing the real amount of video ram (the values are taken from xfree86 driver). - add a check to tgafb_check_var to prevent us from setting a videomode that doesn't fit into videoram. - in tgafb_register, tgafb_init_fix is moved upwards, to be called before fb_find_mode (because fb_find_mode already needs the videoram size set in tgafb_init_fix). Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/parisc/kernel/syscall_table.S')
0 files changed, 0 insertions, 0 deletions