diff options
Diffstat (limited to 'drivers/video')
45 files changed, 376 insertions, 760 deletions
diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig index 8ea45a5cd806..983280e8d93f 100644 --- a/drivers/video/fbdev/Kconfig +++ b/drivers/video/fbdev/Kconfig @@ -1808,8 +1808,8 @@ config FB_HIT frame buffer card. config FB_PMAG_AA - bool "PMAG-AA TURBOchannel framebuffer support" - depends on (FB = y) && TC + tristate "PMAG-AA TURBOchannel framebuffer support" + depends on FB && TC select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT @@ -1985,7 +1985,7 @@ config FB_W100 config FB_SH_MOBILE_LCDC tristate "SuperH Mobile LCDC framebuffer support" - depends on FB && (SUPERH || ARCH_SHMOBILE) && HAVE_CLK + depends on FB && (SUPERH || ARCH_RENESAS) && HAVE_CLK depends on FB_SH_MOBILE_MERAM || !FB_SH_MOBILE_MERAM select FB_SYS_FILLRECT select FB_SYS_COPYAREA @@ -2246,7 +2246,6 @@ config XEN_FBDEV_FRONTEND select FB_SYS_IMAGEBLIT select FB_SYS_FOPS select FB_DEFERRED_IO - select INPUT_XEN_KBDDEV_FRONTEND if INPUT_MISC select XEN_XENBUS_FRONTEND default y help diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c index a305caea58ee..fb75b7e5a19a 100644 --- a/drivers/video/fbdev/acornfb.c +++ b/drivers/video/fbdev/acornfb.c @@ -1040,8 +1040,8 @@ static int acornfb_probe(struct platform_device *dev) * for the framebuffer if we are not using * VRAM. */ - base = dma_alloc_writecombine(current_par.dev, size, &handle, - GFP_KERNEL); + base = dma_alloc_wc(current_par.dev, size, &handle, + GFP_KERNEL); if (base == NULL) { printk(KERN_ERR "acornfb: unable to allocate screen " "memory\n"); diff --git a/drivers/video/fbdev/amba-clcd-versatile.c b/drivers/video/fbdev/amba-clcd-versatile.c index 7a8afcd4573e..a8a22daa3f9d 100644 --- a/drivers/video/fbdev/amba-clcd-versatile.c +++ b/drivers/video/fbdev/amba-clcd-versatile.c @@ -154,8 +154,8 @@ int versatile_clcd_setup_dma(struct clcd_fb *fb, unsigned long framesize) { dma_addr_t dma; - fb->fb.screen_base = dma_alloc_writecombine(&fb->dev->dev, framesize, - &dma, GFP_KERNEL); + fb->fb.screen_base = dma_alloc_wc(&fb->dev->dev, framesize, &dma, + GFP_KERNEL); if (!fb->fb.screen_base) { pr_err("CLCD: unable to map framebuffer\n"); return -ENOMEM; @@ -169,14 +169,12 @@ int versatile_clcd_setup_dma(struct clcd_fb *fb, unsigned long framesize) int versatile_clcd_mmap_dma(struct clcd_fb *fb, struct vm_area_struct *vma) { - return dma_mmap_writecombine(&fb->dev->dev, vma, - fb->fb.screen_base, - fb->fb.fix.smem_start, - fb->fb.fix.smem_len); + return dma_mmap_wc(&fb->dev->dev, vma, fb->fb.screen_base, + fb->fb.fix.smem_start, fb->fb.fix.smem_len); } void versatile_clcd_remove_dma(struct clcd_fb *fb) { - dma_free_writecombine(&fb->dev->dev, fb->fb.fix.smem_len, - fb->fb.screen_base, fb->fb.fix.smem_start); + dma_free_wc(&fb->dev->dev, fb->fb.fix.smem_len, fb->fb.screen_base, + fb->fb.fix.smem_start); } diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c index 9362424c2340..fe274b5851c7 100644 --- a/drivers/video/fbdev/amba-clcd.c +++ b/drivers/video/fbdev/amba-clcd.c @@ -774,8 +774,8 @@ static int clcdfb_of_dma_setup(struct clcd_fb *fb) static int clcdfb_of_dma_mmap(struct clcd_fb *fb, struct vm_area_struct *vma) { - return dma_mmap_writecombine(&fb->dev->dev, vma, fb->fb.screen_base, - fb->fb.fix.smem_start, fb->fb.fix.smem_len); + return dma_mmap_wc(&fb->dev->dev, vma, fb->fb.screen_base, + fb->fb.fix.smem_start, fb->fb.fix.smem_len); } static void clcdfb_of_dma_remove(struct clcd_fb *fb) diff --git a/drivers/video/fbdev/atafb.c b/drivers/video/fbdev/atafb.c index d6ce613e12ad..fcd2dd670a65 100644 --- a/drivers/video/fbdev/atafb.c +++ b/drivers/video/fbdev/atafb.c @@ -313,9 +313,6 @@ extern unsigned char fontdata_8x16[]; * * Draws cursor * * int (*fb_cursor) (struct fb_info *info, struct fb_cursor *cursor); * - * * Rotates the display * - * void (*fb_rotate)(struct fb_info *info, int angle); - * * * wait for blit idle, optional * * int (*fb_sync)(struct fb_info *info); * diff --git a/drivers/video/fbdev/atmel_lcdfb.c b/drivers/video/fbdev/atmel_lcdfb.c index 19eb42b57d87..669ecc755fa9 100644 --- a/drivers/video/fbdev/atmel_lcdfb.c +++ b/drivers/video/fbdev/atmel_lcdfb.c @@ -26,8 +26,6 @@ #include <linux/regulator/consumer.h> #include <video/videomode.h> -#include <asm/gpio.h> - #include <video/atmel_lcdc.h> struct atmel_lcdfb_config { @@ -414,8 +412,8 @@ static inline void atmel_lcdfb_free_video_memory(struct atmel_lcdfb_info *sinfo) { struct fb_info *info = sinfo->info; - dma_free_writecombine(info->device, info->fix.smem_len, - info->screen_base, info->fix.smem_start); + dma_free_wc(info->device, info->fix.smem_len, info->screen_base, + info->fix.smem_start); } /** @@ -435,8 +433,9 @@ static int atmel_lcdfb_alloc_video_memory(struct atmel_lcdfb_info *sinfo) * ((var->bits_per_pixel + 7) / 8)); info->fix.smem_len = max(smem_len, sinfo->smem_len); - info->screen_base = dma_alloc_writecombine(info->device, info->fix.smem_len, - (dma_addr_t *)&info->fix.smem_start, GFP_KERNEL); + info->screen_base = dma_alloc_wc(info->device, info->fix.smem_len, + (dma_addr_t *)&info->fix.smem_start, + GFP_KERNEL); if (!info->screen_base) { return -ENOMEM; diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c index c42ce2fdfd44..0a4626886b00 100644 --- a/drivers/video/fbdev/aty/aty128fb.c +++ b/drivers/video/fbdev/aty/aty128fb.c @@ -68,7 +68,6 @@ #include <asm/machdep.h> #include <asm/pmac_feature.h> #include <asm/prom.h> -#include <asm/pci-bridge.h> #include "../macmodes.h" #endif diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c index ce0b1d05a388..218339a4edaa 100644 --- a/drivers/video/fbdev/aty/radeon_base.c +++ b/drivers/video/fbdev/aty/radeon_base.c @@ -76,7 +76,6 @@ #ifdef CONFIG_PPC -#include <asm/pci-bridge.h> #include "../macmodes.h" #ifdef CONFIG_BOOTX_TEXT diff --git a/drivers/video/fbdev/au1100fb.c b/drivers/video/fbdev/au1100fb.c index 59560189b24a..35df2c1a8a63 100644 --- a/drivers/video/fbdev/au1100fb.c +++ b/drivers/video/fbdev/au1100fb.c @@ -334,27 +334,6 @@ int au1100fb_fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *fbi) return 0; } -/* fb_rotate - * Rotate the display of this angle. This doesn't seems to be used by the core, - * but as our hardware supports it, so why not implementing it... - */ -void au1100fb_fb_rotate(struct fb_info *fbi, int angle) -{ - struct au1100fb_device *fbdev = to_au1100fb_device(fbi); - - print_dbg("fb_rotate %p %d", fbi, angle); - - if (fbdev && (angle > 0) && !(angle % 90)) { - - fbdev->regs->lcd_control &= ~LCD_CONTROL_GO; - - fbdev->regs->lcd_control &= ~(LCD_CONTROL_SM_MASK); - fbdev->regs->lcd_control |= ((angle/90) << LCD_CONTROL_SM_BIT); - - fbdev->regs->lcd_control |= LCD_CONTROL_GO; - } -} - /* fb_mmap * Map video memory in user space. We don't use the generic fb_mmap method mainly * to allow the use of the TLB streaming flag (CCA=6) @@ -380,7 +359,6 @@ static struct fb_ops au1100fb_ops = .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, - .fb_rotate = au1100fb_fb_rotate, .fb_mmap = au1100fb_fb_mmap, }; diff --git a/drivers/video/fbdev/bf537-lq035.c b/drivers/video/fbdev/bf537-lq035.c index 7db3052b471d..ef29fb425122 100644 --- a/drivers/video/fbdev/bf537-lq035.c +++ b/drivers/video/fbdev/bf537-lq035.c @@ -554,28 +554,6 @@ static int bfin_lq035_fb_check_var(struct fb_var_screeninfo *var, return 0; } -/* fb_rotate - * Rotate the display of this angle. This doesn't seems to be used by the core, - * but as our hardware supports it, so why not implementing it... - */ -static void bfin_lq035_fb_rotate(struct fb_info *fbi, int angle) -{ - pr_debug("%s: %p %d", __func__, fbi, angle); -#if (defined(UD) && defined(LBR)) - switch (angle) { - - case 180: - gpio_set_value(LBR, 0); - gpio_set_value(UD, 1); - break; - default: - gpio_set_value(LBR, 1); - gpio_set_value(UD, 0); - break; - } -#endif -} - static int bfin_lq035_fb_cursor(struct fb_info *info, struct fb_cursor *cursor) { if (nocursor) @@ -623,7 +601,6 @@ static struct fb_ops bfin_lq035_fb_ops = { .fb_open = bfin_lq035_fb_open, .fb_release = bfin_lq035_fb_release, .fb_check_var = bfin_lq035_fb_check_var, - .fb_rotate = bfin_lq035_fb_rotate, .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = cfb_imageblit, diff --git a/drivers/video/fbdev/bt431.h b/drivers/video/fbdev/bt431.h index 04e0cfbba538..3929602f5867 100644 --- a/drivers/video/fbdev/bt431.h +++ b/drivers/video/fbdev/bt431.h @@ -2,6 +2,7 @@ * linux/drivers/video/bt431.h * * Copyright 2003 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + * Copyright 2016 Maciej W. Rozycki <macro@linux-mips.org> * * This file is subject to the terms and conditions of the GNU General * Public License. See the file COPYING in the main directory of this @@ -9,6 +10,8 @@ */ #include <linux/types.h> +#define BT431_CURSOR_SIZE 64 + /* * Bt431 cursor generator registers, 32-bit aligned. * Two twin Bt431 are used on the DECstation's PMAG-AA. @@ -60,7 +63,7 @@ static inline u8 bt431_get_value(u16 val) #define BT431_CMD_CURS_ENABLE 0x40 #define BT431_CMD_XHAIR_ENABLE 0x20 #define BT431_CMD_OR_CURSORS 0x10 -#define BT431_CMD_AND_CURSORS 0x00 +#define BT431_CMD_XOR_CURSORS 0x00 #define BT431_CMD_1_1_MUX 0x00 #define BT431_CMD_4_1_MUX 0x04 #define BT431_CMD_5_1_MUX 0x08 @@ -196,28 +199,30 @@ static inline void bt431_position_cursor(struct bt431_regs *regs, u16 x, u16 y) bt431_write_reg_inc(regs, (y >> 8) & 0x0f); /* BT431_REG_CYHI */ } -static inline void bt431_set_font(struct bt431_regs *regs, u8 fgc, - u16 width, u16 height) +static inline void bt431_set_cursor(struct bt431_regs *regs, + const char *data, const char *mask, + u16 rop, u16 width, u16 height) { + u16 x, y; int i; - u16 fgp = fgc ? 0xffff : 0x0000; - u16 bgp = fgc ? 0x0000 : 0xffff; + i = 0; + width = DIV_ROUND_UP(width, 8); bt431_select_reg(regs, BT431_REG_CRAM_BASE); - for (i = BT431_REG_CRAM_BASE; i <= BT431_REG_CRAM_END; i++) { - u16 value; - - if (height << 6 <= i << 3) - value = bgp; - else if (width <= i % 8 << 3) - value = bgp; - else if (((width >> 3) & 0xffff) > i % 8) - value = fgp; - else - value = fgp & ~(bgp << (width % 8 << 1)); - - bt431_write_cmap_inc(regs, value); - } + for (y = 0; y < BT431_CURSOR_SIZE; y++) + for (x = 0; x < BT431_CURSOR_SIZE / 8; x++) { + u16 val = 0; + + if (y < height && x < width) { + val = mask[i]; + if (rop == ROP_XOR) + val = (val << 8) | (val ^ data[i]); + else + val = (val << 8) | (val & data[i]); + i++; + } + bt431_write_cmap_inc(regs, val); + } } static inline void bt431_init_cursor(struct bt431_regs *regs) diff --git a/drivers/video/fbdev/bt455.h b/drivers/video/fbdev/bt455.h index 80f61b03e9ae..dd1404b40611 100644 --- a/drivers/video/fbdev/bt455.h +++ b/drivers/video/fbdev/bt455.h @@ -2,6 +2,7 @@ * linux/drivers/video/bt455.h * * Copyright 2003 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + * Copyright 2016 Maciej W. Rozycki <macro@linux-mips.org> * * This file is subject to the terms and conditions of the GNU General * Public License. See the file COPYING in the main directory of this @@ -29,66 +30,61 @@ static inline void bt455_select_reg(struct bt455_regs *regs, int ir) regs->addr_cmap = ir & 0x0f; } +static inline void bt455_reset_reg(struct bt455_regs *regs) +{ + mb(); + regs->addr_clr = 0; +} + /* * Read/write to a Bt455 color map register. */ -static inline void bt455_read_cmap_entry(struct bt455_regs *regs, int cr, - u8* red, u8* green, u8* blue) +static inline void bt455_read_cmap_next(struct bt455_regs *regs, u8 *grey) { - bt455_select_reg(regs, cr); mb(); - *red = regs->addr_cmap_data & 0x0f; + regs->addr_cmap_data; rmb(); - *green = regs->addr_cmap_data & 0x0f; + *grey = regs->addr_cmap_data & 0xf; rmb(); - *blue = regs->addr_cmap_data & 0x0f; + regs->addr_cmap_data; } -static inline void bt455_write_cmap_entry(struct bt455_regs *regs, int cr, - u8 red, u8 green, u8 blue) +static inline void bt455_write_cmap_next(struct bt455_regs *regs, u8 grey) { - bt455_select_reg(regs, cr); wmb(); - regs->addr_cmap_data = red & 0x0f; + regs->addr_cmap_data = 0x0; wmb(); - regs->addr_cmap_data = green & 0x0f; + regs->addr_cmap_data = grey & 0xf; wmb(); - regs->addr_cmap_data = blue & 0x0f; + regs->addr_cmap_data = 0x0; } -static inline void bt455_write_ovly_entry(struct bt455_regs *regs, int cr, - u8 red, u8 green, u8 blue) +static inline void bt455_write_ovly_next(struct bt455_regs *regs, u8 grey) { - bt455_select_reg(regs, cr); wmb(); - regs->addr_ovly = red & 0x0f; + regs->addr_ovly = 0x0; wmb(); - regs->addr_ovly = green & 0x0f; + regs->addr_ovly = grey & 0xf; wmb(); - regs->addr_ovly = blue & 0x0f; + regs->addr_ovly = 0x0; } -static inline void bt455_set_cursor(struct bt455_regs *regs) +static inline void bt455_read_cmap_entry(struct bt455_regs *regs, + int cr, u8 *grey) { - mb(); - regs->addr_ovly = 0x0f; - wmb(); - regs->addr_ovly = 0x0f; - wmb(); - regs->addr_ovly = 0x0f; + bt455_select_reg(regs, cr); + bt455_read_cmap_next(regs, grey); } -static inline void bt455_erase_cursor(struct bt455_regs *regs) +static inline void bt455_write_cmap_entry(struct bt455_regs *regs, + int cr, u8 grey) { - /* bt455_write_cmap_entry(regs, 8, 0x00, 0x00, 0x00); */ - /* bt455_write_cmap_entry(regs, 9, 0x00, 0x00, 0x00); */ - bt455_write_ovly_entry(regs, 8, 0x03, 0x03, 0x03); - bt455_write_ovly_entry(regs, 9, 0x07, 0x07, 0x07); + bt455_select_reg(regs, cr); + bt455_write_cmap_next(regs, grey); +} - wmb(); - regs->addr_ovly = 0x09; - wmb(); - regs->addr_ovly = 0x09; - wmb(); - regs->addr_ovly = 0x09; +static inline void bt455_write_ovly_entry(struct bt455_regs *regs, u8 grey) +{ + bt455_reset_reg(regs); + bt455_write_ovly_next(regs, grey); } diff --git a/drivers/video/fbdev/da8xx-fb.c b/drivers/video/fbdev/da8xx-fb.c index 6b2a06d09f2b..d8d583d32a37 100644 --- a/drivers/video/fbdev/da8xx-fb.c +++ b/drivers/video/fbdev/da8xx-fb.c @@ -209,8 +209,7 @@ static struct fb_videomode known_lcd_panels[] = { .lower_margin = 2, .hsync_len = 0, .vsync_len = 0, - .sync = FB_SYNC_CLK_INVERT | - FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, + .sync = FB_SYNC_CLK_INVERT, }, /* Sharp LK043T1DG01 */ [1] = { @@ -224,7 +223,7 @@ static struct fb_videomode known_lcd_panels[] = { .lower_margin = 2, .hsync_len = 41, .vsync_len = 10, - .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, + .sync = 0, .flag = 0, }, [2] = { @@ -239,7 +238,7 @@ static struct fb_videomode known_lcd_panels[] = { .lower_margin = 10, .hsync_len = 10, .vsync_len = 10, - .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, + .sync = 0, .flag = 0, }, [3] = { diff --git a/drivers/video/fbdev/ep93xx-fb.c b/drivers/video/fbdev/ep93xx-fb.c index 5b1081030cbb..75f0db25d19f 100644 --- a/drivers/video/fbdev/ep93xx-fb.c +++ b/drivers/video/fbdev/ep93xx-fb.c @@ -316,9 +316,8 @@ static int ep93xxfb_mmap(struct fb_info *info, struct vm_area_struct *vma) unsigned int offset = vma->vm_pgoff << PAGE_SHIFT; if (offset < info->fix.smem_len) { - return dma_mmap_writecombine(info->dev, vma, info->screen_base, - info->fix.smem_start, - info->fix.smem_len); + return dma_mmap_wc(info->dev, vma, info->screen_base, + info->fix.smem_start, info->fix.smem_len); } return -EINVAL; @@ -428,8 +427,7 @@ static int ep93xxfb_alloc_videomem(struct fb_info *info) /* Maximum 16bpp -> used memory is maximum x*y*2 bytes */ fb_size = EP93XXFB_MAX_XRES * EP93XXFB_MAX_YRES * 2; - virt_addr = dma_alloc_writecombine(info->dev, fb_size, - &phys_addr, GFP_KERNEL); + virt_addr = dma_alloc_wc(info->dev, fb_size, &phys_addr, GFP_KERNEL); if (!virt_addr) return -ENOMEM; diff --git a/drivers/video/fbdev/exynos/Kconfig b/drivers/video/fbdev/exynos/Kconfig index 1f16b4678c71..d916bef94f25 100644 --- a/drivers/video/fbdev/exynos/Kconfig +++ b/drivers/video/fbdev/exynos/Kconfig @@ -3,7 +3,7 @@ # menuconfig EXYNOS_VIDEO - bool "Exynos Video driver support" + tristate "Exynos Video driver support" depends on ARCH_S5PV210 || ARCH_EXYNOS help This enables support for EXYNOS Video device. @@ -15,13 +15,13 @@ if EXYNOS_VIDEO # config EXYNOS_MIPI_DSI - bool "EXYNOS MIPI DSI driver support." + tristate "EXYNOS MIPI DSI driver support." select GENERIC_PHY help This enables support for MIPI-DSI device. config EXYNOS_LCD_S6E8AX0 - bool "S6E8AX0 MIPI AMOLED LCD Driver" + tristate "S6E8AX0 MIPI AMOLED LCD Driver" depends on EXYNOS_MIPI_DSI && BACKLIGHT_CLASS_DEVICE depends on (LCD_CLASS_DEVICE = y) default n diff --git a/drivers/video/fbdev/exynos/Makefile b/drivers/video/fbdev/exynos/Makefile index b5b1bd228abb..02d8dc522fea 100644 --- a/drivers/video/fbdev/exynos/Makefile +++ b/drivers/video/fbdev/exynos/Makefile @@ -2,6 +2,8 @@ # Makefile for the exynos video drivers. # -obj-$(CONFIG_EXYNOS_MIPI_DSI) += exynos_mipi_dsi.o exynos_mipi_dsi_common.o \ - exynos_mipi_dsi_lowlevel.o +obj-$(CONFIG_EXYNOS_MIPI_DSI) += exynos-mipi-dsi-mod.o + +exynos-mipi-dsi-mod-objs += exynos_mipi_dsi.o exynos_mipi_dsi_common.o \ + exynos_mipi_dsi_lowlevel.o obj-$(CONFIG_EXYNOS_LCD_S6E8AX0) += s6e8ax0.o diff --git a/drivers/video/fbdev/exynos/exynos_mipi_dsi.c b/drivers/video/fbdev/exynos/exynos_mipi_dsi.c index b527fe464628..92e4af3caaf8 100644 --- a/drivers/video/fbdev/exynos/exynos_mipi_dsi.c +++ b/drivers/video/fbdev/exynos/exynos_mipi_dsi.c @@ -263,6 +263,7 @@ int exynos_mipi_dsi_register_lcd_driver(struct mipi_dsim_lcd_driver *lcd_drv) return 0; } +EXPORT_SYMBOL_GPL(exynos_mipi_dsi_register_lcd_driver); static struct mipi_dsim_ddi *exynos_mipi_dsi_bind_lcd_ddi( struct mipi_dsim_device *dsim, @@ -402,12 +403,12 @@ static int exynos_mipi_dsi_probe(struct platform_device *pdev) goto error; } - dsim->irq = platform_get_irq(pdev, 0); - if (IS_ERR_VALUE(dsim->irq)) { + ret = platform_get_irq(pdev, 0); + if (ret < 0) { dev_err(&pdev->dev, "failed to request dsim irq resource\n"); - ret = -EINVAL; goto error; } + dsim->irq = ret; init_completion(&dsim_wr_comp); init_completion(&dsim_rd_comp); diff --git a/drivers/video/fbdev/gbefb.c b/drivers/video/fbdev/gbefb.c index b63d55f481fa..1a242b1338e9 100644 --- a/drivers/video/fbdev/gbefb.c +++ b/drivers/video/fbdev/gbefb.c @@ -1185,8 +1185,8 @@ static int gbefb_probe(struct platform_device *p_dev) } else { /* try to allocate memory with the classical allocator * this has high chance to fail on low memory machines */ - gbe_mem = dma_alloc_writecombine(NULL, gbe_mem_size, - &gbe_dma_addr, GFP_KERNEL); + gbe_mem = dma_alloc_wc(NULL, gbe_mem_size, &gbe_dma_addr, + GFP_KERNEL); if (!gbe_mem) { printk(KERN_ERR "gbefb: couldn't allocate framebuffer memory\n"); ret = -ENOMEM; @@ -1238,7 +1238,7 @@ static int gbefb_probe(struct platform_device *p_dev) out_gbe_unmap: arch_phys_wc_del(par->wc_cookie); if (gbe_dma_addr) - dma_free_writecombine(NULL, gbe_mem_size, gbe_mem, gbe_mem_phys); + dma_free_wc(NULL, gbe_mem_size, gbe_mem, gbe_mem_phys); out_tiles_free: dma_free_coherent(NULL, GBE_TLB_SIZE * sizeof(uint16_t), (void *)gbe_tiles.cpu, gbe_tiles.dma); @@ -1259,7 +1259,7 @@ static int gbefb_remove(struct platform_device* p_dev) gbe_turn_off(); arch_phys_wc_del(par->wc_cookie); if (gbe_dma_addr) - dma_free_writecombine(NULL, gbe_mem_size, gbe_mem, gbe_mem_phys); + dma_free_wc(NULL, gbe_mem_size, gbe_mem, gbe_mem_phys); dma_free_coherent(NULL, GBE_TLB_SIZE * sizeof(uint16_t), (void *)gbe_tiles.cpu, gbe_tiles.dma); release_mem_region(GBE_BASE, sizeof(struct sgi_gbe)); diff --git a/drivers/video/fbdev/imsttfb.c b/drivers/video/fbdev/imsttfb.c index 9b167f7ef6c6..4363c64d74e8 100644 --- a/drivers/video/fbdev/imsttfb.c +++ b/drivers/video/fbdev/imsttfb.c @@ -33,7 +33,6 @@ #if defined(CONFIG_PPC) #include <linux/nvram.h> #include <asm/prom.h> -#include <asm/pci-bridge.h> #include "macmodes.h" #endif diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c index bb2f1e866020..76b6a7784b06 100644 --- a/drivers/video/fbdev/imxfb.c +++ b/drivers/video/fbdev/imxfb.c @@ -937,8 +937,8 @@ static int imxfb_probe(struct platform_device *pdev) } fbi->map_size = PAGE_ALIGN(info->fix.smem_len); - info->screen_base = dma_alloc_writecombine(&pdev->dev, fbi->map_size, - &fbi->map_dma, GFP_KERNEL); + info->screen_base = dma_alloc_wc(&pdev->dev, fbi->map_size, + &fbi->map_dma, GFP_KERNEL); if (!info->screen_base) { dev_err(&pdev->dev, "Failed to allocate video RAM: %d\n", ret); @@ -1005,8 +1005,8 @@ failed_cmap: if (pdata && pdata->exit) pdata->exit(fbi->pdev); failed_platform_init: - dma_ |