diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2015-07-07 12:35:33 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2015-07-07 12:35:33 +0100 |
commit | 06be5eefe1192eb8ce8d07497f67595b6bfe9741 (patch) | |
tree | 80f1987d4970f8079681f8be0c135cafc8d6329a /drivers/video/fbdev/i810 | |
parent | ARM: fix lockdep unannotated irqs-off warning (diff) | |
parent | ARM: avoid unwanted GCC memset()/memcpy() optimisations for IO variants (diff) | |
download | linux-dev-06be5eefe1192eb8ce8d07497f67595b6bfe9741.tar.xz linux-dev-06be5eefe1192eb8ce8d07497f67595b6bfe9741.zip |
Merge branches 'fixes' and 'ioremap' into for-linus
Diffstat (limited to 'drivers/video/fbdev/i810')
-rw-r--r-- | drivers/video/fbdev/i810/i810.h | 3 | ||||
-rw-r--r-- | drivers/video/fbdev/i810/i810_main.c | 11 | ||||
-rw-r--r-- | drivers/video/fbdev/i810/i810_main.h | 26 |
3 files changed, 8 insertions, 32 deletions
diff --git a/drivers/video/fbdev/i810/i810.h b/drivers/video/fbdev/i810/i810.h index 1414b73ac55b..7b1c002bfb08 100644 --- a/drivers/video/fbdev/i810/i810.h +++ b/drivers/video/fbdev/i810/i810.h @@ -199,7 +199,6 @@ #define HAS_FONTCACHE 8 /* driver flags */ -#define HAS_MTRR 1 #define HAS_ACCELERATION 2 #define ALWAYS_SYNC 4 #define LOCKUP 8 @@ -281,7 +280,7 @@ struct i810fb_par { u32 ovract; u32 cur_state; u32 ddc_num; - int mtrr_reg; + int wc_cookie; u16 bltcntl; u8 interlace; }; diff --git a/drivers/video/fbdev/i810/i810_main.c b/drivers/video/fbdev/i810/i810_main.c index bb674e431741..025b882a4826 100644 --- a/drivers/video/fbdev/i810/i810_main.c +++ b/drivers/video/fbdev/i810/i810_main.c @@ -41,6 +41,7 @@ #include <linux/resource.h> #include <linux/unistd.h> #include <linux/console.h> +#include <linux/io.h> #include <asm/io.h> #include <asm/div64.h> @@ -1816,7 +1817,9 @@ static void i810_init_device(struct i810fb_par *par) u8 reg; u8 __iomem *mmio = par->mmio_start_virtual; - if (mtrr) set_mtrr(par); + if (mtrr) + par->wc_cookie= arch_phys_wc_add((u32) par->aperture.physical, + par->aperture.size); i810_init_cursor(par); @@ -1865,8 +1868,8 @@ static int i810_allocate_pci_resource(struct i810fb_par *par, } par->res_flags |= FRAMEBUFFER_REQ; - par->aperture.virtual = ioremap_nocache(par->aperture.physical, - par->aperture.size); + par->aperture.virtual = ioremap_wc(par->aperture.physical, + par->aperture.size); if (!par->aperture.virtual) { printk("i810fb_init: cannot remap framebuffer region\n"); return -ENODEV; @@ -2096,7 +2099,7 @@ static void i810fb_release_resource(struct fb_info *info, struct i810fb_par *par) { struct gtt_data *gtt = &par->i810_gtt; - unset_mtrr(par); + arch_phys_wc_del(par->wc_cookie); i810_delete_i2c_busses(par); diff --git a/drivers/video/fbdev/i810/i810_main.h b/drivers/video/fbdev/i810/i810_main.h index a25afaa534ba..7bfaaad1d0fa 100644 --- a/drivers/video/fbdev/i810/i810_main.h +++ b/drivers/video/fbdev/i810/i810_main.h @@ -60,32 +60,6 @@ static inline void flush_cache(void) #define flush_cache() do { } while(0) #endif -#ifdef CONFIG_MTRR - -#include <asm/mtrr.h> - -static inline void set_mtrr(struct i810fb_par *par) -{ - par->mtrr_reg = mtrr_add((u32) par->aperture.physical, - par->aperture.size, MTRR_TYPE_WRCOMB, 1); - if (par->mtrr_reg < 0) { - printk(KERN_ERR "set_mtrr: unable to set MTRR\n"); - return; - } - par->dev_flags |= HAS_MTRR; -} -static inline void unset_mtrr(struct i810fb_par *par) -{ - if (par->dev_flags & HAS_MTRR) - mtrr_del(par->mtrr_reg, (u32) par->aperture.physical, - par->aperture.size); -} -#else -#define set_mtrr(x) printk("set_mtrr: MTRR is disabled in the kernel\n") - -#define unset_mtrr(x) do { } while (0) -#endif /* CONFIG_MTRR */ - #ifdef CONFIG_FB_I810_GTF #define IS_DVT (0) #else |