You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(135) |
Nov
(123) |
Dec
(83) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(244) |
Feb
(72) |
Mar
(221) |
Apr
(91) |
May
(104) |
Jun
(93) |
Jul
(78) |
Aug
(1) |
Sep
(1) |
Oct
(29) |
Nov
(98) |
Dec
(20) |
2003 |
Jan
|
Feb
(21) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(18) |
Sep
(18) |
Oct
(23) |
Nov
(12) |
Dec
(6) |
2004 |
Jan
(2) |
Feb
(32) |
Mar
|
Apr
(12) |
May
(11) |
Jun
(11) |
Jul
|
Aug
(9) |
Sep
|
Oct
(15) |
Nov
|
Dec
|
2005 |
Jan
|
Feb
(2) |
Mar
(11) |
Apr
(6) |
May
(1) |
Jun
(9) |
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2006 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
(2) |
Mar
|
Apr
(25) |
May
(2) |
Jun
|
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(13) |
Oct
|
Nov
(2) |
Dec
(2) |
2011 |
Jan
|
Feb
|
Mar
(10) |
Apr
(10) |
May
(1) |
Jun
(6) |
Jul
|
Aug
(2) |
Sep
(5) |
Oct
|
Nov
|
Dec
|
From: Paul M. <le...@us...> - 2001-11-25 04:44:20
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv2668/drivers/video Modified Files: fbcmap.c Log Message: Add an fb_getcolreg to the fb_ops.. call it from within the get_cmap(). Index: fbcmap.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/fbcmap.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- fbcmap.c 2001/06/07 05:28:57 1.8 +++ fbcmap.c 2001/11/25 04:44:16 1.9 @@ -221,7 +221,7 @@ blue = cmap->blue; transp = cmap->transp; start = cmap->start; - if (start < 0) + if (start < 0 || !info->fbops->fb_getcolreg) return -EINVAL; for (i = 0; i < cmap->len; i++) { if (!&info->cmap) @@ -244,6 +244,8 @@ blue++; if (transp) transp++; + if (info->fbops->fb_getcolreg(start++,red,green,blue,transp,info)) + return 0; } return 0; } |
From: James S. <jsi...@us...> - 2001-11-24 03:06:49
|
Update of /cvsroot/linuxconsole/ruby/utils In directory usw-pr-cvs1:/tmp/cvs-serv31382 Modified Files: remove-obsolete-files Log Message: Remove some more useless files. Index: remove-obsolete-files =================================================================== RCS file: /cvsroot/linuxconsole/ruby/utils/remove-obsolete-files,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- remove-obsolete-files 2001/10/06 16:11:14 1.26 +++ remove-obsolete-files 2001/11/24 03:06:46 1.27 @@ -109,8 +109,7 @@ rm -fv drivers/video/font_sun12x22.c rm -fv drivers/video/font_sun8x16.c rm -fv drivers/video/fonts.c -rm -fv drivers/video/atyfb.c -rm -fv drivers/video/atyfb.h +rm -fv drivers/video/aty128.h rm -fv drivers/video/tdfxfb.c rm -fv include/asm-m68k/adb_mouse.h rm -fv include/asm-m68k/atari_joystick.h |
From: James S. <jsi...@us...> - 2001-11-23 04:10:19
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers In directory usw-pr-cvs1:/tmp/cvs-serv8882/drivers Modified Files: Makefile Log Message: Synced to ARM tree now that it is not against AC tree. Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/Makefile,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- Makefile 2001/11/13 19:38:22 1.23 +++ Makefile 2001/11/23 04:10:15 1.24 @@ -43,11 +43,10 @@ # CONFIG_HAMRADIO can be set without CONFIG_NETDEVICE being set -- ch subdir-$(CONFIG_HAMRADIO) += net/hamradio subdir-$(CONFIG_I2C) += i2c -# subdir-$(CONFIG_L3) += l3 +#subdir-$(CONFIG_L3) += l3 subdir-$(CONFIG_ACPI) += acpi subdir-$(CONFIG_BLUEZ) += bluetooth -# subdir-$(CONFIG_SSI) += ssi +#subdir-$(CONFIG_SSI) += ssi include $(TOPDIR)/Rules.make - |
From: James S. <jsi...@us...> - 2001-11-23 04:10:18
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/acorn/char In directory usw-pr-cvs1:/tmp/cvs-serv8882/drivers/acorn/char Modified Files: Makefile Log Message: Synced to ARM tree now that it is not against AC tree. Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/acorn/char/Makefile,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Makefile 2001/11/02 00:57:43 1.7 +++ Makefile 2001/11/23 04:10:15 1.8 @@ -20,7 +20,7 @@ obj-$(CONFIG_ATOMWIDE_SERIAL) += serial-atomwide.o obj-$(CONFIG_DUALSP_SERIAL) += serial-dualsp.o -obj-$(CONFIG_ARCH_ACORN) += defkeymap-acorn.o i2c.o pcf8583.o +obj-$(CONFIG_ARCH_ACORN) += i2c.o pcf8583.o # Do the i2c and rtc last obj-y += $(obj-$(MACHINE)) |
From: James S. <jsi...@us...> - 2001-11-23 04:10:18
|
Update of /cvsroot/linuxconsole/ruby/linux In directory usw-pr-cvs1:/tmp/cvs-serv8882 Modified Files: Makefile Log Message: Synced to ARM tree now that it is not against AC tree. Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/Makefile,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- Makefile 2001/11/13 19:38:21 1.40 +++ Makefile 2001/11/23 04:10:15 1.41 @@ -132,7 +132,6 @@ DRIVERS-$(CONFIG_ACPI) += drivers/acpi/acpi.o DRIVERS-$(CONFIG_PARPORT) += drivers/parport/driver.o DRIVERS-$(CONFIG_I2C) += drivers/i2c/i2c.o -DRIVERS-$(CONFIG_L3) += drivers/l3/l3.o DRIVERS-$(CONFIG_AGP) += drivers/char/agp/agp.o DRIVERS-y += drivers/char/char.o \ drivers/block/block.o \ @@ -160,6 +159,7 @@ endif DRIVERS-$(CONFIG_SSI) += drivers/ssi/ssi.o +DRIVERS-$(CONFIG_L3) += drivers/l3/l3.o DRIVERS-$(CONFIG_UART) += drivers/serial/uart.o DRIVERS-$(CONFIG_SOUND) += drivers/sound/sounddrivers.o DRIVERS-$(CONFIG_PCI) += drivers/pci/driver.o |
From: James S. <jsi...@us...> - 2001-11-23 04:10:18
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/arm In directory usw-pr-cvs1:/tmp/cvs-serv8882/arch/arm Modified Files: config.in Log Message: Synced to ARM tree now that it is not against AC tree. Index: config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/arm/config.in,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- config.in 2001/11/02 00:57:43 1.19 +++ config.in 2001/11/23 04:10:15 1.20 @@ -39,7 +39,7 @@ CLPS711x/EP721x-based CONFIG_ARCH_CLPS711X \ Co-EBSA285 CONFIG_ARCH_CO285 \ EBSA-110 CONFIG_ARCH_EBSA110 \ - Epxa10db CONFIG_ARCH_CAMELOT \ + Epxa10db CONFIG_ARCH_CAMELOT \ FootBridge CONFIG_ARCH_FOOTBRIDGE \ Integrator CONFIG_ARCH_INTEGRATOR \ LinkUp-L7200 CONFIG_ARCH_L7200 \ @@ -123,11 +123,12 @@ dep_tristate 'SA1100 USB function support' CONFIG_SA1100_USB $CONFIG_ARCH_SA1100 dep_tristate ' Support for SA11x0 USB network link function' CONFIG_SA1100_USB_NETLINK $CONFIG_SA1100_USB -dep_tristate ' Support for SA11x0 USB character device emulation' CONFIG_SA110_USB_CHAR $CONFIG_SA1100_USB +dep_tristate ' Support for SA11x0 USB character device emulation' CONFIG_SA1100_USB_CHAR $CONFIG_SA1100_USB endmenu mainmenu_option next_comment comment 'CLPS711X/EP721X Implementations' +dep_bool ' AUTCPU12' CONFIG_ARCH_AUTCPU12 $CONFIG_ARCH_CLPS711X dep_bool ' CDB89712' CONFIG_ARCH_CDB89712 $CONFIG_ARCH_CLPS711X dep_bool ' CLEP7312' CONFIG_ARCH_CLEP7312 $CONFIG_ARCH_CLPS711X dep_bool ' EDB7211' CONFIG_ARCH_EDB7211 $CONFIG_ARCH_CLPS711X @@ -265,6 +266,21 @@ fi fi +# ARM922T +if [ "$CONFIG_ARCH_CAMELOT" = "y" ]; then + define_bool CONFIG_CPU_ARM922T y +else + define_bool CONFIG_CPU_ARM922T n +fi +if [ "$CONFIG_CPU_ARM922T" = "y" ]; then + bool ' ARM922T CPU idle' CONFIG_CPU_ARM922_CPU_IDLE + bool ' ARM922T I-Cache on' CONFIG_CPU_ARM922_I_CACHE_ON + bool ' ARM922T D-Cache on' CONFIG_CPU_ARM922_D_CACHE_ON + if [ "$CONFIG_CPU_ARM922_D_CACHE_ON" = "y" ] ; then + bool ' Force write through caches on ARM922T' CONFIG_CPU_ARM922_WRITETHROUGH + fi +fi + # ARM926T if [ "$CONFIG_ARCH_INTEGRATOR" = "y" ]; then bool 'Support ARM926T processor' CONFIG_CPU_ARM926T @@ -291,11 +307,15 @@ define_bool CONFIG_CPU_ARM1020 n fi if [ "$CONFIG_CPU_ARM1020" = "y" ]; then - bool ' ARM10 I-Cache on' CONFIG_CPU_ARM10_I_CACHE_ON - bool ' ARM10 D-Cache on' CONFIG_CPU_ARM10_D_CACHE_ON - if [ "$CONFIG_CPU_ARM10_D_CACHE_ON" = "y" ] ; then - bool ' Force write through caches on ARM10' CONFIG_CPU_ARM10_FORCE_WRITE_THROUGH + bool ' ARM1020 I-Cache on' CONFIG_CPU_ARM1020_I_CACHE_ON + bool ' ARM10 D-Cache on' CONFIG_CPU_ARM1020_D_CACHE_ON + if [ "$CONFIG_CPU_ARM1020_D_CACHE_ON" = "y" ] ; then + bool ' Force write through caches on ARM1020' CONFIG_CPU_ARM1020_FORCE_WRITE_THROUGH fi + if [ "$CONFIG_CPU_ARM1020_I_CACHE_ON" = "y" -o \ + "$CONFIG_CPU_ARM1020_D_CACHE_ON" = "y" ]; then + bool ' Round robin I and D cache replacement algorithm' CONFIG_CPU_ARM1020_ROUND_ROBIN + fi fi # SA110 @@ -403,7 +423,7 @@ "$CONFIG_ARCH_CATS" = "y" -o \ "$CONFIG_ARCH_P720T" = "y" -o \ "$CONFIG_ARCH_CDB89712" = "y" -o \ - "$CONFIG_ARCH_CAMELOT" = "y" -o \ + "$CONFIG_ARCH_CAMELOT" = "y" -o \ "$CONFIG_ARCH_ANAKIN" = "y" ]; then string 'Default kernel command string' CONFIG_CMDLINE "" fi @@ -439,6 +459,7 @@ fi endmenu +source drivers/serial/Config.in source drivers/parport/Config.in if [ "$CONFIG_ALIGNMENT_TRAP" = "y" ]; then @@ -513,57 +534,13 @@ # # input before char - char/joystick depends on it. As does USB. # +source drivers/usb/Config.in source drivers/input/Config.in source drivers/char/Config.in -if [ "$CONFIG_ARCH_ACORN" = "y" -a \ - "$CONFIG_BUSMOUSE" = "y" ]; then - if [ "$CONFIG_ARCH_RPC" != "y" ]; then - define_bool CONFIG_KBDMOUSE y - else - define_bool CONFIG_RPCMOUSE y - fi -fi - -source drivers/media/Config.in source fs/Config.in -if [ "$CONFIG_VT" = "y" ]; then - mainmenu_option next_comment - comment 'Console drivers' - # Select the keyboard type for this architecture. - if [ "$CONFIG_FOOTBRIDGE_HOST" = "y" -o \ - "$CONFIG_ARCH_CLPS7500" = "y" -o \ - "$CONFIG_ARCH_SHARK" = "y" ]; then - define_bool CONFIG_PC_KEYB y - fi - if [ "$CONFIG_ARCH_INTEGRATOR" = "y" ]; then - define_bool CONFIG_KMI_KEYB y - define_bool CONFIG_KMI_MOUSE y - fi - if [ "$CONFIG_ARCH_L7200" = "y" ]; then - define_bool CONFIG_L7200_KEYB y - fi - - # Do we use the PC-type keyboard map? - if [ "$CONFIG_FOOTBRIDGE_HOST" = "y" -o \ - "$CONFIG_ARCH_SHARK" = "y" -o \ - "$CONFIG_ARCH_SA1100" = "y" -o \ - "$CONFIG_ARCH_INTEGRATOR" = "y" -o \ - "$CONFIG_ARCH_TBOX" = "y" -o \ - "$CONFIG_ARCH_CLPS7500" = "y" -o \ - "$CONFIG_ARCH_P720T" = "y" -o \ - "$CONFIG_ARCH_ANAKIN" = "y" ]; then - define_bool CONFIG_PC_KEYMAP y - fi - if [ "$CONFIG_ARCH_ACORN" != "y" -a "$CONFIG_ARCH_EBSA110" != "y" ]; then - bool 'VGA text console' CONFIG_VGA_CONSOLE - fi - source drivers/video/Config.in - endmenu -fi - if [ "$CONFIG_ARCH_ACORN" = "y" -o \ "$CONFIG_ARCH_CLPS7500" = "y" -o \ "$CONFIG_ARCH_TBOX" = "y" -o \ @@ -582,7 +559,8 @@ source drivers/misc/Config.in -source drivers/usb/Config.in +source drivers/media/Config.in +source drivers/video/Config.in if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then source net/bluetooth/Config.in @@ -594,15 +572,18 @@ # Always compile kernel with framepointer (until 2.4 real comes out) # Bug reports aren't much use without this. bool 'Compile kernel without frame pointer' CONFIG_NO_FRAME_POINTER -bool 'Verbose kernel error messages' CONFIG_DEBUG_ERRORS bool 'Verbose user fault messages' CONFIG_DEBUG_USER bool 'Include debugging information in kernel binary' CONFIG_DEBUG_INFO -bool 'Debug memory allocations' CONFIG_DEBUG_SLAB -bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ -bool 'Spinlock debugging' CONFIG_DEBUG_SPINLOCK dep_bool 'Disable pgtable cache' CONFIG_NO_PGT_CACHE $CONFIG_CPU_26 + +bool 'Kernel debugging' CONFIG_DEBUG_KERNEL +dep_bool ' Debug memory allocations' CONFIG_DEBUG_SLAB $CONFIG_DEBUG_KERNEL +dep_bool ' Magic SysRq key' CONFIG_MAGIC_SYSRQ $CONFIG_DEBUG_KERNEL +dep_bool ' Spinlock debugging' CONFIG_DEBUG_SPINLOCK $CONFIG_DEBUG_KERNEL +dep_bool ' Verbose BUG() reporting (adds 70K)' CONFIG_DEBUG_BUGVERBOSE $CONFIG_DEBUG_KERNEL +dep_bool ' Verbose kernel error messages' CONFIG_DEBUG_ERRORS $CONFIG_DEBUG_KERNEL # These options are only for real kernel hackers who want to get their hands dirty. -dep_bool 'Kernel low-level debugging functions' CONFIG_DEBUG_LL $CONFIG_EXPERIMENTAL -dep_bool ' Kernel low-level debugging messages via footbridge serial port' CONFIG_DEBUG_DC21285_PORT $CONFIG_DEBUG_LL $CONFIG_FOOTBRIDGE -dep_bool ' kernel low-level debugging messages via UART2' CONFIG_DEBUG_CLPS711X_UART2 $CONFIG_DEBUG_LL $CONFIG_ARCH_CLPS711X +dep_bool ' Kernel low-level debugging functions' CONFIG_DEBUG_LL $CONFIG_DEBUG_KERNEL +dep_bool ' Kernel low-level debugging messages via footbridge serial port' CONFIG_DEBUG_DC21285_PORT $CONFIG_DEBUG_LL $CONFIG_FOOTBRIDGE +dep_bool ' kernel low-level debugging messages via UART2' CONFIG_DEBUG_CLPS711X_UART2 $CONFIG_DEBUG_LL $CONFIG_ARCH_CLPS711X endmenu |
From: James S. <jsi...@us...> - 2001-11-23 04:10:18
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv8882/drivers/char Modified Files: Config.in Makefile tty_io.c Log Message: Synced to ARM tree now that it is not against AC tree. Index: Config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/Config.in,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- Config.in 2001/11/13 19:38:22 1.30 +++ Config.in 2001/11/23 04:10:15 1.31 @@ -133,6 +133,11 @@ tristate ' Berkshire Products PC Watchdog' CONFIG_PCWATCHDOG tristate ' Acquire SBC Watchdog Timer' CONFIG_ACQUIRE_WDT tristate ' Advantech SBC Watchdog Timer' CONFIG_ADVANTECH_WDT + if [ "$CONFIG_ARM" = "y" ]; then + dep_tristate ' DC21285 watchdog' CONFIG_21285_WATCHDOG $CONFIG_FOOTBRIDGE + dep_tristate ' NetWinder WB83C977 watchdog' CONFIG_977_WATCHDOG $CONFIG_ARCH_NETWINDER + dep_tristate ' SA1100 watchdog' CONFIG_SA1100_WATCHDOG $CONFIG_ARCH_SA1100 + fi tristate ' IB700 SBC Watchdog Timer' CONFIG_IB700_WDT tristate ' SBC-60XX Watchdog Timer' CONFIG_60XX_WDT tristate ' W83877F (EMACS) Watchdog Timer' CONFIG_W83877F_WDT Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/Makefile,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- Makefile 2001/11/13 19:38:22 1.31 +++ Makefile 2001/11/23 04:10:15 1.32 @@ -133,6 +133,12 @@ obj-y += mwave/mwave.o endif +ifeq ($(CONFIG_ARCH_ACORN),y) +mod-subdirs += ../acorn/char +subdir-y += ../acorn/char +obj-y += ../acorn/char/acorn-char.o +endif + include $(TOPDIR)/Rules.make fastdep: Index: tty_io.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/tty_io.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- tty_io.c 2001/11/13 19:38:22 1.37 +++ tty_io.c 2001/11/23 04:10:15 1.38 @@ -156,11 +156,7 @@ extern void tty3215_init(void); extern void tub3270_con_init(void); extern void tub3270_init(void); -extern void rs285_console_init(void); -extern void sa1100_rs_console_init(void); -extern void ambauart_console_init(void); -extern void clps711xuart_console_init(void); -extern void anakin_console_init(void); +extern void uart_console_init(void); extern void sgi_serial_console_init(void); extern void sci_console_init(void); extern void tx3912_console_init(void); @@ -2230,26 +2226,14 @@ #ifdef CONFIG_STDIO_CONSOLE stdio_console_init(); #endif -#ifdef CONFIG_SERIAL_21285_CONSOLE - rs285_console_init(); -#endif -#ifdef CONFIG_SERIAL_SA1100_CONSOLE - sa1100_rs_console_init(); +#ifdef CONFIG_SERIAL_CORE_CONSOLE + uart_console_init(); #endif #ifdef CONFIG_ARC_CONSOLE arc_console_init(); #endif -#ifdef CONFIG_SERIAL_AMBA_CONSOLE - ambauart_console_init(); -#endif #ifdef CONFIG_SERIAL_TX3912_CONSOLE tx3912_console_init(); -#endif -#ifdef CONFIG_SERIAL_CLPS711X_CONSOLE - clps711xuart_console_init(); -#endif -#ifdef CONFIG_SERIAL_ANAKIN_CONSOLE - anakin_console_init(); #endif } |
From: James S. <jsi...@us...> - 2001-11-23 04:10:18
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv8882/drivers/video Modified Files: Config.in Makefile Log Message: Synced to ARM tree now that it is not against AC tree. Index: Config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/Config.in,v retrieving revision 1.54 retrieving revision 1.55 diff -u -d -r1.54 -r1.55 --- Config.in 2001/11/22 12:56:48 1.54 +++ Config.in 2001/11/23 04:10:15 1.55 @@ -33,19 +33,23 @@ fi fi fi - dep_tristate ' Cyber2000 support' CONFIG_FB_CYBER2000 $CONFIG_PCI if [ "$CONFIG_ARM" = "y" ]; then - dep_bool ' Acorn VIDC support' CONFIG_FB_ACORN $CONFIG_ARCH_ACORN - dep_bool ' Anakin LCD support' CONFIG_FB_ANAKIN $CONFIG_ARCH_ANAKIN - dep_bool ' SA-1100 LCD support' CONFIG_FB_SA1100 $CONFIG_ARCH_SA1100 - dep_bool ' Anakin LCD support' CONFIG_FB_ANAKIN $CONFIG_ARCH_ANAKIN - if [ "$CONFIG_FB_SA1100" = "y" -a "$CONFIG_SA1100_CERF" = "y" ]; then - choice 'CerfBoard LCD Display Size' \ - "3.8 CONFIG_CERF_LCD_38_A \ - 5.7 CONFIG_CERF_LCD_57_A \ - 7.2 CONFIG_CERF_LCD_72_A" 5.7 - fi - fi + dep_bool ' Acorn VIDC support' CONFIG_FB_ACORN $CONFIG_ARCH_ACORN + dep_bool ' Anakin LCD support' CONFIG_FB_ANAKIN $CONFIG_ARCH_ANAKIN + dep_bool ' CLPS711X LCD support' CONFIG_FB_CLPS711X $CONFIG_ARCH_CLPS711X + dep_bool ' SA-1100 LCD support' CONFIG_FB_SA1100 $CONFIG_ARCH_SA1100 + if [ "$CONFIG_FB_SA1100" = "y" -a "$CONFIG_SA1100_CERF" = "y" ]; then + choice 'CerfBoard LCD Display Size' \ + "3.8_Color CONFIG_CERF_LCD_38_A \ + 3.8_Mono CONFIG_CERF_LCD_38_B \ + 5.7 CONFIG_CERF_LCD_57_A \ + 7.2 CONFIG_CERF_LCD_72_A" 5.7 + fi + if [ "$CONFIG_FB_SA1100" = "y" -a "$CONFIG_SA1100_CERF_CPLD" = "y" ]; then + bool 'Cerfboard Backlight (CerfPDA)' CONFIG_SA1100_CERF_LCD_BACKLIGHT + fi + fi + dep_tristate ' CyberPro 2000/2010/5000 support' CONFIG_FB_CYBER2000 $CONFIG_PCI if [ "$CONFIG_APOLLO" = "y" ]; then define_bool CONFIG_FB_APOLLO y fi Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/Makefile,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- Makefile 2001/11/22 13:09:04 1.43 +++ Makefile 2001/11/23 04:10:15 1.44 @@ -1,5 +1,5 @@ # Makefile for the Linux video drivers. -# 5 Aug 1999, James Simmons, <mailto:jsi...@ed...> +# 5 Aug 1999, James Simmons, <mailto:jsi...@tr...> # Rewritten to use lists instead of if-statements. O_TARGET := video.o |
From: James S. <jsi...@us...> - 2001-11-23 04:10:17
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/arm/kernel In directory usw-pr-cvs1:/tmp/cvs-serv8882/arch/arm/kernel Modified Files: setup.c Log Message: Synced to ARM tree now that it is not against AC tree. Index: setup.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/arm/kernel/setup.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- setup.c 2001/11/02 00:57:43 1.5 +++ setup.c 2001/11/23 04:10:15 1.6 @@ -1,7 +1,7 @@ /* * linux/arch/arm/kernel/setup.c * - * Copyright (C) 1995-2000 Russell King + * Copyright (C) 1995-2001 Russell King * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -15,6 +15,7 @@ #include <linux/utsname.h> #include <linux/blk.h> #include <linux/bootmem.h> +#include <linux/seq_file.h> #include <linux/init.h> #include <asm/elf.h> @@ -521,59 +522,54 @@ "edsp", NULL }; - -/* - * get_cpuinfo - Get information on one CPU for use by the procfs. - * - * Prints info on the next CPU into buffer. Beware, doesn't check for - * buffer overflow. Current implementation of procfs assumes that the - * resulting data is <= 1K. - * - * Args: - * buffer -- you guessed it, the data buffer - * cpu_np -- Input: next cpu to get (start at 0). Output: Updated. - * - * Returns number of bytes written to buffer. - */ -int get_cpuinfo(char *buffer, unsigned *cpu_np) +static int c_show(struct seq_file *m, void *v) { - char *p = buffer; - unsigned n; int i; - - /* No SMP at the moment, so just toggle 0/1 */ - n = *cpu_np; - *cpu_np = 1; - if (n != 0) { - return (0); - } - p += sprintf(p, "Processor\t: %s %s rev %d (%s)\n", - proc_info.manufacturer, proc_info.cpu_name, - (int)processor_id & 15, elf_platform); + seq_printf(m, "Processor\t: %s %s rev %d (%s)\n", + proc_info.manufacturer, proc_info.cpu_name, + (int)processor_id & 15, elf_platform); - p += sprintf(p, "BogoMIPS\t: %lu.%02lu\n", - loops_per_jiffy / (500000/HZ), - (loops_per_jiffy / (5000/HZ)) % 100); + seq_printf(m, "BogoMIPS\t: %lu.%02lu\n", + loops_per_jiffy / (500000/HZ), + (loops_per_jiffy / (5000/HZ)) % 100); /* dump out the processor features */ - p += sprintf(p, "Features\t: "); + seq_puts(m, "Features\t: "); for (i = 0; hwcap_str[i]; i++) if (elf_hwcap & (1 << i)) - p += sprintf(p, "%s ", hwcap_str[i]); + seq_printf(m, "%s ", hwcap_str[i]); - p += sprintf(p, "\n\n"); + seq_puts(m, "\n\n"); - p += sprintf(p, "Hardware\t: %s\n", machine_name); + seq_printf(m, "Hardware\t: %s\n", machine_name); + seq_printf(m, "Revision\t: %04x\n", system_rev); + seq_printf(m, "Serial\t\t: %08x%08x\n", + system_serial_high, system_serial_low); - p += sprintf(p, "Revision\t: %04x\n", - system_rev); + return 0; +} - p += sprintf(p, "Serial\t\t: %08x%08x\n", - system_serial_high, - system_serial_low); +static void *c_start(struct seq_file *m, loff_t *pos) +{ + return *pos < 1 ? (void *)1 : NULL; +} - return p - buffer; +static void *c_next(struct seq_file *m, void *v, loff_t *pos) +{ + ++*pos; + return NULL; } + +static void c_stop(struct seq_file *m, void *v) +{ +} + +struct seq_operations cpuinfo_op = { + start: c_start, + next: c_next, + stop: c_stop, + show: c_show +}; |
From: James S. <jsi...@us...> - 2001-11-23 01:46:11
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv21201 Modified Files: serial_core.h Log Message: Synced to Russell Kings latest work. Okay tonight I will work on it. Index: serial_core.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/serial_core.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- serial_core.h 2001/11/06 21:56:05 1.8 +++ serial_core.h 2001/11/23 01:46:07 1.9 @@ -66,7 +66,7 @@ struct uart_ops { u_int (*tx_empty)(struct uart_port *); void (*set_mctrl)(struct uart_port *, u_int mctrl); - int (*get_mctrl)(struct uart_port *); + u_int (*get_mctrl)(struct uart_port *); void (*stop_tx)(struct uart_port *, u_int from_tty); void (*start_tx)(struct uart_port *, u_int nonempty, u_int from_tty); void (*stop_rx)(struct uart_port *); |
From: James S. <jsi...@us...> - 2001-11-23 01:44:35
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/serial In directory usw-pr-cvs1:/tmp/cvs-serv20909 Modified Files: ChangeLog serial_8250.c serial_8250_pci.c serial_amba.c serial_anakin.c serial_clps711x.c serial_core.c serial_sa1100.c serial_uart00.c Log Message: Synced to Russell Kings latest work. Okay tonight I will work on it. Index: ChangeLog =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 2001/11/13 20:30:44 1.1 +++ ChangeLog 2001/11/23 01:44:32 1.2 @@ -1,4 +1,4 @@ -2001-11-13 James Simmons <jsi...@tr...> +2001-11-22 James Simmons <jsi...@tr...> * Final port of Russell King's code. Today we are going to * start working on a better api for 2.5. Index: serial_8250.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_8250.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- serial_8250.c 2001/11/01 21:38:35 1.9 +++ serial_8250.c 2001/11/23 01:44:33 1.10 @@ -320,11 +320,12 @@ } /* - * We check for a XR16C850 by setting DLL and DLM to 0, and - * then reading back DLL and DLM. If DLM reads back 0x10, - * then the UART is a XR16C850 and the DLL contains the chip - * revision. If DLM reads back 0x14, then the UART is a - * XR16C854. + * We check for a XR16C850 by setting DLL and DLM to 0, and then + * reading back DLL and DLM. The chip type depends on the DLM + * value read back: + * 0x10 - XR16C850 and the DLL contains the chip revision. + * 0x12 - XR16C2850. + * 0x14 - XR16C854. */ /* Save the DLL and DLM */ @@ -339,7 +340,7 @@ scratch = serial_inp(port, UART_DLM); serial_outp(port, UART_LCR, 0); - if (scratch == 0x10 || scratch == 0x14) { + if (scratch == 0x10 || scratch == 0x12 || scratch == 0x14) { if (scratch == 0x10) port->port_rev = scratch2; port->type = PORT_16850; @@ -1021,11 +1022,11 @@ return serial_in(port, UART_LSR) & UART_LSR_TEMT ? TIOCSER_TEMT : 0; } -static int serial8250_get_mctrl(struct uart_port *port) +static u_int serial8250_get_mctrl(struct uart_port *port) { unsigned long flags; unsigned char status; - int ret; + unsigned int ret; save_flags(flags); cli(); status = serial_in(port, UART_MSR); @@ -1420,10 +1421,16 @@ * For a XR16C850, we need to set the trigger levels */ if (port->type == PORT_16850) { - serial_outp(port, UART_FCTR, UART_FCTR_TRGD | + unsigned char fctr; + + fctr = serial_inp(port, UART_FCTR) & + ~(UART_FCTR_RX | UART_FCTR_TX); + serial_outp(port, UART_FCTR, fctr | + UART_FCTR_TRGD | UART_FCTR_RX); serial_outp(port, UART_TRG, UART_TRG_96); - serial_outp(port, UART_FCTR, UART_FCTR_TRGD | + serial_outp(port, UART_FCTR, fctr | + UART_FCTR_TRGD | UART_FCTR_TX); serial_outp(port, UART_TRG, UART_TRG_96); } Index: serial_8250_pci.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_8250_pci.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- serial_8250_pci.c 2001/11/01 21:38:35 1.9 +++ serial_8250_pci.c 2001/11/23 01:44:33 1.10 @@ -1045,11 +1045,13 @@ pbn_dci_pccom8 }, #endif - { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, - PCI_CLASS_COMMUNICATION_SERIAL << 8, 0xffff00, }, - { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, - PCI_CLASS_COMMUNICATION_MODEM << 8, 0xffff00, }, - { 0, } + { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, + PCI_CLASS_COMMUNICATION_SERIAL << 8, 0xffff00, }, + { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, + PCI_CLASS_COMMUNICATION_MODEM << 8, 0xffff00, }, + { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, + PCI_CLASS_COMMUNICATION_MULTISERIAL << 8, 0xffff00, }, + { 0, } }; static struct pci_driver serial_pci_driver = { Index: serial_amba.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_amba.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- serial_amba.c 2001/11/01 21:38:35 1.8 +++ serial_amba.c 2001/11/23 01:44:33 1.9 @@ -344,7 +344,7 @@ return UART_GET_FR(port) & AMBA_UARTFR_BUSY ? 0 : TIOCSER_TEMT; } -static int ambauart_get_mctrl(struct uart_port *port) +static u_int ambauart_get_mctrl(struct uart_port *port) { unsigned int result = 0; unsigned int status; Index: serial_anakin.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_anakin.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- serial_anakin.c 2001/11/01 21:38:58 1.1 +++ serial_anakin.c 2001/11/23 01:44:33 1.2 @@ -225,7 +225,7 @@ return anakin_in(port, 0x10) & TXEMPTY ? TIOCSER_TEMT : 0; } -static int +static u_int anakin_get_mctrl(struct uart_port *port) { unsigned int status = 0; Index: serial_clps711x.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_clps711x.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- serial_clps711x.c 2001/11/01 21:38:35 1.8 +++ serial_clps711x.c 2001/11/23 01:44:33 1.9 @@ -255,7 +255,7 @@ return status & SYSFLG_UBUSY ? 0 : TIOCSER_TEMT; } -static int clps711xuart_get_mctrl(struct uart_port *port) +static u_int clps711xuart_get_mctrl(struct uart_port *port) { unsigned int port_addr; unsigned int result = 0; Index: serial_core.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_core.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- serial_core.c 2001/11/06 21:56:04 1.15 +++ serial_core.c 2001/11/23 01:44:33 1.16 @@ -1393,6 +1393,7 @@ /* * In 2.4.5, calls to uart_open are serialised by the BKL in * linux/fs/devices.c:chrdev_open() + * Note that if this fails, then uart_close() _will_ be called. */ static int uart_open(struct tty_struct *tty, struct file *filp) { @@ -1416,12 +1417,17 @@ if (!info) goto out; + /* + * Set the tty driver_data. If we fail from this point on, + * the generic tty layer will cause uart_close(), which will + * decrement the module use count. + */ tty->driver_data = info; info->tty = tty; info->tty->low_latency = (info->flags & ASYNC_LOW_LATENCY) ? 1 : 0; if (uart_alloc_tmpbuf()) - goto out; + goto fail; /* * If the port is in the middle of closing, bail out now. @@ -1432,7 +1438,7 @@ interruptible_sleep_on(&info->close_wait); retval = (info->flags & ASYNC_HUP_NOTIFY) ? -EAGAIN : -ERESTARTSYS; - goto out; + goto fail; } /* @@ -1451,11 +1457,11 @@ */ retval = uart_startup(info); if (retval) - goto out; + goto fail; retval = uart_block_til_ready(tty, filp, info); if (retval) - goto out; + goto fail; if (info->state->count == 1) { int changed_termios = 0; Index: serial_sa1100.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_sa1100.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- serial_sa1100.c 2001/11/01 21:38:35 1.13 +++ serial_sa1100.c 2001/11/23 01:44:33 1.14 @@ -311,7 +311,7 @@ return UART_GET_UTSR1(port) & UTSR1_TBY ? 0 : TIOCSER_TEMT; } -static int sa1100_get_mctrl(struct uart_port *port) +static u_int sa1100_get_mctrl(struct uart_port *port) { return TIOCM_CTS | TIOCM_DSR | TIOCM_CAR; } Index: serial_uart00.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_uart00.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- serial_uart00.c 2001/11/01 21:38:58 1.1 +++ serial_uart00.c 2001/11/23 01:44:33 1.2 @@ -363,7 +363,7 @@ return UART_GET_TSR(port) & UART_TSR_TX_LEVEL_MSK? 0 : TIOCSER_TEMT; } -static int uart00_get_mctrl(struct uart_port *port) +static u_int uart00_get_mctrl(struct uart_port *port) { unsigned int result = 0; unsigned int status; |
From: James S. <jsi...@us...> - 2001-11-23 01:30:33
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv18836 Modified Files: aty128fb.c Log Message: Removed more useless things. Index: aty128fb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty128fb.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- aty128fb.c 2001/11/22 18:00:42 1.19 +++ aty128fb.c 2001/11/23 01:30:30 1.20 @@ -203,18 +203,12 @@ static const struct aty128_meminfo ddr_sgram = { 4, 4, 3, 3, 2, 3, 1, 16, 31, 16, "64-bit DDR SGRAM" }; -static char fontname[40] __initdata = { 0 }; - static int noaccel __initdata = 0; static char *mode __initdata = NULL; static int nomtrr __initdata = 0; static const char *mode_option __initdata = NULL; -#ifdef CONFIG_MTRR -static int mtrr = 1; -#endif - /* PLL constants */ struct aty128_constants { u32 dotclock; @@ -249,9 +243,6 @@ /* register values for a specific mode */ struct aty128fb_par { -#ifdef CONFIG_MTRR - struct { int vram; int vram_valid; } mtrr; -#endif struct aty128_constants constants; /* PLL and others */ const struct aty128_meminfo *mem; /* onboard mem info */ struct aty128_ddafifo fifo_reg; @@ -1108,11 +1099,6 @@ } else if (!strncmp(this_opt, "noaccel", 7)) { noaccel = 1; } -#ifdef CONFIG_MTRR - else if(!strncmp(this_opt, "nomtrr", 6)) { - mtrr = 0; - } -#endif else mode_option = this_opt; } @@ -1340,17 +1326,6 @@ if (!aty128_init(info, pdev, "PCI")) goto err_out; - -#ifdef CONFIG_MTRR - if (mtrr) { - default_par.mtrr.vram = mtrr_add(info->fix.smem_start, - info->fix.smem_len, MTRR_TYPE_WRCOMB, 1); - default_par.mtrr.vram_valid = 1; - /* let there be speed */ - printk(KERN_INFO "aty128fb: Rage128 MTRR set to ON\n"); - } -#endif /* CONFIG_MTRR */ - return 0; err_out: @@ -1737,14 +1712,8 @@ MODULE_DESCRIPTION("FBDev driver for ATI Rage128 / Pro cards"); MODULE_PARM(noaccel, "i"); MODULE_PARM_DESC(noaccel, "Disable hardware acceleration (0 or 1=disabled) (default=0)"); -MODULE_PARM(font, "s"); -MODULE_PARM_DESC(font, "Specify one of the compiled-in fonts (default=none)"); MODULE_PARM(mode, "s"); MODULE_PARM_DESC(mode, "Specify resolution as \"<xres>x<yres>[-<bpp>][@<refresh>]\" "); -#ifdef CONFIG_MTRR -MODULE_PARM(nomtrr, "i"); -MODULE_PARM_DESC(nomtrr, "Disable MTRR support (0 or 1=disabled) (default=0)"); -#endif int __init init_module(void) @@ -1753,20 +1722,10 @@ noaccel = 1; printk(KERN_INFO "aty128fb: Parameter NOACCEL set\n"); } - if (font) { - strncpy(fontname, font, sizeof(fontname)-1); - printk(KERN_INFO "aty128fb: Parameter FONT set to %s\n", font); - } if (mode) { mode_option = mode; printk(KERN_INFO "aty128fb: Parameter MODE set to %s\n", mode); } -#ifdef CONFIG_MTRR - if (nomtrr) { - mtrr = 0; - printk(KERN_INFO "aty128fb: Parameter NOMTRR set\n"); - } -#endif aty128fb_init(); return 0; } @@ -1784,12 +1743,8 @@ par = info->par; unregister_framebuffer(&info); -#ifdef CONFIG_MTRR - if (par->mtrr.vram_valid) - mtrr_del(par->mtrr.vram, info->fix.smem_start, - info->fix.smem_len); -#endif /* CONFIG_MTRR */ - iounmap(par->regbase); + + iounmap(par->regbase); iounmap(info->screen_base); release_mem_region(pci_resource_start(par->pdev, 0), |
From: James S. <jsi...@us...> - 2001-11-23 01:29:46
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video/aty In directory usw-pr-cvs1:/tmp/cvs-serv18687 Modified Files: mach64_cursor.c Log Message: malloc.h musyt die. Index: mach64_cursor.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty/mach64_cursor.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- mach64_cursor.c 2001/09/09 16:36:34 1.3 +++ mach64_cursor.c 2001/11/23 01:29:43 1.4 @@ -3,7 +3,7 @@ * ATI Mach64 CT/VT/GT/LT Cursor Support */ -#include <linux/malloc.h> +#include <linux/slab.h> #include <linux/console.h> #include <linux/fb.h> #include <linux/init.h> |
From: James S. <jsi...@us...> - 2001-11-23 01:28:21
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video/aty In directory usw-pr-cvs1:/tmp/cvs-serv18029 Modified Files: atyfb_base.c Log Message: Removed missed strsep change. I need to port this over but my Mach 64 card is nto supported :-( Index: atyfb_base.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty/atyfb_base.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- atyfb_base.c 2001/11/22 12:56:49 1.9 +++ atyfb_base.c 2001/11/23 01:28:18 1.10 @@ -2494,7 +2494,7 @@ if (!options || !*options) return 0; - while (this_opt = strsep(&options, ",")) { + while ((this_opt = strsep(&options, ",")) != NULL) { if (!strncmp(this_opt, "font:", 5)) { char *p; int i; |
From: James S. <jsi...@us...> - 2001-11-23 01:26:16
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv17457 Modified Files: offb.c Log Message: Removed check_var. We no longer need it for frmaebuffers that can't change modes. Index: offb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/offb.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- offb.c 2001/11/22 12:56:49 1.14 +++ offb.c 2001/11/23 01:26:13 1.15 @@ -58,7 +58,6 @@ */ int offb_init(void); -static int offb_check_var(struct fb_var_screeninfo *var, struct fb_info *info); static int offb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, u_int transp, struct fb_info *info); static int offb_blank(int blank, struct fb_info *info); @@ -77,28 +76,12 @@ static struct fb_ops offb_ops = { owner: THIS_MODULE, - fb_check_var: offb_check_var, fb_setcolreg: offb_setcolreg, fb_blank: offb_blank, fb_fillrect: cfb_fillrect, fb_copyarea: cfb_copyarea, fb_imageblit: cfb_imageblit, }; - - /* - * Set the User Defined Part of the Display - */ - -static int offb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) -{ - if (var->xres > info->var.xres || var->yres > info->var.yres || - var->xres_virtual > info->var.xres_virtual || var->nonstd || - var->yres_virtual > info->var.yres_virtual || - var->bits_per_pixel > info->var.bits_per_pixel || - (var->vmode & FB_VMODE_MASK) != FB_VMODE_NONINTERLACED) - return -EINVAL; - return 0; -} /* * Initialisation |
From: James S. <jsi...@us...> - 2001-11-23 01:25:48
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv17329 Modified Files: vesafb.c Log Message: Removed old mtrr stuff and removed check_var. we no longer need it for frmaebuffers that can't change modes. Index: vesafb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/vesafb.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- vesafb.c 2001/10/08 02:27:09 1.17 +++ vesafb.c 2001/11/23 01:25:45 1.18 @@ -21,7 +21,6 @@ #include <linux/init.h> #include <asm/io.h> -#include <asm/mtrr.h> #define dac_reg (0x3c8) #define dac_val (0x3c9) @@ -56,7 +55,6 @@ static u32 pseudo_palette[17]; static int inverse = 0; -static int mtrr = 0; static int pmi_setpal = 0; /* pmi for palette changes ??? */ static int ypan = 0; /* 0..nothing, 1..ypan, 2..ywrap */ static unsigned short *pmi_base = 0; @@ -65,18 +63,6 @@ /* --------------------------------------------------------------------- */ -static int vesafb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) -{ -/* - if (var->yres_virtual < video_height_virtual || - var->yres_virtual > info->var.yres) - return 0; - printk(KERN_ERR "Vesafb does not support changing the video mode\n"); - return -EINVAL; -*/ - return 0; -} - static int vesafb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info) { @@ -188,7 +174,6 @@ static struct fb_ops vesafb_ops = { owner: THIS_MODULE, - fb_check_var: vesafb_check_var, fb_setcolreg: vesafb_setcolreg, fb_pan_display: vesafb_pan_display, fb_fillrect: cfb_fillrect, @@ -218,8 +203,6 @@ pmi_setpal=0; else if (! strcmp(this_opt, "pmipal")) pmi_setpal=1; - else if (! strcmp(this_opt, "mtrr")) - mtrr=1; } return 0; } @@ -364,13 +347,6 @@ * region already (FIXME) */ request_region(0x3c0, 32, "vesafb"); - if (mtrr) { - int temp_size = video_size; - while (mtrr_add(video_base, temp_size, MTRR_TYPE_WRCOMB, 1)==-EINVAL) { - temp_size >>= 1; - } - } - fb_info.node = -1; fb_info.fbops = &vesafb_ops; fb_info.var = vesafb_defined; |
From: Franz S. <fs...@us...> - 2001-11-22 18:00:46
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv27651 Modified Files: aty128fb.c fbcon.c macmodes.c Log Message: Delete vmode/cmode handling in aty128fb. Some minor fixes. Index: aty128fb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty128fb.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- aty128fb.c 2001/11/22 13:11:51 1.18 +++ aty128fb.c 2001/11/22 18:00:42 1.19 @@ -211,11 +211,6 @@ static const char *mode_option __initdata = NULL; -#ifdef CONFIG_PPC -static int default_vmode __initdata = VMODE_1024_768_60; -static int default_cmode __initdata = CMODE_8; -#endif - #ifdef CONFIG_MTRR static int mtrr = 1; #endif @@ -1118,30 +1113,6 @@ mtrr = 0; } #endif -#ifdef CONFIG_PPC - /* vmode and cmode depreciated */ - else if (!strncmp(this_opt, "vmode:", 6)) { - unsigned int vmode = simple_strtoul(this_opt+6, NULL, 0); - if (vmode > 0 && vmode <= VMODE_MAX) - default_vmode = vmode; - } else if (!strncmp(this_opt, "cmode:", 6)) { - unsigned int cmode = simple_strtoul(this_opt+6, NULL, 0); - switch (cmode) { - case 0: - case 8: - default_cmode = CMODE_8; - break; - case 15: - case 16: - default_cmode = CMODE_16; - break; - case 24: - case 32: - default_cmode = CMODE_32; - break; - } - } -#endif /* CONFIG_PPC */ else mode_option = this_opt; } @@ -1191,15 +1162,6 @@ if (_machine == _MACH_Pmac) { if (mode_option) { if (!mac_find_mode(&var, info, mode_option, 8)) - var = default_var; - } else { - if (default_vmode <= 0 || default_vmode > VMODE_MAX) - default_vmode = VMODE_1024_768_60; - - if (default_cmode < CMODE_8 || default_cmode > CMODE_32) - default_cmode = CMODE_8; - - if (mac_vmode_to_var(default_vmode, default_cmode, &var)) var = default_var; } } else Index: fbcon.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/fbcon.c,v retrieving revision 1.57 retrieving revision 1.58 diff -u -d -r1.57 -r1.58 --- fbcon.c 2001/11/07 10:19:20 1.57 +++ fbcon.c 2001/11/22 18:00:42 1.58 @@ -170,7 +170,7 @@ if (!options || !*options) return 0; - while (this_opt = strsep(&options, ",")) { + while ((this_opt = strsep(&options, ","))) { if (!strncmp(this_opt, "font:", 5)) strcpy(fontname, this_opt+5); } Index: macmodes.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/macmodes.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- macmodes.c 2001/11/22 12:56:49 1.2 +++ macmodes.c 2001/11/22 18:00:42 1.3 @@ -380,6 +380,7 @@ unsigned int dbsize = 0; if (mode_option && !strncmp(mode_option, "mac", 3)) { + mode_option += 3; db = mac_modedb; dbsize = sizeof(mac_modedb)/sizeof(*mac_modedb); } |
From: Franz S. <fs...@us...> - 2001-11-22 13:11:54
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv11608 Modified Files: aty128fb.c Log Message: Arrgh. Index: aty128fb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty128fb.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- aty128fb.c 2001/11/22 13:09:59 1.17 +++ aty128fb.c 2001/11/22 13:11:51 1.18 @@ -1190,7 +1190,7 @@ #ifdef CONFIG_PPC if (_machine == _MACH_Pmac) { if (mode_option) { - if (!mac_find_mode(&var, &info, mode_option, 8)) + if (!mac_find_mode(&var, info, mode_option, 8)) var = default_var; } else { if (default_vmode <= 0 || default_vmode > VMODE_MAX) |
From: Franz S. <fs...@us...> - 2001-11-22 13:10:02
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv11077 Modified Files: aty128fb.c Log Message: Typo fix. Index: aty128fb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty128fb.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- aty128fb.c 2001/11/22 12:56:48 1.16 +++ aty128fb.c 2001/11/22 13:09:59 1.17 @@ -1190,7 +1190,7 @@ #ifdef CONFIG_PPC if (_machine == _MACH_Pmac) { if (mode_option) { - if (!mac_find_mode(&var, &info-> mode_option, 8)) + if (!mac_find_mode(&var, &info, mode_option, 8)) var = default_var; } else { if (default_vmode <= 0 || default_vmode > VMODE_MAX) |
From: Franz S. <fs...@us...> - 2001-11-22 13:09:06
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv10942 Modified Files: Makefile Log Message: Update obj-$(CONFIG_FB_ATY128). Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/Makefile,v retrieving revision 1.42 retrieving revision 1.43 diff -u -d -r1.42 -r1.43 --- Makefile 2001/10/06 16:11:13 1.42 +++ Makefile 2001/11/22 13:09:04 1.43 @@ -42,7 +42,7 @@ obj-$(CONFIG_FB_APOLLO) += dnfb.o obj-$(CONFIG_FB_Q40) += q40fb.o obj-$(CONFIG_FB_ATARI) += atafb.o -obj-$(CONFIG_FB_ATY128) += aty128fb.o +obj-$(CONFIG_FB_ATY128) += aty128fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_RADEON) += radeonfb.o obj-$(CONFIG_FB_IGA) += igafb.o obj-$(CONFIG_FB_CONTROL) += controlfb.o |
From: Franz S. <fs...@us...> - 2001-11-22 12:56:54
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv8040 Modified Files: Config.in aty128fb.c macmodes.c offb.c Log Message: Delete CONFIG_FB_COMPAT_XPMAC, so it doesn't leak into 2.5.\naty128fb gcc3 fix. Index: Config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/Config.in,v retrieving revision 1.53 retrieving revision 1.54 diff -u -d -r1.53 -r1.54 --- Config.in 2001/10/29 00:11:00 1.53 +++ Config.in 2001/11/22 12:56:48 1.54 @@ -76,7 +76,6 @@ fi fi if [ "$CONFIG_PPC" = "y" ]; then - bool 'Backward compatibility mode for Xpmac' CONFIG_FB_COMPAT_XPMAC bool ' Open Firmware frame buffer device support' CONFIG_FB_OF bool ' Apple "control" display support' CONFIG_FB_CONTROL bool ' Apple "platinum" display support' CONFIG_FB_PLATINUM Index: aty128fb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty128fb.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- aty128fb.c 2001/11/21 00:49:48 1.15 +++ aty128fb.c 2001/11/22 12:56:48 1.16 @@ -62,10 +62,6 @@ #include <asm/backlight.h> #endif -#ifdef CONFIG_FB_COMPAT_XPMAC -#include <asm/vc_ioctl.h> -#endif - #ifdef CONFIG_MTRR #include <asm/mtrr.h> #endif @@ -141,7 +137,7 @@ }; /* supported Rage128 chipsets */ -static const struct aty128_chip_info aty128_pci_probe_list[] __initdata = +static struct aty128_chip_info aty128_pci_probe_list[] __initdata = { {"Rage128 RE (PCI)", PCI_DEVICE_ID_ATI_RAGE128_RE, rage_128}, {"Rage128 RF (AGP)", PCI_DEVICE_ID_ATI_RAGE128_RF, rage_128}, @@ -1062,26 +1058,6 @@ info->fix.line_length = (info->var.xres_virtual * par->crtc.bpp) >> 3; info->fix.visual = par->crtc.bpp <= 8 ? FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_DIRECTCOLOR; -#ifdef CONFIG_FB_COMPAT_XPMAC - if (!console_fb_info || console_fb_info == &info) { - struct fb_var_screeninfo var; - int cmode, vmode; - - display_info.height = ((par->crtc.v_total >> 16) & 0x7ff) + 1; - display_info.width = (((par->crtc.h_total >> 16) & 0xff) + 1) << 3; - display_info.depth = par->crtc.bpp; - display_info.pitch = (info->var.xres_virtual * par->crtc.bpp) >> 3; - if (mac_var_to_vmode(&var, &vmode, &cmode)) - display_info.mode = 0; - else - display_info.mode = vmode; - strcpy(display_info.name, info->fix.id); - display_info.fb_address = info->fix.smem_start; - display_info.cmap_adr_address = 0; - display_info.cmap_data_address = 0; - display_info.disp_reg_address = info->mmio_start; - } -#endif /* CONFIG_FB_COMPAT_XPMAC */ return 0; } @@ -1412,11 +1388,6 @@ printk(KERN_INFO "aty128fb: Rage128 MTRR set to ON\n"); } #endif /* CONFIG_MTRR */ - -#ifdef CONFIG_FB_COMPAT_XPMAC - if (!console_fb_info) - console_fb_info = info; -#endif return 0; Index: macmodes.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/macmodes.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- macmodes.c 2001/07/16 21:36:46 1.1 +++ macmodes.c 2001/11/22 12:56:49 1.2 @@ -20,10 +20,6 @@ #include <linux/fb.h> #include <linux/string.h> -#ifdef CONFIG_FB_COMPAT_XPMAC -#include <asm/vc_ioctl.h> -#endif - #include "fbcon.h" #include <video/macmodes.h> @@ -206,170 +202,6 @@ { 0xBEEF, VMODE_1600_1024_60 }, /* 22" Apple Cinema Display */ { -1, VMODE_640_480_60 }, /* catch-all, must be last */ }; - -#ifdef CONFIG_FB_COMPAT_XPMAC -struct fb_info *console_fb_info = NULL; -struct vc_mode display_info; - -static u16 palette_red[16]; -static u16 palette_green[16]; -static u16 palette_blue[16]; -static struct fb_cmap palette_cmap = { - 0, 16, palette_red, palette_green, palette_blue, NULL -}; - - -/** - * console_getmode - get current mode - * @mode: virtual console mode structure - * - * Populates @mode with the current mode held in the global - * display_info structure. - * - * Note, this function is only for XPMAC compatibility. - * - * Returns zero. - */ - -int console_getmode(struct vc_mode *mode) -{ - *mode = display_info; - return 0; -} - - -/** - * console_setmode - sets current console mode - * @mode: virtual console mode structure - * @doit: boolean, 0 test mode, 1 test and activate mode - * - * Sets @mode for all virtual consoles if @doit is non-zero, - * otherwise, test a mode for validity. - * - * Note, this function is only for XPMAC compatibility. - * - * Returns negative errno on error, or zero for success. - * - */ - -int console_setmode(struct vc_mode *mode, int doit) -{ - struct fb_var_screeninfo var; - int cmode, err; - - if (!console_fb_info) - return -EOPNOTSUPP; - - switch(mode->depth) { - case 0: - case 8: - cmode = CMODE_8; - break; - case 16: - cmode = CMODE_16; - break; - case 24: - case 32: - cmode = CMODE_32; - break; - default: - return -EINVAL; - } - - if ((err = mac_vmode_to_var(mode->mode, cmode, &var))) - return err; - - var.activate = FB_ACTIVATE_TEST; - err = console_fb_info->fbops->fb_set_var(&var, fg_console, - console_fb_info); - if (err || !doit) - return err; - else { - int unit; - - var.activate = FB_ACTIVATE_NOW; - for (unit = 0; unit < MAX_NR_CONSOLES; unit++) - if (fb_display[unit].conp && - (GET_FB_IDX(console_fb_info->node) == con2fb_map[unit])) - console_fb_info->fbops->fb_set_var(&var, unit, - console_fb_info); - } - - return 0; -} - - -/** - * console_setcmap - sets palette color map for console - * @n_entries: number of entries in the palette (max 16) - * @red: value for red component of palette - * @green: value for green component of palette - * @blue: value for blue component of palette - * - * Sets global palette_cmap structure and activates the palette - * on the current console. - * - * Note, this function is only for XPMAC compatibility. - * - * Returns negative errno on error, or zero for success. - * - */ - -int console_setcmap(int n_entries, unsigned char *red, unsigned char *green, - unsigned char *blue) -{ - int i, j, n = 0, err; - - if (!console_fb_info) - return -EOPNOTSUPP; - - for (i = 0; i < n_entries; i += n) { - n = n_entries - i; - if (n > 16) - n = 16; - palette_cmap.start = i; - palette_cmap.len = n; - - for (j = 0; j < n; j++) { - palette_cmap.red[j] = (red[i+j] << 8) | red[i+j]; - palette_cmap.green[j] = (green[i+j] << 8) | green[i+j]; - palette_cmap.blue[j] = (blue[i+j] << 8) | blue[i+j]; - } - err = console_fb_info->fbops->fb_set_cmap(&palette_cmap, 1, - fg_console, - console_fb_info); - if (err) - return err; - } - - return 0; -} - - -/** - * console_powermode - sets monitor power mode - * @mode: power state to set - * - * Sets power state as dictated by @mode. - * - * Note that this function is only for XPMAC compatibility and - * doesn't do much. - * - * Returns 0 for %VC_POWERMODE_INQUIRY, -EINVAL for VESA power - * settings, or -ENIXIO on failure. - * - */ - -int console_powermode(int mode) -{ - if (mode == VC_POWERMODE_INQUIRY) - return 0; - if (mode < VESA_NO_BLANKING || mode > VESA_POWERDOWN) - return -EINVAL; - /* Not Supported */ - return -ENXIO; -} -#endif /* CONFIG_FB_COMPAT_XPMAC */ /** Index: offb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/offb.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- offb.c 2001/10/15 01:13:17 1.13 +++ offb.c 2001/11/22 12:56:49 1.14 @@ -26,9 +26,6 @@ #include <linux/fb.h> #include <linux/init.h> #include <linux/ioport.h> -#ifdef CONFIG_FB_COMPAT_XPMAC -#include <asm/vc_ioctl.h> -#endif #include <asm/io.h> #include <asm/prom.h> #ifdef CONFIG_BOOTX_TEXT @@ -388,28 +385,6 @@ printk(KERN_INFO "fb%d: Open Firmware frame buffer device on %s\n", GET_FB_IDX(info->node), full_name); -#ifdef CONFIG_FB_COMPAT_XPMAC - if (!console_fb_info) { - display_info.height = var->yres; - display_info.width = var->xres; - display_info.depth = depth; - display_info.pitch = fix->line_length; - display_info.mode = 0; - strncpy(display_info.name, name, sizeof(display_info.name)); - display_info.fb_address = address; - display_info.cmap_adr_address = 0; - display_info.cmap_data_address = 0; - display_info.disp_reg_address = 0; - /* XXX kludge for ati */ - if (par->cmap_type == cmap_m64) { - unsigned long base = address & 0xff000000UL; - display_info.disp_reg_address = base + 0x7ffc00; - display_info.cmap_adr_address = base + 0x7ffcc0; - display_info.cmap_data_address = base + 0x7ffcc1; - } - console_fb_info = info; - } -#endif /* CONFIG_FB_COMPAT_XPMAC) */ } /* |
From: Franz S. <fs...@us...> - 2001-11-22 12:56:54
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video/aty In directory usw-pr-cvs1:/tmp/cvs-serv8040/aty Modified Files: atyfb_base.c Log Message: Delete CONFIG_FB_COMPAT_XPMAC, so it doesn't leak into 2.5.\naty128fb gcc3 fix. Index: atyfb_base.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty/atyfb_base.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- atyfb_base.c 2001/10/29 00:11:00 1.8 +++ atyfb_base.c 2001/11/22 12:56:49 1.9 @@ -91,9 +91,6 @@ #ifdef CONFIG_NVRAM #include <linux/nvram.h> #endif -#ifdef CONFIG_FB_COMPAT_XPMAC -#include <asm/vc_ioctl.h> -#endif #ifdef CONFIG_PMAC_BACKLIGHT #include <asm/backlight.h> #endif @@ -799,26 +796,6 @@ if (par->accel_flags & FB_ACCELF_TEXT) aty_init_engine(par, info); -#ifdef CONFIG_FB_COMPAT_XPMAC - if (!console_fb_info || console_fb_info == &info->fb_info) { - struct fb_var_screeninfo var; - int vmode, cmode; - display_info.height = ((par->crtc.v_tot_disp>>16) & 0x7ff)+1; - display_info.width = (((par->crtc.h_tot_disp>>16) & 0xff)+1)*8; - display_info.depth = par->crtc.bpp; - display_info.pitch = par->crtc.vxres*par->crtc.bpp/8; - atyfb_encode_var(&var, par, info); - if (mac_var_to_vmode(&var, &vmode, &cmode)) - display_info.mode = 0; - else - display_info.mode = vmode; - strcpy(display_info.name, atyfb_name); - display_info.fb_address = info->frame_buffer_phys; - display_info.cmap_adr_address = info->ati_regbase_phys+0xc0; - display_info.cmap_data_address = info->ati_regbase_phys+0xc1; - display_info.disp_reg_address = info->ati_regbase_phys; - } -#endif /* CONFIG_FB_COMPAT_XPMAC */ } static int atyfb_decode_var(const struct fb_var_screeninfo *var, @@ -2449,10 +2426,6 @@ first_display = info; #endif -#ifdef CONFIG_FB_COMPAT_XPMAC - if (!console_fb_info) - console_fb_info = &info->fb_info; -#endif /* CONFIG_FB_COMPAT_XPMAC */ } } |
From: James S. <jsi...@us...> - 2001-11-21 00:49:51
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv28213 Modified Files: aty128fb.c Log Message: Ported over ati 128 driver to new api. Still mmio and non accelerated. Index: aty128fb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty128fb.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- aty128fb.c 2001/11/20 23:25:48 1.14 +++ aty128fb.c 2001/11/21 00:49:48 1.15 @@ -40,8 +40,6 @@ #include <asm/uaccess.h> #include <linux/fb.h> #include <linux/init.h> -#include <linux/selection.h> -#include <linux/console.h> #include <linux/pci.h> #include <linux/ioport.h> #include <asm/io.h> @@ -68,12 +66,6 @@ #include <asm/vc_ioctl.h> #endif -#include <video/fbcon.h> -#include <video/fbcon-cfb8.h> -#include <video/fbcon-cfb16.h> -#include <video/fbcon-cfb24.h> -#include <video/fbcon-cfb32.h> - #ifdef CONFIG_MTRR #include <asm/mtrr.h> #endif @@ -218,7 +210,6 @@ static char fontname[40] __initdata = { 0 }; static int noaccel __initdata = 0; -static char *font __initdata = NULL; static char *mode __initdata = NULL; static int nomtrr __initdata = 0; @@ -290,32 +281,13 @@ static struct fb_info_aty128 *board_list = NULL; static u32 aty128fb_pseudo_palette[17]; -static struct display disp; static struct aty128fb_par default_par; -static struct fb_info info; #define round_div(n, d) ((n+(d/2))/d) /* - * Interface used by the world - */ -int aty128fb_init(void); -int aty128fb_setup(char *options); - -static int aty128fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info); -static int aty128fb_set_var(struct fb_var_screeninfo *var, int con, - struct fb_info *info); -static int aty128fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, - u_int transp, struct fb_info *info); -static int aty128fb_pan_display(struct fb_var_screeninfo *var, int con, - struct fb_info *fb); -static void aty128fb_blank(int blank, struct fb_info *fb); - - /* * Internal routines */ -static void aty128_set_dispsw(struct display *disp, - struct fb_info *info); static int aty128_pci_register(struct pci_dev *pdev, const struct aty128_chip_info *aci); static struct fb_info_aty128 *aty128_board_list_add(struct fb_info_aty128 @@ -334,48 +306,31 @@ static void wait_for_idle(struct aty128fb_par *par); static u32 bpp_to_depth(u32 bpp); -#ifdef FBCON_HAS_CFB8 -static struct display_switch fbcon_aty128_8; -static void fbcon_aty8_putc(struct vc_data *conp, struct display *p, - int c, int yy, int xx); -static void fbcon_aty8_putcs(struct vc_data *conp, struct display *p, - const unsigned short *s, int count, - int yy, int xx); -#endif -#ifdef FBCON_HAS_CFB16 -static struct display_switch fbcon_aty128_16; -static void fbcon_aty16_putc(struct vc_data *conp, struct display *p, - int c, int yy, int xx); -static void fbcon_aty16_putcs(struct vc_data *conp, struct display *p, - const unsigned short *s, int count, - int yy, int xx); -#endif -#ifdef FBCON_HAS_CFB24 -static struct display_switch fbcon_aty128_24; -static void fbcon_aty24_putc(struct vc_data *conp, struct display *p, - int c, int yy, int xx); -static void fbcon_aty24_putcs(struct vc_data *conp, struct display *p, - const unsigned short *s, int count, - int yy, int xx); -#endif -#ifdef FBCON_HAS_CFB32 -static struct display_switch fbcon_aty128_32; -static void fbcon_aty32_putc(struct vc_data *conp, struct display *p, - int c, int yy, int xx); -static void fbcon_aty32_putcs(struct vc_data *conp, struct display *p, - const unsigned short *s, int count, - int yy, int xx); -#endif + /* + * Interface used by the world + */ +int aty128fb_init(void); +int aty128fb_setup(char *options); +static int aty128fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info); +static int aty128fb_set_par(struct fb_info *info); +static int aty128fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, + u_int transp, struct fb_info *info); +static int aty128fb_pan_display(struct fb_var_screeninfo *var, + struct fb_info *fb); +static int aty128fb_blank(int blank, struct fb_info *fb); + + static struct fb_ops aty128fb_ops = { owner: THIS_MODULE, + fb_check_var: aty128fb_check_var, + fb_set_par: aty128fb_set_par, fb_setcolreg: aty128fb_setcolreg, - fb_get_fix: fbgen_get_fix, - fb_get_var: fbgen_get_var, - fb_set_var: aty128fb_set_var, - fb_get_cmap: fbgen_get_cmap, - fb_set_cmap: fbgen_set_cmap, fb_pan_display: aty128fb_pan_display, + fb_blank: aty128fb_blank, + fb_fillrect: cfb_fillrect, + fb_copyarea: cfb_copyarea, + fb_imageblit: cfb_imageblit, }; #ifdef CONFIG_PMAC_BACKLIGHT @@ -1055,8 +1010,7 @@ /* * This actually sets the video mode. */ -static void -aty128_set_par(struct fb_info *info) +static int aty128fb_set_par(struct fb_info *info) { struct aty128fb_par *par; u32 config; @@ -1128,96 +1082,7 @@ display_info.disp_reg_address = info->mmio_start; } #endif /* CONFIG_FB_COMPAT_XPMAC */ -} - - /* - * Set the User Defined Part of the Display - */ - -static int -aty128fb_set_var(struct fb_var_screeninfo *var, int con, struct fb_info *info) -{ - struct display *display; - int oldbpp, err; - - display = (con >= 0) ? &fb_display[con] : info->disp; - - if (memcmp(&info->var, var, sizeof(var)) || con < 0) { - if ((err = aty128fb_check_var(var, info))) - return err; - - if ((var->activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_NOW) { - oldbpp = display->var.bits_per_pixel; - - info->var = *var; - - aty128_set_par(info); - - display->screen_base = info->screen_base; - display->var = *var; - display->visual = info->fix.visual; - display->type = info->fix.type; - display->type_aux = info->fix.type_aux; - display->ypanstep = info->fix.ypanstep; - display->ywrapstep = info->fix.ywrapstep; - display->line_length = info->fix.line_length; - display->can_soft_blank = 1; - display->inverse = 0; - - aty128_set_dispsw(display, info); - - if (var->accel_flags & FB_ACCELF_TEXT) - display->scrollmode = SCROLL_YNOMOVE; - else - display->scrollmode = SCROLL_YREDRAW; - - if (info->changevar) - (*info->changevar)(con); - - if (oldbpp != var->bits_per_pixel) { - if ((err = fb_alloc_cmap(&info->cmap, 0, 0))) - return err; - fb_set_cmap(&info->cmap, 1, - info->fbops->fb_setcolreg, info); - } - } - } - return 0; -} - -static void -aty128_set_dispsw(struct display *disp, struct fb_info *info) -{ - int accel = info->var.accel_flags & FB_ACCELF_TEXT; - - switch (info->var.bits_per_pixel) { -#ifdef FBCON_HAS_CFB8 - case 8: - disp->dispsw = accel ? &fbcon_aty128_8 : &fbcon_cfb8; - break; -#endif -#ifdef FBCON_HAS_CFB16 - case 15: - case 16: - disp->dispsw = accel ? &fbcon_aty128_16 : &fbcon_cfb16; - disp->dispsw_data = info->pseudo_palette; - break; -#endif -#ifdef FBCON_HAS_CFB24 - case 24: - disp->dispsw = accel ? &fbcon_aty128_24 : &fbcon_cfb24; - disp->dispsw_data = info->pseudo_palette; - break; -#endif -#ifdef FBCON_HAS_CFB32 - case 32: - disp->dispsw = accel ? &fbcon_aty128_32 : &fbcon_cfb32; - disp->dispsw_data = info->pseudo_palette; - break; -#endif - default: - disp->dispsw = &fbcon_dummy; - } + return 0; } /* @@ -1226,8 +1091,7 @@ * Not supported (yet!) */ static int -aty128fb_pan_display(struct fb_var_screeninfo *var, int con, - struct fb_info *info) +aty128fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info) { struct aty128fb_par *par = (struct aty128fb_par *) info->par; u32 xoffset, yoffset; @@ -1342,15 +1206,8 @@ printk("%dk %s\n", info->fix.smem_len / 1024, default_par.mem->name); /* fill in info */ - strcpy(info->modename, info->fix.id); info->node = -1; info->fbops = &aty128fb_ops; - info->disp = &disp; - strcpy(info->fontname, fontname); - info->changevar = NULL; - info->switch_con = &fbgen_switch; - info->updatevar = NULL; - info->blank = &aty128fb_blank; info->flags = FBINFO_FLAG_DEFAULT; var = default_var; @@ -1399,9 +1256,6 @@ /* turn off bus mastering, just in case */ aty_st_le32(BUS_CNTL, aty_ld_le32(BUS_CNTL) | BUS_MASTER_DIS); - aty128fb_set_var(&var, -1, info); - aty128_init_engine(info); - //board_list = aty128_board_list_add(board_list, info); if (register_framebuffer(info) < 0) @@ -1505,8 +1359,6 @@ /* Copy PCI device info into info->pdev */ default_par.pdev = pdev; - info->currcon = -1; - info->fix = aty128fb_fix; /* Virtualize mmio region */ @@ -1753,8 +1605,7 @@ /* * Blank the display. */ -static void -aty128fb_blank(int blank, struct fb_info *info) +static int aty128fb_blank(int blank, struct fb_info *info) { struct aty128fb_par *par = (struct aty128fb_par *) info->par; u8 state = 0; @@ -1777,6 +1628,7 @@ if ((_machine == _MACH_Pmac) && !blank) set_backlight_enable(1); #endif /* CONFIG_PMAC_BACKLIGHT */ + return 0; } /* @@ -1946,218 +1798,6 @@ aty_st_le32(DP_DATATYPE, save_dp_datatype); aty_st_le32(DP_CNTL, save_dp_cntl); } - - /* - * Text mode accelerated functions - */ - -static void -fbcon_aty128_bmove(struct display *p, int sy, int sx, int dy, int dx, - int height, int width) -{ - sx *= fontwidth(p); - sy *= fontheight(p); - dx *= fontwidth(p); - dy *= fontheight(p); - width *= fontwidth(p); - height *= fontheight(p); - - aty128_rectcopy(sx, sy, dx, dy, width, height, p->fb_info); -} - - -#ifdef FBCON_HAS_CFB8 -static void fbcon_aty8_putc(struct vc_data *conp, struct display *p, - int c, int yy, int xx) -{ - struct aty128fb_par *par = (struct aty128fb_par *) p->fb_info->par; - - if (par->blitter_may_be_busy) - wait_for_idle(par); - - fbcon_cfb8_putc(conp, p, c, yy, xx); -} - - -static void fbcon_aty8_putcs(struct vc_data *conp, struct display *p, - const unsigned short *s, int count, - int yy, int xx) -{ - struct aty128fb_par *par = (struct aty128fb_par *) p->fb_info->par; - - if (par->blitter_may_be_busy) - wait_for_idle(par); - - fbcon_cfb8_putcs(conp, p, s, count, yy, xx); -} - - -static void fbcon_aty8_clear_margins(struct vc_data *conp, - struct display *p, int bottom_only) -{ - struct aty128fb_par *par = (struct aty128fb_par *) p->fb_info->par; - - if (par->blitter_may_be_busy) - wait_for_idle(par); - - fbcon_cfb8_clear_margins(conp, p, bottom_only); -} - -static struct display_switch fbcon_aty128_8 = { - setup: fbcon_cfb8_setup, - bmove: fbcon_aty128_bmove, - clear: fbcon_cfb8_clear, - putc: fbcon_aty8_putc, - putcs: fbcon_aty8_putcs, - revc: fbcon_cfb8_revc, - clear_margins: fbcon_aty8_clear_margins, - fontwidthmask: FONTWIDTH(4)|FONTWIDTH(8)|FONTWIDTH(12)|FONTWIDTH(16) -}; -#endif -#ifdef FBCON_HAS_CFB16 -static void fbcon_aty16_putc(struct vc_data *conp, struct display *p, - int c, int yy, int xx) -{ - struct aty128fb_par *par = (struct aty128fb_par *) p->fb_info->par; - - if (par->blitter_may_be_busy) - wait_for_idle(par); - - fbcon_cfb16_putc(conp, p, c, yy, xx); -} - - -static void fbcon_aty16_putcs(struct vc_data *conp, struct display *p, - const unsigned short *s, int count, - int yy, int xx) -{ - struct aty128fb_par *par = (struct aty128fb_par *) p->fb_info->par; - - if (par->blitter_may_be_busy) - wait_for_idle(par); - - fbcon_cfb16_putcs(conp, p, s, count, yy, xx); -} - - -static void fbcon_aty16_clear_margins(struct vc_data *conp, - struct display *p, int bottom_only) -{ - struct aty128fb_par *par = (struct aty128fb_par *) p->fb_info->par; - - if (par->blitter_may_be_busy) - wait_for_idle(par); - - fbcon_cfb16_clear_margins(conp, p, bottom_only); -} - -static struct display_switch fbcon_aty128_16 = { - setup: fbcon_cfb16_setup, - bmove: fbcon_aty128_bmove, - clear: fbcon_cfb16_clear, - putc: fbcon_aty16_putc, - putcs: fbcon_aty16_putcs, - revc: fbcon_cfb16_revc, - clear_margins: fbcon_aty16_clear_margins, - fontwidthmask: FONTWIDTH(4)|FONTWIDTH(8)|FONTWIDTH(12)|FONTWIDTH(16) -}; -#endif -#ifdef FBCON_HAS_CFB24 -static void fbcon_aty24_putc(struct vc_data *conp, struct display *p, - int c, int yy, int xx) -{ - struct aty128fb_par *par = (struct aty128fb_par *) p->fb_info->par; - - if (par->blitter_may_be_busy) - wait_for_idle(par); - - fbcon_cfb24_putc(conp, p, c, yy, xx); -} - - -static void fbcon_aty24_putcs(struct vc_data *conp, struct display *p, - const unsigned short *s, int count, - int yy, int xx) -{ - struct aty128fb_par *par = (struct aty128fb_par *) p->fb_info->par; - - if (par->blitter_may_be_busy) - wait_for_idle(par); - - fbcon_cfb24_putcs(conp, p, s, count, yy, xx); -} - - -static void fbcon_aty24_clear_margins(struct vc_data *conp, - struct display *p, int bottom_only) -{ - struct aty128fb_par *par = (struct aty128fb_par *) p->fb_info->par; - - if (par->blitter_may_be_busy) - wait_for_idle(par); - - fbcon_cfb24_clear_margins(conp, p, bottom_only); -} - -static struct display_switch fbcon_aty128_24 = { - setup: fbcon_cfb24_setup, - bmove: fbcon_aty128_bmove, - clear: fbcon_cfb24_clear, - putc: fbcon_aty24_putc, - putcs: fbcon_aty24_putcs, - revc: fbcon_cfb24_revc, - clear_margins: fbcon_aty24_clear_margins, - fontwidthmask: FONTWIDTH(4)|FONTWIDTH(8)|FONTWIDTH(12)|FONTWIDTH(16) -}; -#endif -#ifdef FBCON_HAS_CFB32 -static void fbcon_aty32_putc(struct vc_data *conp, struct display *p, - int c, int yy, int xx) -{ - struct aty128fb_par *par = (struct aty128fb_par *) p->fb_info->par; - - if (par->blitter_may_be_busy) - wait_for_idle(par); - - fbcon_cfb32_putc(conp, p, c, yy, xx); -} - - -static void fbcon_aty32_putcs(struct vc_data *conp, struct display *p, - const unsigned short *s, int count, - int yy, int xx) -{ - struct aty128fb_par *par = (struct aty128fb_par *) p->fb_info->par; - - if (par->blitter_may_be_busy) - wait_for_idle(par); - - fbcon_cfb32_putcs(conp, p, s, count, yy, xx); -} - - -static void fbcon_aty32_clear_margins(struct vc_data *conp, - struct display *p, int bottom_only) -{ - struct aty128fb_par *par = (struct aty128fb_par *) p->fb_info->par; - - if (par->blitter_may_be_busy) - wait_for_idle(par); - - fbcon_cfb32_clear_margins(conp, p, bottom_only); -} - -static struct display_switch fbcon_aty128_32 = { - setup: fbcon_cfb32_setup, - bmove: fbcon_aty128_bmove, - clear: fbcon_cfb32_clear, - putc: fbcon_aty32_putc, - putcs: fbcon_aty32_putcs, - revc: fbcon_cfb32_revc, - clear_margins: fbcon_aty32_clear_margins, - fontwidthmask: FONTWIDTH(4)|FONTWIDTH(8)|FONTWIDTH(12)|FONTWIDTH(16) -}; -#endif #ifdef MODULE MODULE_AUTHOR("(c)1999-2000 Brad Douglas <br...@ne...>"); |
From: James S. <jsi...@us...> - 2001-11-20 23:25:51
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv9392 Modified Files: aty128fb.c Log Message: Finally finished the transfer to using fbgen2.c. Now to finish it with using the new ruby fbdev api. Index: aty128fb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty128fb.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- aty128fb.c 2001/11/20 14:58:19 1.13 +++ aty128fb.c 2001/11/20 23:25:48 1.14 @@ -270,29 +270,29 @@ #ifdef CONFIG_MTRR struct { int vram; int vram_valid; } mtrr; #endif + struct aty128_constants constants; /* PLL and others */ + const struct aty128_meminfo *mem; /* onboard mem info */ struct aty128_ddafifo fifo_reg; + int blitter_may_be_busy; struct aty128_crtc crtc; struct aty128_pll pll; #ifdef CONFIG_PCI struct pci_dev *pdev; [...1347 lines suppressed...] + while (list) { + info = list->fb_info; + list = list->next; + par = info->par; + + unregister_framebuffer(&info); #ifdef CONFIG_MTRR if (par->mtrr.vram_valid) - mtrr_del(par->mtrr.vram, info->fb_info.fix.smem_start, - info->fb_info.fix.smem_len); + mtrr_del(par->mtrr.vram, info->fix.smem_start, + info->fix.smem_len); #endif /* CONFIG_MTRR */ - iounmap(info->regbase); - iounmap(info->fb_info.screen_base); + iounmap(par->regbase); + iounmap(info->screen_base); release_mem_region(pci_resource_start(par->pdev, 0), pci_resource_len(par->pdev, 0)); |
From: James S. <jsi...@us...> - 2001-11-20 14:58:23
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv9413 Modified Files: aty128fb.c Log Message: More syncing. nearly done. Index: aty128fb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty128fb.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- aty128fb.c 2001/11/20 00:40:52 1.12 +++ aty128fb.c 2001/11/20 14:58:19 1.13 @@ -245,12 +245,12 @@ }; struct aty128_crtc { - u32 gen_cntl; - u32 ext_cntl; u32 h_total, h_sync_strt_wid; u32 v_total, v_sync_strt_wid; - u32 pitch; u32 offset, offset_cntl; + u32 gen_cntl; + u32 ext_cntl; + u32 pitch; u32 bpp; }; @@ -315,11 +315,8 @@ * Internal routines */ static void aty128_set_dispsw(struct display *disp, - struct fb_info_aty128 *info, int bpp, int accel); + struct fb_info_aty128 *info, int accel); static void do_install_cmap(int con, struct fb_info *info); -static int aty128_decode_var(struct fb_var_screeninfo *var, - struct aty128fb_par *par, - struct fb_info_aty128 *info); static int aty128_pci_register(struct pci_dev *pdev, const struct aty128_chip_info *aci); static struct fb_info_aty128 *aty128_board_list_add(struct fb_info_aty128 @@ -730,51 +727,26 @@ #endif } - static int aty128_var_to_crtc(const struct fb_var_screeninfo *var, struct aty128_crtc *crtc, const struct fb_info_aty128 *info) { - u32 bpp; - u32 h_total, h_disp, h_sync_strt, h_sync_wid, h_sync_pol; - u32 v_total, v_disp, v_sync_strt, v_sync_wid, v_sync_pol, c_sync; - u32 depth, bytpp; + u32 h_total, h_disp, h_sync_strt, h_sync_wid, h_sync_pol, c_sync; + u32 v_total, v_disp, v_sync_strt, v_sync_wid, v_sync_pol; u8 hsync_strt_pix[5] = { 0, 0x12, 9, 6, 5 }; u8 mode_bytpp[7] = { 0, 0, 1, 2, 2, 3, 4 }; - - /* input */ - bpp = var->bits_per_pixel; - - /* convert bpp into ATI register depth */ - depth = bpp_to_depth(bpp); - - /* make sure we didn't get an invalid depth */ - if (depth == -EINVAL) { - printk(KERN_ERR "aty128fb: Invalid depth\n"); - return -EINVAL; - } + u32 depth, bytpp; + depth = bpp_to_depth(var->bits_per_pixel); /* convert depth to bpp */ bytpp = mode_bytpp[depth]; - /* make sure there is enough video ram for the mode */ - if ((u32)(var->xres_virtual * var->yres_virtual * bytpp) > info->fb_info.fix.smem_len) { - printk(KERN_ERR "aty128fb: Not enough memory for mode\n"); - return -EINVAL; - } - - h_disp = (var->xres >> 3) - 1; h_total = (((var->xres + var->right_margin + var->hsync_len + var->left_margin) >> 3) - 1) & 0xFFFFL; - - v_disp = var->yres - 1; v_total = (var->yres + var->upper_margin + var->vsync_len + var->lower_margin - 1) & 0xFFFFL; - /* check to make sure h_total and v_total are in range */ - if (((h_total >> 3) - 1) > 0x1ff || (v_total - 1) > 0x7FF) { - printk(KERN_ERR "aty128fb: invalid width ranges\n"); - return -EINVAL; - } + h_disp = (var->xres >> 3) - 1; + v_disp = var->yres - 1; h_sync_wid = (var->hsync_len + 7) >> 3; if (h_sync_wid == 0) @@ -811,7 +783,7 @@ crtc->offset = 0; crtc->offset_cntl = 0; - crtc->bpp = bpp; + crtc->bpp = var->bits_per_pixel; return 0; } @@ -856,7 +828,6 @@ aty_st_pll(PPLL_CNTL, aty_ld_pll(PPLL_CNTL) & ~PPLL_RESET); } - static int aty128_var_to_pll(u32 period_in_ps, struct aty128fb_par *par, struct fb_info_aty128 *info) @@ -971,6 +942,9 @@ static int aty128fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) { + u8 mode_bytpp[7] = { 0, 0, 1, 2, 2, 3, 4 }; + u32 depth, bytpp, h_total, v_total; + /* basic (in)sanity checks */ if (!var->xres) var->xres = 1; @@ -1046,6 +1020,33 @@ if (var->yres_virtual < var->yres + var->yoffset) var->yres_virtual = var->yres + var->yoffset; + /* convert bpp into ATI register depth */ + depth = bpp_to_depth(var->bits_per_pixel); + + /* make sure we didn't get an invalid depth */ + if (depth == -EINVAL) { + printk(KERN_ERR "aty128fb: Invalid depth\n"); + return -EINVAL; + } + + /* convert depth to bpp */ + bytpp = mode_bytpp[depth]; + + /* make sure there is enough video ram for the mode */ + if ((u32)(var->xres_virtual * var->yres_virtual * bytpp) > info->fix.smem_len) { + printk(KERN_ERR "aty128fb: Not enough memory for mode\n"); + return -EINVAL; + } + + h_total = (((var->xres + var->right_margin + var->hsync_len + var->left_margin) >> 3) - 1) & 0xFFFFL; + v_total = (var->yres + var->upper_margin + var->vsync_len + var->lower_margin - 1) & 0xFFFFL; + + /* check to make sure h_total and v_total are in range */ + if (((h_total >> 3) - 1) > 0x1ff || (v_total - 1) > 0x7FF) { + printk(KERN_ERR "aty128fb: invalid width ranges\n"); + return -EINVAL; + } + var->red.msb_right = 0; var->green.msb_right = 0; var->blue.msb_right = 0; @@ -1069,6 +1070,10 @@ { u32 config; + aty128_var_to_crtc(&info->fb_info.var, &par->crtc, info); + aty128_var_to_pll(info->fb_info.var.pixclock, par, info); + aty128_ddafifo(par, info); + info->fb_info.par = par; if (info->blitter_may_be_busy) @@ -1109,6 +1114,9 @@ if (info->fb_info.var.accel_flags & FB_ACCELF_TEXT) aty128_init_engine(par, info); + info->fb_info.fix.line_length = (info->fb_info.var.xres_virtual * par->crtc.bpp) >> 3; + info->fb_info.fix.visual = par->crtc.bpp <= 8 ? FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_DIRECTCOLOR; + #ifdef CONFIG_FB_COMPAT_XPMAC if (!console_fb_info || console_fb_info == &info->fb_info) { struct fb_var_screeninfo var; @@ -1132,28 +1140,6 @@ } /* - * encode/decode the User Defined Part of the Display - */ - -static int -aty128_decode_var(struct fb_var_screeninfo *var, struct aty128fb_par *par, - struct fb_info_aty128 *info) -{ - int err; - - if ((err = aty128_var_to_crtc(var, &par->crtc, info))) - return err; - - if ((err = aty128_var_to_pll(var->pixclock, par, info))) - return err; - - if ((err = aty128_ddafifo(par, info))) - return err; - - return 0; -} - - /* * Set the User Defined Part of the Display */ @@ -1163,74 +1149,59 @@ struct fb_info_aty128 *info = (struct fb_info_aty128 *)fb; struct aty128fb_par par; struct display *display; - int oldxres, oldyres, oldvxres, oldvyres, oldbpp, oldaccel; - int accel, err; + int accel, oldbpp, err; display = (con >= 0) ? &fb_display[con] : fb->disp; - aty128fb_check_var(var, &info->fb_info); + if (memcmp(&info->fb_info.var, var, sizeof(var)) || con < 0) { + if ((err = aty128fb_check_var(var, &info->fb_info))) + return err; - if ((err = aty128_decode_var(var, &par, info))) - return err; - - if ((var->activate & FB_ACTIVATE_MASK) != FB_ACTIVATE_NOW) - return 0; - - oldxres = display->var.xres; - oldyres = display->var.yres; - oldvxres = display->var.xres_virtual; - oldvyres = display->var.yres_virtual; - oldbpp = display->var.bits_per_pixel; - oldaccel = display->var.accel_flags; - display->var = info->fb_info.var = *var; - if (oldxres != var->xres || oldyres != var->yres || - oldvxres != var->xres_virtual || oldvyres != var->yres_virtual || - oldbpp != var->bits_per_pixel || oldaccel != var->accel_flags) { - - info->fb_info.fix.line_length = (var->xres_virtual * par.crtc.bpp) >> 3; - info->fb_info.fix.visual = par.crtc.bpp <= 8 ? FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_DIRECTCOLOR; - - display->screen_base = info->fb_info.screen_base; - display->visual = info->fb_info.fix.visual; - display->type = info->fb_info.fix.type; - display->type_aux = info->fb_info.fix.type_aux; - display->ypanstep = info->fb_info.fix.ypanstep; - display->ywrapstep = info->fb_info.fix.ywrapstep; - display->line_length = info->fb_info.fix.line_length; - display->can_soft_blank = 1; - display->inverse = 0; - - accel = var->accel_flags & FB_ACCELF_TEXT; - aty128_set_dispsw(display, info, par.crtc.bpp, accel); - - if (accel) - display->scrollmode = SCROLL_YNOMOVE; - else - display->scrollmode = SCROLL_YREDRAW; + if ((var->activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_NOW) { + oldbpp = display->var.bits_per_pixel; + + info->fb_info.var = *var; + + aty128_set_par(&par, info); - if (info->fb_info.changevar) - (*info->fb_info.changevar)(con); - info->fb_info.par = ∥ - } + display->screen_base = info->fb_info.screen_base; + display->var = *var; + display->visual = info->fb_info.fix.visual; + display->type = info->fb_info.fix.type; + display->type_aux = info->fb_info.fix.type_aux; + display->ypanstep = info->fb_info.fix.ypanstep; + display->ywrapstep = info->fb_info.fix.ywrapstep; + display->line_length = info->fb_info.fix.line_length; + display->can_soft_blank = 1; + display->inverse = 0; - if (!info->fb_info.display_fg || info->fb_info.display_fg->vc_num == con) - aty128_set_par(&par, info); + accel = var->accel_flags & FB_ACCELF_TEXT; + aty128_set_dispsw(display, info, accel); - if (oldbpp != var->bits_per_pixel) { - if ((err = fb_alloc_cmap(&display->cmap, 0, 0))) - return err; - do_install_cmap(con, &info->fb_info); - } + if (accel) + display->scrollmode = SCROLL_YNOMOVE; + else + display->scrollmode = SCROLL_YREDRAW; + if (info->fb_info.changevar) + (*info->fb_info.changevar)(con); + + if (oldbpp != var->bits_per_pixel) { + if ((err = fb_alloc_cmap(&display->cmap, 0, 0))) + return err; + do_install_cmap(con, &info->fb_info); + } + } + } return 0; } static void aty128_set_dispsw(struct display *disp, - struct fb_info_aty128 *info, int bpp, int accel) + struct fb_info_aty128 *info, int accel) { - switch (bpp) { + switch (info->fb_info.var.bits_per_pixel) { #ifdef FBCON_HAS_CFB8 case 8: disp->dispsw = accel ? &fbcon_aty128_8 : &fbcon_cfb8; @@ -1424,11 +1395,12 @@ else var.accel_flags |= FB_ACCELF_TEXT; - if (aty128_decode_var(&var, &default_par, info)) { + if (aty128fb_check_var(&var, &info->fb_info)) { printk(KERN_ERR "aty128fb: Cannot set default mode.\n"); return 0; } + info->fb_info.var = var; info->fb_info.par = &default_par; /* setup the DAC the way we like it */ |