--- linux-source-2.6.32/drivers/video/vesafb.c.orig 2010-05-03 20:07:47.000000000 +0200 +++ linux-source-2.6.32/drivers/video/vesafb.c 2010-05-03 20:12:33.000000000 +0200 @@ -328,7 +328,19 @@ static int __init vesafb_probe(struct pl info->aperture_base = screen_info.lfb_base; info->aperture_size = size_total; - info->screen_base = ioremap(vesafb_fix.smem_start, vesafb_fix.smem_len); + switch (mtrr) { + case 1: /* uncachable */ + info->screen_base = ioremap_nocache(vesafb_fix.smem_start, vesafb_fix.smem_len); + break; + case 2: /* write-back */ + case 3: /* write-combining */ + case 4: /* write-through */ + info->screen_base = ioremap_wc(vesafb_fix.smem_start, vesafb_fix.smem_len); + break; + default: + info->screen_base = ioremap(vesafb_fix.smem_start, vesafb_fix.smem_len); + break; + } if (!info->screen_base) { printk(KERN_ERR "vesafb: abort, cannot ioremap video memory 0x%x @ 0x%lx\n",