These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / video / fbdev / riva / fbdev.c
index 294a809..f1ad274 100644 (file)
@@ -41,9 +41,6 @@
 #include <linux/pci.h>
 #include <linux/backlight.h>
 #include <linux/bitrev.h>
-#ifdef CONFIG_MTRR
-#include <asm/mtrr.h>
-#endif
 #ifdef CONFIG_PMAC_BACKLIGHT
 #include <asm/machdep.h>
 #include <asm/backlight.h>
@@ -204,9 +201,7 @@ MODULE_DEVICE_TABLE(pci, rivafb_pci_tbl);
 static int flatpanel = -1; /* Autodetect later */
 static int forceCRTC = -1;
 static bool noaccel  = 0;
-#ifdef CONFIG_MTRR
 static bool nomtrr = 0;
-#endif
 #ifdef CONFIG_PMAC_BACKLIGHT
 static int backlight = 1;
 #else
@@ -2010,28 +2005,18 @@ static int rivafb_probe(struct pci_dev *pd, const struct pci_device_id *ent)
 
        rivafb_fix.smem_len = riva_get_memlen(default_par) * 1024;
        default_par->dclk_max = riva_get_maxdclk(default_par) * 1000;
-       info->screen_base = ioremap(rivafb_fix.smem_start,
-                                   rivafb_fix.smem_len);
+       info->screen_base = ioremap_wc(rivafb_fix.smem_start,
+                                      rivafb_fix.smem_len);
        if (!info->screen_base) {
                printk(KERN_ERR PFX "cannot ioremap FB base\n");
                ret = -EIO;
                goto err_iounmap_pramin;
        }
 
-#ifdef CONFIG_MTRR
-       if (!nomtrr) {
-               default_par->mtrr.vram = mtrr_add(rivafb_fix.smem_start,
-                                                 rivafb_fix.smem_len,
-                                                 MTRR_TYPE_WRCOMB, 1);
-               if (default_par->mtrr.vram < 0) {
-                       printk(KERN_ERR PFX "unable to setup MTRR\n");
-               } else {
-                       default_par->mtrr.vram_valid = 1;
-                       /* let there be speed */
-                       printk(KERN_INFO PFX "RIVA MTRR set to ON\n");
-               }
-       }
-#endif /* CONFIG_MTRR */
+       if (!nomtrr)
+               default_par->wc_cookie =
+                       arch_phys_wc_add(rivafb_fix.smem_start,
+                                        rivafb_fix.smem_len);
 
        info->fbops = &riva_fb_ops;
        info->fix = rivafb_fix;
@@ -2105,13 +2090,7 @@ static void rivafb_remove(struct pci_dev *pd)
        unregister_framebuffer(info);
 
        riva_bl_exit(info);
-
-#ifdef CONFIG_MTRR
-       if (par->mtrr.vram_valid)
-               mtrr_del(par->mtrr.vram, info->fix.smem_start,
-                        info->fix.smem_len);
-#endif /* CONFIG_MTRR */
-
+       arch_phys_wc_del(par->wc_cookie);
        iounmap(par->ctrl_base);
        iounmap(info->screen_base);
        if (par->riva.Architecture == NV_ARCH_03)
@@ -2150,10 +2129,8 @@ static int rivafb_setup(char *options)
                        flatpanel = 1;
                } else if (!strncmp(this_opt, "backlight:", 10)) {
                        backlight = simple_strtoul(this_opt+10, NULL, 0);
-#ifdef CONFIG_MTRR
                } else if (!strncmp(this_opt, "nomtrr", 6)) {
                        nomtrr = 1;
-#endif
                } else if (!strncmp(this_opt, "strictmode", 10)) {
                        strictmode = 1;
                } else if (!strncmp(this_opt, "noaccel", 7)) {
@@ -2209,10 +2186,8 @@ module_param(flatpanel, int, 0);
 MODULE_PARM_DESC(flatpanel, "Enables experimental flat panel support for some chipsets. (0 or 1=enabled) (default=0)");
 module_param(forceCRTC, int, 0);
 MODULE_PARM_DESC(forceCRTC, "Forces usage of a particular CRTC in case autodetection fails. (0 or 1) (default=autodetect)");
-#ifdef CONFIG_MTRR
 module_param(nomtrr, bool, 0);
 MODULE_PARM_DESC(nomtrr, "Disables MTRR support (0 or 1=disabled) (default=0)");
-#endif
 module_param(strictmode, bool, 0);
 MODULE_PARM_DESC(strictmode, "Only use video modes from EDID");