Merge branch 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6

* 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6:
fsl-diu-fb: drop dead ioctl define
MAINTAINERS: Add an fbdev git tree entry.
OMAP: DSS: Fix documentation regarding 'vram' kernel parameter
OMAP: VRAM: Fix boot-time memory allocation
OMAP: VRAM: improve VRAM error prints
sisfb: limit POST memory test according to PCI resource length
fbdev: sh_mobile_lcdc: use correct number of modes, when using the default
fbdev: sh_mobile_lcdc: use the standard CEA-861 720p timing
fbdev: sh_mobile_hdmi: properly clean up modedb on monitor unplug

+40 -20
+4 -3
Documentation/arm/OMAP/DSS
··· 255 255 Kernel boot arguments 256 256 --------------------- 257 257 258 - vram=<size> 259 - - Amount of total VRAM to preallocate. For example, "10M". omapfb 260 - allocates memory for framebuffers from VRAM. 258 + vram=<size>[,<physaddr>] 259 + - Amount of total VRAM to preallocate and optionally a physical start 260 + memory address. For example, "10M". omapfb allocates memory for 261 + framebuffers from VRAM. 261 262 262 263 omapfb.mode=<display>:<mode>[,...] 263 264 - Default video mode for specified displays. For example,
+1
MAINTAINERS
··· 2435 2435 FRAMEBUFFER LAYER 2436 2436 L: linux-fbdev@vger.kernel.org 2437 2437 W: http://linux-fbdev.sourceforge.net/ 2438 + T: git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6.git 2438 2439 S: Orphan 2439 2440 F: Documentation/fb/ 2440 2441 F: drivers/video/fb*
+13 -4
drivers/video/omap2/vram.c
··· 554 554 size = PAGE_ALIGN(size); 555 555 556 556 if (paddr) { 557 - if ((paddr & ~PAGE_MASK) || 558 - !memblock_is_region_memory(paddr, size)) { 559 - pr_err("Illegal SDRAM region for VRAM\n"); 557 + if (paddr & ~PAGE_MASK) { 558 + pr_err("VRAM start address 0x%08x not page aligned\n", 559 + paddr); 560 + return; 561 + } 562 + 563 + if (!memblock_is_region_memory(paddr, size)) { 564 + pr_err("Illegal SDRAM region 0x%08x..0x%08x for VRAM\n", 565 + paddr, paddr + size - 1); 560 566 return; 561 567 } 562 568 ··· 576 570 return; 577 571 } 578 572 } else { 579 - paddr = memblock_alloc_base(size, PAGE_SIZE, MEMBLOCK_REAL_LIMIT); 573 + paddr = memblock_alloc(size, PAGE_SIZE); 580 574 } 575 + 576 + memblock_free(paddr, size); 577 + memblock_remove(paddr, size); 581 578 582 579 omap_vram_add_region(paddr, size); 583 580
+4 -1
drivers/video/sh_mobile_hdmi.c
··· 1071 1071 if (!hdmi->info) 1072 1072 goto out; 1073 1073 1074 + hdmi->monspec.modedb_len = 0; 1075 + fb_destroy_modedb(hdmi->monspec.modedb); 1076 + hdmi->monspec.modedb = NULL; 1077 + 1074 1078 acquire_console_sem(); 1075 1079 1076 1080 /* HDMI disconnect */ ··· 1082 1078 1083 1079 release_console_sem(); 1084 1080 pm_runtime_put(hdmi->dev); 1085 - fb_destroy_modedb(hdmi->monspec.modedb); 1086 1081 } 1087 1082 1088 1083 out:
+12 -9
drivers/video/sh_mobile_lcdcfb.c
··· 115 115 .xres = 1280, 116 116 .yres = 720, 117 117 118 - .left_margin = 200, 119 - .right_margin = 88, 120 - .hsync_len = 48, 118 + .left_margin = 220, 119 + .right_margin = 110, 120 + .hsync_len = 40, 121 121 122 122 .upper_margin = 20, 123 123 .lower_margin = 5, 124 124 .vsync_len = 5, 125 125 126 126 .pixclock = 13468, 127 + .refresh = 60, 127 128 .sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT, 128 129 }; 129 130 ··· 1198 1197 const struct fb_videomode *mode = cfg->lcd_cfg; 1199 1198 unsigned long max_size = 0; 1200 1199 int k; 1200 + int num_cfg; 1201 1201 1202 1202 ch->info = framebuffer_alloc(0, &pdev->dev); 1203 1203 if (!ch->info) { ··· 1234 1232 info->fix = sh_mobile_lcdc_fix; 1235 1233 info->fix.smem_len = max_size * (cfg->bpp / 8) * 2; 1236 1234 1237 - if (!mode) 1235 + if (!mode) { 1238 1236 mode = &default_720p; 1237 + num_cfg = 1; 1238 + } else { 1239 + num_cfg = ch->cfg.num_cfg; 1240 + } 1241 + 1242 + fb_videomode_to_modelist(mode, num_cfg, &info->modelist); 1239 1243 1240 1244 fb_videomode_to_var(var, mode); 1241 1245 /* Default Y virtual resolution is 2x panel size */ ··· 1289 1281 1290 1282 for (i = 0; i < j; i++) { 1291 1283 struct sh_mobile_lcdc_chan *ch = priv->ch + i; 1292 - const struct fb_videomode *mode = ch->cfg.lcd_cfg; 1293 - 1294 - if (!mode) 1295 - mode = &default_720p; 1296 1284 1297 1285 info = ch->info; 1298 1286 ··· 1301 1297 } 1302 1298 } 1303 1299 1304 - fb_videomode_to_modelist(mode, ch->cfg.num_cfg, &info->modelist); 1305 1300 error = register_framebuffer(info); 1306 1301 if (error < 0) 1307 1302 goto err1;
+6 -2
drivers/video/sis/sis_main.c
··· 4181 4181 sisfb_post_map_vram(struct sis_video_info *ivideo, unsigned int *mapsize, 4182 4182 unsigned int min) 4183 4183 { 4184 + if (*mapsize < (min << 20)) 4185 + return; 4186 + 4184 4187 ivideo->video_vbase = ioremap(ivideo->video_base, (*mapsize)); 4185 4188 4186 4189 if(!ivideo->video_vbase) { ··· 4517 4514 } else { 4518 4515 #endif 4519 4516 /* Need to map max FB size for finding out about RAM size */ 4520 - mapsize = 64 << 20; 4517 + mapsize = ivideo->video_size; 4521 4518 sisfb_post_map_vram(ivideo, &mapsize, 4); 4522 4519 4523 4520 if(ivideo->video_vbase) { ··· 4683 4680 orSISIDXREG(SISSR, 0x20, (0x80 | 0x04)); 4684 4681 4685 4682 /* Need to map max FB size for finding out about RAM size */ 4686 - mapsize = 256 << 20; 4683 + mapsize = ivideo->video_size; 4687 4684 sisfb_post_map_vram(ivideo, &mapsize, 32); 4688 4685 4689 4686 if(!ivideo->video_vbase) { ··· 5939 5936 } 5940 5937 5941 5938 ivideo->video_base = pci_resource_start(pdev, 0); 5939 + ivideo->video_size = pci_resource_len(pdev, 0); 5942 5940 ivideo->mmio_base = pci_resource_start(pdev, 1); 5943 5941 ivideo->mmio_size = pci_resource_len(pdev, 1); 5944 5942 ivideo->SiS_Pr.RelIO = pci_resource_start(pdev, 2) + 0x30;
-1
include/linux/fsl-diu-fb.h
··· 54 54 }; 55 55 56 56 #define MFB_SET_CHROMA_KEY _IOW('M', 1, struct mfb_chroma_key) 57 - #define MFB_WAIT_FOR_VSYNC _IOW('F', 0x20, u_int32_t) 58 57 #define MFB_SET_BRIGHTNESS _IOW('M', 3, __u8) 59 58 60 59 #define MFB_SET_ALPHA 0x80014d00