These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / video / fbdev / aty / aty128fb.c
index 0156954..c42ce2f 100644 (file)
 #include <asm/btext.h>
 #endif /* CONFIG_BOOTX_TEXT */
 
-#ifdef CONFIG_MTRR
-#include <asm/mtrr.h>
-#endif
-
 #include <video/aty128.h>
 
 /* Debug flag */
@@ -399,10 +395,7 @@ static int default_cmode = CMODE_8;
 
 static int default_crt_on = 0;
 static int default_lcd_on = 1;
-
-#ifdef CONFIG_MTRR
 static bool mtrr = true;
-#endif
 
 #ifdef CONFIG_FB_ATY128_BACKLIGHT
 #ifdef CONFIG_PMAC_BACKLIGHT
@@ -456,9 +449,7 @@ struct aty128fb_par {
        u32 vram_size;                      /* onboard video ram   */
        int chip_gen;
        const struct aty128_meminfo *mem;   /* onboard mem info    */
-#ifdef CONFIG_MTRR
-       struct { int vram; int vram_valid; } mtrr;
-#endif
+       int wc_cookie;
        int blitter_may_be_busy;
        int fifo_slots;                 /* free slots in FIFO (64 max) */
 
@@ -1725,12 +1716,10 @@ static int aty128fb_setup(char *options)
 #endif
                        continue;
                }
-#ifdef CONFIG_MTRR
                if(!strncmp(this_opt, "nomtrr", 6)) {
                        mtrr = 0;
                        continue;
                }
-#endif
 #ifdef CONFIG_PPC_PMAC
                /* vmode and cmode deprecated */
                if (!strncmp(this_opt, "vmode:", 6)) {
@@ -2133,7 +2122,7 @@ static int aty128_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        par->vram_size = aty_ld_le32(CNFG_MEMSIZE) & 0x03FFFFFF;
 
        /* Virtualize the framebuffer */
-       info->screen_base = ioremap(fb_addr, par->vram_size);
+       info->screen_base = ioremap_wc(fb_addr, par->vram_size);
        if (!info->screen_base)
                goto err_unmap_out;
 
@@ -2170,15 +2159,9 @@ static int aty128_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (!aty128_init(pdev, ent))
                goto err_out;
 
-#ifdef CONFIG_MTRR
-       if (mtrr) {
-               par->mtrr.vram = mtrr_add(info->fix.smem_start,
-                               par->vram_size, MTRR_TYPE_WRCOMB, 1);
-               par->mtrr.vram_valid = 1;
-               /* let there be speed */
-               printk(KERN_INFO "aty128fb: Rage128 MTRR set to ON\n");
-       }
-#endif /* CONFIG_MTRR */
+       if (mtrr)
+               par->wc_cookie = arch_phys_wc_add(info->fix.smem_start,
+                                                 par->vram_size);
        return 0;
 
 err_out:
@@ -2212,11 +2195,7 @@ static void aty128_remove(struct pci_dev *pdev)
        aty128_bl_exit(info->bl_dev);
 #endif
 
-#ifdef CONFIG_MTRR
-       if (par->mtrr.vram_valid)
-               mtrr_del(par->mtrr.vram, info->fix.smem_start,
-                        par->vram_size);
-#endif /* CONFIG_MTRR */
+       arch_phys_wc_del(par->wc_cookie);
        iounmap(par->regbase);
        iounmap(info->screen_base);
 
@@ -2625,8 +2604,5 @@ MODULE_DESCRIPTION("FBDev driver for ATI Rage128 / Pro cards");
 MODULE_LICENSE("GPL");
 module_param(mode_option, charp, 0);
 MODULE_PARM_DESC(mode_option, "Specify resolution as \"<xres>x<yres>[-<bpp>][@<refresh>]\" ");
-#ifdef CONFIG_MTRR
 module_param_named(nomtrr, mtrr, invbool, 0);
 MODULE_PARM_DESC(nomtrr, "bool: Disable MTRR support (0 or 1=disabled) (default=0)");
-#endif
-