diff options
Diffstat (limited to 'drivers/video')
139 files changed, 179 insertions, 115 deletions
diff --git a/drivers/video/68328fb.c b/drivers/video/68328fb.c index 2110556f76b3..75a39eab70c3 100644 --- a/drivers/video/68328fb.c +++ b/drivers/video/68328fb.c @@ -32,7 +32,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/acornfb.c b/drivers/video/acornfb.c index 43d7d5067361..82acb8dc4aa1 100644 --- a/drivers/video/acornfb.c +++ b/drivers/video/acornfb.c @@ -22,13 +22,13 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/ctype.h> -#include <linux/slab.h> #include <linux/mm.h> #include <linux/init.h> #include <linux/fb.h> #include <linux/platform_device.h> #include <linux/dma-mapping.h> #include <linux/io.h> +#include <linux/gfp.h> #include <mach/hardware.h> #include <asm/irq.h> diff --git a/drivers/video/amifb.c b/drivers/video/amifb.c index 82bedd7f7789..e5d6b56d4447 100644 --- a/drivers/video/amifb.c +++ b/drivers/video/amifb.c @@ -45,14 +45,14 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/interrupt.h> #include <linux/fb.h> #include <linux/init.h> #include <linux/ioport.h> - +#include <linux/platform_device.h> #include <linux/uaccess.h> + #include <asm/system.h> #include <asm/irq.h> #include <asm/amigahw.h> @@ -1136,7 +1136,7 @@ static int amifb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg * Interface to the low level console driver */ -static void amifb_deinit(void); +static void amifb_deinit(struct platform_device *pdev); /* * Internal routines @@ -2247,7 +2247,7 @@ static inline void chipfree(void) * Initialisation */ -static int __init amifb_init(void) +static int __init amifb_probe(struct platform_device *pdev) { int tag, i, err = 0; u_long chipptr; @@ -2262,16 +2262,6 @@ static int __init amifb_init(void) } amifb_setup(option); #endif - if (!MACH_IS_AMIGA || !AMIGAHW_PRESENT(AMI_VIDEO)) - return -ENODEV; - - /* - * We request all registers starting from bplpt[0] - */ - if (!request_mem_region(CUSTOM_PHYSADDR+0xe0, 0x120, - "amifb [Denise/Lisa]")) - return -EBUSY; - custom.dmacon = DMAF_ALL | DMAF_MASTER; switch (amiga_chipset) { @@ -2378,6 +2368,7 @@ default_chipset: fb_info.fbops = &amifb_ops; fb_info.par = ¤tpar; fb_info.flags = FBINFO_DEFAULT; + fb_info.device = &pdev->dev; if (!fb_find_mode(&fb_info.var, &fb_info, mode_option, ami_modedb, NUM_TOTAL_MODES, &ami_modedb[defmode], 4)) { @@ -2452,18 +2443,18 @@ default_chipset: return 0; amifb_error: - amifb_deinit(); + amifb_deinit(pdev); return err; } -static void amifb_deinit(void) +static void amifb_deinit(struct platform_device *pdev) { if (fb_info.cmap.len) fb_dealloc_cmap(&fb_info.cmap); + fb_dealloc_cmap(&fb_info.cmap); chipfree(); if (videomemory) iounmap((void*)videomemory); - release_mem_region(CUSTOM_PHYSADDR+0xe0, 0x120); custom.dmacon = DMAF_ALL | DMAF_MASTER; } @@ -3795,14 +3786,35 @@ static void ami_rebuild_copper(void) } } -static void __exit amifb_exit(void) +static int __exit amifb_remove(struct platform_device *pdev) { unregister_framebuffer(&fb_info); - amifb_deinit(); + amifb_deinit(pdev); amifb_video_off(); + return 0; +} + +static struct platform_driver amifb_driver = { + .remove = __exit_p(amifb_remove), + .driver = { + .name = "amiga-video", + .owner = THIS_MODULE, + }, +}; + +static int __init amifb_init(void) +{ + return platform_driver_probe(&amifb_driver, amifb_probe); } module_init(amifb_init); + +static void __exit amifb_exit(void) +{ + platform_driver_unregister(&amifb_driver); +} + module_exit(amifb_exit); MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:amiga-video"); diff --git a/drivers/video/arcfb.c b/drivers/video/arcfb.c index 01554d696528..8d406fb689c1 100644 --- a/drivers/video/arcfb.c +++ b/drivers/video/arcfb.c @@ -39,7 +39,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/asiliantfb.c b/drivers/video/asiliantfb.c index e70bc225fe31..8cdf88e20b4b 100644 --- a/drivers/video/asiliantfb.c +++ b/drivers/video/asiliantfb.c @@ -34,7 +34,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/atafb.c b/drivers/video/atafb.c index b7687c55fe16..f3aada20fa02 100644 --- a/drivers/video/atafb.c +++ b/drivers/video/atafb.c @@ -52,7 +52,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/interrupt.h> diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c index 11de3bfd4e54..8dce25126330 100644 --- a/drivers/video/atmel_lcdfb.c +++ b/drivers/video/atmel_lcdfb.c @@ -17,6 +17,7 @@ #include <linux/init.h> #include <linux/delay.h> #include <linux/backlight.h> +#include <linux/gfp.h> #include <mach/board.h> #include <mach/cpu.h> diff --git a/drivers/video/aty/aty128fb.c b/drivers/video/aty/aty128fb.c index a489be0c4614..34a0851bcbfa 100644 --- a/drivers/video/aty/aty128fb.c +++ b/drivers/video/aty/aty128fb.c @@ -52,7 +52,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/aty/mach64_cursor.c b/drivers/video/aty/mach64_cursor.c index 04c710804bb0..2ba8b3c421a1 100644 --- a/drivers/video/aty/mach64_cursor.c +++ b/drivers/video/aty/mach64_cursor.c @@ -2,7 +2,6 @@ * ATI Mach64 CT/VT/GT/LT Cursor Support */ -#include <linux/slab.h> #include <linux/fb.h> #include <linux/init.h> #include <linux/string.h> diff --git a/drivers/video/aty/radeon_backlight.c b/drivers/video/aty/radeon_backlight.c index 9fc8c66be3ce..256966e9667d 100644 --- a/drivers/video/aty/radeon_backlight.c +++ b/drivers/video/aty/radeon_backlight.c @@ -12,6 +12,7 @@ #include "radeonfb.h" #include <linux/backlight.h> +#include <linux/slab.h> #ifdef CONFIG_PMAC_BACKLIGHT #include <asm/backlight.h> diff --git a/drivers/video/aty/radeon_monitor.c b/drivers/video/aty/radeon_monitor.c index b4d4b88afc09..9261c918fde8 100644 --- a/drivers/video/aty/radeon_monitor.c +++ b/drivers/video/aty/radeon_monitor.c @@ -1,4 +1,7 @@ #include "radeonfb.h" + +#include <linux/slab.h> + #include "../edid.h" static struct fb_var_screeninfo radeonfb_default_var = { diff --git a/drivers/video/au1100fb.c b/drivers/video/au1100fb.c index a699aab63820..40f61320ce16 100644 --- a/drivers/video/au1100fb.c +++ b/drivers/video/au1100fb.c @@ -52,6 +52,7 @@ #include <linux/ctype.h> #include <linux/dma-mapping.h> #include <linux/platform_device.h> +#include <linux/slab.h> #include <asm/mach-au1x00/au1000.h> diff --git a/drivers/video/au1200fb.c b/drivers/video/au1200fb.c index 0d96f1d2d4c5..e77e8e4280fb 100644 --- a/drivers/video/au1200fb.c +++ b/drivers/video/au1200fb.c @@ -41,6 +41,7 @@ #include <linux/interrupt.h> #include <linux/ctype.h> #include <linux/dma-mapping.h> +#include <linux/slab.h> #include <asm/mach-au1x00/au1000.h> #include "au1200fb.h" diff --git a/drivers/video/backlight/88pm860x_bl.c b/drivers/video/backlight/88pm860x_bl.c index 93e25c77aeb2..68d2518fadaa 100644 --- a/drivers/video/backlight/88pm860x_bl.c +++ b/drivers/video/backlight/88pm860x_bl.c @@ -16,6 +16,7 @@ #include <linux/i2c.h> #include <linux/backlight.h> #include <linux/mfd/88pm860x.h> +#include <linux/slab.h> #define MAX_BRIGHTNESS (0xFF) #define MIN_BRIGHTNESS (0) diff --git a/drivers/video/backlight/adp5520_bl.c b/drivers/video/backlight/adp5520_bl.c index 5183f0e4d314..9f436e014f85 100644 --- a/drivers/video/backlight/adp5520_bl.c +++ b/drivers/video/backlight/adp5520_bl.c @@ -12,6 +12,7 @@ #include <linux/fb.h> #include <linux/backlight.h> #include <linux/mfd/adp5520.h> +#include <linux/slab.h> struct adp5520_bl { struct device *master; diff --git a/drivers/video/backlight/adx_bl.c b/drivers/video/backlight/adx_bl.c index b0624b983889..7f4a7c30a98b 100644 --- a/drivers/video/backlight/adx_bl.c +++ b/drivers/video/backlight/adx_bl.c @@ -12,6 +12,7 @@ #include <linux/backlight.h> #include <linux/fb.h> +#include <linux/gfp.h> #include <linux/io.h> #include <linux/module.h> #include <linux/platform_device.h> diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c index 2d9760551a4b..e6a66dab088c 100644 --- a/drivers/video/backlight/atmel-pwm-bl.c +++ b/drivers/video/backlight/atmel-pwm-bl.c @@ -17,6 +17,7 @@ #include <linux/backlight.h> #include <linux/atmel_pwm.h> #include <linux/atmel-pwm-bl.h> +#include <linux/slab.h> struct atmel_pwm_bl { const struct atmel_pwm_bl_platform_data *pdata; diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 68bb838b9f11..e207810bba3c 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c @@ -13,6 +13,7 @@ #include <linux/ctype.h> #include <linux/err.h> #include <linux/fb.h> +#include <linux/slab.h> #ifdef CONFIG_PMAC_BACKLIGHT #include <asm/backlight.h> diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c index 73bdd8454c94..1e71c35083bb 100644 --- a/drivers/video/backlight/corgi_lcd.c +++ b/drivers/video/backlight/corgi_lcd.c @@ -24,6 +24,7 @@ #include <linux/lcd.h> #include <linux/spi/spi.h> #include <linux/spi/corgi_lcd.h> +#include <linux/slab.h> #include <asm/mach/sharpsl_param.h> #define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL) diff --git a/drivers/video/backlight/cr_bllcd.c b/drivers/video/backlight/cr_bllcd.c index 1cce6031bff2..a4f4546f0be0 100644 --- a/drivers/video/backlight/cr_bllcd.c +++ b/drivers/video/backlight/cr_bllcd.c @@ -36,6 +36,7 @@ #include <linux/backlight.h> #include <linux/lcd.h> #include <linux/pci.h> +#include <linux/slab.h> /* The LVDS- and panel power controls sits on the * GPIO port of the ISA bridge. diff --git a/drivers/video/backlight/da903x_bl.c b/drivers/video/backlight/da903x_bl.c index 686e4a789238..87659ed79bd7 100644 --- a/drivers/video/backlight/da903x_bl.c +++ b/drivers/video/backlight/da903x_bl.c @@ -18,6 +18,7 @@ #include <linux/fb.h> #include <linux/backlight.h> #include <linux/mfd/da903x.h> +#include <linux/slab.h> #define DA9030_WLED_CONTROL 0x25 #define DA9030_WLED_CP_EN (1 << 6) diff --git a/drivers/video/backlight/ili9320.c b/drivers/video/backlight/ili9320.c index ba89b41b639c..5118a9f029ab 100644 --- a/drivers/video/backlight/ili9320.c +++ b/drivers/video/backlight/ili9320.c @@ -17,6 +17,7 @@ #include <linux/init.h> #include <linux/lcd.h> #include <linux/module.h> +#include <linux/slab.h> #include <linux/spi/spi.h> diff --git a/drivers/video/backlight/l4f00242t03.c b/drivers/video/backlight/l4f00242t03.c index 74abd6994b09..bcdb12c93efd 100644 --- a/drivers/video/backlight/l4f00242t03.c +++ b/drivers/video/backlight/l4f00242t03.c @@ -16,6 +16,7 @@ #include <linux/delay.h> #include <linux/gpio.h> #include <linux/lcd.h> +#include <linux/slab.h> #include <linux/regulator/consumer.h> #include <linux/spi/spi.h> diff --git a/drivers/video/backlight/lcd.c b/drivers/video/backlight/lcd.c index 9b3be74cee5a..71a11cadffc4 100644 --- a/drivers/video/backlight/lcd.c +++ b/drivers/video/backlight/lcd.c @@ -13,6 +13,7 @@ #include <linux/ctype.h> #include <linux/err.h> #include <linux/fb.h> +#include <linux/slab.h> #if defined(CONFIG_FB) || (defined(CONFIG_FB_MODULE) && \ defined(CONFIG_LCD_CLASS_DEVICE_MODULE)) diff --git a/drivers/video/backlight/lms283gf05.c b/drivers/video/backlight/lms283gf05.c index 447b542a20ca..abc43a0eb97d 100644 --- a/drivers/video/backlight/lms283gf05.c +++ b/drivers/video/backlight/lms283gf05.c @@ -11,6 +11,7 @@ #include <linux/device.h> #include <linux/kernel.h> #include <linux/delay.h> +#include <linux/slab.h> #include <linux/gpio.h> #include <linux/lcd.h> diff --git a/drivers/video/backlight/ltv350qv.c b/drivers/video/backlight/ltv350qv.c index 4631ca8fa4a4..8010aaeb5adb 100644 --- a/drivers/video/backlight/ltv350qv.c +++ b/drivers/video/backlight/ltv350qv.c @@ -13,6 +13,7 @@ #include <linux/init.h> #include <linux/lcd.h> #include <linux/module.h> +#include <linux/slab.h> #include <linux/spi/spi.h> #include "ltv350qv.h" diff --git a/drivers/video/backlight/max8925_bl.c b/drivers/video/backlight/max8925_bl.c index c91adaf492cf..b5accc957ad3 100644 --- a/drivers/video/backlight/max8925_bl.c +++ b/drivers/video/backlight/max8925_bl.c @@ -16,6 +16,7 @@ #include <linux/i2c.h> #include <linux/backlight.h> #include <linux/mfd/max8925.h> +#include <linux/slab.h> #define MAX_BRIGHTNESS (0xff) #define MIN_BRIGHTNESS (0) diff --git a/drivers/video/backlight/omap1_bl.c b/drivers/video/backlight/omap1_bl.c index 333d28e6b062..d3bc56296c8d 100644 --- a/drivers/video/backlight/omap1_bl.c +++ b/drivers/video/backlight/omap1_bl.c @@ -24,6 +24,7 @@ #include <linux/platform_device.h> #include <linux/fb.h> #include <linux/backlight.h> +#include <linux/slab.h> #include <mach/hardware.h> #include <plat/board.h> diff --git a/drivers/video/backlight/platform_lcd.c b/drivers/video/backlight/platform_lcd.c index 738694d23889..302330acf628 100644 --- a/drivers/video/backlight/platform_lcd.c +++ b/drivers/video/backlight/platform_lcd.c @@ -16,6 +16,7 @@ #include <linux/fb.h> #include <linux/backlight.h> #include <linux/lcd.h> +#include <linux/slab.h> #include <video/platform_lcd.h> diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c index b89eebc3f77d..550443518891 100644 --- a/drivers/video/backlight/pwm_bl.c +++ b/drivers/video/backlight/pwm_bl.c @@ -19,6 +19,7 @@ #include <linux/err.h> #include <linux/pwm.h> #include <linux/pwm_backlight.h> +#include <linux/slab.h> struct pwm_bl_data { struct pwm_device *pwm; diff --git a/drivers/video/backlight/tdo24m.c b/drivers/video/backlight/tdo24m.c index 4a3d46e08016..1997e12a1057 100644 --- a/drivers/video/backlight/tdo24m.c +++ b/drivers/video/backlight/tdo24m.c @@ -17,6 +17,7 @@ #include <linux/spi/tdo24m.h> #include <linux/fb.h> #include <linux/lcd.h> +#include <linux/slab.h> #define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL) diff --git a/drivers/video/backlight/tosa_bl.c b/drivers/video/backlight/tosa_bl.c index f57bbf170049..e03e60bbfd85 100644 --- a/drivers/video/backlight/tosa_bl.c +++ b/drivers/video/backlight/tosa_bl.c @@ -18,6 +18,7 @@ #include <linux/gpio.h> #include <linux/fb.h> #include <linux/backlight.h> +#include <linux/slab.h> #include <asm/mach/sharpsl_param.h> diff --git a/drivers/video/backlight/tosa_lcd.c b/drivers/video/backlight/tosa_lcd.c index fa32b94a4546..772f6015219a 100644 --- a/drivers/video/backlight/tosa_lcd.c +++ b/drivers/video/backlight/tosa_lcd.c @@ -15,6 +15,7 @@ #include <linux/device.h> #include <linux/spi/spi.h> #include <linux/i2c.h> +#include <linux/slab.h> #include <linux/gpio.h> #include <linux/delay.h> #include <linux/lcd.h> diff --git a/drivers/video/backlight/wm831x_bl.c b/drivers/video/backlight/wm831x_bl.c index a4312709fb1b..08fd87f3aecc 100644 --- a/drivers/video/backlight/wm831x_bl.c +++ b/drivers/video/backlight/wm831x_bl.c @@ -13,6 +13,7 @@ #include <linux/platform_device.h> #include <linux/fb.h> #include <linux/backlight.h> +#include <linux/slab.h> #include <linux/mfd/wm831x/core.h> #include <linux/mfd/wm831x/pdata.h> diff --git a/drivers/video/bfin-lq035q1-fb.c b/drivers/video/bfin-lq035q1-fb.c index 03872365a36d..2baac7cc1425 100644 --- a/drivers/video/bfin-lq035q1-fb.c +++ b/drivers/video/bfin-lq035q1-fb.c @@ -13,6 +13,7 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/fb.h> +#include <linux/slab.h> #include <linux/init.h> #include <linux/types.h> #include <linux/interrupt.h> diff --git a/drivers/video/bfin-t350mcqb-fb.c b/drivers/video/bfin-t350mcqb-fb.c index 31a2dec927bb..c2ec3dcd4e91 100644 --- a/drivers/video/bfin-t350mcqb-fb.c +++ b/drivers/video/bfin-t350mcqb-fb.c @@ -32,6 +32,7 @@ #include <linux/kernel.h> #include <linux/errno.h> #include <linux/string.h> +#include <linux/gfp.h> #include <linux/fb.h> #include <linux/init.h> #include <linux/types.h> @@ -487,9 +488,9 @@ static int __devinit bfin_t350mcqb_probe(struct platform_device *pdev) fbinfo->fbops = &bfin_t350mcqb_fb_ops; fbinfo->flags = FBINFO_FLAG_DEFAULT; - info->fb_buffer = - dma_alloc_coherent(NULL, fbinfo->fix.smem_len, &info->dma_handle, - GFP_KERNEL); + info->fb_buffer = dma_alloc_coherent(NULL, fbinfo->fix.smem_len + + ACTIVE_VIDEO_MEM_OFFSET, + &info->dma_handle, GFP_KERNEL); if (NULL == info->fb_buffer) { printk(KERN_ERR DRIVER_NAME @@ -567,8 +568,8 @@ out7: out6: fb_dealloc_cmap(&fbinfo->cmap); out4: - dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer, - info->dma_handle); + dma_free_coherent(NULL, fbinfo->fix.smem_len + ACTIVE_VIDEO_MEM_OFFSET, + info->fb_buffer, info->dma_handle); out3: framebuffer_release(fbinfo); out2: @@ -591,8 +592,9 @@ static int __devexit bfin_t350mcqb_remove(struct platform_device *pdev) free_irq(info->irq, info); if (info->fb_buffer != NULL) - dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer, - info->dma_handle); + dma_free_coherent(NULL, fbinfo->fix.smem_len + + ACTIVE_VIDEO_MEM_OFFSET, info->fb_buffer, + info->dma_handle); fb_dealloc_cmap(&fbinfo->cmap); diff --git a/drivers/video/bw2.c b/drivers/video/bw2.c index b0b147cb4cb3..43320925c4ce 100644 --- a/drivers/video/bw2.c +++ b/drivers/video/bw2.c @@ -12,7 +12,6 @@ #include <linux/kernel.h> #include <linux/errno.h> #include <linux/string.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/fb.h> diff --git a/drivers/video/carminefb.c b/drivers/video/carminefb.c index 0c02f8ec4bf3..d8345fcc4fe3 100644 --- a/drivers/video/carminefb.c +++ b/drivers/video/carminefb.c @@ -11,6 +11,7 @@ #include <linux/fb.h> #include <linux/interrupt.h> #include <linux/pci.h> +#include <linux/slab.h> #include "carminefb.h" #include "carminefb_regs.h" diff --git a/drivers/video/cfbcopyarea.c b/drivers/video/cfbcopyarea.c index 79e5f40e6486..bb5a96b1645d 100644 --- a/drivers/video/cfbcopyarea.c +++ b/drivers/video/cfbcopyarea.c @@ -26,7 +26,6 @@ #include <linux/kernel.h> #include <linux/string.h> #include <linux/fb.h> -#include <linux/slab.h> #include <asm/types.h> #include <asm/io.h> #include "fb_draw.h" diff --git a/drivers/video/cg14.c b/drivers/video/cg14.c index fe45a3b8d0e0..77a040af20a7 100644 --- a/drivers/video/cg14.c +++ b/drivers/video/cg14.c @@ -11,7 +11,6 @@ #include <linux/kernel.h> #include <linux/errno.h> #include <linux/string.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/fb.h> diff --git a/drivers/video/cg3.c b/drivers/video/cg3.c index b2319fa7286f..30eedf79322c 100644 --- a/drivers/video/cg3.c +++ b/drivers/video/cg3.c @@ -12,7 +12,6 @@ #include <linux/kernel.h> #include <linux/errno.h> #include <linux/string.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/fb.h> diff --git a/drivers/video/cg6.c b/drivers/video/cg6.c index 0d47c6030e3d..6d0fcb43696e 100644 --- a/drivers/video/cg6.c +++ b/drivers/video/cg6.c @@ -12,7 +12,6 @@ #include <linux/kernel.h> #include <linux/errno.h> #include <linux/string.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/fb.h> diff --git a/drivers/video/chipsfb.c b/drivers/video/chipsfb.c index 57b9d276497e..d637e1f53172 100644 --- a/drivers/video/chipsfb.c +++ b/drivers/video/chipsfb.c @@ -19,7 +19,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/cirrusfb.c b/drivers/video/cirrusfb.c index 4c2bf923418c..6df7c54db0a3 100644 --- a/drivers/video/cirrusfb.c +++ b/drivers/video/cirrusfb.c @@ -39,7 +39,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/fb.h> #include <linux/init.h> @@ -300,6 +299,7 @@ static const struct zorro_device_id cirrusfb_zorro_table[] = { }, { 0 } }; +MODULE_DEVICE_TABLE(zorro, cirrusfb_zorro_table); static const struct { zorro_id id2; diff --git a/drivers/video/cobalt_lcdfb.c b/drivers/video/cobalt_lcdfb.c index 5eb61b5adfe8..42fe155aba0e 100644 --- a/drivers/video/cobalt_lcdfb.c +++ b/drivers/video/cobalt_lcdfb.c @@ -123,7 +123,7 @@ static void lcd_clear(struct fb_info *info) lcd_write_control(info, LCD_RESET); } -static struct fb_fix_screeninfo cobalt_lcdfb_fix __initdata = { +static struct fb_fix_screeninfo cobalt_lcdfb_fix __devinitdata = { .id = "cobalt-lcd", .type = FB_TYPE_TEXT, .type_aux = FB_AUX_TEXT_MDA, diff --git a/drivers/video/console/bitblit.c b/drivers/video/console/bitblit.c index 6b7c8fbc5495..af88651b0735 100644 --- a/drivers/video/console/bitblit.c +++ b/drivers/video/console/bitblit.c @@ -11,6 +11,7 @@ */ #include <linux/module.h> +#include <linux/slab.h> #include <linux/string.h> #include <linux/fb.h> #include <linux/vt_kern.h> diff --git a/drivers/video/console/fbcon_ccw.c b/drivers/video/console/fbcon_ccw.c index bdf913ecf001..d135671d9961 100644 --- a/drivers/video/console/fbcon_ccw.c +++ b/drivers/video/console/fbcon_ccw.c @@ -9,6 +9,7 @@ */ #include <linux/module.h> +#include <linux/slab.h> #include <linux/string.h> #include <linux/fb.h> #include <linux/vt_kern.h> diff --git a/drivers/video/console/fbcon_cw.c b/drivers/video/console/fbcon_cw.c index a6819b9d1770..126110f8454f 100644 --- a/drivers/video/console/fbcon_cw.c +++ b/drivers/video/console/fbcon_cw.c @@ -9,6 +9,7 @@ */ #include <linux/module.h> +#include <linux/slab.h> #include <linux/string.h> #include <linux/fb.h> #include <linux/vt_kern.h> diff --git a/drivers/video/console/fbcon_rotate.c b/drivers/video/console/fbcon_rotate.c index 00884e013f0f..db6528f2d3f2 100644 --- a/drivers/video/console/fbcon_rotate.c +++ b/drivers/video/console/fbcon_rotate.c @@ -9,6 +9,7 @@ */ #include <linux/module.h> +#include <linux/slab.h> #include <linux/string.h> #include <linux/fb.h> #include <linux/vt_kern.h> diff --git a/drivers/video/console/fbcon_ud.c b/drivers/video/console/fbcon_ud.c index d9b5d6eb68a7..93a3e7381b50 100644 --- a/drivers/video/console/fbcon_ud.c +++ b/drivers/video/console/fbcon_ud.c @@ -9,6 +9,7 @@ */ #include <linux/module.h> +#include <linux/slab.h> #include <linux/string.h> #include <linux/fb.h> #include <linux/vt_kern.h> diff --git a/drivers/video/console/mdacon.c b/drivers/video/console/mdacon.c index dd3eaaad4441..0b67866cae10 100644 --- a/drivers/video/console/mdacon.c +++ b/drivers/video/console/mdacon.c @@ -33,7 +33,6 @@ #include <linux/console.h> #include <linux/string.h> #include <linux/kd.h> -#include <linux/slab.h> #include <linux/vt_kern.h> #include <linux/vt_buffer.h> #include <linux/selection.h> diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c index 369a5b3ac649..8d244ba0f601 100644 --- a/drivers/video/da8xx-fb.c +++ b/drivers/video/da8xx-fb.c @@ -30,6 +30,7 @@ #include <linux/clk.h> #include <linux/cpufreq.h> #include <linux/console.h> +#include <linux/slab.h> #include <video/da8xx-fb.h> #define DRIVER_NAME "da8xx_lcdc" diff --git a/drivers/video/display/display-sysfs.c b/drivers/video/display/display-sysfs.c index 80abbf323b99..f6a09ab0dac6 100644 --- a/drivers/video/display/display-sysfs.c +++ b/drivers/video/display/display-sysfs.c @@ -27,6 +27,7 @@ #include <linux/idr.h> #include <linux/err.h> #include <linux/kdev_t.h> +#include <linux/slab.h> static ssize_t display_show_name(struct device *dev, struct device_attribute *attr, char *buf) diff --git a/drivers/video/dnfb.c b/drivers/video/dnfb.c index 606da043f4b4..ec56d2544c73 100644 --- a/drivers/video/dnfb.c +++ b/drivers/video/dnfb.c @@ -2,7 +2,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/interrupt.h> #include <linux/platform_device.h> diff --git a/drivers/video/efifb.c b/drivers/video/efifb.c index 581d2dbf675a..ecf405562f5c 100644 --- a/drivers/video/efifb.c +++ b/drivers/video/efifb.c @@ -49,6 +49,7 @@ enum { M_MBP_2, /* MacBook Pro 2nd gen */ M_MBP_SR, /* MacBook Pro (Santa Rosa) */ M_MBP_4, /* MacBook Pro, 4th gen */ + M_MBP_5_1, /* MacBook Pro, 5,1th gen */ M_UNKNOWN /* placeholder */ }; @@ -70,6 +71,7 @@ static struct efifb_dmi_info { [M_MBP_2] = { "mbp2", 0, 0, 0, 0 }, /* placeholder */ [M_MBP_SR] = { "mbp3", 0x80030000, 2048 * 4, 1440, 900 }, [M_MBP_4] = { "mbp4", 0xc0060000, 2048 * 4, 1920, 1200 }, + [M_MBP_5_1] = { "mbp51", 0xc0010000, 2048 * 4, 1440, 900 }, [M_UNKNOWN] = { NULL, 0, 0, 0, 0 } }; @@ -106,6 +108,7 @@ static struct dmi_system_id __initdata dmi_system_table[] = { EFIFB_DMI_SYSTEM_ID("Apple Computer, Inc.", "MacBookPro3,1", M_MBP_SR), EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookPro3,1", M_MBP_SR), EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookPro4,1", M_MBP_4), + EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookPro5,1", M_MBP_5_1), {}, }; diff --git a/drivers/video/ep93xx-fb.c b/drivers/video/ep93xx-fb.c index 27aab4a06198..0c99de0562ca 100644 --- a/drivers/video/ep93xx-fb.c +++ b/drivers/video/ep93xx-fb.c @@ -19,6 +19,7 @@ #include <linux/platform_device.h> #include <linux/dma-mapping.h> +#include <linux/slab.h> #include <linux/clk.h> #include <linux/fb.h> diff --git a/drivers/video/epson1355fb.c b/drivers/video/epson1355fb.c index 6d755bb3a2bc..db9713b49ce9 100644 --- a/drivers/video/epson1355fb.c +++ b/drivers/video/epson1355fb.c @@ -48,7 +48,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/fb.h> #include <linux/init.h> diff --git a/drivers/video/fb_ddc.c b/drivers/video/fb_ddc.c index 0cf96eb8a60f..4a874c8d039c 100644 --- a/drivers/video/fb_ddc.c +++ b/drivers/video/fb_ddc.c @@ -12,6 +12,7 @@ #include <linux/device.h> #include <linux/fb.h> #include <linux/i2c-algo-bit.h> +#include <linux/slab.h> #include "edid.h" diff --git a/drivers/video/fb_defio.c b/drivers/video/fb_defio.c index 44ce908a478b..6113c47e095a 100644 --- a/drivers/video/fb_defio.c +++ b/drivers/video/fb_defio.c @@ -13,7 +13,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/fbcvt.c b/drivers/video/fbcvt.c index 0847c5e72cbd..7293eaccd81b 100644 --- a/drivers/video/fbcvt.c +++ b/drivers/video/fbcvt.c @@ -13,6 +13,7 @@ * */ #include <linux/fb.h> +#include <linux/slab.h> #define FB_CVT_CELLSIZE 8 #define FB_CVT_GTF_C 40 diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c index 9ae9cd32bd06..563a98b88e9b 100644 --- a/drivers/video/fbmon.c +++ b/drivers/video/fbmon.c @@ -29,6 +29,7 @@ #include <linux/fb.h> #include <linux/module.h> #include <linux/pci.h> +#include <linux/slab.h> #include <video/edid.h> #ifdef CONFIG_PPC_OF #include <asm/prom.h> diff --git a/drivers/video/fbsysfs.c b/drivers/video/fbsysfs.c index d4a2c11d9809..81aa3129c17d 100644 --- a/drivers/video/fbsysfs.c +++ b/drivers/video/fbsysfs.c @@ -16,6 +16,7 @@ */ #include <linux/kernel.h> +#include <linux/slab.h> #include <linux/fb.h> #include <linux/console.h> #include <linux/module.h> diff --git a/drivers/video/ffb.c b/drivers/video/ffb.c index 9dbb9646081f..a42fabab69df 100644 --- a/drivers/video/ffb.c +++ b/drivers/video/ffb.c @@ -10,7 +10,6 @@ #include <linux/kernel.h> #include <linux/errno.h> #include <linux/string.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/fb.h> diff --git a/drivers/video/fm2fb.c b/drivers/video/fm2fb.c index 6c91c61cdb63..1b0feb8e7244 100644 --- a/drivers/video/fm2fb.c +++ b/drivers/video/fm2fb.c @@ -219,6 +219,7 @@ static struct zorro_device_id fm2fb_devices[] __devinitdata = { { ZORRO_PROD_HELFRICH_RAINBOW_II }, { 0 } }; +MODULE_DEVICE_TABLE(zorro, fm2fb_devices); static struct zorro_driver fm2fb_driver = { .name = "fm2fb", diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c index 4637bcbe03a4..994358a4f302 100644 --- a/drivers/video/fsl-diu-fb.c +++ b/drivers/video/fsl-diu-fb.c @@ -1536,6 +1536,7 @@ static int __devinit fsl_diu_probe(struct of_device *ofdev, goto error; } + sysfs_attr_init(&machine_data->dev_attr.attr); machine_data->dev_attr.attr.name = "monitor"; machine_data->dev_attr.attr.mode = S_IRUGO|S_IWUSR; machine_data->dev_attr.show = show_monitor; diff --git a/drivers/video/g364fb.c b/drivers/video/g364fb.c index b7655c05da53..d662317d85e3 100644 --- a/drivers/video/g364fb.c +++ b/drivers/video/g364fb.c @@ -20,7 +20,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/gbefb.c b/drivers/video/gbefb.c index 5643a35c1746..7d8c55d7fd28 100644 --- a/drivers/video/gbefb.c +++ b/drivers/video/gbefb.c @@ -13,6 +13,7 @@ #include <linux/platform_device.h> #include <linux/dma-mapping.h> #include <linux/errno.h> +#include <linux/gfp.h> #include <linux/fb.h> #include <linux/init.h> #include <linux/interrupt.h> diff --git a/drivers/video/geode/gx1fb_core.c b/drivers/video/geode/gx1fb_core.c index f20eff8c4a81..c6b554f72c6d 100644 --- a/drivers/video/geode/gx1fb_core.c +++ b/drivers/video/geode/gx1fb_core.c @@ -15,7 +15,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/fb.h> #include <linux/init.h> diff --git a/drivers/video/geode/gxfb_core.c b/drivers/video/geode/gxfb_core.c index b3e639d1e12c..76e7dac6f259 100644 --- a/drivers/video/geode/gxfb_core.c +++ b/drivers/video/geode/gxfb_core.c @@ -25,7 +25,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/fb.h> #include <linux/console.h> diff --git a/drivers/video/geode/lxfb_core.c b/drivers/video/geode/lxfb_core.c index 889cbe39e580..1a18da86d3fa 100644 --- a/drivers/video/geode/lxfb_core.c +++ b/drivers/video/geode/lxfb_core.c @@ -16,7 +16,6 @@ #include <linux/string.h> #include <linux/console.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/suspend.h> #include <linux/delay.h> #include <linux/fb.h> diff --git a/drivers/video/hecubafb.c b/drivers/video/hecubafb.c index f9d77adf035d..c77bcc6ab463 100644 --- a/drivers/video/hecubafb.c +++ b/drivers/video/hecubafb.c @@ -32,7 +32,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/hgafb.c b/drivers/video/hgafb.c index db9b785b56eb..8bbf251f83d9 100644 --- a/drivers/video/hgafb.c +++ b/drivers/video/hgafb.c @@ -36,7 +36,6 @@ #include <linux/spinlock.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/fb.h> #include <linux/init.h> diff --git a/drivers/video/hitfb.c b/drivers/video/hitfb.c index bf78779199c6..393f3f3d3dfe 100644 --- a/drivers/video/hitfb.c +++ b/drivers/video/hitfb.c @@ -16,7 +16,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/platform_device.h> diff --git a/drivers/video/hpfb.c b/drivers/video/hpfb.c index b8ebff1e8493..c8e280f1bb0b 100644 --- a/drivers/video/hpfb.c +++ b/drivers/video/hpfb.c @@ -10,7 +10,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/fb.h> diff --git a/drivers/video/i810/i810-i2c.c b/drivers/video/i810/i810-i2c.c index 9dd55e5324a1..cd2c728a809b 100644 --- a/drivers/video/i810/i810-i2c.c +++ b/drivers/video/i810/i810-i2c.c @@ -11,6 +11,7 @@ #include <linux/module.h> #include <linux/kernel.h> #include <linux/delay.h> +#include <linux/gfp.h> #include <linux/pci.h> #include <linux/fb.h> #include "i810.h" diff --git a/drivers/video/imsttfb.c b/drivers/video/imsttfb.c index 15d50b9906ce..efb2c10656b0 100644 --- a/drivers/video/imsttfb.c +++ b/drivers/video/imsttfb.c @@ -21,7 +21,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/intelfb/intelfbhw.c b/drivers/video/intelfb/intelfbhw.c index 81627466804e..38065cf94ac4 100644 --- a/drivers/video/intelfb/intelfbhw.c +++ b/drivers/video/intelfb/intelfbhw.c @@ -24,7 +24,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/fb.h> #include <linux/ioport.h> diff --git a/drivers/video/leo.c b/drivers/video/leo.c index e145e2d16fe3..1db55f128490 100644 --- a/drivers/video/leo.c +++ b/drivers/video/leo.c @@ -11,7 +11,6 @@ #include <linux/kernel.h> #include <linux/errno.h> #include <linux/string.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/fb.h> diff --git a/drivers/video/matrox/i2c-matroxfb.c b/drivers/video/matrox/i2c-matroxfb.c index f3728ab262f8..403b14445a78 100644 --- a/drivers/video/matrox/i2c-matroxfb.c +++ b/drivers/video/matrox/i2c-matroxfb.c @@ -13,6 +13,7 @@ #include "matroxfb_base.h" #include "matroxfb_maven.h" #include <linux/i2c.h> +#include <linux/slab.h> #include <linux/i2c-algo-bit.h> /* MGA-TVO I2C for G200, G400 */ diff --git a/drivers/video/matrox/matroxfb_base.c b/drivers/video/matrox/matroxfb_base.c index 7064fb4427b6..052dd9f0b760 100644 --- a/drivers/video/matrox/matroxfb_base.c +++ b/drivers/video/matrox/matroxfb_base.c @@ -113,6 +113,7 @@ #include "matroxfb_g450.h" #include <linux/matroxfb.h> #include <linux/interrupt.h> +#include <linux/slab.h> #include <linux/uaccess.h> #ifdef CONFIG_PPC_PMAC diff --git a/drivers/video/matrox/matroxfb_crtc2.c b/drivers/video/matrox/matroxfb_crtc2.c index 78414baa5a54..d7112c39614b 100644 --- a/drivers/video/matrox/matroxfb_crtc2.c +++ b/drivers/video/matrox/matroxfb_crtc2.c @@ -15,6 +15,7 @@ #include "matroxfb_misc.h" #include "matroxfb_DAC1064.h" #include <linux/matroxfb.h> +#include <linux/slab.h> #include <linux/uaccess.h> /* **************************************************** */ diff --git a/drivers/video/matrox/matroxfb_maven.c b/drivers/video/matrox/matroxfb_maven.c index 91af9159111f..1e3e8f19783e 100644 --- a/drivers/video/matrox/matroxfb_maven.c +++ b/drivers/video/matrox/matroxfb_maven.c @@ -17,6 +17,7 @@ #include "matroxfb_DAC1064.h" #include <linux/i2c.h> #include <linux/matroxfb.h> +#include <linux/slab.h> #include <asm/div64.h> #define MGATVO_B 1 diff --git a/drivers/video/maxinefb.c b/drivers/video/maxinefb.c index 7854c7a37dc5..5cf52d3c8e75 100644 --- a/drivers/video/maxinefb.c +++ b/drivers/video/maxinefb.c @@ -28,7 +28,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/fb.h> diff --git a/drivers/video/mb862xx/mb862xxfb_accel.c b/drivers/video/mb862xx/mb862xxfb_accel.c index 049256052b1a..fe92eed6da70 100644 --- a/drivers/video/mb862xx/mb862xxfb_accel.c +++ b/drivers/video/mb862xx/mb862xxfb_accel.c @@ -4,7 +4,7 @@ * Fujitsu Carmine/Coral-P(A)/Lime framebuffer driver acceleration support * * (C) 2007 Alexander Shishkin <virtuoso@slind.org> - * (C) 2009 Valentin Sitdikov <valentin.sitdikov@siemens.com> + * (C) 2009 Valentin Sitdikov <v.sitdikov@gmail.com> * (C) 2009 Siemens AG * * This program is free software; you can redistribute it and/or modify @@ -16,7 +16,9 @@ #include <linux/delay.h> #include <linux/init.h> #include <linux/interrupt.h> +#include <linux/module.h> #include <linux/pci.h> +#include <linux/slab.h> #if defined(CONFIG_OF) #include <linux/of_platform.h> #endif @@ -329,3 +331,5 @@ void mb862xxfb_init_accel(struct fb_info *info, int xres) info->fix.accel = 0xff; /*FIXME: add right define */ } EXPORT_SYMBOL(mb862xxfb_init_accel); + +MODULE_LICENSE("GPL v2"); diff --git a/drivers/video/mbx/mbxdebugfs.c b/drivers/video/mbx/mbxdebugfs.c index 15b8b3c4330e..ecad96524570 100644 --- a/drivers/video/mbx/mbxdebugfs.c +++ b/drivers/video/mbx/mbxdebugfs.c @@ -1,4 +1,5 @@ #include <linux/debugfs.h> +#include <linux/slab.h> #define BIG_BUFFER_SIZE (1024) diff --git a/drivers/video/metronomefb.c b/drivers/video/metronomefb.c index 661bfd20d194..9b3d6e4584cc 100644 --- a/drivers/video/metronomefb.c +++ b/drivers/video/metronomefb.c @@ -23,7 +23,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c index b895aae41630..0a4dbdc1693a 100644 --- a/drivers/video/modedb.c +++ b/drivers/video/modedb.c @@ -12,6 +12,7 @@ */ #include <linux/module.h> +#include <linux/slab.h> #include <linux/fb.h> #include <linux/kernel.h> diff --git a/drivers/video/msm/mddi.c b/drivers/video/msm/mddi.c index 474421fe79a6..c1ff271017a9 100644 --- a/drivers/video/msm/mddi.c +++ b/drivers/video/msm/mddi.c @@ -21,6 +21,7 @@ #include <linux/interrupt.h> #include <linux/platform_device.h> #include <linux/delay.h> +#include <linux/gfp.h> #include <linux/spinlock.h> #include <linux/clk.h> #include <linux/io.h> diff --git a/drivers/video/msm/mddi_client_dummy.c b/drivers/video/msm/mddi_client_dummy.c index ebbae87885b6..d2a091cebe2c 100644 --- a/drivers/video/msm/mddi_client_dummy.c +++ b/drivers/video/msm/mddi_client_dummy.c @@ -15,6 +15,7 @@ * GNU General Public License for more details. */ +#include <linux/slab.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/platform_device.h> diff --git a/drivers/video/msm/mddi_client_nt35399.c b/drivers/video/msm/mddi_client_nt35399.c index c9e9349451cb..f239f4a25e01 100644 --- a/drivers/video/msm/mddi_client_nt35399.c +++ b/drivers/video/msm/mddi_client_nt35399.c @@ -21,6 +21,7 @@ #include <linux/interrupt.h> #include <linux/sched.h> #include <linux/gpio.h> +#include <linux/slab.h> #include <mach/msm_fb.h> static DECLARE_WAIT_QUEUE_HEAD(nt35399_vsync_wait); diff --git a/drivers/video/msm/mddi_client_toshiba.c b/drivers/video/msm/mddi_client_toshiba.c index 71048e78f7f0..f9bc932ac46b 100644 --- a/drivers/video/msm/mddi_client_toshiba.c +++ b/drivers/video/msm/mddi_client_toshiba.c @@ -21,6 +21,7 @@ #include <linux/interrupt.h> #include <linux/gpio.h> #include <linux/sched.h> +#include <linux/slab.h> #include <mach/msm_fb.h> diff --git a/drivers/video/msm/mdp.c b/drivers/video/msm/mdp.c index 6c519e2fa2b7..19c01c6208e8 100644 --- a/drivers/video/msm/mdp.c +++ b/drivers/video/msm/mdp.c @@ -23,6 +23,7 @@ #include <linux/clk.h> #include <linux/file.h> #include <linux/major.h> +#include <linux/slab.h> #include <mach/msm_iomap.h> #include <mach/msm_fb.h> diff --git a/drivers/video/msm/msm_fb.c b/drivers/video/msm/msm_fb.c index 49101dda45ee..debe5933fd2e 100644 --- a/drivers/video/msm/msm_fb.c +++ b/drivers/video/msm/msm_fb.c @@ -17,6 +17,7 @@ #include <linux/platform_device.h> #include <linux/module.h> #include <linux/fb.h> +#include <linux/slab.h> #include <linux/delay.h> #include <linux/freezer.h> diff --git a/drivers/video/nvidia/nv_i2c.c b/drivers/video/nvidia/nv_i2c.c index 6aaddb4f6788..d7994a173245 100644 --- a/drivers/video/nvidia/nv_i2c.c +++ b/drivers/video/nvidia/nv_i2c.c @@ -13,6 +13,7 @@ #include <linux/module.h> #include <linux/kernel.h> #include <linux/delay.h> +#include <linux/gfp.h> #include <linux/pci.h> #include <linux/fb.h> diff --git a/drivers/video/nvidia/nv_of.c b/drivers/video/nvidia/nv_of.c index 73afd7eb9977..3bc13df4b120 100644 --- a/drivers/video/nvidia/nv_of.c +++ b/drivers/video/nvidia/nv_of.c @@ -13,6 +13,7 @@ #include <linux/module.h> #include <linux/kernel.h> #include <linux/delay.h> +#include <linux/gfp.h> #include <linux/pci.h> #include <linux/fb.h> diff --git a/drivers/video/nvidia/nv_setup.c b/drivers/video/nvidia/nv_setup.c index eef2bb298d9f..2f2e162134fa 100644 --- a/drivers/video/nvidia/nv_setup.c +++ b/drivers/video/nvidia/nv_setup.c @@ -50,6 +50,7 @@ #include <video/vga.h> #include <linux/delay.h> #include <linux/pci.h> +#include <linux/slab.h> #include "nv_type.h" #include "nv_local.h" #include "nv_proto.h" diff --git a/drivers/video/offb.c b/drivers/video/offb.c index b043ac83c412..61f8b8f919b0 100644 --- a/drivers/video/offb.c +++ b/drivers/video/offb.c @@ -17,7 +17,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/omap/dispc.c b/drivers/video/omap/dispc.c index e192b058a688..529483467abf 100644 --- a/drivers/video/omap/dispc.c +++ b/drivers/video/omap/dispc.c @@ -25,6 +25,7 @@ #include <linux/clk.h> #include <linux/io.h> #include <linux/platform_device.h> +#include <linux/slab.h> #include <plat/sram.h> #include <plat/board.h> diff --git a/drivers/video/omap/lcd_mipid.c b/drivers/video/omap/lcd_mipid.c index abe1c76a3257..64dcc7439c99 100644 --- a/drivers/video/omap/lcd_mipid.c +++ b/drivers/video/omap/lcd_mipid.c @@ -20,6 +20,7 @@ */ #include <linux/device.h> #include <linux/delay.h> +#include <linux/slab.h> #include <linux/workqueue.h> #include <linux/spi/spi.h> diff --git a/drivers/video/omap/lcdc.c b/drivers/video/omap/lcdc.c index 9557f963662e..43ab7d8b66b2 100644 --- a/drivers/video/omap/lcdc.c +++ b/drivers/video/omap/lcdc.c @@ -28,6 +28,7 @@ #include <linux/dma-mapping.h> #include <linux/vmalloc.h> #include <linux/clk.h> +#include <linux/gfp.h> #include <mach/lcdc.h> #include <plat/dma.h> diff --git a/drivers/video/omap/omapfb_main.c b/drivers/video/omap/omapfb_main.c index 8ce60e1b220a..e264efd0278f 100644 --- a/drivers/video/omap/omapfb_main.c +++ b/drivers/video/omap/omapfb_main.c @@ -26,6 +26,7 @@ */ #include <linux/platform_device.h> #include <linux/mm.h> +#include <linux/slab.h> #include <linux/uaccess.h> #include <plat/dma.h> diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c index 59769e85d41c..4f3988a41082 100644 --- a/drivers/video/omap2/displays/panel-taal.c +++ b/drivers/video/omap2/displays/panel-taal.c @@ -30,6 +30,7 @@ #include <linux/gpio.h> #include <linux/completion.h> #include <linux/workqueue.h> +#include <linux/slab.h> #include <plat/display.h> diff --git a/drivers/video/omap2/displays/panel-tpo-td043mtea1.c b/drivers/video/omap2/displays/panel-tpo-td043mtea1.c index d578feee3550..e866e76b13d0 100644 --- a/drivers/video/omap2/displays/panel-tpo-td043mtea1.c +++ b/drivers/video/omap2/displays/panel-tpo-td043mtea1.c @@ -15,6 +15,7 @@ #include <linux/regulator/consumer.h> #include <linux/gpio.h> #include <linux/err.h> +#include <linux/slab.h> #include <plat/display.h> diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c index 9acef00c47ea..0820986d4a68 100644 --- a/drivers/video/omap2/dss/manager.c +++ b/drivers/video/omap2/dss/manager.c @@ -23,6 +23,7 @@ #define DSS_SUBSYS_NAME "MANAGER" #include <linux/kernel.h> +#include <linux/slab.h> #include <linux/module.h> #include <linux/platform_device.h> #include <linux/spinlock.h> diff --git a/drivers/video/omap2/dss/overlay.c b/drivers/video/omap2/dss/overlay.c index aed3f3194347..82336583adef 100644 --- a/drivers/video/omap2/dss/overlay.c +++ b/drivers/video/omap2/dss/overlay.c @@ -29,6 +29,7 @@ #include <linux/kobject.h> #include <linux/platform_device.h> #include <linux/delay.h> +#include <linux/slab.h> #include <plat/display.h> #include <plat/cpu.h> diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c index 4a76917b7cc8..4b4506da96da 100644 --- a/drivers/video/omap2/omapfb/omapfb-main.c +++ b/drivers/video/omap2/omapfb/omapfb-main.c @@ -22,6 +22,7 @@ #include <linux/module.h> #include <linux/delay.h> +#include <linux/slab.h> #include <linux/fb.h> #include <linux/dma-mapping.h> #include <linux/vmalloc.h> diff --git a/drivers/video/omap2/vram.c b/drivers/video/omap2/vram.c index b266ffae0bde..3b1237ad85ed 100644 --- a/drivers/video/omap2/vram.c +++ b/drivers/video/omap2/vram.c @@ -23,6 +23,7 @@ #include <linux/kernel.h> #include <linux/mm.h> #include <linux/list.h> +#include <linux/slab.h> #include <linux/seq_file.h> #include <linux/bootmem.h> #include <linux/completion.h> diff --git a/drivers/video/output.c b/drivers/video/output.c index 5137aa016b83..0d6f2cda9369 100644 --- a/drivers/video/output.c +++ b/drivers/video/output.c @@ -23,6 +23,7 @@ */ #include <linux/module.h> #include <linux/video_output.h> +#include <linux/slab.h> #include <linux/err.h> #include <linux/ctype.h> diff --git a/drivers/video/p9100.c b/drivers/video/p9100.c index 7fa4ab01b0d3..81440f2b9091 100644 --- a/drivers/video/p9100.c +++ b/drivers/video/p9100.c @@ -10,7 +10,6 @@ #include <linux/kernel.h> #include <linux/errno.h> #include <linux/string.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/fb.h> diff --git a/drivers/video/platinumfb.c b/drivers/video/platinumfb.c index 0a366d86f08e..8a204e7a5b5b 100644 --- a/drivers/video/platinumfb.c +++ b/drivers/video/platinumfb.c @@ -24,7 +24,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/pmag-aa-fb.c b/drivers/video/pmag-aa-fb.c index 6515ec11c16b..838424817de2 100644 --- a/drivers/video/pmag-aa-fb.c +++ b/drivers/video/pmag-aa-fb.c @@ -28,7 +28,6 @@ #include <linux/string.h> #include <linux/timer.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/fb.h> diff --git a/drivers/video/pnx4008/pnxrgbfb.c b/drivers/video/pnx4008/pnxrgbfb.c index 4db6b48a8715..b2252fea2858 100644 --- a/drivers/video/pnx4008/pnxrgbfb.c +++ b/drivers/video/pnx4008/pnxrgbfb.c @@ -18,7 +18,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/pnx4008/sdum.c b/drivers/video/pnx4008/sdum.c index 2aa09bce3944..5ec4f2d439c9 100644 --- a/drivers/video/pnx4008/sdum.c +++ b/drivers/video/pnx4008/sdum.c @@ -20,7 +20,6 @@ #include <linux/string.h> #include <linux/mm.h> #include <linux/tty.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> @@ -29,6 +28,7 @@ #include <linux/init.h> #include <linux/dma-mapping.h> #include <linux/clk.h> +#include <linux/gfp.h> #include <asm/uaccess.h> #include <mach/gpio.h> diff --git a/drivers/video/q40fb.c b/drivers/video/q40fb.c index de40a626dc76..fc32c323a381 100644 --- a/drivers/video/q40fb.c +++ b/drivers/video/q40fb.c @@ -14,7 +14,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/interrupt.h> #include <linux/platform_device.h> diff --git a/drivers/video/s1d13xxxfb.c b/drivers/video/s1d13xxxfb.c index 7b63429f1a7c..a6247fc081ab 100644 --- a/drivers/video/s1d13xxxfb.c +++ b/drivers/video/s1d13xxxfb.c @@ -31,6 +31,7 @@ #include <linux/fb.h> #include <linux/spinlock_types.h> #include <linux/spinlock.h> +#include <linux/slab.h> #include <asm/io.h> diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c index 53cb722c45a0..9682ecc60e12 100644 --- a/drivers/video/s3c-fb.c +++ b/drivers/video/s3c-fb.c @@ -16,8 +16,8 @@ #include <linux/module.h> #include <linux/platform_device.h> #include <linux/dma-mapping.h> +#include <linux/slab.h> #include <linux/init.h> -#include <linux/gfp.h> #include <linux/clk.h> #include <linux/fb.h> #include <linux/io.h> diff --git a/drivers/video/s3fb.c b/drivers/video/s3fb.c index c3fad34309ed..d4471b4c0374 100644 --- a/drivers/video/s3fb.c +++ b/drivers/video/s3fb.c @@ -17,7 +17,6 @@ #include <linux/string.h> #include <linux/mm.h> #include <linux/tty.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/fb.h> #include <linux/svga.h> diff --git a/drivers/video/savage/savagefb-i2c.c b/drivers/video/savage/savagefb-i2c.c index 574b29e9f8f2..ed371c868b3a 100644 --- a/drivers/video/savage/savagefb-i2c.c +++ b/drivers/video/savage/savagefb-i2c.c @@ -13,6 +13,7 @@ #include <linux/module.h> #include <linux/kernel.h> #include <linux/delay.h> +#include <linux/gfp.h> #include <linux/pci.h> #include <linux/fb.h> diff --git a/drivers/video/sh7760fb.c b/drivers/video/sh7760fb.c index 9f6d6e61f0cc..bea38fce2470 100644 --- a/drivers/video/sh7760fb.c +++ b/drivers/video/sh7760fb.c @@ -26,6 +26,7 @@ #include <linux/kernel.h> #include <linux/module.h> #include <linux/platform_device.h> +#include <linux/slab.h> #include <asm/sh7760fb.h> diff --git a/drivers/video/sh_mobile_lcdcfb.c b/drivers/video/sh_mobile_lcdcfb.c index bbd1dbf4026a..e8c769944812 100644 --- a/drivers/video/sh_mobile_lcdcfb.c +++ b/drivers/video/sh_mobile_lcdcfb.c @@ -20,6 +20,7 @@ #include <linux/interrupt.h> #include <linux/vmalloc.h> #include <linux/ioctl.h> +#include <linux/slab.h> #include <video/sh_mobile_lcdc.h> #include <asm/atomic.h> @@ -694,6 +695,7 @@ static int sh_mobile_lcdc_setup_clocks(struct platform_device *pdev, * 1) Enable Runtime PM * 2) Force Runtime PM Resume since hardware is accessed from probe() */ + priv->dev = &pdev->dev; pm_runtime_enable(priv->dev); pm_runtime_resume(priv->dev); return 0; @@ -956,25 +958,24 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev) if (!pdev->dev.platform_data) { dev_err(&pdev->dev, "no platform data defined\n"); - error = -EINVAL; - goto err0; + return -EINVAL; } res = platform_get_resource(pdev, IORESOURCE_MEM, 0); i = platform_get_irq(pdev, 0); if (!res || i < 0) { dev_err(&pdev->dev, "cannot get platform resources\n"); - error = -ENOENT; - goto err0; + return -ENOENT; } priv = kzalloc(sizeof(*priv), GFP_KERNEL); if (!priv) { dev_err(&pdev->dev, "cannot allocate device data\n"); - error = -ENOMEM; - goto err0; + return -ENOMEM; } + platform_set_drvdata(pdev, priv); + error = request_irq(i, sh_mobile_lcdc_irq, IRQF_DISABLED, dev_name(&pdev->dev), priv); if (error) { @@ -983,8 +984,6 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev) } priv->irq = i; - priv->dev = &pdev->dev; - platform_set_drvdata(pdev, priv); pdata = pdev->dev.platform_data; j = 0; @@ -1098,9 +1097,9 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev) info = ch->info; if (info->fbdefio) { - priv->ch->sglist = vmalloc(sizeof(struct scatterlist) * + ch->sglist = vmalloc(sizeof(struct scatterlist) * info->fix.smem_len >> PAGE_SHIFT); - if (!priv->ch->sglist) { + if (!ch->sglist) { dev_err(&pdev->dev, "cannot allocate sglist\n"); goto err1; } @@ -1125,9 +1124,9 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev) } return 0; - err1: +err1: sh_mobile_lcdc_remove(pdev); - err0: + return error; } @@ -1138,7 +1137,7 @@ static int sh_mobile_lcdc_remove(struct platform_device *pdev) int i; for (i = 0; i < ARRAY_SIZE(priv->ch); i++) - if (priv->ch[i].info->dev) + if (priv->ch[i].info && priv->ch[i].info->dev) unregister_framebuffer(priv->ch[i].info); sh_mobile_lcdc_stop(priv); @@ -1161,7 +1160,8 @@ static int sh_mobile_lcdc_remove(struct platform_device *pdev) if (priv->dot_clk) clk_put(priv->dot_clk); - pm_runtime_disable(priv->dev); + if (priv->dev) + pm_runtime_disable(priv->dev); if (priv->base) iounmap(priv->base); diff --git a/drivers/video/sstfb.c b/drivers/video/sstfb.c index 79840f11fecb..dee64c3b1e67 100644 --- a/drivers/video/sstfb.c +++ b/drivers/video/sstfb.c @@ -86,7 +86,6 @@ #include <linux/pci.h> #include <linux/delay.h> #include <linux/init.h> -#include <linux/slab.h> #include <asm/io.h> #include <linux/uaccess.h> #include <video/sstfb.h> diff --git a/drivers/video/sunxvr1000.c b/drivers/video/sunxvr1000.c index a8248c0b9192..23e69e834a18 100644 --- a/drivers/video/sunxvr1000.c +++ b/drivers/video/sunxvr1000.c @@ -5,7 +5,6 @@ #include <linux/module.h> #include <linux/kernel.h> -#include <linux/slab.h> #include <linux/fb.h> #include <linux/init.h> #include <linux/of_device.h> diff --git a/drivers/video/sunxvr2500.c b/drivers/video/sunxvr2500.c index b1dde09e7015..5848436c19da 100644 --- a/drivers/video/sunxvr2500.c +++ b/drivers/video/sunxvr2500.c @@ -5,7 +5,6 @@ #include <linux/module.h> #include <linux/kernel.h> -#include <linux/slab.h> #include <linux/fb.h> #include <linux/pci.h> #include <linux/init.h> diff --git a/drivers/video/sunxvr500.c b/drivers/video/sunxvr500.c index 4cd50497264d..b9c2b948d34d 100644 --- a/drivers/video/sunxvr500.c +++ b/drivers/video/sunxvr500.c @@ -5,7 +5,6 @@ #include <linux/module.h> #include <linux/kernel.h> -#include <linux/slab.h> #include <linux/fb.h> #include <linux/pci.h> #include <linux/init.h> @@ -242,11 +241,27 @@ static int __devinit e3d_set_fbinfo(struct e3d_info *ep) static int __devinit e3d_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent) { + struct device_node *of_node; + const char *device_type; struct fb_info *info; struct e3d_info *ep; unsigned int line_length; int err; + of_node = pci_device_to_OF_node(pdev); + if (!of_node) { + printk(KERN_ERR "e3d: Cannot find OF node of %s\n", + pci_name(pdev)); + return -ENODEV; + } + + device_type = of_get_property(of_node, "device_type", NULL); + if (!device_type) { + printk(KERN_INFO "e3d: Ignoring secondary output device " + "at %s\n", pci_name(pdev)); + return -ENODEV; + } + err = pci_enable_device(pdev); if (err < 0) { printk(KERN_ERR "e3d: Cannot enable PCI device %s\n", @@ -265,13 +280,7 @@ static int __devinit e3d_pci_register(struct pci_dev *pdev, ep->info = info; ep->pdev = pdev; spin_lock_init(&ep->lock); - ep->of_node = pci_device_to_OF_node(pdev); - if (!ep->of_node) { - printk(KERN_ERR "e3d: Cannot find OF node of %s\n", - pci_name(pdev)); - err = -ENODEV; - goto err_release_fb; - } + ep->of_node = of_node; /* Read the PCI base register of the frame buffer, which we * need in order to interpret the RAMDAC_VID_*FB* values in diff --git a/drivers/video/svgalib.c b/drivers/video/svgalib.c index 9c7106701572..fdb45674e2f6 100644 --- a/drivers/video/svgalib.c +++ b/drivers/video/svgalib.c @@ -15,7 +15,6 @@ #include <linux/string.h> #include <linux/fb.h> #include <linux/svga.h> -#include <linux/slab.h> #include <asm/types.h> #include <asm/io.h> diff --git a/drivers/video/syscopyarea.c b/drivers/video/syscopyarea.c index a352d5f46bbf..844a32fd38ed 100644 --- a/drivers/video/syscopyarea.c +++ b/drivers/video/syscopyarea.c @@ -16,7 +16,6 @@ #include <linux/kernel.h> #include <linux/string.h> #include <linux/fb.h> -#include <linux/slab.h> #include <asm/types.h> #include <asm/io.h> #include "fb_draw.h" diff --git a/drivers/video/tcx.c b/drivers/video/tcx.c index 45b883598bf0..c0c2b18fcdcf 100644 --- a/drivers/video/tcx.c +++ b/drivers/video/tcx.c @@ -12,7 +12,6 @@ #include <linux/kernel.h> #include <linux/errno.h> #include <linux/string.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/fb.h> diff --git a/drivers/video/tgafb.c b/drivers/video/tgafb.c index a86046ff60ad..1b3b1c718e80 100644 --- a/drivers/video/tgafb.c +++ b/drivers/video/tgafb.c @@ -25,7 +25,6 @@ #include <linux/module.h> #include <linux/pci.h> #include <linux/selection.h> -#include <linux/slab.h> #include <linux/string.h> #include <linux/tc.h> diff --git a/drivers/video/tridentfb.c b/drivers/video/tridentfb.c index 03a9c35e9f55..c6c77562839d 100644 --- a/drivers/video/tridentfb.c +++ b/drivers/video/tridentfb.c @@ -19,6 +19,7 @@ #include <linux/fb.h> #include <linux/init.h> #include <linux/pci.h> +#include <linux/slab.h> #include <linux/delay.h> #include <video/vga.h> diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c index 54fbb2995a5f..7b8839ebf3c4 100644 --- a/drivers/video/uvesafb.c +++ b/drivers/video/uvesafb.c @@ -18,6 +18,7 @@ #include <linux/fb.h> #include <linux/io.h> #include <linux/mutex.h> +#include <linux/slab.h> #include <video/edid.h> #include <video/uvesafb.h> #ifdef CONFIG_X86 diff --git a/drivers/video/vermilion/vermilion.c b/drivers/video/vermilion/vermilion.c index c18f1884b550..931a567f9aff 100644 --- a/drivers/video/vermilion/vermilion.c +++ b/drivers/video/vermilion/vermilion.c @@ -33,6 +33,7 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/delay.h> +#include <linux/slab.h> #include <linux/mm.h> #include <linux/fb.h> #include <linux/pci.h> diff --git a/drivers/video/vesafb.c b/drivers/video/vesafb.c index ef4128c8e57a..0cadf7aee27e 100644 --- a/drivers/video/vesafb.c +++ b/drivers/video/vesafb.c @@ -13,7 +13,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/fb.h> #include <linux/ioport.h> @@ -226,7 +225,7 @@ static int __init vesafb_setup(char *options) return 0; } -static int __devinit vesafb_probe(struct platform_device *dev) +static int __init vesafb_probe(struct platform_device *dev) { struct fb_info *info; int i, err; @@ -477,7 +476,6 @@ err: } static struct platform_driver vesafb_driver = { - .probe = vesafb_probe, .driver = { .name = "vesafb", }, @@ -493,20 +491,21 @@ static int __init vesafb_init(void) /* ignore error return of fb_get_options */ fb_get_options("vesafb", &option); vesafb_setup(option); - ret = platform_driver_register(&vesafb_driver); - if (!ret) { - vesafb_device = platform_device_alloc("vesafb", 0); + vesafb_device = platform_device_alloc("vesafb", 0); + if (!vesafb_device) + return -ENOMEM; - if (vesafb_device) - ret = platform_device_add(vesafb_device); - else - ret = -ENOMEM; + ret = platform_device_add(vesafb_device); + if (!ret) { + ret = platform_driver_probe(&vesafb_driver, vesafb_probe); + if (ret) + platform_device_del(vesafb_device); + } - if (ret) { - platform_device_put(vesafb_device); - platform_driver_unregister(&vesafb_driver); - } + if (ret) { + platform_device_put(vesafb_device); + vesafb_device = NULL; } return ret; diff --git a/drivers/video/vfb.c b/drivers/video/vfb.c index b8ab995fbda7..9b5532b4de35 100644 --- a/drivers/video/vfb.c +++ b/drivers/video/vfb.c @@ -15,7 +15,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/delay.h> #include <linux/interrupt.h> diff --git a/drivers/video/vga16fb.c b/drivers/video/vga16fb.c index 76d8dae5b1bb..bf638a47a5b3 100644 --- a/drivers/video/vga16fb.c +++ b/drivers/video/vga16fb.c @@ -15,7 +15,6 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/mm.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/fb.h> #include <linux/ioport.h> diff --git a/drivers/video/via/viafbdev.c b/drivers/video/via/viafbdev.c index d3dd2eb95586..2bc40e682f95 100644 --- a/drivers/video/via/viafbdev.c +++ b/drivers/video/via/viafbdev.c @@ -21,6 +21,7 @@ #include <linux/module.h> #include <linux/seq_file.h> +#include <linux/slab.h> #include <linux/stat.h> #include <linux/via-core.h> diff --git a/drivers/video/vt8623fb.c b/drivers/video/vt8623fb.c index 65ccd215d496..d31dc96f838a 100644 --- a/drivers/video/vt8623fb.c +++ b/drivers/video/vt8623fb.c @@ -18,7 +18,6 @@ #include <linux/string.h> #include <linux/mm.h> #include <linux/tty.h> -#include <linux/slab.h> #include <linux/delay.h> #include <linux/fb.h> #include <linux/svga.h> diff --git a/drivers/video/w100fb.c b/drivers/video/w100fb.c index 5d223959778a..31b0e17ed090 100644 --- a/drivers/video/w100fb.c +++ b/drivers/video/w100fb.c @@ -30,6 +30,7 @@ #include <linux/kernel.h> #include <linux/mm.h> #include <linux/platform_device.h> +#include <linux/slab.h> #include <linux/string.h> #include <linux/vmalloc.h> #include <asm/io.h> diff --git a/drivers/video/xen-fbfront.c b/drivers/video/xen-fbfront.c index 603598f4dbb1..fa97d3e7c21a 100644 --- a/drivers/video/xen-fbfront.c +++ b/drivers/video/xen-fbfront.c @@ -23,6 +23,7 @@ #include <linux/errno.h> #include <linux/fb.h> #include <linux/module.h> +#include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/mm.h> diff --git a/drivers/video/xilinxfb.c b/drivers/video/xilinxfb.c index ed7c8d0ddccb..3fcb83f03881 100644 --- a/drivers/video/xilinxfb.c +++ b/drivers/video/xilinxfb.c @@ -34,6 +34,7 @@ #include <linux/of_platform.h> #include <linux/io.h> #include <linux/xilinxfb.h> +#include <linux/slab.h> #include <asm/dcr.h> #define DRIVER_NAME "xilinxfb" |