efifb: Enable write-combining
authorAndy Lutomirski <luto@MIT.EDU>
Thu, 26 May 2011 14:13:31 +0000 (10:13 -0400)
committerPaul Mundt <lethal@linux-sh.org>
Thu, 2 Jun 2011 08:18:04 +0000 (17:18 +0900)
Running fbcon on an uncached framebuffer is remarkably slow.  So try
to enable write combining in efifb.

Without this patch, it takes 5.8 seconds from efifb probe to i915
probe (default options; no plymouth or quiet mode).  With this patch,
it only takes 1.7 seconds.  That means we wasted over 4 seconds just
writing to UC memory.

Signed-off-by: Andy Lutomirski <luto@mit.edu>
Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
drivers/video/efifb.c

index fb205843c2c726da59b7f5f20c0c338ddba005d6..7f06247a21e87a6f5f59c9d8b9a4f282b9f23c82 100644 (file)
@@ -413,7 +413,7 @@ static int __devinit efifb_probe(struct platform_device *dev)
        info->apertures->ranges[0].base = efifb_fix.smem_start;
        info->apertures->ranges[0].size = size_remap;
 
-       info->screen_base = ioremap(efifb_fix.smem_start, efifb_fix.smem_len);
+       info->screen_base = ioremap_wc(efifb_fix.smem_start, efifb_fix.smem_len);
        if (!info->screen_base) {
                printk(KERN_ERR "efifb: abort, cannot ioremap video memory "
                                "0x%x @ 0x%lx\n",