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

Commit 70231669 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'fbdev-fixes-for-linus' of...

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
parents 58e89c27 dce1431c
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -255,9 +255,10 @@ framebuffer parameters.
Kernel boot arguments
---------------------

vram=<size>
	- Amount of total VRAM to preallocate. For example, "10M". omapfb
	  allocates memory for framebuffers from VRAM.
vram=<size>[,<physaddr>]
	- Amount of total VRAM to preallocate and optionally a physical start
	  memory address. For example, "10M". omapfb allocates memory for
	  framebuffers from VRAM.

omapfb.mode=<display>:<mode>[,...]
	- Default video mode for specified displays. For example,
+1 −0
Original line number Diff line number Diff line
@@ -2435,6 +2435,7 @@ F: drivers/net/wan/sdla.c
FRAMEBUFFER LAYER
L:	linux-fbdev@vger.kernel.org
W:	http://linux-fbdev.sourceforge.net/
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6.git
S:	Orphan
F:	Documentation/fb/
F:	drivers/video/fb*
+13 −4
Original line number Diff line number Diff line
@@ -554,9 +554,15 @@ void __init omap_vram_reserve_sdram_memblock(void)
	size = PAGE_ALIGN(size);

	if (paddr) {
		if ((paddr & ~PAGE_MASK) ||
		    !memblock_is_region_memory(paddr, size)) {
			pr_err("Illegal SDRAM region for VRAM\n");
		if (paddr & ~PAGE_MASK) {
			pr_err("VRAM start address 0x%08x not page aligned\n",
					paddr);
			return;
		}

		if (!memblock_is_region_memory(paddr, size)) {
			pr_err("Illegal SDRAM region 0x%08x..0x%08x for VRAM\n",
					paddr, paddr + size - 1);
			return;
		}

@@ -570,9 +576,12 @@ void __init omap_vram_reserve_sdram_memblock(void)
			return;
		}
	} else {
		paddr = memblock_alloc_base(size, PAGE_SIZE, MEMBLOCK_REAL_LIMIT);
		paddr = memblock_alloc(size, PAGE_SIZE);
	}

	memblock_free(paddr, size);
	memblock_remove(paddr, size);

	omap_vram_add_region(paddr, size);

	pr_info("Reserving %u bytes SDRAM for VRAM\n", size);
+4 −1
Original line number Diff line number Diff line
@@ -1071,6 +1071,10 @@ static void sh_hdmi_edid_work_fn(struct work_struct *work)
		if (!hdmi->info)
			goto out;

		hdmi->monspec.modedb_len = 0;
		fb_destroy_modedb(hdmi->monspec.modedb);
		hdmi->monspec.modedb = NULL;

		acquire_console_sem();

		/* HDMI disconnect */
@@ -1078,7 +1082,6 @@ static void sh_hdmi_edid_work_fn(struct work_struct *work)

		release_console_sem();
		pm_runtime_put(hdmi->dev);
		fb_destroy_modedb(hdmi->monspec.modedb);
	}

out:
+12 −9
Original line number Diff line number Diff line
@@ -115,15 +115,16 @@ static const struct fb_videomode default_720p = {
	.xres = 1280,
	.yres = 720,

	.left_margin = 200,
	.right_margin = 88,
	.hsync_len = 48,
	.left_margin = 220,
	.right_margin = 110,
	.hsync_len = 40,

	.upper_margin = 20,
	.lower_margin = 5,
	.vsync_len = 5,

	.pixclock = 13468,
	.refresh = 60,
	.sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT,
};

@@ -1197,6 +1198,7 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
		const struct fb_videomode *mode = cfg->lcd_cfg;
		unsigned long max_size = 0;
		int k;
		int num_cfg;

		ch->info = framebuffer_alloc(0, &pdev->dev);
		if (!ch->info) {
@@ -1232,8 +1234,14 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
		info->fix = sh_mobile_lcdc_fix;
		info->fix.smem_len = max_size * (cfg->bpp / 8) * 2;

		if (!mode)
		if (!mode) {
			mode = &default_720p;
			num_cfg = 1;
		} else {
			num_cfg = ch->cfg.num_cfg;
		}

		fb_videomode_to_modelist(mode, num_cfg, &info->modelist);

		fb_videomode_to_var(var, mode);
		/* Default Y virtual resolution is 2x panel size */
@@ -1281,10 +1289,6 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)

	for (i = 0; i < j; i++) {
		struct sh_mobile_lcdc_chan *ch = priv->ch + i;
		const struct fb_videomode *mode = ch->cfg.lcd_cfg;

		if (!mode)
			mode = &default_720p;

		info = ch->info;

@@ -1297,7 +1301,6 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
			}
		}

		fb_videomode_to_modelist(mode, ch->cfg.num_cfg, &info->modelist);
		error = register_framebuffer(info);
		if (error < 0)
			goto err1;
Loading