These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / video / fbdev / nvidia / nvidia.c
index 4273c6e..ce7dab7 100644 (file)
@@ -21,9 +21,6 @@
 #include <linux/pci.h>
 #include <linux/console.h>
 #include <linux/backlight.h>
-#ifdef CONFIG_MTRR
-#include <asm/mtrr.h>
-#endif
 #ifdef CONFIG_BOOTX_TEXT
 #include <asm/btext.h>
 #endif
@@ -76,9 +73,7 @@ static int paneltweak = 0;
 static int vram = 0;
 static int bpp = 8;
 static int reverse_i2c;
-#ifdef CONFIG_MTRR
 static bool nomtrr = false;
-#endif
 #ifdef CONFIG_PMAC_BACKLIGHT
 static int backlight = 1;
 #else
@@ -1361,7 +1356,8 @@ static int nvidiafb_probe(struct pci_dev *pd, const struct pci_device_id *ent)
        par->ScratchBufferStart = par->FbUsableSize - par->ScratchBufferSize;
        par->CursorStart = par->FbUsableSize + (32 * 1024);
 
-       info->screen_base = ioremap(nvidiafb_fix.smem_start, par->FbMapSize);
+       info->screen_base = ioremap_wc(nvidiafb_fix.smem_start,
+                                      par->FbMapSize);
        info->screen_size = par->FbUsableSize;
        nvidiafb_fix.smem_len = par->RamAmountKBytes * 1024;
 
@@ -1372,20 +1368,9 @@ static int nvidiafb_probe(struct pci_dev *pd, const struct pci_device_id *ent)
 
        par->FbStart = info->screen_base;
 
-#ifdef CONFIG_MTRR
-       if (!nomtrr) {
-               par->mtrr.vram = mtrr_add(nvidiafb_fix.smem_start,
-                                         par->RamAmountKBytes * 1024,
-                                         MTRR_TYPE_WRCOMB, 1);
-               if (par->mtrr.vram < 0) {
-                       printk(KERN_ERR PFX "unable to setup MTRR\n");
-               } else {
-                       par->mtrr.vram_valid = 1;
-                       /* let there be speed */
-                       printk(KERN_INFO PFX "MTRR set to ON\n");
-               }
-       }
-#endif                         /* CONFIG_MTRR */
+       if (!nomtrr)
+               par->wc_cookie = arch_phys_wc_add(nvidiafb_fix.smem_start,
+                                                 par->RamAmountKBytes * 1024);
 
        info->fbops = &nvidia_fb_ops;
        info->fix = nvidiafb_fix;
@@ -1443,13 +1428,7 @@ static void nvidiafb_remove(struct pci_dev *pd)
        unregister_framebuffer(info);
 
        nvidia_bl_exit(par);
-
-#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(info->screen_base);
        fb_destroy_modedb(info->monspecs.modedb);
        nvidia_delete_i2c_busses(par);
@@ -1501,10 +1480,8 @@ static int nvidiafb_setup(char *options)
                        vram = simple_strtoul(this_opt+5, NULL, 0);
                } 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 = true;
-#endif
                } else if (!strncmp(this_opt, "fpdither:", 9)) {
                        fpdither = simple_strtol(this_opt+9, NULL, 0);
                } else if (!strncmp(this_opt, "bpp:", 4)) {
@@ -1592,11 +1569,9 @@ MODULE_PARM_DESC(bpp, "pixel width in bits"
                 "(default=8)");
 module_param(reverse_i2c, int, 0);
 MODULE_PARM_DESC(reverse_i2c, "reverse port assignment of the i2c bus");
-#ifdef CONFIG_MTRR
 module_param(nomtrr, bool, false);
 MODULE_PARM_DESC(nomtrr, "Disables MTRR support (0 or 1=disabled) "
                 "(default=0)");
-#endif
 
 MODULE_AUTHOR("Antonino Daplas");
 MODULE_DESCRIPTION("Framebuffer driver for nVidia graphics chipset");