From: Kenn H. <ke...@us...> - 2005-03-27 23:47:04
|
Update of /cvsroot/linux-vax/kernel-2.5/drivers/video In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12986/drivers/video Modified Files: Kconfig Makefile fbmem.c Log Message: Merge with 2.6.11 Index: fbmem.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/drivers/video/fbmem.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- fbmem.c 21 Mar 2005 23:44:11 -0000 1.10 +++ fbmem.c 27 Mar 2005 23:46:47 -0000 1.11 @@ -35,6 +35,7 @@ #include <linux/err.h> #include <linux/kernel.h> #include <linux/device.h> +#include <linux/efi.h> #if defined(__mc68000__) || defined(CONFIG_APUS) #include <asm/setup.h> @@ -716,8 +717,9 @@ if ((var->activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_NOW) { struct fb_videomode mode; - info->var = *var; + int err = 0; + info->var = *var; if (info->fbops->fb_set_par) info->fbops->fb_set_par(info); @@ -729,15 +731,16 @@ if (info->modelist.prev && info->modelist.next && !list_empty(&info->modelist)) - fb_add_videomode(&mode, &info->modelist); + err = fb_add_videomode(&mode, &info->modelist); - if (info->flags & FBINFO_MISC_MODECHANGEUSER) { + if (!err && info->flags & FBINFO_MISC_USEREVENT) { struct fb_event event; - info->flags &= ~FBINFO_MISC_MODECHANGEUSER; + info->flags &= ~FBINFO_MISC_USEREVENT; event.info = info; notifier_call_chain(&fb_notifier_list, - FB_EVENT_MODE_CHANGE, &event); + FB_EVENT_MODE_CHANGE, + &event); } } } @@ -747,15 +750,23 @@ int fb_blank(struct fb_info *info, int blank) { - int err = -EINVAL; - + int ret = -EINVAL; + if (blank > FB_BLANK_POWERDOWN) blank = FB_BLANK_POWERDOWN; if (info->fbops->fb_blank) - err = info->fbops->fb_blank(blank, info); + ret = info->fbops->fb_blank(blank, info); - return err; + if (!ret) { + struct fb_event event; + + event.info = info; + event.data = ␣ + notifier_call_chain(&fb_notifier_list, FB_EVENT_BLANK, &event); + } + + return ret; } static int @@ -783,9 +794,9 @@ if (copy_from_user(&var, argp, sizeof(var))) return -EFAULT; acquire_console_sem(); - info->flags |= FBINFO_MISC_MODECHANGEUSER; + info->flags |= FBINFO_MISC_USEREVENT; i = fb_set_var(info, &var); - info->flags &= ~FBINFO_MISC_MODECHANGEUSER; + info->flags &= ~FBINFO_MISC_USEREVENT; release_console_sem(); if (i) return i; if (copy_to_user(argp, &var, sizeof(var))) @@ -847,7 +858,9 @@ &event); case FBIOBLANK: acquire_console_sem(); + info->flags |= FBINFO_MISC_USEREVENT; i = fb_blank(info, arg); + info->flags &= ~FBINFO_MISC_USEREVENT; release_console_sem(); return i; default: @@ -857,6 +870,23 @@ } } +#ifdef CONFIG_COMPAT +static long +fb_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + int fbidx = iminor(file->f_dentry->d_inode); + struct fb_info *info = registered_fb[fbidx]; + struct fb_ops *fb = info->fbops; + int ret; + if (fb->fb_compat_ioctl == NULL) + return -ENOIOCTLCMD; + lock_kernel(); + ret = fb->fb_compat_ioctl(file, cmd, arg, info); + unlock_kernel(); + return ret; +} +#endif + static int fb_mmap(struct file *file, struct vm_area_struct * vma) { @@ -939,8 +969,13 @@ vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); #elif defined(__hppa__) pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE; -#elif defined(__ia64__) || defined(__arm__) || defined(__sh__) +#elif defined(__arm__) || defined(__sh__) || defined(__m32r__) vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); +#elif defined(__ia64__) + if (efi_range_is_wc(vma->vm_start, vma->vm_end - vma->vm_start)) + vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); + else + vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); #else #warning What do we have to do here?? #endif @@ -997,6 +1032,9 @@ .read = fb_read, .write = fb_write, .ioctl = fb_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = fb_compat_ioctl, +#endif .mmap = fb_mmap, .open = fb_open, .release = fb_release, @@ -1167,7 +1205,7 @@ } return 0; } -module_init(fbmem_init); +subsys_initcall(fbmem_init); static char *video_options[FB_MAX]; static int ofonly; @@ -1225,19 +1263,32 @@ * */ +extern const char *global_mode_option; + int __init video_setup(char *options) { - int i; + int i, global = 0; if (!options || !*options) - return 0; + global = 1; + + if (!global && !strncmp(options, "ofonly", 6)) { + ofonly = 1; + global = 1; + } + + if (!global && !strstr(options, "fb:")) { + global_mode_option = options; + global = 1; + } + + if (!global) { + for (i = 0; i < FB_MAX; i++) { + if (video_options[i] == NULL) { + video_options[i] = options; + break; + } - for (i = 0; i < FB_MAX; i++) { - if (!strncmp(options, "ofonly", 6)) - ofonly = 1; - if (video_options[i] == NULL) { - video_options[i] = options; - break; } } Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/drivers/video/Makefile,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Makefile 21 Mar 2005 23:44:10 -0000 1.10 +++ Makefile 27 Mar 2005 23:46:47 -0000 1.11 @@ -6,6 +6,7 @@ obj-$(CONFIG_VT) += console/ obj-$(CONFIG_LOGO) += logo/ +obj-$(CONFIG_SYSFS) += backlight/ obj-$(CONFIG_FB) += fbmem.o fbmon.o fbcmap.o fbsysfs.o modedb.o softcursor.o # Only include macmodes.o if we have FB support and are PPC @@ -81,12 +82,8 @@ obj-$(CONFIG_FB_SA1100) += sa1100fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_SUN3) += sun3fb.o obj-$(CONFIG_FB_HIT) += hitfb.o cfbfillrect.o cfbimgblt.o -obj-$(CONFIG_FB_TX3912) += tx3912fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_EPSON1355) += epson1355fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_PVR2) += pvr2fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o -obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o -obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o -obj-$(CONFIG_FB_MAXINE) += maxinefb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_VOODOO1) += sstfb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_ARMCLCD) += amba-clcd.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_68328) += 68328fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o @@ -94,6 +91,13 @@ obj-$(CONFIG_FB_CIRRUS) += cirrusfb.o cfbfillrect.o cfbimgblt.o cfbcopyarea.o obj-$(CONFIG_FB_ASILIANT) += asiliantfb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_PXA) += pxafb.o cfbimgblt.o cfbcopyarea.o cfbfillrect.o +obj-$(CONFIG_FB_W100) += w100fb.o cfbimgblt.o cfbcopyarea.o cfbfillrect.o +obj-$(CONFIG_FB_AU1100) += au1100fb.o fbgen.o +obj-$(CONFIG_FB_PMAG_AA) += pmag-aa-fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_MAXINE) += maxinefb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_TX3912) += tx3912fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_VAXLCG) += vaxlcgfb.o cfbcopyarea.o cfbfillrect.o cfbimgblt.o Index: Kconfig =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/drivers/video/Kconfig,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- Kconfig 21 Mar 2005 23:44:09 -0000 1.13 +++ Kconfig 27 Mar 2005 23:46:47 -0000 1.14 @@ -581,7 +581,7 @@ packed pixel and 32 bpp packed pixel. You can also use font widths different from 8. -config FB_MATROX_G450 +config FB_MATROX_G bool "G100/G200/G400/G450/G550 support" depends on FB_MATROX ---help--- @@ -592,10 +592,10 @@ different from 8. If you need support for G400 secondary head, you must first say Y to - "I2C support" and "I2C bit-banging support" in the character devices - section, and then to "Matrox I2C support" and "G400 second head - support" here in the framebuffer section. G450/G550 secondary head - and digital output are supported without additional modules. + "I2C support" in the character devices section, and then to + "Matrox I2C support" and "G400 second head support" here in the + framebuffer section. G450/G550 secondary head and digital output + are supported without additional modules. The driver starts in monitor mode. You must use the matroxset tool (available at <ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/>) to @@ -612,26 +612,6 @@ G450/G550 hardware can display TV picture only from secondary CRTC, and it performs no scaling, so picture must have 525 or 625 lines. -config FB_MATROX_G100A - bool "G100/G200/G400 support" - depends on FB_MATROX && !FB_MATROX_G450 - ---help--- - Say Y here if you have a Matrox G100, G200 or G400 based - video card. If you select "Advanced lowlevel driver options", you - should check 8 bpp packed pixel, 16 bpp packed pixel, 24 bpp packed - pixel and 32 bpp packed pixel. You can also use font widths - different from 8. - - If you need support for G400 secondary head, you must first say Y to - "I2C support" and "I2C bit-banging support" in the character devices - section, and then to "Matrox I2C support" and "G400 second head - support" here in the framebuffer section. - -config FB_MATROX_G100 - bool - depends on FB_MATROX && (FB_MATROX_G450 || FB_MATROX_G100A) - default y - config FB_MATROX_I2C tristate "Matrox I2C support" depends on FB_MATROX && I2C @@ -651,7 +631,7 @@ config FB_MATROX_MAVEN tristate "G400 second head support" - depends on FB_MATROX_G100 && FB_MATROX_I2C + depends on FB_MATROX_G && FB_MATROX_I2C ---help--- WARNING !!! This support does not work with G450 !!! @@ -843,7 +823,7 @@ depends on FB && PCI help This is the frame buffer device driver for the SiS 300, 315 and - 330 series VGA chipsets. Specs available at http://www.sis.com + 330 series VGA chipsets. Specs available at <http://www.sis.com> To compile this driver as a module, choose M here; the module will be called sisfb. @@ -912,7 +892,7 @@ WARNING: Do not use any application that uses the 3D engine (namely glide) while using this driver. - Please read the file Documentation/fb/README-sstfb.txt for supported + Please read the <file:Documentation/fb/README-sstfb.txt> for supported options and other important info support. config FB_TRIDENT @@ -946,6 +926,42 @@ similar boards, 3DLabs Permedia3 Create!, Appian Jeronimo 2000 and maybe other boards. +config FB_E1356 + tristate "Epson SED1356 framebuffer support" + depends on FB && EXPERIMENTAL && PCI && MIPS + +config PB1000_CRT + bool "Use CRT on Pb1000 (J65)" + depends on MIPS_PB1000=y && FB_E1356 + +config PB1000_NTSC + bool "Use Compsite NTSC on Pb1000 (J63)" + depends on MIPS_PB1000=y && FB_E1356 + +config PB1000_TFT + bool "Use TFT Panel on Pb1000 (J64)" + depends on MIPS_PB1000=y && FB_E1356 + +config PB1500_CRT + bool "Use CRT on Pb1500 " if MIPS_PB1500=y + depends on FB_E1356 + +config PB1500_CRT + prompt "Use CRT on Pb1100 " + depends on FB_E1356 && MIPS_PB1100=y + +config PB1500_TFT + bool "Use TFT Panel on Pb1500 " if MIPS_PB1500=y + depends on FB_E1356 + +config PB1500_TFT + prompt "Use TFT Panel on Pb1100 " + depends on FB_E1356 && MIPS_PB1100=y + +config FB_AU1100 + bool "Au1100 LCD Driver" + depends on FB && EXPERIMENTAL && PCI && MIPS && MIPS_PB1100=y + config FB_SBUS bool "SBUS and UPA framebuffers" depends on FB && (SPARC32 || SPARC64) @@ -1005,29 +1021,35 @@ This is the frame buffer device driver for the Hitachi HD64461 LCD frame buffer card. +config FB_PMAG_AA + bool "PMAG-AA TURBOchannel framebuffer support" + depends on FB && MACH_DECSTATION && TC + help + Support for the PMAG-AA TURBOchannel framebuffer card (1280x1024x1) + used mainly in the MIPS-based DECstation series. + config FB_PMAG_BA bool "PMAG-BA TURBOchannel framebuffer support" - depends on FB && DECSTATION && TC + depends on FB && MACH_DECSTATION && TC help - Say Y here to directly support the on-board PMAG-BA framebuffer in - the 5000/1xx versions of the DECstation. There is a page dedicated - to Linux on DECstations at <http://decstation.unix-ag.org/>. + Support for the PMAG-BA TURBOchannel framebuffer card (1024x864x8) + used mainly in the MIPS-based DECstation series. config FB_PMAGB_B - bool "PMAGB-B TURBOchannel framebuffer spport" - depends on FB && DECSTATION && TC + bool "PMAGB-B TURBOchannel framebuffer support" + depends on FB && MACH_DECSTATION && TC help - Say Y here to directly support the on-board PMAGB-B framebuffer in - the 5000/1xx versions of the DECstation. There is a page dedicated - to Linux on DECstations at <http://decstation.unix-ag.org/>. + Support for the PMAGB-B TURBOchannel framebuffer card used mainly + in the MIPS-based DECstation series. The card is currently only + supported in 1280x1024x8 mode. config FB_MAXINE - bool "Maxine (Personal DECstation) onboard framebuffer spport" - depends on FB && DECSTATION && TC + bool "Maxine (Personal DECstation) onboard framebuffer support" + depends on FB && MACH_DECSTATION && TC help - Say Y here to directly support the on-board framebuffer in the - Maxine (5000/20, /25, /33) version of the DECstation. There is a - page dedicated to Linux on DECstations at <http://decstation.unix-ag.org/>. + Support for the onboard framebuffer (1024x768x8) in the Personal + DECstation series (Personal DECstation 5000/20, /25, /33, /50, + Codename "Maxine"). config FB_TX3912 bool "TMPTX3912/PR31700 frame buffer support" @@ -1038,6 +1060,13 @@ Say Y here to enable kernel support for the on-board framebuffer. +config FB_G364 + bool + depends on MIPS_MAGNUM_4000 || OLIVETTI_M700 + help + The G364 driver is the framebuffer used in MIPS Magnum 4000 and + Olivetti M700-10 systems. + config FB_68328 bool "Motorola 68328 native frame buffer support" depends on (M68328 || M68EZ328 || M68VZ328) @@ -1059,6 +1088,19 @@ If unsure, say N. +config FB_W100 + tristate "W100 frame buffer support" + depends on FB && PXA_SHARPSL + ---help--- + Frame buffer driver for the w100 as found on the Sharp SL-Cxx series. + + This driver is also available as a module ( = code which can be + inserted and removed from the running kernel whenever you want). The + module will be called vfb. If you want to compile it as a module, + say M here and read <file:Documentation/modules.txt>. + + If unsure, say N. + config FB_PXA_PARAMETERS bool "PXA LCD command line parameters" default n @@ -1074,7 +1116,7 @@ single model of flatpanel then you can safely leave this option disabled. - Documentation/fb/pxafb.txt describes the available parameters. + <file:Documentation/fb/pxafb.txt> describes the available parameters. config FB_VIRTUAL tristate "Virtual Frame Buffer support (ONLY FOR TESTING!)" @@ -1101,5 +1143,9 @@ source "drivers/video/logo/Kconfig" endif +if FB && SYSFS + source "drivers/video/backlight/Kconfig" +endif + endmenu |