http://linux.bkbits.net/linux-2.5 torvalds@ppc970.osdl.org|ChangeSet|20040519053933|56932 torvalds # This is a BitKeeper generated diff -Nru style patch. # # drivers/pci/hotplug/rpaphp_vio.c # 2021/04/28 09:30:09-07:00 lxiep@us.ibm.com +1 -0 # PCI Hotplug: rpaphp doesn't initialize slot's name # # drivers/pci/hotplug/rpaphp_slot.c # 2021/04/28 09:30:09-07:00 lxiep@us.ibm.com +6 -11 # PCI Hotplug: rpaphp doesn't initialize slot's name # # drivers/pci/hotplug/rpaphp_pci.c # 2021/04/28 09:30:09-07:00 lxiep@us.ibm.com +2 -1 # PCI Hotplug: rpaphp doesn't initialize slot's name # # fs/sysfs/dir.c # 2004/10/06 22:17:22-07:00 maneesh@in.ibm.com +14 -5 # sysfs_rename_dir-cleanup # # net/core/dev.c # 2004/05/14 15:44:03-07:00 greg@kroah.com +0 -0 # Auto merged # # net/core/dev.c # 2004/10/06 22:05:11-07:00 maneesh@in.ibm.com +10 -6 # sysfs_rename_dir-cleanup # # lib/kobject.c # 2004/10/06 22:05:11-07:00 maneesh@in.ibm.com +7 -3 # sysfs_rename_dir-cleanup # # include/linux/sysfs.h # 2004/10/06 22:05:11-07:00 maneesh@in.ibm.com +1 -1 # sysfs_rename_dir-cleanup # # include/linux/kobject.h # 2004/10/06 22:05:11-07:00 maneesh@in.ibm.com +1 -1 # sysfs_rename_dir-cleanup # # drivers/base/class.c # 2004/10/06 22:05:11-07:00 maneesh@in.ibm.com +4 -2 # sysfs_rename_dir-cleanup # # drivers/pci/hotplug/cpqphp_core.c # 2004/04/25 07:39:40-07:00 eike-hotplug@sf-tec.de +11 -13 # Compaq PCI Hotplug: some final fixes for cpqphp_core.c # # drivers/pci/hotplug/cpqphp_core.c # 2004/04/25 07:39:40-07:00 eike-hotplug@sf-tec.de +3 -13 # Compaq PCI Hotplug: remove useless NULL checks from cpqphp_core.c # # drivers/pci/hotplug/cpqphp_core.c # 2004/04/25 07:39:41-07:00 eike-hotplug@sf-tec.de +31 -26 # Compaq PCI Hotplug: use goto for error handling # # drivers/pci/hotplug/cpqphp_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +150 -126 # Compaq PCI Hotplug: more coding style fixes # # drivers/pci/hotplug/cpqphp_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +4 -3 # Compaq PCI Hotplug: use new style of module parameters # # drivers/pci/hotplug/cpqphp_core.c # 2004/04/24 19:02:14-07:00 eike-hotplug@sf-tec.de +33 -97 # Compaq PCI Hotplug: remove useless NULL checks # # drivers/pci/hotplug/cpqphp_ctrl.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +2 -2 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/cpqphp_ctrl.c # 2004/04/28 14:53:59-07:00 eike-hotplug@sf-tec.de +1 -20 # Compaq PCI Hotplug: remove useless NULL checks from cpqphp_ctrl.c # # drivers/pci/hotplug/cpqphp_ctrl.c # 2004/04/28 14:53:59-07:00 eike-hotplug@sf-tec.de +18 -22 # Compaq PCI Hotplug: kill useless kmalloc casts # # drivers/pci/hotplug/cpqphp_ctrl.c # 2004/04/25 10:47:46-07:00 eike-hotplug@sf-tec.de +1 -1 # Compaq PCI Hotplug: fix missing braces # # drivers/pci/hotplug/cpqphp_ctrl.c # 2004/04/25 10:47:46-07:00 eike-hotplug@sf-tec.de +14 -15 # Compaq PCI Hotplug: coding style fixes for cpqphp_ctrl.c # # drivers/pci/hotplug/cpqphp_ctrl.c # 2004/04/25 10:47:46-07:00 eike-hotplug@sf-tec.de +29 -41 # Compaq PCI Hotplug: use goto for error handling in cpqphp_ctrl.c # # drivers/pci/hotplug/cpqphp_ctrl.c # 2004/04/27 16:18:21-07:00 eike-hotplug@sf-tec.de +349 -391 # Compaq PCI Hotplug: fix C++ style comments # # drivers/pci/hotplug/cpqphp_ctrl.c # 2004/04/25 07:27:27-07:00 eike-hotplug@sf-tec.de +38 -99 # Compaq PCI Hotplug: split up hardware_test # # drivers/pci/hotplug/cpqphp_ctrl.c # 2004/04/23 14:20:26-07:00 eike-hotplug@sf-tec.de +132 -0 # Compaq PCI Hotplug: move huge inline function out of header file # # drivers/pci/hotplug/cpqphp.h # 2004/05/17 09:06:32-07:00 greg@kroah.com +0 -1 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/cpqphp_ctrl.c # 2004/04/24 19:02:14-07:00 eike-hotplug@sf-tec.de +1 -6 # Compaq PCI Hotplug: remove useless NULL checks # # drivers/pci/hotplug/cpqphp_ctrl.c # 2004/04/24 12:46:59-07:00 eike-hotplug@sf-tec.de +203 -180 # Compaq PCI Hotplug: coding style fixes # # drivers/pci/hotplug/cpqphp.h # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +1 -5 # Compaq PCI Hotplug: use new style of module parameters # # drivers/pci/hotplug/cpqphp.h # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +0 -133 # Compaq PCI Hotplug: move huge inline function out of header file # # drivers/pci/hotplug/cpqphp.h # 2004/04/24 19:02:14-07:00 eike-hotplug@sf-tec.de +0 -48 # Compaq PCI Hotplug: remove useless NULL checks # # drivers/pci/hotplug/cpqphp_pci.c # 2004/04/30 07:24:17-07:00 greg@kroah.com +1 -1 # PCI Hotplug: fix stupid build bugs caused by previous patches. # # Doesn't anyone build their patches anymore before sending them out... # # drivers/pci/hotplug/cpqphp.h # 2004/04/24 14:27:44-07:00 eike-hotplug@sf-tec.de +25 -29 # Compaq PCI Hotplug: coding style fixes # # drivers/pci/hotplug/cpqphp_pci.c # 2004/04/27 16:26:12-07:00 eike-hotplug@sf-tec.de +20 -14 # PCI Hotplug: Remove type magic from kmalloc # # drivers/pci/hotplug/cpqphp_pci.c # 2004/04/24 12:40:14-07:00 eike-hotplug@sf-tec.de +25 -21 # Compaq PCI Hotplug: coding style fixes # # ChangeSet # 2004/05/18 22:07:43-07:00 paulus@samba.org # [PATCH] Fix incorrect PT_FPSCR definition # # Bryan Rosenburg pointed out that the definition of PT_FPSCR in # include/asm-ppc64/ptrace.h is wrong. The patch below fixes it. # # include/asm-ppc64/ptrace.h # 2004/04/02 05:12:02-08:00 paulus@samba.org +1 -1 # Fix incorrect PT_FPSCR definition # # ChangeSet # 2004/05/18 22:07:16-07:00 akpm@osdl.org # [PATCH] i2o: reorder of fields in i2o_cmd_passthru structure # # From: Markus Lidel # # I have made a mistake in the kernel header i2o-dev.h. All structures there # begin with the "iop" first, but in my structure the order is reversed. # # include/linux/i2o-dev.h # 2004/05/18 08:29:49-07:00 akpm@osdl.org +1 -2 # i2o: reorder of fields in i2o_cmd_passthru structure # # ChangeSet # 2004/05/18 22:07:06-07:00 akpm@osdl.org # [PATCH] md: Fix user-after-free bug in multipath # # From: NeilBrown # # If mddev->thread is non-null later, it gets used. # # drivers/md/multipath.c # 2004/05/18 08:15:24-07:00 akpm@osdl.org +1 -0 # md: Fix user-after-free bug in multipath # # ChangeSet # 2004/05/18 22:02:57-07:00 akpm@osdl.org # [PATCH] ppc64: add device tree pointer for vio devices # # From: Anton Blanchard # # From: Olaf Hering # # Provide pointer into the device-tree for vio devices. # # arch/ppc64/kernel/vio.c # 2004/05/18 07:48:12-07:00 akpm@osdl.org +12 -0 # ppc64: add device tree pointer for vio devices # # ChangeSet # 2004/05/18 22:02:46-07:00 akpm@osdl.org # [PATCH] ppc64: more required exports # # From: Anton Blanchard # # IBM veth uses these symbols. # # arch/ppc64/kernel/HvLpEvent.c # 2004/05/18 07:48:12-07:00 akpm@osdl.org +3 -0 # ppc64: more required exports # # ChangeSet # 2004/05/18 22:02:36-07:00 akpm@osdl.org # [PATCH] ppc64: correct return code in iommu_alloc_consistent # # From: Anton Blanchard # # From: Olof Johansson # # iommu_alloc_consistent should return NULL on failure. # # arch/ppc64/kernel/iommu.c # 2004/05/18 07:48:11-07:00 akpm@osdl.org +1 -1 # ppc64: correct return code in iommu_alloc_consistent # # ChangeSet # 2004/05/18 22:02:25-07:00 akpm@osdl.org # [PATCH] ppc64: Make PMC6 spin # # From: Anton Blanchard # # Make PMC6 spin on POWER5 boxes. # # arch/ppc64/kernel/sysfs.c # 2004/05/18 07:48:11-07:00 akpm@osdl.org +11 -0 # ppc64: Make PMC6 spin # # ChangeSet # 2004/05/18 22:02:14-07:00 akpm@osdl.org # [PATCH] ppc64: oprofile fixes # # From: Anton Blanchard # # - support newer 970 and POWER5 chips. # # - use new SIHV/SIPR bits on POWER5. # # - fix oops at shutdown. # # include/asm-ppc64/processor.h # 2004/05/18 07:48:11-07:00 akpm@osdl.org +2 -0 # ppc64: oprofile fixes # # arch/ppc64/oprofile/op_model_power4.c # 2004/05/18 07:48:11-07:00 akpm@osdl.org +17 -4 # ppc64: oprofile fixes # # arch/ppc64/oprofile/common.c # 2004/05/18 07:48:11-07:00 akpm@osdl.org +2 -0 # ppc64: oprofile fixes # # ChangeSet # 2004/05/18 22:02:03-07:00 akpm@osdl.org # [PATCH] ppc64: 4GB firmware flash fix # # From: Anton Blanchard # # From: Jake Moilanen # # We want to make sure flash list is above 4 gigs, not 4 megs. # # arch/ppc64/kernel/rtas.c # 2004/05/18 07:48:11-07:00 akpm@osdl.org +1 -1 # ppc64: 4GB firmware flash fix # # ChangeSet # 2004/05/18 22:01:52-07:00 akpm@osdl.org # [PATCH] ppc64: fix rtas flash driver # # From: Anton Blanchard # # From: John Rose # # Please apply the following, which fixes a typo that prevents the creation of # the manage_flash /proc file. # # arch/ppc64/kernel/rtas_flash.c # 2004/05/18 07:48:11-07:00 akpm@osdl.org +1 -1 # ppc64: fix rtas flash driver # # ChangeSet # 2004/05/18 22:01:41-07:00 akpm@osdl.org # [PATCH] ppc64: fix error return in mf_proc # # From: Anton Blanchard # # This patch was submitted by Olaf Hering to fix mf_proc.c where it does not # return error values correctly. # # arch/ppc64/kernel/mf_proc.c # 2004/05/18 07:48:11-07:00 akpm@osdl.org +5 -1 # ppc64: fix error return in mf_proc # # ChangeSet # 2004/05/18 22:01:30-07:00 akpm@osdl.org # [PATCH] ppc64: add stack overflow detection # # From: Anton Blanchard # # I only got iseries first time around. Add CONFIG_DEBUG_STACKOVERFLOW for # pseries/pmac too. # # arch/ppc64/kernel/irq.c # 2004/05/18 07:48:10-07:00 akpm@osdl.org +15 -0 # ppc64: add stack overflow detection # # ChangeSet # 2004/05/18 22:01:15-07:00 akpm@osdl.org # [PATCH] ppc64: fix rtas error log location # # From: Anton Blanchard # # From: Nathan Lynch # # Somehow we've been placing the rtas error_log file at /proc/ppc64/error_log, # which breaks at least one application I know of. It is supposed to be at # /proc/ppc64/rtas/error_log (this is the 2.4 behavior). # # arch/ppc64/kernel/rtasd.c # 2004/05/18 07:48:10-07:00 akpm@osdl.org +1 -1 # ppc64: fix rtas error log location # # ChangeSet # 2004/05/18 22:01:02-07:00 akpm@osdl.org # [PATCH] ppc64: fix rtas error log length # # From: Anton Blanchard # # From: Jake Moilanen # # Fix for not vmalloc'n space for the sequence number in rtas_log_buf. # # arch/ppc64/kernel/rtasd.c # 2004/05/18 07:48:49-07:00 akpm@osdl.org +1 -1 # ppc64: fix rtas error log length # # ChangeSet # 2004/05/18 22:00:49-07:00 akpm@osdl.org # [PATCH] ppc32: PPC4xx fixes # # From: Matt Porter # # Fixes 440GX UIC code, updates 440GX PVRs, and fixes a typo. # # include/asm-ppc/reg.h # 2004/05/18 07:48:10-07:00 akpm@osdl.org +1 -1 # ppc32: PPC4xx fixes # # arch/ppc/syslib/ppc4xx_pic.c # 2004/05/18 07:48:10-07:00 akpm@osdl.org +5 -2 # ppc32: PPC4xx fixes # # arch/ppc/platforms/4xx/ibm440gp.c # 2004/05/18 07:48:10-07:00 akpm@osdl.org +1 -1 # ppc32: PPC4xx fixes # # arch/ppc/kernel/cputable.c # 2004/05/18 07:48:10-07:00 akpm@osdl.org +2 -2 # ppc32: PPC4xx fixes # # ChangeSet # 2004/05/18 22:00:40-07:00 akpm@osdl.org # [PATCH] ppc32: Fix ocp_register_driver() return value # # From: Matt Porter # # Fixes return value from ocp_register_driver(). # # arch/ppc/syslib/ocp.c # 2004/05/18 07:48:10-07:00 akpm@osdl.org +1 -7 # ppc32: Fix ocp_register_driver() return value # # ChangeSet # 2004/05/18 22:00:29-07:00 akpm@osdl.org # [PATCH] ppc32: some fixes for 'make O=...' # # From: Tom Rini # # From: Geoffrey LEVAND # # Fix some of the problems with 'make O=...' # # Ack'd by Sam Ravnborg. # # arch/ppc/boot/simple/Makefile # 2004/05/18 07:48:09-07:00 akpm@osdl.org +7 -7 # ppc32: some fixes for 'make O=...' # # ChangeSet # 2004/05/18 22:00:19-07:00 akpm@osdl.org # [PATCH] ppc32: remove 'mem_pieces_append' # # From: Tom Rini # # From: Fabian.Frederick # # Remove mem_pieces_append, it is never used. # # arch/ppc/mm/mem_pieces.h # 2004/05/18 07:48:09-07:00 akpm@osdl.org +0 -2 # ppc32: remove 'mem_pieces_append' # # arch/ppc/mm/mem_pieces.c # 2004/05/18 07:48:09-07:00 akpm@osdl.org +0 -17 # ppc32: remove 'mem_pieces_append' # # ChangeSet # 2004/05/18 22:00:08-07:00 akpm@osdl.org # [PATCH] ppc32: update Motorola LoPEC and Sandpoint defconfigs # # From: Tom Rini # # Update the Motorola LoPEC and Sandpoint config files. # # arch/ppc/configs/sandpoint_defconfig # 2004/05/18 07:48:09-07:00 akpm@osdl.org +241 -312 # ppc32: update Motorola LoPEC and Sandpoint defconfigs # # arch/ppc/configs/lopec_defconfig # 2004/05/18 07:48:09-07:00 akpm@osdl.org +281 -286 # ppc32: update Motorola LoPEC and Sandpoint defconfigs # # ChangeSet # 2004/05/18 21:59:56-07:00 akpm@osdl.org # [PATCH] ppc32: fix MOD_{INC,DEC}_USE_COUNT abuse in 4xx/8xx code # # From: Christoph Hellwig # # Note that most of the drivers are in a compiling shape currently, but I # want to get rid of the last callers of those. # # (acked by Tom Rini) # # arch/ppc/8xx_io/uart.c # 2004/05/18 07:48:09-07:00 akpm@osdl.org +2 -9 # ppc32: fix MOD_{INC,DEC}_USE_COUNT abuse in 4xx/8xx code # # arch/ppc/8xx_io/cs4218_tdm.c # 2004/05/18 07:48:09-07:00 akpm@osdl.org +1 -12 # ppc32: fix MOD_{INC,DEC}_USE_COUNT abuse in 4xx/8xx code # # arch/ppc/8260_io/uart.c # 2004/05/18 07:48:09-07:00 akpm@osdl.org +2 -8 # ppc32: fix MOD_{INC,DEC}_USE_COUNT abuse in 4xx/8xx code # # arch/ppc/4xx_io/serial_sicc.c # 2004/05/18 07:48:09-07:00 akpm@osdl.org +1 -9 # ppc32: fix MOD_{INC,DEC}_USE_COUNT abuse in 4xx/8xx code # # ChangeSet # 2004/05/18 21:59:45-07:00 akpm@osdl.org # [PATCH] ppc32: update defconfigs # # From: Paul Mackerras # # This patch updates several of the ppc32 defconfigs. # # arch/ppc/defconfig # 2004/05/18 07:48:09-07:00 akpm@osdl.org +394 -299 # ppc32: update defconfigs # # arch/ppc/configs/walnut_defconfig # 2004/05/18 07:48:09-07:00 akpm@osdl.org +30 -46 # ppc32: update defconfigs # # arch/ppc/configs/spruce_defconfig # 2004/05/18 07:48:09-07:00 akpm@osdl.org +41 -48 # ppc32: update defconfigs # # arch/ppc/configs/power3_defconfig # 2004/05/18 07:48:09-07:00 akpm@osdl.org +353 -260 # ppc32: update defconfigs # # arch/ppc/configs/pmac_defconfig # 2004/05/18 07:48:09-07:00 akpm@osdl.org +443 -356 # ppc32: update defconfigs # # arch/ppc/configs/ibmchrp_defconfig # 2004/05/18 07:48:09-07:00 akpm@osdl.org +168 -150 # ppc32: update defconfigs # # arch/ppc/configs/ep405_defconfig # 2004/05/18 07:48:09-07:00 akpm@osdl.org +30 -46 # ppc32: update defconfigs # # arch/ppc/configs/ebony_defconfig # 2004/05/18 07:48:09-07:00 akpm@osdl.org +29 -45 # ppc32: update defconfigs # # arch/ppc/configs/common_defconfig # 2004/05/18 07:48:09-07:00 akpm@osdl.org +389 -298 # ppc32: update defconfigs # # ChangeSet # 2004/05/18 21:59:34-07:00 akpm@osdl.org # [PATCH] ppc32: Handle altivec assist exception properly # # From: Paul Mackerras # # On machines with Altivec (i.e. G4 and G5 processors), the altivec # floating-point instructions can operate in two modes: one where # denormalized inputs or outputs are truncated to zero, and one where they # aren't. In the latter mode the processor can take an exception when it # encounters denormalized floating-point inputs or outputs rather than # dealing with them in hardware. # # This patch adds code to deal properly with the exception, by emulating the # instruction that caused the exception. Previously the kernel just switched # the altivec unit into the truncate-to-zero mode, which works but is a bit # gross. Fortunately there are only a limited set of altivec instructions # which can generate the assist exception, so we don't have to emulate the # whole altivec instruction set. # # This patch also makes sure that we always have a handler for the altivec # unavailable exception. Without this, if you run a kernel that is not # configured for altivec support on a machine with altivec, it works fine # until a user process tries to execute an altivec instruction. At that # point the kernel thinks it has taken an unknown exception and panics. With # this patch it sends a SIGILL to the process instead. # # arch/ppc/kernel/vector.S # 2004/05/18 07:48:08-07:00 akpm@osdl.org +217 -0 # ppc32: Handle altivec assist exception properly # # arch/ppc/kernel/vecemu.c # 2004/05/18 07:48:08-07:00 akpm@osdl.org +346 -0 # ppc32: Handle altivec assist exception properly # # arch/ppc/kernel/vector.S # 2004/05/18 07:48:08-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/kernel/vector.S # # arch/ppc/kernel/vecemu.c # 2004/05/18 07:48:08-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/kernel/vecemu.c # # arch/ppc/kernel/traps.c # 2004/05/18 07:48:08-07:00 akpm@osdl.org +39 -2 # ppc32: Handle altivec assist exception properly # # arch/ppc/kernel/head.S # 2004/05/18 07:48:08-07:00 akpm@osdl.org +8 -5 # ppc32: Handle altivec assist exception properly # # arch/ppc/kernel/Makefile # 2004/05/18 07:48:08-07:00 akpm@osdl.org +1 -0 # ppc32: Handle altivec assist exception properly # # ChangeSet # 2004/05/18 21:59:23-07:00 akpm@osdl.org # [PATCH] ppc32: some whitespace fixes # # From: Paul Mackerras # # This patch does nothing but fix up whitespace in three files in arch/ppc. # It deletes trailing blanks and tabs in several places and joins two lines # that didn't need to be split. # # arch/ppc/syslib/prom_init.c # 2004/05/18 07:48:08-07:00 akpm@osdl.org +1 -2 # ppc32: some whitespace fixes # # arch/ppc/platforms/pmac_setup.c # 2004/05/18 07:48:08-07:00 akpm@osdl.org +8 -8 # ppc32: some whitespace fixes # # arch/ppc/platforms/pmac_pic.c # 2004/05/18 07:48:08-07:00 akpm@osdl.org +3 -3 # ppc32: some whitespace fixes # # ChangeSet # 2004/05/18 21:59:11-07:00 akpm@osdl.org # [PATCH] ppc32: IBM PowerPC 750GX Support # # From: Benjamin Herrenschmidt # # From: Bryan Rittmeyer # # This patch adds preliminary support for the IBM PowerPC 750GX. In summary # this part is a PPC750FX ramped to 1 GHz with a 1MB 4-way L2 and more # advanced I/O pipelining. It is beginning to appear in embedded systems and # was rumored to be under evaluation inside Apple. Tested on PVR 70020101; # please merge. # # http://www-3.ibm.com/chips/techlib/techlib.nsf/products/PowerPC_750GX_Microprocessor # # arch/ppc/kernel/cputable.c # 2004/05/18 07:48:49-07:00 akpm@osdl.org +9 -1 # ppc32: IBM PowerPC 750GX Support # # ChangeSet # 2004/05/18 16:56:06-07:00 greg@kroah.com # Some more misc wait_ms() conversions to use msleep() # # sound/pci/au88x0/au88x0_game.c # 2004/05/18 09:55:43-07:00 greg@kroah.com +2 -1 # Some more misc wait_ms() conversions to use msleep() # # sound/oss/trident.c # 2004/05/18 09:55:43-07:00 greg@kroah.com +1 -1 # Some more misc wait_ms() conversions to use msleep() # # sound/oss/dmasound/dmasound_awacs.c # 2004/05/18 09:55:43-07:00 greg@kroah.com +15 -15 # Some more misc wait_ms() conversions to use msleep() # # sound/oss/dmasound/dmasound.h # 2004/05/18 09:55:43-07:00 greg@kroah.com +0 -6 # Some more misc wait_ms() conversions to use msleep() # # sound/oss/dmasound/dac3550a.c # 2004/05/18 09:55:43-07:00 greg@kroah.com +3 -2 # Some more misc wait_ms() conversions to use msleep() # # drivers/video/aty/radeon_i2c.c # 2004/05/18 09:55:43-07:00 greg@kroah.com +8 -8 # Some more misc wait_ms() conversions to use msleep() # # drivers/video/aty/radeonfb.h # 2004/05/18 09:55:43-07:00 greg@kroah.com +0 -9 # Some more misc wait_ms() conversions to use msleep() # # drivers/video/aty/radeon_base.c # 2004/05/18 09:55:43-07:00 greg@kroah.com +1 -1 # Some more misc wait_ms() conversions to use msleep() # # drivers/net/irda/stir4200.c # 2004/05/18 09:55:43-07:00 greg@kroah.com +3 -2 # Some more misc wait_ms() conversions to use msleep() # # drivers/macintosh/therm_pm72.c # 2004/05/18 09:55:43-07:00 greg@kroah.com +5 -12 # Some more misc wait_ms() conversions to use msleep() # # ChangeSet # 2004/05/18 16:51:33-07:00 greg@kroah.com # Input: remove wait_ms() in place of using msleep() # # include/linux/gameport.h # 2004/05/18 09:51:09-07:00 greg@kroah.com +0 -6 # Input: remove wait_ms() in place of using msleep() # # drivers/input/joystick/gf2k.c # 2004/05/18 09:51:09-07:00 greg@kroah.com +2 -2 # Input: remove wait_ms() in place of using msleep() # # drivers/input/joystick/analog.c # 2004/05/18 09:51:09-07:00 greg@kroah.com +3 -3 # Input: remove wait_ms() in place of using msleep() # # drivers/input/joystick/adi.c # 2004/05/18 09:51:09-07:00 greg@kroah.com +3 -3 # Input: remove wait_ms() in place of using msleep() # # drivers/input/gameport/vortex.c # 2004/05/18 09:51:09-07:00 greg@kroah.com +2 -1 # Input: remove wait_ms() in place of using msleep() # # drivers/input/gameport/ns558.c # 2004/05/18 09:51:09-07:00 greg@kroah.com +3 -2 # Input: remove wait_ms() in place of using msleep() # # ChangeSet # 2004/05/18 16:00:39-07:00 greg@kroah.com # I2C: change i2c_delay() to use msleep() instead. # # include/linux/i2c.h # 2004/05/18 09:00:17-07:00 greg@kroah.com +0 -7 # I2C: change i2c_delay() to use msleep() instead. # # drivers/i2c/chips/w83l785ts.c # 2004/05/18 09:00:17-07:00 greg@kroah.com +2 -1 # I2C: change i2c_delay() to use msleep() instead. # # drivers/i2c/busses/i2c-viapro.c # 2004/05/18 09:00:17-07:00 greg@kroah.com +2 -1 # I2C: change i2c_delay() to use msleep() instead. # # drivers/i2c/busses/i2c-sis96x.c # 2004/05/18 09:00:17-07:00 greg@kroah.com +2 -1 # I2C: change i2c_delay() to use msleep() instead. # # drivers/i2c/busses/i2c-sis630.c # 2004/05/18 09:00:17-07:00 greg@kroah.com +2 -1 # I2C: change i2c_delay() to use msleep() instead. # # drivers/i2c/busses/i2c-sis5595.c # 2004/05/18 09:00:17-07:00 greg@kroah.com +2 -1 # I2C: change i2c_delay() to use msleep() instead. # # drivers/i2c/busses/i2c-piix4.c # 2004/05/18 09:00:17-07:00 greg@kroah.com +2 -1 # I2C: change i2c_delay() to use msleep() instead. # # drivers/i2c/busses/i2c-i801.c # 2004/05/18 09:00:17-07:00 greg@kroah.com +4 -3 # I2C: change i2c_delay() to use msleep() instead. # # drivers/i2c/busses/i2c-amd8111.c # 2004/05/18 09:00:17-07:00 greg@kroah.com +1 -1 # I2C: change i2c_delay() to use msleep() instead. # # drivers/i2c/busses/i2c-amd756.c # 2004/05/18 09:00:17-07:00 greg@kroah.com +4 -3 # I2C: change i2c_delay() to use msleep() instead. # # drivers/i2c/busses/i2c-ali15x3.c # 2004/05/18 09:00:17-07:00 greg@kroah.com +3 -2 # I2C: change i2c_delay() to use msleep() instead. # # drivers/i2c/busses/i2c-ali1563.c # 2004/05/18 09:00:17-07:00 greg@kroah.com +3 -2 # I2C: change i2c_delay() to use msleep() instead. # # drivers/i2c/busses/i2c-ali1535.c # 2004/05/18 09:00:17-07:00 greg@kroah.com +3 -2 # I2C: change i2c_delay() to use msleep() instead. # # ChangeSet # 2004/05/18 16:00:04-07:00 greg@kroah.com # USB: remove wait_ms() from usb.h as it's no longer needed. # # include/linux/usb.h # 2004/05/18 08:59:47-07:00 greg@kroah.com +0 -11 # USB: remove wait_ms() from usb.h as it's no longer needed. # # ChangeSet # 2004/05/18 15:58:57-07:00 greg@kroah.com # USB: remove ehci and ohci's private sleep function and use msleep() instead. # # drivers/usb/host/ohci.h # 2004/05/18 08:58:35-07:00 greg@kroah.com +0 -6 # USB: remove ehci and ohci's private sleep function and use msleep() instead. # # drivers/usb/host/ohci-pci.c # 2004/05/18 08:58:35-07:00 greg@kroah.com +3 -3 # USB: remove ehci and ohci's private sleep function and use msleep() instead. # # drivers/usb/host/ohci-hub.c # 2004/05/18 08:58:35-07:00 greg@kroah.com +2 -2 # USB: remove ehci and ohci's private sleep function and use msleep() instead. # # drivers/usb/host/ohci-hcd.c # 2004/05/18 08:58:35-07:00 greg@kroah.com +2 -2 # USB: remove ehci and ohci's private sleep function and use msleep() instead. # # drivers/usb/host/ehci.h # 2004/05/18 08:58:35-07:00 greg@kroah.com +0 -6 # USB: remove ehci and ohci's private sleep function and use msleep() instead. # # drivers/usb/host/ehci-hcd.c # 2004/05/18 08:58:35-07:00 greg@kroah.com +2 -2 # USB: remove ehci and ohci's private sleep function and use msleep() instead. # # ChangeSet # 2004/05/18 15:57:20-07:00 greg@kroah.com # USB: clean up usages of wait_ms() now that we have msleep() # # drivers/usb/storage/shuttle_usbat.c # 2004/05/18 08:56:54-07:00 greg@kroah.com +7 -7 # USB: clean up usages of wait_ms() now that we have msleep() # # drivers/usb/storage/jumpshot.c # 2004/05/18 08:56:54-07:00 greg@kroah.com +1 -1 # USB: clean up usages of wait_ms() now that we have msleep() # # drivers/usb/storage/isd200.c # 2004/05/18 08:56:54-07:00 greg@kroah.com +2 -2 # USB: clean up usages of wait_ms() now that we have msleep() # # drivers/usb/storage/datafab.c # 2004/05/18 08:56:54-07:00 greg@kroah.com +1 -1 # USB: clean up usages of wait_ms() now that we have msleep() # # drivers/usb/serial/io_ti.c # 2004/05/18 08:56:54-07:00 greg@kroah.com +2 -2 # USB: clean up usages of wait_ms() now that we have msleep() # # drivers/usb/net/usbnet.c # 2004/05/18 08:56:54-07:00 greg@kroah.com +1 -1 # USB: clean up usages of wait_ms() now that we have msleep() # # drivers/usb/misc/usbtest.c # 2004/05/18 08:56:54-07:00 greg@kroah.com +1 -1 # USB: clean up usages of wait_ms() now that we have msleep() # # drivers/usb/input/aiptek.c # 2004/05/18 08:56:54-07:00 greg@kroah.com +1 -1 # USB: clean up usages of wait_ms() now that we have msleep() # # drivers/usb/host/ehci-hub.c # 2004/05/18 08:56:54-07:00 greg@kroah.com +1 -1 # USB: clean up usages of wait_ms() now that we have msleep() # # drivers/usb/host/ehci-hcd.c # 2004/05/18 08:56:54-07:00 greg@kroah.com +1 -1 # USB: clean up usages of wait_ms() now that we have msleep() # # ChangeSet # 2004/05/18 15:56:35-07:00 greg@kroah.com # USB: remove usb_uninterruptible_sleep_ms() now that we have msleep() # # include/linux/usb.h # 2004/05/18 08:56:15-07:00 greg@kroah.com +0 -2 # USB: remove usb_uninterruptible_sleep_ms() now that we have msleep() # # drivers/usb/core/usb.c # 2004/05/18 08:56:15-07:00 greg@kroah.com +0 -11 # USB: remove usb_uninterruptible_sleep_ms() now that we have msleep() # # drivers/usb/core/hub.c # 2004/05/18 08:56:15-07:00 greg@kroah.com +7 -7 # USB: remove usb_uninterruptible_sleep_ms() now that we have msleep() # # ChangeSet # 2004/05/18 15:55:19-07:00 greg@kroah.com # Remove libata's version of msleep() # # drivers/scsi/libata-core.c # 2004/05/18 08:54:57-07:00 greg@kroah.com +0 -17 # Remove libata's version of msleep() # # ChangeSet # 2004/05/18 15:51:44-07:00 greg@kroah.com # Delete block/carmel.c's version of msleep() # # drivers/block/carmel.c # 2004/05/18 08:50:55-07:00 greg@kroah.com +0 -6 # Delete block/carmel.c's version of msleep() # # ChangeSet # 2004/05/18 15:49:36-07:00 greg@kroah.com # Add msleep function to the kernel core to prevent duplication. # # kernel/timer.c # 2004/05/18 08:48:36-07:00 greg@kroah.com +17 -0 # Add msleep function to the kernel core to prevent duplication. # # include/linux/delay.h # 2004/05/18 08:48:36-07:00 greg@kroah.com +2 -0 # Add msleep function to the kernel core to prevent duplication. # # ChangeSet # 2004/05/18 15:03:47-07:00 davem@nuts.davemloft.net # Resolve merge conflicts. # # drivers/pci/pci.ids # 2004/05/18 15:03:35-07:00 davem@nuts.davemloft.net +0 -6 # # # ChangeSet # 2004/05/18 21:39:02+01:00 rmk@flint.arm.linux.org.uk # [ARM] Initialise an uninitialised spinlock. # # arch/arm/kernel/irq.c # 2004/05/18 21:36:58+01:00 rmk@flint.arm.linux.org.uk +1 -1 # Ensure spinlocks are initialised. # # ChangeSet # 2004/05/18 12:49:51-07:00 davem@nuts.davemloft.net # Fix merge conflicts. # # include/linux/pci_ids.h # 2004/05/18 12:46:03-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/05/17 22:55:19-07:00 davem@kernel.bkbits.net # Merge davem@nuts.davemloft.net:/disk1/BK/sparc-2.6 # into kernel.bkbits.net:/home/davem/sparc-2.6 # # scripts/modpost.c # 2004/05/17 22:55:15-07:00 davem@kernel.bkbits.net +0 -1 # Auto merged # # kernel/sched.c # 2004/05/17 22:55:15-07:00 davem@kernel.bkbits.net +0 -0 # Auto merged # # ChangeSet # 2004/05/17 21:12:36-07:00 olof@austin.ibm.com # [PATCH] ppc64: fix non-SMP build break # # arch/ppc64/lib/locks.c was recently added by Paulus' lock rewrite. It's # always compiled, which breaks non-SMP builds. Below patch makes it depend # on CONFIG_SMP. # # arch/ppc64/lib/Makefile # 2004/05/17 15:41:44-07:00 olof@austin.ibm.com +6 -1 # ppc64: fix non-SMP build break # # ChangeSet # 2004/05/17 16:44:49-07:00 greg@kroah.com # merge # # drivers/pci/pci.ids # 2004/05/17 16:44:37-07:00 greg@kroah.com +2 -4 # merge # # include/linux/pci_ids.h # 2004/05/17 16:37:38-07:00 greg@kroah.com +0 -1 # Auto merged # # drivers/pci/hotplug/shpchp_ctrl.c # 2004/05/17 16:37:38-07:00 greg@kroah.com +0 -1 # Auto merged # # arch/i386/pci/irq.c # 2004/05/17 16:37:37-07:00 greg@kroah.com +0 -0 # Auto merged # # CREDITS # 2004/05/17 16:37:37-07:00 greg@kroah.com +0 -0 # Auto merged # # drivers/usb/core/hub.c # 2004/05/17 16:15:43-07:00 oliver@neukum.org +7 -7 # USB: purge wait_ms from core # # ChangeSet # 2004/05/17 16:08:02-07:00 greg@kroah.com # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/shpchprm_nonacpi.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +0 -5 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/shpchprm_legacy.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +0 -5 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/shpchprm_acpi.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +3 -1 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/shpchprm.h # 2004/05/17 09:06:32-07:00 greg@kroah.com +0 -1 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/shpchp_ctrl.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +75 -75 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/shpchp.h # 2004/05/17 09:06:32-07:00 greg@kroah.com +0 -1 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/pciehprm_nonacpi.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +0 -5 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/pciehprm_acpi.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +2 -0 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/pciehprm.h # 2004/05/17 09:06:32-07:00 greg@kroah.com +0 -1 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/pciehp_ctrl.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +75 -75 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/pciehp.h # 2004/05/17 09:06:32-07:00 greg@kroah.com +0 -1 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/ibmphp_res.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +0 -1 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/ibmphp.h # 2004/05/17 09:06:32-07:00 greg@kroah.com +0 -2 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/ibmphp_core.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +1 -1 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/cpcihp_zt5550.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +1 -1 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/cpci_hotplug_pci.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +2 -0 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/cpci_hotplug_core.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +1 -1 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/cpci_hotplug.h # 2004/05/17 09:06:32-07:00 greg@kroah.com +0 -1 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/acpiphp_res.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +5 -3 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/acpiphp_glue.c # 2004/05/17 09:06:32-07:00 greg@kroah.com +45 -46 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # drivers/pci/hotplug/acpiphp.h # 2004/05/17 09:06:32-07:00 greg@kroah.com +0 -3 # PCI Hotplug: clean up a lot of global symbols that do not need to be. # # ChangeSet # 2004/05/17 15:58:40-07:00 greg@kroah.com # USB: fix up formatting issues with aiptek driver # # include/linux/usb.h # 2004/05/17 15:58:26-07:00 oliver@neukum.org +2 -0 # USB: new delay helper safe wrt waitqueues # # drivers/usb/core/usb.c # 2004/05/17 15:58:26-07:00 oliver@neukum.org +11 -0 # USB: new delay helper safe wrt waitqueues # # drivers/usb/input/aiptek.c # 2004/05/17 08:58:04-07:00 greg@kroah.com +292 -465 # USB: fix up formatting issues with aiptek driver # # ChangeSet # 2004/05/17 15:37:07-07:00 greg@kroah.com # USB: fix dumb compile error in aiptek driver # # Doesn't anyone ever actually build the patches they send me... # # drivers/usb/input/aiptek.c # 2004/05/17 08:36:43-07:00 greg@kroah.com +1 -1 # USB: fix dumb compile error in aiptek driver # # Doesn't anyone ever actually build the patches they send me... # # ChangeSet # 2004/05/17 15:35:00-07:00 oliver@neukum.org # [PATCH] USB: purge wait_ms from core # # this makes the core use the new safe waiting helper. # # - remove wait_ms from hub driver # # ChangeSet # 2004/05/17 15:34:21-07:00 oliver@neukum.org # [PATCH] USB: new delay helper safe wrt waitqueues # # this is a new waiting helper safe even if we are left on a waitqueue. # This version addresses Alan's concerns about ifdefs. Please apply. # # - add delay helper that is safe even if we are still on another waitqueue # # ChangeSet # 2004/05/17 15:33:22-07:00 david-b@pacbell.net # [PATCH] USB: ethernet/rndis gadget address params # # This resolves a FIXME by adding module parameters that can # be used to provide stable (vs random) addresses, and gets # rid of a runtime error from obsolete module parameter usage # in the RNDIS code. # # The stable ethernet addresses are nice to hosts, which will # normally want to save them away in config databases. For # example, without stable addresses Windows XP will end up # recording quite a lot of RNDIS devices. # # drivers/usb/gadget/rndis.c # 2004/05/17 04:09:23-07:00 david-b@pacbell.net +2 -1 # USB: ethernet/rndis gadget address params # # drivers/usb/gadget/ether.c # 2004/05/17 04:20:27-07:00 david-b@pacbell.net +46 -13 # USB: ethernet/rndis gadget address params # # ChangeSet # 2004/05/17 15:32:03-07:00 david-b@pacbell.net # [PATCH] USB: RNDIS (and CDC) filter flag handling # # This should fix the problem David Meggy found, where RNDIS was setting # the OID_GEN_CURRENT_PACKET_FILTER state incorrectly. It's the same # issue Andrew Morton noticed a while back, for that matter, but with # more than just a "now compiles on 64 bit" fix. # # Basically the code needs to interpret 32 bits provided in the request # from the (Windows) host, rather than 8 bits of other memory that's got # some irrelevant value. # # The fix is just to save the 32 bits. I did the same thing with the # CDC Ethernet filter, which should eventually be used the same way: to # limit what packets get sent to the host. Also defined a couple more # of the CDC requests. # # drivers/usb/gadget/rndis.h # 2004/05/17 04:43:18-07:00 david-b@pacbell.net +1 -0 # USB: RNDIS (and CDC) filter flag handling # # drivers/usb/gadget/rndis.c # 2004/05/17 04:54:47-07:00 david-b@pacbell.net +13 -44 # USB: RNDIS (and CDC) filter flag handling # # drivers/usb/gadget/ether.c # 2004/05/17 04:57:00-07:00 david-b@pacbell.net +25 -4 # USB: RNDIS (and CDC) filter flag handling # # ChangeSet # 2004/05/17 15:31:31-07:00 bwheadley@earthlink.net # [PATCH] USB: Aiptek.c Driver patch # # drivers/usb/input/hid-core.c # 2004/05/15 12:58:34-07:00 bwheadley@earthlink.net +14 -2 # USB: Aiptek.c Driver patch # # drivers/usb/input/aiptek.c # 2004/05/15 13:01:32-07:00 bwheadley@earthlink.net +2281 -219 # USB: Aiptek.c Driver patch # # ChangeSet # 2004/05/17 22:46:10+01:00 rmk@flint.arm.linux.org.uk # [ARM] Add linux/module.h include for ioremap. # # arch/arm/mm/ioremap.c # 2004/05/17 22:43:31+01:00 rmk@flint.arm.linux.org.uk +1 -0 # Add missing include. # # ChangeSet # 2004/05/17 22:28:23+01:00 rmk@flint.arm.linux.org.uk # [ARM] Update atomic.h # # This re-jigs atomic.h by providing atomic_add_return and # atomic_sub_return as other architectures do. This allows us to # implement the atomic ops that test the new value without having # to write the underlying atomic operation in various forms. # # include/asm-arm/atomic.h # 2004/05/17 22:26:19+01:00 rmk@flint.arm.linux.org.uk +36 -49 # Convert atomic_add_negative to atomic_add_return. # Convert atomic_dec_and_test to atomic_sub_return. # Kill atomic_inc/atomic_dec - implement these in terms of # atomic_add/atomic_sub. # Implement atomic_add_negative, atomic_dec_and_test and # atomic_inc_and_test in terms of atomic_add_return/atomic_sub_return. # # ChangeSet # 2004/05/17 15:15:48-04:00 jgarzik@redhat.com # Merge redhat.com:/spare/repo/netdev-2.6/remove-rcpci # into redhat.com:/spare/repo/net-drivers-2.6 # # drivers/net/Makefile # 2004/05/17 15:15:45-04:00 jgarzik@redhat.com +0 -0 # Auto merged # # drivers/net/Kconfig # 2004/05/17 15:15:45-04:00 jgarzik@redhat.com +0 -0 # Auto merged # # ChangeSet # 2004/05/17 20:02:14+01:00 icampbell@com.rmk.(none) # [ARM] Fix use of page->count # # Patch from: Ian Campbell # # This changes the atomic_t in struct page named count into a private # member _count which breaks arch/arm/mm/init.c at line 80 which reads # page->count directly in show_mem(). # # The comments in the above changeset suggest that page_count(page) is # precisely equal to the old page->count semantics, even though the # semantics of _count are different, so I think the following is correct # # arch/arm/mm/init.c # 2004/05/17 19:58:45+01:00 icampbell@com.rmk.(none) +1 -1 # Fix use of page->count # # ChangeSet # 2004/05/17 11:47:28-07:00 davem@nuts.davemloft.net # Merge # # kernel/sched.c # 2004/05/17 11:47:24-07:00 davem@nuts.davemloft.net +0 -0 # SCCS merged # # ChangeSet # 2004/05/17 11:38:40-07:00 oliver@neukum.org # [PATCH] USB: further fix to mdc800 # # I made a mistake fixing that driver. Here's the fix. Please apply soon. # # - fix race condition leading to busy waiting # # drivers/usb/image/mdc800.c # 2004/05/15 06:14:27-07:00 oliver@neukum.org +17 -16 # USB: further fix to mdc800 # # ChangeSet # 2004/05/17 11:13:32-07:00 david-b@pacbell.net # [PATCH] USB: fix MSEC_TO_JIFFIES in usb code # # Here are some MSEC_TO_JIFFIES() fixes missed by whoever did it, # plus a minor fix to grab root_hub->serialize() during OHCI # suspend. (I forgot to cut/paste those lines from resume.) # # drivers/usb/host/ohci.h # 2004/05/16 04:45:45-07:00 david-b@pacbell.net +2 -4 # USB: fix MSEC_TO_JIFFIES in usb code # # drivers/usb/host/ohci-pci.c # 2004/05/16 04:45:45-07:00 david-b@pacbell.net +2 -1 # USB: fix MSEC_TO_JIFFIES in usb code # # drivers/usb/host/ohci-hub.c # 2004/05/16 04:45:44-07:00 david-b@pacbell.net +2 -2 # USB: fix MSEC_TO_JIFFIES in usb code # # drivers/usb/host/ehci.h # 2004/05/16 04:45:45-07:00 david-b@pacbell.net +2 -4 # USB: fix MSEC_TO_JIFFIES in usb code # # drivers/usb/host/ehci-hub.c # 2004/05/16 04:45:45-07:00 david-b@pacbell.net +5 -5 # USB: fix MSEC_TO_JIFFIES in usb code # # drivers/usb/host/ehci-hcd.c # 2004/05/16 04:45:45-07:00 david-b@pacbell.net +1 -1 # USB: fix MSEC_TO_JIFFIES in usb code # # ChangeSet # 2004/05/17 11:12:22-07:00 david-b@pacbell.net # [PATCH] USB: fix CONFIG_PM build issues # # include/linux/pm.h # 2004/05/16 04:24:38-07:00 david-b@pacbell.net +1 -1 # USB: fix CONFIG_PM build issues # # ChangeSet # 2004/05/17 11:01:17-07:00 arjanv@redhat.com # [PATCH] USB: fix obsolete header usage in usb storage # # drivers/scsi/hosts.h is obsolete, is the prefered header # nowadays. (hosts.h is just a 1 line wrapper to include it for now anyway) # # drivers/usb/storage/usb.h # 2004/05/17 00:43:31-07:00 arjanv@redhat.com +1 -1 # USB: fix obsolete header usage in usb storage # # drivers/usb/storage/scsiglue.h # 2004/05/17 00:43:19-07:00 arjanv@redhat.com +1 -1 # USB: fix obsolete header usage in usb storage # # ChangeSet # 2004/05/17 11:00:46-07:00 zwane@fsmlabs.com # [PATCH] USB: fix usb-serial serial_open oops # # No usb serial devices, just compiled in and the system has a USB controller. # # Unable to handle kernel NULL pointer dereference at virtual address 0000000c # printing eip: # c046a188 # *pde = 00000000 # Oops: 0000 [#1] # PREEMPT SMP DEBUG_PAGEALLOC # Modules linked in: # CPU: 0 # EIP: 0060:[] Not tainted VLI # EFLAGS: 00010246 (2.6.6-mm3) # EIP is at serial_open+0x38/0x170 # eax: 00000000 ebx: dc883000 ecx: c0613db8 edx: 00000000 # esi: 00000001 edi: 00000000 ebp: dc84cef0 esp: dc84cedc # ds: 007b es: 007b ss: 0068 # Process serial (pid: 1073, threadinfo=dc84c000 task=ddffca50) # Stack: 00000000 de8f4f5c ffffffed 00000100 de8f4f5c dc84cf14 c035a874 090115a0 # 0bc00000 dc883000 00000000 de8f4f5c 00000001 df8a2dfc dc84cf40 c0171270 # dc84c000 00000001 00000000 de8f4f5c dbc75e94 00000000 de8f4f5c dbc75e94 # Call Trace: # [] show_stack+0x75/0x90 # [] show_registers+0x11f/0x180 # [] die+0xb6/0x170 # [] do_page_fault+0x1e0/0x525 # [] error_code+0x2d/0x40 # [] tty_open+0x274/0x3b0 # [] chrdev_open+0x160/0x340 # [] dentry_open+0x156/0x230 # [] filp_open+0x4d/0x50 # [] sys_open+0x38/0x70 # [] sysenter_past_esp+0x52/0x79 # # Code: de 63 c0 89 55 f0 c7 45 ec 00 00 00 00 85 f6 0f 85 31 01 00 00 c7 83 # 8c 09 00 00 00 00 00 00 8b 43 08 e8 3c fe ff ff 31 d2 89 c7 <8a> 50 0c 8b # 43 08 29 d0 8b 74 87 18 89 b3 8c 09 00 00 89 5e 04 # # (gdb) list *serial_open+0x38 # 0xc046a188 is in serial_open (drivers/usb/serial/usb-serial.c:465). # 460 # 461 /* get the serial object associated with this tty pointer */ # 462 serial = usb_serial_get_by_index(tty->index); # 463 # 464 /* set up our port structure making the tty driver remember our port object, and us it */ # 465 portNumber = tty->index - serial->minor; # 466 port = serial->port[portNumber]; # 467 tty->driver_data = port; # 468 # 469 port->tty = tty; # # drivers/usb/serial/usb-serial.c # 2004/05/16 17:21:45-07:00 zwane@fsmlabs.com +7 -0 # USB: fix usb-serial serial_open oops # # ChangeSet # 2004/05/17 09:46:52-07:00 greg@kroah.com # USB: fix build error in drivers/usb/serial/console.c # # Thanks to Adrian Bunk for pointing this out. # # drivers/usb/serial/console.c # 2004/05/17 02:46:08-07:00 greg@kroah.com +1 -1 # USB: fix build error in drivers/usb/serial/console.c # # Thanks to Adrian Bunk for pointing this out. # # ChangeSet # 2004/05/17 01:41:56-04:00 jgarzik@redhat.com # [libata] replace ATA_QCFLAG_ATAPI with inline helper # # Detection of an ATAPI taskfile is possible using a simple test # on existing information, so there is no need to cache this value # in a separate flag (ATA_QCFLAG_ATAPI). Instead, create and use # a new helper function is_atapi_taskfile(). # # include/linux/libata.h # 2004/05/17 01:41:51-04:00 jgarzik@redhat.com +0 -1 # [libata] replace ATA_QCFLAG_ATAPI with inline helper # # Detection of an ATAPI taskfile is possible using a simple test # on existing information, so there is no need to cache this value # in a separate flag (ATA_QCFLAG_ATAPI). Instead, create and use # a new helper function is_atapi_taskfile(). # # include/linux/ata.h # 2004/05/17 01:41:51-04:00 jgarzik@redhat.com +6 -0 # [libata] replace ATA_QCFLAG_ATAPI with inline helper # # Detection of an ATAPI taskfile is possible using a simple test # on existing information, so there is no need to cache this value # in a separate flag (ATA_QCFLAG_ATAPI). Instead, create and use # a new helper function is_atapi_taskfile(). # # drivers/scsi/libata-scsi.c # 2004/05/17 01:41:51-04:00 jgarzik@redhat.com +0 -2 # [libata] replace ATA_QCFLAG_ATAPI with inline helper # # Detection of an ATAPI taskfile is possible using a simple test # on existing information, so there is no need to cache this value # in a separate flag (ATA_QCFLAG_ATAPI). Instead, create and use # a new helper function is_atapi_taskfile(). # # drivers/scsi/libata-core.c # 2004/05/17 01:41:51-04:00 jgarzik@redhat.com +1 -1 # [libata] replace ATA_QCFLAG_ATAPI with inline helper # # Detection of an ATAPI taskfile is possible using a simple test # on existing information, so there is no need to cache this value # in a separate flag (ATA_QCFLAG_ATAPI). Instead, create and use # a new helper function is_atapi_taskfile(). # # ChangeSet # 2004/05/17 00:21:15-04:00 jgarzik@redhat.com # [libata] scsi simulator improvements: MODE SENSE, SEEK(6,10), REZERO_UNIT # # * SEEK(6), SEEK(10), and REZERO_UNIT are no-ops. Unconditionally # complete these commands with success. # * MODE SENSE caching page work: # * correct page length # * set bit, if read-ahead is disabled # * set bit, if writeback caching is enabled # (previously, this bit was never set, even if # writeback caching was enabled) # * add MODE SENSE r/w error recovery page # # include/linux/ata.h # 2004/05/17 00:21:10-04:00 jgarzik@redhat.com +1 -0 # [libata] scsi simulator improvements: MODE SENSE, SEEK(6,10), REZERO_UNIT # # * SEEK(6), SEEK(10), and REZERO_UNIT are no-ops. Unconditionally # complete these commands with success. # * MODE SENSE caching page work: # * correct page length # * set bit, if read-ahead is disabled # * set bit, if writeback caching is enabled # (previously, this bit was never set, even if # writeback caching was enabled) # * add MODE SENSE r/w error recovery page # # drivers/scsi/libata-scsi.c # 2004/05/17 00:21:09-04:00 jgarzik@redhat.com +45 -3 # [libata] scsi simulator improvements: MODE SENSE, SEEK(6,10), REZERO_UNIT # # * SEEK(6), SEEK(10), and REZERO_UNIT are no-ops. Unconditionally # complete these commands with success. # * MODE SENSE caching page work: # * correct page length # * set bit, if read-ahead is disabled # * set bit, if writeback caching is enabled # (previously, this bit was never set, even if # writeback caching was enabled) # * add MODE SENSE r/w error recovery page # # ChangeSet # 2004/05/16 22:19:19-04:00 jgarzik@redhat.com # [libata] comments and constants # # * note a nasty problem with shared interrupts that must be fixed # before we turn on certain code paths. # * add a few comments to the READ CAPACITY scsi simulator # * remove a FIXME comment from the TEST UNIT READY scsi simulator # * add constant for ATA command CHECK POWER MODE, and associated # "mandatory" power management feature set bit. # # include/linux/ata.h # 2004/05/16 22:19:14-04:00 jgarzik@redhat.com +2 -0 # [libata] comments and constants # # * note a nasty problem with shared interrupts that must be fixed # before we turn on certain code paths. # * add a few comments to the READ CAPACITY scsi simulator # * remove a FIXME comment from the TEST UNIT READY scsi simulator # * add constant for ATA command CHECK POWER MODE, and associated # "mandatory" power management feature set bit. # # drivers/scsi/libata-scsi.c # 2004/05/16 22:19:13-04:00 jgarzik@redhat.com +6 -2 # [libata] comments and constants # # * note a nasty problem with shared interrupts that must be fixed # before we turn on certain code paths. # * add a few comments to the READ CAPACITY scsi simulator # * remove a FIXME comment from the TEST UNIT READY scsi simulator # * add constant for ATA command CHECK POWER MODE, and associated # "mandatory" power management feature set bit. # # drivers/scsi/libata-core.c # 2004/05/16 22:19:13-04:00 jgarzik@redhat.com +11 -1 # [libata] comments and constants # # * note a nasty problem with shared interrupts that must be fixed # before we turn on certain code paths. # * add a few comments to the READ CAPACITY scsi simulator # * remove a FIXME comment from the TEST UNIT READY scsi simulator # * add constant for ATA command CHECK POWER MODE, and associated # "mandatory" power management feature set bit. # # ChangeSet # 2004/05/16 21:33:18-04:00 jgarzik@redhat.com # [libata] SCSI->ATA simulator hacking: INQUIRY command # # The SCSI T10 committee is working on a document describing a standard # method for translating ATA<->SCSI, since it being done quite often # these days. Some of the recommendations are reasonable, and we implement # two here: # # * Mirror that ATA 'removeable media' bit into INQUIRY output. # * Change behavior of INQUIRY output field 'product revision' from # the libata software version number to the first 4 bytes of the # ATA device's firmware revision number. # # Rather than cache the firmware revision in struct ata_device, as was/is # done with two other strings, I took the opportunity to eliminate the # caching of the two other strings, 'vendor' and 'product'. These strings # are now retrieved as needed from the IDENTIFY [PACKET] DEVICE info page, # since we cache its entire contents. # # Retrieving a string from the identify-device page is done via the # helper function ata_dev_id_string(), which is now exported. # # This patch winds up making struct ata_device 40 bytes smaller, and # the libata core gets a bit smaller as well. # # include/linux/libata.h # 2004/05/16 21:33:12-04:00 jgarzik@redhat.com +2 -6 # [libata] SCSI->ATA simulator hacking: INQUIRY command # # The SCSI T10 committee is working on a document describing a standard # method for translating ATA<->SCSI, since it being done quite often # these days. Some of the recommendations are reasonable, and we implement # two here: # # * Mirror that ATA 'removeable media' bit into INQUIRY output. # * Change behavior of INQUIRY output field 'product revision' from # the libata software version number to the first 4 bytes of the # ATA device's firmware revision number. # # Rather than cache the firmware revision in struct ata_device, as was/is # done with two other strings, I took the opportunity to eliminate the # caching of the two other strings, 'vendor' and 'product'. These strings # are now retrieved as needed from the IDENTIFY [PACKET] DEVICE info page, # since we cache its entire contents. # # Retrieving a string from the identify-device page is done via the # helper function ata_dev_id_string(), which is now exported. # # This patch winds up making struct ata_device 40 bytes smaller, and # the libata core gets a bit smaller as well. # # include/linux/ata.h # 2004/05/16 21:33:12-04:00 jgarzik@redhat.com +2 -0 # [libata] SCSI->ATA simulator hacking: INQUIRY command # # The SCSI T10 committee is working on a document describing a standard # method for translating ATA<->SCSI, since it being done quite often # these days. Some of the recommendations are reasonable, and we implement # two here: # # * Mirror that ATA 'removeable media' bit into INQUIRY output. # * Change behavior of INQUIRY output field 'product revision' from # the libata software version number to the first 4 bytes of the # ATA device's firmware revision number. # # Rather than cache the firmware revision in struct ata_device, as was/is # done with two other strings, I took the opportunity to eliminate the # caching of the two other strings, 'vendor' and 'product'. These strings # are now retrieved as needed from the IDENTIFY [PACKET] DEVICE info page, # since we cache its entire contents. # # Retrieving a string from the identify-device page is done via the # helper function ata_dev_id_string(), which is now exported. # # This patch winds up making struct ata_device 40 bytes smaller, and # the libata core gets a bit smaller as well. # # drivers/scsi/sata_sil.c # 2004/05/16 21:33:12-04:00 jgarzik@redhat.com +8 -2 # [libata] SCSI->ATA simulator hacking: INQUIRY command # # The SCSI T10 committee is working on a document describing a standard # method for translating ATA<->SCSI, since it being done quite often # these days. Some of the recommendations are reasonable, and we implement # two here: # # * Mirror that ATA 'removeable media' bit into INQUIRY output. # * Change behavior of INQUIRY output field 'product revision' from # the libata software version number to the first 4 bytes of the # ATA device's firmware revision number. # # Rather than cache the firmware revision in struct ata_device, as was/is # done with two other strings, I took the opportunity to eliminate the # caching of the two other strings, 'vendor' and 'product'. These strings # are now retrieved as needed from the IDENTIFY [PACKET] DEVICE info page, # since we cache its entire contents. # # Retrieving a string from the identify-device page is done via the # helper function ata_dev_id_string(), which is now exported. # # This patch winds up making struct ata_device 40 bytes smaller, and # the libata core gets a bit smaller as well. # # drivers/scsi/libata.h # 2004/05/16 21:33:12-04:00 jgarzik@redhat.com +0 -2 # [libata] SCSI->ATA simulator hacking: INQUIRY command # # The SCSI T10 committee is working on a document describing a standard # method for translating ATA<->SCSI, since it being done quite often # these days. Some of the recommendations are reasonable, and we implement # two here: # # * Mirror that ATA 'removeable media' bit into INQUIRY output. # * Change behavior of INQUIRY output field 'product revision' from # the libata software version number to the first 4 bytes of the # ATA device's firmware revision number. # # Rather than cache the firmware revision in struct ata_device, as was/is # done with two other strings, I took the opportunity to eliminate the # caching of the two other strings, 'vendor' and 'product'. These strings # are now retrieved as needed from the IDENTIFY [PACKET] DEVICE info page, # since we cache its entire contents. # # Retrieving a string from the identify-device page is done via the # helper function ata_dev_id_string(), which is now exported. # # This patch winds up making struct ata_device 40 bytes smaller, and # the libata core gets a bit smaller as well. # # drivers/scsi/libata-scsi.c # 2004/05/16 21:33:12-04:00 jgarzik@redhat.com +12 -4 # [libata] SCSI->ATA simulator hacking: INQUIRY command # # The SCSI T10 committee is working on a document describing a standard # method for translating ATA<->SCSI, since it being done quite often # these days. Some of the recommendations are reasonable, and we implement # two here: # # * Mirror that ATA 'removeable media' bit into INQUIRY output. # * Change behavior of INQUIRY output field 'product revision' from # the libata software version number to the first 4 bytes of the # ATA device's firmware revision number. # # Rather than cache the firmware revision in struct ata_device, as was/is # done with two other strings, I took the opportunity to eliminate the # caching of the two other strings, 'vendor' and 'product'. These strings # are now retrieved as needed from the IDENTIFY [PACKET] DEVICE info page, # since we cache its entire contents. # # Retrieving a string from the identify-device page is done via the # helper function ata_dev_id_string(), which is now exported. # # This patch winds up making struct ata_device 40 bytes smaller, and # the libata core gets a bit smaller as well. # # drivers/scsi/libata-core.c # 2004/05/16 21:33:12-04:00 jgarzik@redhat.com +2 -26 # [libata] SCSI->ATA simulator hacking: INQUIRY command # # The SCSI T10 committee is working on a document describing a standard # method for translating ATA<->SCSI, since it being done quite often # these days. Some of the recommendations are reasonable, and we implement # two here: # # * Mirror that ATA 'removeable media' bit into INQUIRY output. # * Change behavior of INQUIRY output field 'product revision' from # the libata software version number to the first 4 bytes of the # ATA device's firmware revision number. # # Rather than cache the firmware revision in struct ata_device, as was/is # done with two other strings, I took the opportunity to eliminate the # caching of the two other strings, 'vendor' and 'product'. These strings # are now retrieved as needed from the IDENTIFY [PACKET] DEVICE info page, # since we cache its entire contents. # # Retrieving a string from the identify-device page is done via the # helper function ata_dev_id_string(), which is now exported. # # This patch winds up making struct ata_device 40 bytes smaller, and # the libata core gets a bit smaller as well. # # ChangeSet # 2004/05/16 18:48:08-04:00 jgarzik@redhat.com # [libata] remove redundant use of ATA_QCFLAG_SG in ATAPI packet translation # # ata_scsi_translate() sets this flag for all ATA->SCSI translated # commands, so it need not be done in atapi_xlat(). The now-removed # use in atapi_xlat() was also inconsistent WRT PIO versus DMA. # # drivers/scsi/libata-scsi.c # 2004/05/16 18:48:03-04:00 jgarzik@redhat.com +0 -1 # [libata] remove redundant use of ATA_QCFLAG_SG in ATAPI packet translation # # ata_scsi_translate() sets this flag for all ATA->SCSI translated # commands, so it need not be done in atapi_xlat(). The now-removed # use in atapi_xlat() was also inconsistent WRT PIO versus DMA. # # ChangeSet # 2004/05/16 18:35:15-04:00 jgarzik@redhat.com # [libata] DMADIR support # # DMADIR bit is necessary for some PATA->SATA bridges. These # bridges require the OS driver to specify the data xfer direction, # for PACKET (a.k.a. scsi) commands. # # A reliable DMADIR detection method hasn't yet been developed, # and ATAPI is still a WIP, so DMADIR is enabled with an ifdef for # now. # # include/linux/libata.h # 2004/05/16 18:35:09-04:00 jgarzik@redhat.com +1 -0 # [libata] DMADIR support # # DMADIR bit is necessary for some PATA->SATA bridges. These # bridges require the OS driver to specify the data xfer direction, # for PACKET (a.k.a. scsi) commands. # # A reliable DMADIR detection method hasn't yet been developed, # and ATAPI is still a WIP, so DMADIR is enabled with an ifdef for # now. # # include/linux/ata.h # 2004/05/16 18:35:09-04:00 jgarzik@redhat.com +2 -0 # [libata] DMADIR support # # DMADIR bit is necessary for some PATA->SATA bridges. These # bridges require the OS driver to specify the data xfer direction, # for PACKET (a.k.a. scsi) commands. # # A reliable DMADIR detection method hasn't yet been developed, # and ATAPI is still a WIP, so DMADIR is enabled with an ifdef for # now. # # drivers/scsi/libata-scsi.c # 2004/05/16 18:35:09-04:00 jgarzik@redhat.com +6 -0 # [libata] DMADIR support # # DMADIR bit is necessary for some PATA->SATA bridges. These # bridges require the OS driver to specify the data xfer direction, # for PACKET (a.k.a. scsi) commands. # # A reliable DMADIR detection method hasn't yet been developed, # and ATAPI is still a WIP, so DMADIR is enabled with an ifdef for # now. # # ChangeSet # 2004/05/16 08:55:56-07:00 akpm@osdl.org # [PATCH] Fixed quota recursion fix # # This fixes the gfp_mask setting on the quota inode. # # fs/dquot.c # 2004/05/16 00:02:53-07:00 akpm@osdl.org +10 -1 # Fixed quota recursion fix # # ChangeSet # 2004/05/16 09:52:33-04:00 corbet@lwn.net # Remove drivers/net/auto_irq.c. # # No more users of the autoirq_xxx() API existed, so this file is not # only unused, it isn't even listed in any makefiles. # # BitKeeper/deleted/.del-auto_irq.c~1d78b6cdf22e5be0 # 2004/05/16 09:50:35-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/auto_irq.c # # ChangeSet # 2004/05/16 14:37:30+01:00 rmk@flint.arm.linux.org.uk # [ARM] Convert execve() to be a function rather than a SWI call. # # This eliminates the last SWI user from the kernel - now all SWI calls # will only come from userspace. More importantly, this also allows us # to empty the kernel stack when starting userspace programs from # kernelspace, thereby ensuring that the user registers always appear # at the top of the kernel stack. # # include/asm-arm/unistd.h # 2004/05/16 14:35:29+01:00 rmk@flint.arm.linux.org.uk +2 -6 # execve() no longer uses a SWI call, and is a kernel function. # # arch/arm/kernel/sys_arm.c # 2004/05/16 14:35:29+01:00 rmk@flint.arm.linux.org.uk +41 -0 # Implement execve() for kernel space without using a SWI call. # # ChangeSet # 2004/05/16 14:12:49+01:00 rmk@flint.arm.linux.org.uk # [ARM] Move a bunch of symbol exports from armksyms.c # # This moves a bunch of EXPORT_SYMBOL() statements from armksyms.c # into the file which defines the function/variable such that the # exports are localised. # # This also means we can get rid of the ugly __xxx_to_xxx__is_a_macro # in include/asm-arm/arch-*/memory.h # # include/asm-arm/arch-versatile/memory.h # 2004/05/16 14:10:46+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-tbox/memory.h # 2004/05/16 14:10:46+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-shark/memory.h # 2004/05/16 14:10:46+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-sa1100/memory.h # 2004/05/16 14:10:46+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-s3c2410/memory.h # 2004/05/16 14:10:45+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-rpc/memory.h # 2004/05/16 14:10:45+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-pxa/memory.h # 2004/05/16 14:10:45+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-omap/memory.h # 2004/05/16 14:10:45+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-nexuspci/memory.h # 2004/05/16 14:10:45+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-lh7a40x/memory.h # 2004/05/16 14:10:45+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-l7200/memory.h # 2004/05/16 14:10:45+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-ixp4xx/memory.h # 2004/05/16 14:10:45+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-iop3xx/memory.h # 2004/05/16 14:10:44+01:00 rmk@flint.arm.linux.org.uk +0 -5 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-integrator/memory.h # 2004/05/16 14:10:44+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-epxa10db/memory.h # 2004/05/16 14:10:44+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-ebsa285/memory.h # 2004/05/16 14:10:44+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-ebsa110/memory.h # 2004/05/16 14:10:44+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-clps711x/memory.h # 2004/05/16 14:10:44+01:00 rmk@flint.arm.linux.org.uk +0 -8 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-cl7500/memory.h # 2004/05/16 14:10:44+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # include/asm-arm/arch-adifcc/memory.h # 2004/05/16 14:10:43+01:00 rmk@flint.arm.linux.org.uk +0 -4 # Remove __xxx_to_xxx__is_a_macro. # # arch/arm/mm/ioremap.c # 2004/05/16 14:10:43+01:00 rmk@flint.arm.linux.org.uk +2 -0 # Move exports for __ioremap, __iounmap from armksyms.c # # arch/arm/mach-footbridge/mm.c # 2004/05/16 14:10:43+01:00 rmk@flint.arm.linux.org.uk +2 -0 # Move exports for __virt_to_bus, __bus_to_virt from armksyms.c # # arch/arm/kernel/traps.c # 2004/05/16 14:10:43+01:00 rmk@flint.arm.linux.org.uk +5 -0 # Move exports for __bad_xchg, __bug, __readwrite_bug, __div0, abort # from armksyms.c # # arch/arm/kernel/setup.c # 2004/05/16 14:10:43+01:00 rmk@flint.arm.linux.org.uk +14 -0 # Move exports for __machine_arch_type, system_rev, system_serial_low, # system_serial_high, elf_hwcap, elf_platform from armksyms.c # # arch/arm/kernel/semaphore.c # 2004/05/16 14:10:42+01:00 rmk@flint.arm.linux.org.uk +5 -0 # Move exports for __down_failed, __down_interruptible_failed, # __down_trylock_failed and __up_wakeup from armksyms.c # # arch/arm/kernel/process.c # 2004/05/16 14:10:42+01:00 rmk@flint.arm.linux.org.uk +12 -2 # Move exports for pm_idle, pm_power_off, fp_init, dump_fpu, # dump_thread, kernel_thread and get_wchan from armksyms.c # # Ensure that kernel_thread_helper is placed in the correct section. # # arch/arm/kernel/irq.c # 2004/05/16 14:10:42+01:00 rmk@flint.arm.linux.org.uk +6 -0 # Move exports for disable_irq, enable_irq, enable_irq_wake, # disable_irq_wake, set_irq_type and probe_irq_mask from armksyms.c # # arch/arm/kernel/armksyms.c # 2004/05/16 14:10:42+01:00 rmk@flint.arm.linux.org.uk +1 -80 # Move symbol exports for C functions/variables into relevant files. # Remove a bunch of unnecessary includes. # # ChangeSet # 2004/05/16 12:08:21+01:00 rmk@flint.arm.linux.org.uk # [SERIAL] Remove base_baud default from 8250_pci # # Since all boards specify base_baud, the code to default base_baud to # the architecture-defined BASE_BAUD is redundant. Also, defaulting # to the architecture-defined BASE_BAUD is wrong since the UARTs on a # serial PCI card will be clocked at the same rate no matter what the # architecture of the host machine. # # drivers/serial/8250_pci.c # 2004/05/16 12:06:18+01:00 rmk@flint.arm.linux.org.uk +2 -8 # Remove include # Remove base_baud default - all boards specify base_baud # # ChangeSet # 2004/05/15 17:29:10-07:00 rth@twiddle.net # [PATCH] alpha: fix GP-load symbol linkage # # From: Ivan Kokshaysky # # This skips the GP-loading function prologue (two instructions: 8 bytes) # on BRSGP linkage correctly, fixing an oops on alpha while loading the # aic7xxx driver. # # include/asm-alpha/elf.h # 2004/05/15 14:07:18-07:00 rth@twiddle.net +5 -0 # alpha: fix GP-load symbol linkage # # arch/alpha/kernel/module.c # 2004/05/15 14:05:57-07:00 rth@twiddle.net +4 -0 # alpha: fix GP-load symbol linkage # # ChangeSet # 2004/05/15 17:11:18-07:00 torvalds@evo.osdl.org # We need to use "memset_io()" when accessing PCI # mapped memory. # # A regular "memset()" may be using cache control # instructions etc, which is not appropriate for # memory-mapped IO. # # This also fixes a warning. # # drivers/video/aty/radeon_base.c # 2004/05/15 17:09:02-07:00 torvalds@evo.osdl.org +1 -1 # We need to use "memset_io()" when accessing PCI # mapped memory. # # A regular "memset()" may be using cache control # instructions etc, which is not appropriate for # memory-mapped IO. # # This also fixes a warning. # # ChangeSet # 2004/05/15 16:31:31-07:00 torvalds@ppc970.osdl.org # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # include/linux/pci_ids.h # 2004/05/15 16:31:28-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # include/asm-arm/arch-pxa/pxa-regs.h # 2004/05/15 16:31:28-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/video/fbmem.c # 2004/05/15 16:31:28-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/video/Makefile # 2004/05/15 16:31:28-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/video/Kconfig # 2004/05/15 16:31:27-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/05/15 16:20:21-07:00 jack@ucw.cz # [PATCH] Quota fix 2 # # This fixes the problem with recursion into filesystem when inode of # quota file needs a page + some other allocation problems. I hope I got # the GFP mask setting right.. # # fs/quota_v2.c # 2004/05/14 06:14:28-07:00 jack@ucw.cz +1 -1 # Quota fix 2 # # fs/dquot.c # 2004/05/14 06:19:38-07:00 jack@ucw.cz +6 -2 # Quota fix 2 # # ChangeSet # 2004/05/15 18:45:33-04:00 jgarzik@redhat.com # Merge redhat.com:/spare/repo/b44-2.6.5 # into redhat.com:/spare/repo/net-drivers-2.6 # # drivers/net/b44.c # 2004/05/15 18:45:30-04:00 jgarzik@redhat.com +0 -0 # Auto merged # # ChangeSet # 2004/05/15 18:28:24-04:00 pp@ee.oulu.fi # [netdrvr b44] better reset behavior # # This patch makes the b44-after-bcm4400 scenario work for # me. What was happening is that the broadcom driver sets a "power off MAC" # bit, and we didn't remove that when initializing the chip. # Also added some (a bit ugly, I know ) logic to clear up the address # filter stuff, which is what recent broadcom drivers do... # # drivers/net/b44.c # 2004/05/15 18:26:57-04:00 pp@ee.oulu.fi +12 -5 # [netdrvr b44] better reset behavior # # This patch makes the b44-after-bcm4400 scenario work for # me. What was happening is that the broadcom driver sets a "power off MAC" # bit, and we didn't remove that when initializing the chip. # Also added some (a bit ugly, I know ) logic to clear up the address # filter stuff, which is what recent broadcom drivers do... # # ChangeSet # 2004/05/15 18:07:32-04:00 jgarzik@redhat.com # [libata] handle non-data ATAPI commands via interrupt # # It's easier to do it this way, than polling, at the moment. # # Also, fix a test in ata_scsi_translate that was incorrectly # erroring-out non-data commands. # # drivers/scsi/libata-scsi.c # 2004/05/15 18:07:27-04:00 jgarzik@redhat.com +19 -12 # [libata] handle non-data ATAPI commands via interrupt # # It's easier to do it this way, than polling, at the moment. # # Also, fix a test in ata_scsi_translate that was incorrectly # erroring-out non-data commands. # # drivers/scsi/libata-core.c # 2004/05/15 18:07:27-04:00 jgarzik@redhat.com +10 -2 # [libata] handle non-data ATAPI commands via interrupt # # It's easier to do it this way, than polling, at the moment. # # Also, fix a test in ata_scsi_translate that was incorrectly # erroring-out non-data commands. # # ChangeSet # 2004/05/15 14:36:08-04:00 jgarzik@redhat.com # [libata] minor stuff # # * now that ATAPI is close to working, making ATAPI DMA interrupts # in ata_host_intr # * remove unnecessary space character in printk() output (oh, the horror) # # drivers/scsi/libata-core.c # 2004/05/15 14:36:03-04:00 jgarzik@redhat.com +2 -1 # [libata] minor stuff # # * now that ATAPI is close to working, making ATAPI DMA interrupts # in ata_host_intr # * remove unnecessary space character in printk() output (oh, the horror) # # ChangeSet # 2004/05/15 11:13:22-07:00 torvalds@ppc970.osdl.org # Fix gidsetsize == 0 for real this time. # # We need to always allocate at least one indirect block # pointer, since we always fill out blocks[0] even if # we don't have any groups. # # kernel/sys.c # 2004/05/15 11:13:16-07:00 torvalds@ppc970.osdl.org +3 -2 # Fix gidsetsize == 0 for real this time. # # We need to always allocate at least one indirect block # pointer, since we always fill out blocks[0] even if # we don't have any groups. # # ChangeSet # 2004/05/15 11:08:29-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] remove bogus drivers/ide/pci/cmd640.h # # Trivia. # # CMD640 driver doesn't use generic IDE PCI code (it doesn't even include # this header). # # BitKeeper/deleted/.del-cmd640.h~2fe49fb5c5f79721 # 2004/05/15 11:08:24-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +0 -0 # Delete: drivers/ide/pci/cmd640.h # # ChangeSet # 2004/05/15 11:01:48-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide-disk.c: more write cache fixes # # - many Maxtor disks incorrectly claim CACHE FLUSH EXT command support, # fix it by checking both CACHE FLUSH EXT command and LBA48 support # (thanks to Eric D. Mudama for help in fixing this) # # - write_cache() was called with 'drive->id->cfs_enable_2 & 0x3000' as 'int arg' # argument which was always truncated to zero due to 'u8 drive->wcache = arg' # assignment so write cache was indeed enabled but drive->wcache was zero # (thanks to Rene Herman for help in debugging this) # # - flush cache in idedisk_start_power_step() only if ATA-6 CACHE FLUSH (EXT) # bits are present in disk's identify data (prevents sending unknown commands) # # - set drive->wcache in idedisk_setup() not idedisk_attach() (no need to check # id->command_set_2 - we check id->cfs_enable_2 instead in write_cache() call) # # - use ide_cacheflush_p() in idedisk_setup() # # - minor cleanups # # drivers/ide/ide-disk.c # 2004/05/13 11:30:35-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +27 -43 # ide-disk.c: more write cache fixes # # ChangeSet # 2004/05/15 10:41:14-07:00 ak@muc.de # [PATCH] Handle empty nodes in sysfs on x86-64 # # This code is shared between i386 and x86-64, and x86-64 needs to check # for empty nodes here. Otherwise you can get oopses at boot in some # circumstances. # # This handles empty nodes != 0; empty node zero are still broken in other # ways. # # include/asm-i386/cpu.h # 2004/05/15 06:32:28-07:00 ak@muc.de +5 -1 # Handle empty nodes in sysfs on x86-64 # # ChangeSet # 2004/05/15 10:41:03-07:00 ak@muc.de # [PATCH] x86-64: fix /dev/mem caching behaviour # # This changes the /dev/mem caching behaviour on x86-64 to be compatible # with i386. # # By default everything is set cached. # # This actually makes WC MTRRs on AMD systems work, which would get # overriden by the UC PAT bits that were set earlier. This can make DVD # decoding with hardware support a lot faster. # # It also supports O_SYNC now, like i386, although that is not really # safe, because it allows the user to create undefined cache attribute # conflicts that can corrupt caches in some circumstances. I kept it for # now. Better would to disallow it, until Terrence Ripperda's PAT # framework is getting merged, that can avoid these problems. # # Actually it would be probably a good idea to add a printk here to catch # broken programs for i386 and x86-64, but that is for another patch. # # drivers/char/mem.c # 2004/05/15 06:32:28-07:00 ak@muc.de +13 -0 # x86-64: fix /dev/mem caching behaviour # # ChangeSet # 2004/05/15 10:40:53-07:00 ak@muc.de # [PATCH] x86-64 updates # # Various accumulated x86-64 patches and bug fixes. # # It fixes one nasty bug that has been there since NX is used by # default in the kernel. With heavy AGP memory allocation it would # set NX on parts of the kernel mapping in some corner cases, which gave # endless crash loops. Thanks goes to some wizards in AMD debug labs # for getting a trace out of this. # # Also various other fixes. This patches only changes x86-64 specific # files, i have some changes outside too that I am sending separately. # # - Fix help test for CONFIG_NUMA # - Don't enable SMT nice on CMP # - Move HT and MWAIT checks up to generic code # - Update defconfig # - Remove duplicated includes (Arthur Othieno) # - Set up GSI entry for ACPI SCI correctly (from i386) # - Fix some comments # - Fix threadinfo printing in oopses # - Set task alignment to 16 bytes # - Handle NX bit for code pages correctly in change_page_attr() # - Use generic nops for non amd specific kernel # - Add __KERNEL__ checks in unistd.h (David Lee) # # include/asm-x86_64/unistd.h # 2004/05/15 06:32:28-07:00 ak@muc.de +1 -1 # x86-64 updates # # include/asm-x86_64/processor.h # 2004/05/15 06:32:28-07:00 ak@muc.de +24 -4 # x86-64 updates # # arch/x86_64/mm/pageattr.c # 2004/05/15 06:41:06-07:00 ak@muc.de +22 -15 # x86-64 updates # # arch/x86_64/kernel/traps.c # 2004/05/15 06:32:27-07:00 ak@muc.de +2 -2 # x86-64 updates # # arch/x86_64/kernel/setup.c # 2004/05/15 06:32:27-07:00 ak@muc.de +7 -5 # x86-64 updates # # arch/x86_64/kernel/reboot.c # 2004/05/15 06:32:27-07:00 ak@muc.de +2 -2 # x86-64 updates # # arch/x86_64/kernel/pci-gart.c # 2004/05/15 06:32:27-07:00 ak@muc.de +0 -1 # x86-64 updates # # arch/x86_64/kernel/mpparse.c # 2004/05/15 06:32:27-07:00 ak@muc.de +4 -1 # x86-64 updates # # arch/x86_64/kernel/domain.c # 2004/05/15 06:40:13-07:00 ak@muc.de +4 -0 # x86-64 updates # # arch/x86_64/ia32/ptrace32.c # 2004/05/15 06:32:26-07:00 ak@muc.de +1 -2 # x86-64 updates # # arch/x86_64/defconfig # 2004/05/15 06:33:33-07:00 ak@muc.de +137 -40 # x86-64 updates # # arch/x86_64/Kconfig # 2004/05/15 06:32:23-07:00 ak@muc.de +3 -4 # x86-64 updates # # ChangeSet # 2004/05/15 10:38:09-07:00 torvalds@ppc970.osdl.org # Fix bogus debug code in usb/misc/cytherm.c # # Uncovered by recent cleanup of "dev_dbg()". # # drivers/usb/misc/cytherm.c # 2004/05/15 10:38:03-07:00 torvalds@ppc970.osdl.org +9 -9 # Fix bogus debug code in usb/misc/cytherm.c # # Uncovered by recent cleanup of "dev_dbg()". # # ChangeSet # 2004/05/15 10:27:04-07:00 akpm@osdl.org # [PATCH] i2o_config build fix # # Stomp a C99ism. # # drivers/message/i2o/i2o_config.c # 2004/05/14 23:21:40-07:00 akpm@osdl.org +3 -1 # i2o_config build fix # # ChangeSet # 2004/05/15 10:26:53-07:00 akpm@osdl.org # [PATCH] Fix botched fbdev lvalue conversion # # drivers/video/riva/fbdev.c # 2004/05/15 10:26:48-07:00 akpm@osdl.org +6 -6 # Fix botched fbdev lvalue conversion # # ChangeSet # 2004/05/15 10:26:42-07:00 akpm@osdl.org # [PATCH] typhoon locking fix # # Initialise the semaphore even if !MODULE # # drivers/media/radio/radio-typhoon.c # 2004/05/15 10:26:37-07:00 akpm@osdl.org +1 -1 # typhoon locking fix # # ChangeSet # 2004/05/15 10:26:32-07:00 akpm@osdl.org # [PATCH] radeonfb stack space fix # # These (unused) arrays are causing huge stack utilisation when instantiated in # an auto variable. Remove them for now. # # drivers/video/aty/radeonfb.h # 2004/05/15 10:26:26-07:00 akpm@osdl.org +0 -2 # radeonfb stack space fix # # ChangeSet # 2004/05/15 10:26:21-07:00 akpm@osdl.org # [PATCH] bootmem.c cleanup # # From: Michael Buesch # # - BUG_ON() conversion # # - Remove redundant dump_stack() (BUG already does that) # # mm/bootmem.c # 2004/05/14 23:11:59-07:00 akpm@osdl.org +9 -14 # bootmem.c cleanup # # ChangeSet # 2004/05/15 10:26:11-07:00 akpm@osdl.org # [PATCH] groups_alloc(0) clobbers memory past end of block # # From: Olaf Kirch # # Authentication code in net/sunrpc makes frequent use of groups_alloc(0), # which seems to clobber memory past the end of what it allocated. # # If called with gidsetsize == 0, groups_alloc will set nblocks = 0, # but still does a # # group_info->blocks[0] = group_info->small_block; # # kernel/sys.c # 2004/05/14 23:11:59-07:00 akpm@osdl.org +1 -2 # groups_alloc(0) clobbers memory past end of block # # ChangeSet # 2004/05/15 10:26:00-07:00 akpm@osdl.org # [PATCH] ac97_plugin_ad1980 porting fix # # From: "Uwe Bugla" # # Fix up a mistake in the 2.4->2.6 forward-port of this driver. # # sound/oss/ac97_plugin_ad1980.c # 2004/05/14 23:11:59-07:00 akpm@osdl.org +1 -1 # ac97_plugin_ad1980 porting fix # # ChangeSet # 2004/05/15 10:25:50-07:00 akpm@osdl.org # [PATCH] Increase xfsbufd_centisecs when in laptop mode # # From: Bart Samwel # # The attached patch is the outcome of a discussion with Nathan. # # When laptop mode is active, there is no need for XFS to wake up xfsbufd (the # daemon that flushes buffers that are too old) too often. The default is once # every second, this patch makes laptop mode do it once every 30 seconds. # # Documentation/laptop-mode.txt # 2004/05/14 23:11:59-07:00 akpm@osdl.org +3 -0 # Increase xfsbufd_centisecs when in laptop mode # # ChangeSet # 2004/05/15 10:25:39-07:00 akpm@osdl.org # [PATCH] Laptop mode control script support for XFS *_centisecs sysctl values. # # From: Bart Samwel # # XFS now uses # /proc/sys/fs/xfs/xfssyncd_centisecs # /proc/sys/fs/xfs/xfsbufd_centisecs # /proc/sys/fs/xfs/age_buffer_centisecs # # Here's a patch to support these values in the laptop mode control script. # # Documentation/laptop-mode.txt # 2004/05/14 23:29:18-07:00 akpm@osdl.org +14 -1 # Laptop mode control script support for XFS *_centisecs sysctl values. # # ChangeSet # 2004/05/15 10:25:29-07:00 akpm@osdl.org # [PATCH] remove unused acpi_irq_to_vector() # # From: Bjorn Helgaas # # Now that everybody has acpi_gsi_to_irq(), we can nuke the deprecated # acpi_irq_to_vector(). No references remain. # # include/asm-ia64/acpi.h # 2004/05/14 23:11:59-07:00 akpm@osdl.org +0 -1 # remove unused acpi_irq_to_vector() # # include/asm-i386/acpi.h # 2004/05/14 23:11:59-07:00 akpm@osdl.org +0 -1 # remove unused acpi_irq_to_vector() # # arch/ia64/kernel/acpi.c # 2004/05/14 23:11:59-07:00 akpm@osdl.org +0 -10 # remove unused acpi_irq_to_vector() # # arch/i386/kernel/acpi/boot.c # 2004/05/14 23:11:59-07:00 akpm@osdl.org +0 -10 # remove unused acpi_irq_to_vector() # # ChangeSet # 2004/05/15 10:25:17-07:00 akpm@osdl.org # [PATCH] floppy.c: better/cleaner use of debugt # # From: "Randy.Dunlap" # # From: "Luiz Fernando N. Capitulino" # # floppy_debugt.patch: better use of the debugt functions. # # drivers/block/floppy.c # 2004/05/14 23:11:58-07:00 akpm@osdl.org +8 -30 # floppy.c: better/cleaner use of debugt # # ChangeSet # 2004/05/15 10:25:08-07:00 akpm@osdl.org # [PATCH] floppy.c: better floppy_init error handling # # From: "Randy.Dunlap" # # From: "Luiz Fernando N. Capitulino" # # Adds a better audit for floppy_init(). Fixes one real bug (in calling # blk_queue_max_sectors()). # # drivers/block/floppy.c # 2004/05/14 23:29:19-07:00 akpm@osdl.org +54 -38 # floppy.c: better floppy_init error handling # # ChangeSet # 2004/05/15 10:24:57-07:00 akpm@osdl.org # [PATCH] Export `laptop_mode' for XFS # # From: # # XFS needs `laptop_mode'. # # mm/page-writeback.c # 2004/05/14 23:11:58-07:00 akpm@osdl.org +2 -0 # Export `laptop_mode' for XFS # # ChangeSet # 2004/05/15 10:24:47-07:00 akpm@osdl.org # [PATCH] Remove old sh-sci driver # # From: Paul Mundt # # The old drivers/char sh-sci driver is no long used by anyone, both sh and # h8300 are using the drivers/serial version at this point, so we can get rid # of the old one entirely. # # drivers/char/Makefile # 2004/05/14 23:11:58-07:00 akpm@osdl.org +0 -1 # Remove old sh-sci driver # # BitKeeper/deleted/.del-sh-sci.h~f3854b8c283c9700 # 2004/05/15 10:24:41-07:00 akpm@osdl.org +0 -0 # Delete: drivers/char/sh-sci.h # # BitKeeper/deleted/.del-sh-sci.c~bc16578fc6688d3 # 2004/05/15 10:24:41-07:00 akpm@osdl.org +0 -0 # Delete: drivers/char/sh-sci.c # # ChangeSet # 2004/05/15 10:24:36-07:00 akpm@osdl.org # [PATCH] Fix x86_64 allmodconfig with gcc-3.4.0 # # From: Andi Kleen # # *** Warning: "memcmp" [drivers/atm/zatm.ko] undefined! # # gcc 3.4 specific problem. This patch should fix it. Actually it would be # better to move all these EXPORT_SYMBOLs into lib/string.c, it is silly that # each arch has to duplicate all that. # # arch/x86_64/kernel/x8664_ksyms.c # 2004/05/14 23:11:58-07:00 akpm@osdl.org +3 -0 # Fix x86_64 allmodconfig with gcc-3.4.0 # # ChangeSet # 2004/05/15 10:24:25-07:00 akpm@osdl.org # [PATCH] remove driver model code in mwave driver # # From: Christoph Hellwig # # Someone blindly added sysfs support to the driver long time ago without # understanding the implications (and if they were understood the driver # would need half a rewrite for it). Herber Xu recently noticed the problems # this causes on unload, so let's if 0 out all that code and get the driver # working again. # # drivers/char/mwave/mwavedd.c # 2004/05/14 23:11:58-07:00 akpm@osdl.org +6 -1 # remove driver model code in mwave driver # # ChangeSet # 2004/05/15 10:24:15-07:00 akpm@osdl.org # [PATCH] Make /proc/sysrq-trigger ignore sysrq_enabled # # It's silly that writing to /proc/sysrq-trigger does nothing if you haven't # enabled /proc/sys/kernel/sysrq. So provide a new __handle_sysrq() which # ignores the sysrq_enabled check. # # The patch also withdraws __handle_sysrq_nolock() from the kernel API. It had # no callers. # # include/linux/sysrq.h # 2004/05/14 23:11:58-07:00 akpm@osdl.org +1 -7 # Make /proc/sysrq-trigger ignore sysrq_enabled # # fs/proc/proc_misc.c # 2004/05/14 23:11:58-07:00 akpm@osdl.org +1 -1 # Make /proc/sysrq-trigger ignore sysrq_enabled # # drivers/char/sysrq.c # 2004/05/14 23:11:58-07:00 akpm@osdl.org +15 -21 # Make /proc/sysrq-trigger ignore sysrq_enabled # # ChangeSet # 2004/05/15 10:24:04-07:00 akpm@osdl.org # [PATCH] x86_64 msr.c warning fix # # arch/x86_64/kernel/msr.c:1:10: warning: extra tokens at end of #ident directive # # arch/x86_64/kernel/msr.c # 2004/05/14 23:11:58-07:00 akpm@osdl.org +0 -1 # x86_64 msr.c warning fix # # ChangeSet # 2004/05/15 10:23:54-07:00 akpm@osdl.org # [PATCH] fix aic7xxx_old.c for !PCI # # From: Adrian Bunk # # drivers/scsi/aic7xxx_old.c: In function `aic7xxx_release': # drivers/scsi/aic7xxx_old.c:10971: warning: implicit declaration of function `pci_release_regions' # # drivers/scsi/aic7xxx_old.c # 2004/05/14 23:11:57-07:00 akpm@osdl.org +4 -0 # fix aic7xxx_old.c for !PCI # # ChangeSet # 2004/05/15 10:23:43-07:00 akpm@osdl.org # [PATCH] fix tlan.c for !PCI # # From: Adrian Bunk # # drivers/net/tlan.c: In function `tlan_remove_one': # drivers/net/tlan.c:449: warning: implicit declaration of function `pci_release_regions' # # drivers/net/tlan.c # 2004/05/14 23:11:57-07:00 akpm@osdl.org +4 -0 # fix tlan.c for !PCI # # ChangeSet # 2004/05/15 10:23:33-07:00 akpm@osdl.org # [PATCH] fix cyclades compile with !PCI # # From: Adrian Bunk # # drivers/char/cyclades.c: In function `cy_cleanup_module': # drivers/char/cyclades.c:5638: warning: implicit declaration of function `pci_release_regions' # # drivers/char/cyclades.c # 2004/05/14 23:11:57-07:00 akpm@osdl.org +2 -0 # fix cyclades compile with !PCI # # ChangeSet # 2004/05/15 10:23:22-07:00 akpm@osdl.org # [PATCH] Fix endianess in modpost when cross-compiling for sparc on i386 # # From: Mathieu Chouquet-Stringer # # This patch makes the following code work again: # # #ifdef STT_REGISTER # if (info->hdr->e_machine == EM_SPARC || # info->hdr->e_machine == EM_SPARCV9) { # /* Ignore register directives. */ # if (ELF_ST_TYPE(sym->st_info) == STT_REGISTER) # break; # } # #endif # # This portion of code is sparc specific and nothing else in modpost.c uses # e_machine meaning cross-compiling for sparc on i386 (or any little endian # machine) is the only way to experience the bug. # # Without it, e_machine has the wrong value and modpost then generates a lot # of "*** Warning: \"symbol\" [filename.ko] undefined" messages. # # scripts/modpost.c # 2004/05/14 23:11:57-07:00 akpm@osdl.org +1 -0 # Fix endianess in modpost when cross-compiling for sparc on i386 # # ChangeSet # 2004/05/15 10:23:12-07:00 akpm@osdl.org # [PATCH] m68k: use print_modules() # # From: Geert Uytterhoeven # # arch/m68k/kernel/traps.c # 2004/05/14 23:11:57-07:00 akpm@osdl.org +1 -0 # m68k: use print_modules() # # ChangeSet # 2004/05/15 10:23:01-07:00 akpm@osdl.org # [PATCH] implement print_modules() # # From: Arjan van de Ven , # Rusty Russell # # The patch below resolves the "Not Yet Implemented" print_modules() thing. # This is a really useful feature for distros; it allows us to do statistical # analysis on which modules are present how often in oopses compared to how # often they are used normally. In addition it helps to spot candidates for # certain bugs without having to go back to the customer asking for this # information. # # kernel/module.c # 2004/05/14 23:11:57-07:00 akpm@osdl.org +11 -0 # implement print_modules() # # include/linux/module.h # 2004/05/14 23:11:57-07:00 akpm@osdl.org +4 -1 # implement print_modules() # # ChangeSet # 2004/05/15 10:22:51-07:00 akpm@osdl.org # [PATCH] Fix reiserfs oom crash # # From: Oleg Drokin # # Thanks to Standford guys, a case where reiserfs can dereference NULL # pointer if memory allocation fail during mount was identified. # # fs/reiserfs/journal.c # 2004/05/14 23:11:57-07:00 akpm@osdl.org +4 -2 # Fix reiserfs oom crash # # ChangeSet # 2004/05/15 10:22:41-07:00 akpm@osdl.org # [PATCH] fix block layer ioctl bug # # From: Alan Cox # # The block layer checks for -EINVAL from block layer driver ioctls. This is # wrong - ENOTTY is unknown and some drivers correctly use this. I suspect # for an internal ioctl 2.7 should change to -ENOIOCTLCMD and bitch about old # style returns # # This is conservative fix for the 2.6 case, it keeps the bogus -EINVAL to # avoid breaking stuff # # drivers/block/ioctl.c # 2004/05/14 23:11:56-07:00 akpm@osdl.org +2 -1 # fix block layer ioctl bug # # ChangeSet # 2004/05/15 10:22:30-07:00 akpm@osdl.org # [PATCH] fix linux doc errors # # From: Alan Cox # # drivers/scsi/hosts.c # 2004/05/14 23:11:56-07:00 akpm@osdl.org +2 -2 # fix linux doc errors # # ChangeSet # 2004/05/15 10:22:19-07:00 akpm@osdl.org # [PATCH] security: minor cleanups in capability.c # # From: Chris Wright # # Remove confusing error message when loading as secondary module, and ditch # conditional MY_NAME macro. # # security/capability.c # 2004/05/14 23:11:56-07:00 akpm@osdl.org +3 -8 # security: minor cleanups in capability.c # # ChangeSet # 2004/05/15 10:22:09-07:00 akpm@osdl.org # [PATCH] security: remove empty build of capability.o # # From: Chris Wright # # The build includes capability.c when CONFIG_SECURITY=n, yet the whole file is # ifdef'd out. Remove unnecessary build step as well as superfluous ifdefs. # # security/capability.c # 2004/05/14 23:29:22-07:00 akpm@osdl.org +0 -5 # security: remove empty build of capability.o # # security/Makefile # 2004/05/14 23:11:56-07:00 akpm@osdl.org +1 -1 # security: remove empty build of capability.o # # ChangeSet # 2004/05/15 10:21:58-07:00 akpm@osdl.org # [PATCH] PCI debug compile fix in sis_router_probe() # # From: Pavel Roskin # # I get a compile error when I define "DEBUG" in arch/i386/pci/pci.h. Variable # rt is not defined in sis_router_probe(), file arch/i386/pci/irq.c. # # arch/i386/pci/irq.c # 2004/05/14 23:11:56-07:00 akpm@osdl.org +0 -2 # PCI debug compile fix in sis_router_probe() # # ChangeSet # 2004/05/15 10:21:48-07:00 akpm@osdl.org # [PATCH] calculate NGROUPS_PER_BLOCK from PAGE_SIZE # # From: Greg Edwards # # On ia64, EXEC_PAGESIZE (max page size) is 65536, but the default page size is # 16k. This results in NGROUPS_PER_BLOCK in include/linux/sched.h being # calculated incorrectly when the page size is anything other than 64k. For # example, on a 16k page size kernel, a setgroups() call with a gidsetsize of # 65536 will end up walking over memory since only 1/4 of the needed pages were # allocated for the blocks[] array in the group_info struct. # # Patch below calculates NGROUPS_PER_BLOCK from PAGE_SIZE instead. # # include/linux/sched.h # 2004/05/14 23:11:56-07:00 akpm@osdl.org +1 -1 # calculate NGROUPS_PER_BLOCK from PAGE_SIZE # # ChangeSet # 2004/05/15 10:21:37-07:00 akpm@osdl.org # [PATCH] dquot_release oops fix # # From: Jan Kara # # Fix a null-pointer-deref oops in the quota code. # # fs/dquot.c # 2004/05/14 23:11:56-07:00 akpm@osdl.org +2 -1 # dquot_release oops fix # # ChangeSet # 2004/05/15 10:21:27-07:00 akpm@osdl.org # [PATCH] videodev: handle class_register() failure # # From: "Randy.Dunlap" # # From: (Walter Harms) # # (acked by Gerd) # # drivers/media/video/videodev.c # 2004/05/14 23:11:56-07:00 akpm@osdl.org +12 -3 # videodev: handle class_register() failure # # ChangeSet # 2004/05/15 10:21:16-07:00 akpm@osdl.org # [PATCH] Update laptop mode control script with XFS_HZ=100 # # From: Bart Samwel # # The laptop mode control script incorrectly guesses XFS_HZ=1000. This is # incorrect, since the patches that made XFS use USER_HZ went into 2.6.6 as # well. This changes XFS_HZ to 100 and removes the warning from the doc about # checking XFS_HZ. # # Documentation/laptop-mode.txt # 2004/05/14 23:29:19-07:00 akpm@osdl.org +7 -11 # Update laptop mode control script with XFS_HZ=100 # # ChangeSet # 2004/05/15 10:21:06-07:00 akpm@osdl.org # [PATCH] Watchdog timer for Intel IXP4xx CPUs # # From: Deepak Saxena # # Following patch adds a driver for the watchdogs on the Intel IXP4xx family of # network processors (ARM). # # drivers/char/watchdog/ixp4xx_wdt.c # 2004/05/14 23:11:55-07:00 akpm@osdl.org +233 -0 # Watchdog timer for Intel IXP4xx CPUs # # drivers/char/watchdog/Makefile # 2004/05/14 23:11:55-07:00 akpm@osdl.org +1 -0 # Watchdog timer for Intel IXP4xx CPUs # # drivers/char/watchdog/Kconfig # 2004/05/14 23:11:55-07:00 akpm@osdl.org +11 -0 # Watchdog timer for Intel IXP4xx CPUs # # drivers/char/watchdog/ixp4xx_wdt.c # 2004/05/14 23:11:55-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/char/watchdog/ixp4xx_wdt.c # # ChangeSet # 2004/05/15 10:20:55-07:00 akpm@osdl.org # [PATCH] Fix AladdinCard entry in parport_pc # # From: Christian Groessler # # Our AladdinCard also uses the oxsemi_840 chips and locks up when ecp mode # is enabled. # # drivers/parport/parport_pc.c # 2004/05/14 23:11:55-07:00 akpm@osdl.org +1 -1 # Fix AladdinCard entry in parport_pc # # ChangeSet # 2004/05/15 10:20:44-07:00 akpm@osdl.org # [PATCH] create_workqueue locking fix # # Fix some silliness in there. # # kernel/workqueue.c # 2004/05/14 23:11:55-07:00 akpm@osdl.org +2 -2 # create_workqueue locking fix # # ChangeSet # 2004/05/15 10:20:34-07:00 akpm@osdl.org # [PATCH] laptop-mode documentation fix # # From: Sau Dan Lee # # The script /etc/acpi/actions/battery.sh in the document doesn't run, # because of a wrong name. # # Documentation/laptop-mode.txt # 2004/05/14 23:29:23-07:00 akpm@osdl.org +2 -2 # laptop-mode documentation fix # # ChangeSet # 2004/05/15 10:20:24-07:00 akpm@osdl.org # [PATCH] ib700wdt watchdog driver fix #2 # # From: Patrice Bouchand # # The value written in the WDT_STOP register is not important. As soon as # something is written, the watchdog timer stops. But things will be cleaner # if we use the following patch. # # drivers/char/watchdog/ib700wdt.c # 2004/05/14 23:11:55-07:00 akpm@osdl.org +2 -2 # ib700wdt watchdog driver fix #2 # # ChangeSet # 2004/05/15 10:20:13-07:00 akpm@osdl.org # [PATCH] ib700wdt watchdog driver fix # # From: Patrice Bouchand # # ibwdt_ping(): we should write the current timeout's index into the holdoff # register, not the timeout's value in seconds. # # drivers/char/watchdog/ib700wdt.c # 2004/05/14 23:29:24-07:00 akpm@osdl.org +1 -1 # ib700wdt watchdog driver fix # # ChangeSet # 2004/05/15 10:20:03-07:00 akpm@osdl.org # [PATCH] expose backing dev max read-ahead # # From: Jens Axboe # # Expose the blockdev's VM readahead in /sys/block/hda/queue/read_ahead_kbytes # # This duplicates `blockdev --setra', but we're trying to get away from # ioctls. # # It would be nice to have a readahead-setting mechanism which also allows, # say, NFS to be tuned. But there is no common exposure point for # backing_dev_infos. One option might be per-superblock: # # mount -o remount,read_ahead_kbytes=64 # # but the generic remount code also has no visibility of the backing_dev, so it # would need a new super_block operation. One which doesn't accidentally modify # default_backing_dev_info. # # drivers/block/ll_rw_blk.c # 2004/05/14 23:11:55-07:00 akpm@osdl.org +27 -0 # expose backing dev max read-ahead # # ChangeSet # 2004/05/15 10:19:52-07:00 akpm@osdl.org # [PATCH] efivars: check that it's enabled # # From: "Randy.Dunlap" # # EFI-enabled kernels crash on non-EFI machines. efivars_init() and # efivars_exit() need to check efi_enabled instead of assuming that the # system is using EFI. # # drivers/firmware/efivars.c # 2004/05/14 23:11:54-07:00 akpm@osdl.org +6 -0 # efivars: check that it's enabled # # arch/i386/kernel/setup.c # 2004/05/14 23:11:54-07:00 akpm@osdl.org +1 -0 # efivars: check that it's enabled # # ChangeSet # 2004/05/15 10:19:35-07:00 akpm@osdl.org # [PATCH] make buildcheck # # From: Arjan van de Ven # # the patch below adds a "make buildcheck" target which checks for the "uses # exit in init" bug using Keith Owen's script. In the future other similar # sanity checks can be added to this target, but even just this one has been # quite useful already. I use it in the kernel rpm build process for # example, and I'm sure the OSDL build testers can/want to use it too. # # From: Keith Owens # # They commented out the progress print statements, I prefer to have them # present but no big deal. The licence is missing. # # scripts/reference_discarded.pl # 2004/05/14 23:11:54-07:00 akpm@osdl.org +109 -0 # make buildcheck # # scripts/reference_discarded.pl # 2004/05/14 23:11:54-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/scripts/reference_discarded.pl # # Makefile # 2004/05/14 23:11:54-07:00 akpm@osdl.org +3 -0 # make buildcheck # # ChangeSet # 2004/05/15 10:19:25-07:00 akpm@osdl.org # [PATCH] Include Aliases in kallsyms # # From: Rusty Russell # # Kallsyms discards symbols with the same address, but these are sometimes # useful. Skip this minor optimization and make kallsyms_lookup deal with # aliases # # scripts/kallsyms.c # 2004/05/14 23:11:54-07:00 akpm@osdl.org +2 -11 # Include Aliases in kallsyms # # kernel/kallsyms.c # 2004/05/14 23:11:54-07:00 akpm@osdl.org +10 -4 # Include Aliases in kallsyms # # ChangeSet # 2004/05/15 10:19:11-07:00 akpm@osdl.org # [PATCH] show last kernel-image symbol in /proc/kallsyms # # From: Rusty Russell # # The current code doesn't show the last symbol (usually _einittext) in # /proc/kallsyms. The reason for this is subtle: s_start() returns an empty # string for position 0 (ignored by s_show()), and s_next() returns the first # symbol for position 1. # # What should happen is that update_iter() for position 0 should fill in the # first symbol. Unfortunately, the get_ksymbol_core() fills in the symbol # information, *and* updates the iterator: we have to split these functions, # which we do by making it return the length of the name offset. # # Then we can call get_ksymbol_core() without moving the iterator, meaning # that we can call it at position 0 (ie. s_start()). # # kernel/kallsyms.c # 2004/05/14 23:29:24-07:00 akpm@osdl.org +9 -6 # show last kernel-image symbol in /proc/kallsyms # # ChangeSet # 2004/05/15 10:19:00-07:00 akpm@osdl.org # [PATCH] slabify iocontext + request_queue # # From: Jens Axboe # # Move both request_queue and io_context allocation to a slab cache. # # This is mainly a space-saving exercise. Some setups have a lot of disks # and the kmalloc rounding-up can consume significant amounts of memory. # # drivers/block/ll_rw_blk.c # 2004/05/14 23:29:24-07:00 akpm@osdl.org +25 -5 # slabify iocontext + request_queue # # ChangeSet # 2004/05/15 10:18:50-07:00 akpm@osdl.org # [PATCH] i2o_proc module owner fix # # From: Warren Togami # # drivers/message/i2o/i2o_proc.c # 2004/05/14 23:11:54-07:00 akpm@osdl.org +1 -0 # i2o_proc module owner fix # # ChangeSet # 2004/05/15 10:18:39-07:00 akpm@osdl.org # [PATCH] Fix i2o_proc kernel panic on access of /proc/i2o/iop0/lct # # From: Markus Lidel # # The patch converts i2o_proc to seq_file, thereby fixing a bug in the # i2o_proc.c module, where the kernel panics, if you access /proc/i2o/iop0/lct # and read more then 1024 bytes of it. # # drivers/message/i2o/i2o_proc.c # 2004/05/14 23:29:25-07:00 akpm@osdl.org +206 -195 # Fix i2o_proc kernel panic on access of /proc/i2o/iop0/lct # # ChangeSet # 2004/05/15 10:18:28-07:00 akpm@osdl.org # [PATCH] fbdev: Q40 fbdev updates. # # From: James Simmons # # It ports this driver to sysfs api and fixes a colormap issue. # # drivers/video/q40fb.c # 2004/05/14 23:11:53-07:00 akpm@osdl.org +69 -40 # fbdev: Q40 fbdev updates. # # ChangeSet # 2004/05/15 10:18:18-07:00 akpm@osdl.org # [PATCH] fbdev: Fix fbcon and unimap # # From: Fabrice Menard # # Trying to solve my latin1 char problems with the framebuffer console, I # found that fbcon doesn't set a unicode map. # # drivers/video/console/fbcon.c # 2004/05/14 23:11:53-07:00 akpm@osdl.org +1 -0 # fbdev: Fix fbcon and unimap # # ChangeSet # 2004/05/15 10:18:07-07:00 akpm@osdl.org # [PATCH] fbdev: New Asiliant framebuffer driver. # # From: James Simmons # # This is the new asiliant framebuffer driver. # # drivers/video/asiliantfb.c # 2004/05/14 23:11:53-07:00 akpm@osdl.org +620 -0 # fbdev: New Asiliant framebuffer driver. # # drivers/video/asiliantfb.c # 2004/05/14 23:11:53-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/video/asiliantfb.c # # drivers/video/Makefile # 2004/05/14 23:11:53-07:00 akpm@osdl.org +1 -0 # fbdev: New Asiliant framebuffer driver. # # drivers/video/Kconfig # 2004/05/14 23:11:53-07:00 akpm@osdl.org +4 -0 # fbdev: New Asiliant framebuffer driver. # # ChangeSet # 2004/05/15 10:17:56-07:00 akpm@osdl.org # [PATCH] fbdev: Vesa Fbdev update fix # # From: Geert Uytterhoeven # # On Sun, 25 Apr 2004, James Simmons wrote: # > This patch migrates the Vesa Framebuffer driver over to the # > framebuffer_alloc/framebuffer_release api. It also fixes the error # > handling paths. The mtrr issue that Geert brought up has been fixed. # > With your approval Geert, Ben please apply this patch. # # > + /* Set video size according to vram boot option */ # > + if (vram && vram * 1024 * 1024 != vesafb_fix.smem_len) # > + vesafb_fix.smem_len = vram * 1024 * 1024; # # The second part of the test can be removed. The rest looks OK to me. # # drivers/video/vesafb.c # 2004/05/14 23:11:53-07:00 akpm@osdl.org +1 -1 # fbdev: Vesa Fbdev update fix # # ChangeSet # 2004/05/15 10:17:45-07:00 akpm@osdl.org # [PATCH] fbdev: Vesa Fbdev update # # From: James Simmons # # This patch migrates the Vesa Framebuffer driver over to the # framebuffer_alloc/framebuffer_release api. It also fixes the error # handling paths. The mtrr issue that Geert brought up has been fixed. # # drivers/video/vesafb.c # 2004/05/14 23:29:26-07:00 akpm@osdl.org +73 -25 # fbdev: Vesa Fbdev update # # ChangeSet # 2004/05/15 10:17:34-07:00 akpm@osdl.org # [PATCH] fbdev: Virtual fbdev updates # # From: James Simmons # # This is attempt 2 at the virtual framebuffer patch. It migrates the driver # to the framebuffer_release/framebuffer_alloc api. It doesn't enable the # driver by default. # # drivers/video/vfb.c # 2004/05/14 23:11:53-07:00 akpm@osdl.org +85 -27 # fbdev: Virtual fbdev updates # # ChangeSet # 2004/05/15 10:17:23-07:00 akpm@osdl.org # [PATCH] fbdev: Fix NULL-ptr dereference in pm2fb_probe # # From: Jim Hague # # It fixes the NULL pointer dereference and also a problem in pm2fb_blank(). # # drivers/video/pm2fb.c # 2004/05/14 23:11:53-07:00 akpm@osdl.org +32 -22 # fbdev: Fix NULL-ptr dereference in pm2fb_probe # # ChangeSet # 2004/05/15 10:17:12-07:00 akpm@osdl.org # [PATCH] fbdev: set a default access_align value # # From: James Simmons # # Set the default access_align variable. This variable tells us how much data # the hardware can handle in a single read/write cycle. For example the epson # chipset can handle only 16 bit reads and writes to the framebuffer. # # drivers/video/fbmem.c # 2004/05/14 23:11:53-07:00 akpm@osdl.org +2 -0 # fbdev: set a default access_align value # # ChangeSet # 2004/05/15 10:17:01-07:00 akpm@osdl.org # [PATCH] fbdev: remove redundant local # # From: James Simmons # # Remove extra variable. We use i instead of rc. # # drivers/video/fbmem.c # 2004/05/14 23:29:26-07:00 akpm@osdl.org +3 -3 # fbdev: remove redundant local # # ChangeSet # 2004/05/15 10:16:51-07:00 akpm@osdl.org # [PATCH] fbdev: remove redundant p->vrows calculation # # From: James Simmons # # This patch removes the redundent calculation of p->vrows. This is done in # fbcon_resize. # # drivers/video/console/fbcon.c # 2004/05/14 23:29:25-07:00 akpm@osdl.org +2 -17 # fbdev: remove redundant p->vrows calculation # # ChangeSet # 2004/05/15 10:16:40-07:00 akpm@osdl.org # [PATCH] fbdev: clean up logo handling # # From: James Simmons # # This make the logo handling code easier to read. Merged the two code blocks # since they test for the exact same condition. # # drivers/video/console/fbcon.c # 2004/05/14 23:29:26-07:00 akpm@osdl.org +1 -4 # fbdev: clean up logo handling # # ChangeSet # 2004/05/15 10:16:30-07:00 akpm@osdl.org # [PATCH] fbdev: video/imsttfb.c warning fix # # From: "Luiz Fernando N. Capitulino" # # drivers/video/imsttfb.c:1089: warning: `imsttfb_load_cursor_image' defined but not used # drivers/video/imsttfb.c:1159: warning: `imstt_set_cursor' defined but not used # # drivers/video/imsttfb.c # 2004/05/14 23:11:52-07:00 akpm@osdl.org +1 -1 # fbdev: video/imsttfb.c warning fix # # ChangeSet # 2004/05/15 10:16:20-07:00 akpm@osdl.org # [PATCH] fbdev: video/tdfxfb.c warning fix # # From: "Luiz Fernando N. Capitulino" # # Fix this: # # drivers/video/tdfxfb.c:1005: warning: `tdfxfb_cursor' defined but not used # # and make the acceleration function selectable (like hgafb and tridentfb) # # Geert says: # # tdfxfb_cursor() was not used before, causing a compiler warning. # tdfxfb_cursor() may work, but we don't know, so we didn't dare to enable it # by default. Now the user (he who has the hardware) can enable it, and tell # us whether it works or not. # # drivers/video/tdfxfb.c # 2004/05/14 23:11:52-07:00 akpm@osdl.org +7 -1 # fbdev: video/tdfxfb.c warning fix # # drivers/video/Kconfig # 2004/05/14 23:29:25-07:00 akpm@osdl.org +8 -0 # fbdev: video/tdfxfb.c warning fix # # ChangeSet # 2004/05/15 10:16:09-07:00 akpm@osdl.org # [PATCH] fbdev: video/hgafb.c warning fix # # From: "Luiz Fernando N. Capitulino" # # Make HGA acceleration functions selectable in kernel config, fix these # warnings: # # drivers/video/hgafb.c:452: warning: `hgafb_fillrect' defined but not used # drivers/video/hgafb.c:472: warning: `hgafb_copyarea' defined but not used # drivers/video/hgafb.c:502: warning: `hgafb_imageblit' defined but not used # # drivers/video/hgafb.c # 2004/05/14 23:11:52-07:00 akpm@osdl.org +12 -3 # fbdev: video/hgafb.c warning fix # # drivers/video/Kconfig # 2004/05/14 23:29:27-07:00 akpm@osdl.org +8 -0 # fbdev: video/hgafb.c warning fix # # ChangeSet # 2004/05/15 10:15:59-07:00 akpm@osdl.org # [PATCH] fbdev: video/tridentfb.c warning fix # # From: "Luiz Fernando N. Capitulino" # # Speaking with frame buffer people, we agree with this patch to fix the # warning: # # drivers/video/tridentfb.c:455: warning: `tridentfb_fillrect' defined but not used # drivers/video/tridentfb.c:473: warning: `tridentfb_copyarea' defined but not used # # drivers/video/tridentfb.c # 2004/05/14 23:11:52-07:00 akpm@osdl.org +8 -5 # fbdev: video/tridentfb.c warning fix # # drivers/video/Kconfig # 2004/05/14 23:29:27-07:00 akpm@osdl.org +8 -0 # fbdev: video/tridentfb.c warning fix # # ChangeSet # 2004/05/15 10:15:48-07:00 akpm@osdl.org # [PATCH] fbdev: Neomagic driver update. # # From: James Simmons # # Here is a updated driver for the neomagic. # # include/video/neomagic.h # 2004/05/14 23:11:52-07:00 akpm@osdl.org +104 -165 # fbdev: Neomagic driver update. # # drivers/video/neofb.c # 2004/05/14 23:11:52-07:00 akpm@osdl.org +294 -217 # fbdev: Neomagic driver update. # # drivers/video/Makefile # 2004/05/14 23:29:25-07:00 akpm@osdl.org +1 -1 # fbdev: Neomagic driver update. # # ChangeSet # 2004/05/15 10:15:37-07:00 akpm@osdl.org # [PATCH] fbdev: radeonfb: fix garbled screen # # From: Benjamin Herrenschmidt # # > My screen is still a bit garbeld after booting. # > Still like http://zodiac.dnsalias.org/images/garbage.jpg # # Yes, usual boot-time x86 garbage. Well, let's imagine it's as simple # as clearing the framebuffer during boot :) Try this patch and let me # know. If that doesn't help, then the problem is definitely in fbcon. # # drivers/video/aty/radeon_base.c # 2004/05/14 23:11:51-07:00 akpm@osdl.org +1 -0 # fbdev: radeonfb: fix garbled screen # # ChangeSet # 2004/05/15 10:15:26-07:00 akpm@osdl.org # [PATCH] autofs4 compat ioctls # # From: # # These are the ioctls that need to be added to the compatibility layer. # # They are all esentially the same as the AUTOFS_IOC_PROTOVER in their # requirements and so should be fine. # # include/linux/compat_ioctl.h # 2004/05/14 23:11:51-07:00 akpm@osdl.org +4 -0 # autofs4 compat ioctls # # ChangeSet # 2004/05/15 10:15:15-07:00 akpm@osdl.org # [PATCH] autofs4 race fix # # From: Ian Kent # # The case where two process similtaneously trigger a mount in autofs4 can # cause multiple requests to the daemon for the same mount. The daemon # handles this OK but it's possible an incorrect error to be returned. For # this reason I believe it is better to change the spin lock to a semaphore # in waitq.c. This makes the second and subsequent request wait on the q as # ther supposed to. # # fs/autofs4/waitq.c # 2004/05/14 23:30:07-07:00 akpm@osdl.org +15 -12 # autofs4 race fix # # fs/autofs4/inode.c # 2004/05/14 23:30:07-07:00 akpm@osdl.org +1 -0 # autofs4 race fix # # fs/autofs4/autofs_i.h # 2004/05/14 23:30:07-07:00 akpm@osdl.org +1 -0 # autofs4 race fix # # ChangeSet # 2004/05/15 10:15:04-07:00 akpm@osdl.org # [PATCH] autofs4: readdir futureproofing # # From: Ian Kent # # Needed for support coming development plans. # # include/linux/auto_fs4.h # 2004/05/14 23:11:51-07:00 akpm@osdl.org +5 -3 # autofs4: readdir futureproofing # # fs/autofs4/root.c # 2004/05/14 23:11:51-07:00 akpm@osdl.org +72 -1 # autofs4: readdir futureproofing # # fs/autofs4/autofs_i.h # 2004/05/14 23:29:28-07:00 akpm@osdl.org +2 -0 # autofs4: readdir futureproofing # # ChangeSet # 2004/05/15 10:14:54-07:00 akpm@osdl.org # [PATCH] autofs4: add ioctl to query unmountability # # From: Ian Kent # # Add ioctl to find out if autofs mount can be umounted. When the daemon # discovers this it's past the point of no return. # # include/linux/auto_fs4.h # 2004/05/14 23:29:28-07:00 akpm@osdl.org +1 -0 # autofs4: add ioctl to query unmountability # # fs/autofs4/root.c # 2004/05/14 23:29:28-07:00 akpm@osdl.org +20 -0 # autofs4: add ioctl to query unmountability # # ChangeSet # 2004/05/15 10:14:43-07:00 akpm@osdl.org # [PATCH] autofs4: fix handling of chdir and chroot # # From: # # Pushed changes in sys_chdir and sys_chroot into the revalidate/lookup by # using nameidata hint. # # fs/open.c # 2004/05/14 23:11:51-07:00 akpm@osdl.org +0 -52 # autofs4: fix handling of chdir and chroot # # fs/autofs4/root.c # 2004/05/14 23:29:28-07:00 akpm@osdl.org +3 -50 # autofs4: fix handling of chdir and chroot # # ChangeSet # 2004/05/15 10:14:32-07:00 akpm@osdl.org # [PATCH] autofs4: readdir fixes # # From: Ian Kent # # a. Implement readdir and friends for directory lookup for late mounting. # This is done largely by replacing a catch all condition in # try_to_fill_dentry with appropriate cases. # # b. Add path calc. function in waitq.c to get extended path to return to # daemon (for direct mounts). # # c. Add revalidate calls to sys_chdir and sys_chroot so that pwd lookups # work correctly. # # d. Add ioctl to retrieve minor version for automount daemon (and me) to # recognise module fix level. Bumped minor version to 5. # # From: Hugh Dickins # # After chdir (or chroot) to non-existent directory on 2.6.5-mm5, you can no # longer unmount filesystem holding working directory (or root). # # include/linux/auto_fs4.h # 2004/05/14 23:29:28-07:00 akpm@osdl.org +3 -0 # autofs4: readdir fixes # # fs/open.c # 2004/05/14 23:29:29-07:00 akpm@osdl.org +52 -0 # autofs4: readdir fixes # # fs/autofs4/waitq.c # 2004/05/14 23:29:28-07:00 akpm@osdl.org +53 -17 # autofs4: readdir fixes # # fs/autofs4/root.c # 2004/05/14 23:29:29-07:00 akpm@osdl.org +284 -44 # autofs4: readdir fixes # # fs/autofs4/inode.c # 2004/05/14 23:29:28-07:00 akpm@osdl.org +1 -1 # autofs4: readdir fixes # # fs/autofs4/expire.c # 2004/05/14 23:11:51-07:00 akpm@osdl.org +1 -1 # autofs4: readdir fixes # # fs/autofs4/autofs_i.h # 2004/05/14 23:29:28-07:00 akpm@osdl.org +9 -1 # autofs4: readdir fixes # # ChangeSet # 2004/05/15 10:14:21-07:00 akpm@osdl.org # [PATCH] autofs4: may_umount_tree() cleanup # # From: # # Patch to sync 2.6.6-rc2-mm2 with the result of my discussion with # Christoph Hellwig. # # Difference is that Christoph realised that merging may_umount_tree and # may_umount was not worth it. They are now seperate functions. # # fs/namespace.c # 2004/05/14 23:11:51-07:00 akpm@osdl.org +12 -23 # autofs4: may_umount_tree() cleanup # # ChangeSet # 2004/05/15 10:14:11-07:00 akpm@osdl.org # [PATCH] autofs4: expiry refcount fixes # # From: Ian Kent # # This patch is the result of an e-mail discussion with Soni Maneesh. He felt # that the use of reference counts in the expire module is unreliable (in the # presence of rcu) and suggested it should use standard VFS calls where # possible. This has been done. Once the boundary in autofs is reached we # have no choice but to resort using reference counts (but under the # vfsmount_lock). # # # After review by hch: # # - renamed autofs4_may_umount to __may_umount_tree, made it static and moved # it to namespace.c. # # - added stub function may_umount_tree with description # # - altered may_umount to use above stub function and added little description # # - added may_umount_tree prototype to fs.h # # - removed the EXPORT_SYMBOL for vfsmount_lock # # - updated expire.c to suit # # include/linux/fs.h # 2004/05/14 23:11:50-07:00 akpm@osdl.org +1 -0 # autofs4: expiry refcount fixes # # include/linux/auto_fs4.h # 2004/05/14 23:29:29-07:00 akpm@osdl.org +4 -0 # autofs4: expiry refcount fixes # # fs/namespace.c # 2004/05/14 23:29:29-07:00 akpm@osdl.org +74 -4 # autofs4: expiry refcount fixes # # fs/autofs4/expire.c # 2004/05/14 23:29:29-07:00 akpm@osdl.org +215 -130 # autofs4: expiry refcount fixes # # fs/autofs4/autofs_i.h # 2004/05/14 23:29:29-07:00 akpm@osdl.org +20 -0 # autofs4: expiry refcount fixes # # ChangeSet # 2004/05/15 10:14:00-07:00 akpm@osdl.org # [PATCH] autofs4: locking rework # # From: Ian Kent # # Remove BKL from autofs4 module and add spinlock to serialise access to the # automount daemon communication waitq. # # Locking requirements are different in 2.6 and so I'm seeking comments and # suggestions on this. I have taken a rather heavy handed approach to this in # the patch. For example, the VFS operations that directly change the # filesystem, such as autofs4_mkdir etc, hold the inode semaphore on entry so # the BKL has been removed. I can't see why two locking mechanisms are needed. # Rather than add locking all over the place, I'm looking for justification # it's needed, as I don't see it myself. # # fs/autofs4/waitq.c # 2004/05/14 23:29:29-07:00 akpm@osdl.org +22 -10 # autofs4: locking rework # # fs/autofs4/root.c # 2004/05/14 23:29:29-07:00 akpm@osdl.org +6 -32 # autofs4: locking rework # # fs/autofs4/autofs_i.h # 2004/05/14 23:29:29-07:00 akpm@osdl.org +1 -1 # autofs4: locking rework # # ChangeSet # 2004/05/15 10:13:49-07:00 akpm@osdl.org # [PATCH] autofs4: printk cleanups and memory leak fix # # From: Ian Kent # # - Correct text in DPRINTK messages and comments, a little reformating and # correct URL location for autofs v4 in Kconfig message. # # - Fix error-path memory leak in autofs4_fill_super() # # fs/autofs4/waitq.c # 2004/05/14 23:29:29-07:00 akpm@osdl.org +10 -9 # autofs4: printk cleanups and memory leak fix # # fs/autofs4/root.c # 2004/05/14 23:29:29-07:00 akpm@osdl.org +11 -12 # autofs4: printk cleanups and memory leak fix # # fs/autofs4/inode.c # 2004/05/14 23:29:29-07:00 akpm@osdl.org +6 -1 # autofs4: printk cleanups and memory leak fix # # fs/Kconfig # 2004/05/14 23:11:50-07:00 akpm@osdl.org +1 -1 # autofs4: printk cleanups and memory leak fix # # ChangeSet # 2004/05/15 10:13:39-07:00 akpm@osdl.org # [PATCH] autofs4: dnotify + autofs may create signal/restart syscall loop # # From: Ian Kent # # From: Jeff Mahoney # # I saw a recent bug report that showed when a process set up a dnotify # against the autofs root and then attempted an access(2) call inside the # autofs namespace on a mount that would fail, it would create a # signal/restart loop. # # The cause is that the autofs code checks to see if any signals are pending # after it waits on a response from the autofs daemon. If it finds any, it # assumes that autofs_wait was interrupted, and that it should return # -ERESTARTNOINTR. The problem with this is that a signal_pending(current) # check will return true if *any* signals were received, not just if a signal # that interrupted the wait was received. autofs_wait explicitly blocks all # signals except for SIGKILL, SIGQUIT, and SIGINT before calling # interruptible_sleep_on. # # The effect is that if a dnotify is set against the autofs root, when the # autofs daemon creates the directory, a dnotify event will be sent to the # originating process. Since the code in autofs_root_lookup doesn't check to # see what signals are actually pending, it bails early, telling the caller # to try again. The loop goes on forever until interrupted via one of the # actual interrupting signals. # # The following patch makes both autofs_root_lookup and autofs4_root_lookup # verify that one of its defined "shutdown" signals are pending before # bailing out early. Any other signal should be delivered later, as # expected. It doesn't matter if the signal occured outside of the sleep in # autofs_wait. The calling process will either go away or try again. # # fs/autofs4/root.c # 2004/05/14 23:29:30-07:00 akpm@osdl.org +8 -2 # autofs4: dnotify + autofs may create signal/restart syscall loop # # fs/autofs4/inode.c # 2004/05/14 23:29:30-07:00 akpm@osdl.org +2 -0 # autofs4: dnotify + autofs may create signal/restart syscall loop # # ChangeSet # 2004/05/15 10:13:28-07:00 akpm@osdl.org # [PATCH] Use -msoft-float # # From: Dave Jones # # To catch accidental usage of floating point. Has been in -mm for ages. # # arch/i386/Makefile # 2004/05/14 23:11:50-07:00 akpm@osdl.org +1 -1 # Use -msoft-float # # ChangeSet # 2004/05/15 10:13:17-07:00 akpm@osdl.org # [PATCH] sched: reduce node balancing interval # # From: Nick Piggin # # From: Suresh Siddha # # Node max rebalance interval is too large. It is currently dependent on # number of online cpus. For 16 cpu system, max node balance interval in # busy case is 32 seconds. Agreed that it will use max 32 seconds only when # it doesn't find imbalance for a long time. But this will lead to slow # response time in cases where load runs for a second with no imbalance and # suddently creates an imbalance. My patch makes the busy max node rebalance # interval equal to the base [scheduler]. # # include/linux/sched.h # 2004/05/14 23:29:22-07:00 akpm@osdl.org +1 -1 # sched: reduce node balancing interval # # ChangeSet # 2004/05/15 10:13:06-07:00 akpm@osdl.org # [PATCH] sched: less locking in balancing # # From: Nick Piggin # # Analysis and basic idea from Suresh Siddha # # "This small change in load_balance() brings the performance back upto base # scheduler(infact I see a ~1.5% performance improvement now). Basically # this fix removes the unnecessary double_lock.." # # Workload is SpecJBB on 16-way Altix. # # kernel/sched.c # 2004/05/14 23:11:50-07:00 akpm@osdl.org +13 -5 # sched: less locking in balancing # # ChangeSet # 2004/05/15 10:12:56-07:00 akpm@osdl.org # [PATCH] sched: fix scheduler for unsynched processor sched_clock # # From: Nick Piggin # # Fine-tune the unsynched sched_clock handling. # # Basically, you need to be careful about ensuring timestamps get correctly # adjusted when moving CPUs, and you *can't* look at your unadjusted # sched_clock() and a remote task's ->timestamp and try to come up with # anything meaningful. # # I think this second problem will really hit hard in the activate_task path # on systems with unsynched sched_clock when you're waking up a remote task, # which happens very often. Andi, I thought some Opterons have unsynched # tscs? Maybe this is causing your unexplained bad interactivity? # # Another problem is a fixup in pull_task. When adjusting ->timestamp from # one processor to another, you must use timestamp_last_tick for the local # processor too. Using sched_clock() will cause ->timestamp to creep # forward. # # A final small fix is for sync wakeups. They were using __activate_task for # some reason, thus they don't get credited for sleeping at all AFAIKS. # # And another thing, do we want to #ifdef timestamp_last_tick so it doesn't # show on UP? # # kernel/sched.c # 2004/05/14 23:29:30-07:00 akpm@osdl.org +28 -10 # sched: fix scheduler for unsynched processor sched_clock # # ChangeSet # 2004/05/15 10:12:44-07:00 akpm@osdl.org # [PATCH] sched: improved cpu_load rounding # # From: Nick Piggin # # "Siddha, Suresh B" noticed a problem in the # cpu_load averaging where the integer truncation could sometimes cause cpu_load # to never quite reach its target. # # I'm not sure that you could demonstrate a real world problem, but I quite # like this fix. # # kernel/sched.c # 2004/05/14 23:29:30-07:00 akpm@osdl.org +7 -0 # sched: improved cpu_load rounding # # ChangeSet # 2004/05/15 10:12:33-07:00 akpm@osdl.org # [PATCH] Fix writeback_inodes-vs-umount race # # Fix bug identified by Chris Mason. # # If writeback_inodes is left holding a ref on the superblock's last inode then # the superblock list walk can race with umount and the superblock can be # released. # # Take and put a ref against the superblock to fix that. # # include/linux/fs.h # 2004/05/14 23:29:29-07:00 akpm@osdl.org +1 -0 # Fix writeback_inodes-vs-umount race # # fs/super.c # 2004/05/14 23:11:49-07:00 akpm@osdl.org +18 -3 # Fix writeback_inodes-vs-umount race # # fs/fs-writeback.c # 2004/05/14 23:11:49-07:00 akpm@osdl.org +4 -0 # Fix writeback_inodes-vs-umount race # # ChangeSet # 2004/05/15 10:12:23-07:00 akpm@osdl.org # [PATCH] x86: stack dumps using frame pointers # # From: Adam Litke # # Teach the x86 stack tracing code to use frame pointers, if they are available. # It eliminates all the false-positives in the normal stack traces. # # This is a big improvement, and -fomit-frame-pointer seems to make no # difference at all to generated code size. Maybe we should kill off # -fomit-frame-pointer. # # arch/i386/kernel/traps.c # 2004/05/14 23:11:49-07:00 akpm@osdl.org +58 -15 # x86: stack dumps using frame pointers # # ChangeSet # 2004/05/15 13:09:25-04:00 jgarzik@redhat.com # [libata] internal cleanups # # Remove unused 'done_late' arg to ata_qc_complete(), which was never # useful in 2.4, and never used at all in 2.6. # # This allows us to eliminate the same arg from ata_dma_complete(), # and also make it more correct by passing the command rather than # the ATA port structure as arg0. # # include/linux/libata.h # 2004/05/15 13:06:54-04:00 jgarzik@redhat.com +1 -1 # [libata] internal cleanups # # Remove unused 'done_late' arg to ata_qc_complete(), which was never # useful in 2.4, and never used at all in 2.6. # # This allows us to eliminate the same arg from ata_dma_complete(), # and also make it more correct by passing the command rather than # the ATA port structure as arg0. # # drivers/scsi/sata_sx4.c # 2004/05/15 13:06:54-04:00 jgarzik@redhat.com +5 -7 # [libata] internal cleanups # # Remove unused 'done_late' arg to ata_qc_complete(), which was never # useful in 2.4, and never used at all in 2.6. # # This allows us to eliminate the same arg from ata_dma_complete(), # and also make it more correct by passing the command rather than # the ATA port structure as arg0. # # drivers/scsi/sata_promise.c # 2004/05/15 13:06:54-04:00 jgarzik@redhat.com +5 -7 # [libata] internal cleanups # # Remove unused 'done_late' arg to ata_qc_complete(), which was never # useful in 2.4, and never used at all in 2.6. # # This allows us to eliminate the same arg from ata_dma_complete(), # and also make it more correct by passing the command rather than # the ATA port structure as arg0. # # drivers/scsi/libata-core.c # 2004/05/15 13:06:54-04:00 jgarzik@redhat.com +13 -17 # [libata] internal cleanups # # Remove unused 'done_late' arg to ata_qc_complete(), which was never # useful in 2.4, and never used at all in 2.6. # # This allows us to eliminate the same arg from ata_dma_complete(), # and also make it more correct by passing the command rather than # the ATA port structure as arg0. # # ChangeSet # 2004/05/15 12:47:04-04:00 jgarzik@redhat.com # Merge redhat.com:/spare/repo/sata-hacks/atapi-hacks-2.6 # into redhat.com:/spare/repo/libata-2.6 # # include/linux/libata.h # 2004/05/15 12:47:01-04:00 jgarzik@redhat.com +0 -0 # Auto merged # # ChangeSet # 2004/05/15 09:42:40-07:00 shai@ftcon.com # [PATCH] Multiple (ICH3) IDE-controllers in a system # # This fixes a problem with multiple IDE controllers in a system. # # The problem is that pcibios_fixups table (in arch/i386/pci/fixup.c) uses # the pci_fixup_ide_trash() quirk for Intel's ICH3 (my case specifically # 8086:248b). This clears any bogus BAR information set up by the BIOS. # # In a system which has multiple ICH3's can't use any of the IDE # controllers beside the one on the first ICH3. # # Anyhow, the fix is to make sure pci_fixup_ide_trash resets the BARs only # for first time being called, so the subsequent IDE controllers will use # the BIOS BARs. This is better than "loosing" all these IDE controllers # in the case their BARs set right. # # The issue discussed and agreed with Bartlomiej Zolnierkiewicz (see below). # # arch/i386/pci/fixup.c # 2004/05/07 01:45:31-07:00 shai@ftcon.com +9 -0 # Multiple (ICH3) IDE-controllers in a system # # ChangeSet # 2004/05/15 15:32:59+01:00 robin.farine@org.rmk.(none) # [ARM PATCH] 1879/1: fix a few xscale "drain write & fill buffer" instructions # # Patch from Robin Farine # # Fix the xscale cache handling routines that were invalidating a D # cache line instead of draining the write & fill buffer as intended. # # arch/arm/mm/proc-xscale.S # 2004/05/15 01:00:00+01:00 robin.farine@org.rmk.(none) +3 -3 # [PATCH] 1879/1: fix a few xscale "drain write & fill buffer" instructions # # ChangeSet # 2004/05/15 15:26:45+01:00 catalin.marinas@com.rmk.(none) # [ARM PATCH] 1883/1: Bit 4 in pmd should be 0 for the ARMv6 architecture # # Patch from Catalin Marinas # # Unlike the v5 architecture, the ARM1136 requires that BIT4 is 0 in # the first level page descriptor (ARM1136 TRM, page 6-39). It works # at the moment but it might break future v6 cores. # # arch/arm/mm/mm-armv.c # 2004/05/14 13:52:24+01:00 catalin.marinas@com.rmk.(none) +19 -7 # [PATCH] 1883/1: Bit 4 in pmd should be 0 for the ARMv6 architecture # # ChangeSet # 2004/05/15 15:19:34+01:00 catalin.marinas@com.rmk.(none) # [ARM PATCH] 1882/1: Fixes in the v6_dma_(invalidate|flush)_range functions # # Patch from Catalin Marinas # # The v6_dma_invalidate_range - the "mcr" instruction for draining # # the write buffer requires r0 == 0. A "cmp" instruction for # # testing the end address is missing in the v6_dma_flush_range # # function. # # arch/arm/mm/cache-v6.S # 2004/05/13 17:45:41+01:00 catalin.marinas@com.rmk.(none) +2 -0 # [PATCH] 1882/1: Fixes in the v6_dma_(invalidate|flush)_range functions # # ChangeSet # 2004/05/15 15:13:48+01:00 catalin.marinas@com.rmk.(none) # [ARM PATCH] 1881/1: Illegal strex instruction generated by gcc # # Patch from Catalin Marinas # # The _raw_write_(try)lock functions in include/asm-arm/spinlock.h # # should use the early clobber modifier (&) for the "tmp" register. # # A newer compiler (gcc-3.4.0) generates an "strexeq %0, %1, [%2]" # # instruction where %0 is the same as %2, which is illegal. # # include/asm-arm/spinlock.h # 2004/01/30 13:35:44+00:00 catalin.marinas@com.rmk.(none) +2 -2 # [PATCH] 1881/1: Illegal strex instruction generated by gcc # # ChangeSet # 2004/05/15 15:07:10+01:00 catalin.marinas@com.rmk.(none) # [ARM PATCH] 1880/1: cache_type is uninitialised in the blockops_check() function # # Patch from Catalin Marinas # # In the blockops_check() function, cache_type is uninitialised # # because an "mcr" instruction is used instead of "mrc". # # arch/arm/mm/blockops.c # 2004/01/27 17:34:39+00:00 catalin.marinas@com.rmk.(none) +1 -1 # [PATCH] 1880/1: cache_type is uninitialised in the blockops_check() function # # arch/ppc64/kernel/cpu_setup_power4.S # 2004/05/15 00:33:10-07:00 benh@kernel.crashing.org +6 -2 # ppc64: Add proper SMP init on dual 970FX based machines # # ChangeSet # 2004/05/14 23:11:43-07:00 torvalds@ppc970.osdl.org # Fix typo nonsense test in radeon PMAC backlight code. # # drivers/video/aty/radeon_base.c # 2004/05/14 23:11:38-07:00 torvalds@ppc970.osdl.org +1 -1 # Fix typo nonsense test in radeon PMAC backlight code. # # ChangeSet # 2004/05/14 23:01:25-07:00 torvalds@ppc970.osdl.org # Make dev_dbg() "use" it's 'dev' argument even when not debugging. # # This avoids warnings about unused variables. # # include/linux/device.h # 2004/05/14 23:01:20-07:00 torvalds@ppc970.osdl.org +1 -1 # Make dev_dbg() "use" it's 'dev' argument even when not debugging. # # This avoids warnings about unused variables. # # ChangeSet # 2004/05/15 01:03:42-04:00 jgarzik@redhat.com # [sound/oss i810] bump driver to version 1.00 # # sound/oss/i810_audio.c # 2004/05/15 01:03:36-04:00 jgarzik@redhat.com +2 -2 # [sound/oss i810] bump driver to version 1.00 # # ChangeSet # 2004/05/14 21:53:01-07:00 aia21@cam.ac.uk # [PATCH] x86_64 has buggy ffs() implementation # # x86_64 has an incorrect ffs() implementation. The asm uses "g" instead # of "rm" for the bsfl instruction. (This was spotted by Yuri Per.) # # bsfl does not accept constant values but only memory or register ones. # On i386 the correct "rm" is used. # # This causes NTFS build to fail as gcc optimizes a variable into a # constant and ffs() then fails to assemble. # # include/asm-x86_64/bitops.h # 2004/05/12 06:41:23-07:00 aia21@cam.ac.uk +1 -1 # x86_64 has buggy ffs() implementation # # ChangeSet # 2004/05/14 21:45:59-07:00 kkeil@suse.de # [PATCH] fix typo in avm_cs PCMCIA AVM B1 cardservice driver # # this trivial fix makes the AVM B1 PCMCIA cards work with 2.6 # # drivers/isdn/hardware/avm/avm_cs.c # 2004/05/13 11:33:17-07:00 kkeil@suse.de +5 -5 # fix typo in avm_cs PCMCIA AVM B1 cardservice driver # # ChangeSet # 2004/05/15 00:18:55-04:00 jgarzik@redhat.com # Merge redhat.com:/spare/repo/linux-2.6 # into redhat.com:/spare/repo/i810-audio-2.6 # # sound/oss/i810_audio.c # 2004/05/15 00:18:51-04:00 jgarzik@redhat.com +0 -0 # Auto merged # # ChangeSet # 2004/05/14 20:47:15-07:00 santil@us.ibm.com # [PATCH] PowerPC Virtual Ethernet links to /sys/class/net/ethX # # This adds links to the driver and device inside /sys/class/net/ethX for # PowerPC Virtual Ethernet devices. # # drivers/net/ibmveth.c # 2004/05/14 05:29:52-07:00 santil@us.ibm.com +1 -0 # PowerPC Virtual Ethernet links to /sys/class/net/ethX # # ChangeSet # 2004/05/14 20:47:05-07:00 santil@us.ibm.com # [PATCH] PowerPC Virtual Ethernet duplicate MAC addresses # # This fixes a bug where different partitions were assigned the same MAC # address. Also, according to Anton, gcc 3.5 didn't like our mac_addr_p # gymnastics, so this ends up fixing that as well. # # drivers/net/ibmveth.c # 2004/05/14 05:32:26-07:00 santil@us.ibm.com +4 -4 # PowerPC Virtual Ethernet duplicate MAC addresses # # ChangeSet # 2004/05/14 20:07:57-07:00 benh@kernel.crashing.org # [PATCH] ppc64: Add proper SMP init on dual 970FX based machines # # This patch fixes SMP boot on Apple Xserve G5 # # ChangeSet # 2004/05/14 19:56:29-07:00 akpm@osdl.org # [PATCH] ppc64 iSeries: allow read only virtual disks # # From: Stephen Rothwell # # It is possible to attach a virtual disk to a logical partition on an iSeries # machine so that it is read only to the partition. This patch allows Linux to # use such virtual disks. # # drivers/block/viodasd.c # 2004/05/14 19:00:27-07:00 akpm@osdl.org +22 -7 # ppc64 iSeries: allow read only virtual disks # # ChangeSet # 2004/05/14 19:56:19-07:00 akpm@osdl.org # [PATCH] ppc64: strengthen I/O and memory barriers # # From: Paul Mackerras # # After I sent the recent patch to include/asm-ppc64/io.h which put stronger # barriers in the I/O accessor macros, Paul McKenney pointed out to me that a # writex/outx could still slide out from inside a spinlocked region. This patch # makes the barriers a bit stronger so that this can't happen. It means that we # need to use a sync instruction for wmb (a full "heavyweight" sync), since # drivers rely on wmb for ordering between writes to system memory and writes to # a device. # # I have left smb_wmb() as a lighter-weight barrier that orders stores, and # doesn't impose an ordering between cacheable and non-cacheable accesses (the # amusingly-named eieio instruction). I am assuming here that smp_wmb is only # used for ordering stores to system memory so that another cpu will see them in # order. It can't be used for enforcing any ordering that a device will see, # because it is just a gcc barrier on UP. # # This also changes the spinlock/rwlock unlock code to use lwsync ("light-weight # sync") rather than eieio, since eieio doesn't order loads, and we need to # ensure that loads stay inside the spinlocked region. # # include/asm-ppc64/system.h # 2004/05/14 19:00:27-07:00 akpm@osdl.org +11 -7 # ppc64: strengthen I/O and memory barriers # # include/asm-ppc64/spinlock.h # 2004/05/14 19:00:27-07:00 akpm@osdl.org +3 -3 # ppc64: strengthen I/O and memory barriers # # include/asm-ppc64/io.h # 2004/05/14 19:00:27-07:00 akpm@osdl.org +15 -14 # ppc64: strengthen I/O and memory barriers # # arch/ppc64/kernel/misc.S # 2004/05/14 19:00:27-07:00 akpm@osdl.org +15 -5 # ppc64: strengthen I/O and memory barriers # # ChangeSet # 2004/05/14 19:56:08-07:00 akpm@osdl.org # [PATCH] ppc64: Kconfig bits for CONFIG_SPINLINE # # From: Paul Mackerras # # When I sent the patch to uninline the spinlocks, I inadvertently left out # the change to arch/ppc64/Kconfig which defines the config symbol for # inlining the locks (CONFIG_SPINLINE now). This patch adds it. It also # adds a symbol CONFIG_PPC_SPLPAR which enables the code for calling the # hypervisor on shared-processor logically-partitioned system to yield the # physical processor to the lock holder when spinning. (The code that # depends on this symbol is already present in arch/ppc64/lib/locks.c.) # # arch/ppc64/Kconfig # 2004/05/14 19:00:27-07:00 akpm@osdl.org +20 -0 # ppc64: Kconfig bits for CONFIG_SPINLINE # # ChangeSet # 2004/05/14 19:55:58-07:00 akpm@osdl.org # [PATCH] ppc64: remove iseries interrupt recursion workaround # # From: Anton Blanchard # # It turns out we do avoid irq recursion on iseries so remove the workaround. # # arch/ppc64/kernel/irq.c # 2004/05/14 19:00:27-07:00 akpm@osdl.org +0 -4 # ppc64: remove iseries interrupt recursion workaround # # ChangeSet # 2004/05/14 19:55:47-07:00 akpm@osdl.org # [PATCH] ppc64: NVRAM fixes # # From: Anton Blanchard # # We check nvram_fetch/nvram_store against -1, so better not make these # unsigned. # # arch/ppc64/kernel/pSeries_nvram.c # 2004/05/14 19:00:27-07:00 akpm@osdl.org +1 -1 # ppc64: NVRAM fixes # # ChangeSet # 2004/05/14 19:55:37-07:00 akpm@osdl.org # [PATCH] ppc64: align some heavily used variables # # From: Anton Blanchard # # Based on feedback from the hardware guys align jiffies and tb_last_stamp. # We update both regularly and there are other read only, heavily accessed # things that share those cachelines. # # arch/ppc64/kernel/time.c # 2004/05/14 19:00:26-07:00 akpm@osdl.org +2 -2 # ppc64: align some heavily used variables # # ChangeSet # 2004/05/14 19:55:26-07:00 akpm@osdl.org # [PATCH] ppc64: set MSR_RI in iseries exception code # # From: Anton Blanchard # # We need to set MSR_RI in iseries exception prolog. # # arch/ppc64/kernel/head.S # 2004/05/14 19:00:26-07:00 akpm@osdl.org +3 -0 # ppc64: set MSR_RI in iseries exception code # # ChangeSet # 2004/05/14 19:55:15-07:00 akpm@osdl.org # [PATCH] ppc64: fix radix tree allocation under spinlock # # From: Anton Blanchard # # We were allocating radix tree nodes in the interrupt code with GFP_KERNEL # under a spinlock. Change it to GFP_ATOMIC. # # arch/ppc64/kernel/xics.c # 2004/05/14 19:00:26-07:00 akpm@osdl.org +1 -1 # ppc64: fix radix tree allocation under spinlock # # ChangeSet # 2004/05/14 19:55:05-07:00 akpm@osdl.org # [PATCH] ppc32: Move declarations into headers # # From: Paul Mackerras # # The patch below moves some declarations from C files into the appropriate # header file in include/asm-ppc (and removes an unused local variable in a # function). # # include/asm-ppc/system.h # 2004/05/14 19:00:26-07:00 akpm@osdl.org +4 -0 # ppc32: Move declarations into headers # # include/asm-ppc/pgtable.h # 2004/05/14 19:00:26-07:00 akpm@osdl.org +2 -0 # ppc32: Move declarations into headers # # arch/ppc/mm/fault.c # 2004/05/14 19:00:26-07:00 akpm@osdl.org +0 -7 # ppc32: Move declarations into headers # # arch/ppc/kernel/traps.c # 2004/05/14 19:00:26-07:00 akpm@osdl.org +0 -3 # ppc32: Move declarations into headers # # ChangeSet # 2004/05/14 19:54:54-07:00 akpm@osdl.org # [PATCH] ppc32: Fix pmac compile after OCP changes # # From: Paul Mackerras # # Matt Porter's recent changes broke the compile for non-4xx ppc32 systems, # unfortunately. I get an error that mfdcr is not defined in # include/asm-ppc/ocp.h when compiling for powermac (reasonable, since the # mfdcr instruction only exists on 4xx processors). The patch below fixes # it. # # include/asm-ppc/ocp.h # 2004/05/14 19:00:26-07:00 akpm@osdl.org +3 -0 # ppc32: Fix pmac compile after OCP changes # # ChangeSet # 2004/05/14 19:54:43-07:00 akpm@osdl.org # [PATCH] PPC32: PPC44x ports for new OCP # # From: Matt Porter # # Merge all current PPC44x ports against new OCP. # # arch/ppc/platforms/4xx/ocotea.h # 2004/05/14 19:00:25-07:00 akpm@osdl.org +7 -4 # PPC32: PPC44x ports for new OCP # # arch/ppc/platforms/4xx/ocotea.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +60 -16 # PPC32: PPC44x ports for new OCP # # arch/ppc/platforms/4xx/ibm440gx.h # 2004/05/14 19:00:25-07:00 akpm@osdl.org +2 -51 # PPC32: PPC44x ports for new OCP # # arch/ppc/platforms/4xx/ibm440gx.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +200 -20 # PPC32: PPC44x ports for new OCP # # arch/ppc/platforms/4xx/ibm440gp.h # 2004/05/14 19:00:25-07:00 akpm@osdl.org +3 -39 # PPC32: PPC44x ports for new OCP # # arch/ppc/platforms/4xx/ibm440gp.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +133 -13 # PPC32: PPC44x ports for new OCP # # arch/ppc/platforms/4xx/ebony.h # 2004/05/14 19:00:25-07:00 akpm@osdl.org +0 -2 # PPC32: PPC44x ports for new OCP # # arch/ppc/platforms/4xx/ebony.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +13 -11 # PPC32: PPC44x ports for new OCP # # arch/ppc/platforms/4xx/ash.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +4 -4 # PPC32: PPC44x ports for new OCP # # arch/ppc/platforms/4xx/Makefile # 2004/05/14 19:00:25-07:00 akpm@osdl.org +4 -2 # PPC32: PPC44x ports for new OCP # # arch/ppc/platforms/4xx/Kconfig # 2004/05/14 19:00:25-07:00 akpm@osdl.org +14 -3 # PPC32: PPC44x ports for new OCP # # ChangeSet # 2004/05/14 19:54:32-07:00 akpm@osdl.org # [PATCH] PPC32: PPC40x ports for new OCP # # From: Matt Porter # # Merge all current PPC40x ports against new OCP. # # arch/ppc/platforms/4xx/walnut.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +3 -0 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/sycamore.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +13 -4 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/redwood5.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +0 -2 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/ibmstbx25.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +43 -14 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/ibmstb4.h # 2004/05/14 19:00:25-07:00 akpm@osdl.org +0 -1 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/ibmstb4.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +69 -13 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/ibmnp405h.h # 2004/05/14 19:00:25-07:00 akpm@osdl.org +0 -23 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/ibmnp405h.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +153 -15 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/ibm405gpr.h # 2004/05/14 19:00:25-07:00 akpm@osdl.org +0 -15 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/ibm405gpr.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +90 -9 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/ibm405gp.h # 2004/05/14 19:00:25-07:00 akpm@osdl.org +0 -19 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/ibm405gp.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +100 -15 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/ep405.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +3 -0 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/cpci405.c # 2004/05/14 19:00:25-07:00 akpm@osdl.org +4 -0 # PPC32: PPC40x ports for new OCP # # arch/ppc/platforms/4xx/ash.h # 2004/05/14 19:00:25-07:00 akpm@osdl.org +0 -1 # PPC32: PPC40x ports for new OCP # # ChangeSet # 2004/05/14 19:54:21-07:00 akpm@osdl.org # [PATCH] PPC32: Update 4xx defconfigs # # From: Matt Porter # # Update all current 4xx defconfigs for new OCP. # # arch/ppc/configs/walnut_defconfig # 2004/05/14 19:00:24-07:00 akpm@osdl.org +11 -3 # PPC32: Update 4xx defconfigs # # arch/ppc/configs/sycamore_defconfig # 2004/05/14 19:00:24-07:00 akpm@osdl.org +202 -102 # PPC32: Update 4xx defconfigs # # arch/ppc/configs/redwood6_defconfig # 2004/05/14 19:00:24-07:00 akpm@osdl.org +72 -60 # PPC32: Update 4xx defconfigs # # arch/ppc/configs/redwood5_defconfig # 2004/05/14 19:00:24-07:00 akpm@osdl.org +73 -72 # PPC32: Update 4xx defconfigs # # arch/ppc/configs/ocotea_defconfig # 2004/05/14 19:00:24-07:00 akpm@osdl.org +77 -69 # PPC32: Update 4xx defconfigs # # arch/ppc/configs/ep405_defconfig # 2004/05/14 19:00:24-07:00 akpm@osdl.org +83 -97 # PPC32: Update 4xx defconfigs # # arch/ppc/configs/ebony_defconfig # 2004/05/14 19:00:24-07:00 akpm@osdl.org +6 -0 # PPC32: Update 4xx defconfigs # # arch/ppc/configs/cpci405_defconfig # 2004/05/14 19:00:24-07:00 akpm@osdl.org +79 -89 # PPC32: Update 4xx defconfigs # # arch/ppc/configs/ash_defconfig # 2004/05/14 19:00:24-07:00 akpm@osdl.org +217 -121 # PPC32: Update 4xx defconfigs # # ChangeSet # 2004/05/14 19:54:10-07:00 akpm@osdl.org # [PATCH] PPC32: 4xx core fixes and 440gx PIC support # # From: Matt Porter # # Merge misc. 4xx core fixes and support for the new cascade scheme in the # 440gx. # # arch/ppc/syslib/ppc4xx_pic.c # 2004/05/14 19:00:24-07:00 akpm@osdl.org +110 -35 # PPC32: 4xx core fixes and 440gx PIC support # # arch/ppc/syslib/ppc405_pci.c # 2004/05/14 19:00:24-07:00 akpm@osdl.org +0 -8 # PPC32: 4xx core fixes and 440gx PIC support # # arch/ppc/kernel/ppc_ksyms.c # 2004/05/14 19:00:24-07:00 akpm@osdl.org +1 -1 # PPC32: 4xx core fixes and 440gx PIC support # # arch/ppc/boot/simple/embed_config.c # 2004/05/14 19:00:24-07:00 akpm@osdl.org +2 -2 # PPC32: 4xx core fixes and 440gx PIC support # # ChangeSet # 2004/05/14 19:53:59-07:00 akpm@osdl.org # [PATCH] PPC32: IBM PPC4xx-specific OCP support # # From: Matt Porter # # Merge PPC4xx-specific OCP support for new OCP core. # # include/asm-ppc/ibm_ocp.h # 2004/05/14 19:00:24-07:00 akpm@osdl.org +163 -0 # PPC32: IBM PPC4xx-specific OCP support # # include/asm-ppc/ibm_ocp.h # 2004/05/14 19:00:24-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-ppc/ibm_ocp.h # # arch/ppc/syslib/ibm_ocp.c # 2004/05/14 19:00:24-07:00 akpm@osdl.org +9 -0 # PPC32: IBM PPC4xx-specific OCP support # # arch/ppc/syslib/ibm_ocp.c # 2004/05/14 19:00:24-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/ibm_ocp.c # # ChangeSet # 2004/05/14 19:53:48-07:00 akpm@osdl.org # [PATCH] PPC32: PPC44x lib support # # From: Matt Porter # # Merge PPC44x library support against new OCP. # # arch/ppc/syslib/ibm44x_common.h # 2004/05/14 19:00:24-07:00 akpm@osdl.org +36 -0 # PPC32: PPC44x lib support # # arch/ppc/syslib/ibm440gx_common.h # 2004/05/14 19:00:24-07:00 akpm@osdl.org +54 -0 # PPC32: PPC44x lib support # # include/asm-ppc/ibm4xx.h # 2004/05/14 19:00:24-07:00 akpm@osdl.org +15 -2 # PPC32: PPC44x lib support # # include/asm-ppc/ibm44x.h # 2004/05/14 19:00:24-07:00 akpm@osdl.org +115 -21 # PPC32: PPC44x lib support # # arch/ppc/syslib/ibm44x_common.h # 2004/05/14 19:00:24-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/ibm44x_common.h # # arch/ppc/syslib/ibm440gx_common.h # 2004/05/14 19:00:24-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/ibm440gx_common.h # # arch/ppc/syslib/ibm440gx_common.c # 2004/05/14 19:00:24-07:00 akpm@osdl.org +212 -0 # PPC32: PPC44x lib support # # arch/ppc/syslib/ibm440gp_common.h # 2004/05/14 19:00:24-07:00 akpm@osdl.org +3 -13 # PPC32: PPC44x lib support # # arch/ppc/syslib/ibm440gp_common.c # 2004/05/14 19:00:24-07:00 akpm@osdl.org +3 -3 # PPC32: PPC44x lib support # # arch/ppc/syslib/Makefile # 2004/05/14 19:00:24-07:00 akpm@osdl.org +2 -0 # PPC32: PPC44x lib support # # arch/ppc/syslib/ibm440gx_common.c # 2004/05/14 19:00:24-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/ibm440gx_common.c # # ChangeSet # 2004/05/14 19:53:37-07:00 akpm@osdl.org # [PATCH] PPC32: Bubinga/405EP for new OCP # # From: Matt Porter # # Merge Bubinga/405EP support against new OCP. # # arch/ppc/platforms/4xx/ibm405ep.h # 2004/05/14 19:00:23-07:00 akpm@osdl.org +148 -0 # PPC32: Bubinga/405EP for new OCP # # arch/ppc/platforms/4xx/ibm405ep.c # 2004/05/14 19:00:23-07:00 akpm@osdl.org +134 -0 # PPC32: Bubinga/405EP for new OCP # # arch/ppc/platforms/4xx/bubinga.h # 2004/05/14 19:00:23-07:00 akpm@osdl.org +69 -0 # PPC32: Bubinga/405EP for new OCP # # arch/ppc/platforms/4xx/bubinga.c # 2004/05/14 19:00:23-07:00 akpm@osdl.org +263 -0 # PPC32: Bubinga/405EP for new OCP # # arch/ppc/configs/bubinga_defconfig # 2004/05/14 19:00:23-07:00 akpm@osdl.org +593 -0 # PPC32: Bubinga/405EP for new OCP # # arch/ppc/platforms/4xx/ibm405ep.h # 2004/05/14 19:00:23-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/4xx/ibm405ep.h # # arch/ppc/platforms/4xx/ibm405ep.c # 2004/05/14 19:00:23-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/4xx/ibm405ep.c # # arch/ppc/platforms/4xx/bubinga.h # 2004/05/14 19:00:23-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/4xx/bubinga.h # # arch/ppc/platforms/4xx/bubinga.c # 2004/05/14 19:00:23-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/4xx/bubinga.c # # arch/ppc/configs/bubinga_defconfig # 2004/05/14 19:00:23-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/configs/bubinga_defconfig # # ChangeSet # 2004/05/14 19:53:26-07:00 akpm@osdl.org # [PATCH] PPC32: New OCP core support (updated) # # From: Matt Porter # # New OCP infrastructure ported from 2.4 along with several enhancements. # Updated patch with comments from hch and Valdis. # # arch/ppc/syslib/ocp.c # 2004/05/14 19:53:20-07:00 akpm@osdl.org +493 -0 # # include/asm-ppc/ocp_ids.h # 2004/05/14 19:00:23-07:00 akpm@osdl.org +17 -50 # PPC32: New OCP core support (updated) # # include/asm-ppc/ocp.h # 2004/05/14 19:00:23-07:00 akpm@osdl.org +119 -120 # PPC32: New OCP core support (updated) # # arch/ppc/syslib/ocp.c # 2004/05/14 19:53:20-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/ocp.c # # arch/ppc/syslib/Makefile # 2004/05/14 19:00:23-07:00 akpm@osdl.org +1 -0 # PPC32: New OCP core support (updated) # # arch/ppc/kernel/setup.c # 2004/05/14 19:00:23-07:00 akpm@osdl.org +7 -0 # PPC32: New OCP core support (updated) # # arch/ppc/Makefile # 2004/05/14 19:00:23-07:00 akpm@osdl.org +0 -1 # PPC32: New OCP core support (updated) # # arch/ppc/Kconfig # 2004/05/14 19:00:23-07:00 akpm@osdl.org +1 -1 # PPC32: New OCP core support (updated) # # BitKeeper/deleted/.del-ocp-probe.c~bab4d61fdc04beeb # 2004/05/14 19:53:20-07:00 akpm@osdl.org +0 -0 # Delete: arch/ppc/ocp/ocp-probe.c # # BitKeeper/deleted/.del-ocp-driver.c~a891b4ae6c107073 # 2004/05/14 19:53:20-07:00 akpm@osdl.org +0 -0 # Delete: arch/ppc/ocp/ocp-driver.c # # BitKeeper/deleted/.del-ocp.c~7c0024f74323dc24 # 2004/05/14 19:53:19-07:00 akpm@osdl.org +0 -0 # Delete: arch/ppc/ocp/ocp.c # # BitKeeper/deleted/.del-Makefile~fe51e4a3cf9d7a4d # 2004/05/14 19:53:19-07:00 akpm@osdl.org +0 -0 # Delete: arch/ppc/ocp/Makefile # # ChangeSet # 2004/05/14 19:52:43-07:00 akpm@osdl.org # [PATCH] PPC32: Add Book E / PPC44x specific exception support # # From: Matt Porter # # Adds general Book E machine check exception support and PPC44x-specific # machine check exception implementation. # # include/asm-ppc/reg_booke.h # 2004/05/14 19:00:23-07:00 akpm@osdl.org +16 -0 # PPC32: Add Book E / PPC44x specific exception support # # include/asm-ppc/ppc_asm.h # 2004/05/14 19:00:23-07:00 akpm@osdl.org +2 -0 # PPC32: Add Book E / PPC44x specific exception support # # arch/ppc/kernel/traps.c # 2004/05/14 19:00:23-07:00 akpm@osdl.org +30 -1 # PPC32: Add Book E / PPC44x specific exception support # # arch/ppc/kernel/head_44x.S # 2004/05/14 19:00:23-07:00 akpm@osdl.org +151 -46 # PPC32: Add Book E / PPC44x specific exception support # # arch/ppc/kernel/entry.S # 2004/05/14 19:00:23-07:00 akpm@osdl.org +84 -1 # PPC32: Add Book E / PPC44x specific exception support # # ChangeSet # 2004/05/14 19:52:31-07:00 akpm@osdl.org # [PATCH] PPC32: Add Book E / PPC44x specific exception support # # From: Matt Porter # # Adds general Book E debug exception support and PPC44x-specific debug # exception implementation. # # include/asm-ppc/reg_booke.h # 2004/05/14 19:00:22-07:00 akpm@osdl.org +1 -0 # PPC32: Add Book E / PPC44x specific exception support # # arch/ppc/kernel/head_44x.S # 2004/05/14 19:00:22-07:00 akpm@osdl.org +82 -83 # PPC32: Add Book E / PPC44x specific exception support # # arch/ppc/kernel/entry.S # 2004/05/14 19:00:22-07:00 akpm@osdl.org +32 -12 # PPC32: Add Book E / PPC44x specific exception support # # ChangeSet # 2004/05/14 19:52:21-07:00 akpm@osdl.org # [PATCH] PPC32: Fix copy prefetch on non coherent PPCs # # From: Matt Porter # # This patch fixes the condition where prefetching cache lines beyond a # buffer can cause data corruption on non cache coherent PPCs. It is a port # of the version that went into 2.4. From Eugene Surovegin # . # # arch/ppc/lib/string.S # 2004/05/14 19:00:22-07:00 akpm@osdl.org +38 -24 # PPC32: Fix copy prefetch on non coherent PPCs # # arch/ppc/kernel/misc.S # 2004/05/14 19:00:22-07:00 akpm@osdl.org +21 -9 # PPC32: Fix copy prefetch on non coherent PPCs # # ChangeSet # 2004/05/14 19:52:10-07:00 akpm@osdl.org # [PATCH] PPC32: Fix __flush_dcache_icache_phys() for Book E # # From: Matt Porter # # This patch implements/uses __flush_dcache_icache_page() which kmaps on a # Book E part, but keeps the existing behavior on other PowerPCs which can # disable the MMU. # # include/asm-ppc/cacheflush.h # 2004/05/14 19:00:22-07:00 akpm@osdl.org +1 -1 # PPC32: Fix __flush_dcache_icache_phys() for Book E # # arch/ppc/mm/init.c # 2004/05/14 19:00:22-07:00 akpm@osdl.org +11 -1 # PPC32: Fix __flush_dcache_icache_phys() for Book E # # arch/ppc/mm/fault.c # 2004/05/14 19:00:22-07:00 akpm@osdl.org +1 -2 # PPC32: Fix __flush_dcache_icache_phys() for Book E # # ChangeSet # 2004/05/14 19:51:59-07:00 akpm@osdl.org # [PATCH] export clear_pages on ppc32 # # From: Olaf Hering # # ext3 as module is not possible in 2.6.6, clear_pages, called from clear_page, # is not exported. # # Also, unexport clear_page(), which is an inline. # # arch/ppc/kernel/ppc_ksyms.c # 2004/05/14 19:00:22-07:00 akpm@osdl.org +1 -1 # export clear_pages on ppc32 # # ChangeSet # 2004/05/14 19:51:48-07:00 akpm@osdl.org # [PATCH] befs: inode->i_flags thinko fix # # Jorn Engel # # inode->i_flags should never contain fs-specific flags. In fact, it doesn't; # the checks against it cause "chattr +T" to be useless for ext[23]. Same bug # was in befs as well. # # fs/befs/linuxvfs.c # 2004/05/14 19:00:21-07:00 akpm@osdl.org +1 -1 # befs: inode->i_flags thinko fix # # ChangeSet # 2004/05/14 19:51:37-07:00 akpm@osdl.org # [PATCH] befs: maintainer update # # From: "Sergey S. Kostyliov" # # Acked by Will Dyson. # # Documentation/filesystems/befs.txt # 2004/05/14 19:00:21-07:00 akpm@osdl.org +4 -2 # befs: maintainer update # # ChangeSet # 2004/05/14 19:51:27-07:00 akpm@osdl.org # [PATCH] befs: debugging code cleanup # # From: "Sergey S. Kostyliov" # # - Reduce stack usage. # - Kill useless duplication of error and warning messages when debug is on. Old # behaviour was: # ... # BeFS(hda1): # # fs/befs/debug.c # 2004/05/14 19:00:21-07:00 akpm@osdl.org +23 -6 # befs: debugging code cleanup # # ChangeSet # 2004/05/14 19:51:16-07:00 akpm@osdl.org # [PATCH] befs: typo fix # # From: "Sergey S. Kostyliov" # # Fix really old typo in config help # # fs/Kconfig # 2004/05/14 19:00:21-07:00 akpm@osdl.org +1 -1 # befs: typo fix # # ChangeSet # 2004/05/14 19:51:06-07:00 akpm@osdl.org # [PATCH] befs: binary search microoptimisation # # From: "Sergey S. Kostyliov" # # Move value initialisation out of the loop body. # # fs/befs/btree.c # 2004/05/14 19:00:21-07:00 akpm@osdl.org +3 -1 # befs: binary search microoptimisation # # ChangeSet # 2004/05/14 19:50:55-07:00 akpm@osdl.org # [PATCH] befs: microoptimisation, use befs_bread() instead of befs_bread_iaddr() # # From: "Sergey S. Kostyliov" # # We already have block number (inode->i_ino), so there is no need to calculate # it from befs_block_run before sb_bread() call (this is what befs_bread_iaddr() # do). # # fs/befs/linuxvfs.c # 2004/05/14 19:00:20-07:00 akpm@osdl.org +1 -1 # befs: microoptimisation, use befs_bread() instead of befs_bread_iaddr() # # ChangeSet # 2004/05/14 19:50:44-07:00 akpm@osdl.org # [PATCH] befs: LBD support # # From: "Sergey S. Kostyliov" # # LBD patch merged long time ago, so it is safe to pass u64 block numbers to # sb_bread() when sector_t is large enough. # # fs/befs/linuxvfs.c # 2004/05/14 19:00:20-07:00 akpm@osdl.org +7 -0 # befs: LBD support # # fs/befs/io.c # 2004/05/14 19:00:20-07:00 akpm@osdl.org +3 -18 # befs: LBD support # # fs/befs/befs.h # 2004/05/14 19:00:20-07:00 akpm@osdl.org +0 -3 # befs: LBD support # # ChangeSet # 2004/05/14 19:50:33-07:00 akpm@osdl.org # [PATCH] s390: network driver # # From: Martin Schwidefsky # # Network driver changes: # - lcs: Add missing irb error checking. # - lcs: Fix multicasting. # - lcs: Use a seperate lock (ipm_lock) for multicast list. # - lcs: Add missing in_dev_put in multicase address list handling. # - iucv: Set static variables to NULL after kfree. # - iucv: Do bus_unregister if module initialization fails. # - netiucv: Convert iucvMagic to EBCDIC in con_action_start. # - netiucv: Remove administration of ifno-stuff for device name, # - netiucv: Add attribute to remove a netiucv device. # - qeth: Add version string that is displayed at driver load time. # - qeth: Fix memory leak in qeth_arp_query. # - qeth: Remove duplicate case statements in qeth_do_ioctl. # - qeth: Fix OSA broadcast filtering. # - qeth: Increase timeout for purge ARP cache IPA. # - qeth: Fix hsi device naming. # - qeth: Add do_QDIO count to qeth performance statistics. # - qeth: Allow writing to IP address takeover attribute only in # state DOWN or RECOVER. # - qeth: Fix hang when removing a vlan device. # - qeth: Cleanup error messages for ARP commands. # - qeth: Return EOPNOTSUPP for purge ARP on HiperSockets. # - qeth: Drop skbs if the net_device of a qeth device is down. # - qeth: Simplify ip address list processing. # # include/asm-s390/qeth.h # 2004/05/14 19:00:20-07:00 akpm@osdl.org +7 -9 # s390: network driver # # drivers/s390/net/qeth_sys.c # 2004/05/14 19:00:20-07:00 akpm@osdl.org +7 -1 # s390: network driver # # drivers/s390/net/qeth_proc.c # 2004/05/14 19:00:20-07:00 akpm@osdl.org +19 -7 # s390: network driver # # drivers/s390/net/qeth_mpc.h # 2004/05/14 19:00:20-07:00 akpm@osdl.org +34 -31 # s390: network driver # # drivers/s390/net/qeth_mpc.c # 2004/05/14 19:00:20-07:00 akpm@osdl.org +3 -2 # s390: network driver # # drivers/s390/net/qeth_main.c # 2004/05/14 19:00:20-07:00 akpm@osdl.org +272 -203 # s390: network driver # # drivers/s390/net/qeth_fs.h # 2004/05/14 19:00:20-07:00 akpm@osdl.org +5 -0 # s390: network driver # # drivers/s390/net/qeth.h # 2004/05/14 19:00:20-07:00 akpm@osdl.org +8 -4 # s390: network driver # # drivers/s390/net/netiucv.c # 2004/05/14 19:00:20-07:00 akpm@osdl.org +88 -28 # s390: network driver # # drivers/s390/net/lcs.h # 2004/05/14 19:00:20-07:00 akpm@osdl.org +2 -1 # s390: network driver # # drivers/s390/net/lcs.c # 2004/05/14 19:00:20-07:00 akpm@osdl.org +71 -28 # s390: network driver # # drivers/s390/net/iucv.c # 2004/05/14 19:00:20-07:00 akpm@osdl.org +12 -6 # s390: network driver # # ChangeSet # 2004/05/14 19:50:22-07:00 akpm@osdl.org # [PATCH] s390: zfcp host adapter # # From: Martin Schwidefsky # # zfcp host adapter change: # - Prevent infinite retry of SCSI commands when FCP adapter is unavailable. # - Always queue error recovery structure to the error recovery running list. # - Add help text to zfcp config option. # # drivers/scsi/Kconfig # 2004/05/14 19:00:20-07:00 akpm@osdl.org +10 -1 # s390: zfcp host adapter # # drivers/s390/scsi/zfcp_fsf.c # 2004/05/14 19:00:20-07:00 akpm@osdl.org +2 -2 # s390: zfcp host adapter # # drivers/s390/scsi/zfcp_erp.c # 2004/05/14 19:00:20-07:00 akpm@osdl.org +3 -2 # s390: zfcp host adapter # # drivers/s390/scsi/zfcp_ccw.c # 2004/05/14 19:00:20-07:00 akpm@osdl.org +7 -1 # s390: zfcp host adapter # # ChangeSet # 2004/05/14 19:50:11-07:00 akpm@osdl.org # [PATCH] s390: 3270 console driver # # From: Martin Schwidefsky # # 3270 device driver change: # - Don't allow activation of views while the initial size sensing is still # in progress. Replace RAW3270_FLAGS_SHUTDOWN with RAW3270_FLAGS_READY. # - Make 3270 views loadable as modules. # # drivers/s390/char/tty3270.c # 2004/05/14 19:00:19-07:00 akpm@osdl.org +33 -4 # s390: 3270 console driver # # drivers/s390/char/raw3270.h # 2004/05/14 19:00:19-07:00 akpm@osdl.org +4 -3 # s390: 3270 console driver # # drivers/s390/char/raw3270.c # 2004/05/14 19:00:19-07:00 akpm@osdl.org +93 -36 # s390: 3270 console driver # # drivers/s390/char/Makefile # 2004/05/14 19:00:19-07:00 akpm@osdl.org +3 -2 # s390: 3270 console driver # # drivers/s390/Kconfig # 2004/05/14 19:00:19-07:00 akpm@osdl.org +18 -7 # s390: 3270 console driver # # arch/s390/defconfig # 2004/05/14 19:00:19-07:00 akpm@osdl.org +2 -0 # s390: 3270 console driver # # ChangeSet # 2004/05/14 19:50:00-07:00 akpm@osdl.org # [PATCH] s390: dasd driver # # From: Martin Schwidefsky # # dasd driver changes: # - Do error recovery for error recovery requests. # - Retry request if the start_IO failed because of a timeout. # # drivers/s390/block/dasd_erp.c # 2004/05/14 19:00:19-07:00 akpm@osdl.org +3 -2 # s390: dasd driver # # drivers/s390/block/dasd_eckd.c # 2004/05/14 19:00:19-07:00 akpm@osdl.org +2 -2 # s390: dasd driver # # drivers/s390/block/dasd.c # 2004/05/14 19:00:19-07:00 akpm@osdl.org +11 -10 # s390: dasd driver # # ChangeSet # 2004/05/14 19:49:49-07:00 akpm@osdl.org # [PATCH] s390: common i/o layer # # From: Martin Schwidefsky # # Common i/o layer changes: # - Delay unregister/register of ccw devices reappering on a different # subchannel. Search for the old ccw_device & subchannel for the # reattached device and deregister it too to avoid inconsistencies. # - Fix path grouping for devices that present command reject for # SetPGID but not for SensePGID. # # drivers/s390/cio/device_pgid.c # 2004/05/14 19:00:19-07:00 akpm@osdl.org +4 -0 # s390: common i/o layer # # drivers/s390/cio/device_fsm.c # 2004/05/14 19:00:19-07:00 akpm@osdl.org +7 -4 # s390: common i/o layer # # drivers/s390/cio/device.c # 2004/05/14 19:00:19-07:00 akpm@osdl.org +83 -9 # s390: common i/o layer # # drivers/s390/cio/css.c # 2004/05/14 19:00:19-07:00 akpm@osdl.org +16 -7 # s390: common i/o layer # # ChangeSet # 2004/05/14 19:49:38-07:00 akpm@osdl.org # [PATCH] s390: core # # From: Martin Schwidefsky # # s390 core changes: # - Rename idle_cpu_mask to nohz_cpu_mask as agreed with Dipankar. # - Refine compiler version check for "Q" constraints in uaccess.h. # - Store per process ptrace information to the correct place. # - Fix per cpu data access for 64-bit modules. # - Add topology_init function for cpu hotplug. # - Define TASK_SIZE dependent on TIF_31BIT and define MM_VM_SIZE # to 4TB to get rid of elf_map32 and arch_get_unmapped_area. # # kernel/sched.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +3 -3 # s390: core # # kernel/rcupdate.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +1 -1 # s390: core # # include/linux/sched.h # 2004/05/14 19:00:18-07:00 akpm@osdl.org +1 -1 # s390: core # # include/asm-s390/uaccess.h # 2004/05/14 19:00:18-07:00 akpm@osdl.org +2 -2 # s390: core # # include/asm-s390/processor.h # 2004/05/14 19:00:18-07:00 akpm@osdl.org +7 -4 # s390: core # # include/asm-s390/pgtable.h # 2004/05/14 19:00:18-07:00 akpm@osdl.org +0 -4 # s390: core # # include/asm-s390/percpu.h # 2004/05/14 19:00:18-07:00 akpm@osdl.org +18 -2 # s390: core # # arch/s390/mm/init.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +1 -1 # s390: core # # arch/s390/kernel/time.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +3 -3 # s390: core # # arch/s390/kernel/sys_s390.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +0 -32 # s390: core # # arch/s390/kernel/smp.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +19 -0 # s390: core # # arch/s390/kernel/module.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +2 -1 # s390: core # # arch/s390/kernel/entry64.S # 2004/05/14 19:00:18-07:00 akpm@osdl.org +9 -7 # s390: core # # arch/s390/kernel/entry.S # 2004/05/14 19:00:18-07:00 akpm@osdl.org +9 -7 # s390: core # # arch/s390/kernel/compat_exec.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +0 -3 # s390: core # # arch/s390/kernel/binfmt_elf32.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +1 -22 # s390: core # # arch/s390/defconfig # 2004/05/14 19:00:18-07:00 akpm@osdl.org +2 -1 # s390: core # # ChangeSet # 2004/05/14 19:49:27-07:00 akpm@osdl.org # [PATCH] Add del_single_shot_timer() # # From: Geoff Gustafson , # "Chen, Kenneth W" , # Ingo Molnar , # me. # # The big-SMP guys are seeing high CPU load due to del_timer_sync()'s # inefficiencies. The callers are fs/aio.c and schedule_timeout(). # # We note that neither of these callers' timer handlers actually re-add the # timer - they are single-shot. # # So we don't need all that complexity in del_timer_sync() - we can just run # del_timer() and if that worked we know the timer is dead. # # Add del_single_shot_timer(), export it to modules and use it in AIO and # schedule_timeout(). # # # (these numbers are for an earlier patch, but they'll be close) # # Before: 32p 4p # Warm cache 29,000 505 # Cold cache 37,800 1220 # # After: 32p 4p # Warm cache 95 88 # Cold cache 1,800 140 # # [Measurements are CPU cycles spent in a call to del_timer_sync, the average # of 1000 calls. 32p is 16-node NUMA, 4p is SMP.] # # (I cleaned up a few things and added some commentary) # # kernel/timer.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +38 -4 # Add del_single_shot_timer() # # include/linux/timer.h # 2004/05/14 19:00:18-07:00 akpm@osdl.org +3 -1 # Add del_single_shot_timer() # # fs/aio.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +1 -1 # Add del_single_shot_timer() # # ChangeSet # 2004/05/14 19:49:16-07:00 akpm@osdl.org # [PATCH] H8/300: more cleanup # # From: Yoshinori Sato # # - gcc-3.4 warning fix. # - io access address fix. # - cleanup code. # # include/asm-h8300/timex.h # 2004/05/14 19:00:18-07:00 akpm@osdl.org +1 -5 # H8/300: more cleanup # # include/asm-h8300/semaphore.h # 2004/05/14 19:00:18-07:00 akpm@osdl.org +12 -12 # H8/300: more cleanup # # include/asm-h8300/io.h # 2004/05/14 19:00:18-07:00 akpm@osdl.org +18 -14 # H8/300: more cleanup # # arch/h8300/platform/h8s/generic/timer.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +17 -7 # H8/300: more cleanup # # arch/h8300/platform/h8s/edosk2674/timer.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +17 -14 # H8/300: more cleanup # # arch/h8300/platform/h8300h/ptrace_h8300h.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +4 -2 # H8/300: more cleanup # # arch/h8300/platform/h8300h/h8max/timer.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +11 -4 # H8/300: more cleanup # # arch/h8300/platform/h8300h/generic/timer.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +28 -21 # H8/300: more cleanup # # arch/h8300/platform/h8300h/aki3068net/timer.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +11 -4 # H8/300: more cleanup # # arch/h8300/mm/init.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +3 -3 # H8/300: more cleanup # # arch/h8300/kernel/traps.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +6 -0 # H8/300: more cleanup # # arch/h8300/kernel/process.c # 2004/05/14 19:00:18-07:00 akpm@osdl.org +6 -7 # H8/300: more cleanup # # ChangeSet # 2004/05/14 19:49:05-07:00 akpm@osdl.org # [PATCH] H8/300: delete headers # # From: Yoshinori Sato # # - Delete obsolete header files # # arch/h8300/Makefile # 2004/05/14 19:00:17-07:00 akpm@osdl.org +2 -7 # H8/300: delete headers # # BitKeeper/deleted/.del-machine-depend.h~74b77fb056f4de47 # 2004/05/14 19:49:00-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-h8300/h8max/machine-depend.h # # BitKeeper/deleted/.del-timer_rate.h~a6bae69a4678b24d # 2004/05/14 19:48:59-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-h8300/generic/timer_rate.h # # BitKeeper/deleted/.del-machine-depend.h~590c96cd416b17cc # 2004/05/14 19:48:59-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-h8300/aki3068net/machine-depend.h # # BitKeeper/deleted/.del-machine-depend.h~48f02aa4daf3fe51 # 2004/05/14 19:48:59-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-h8300/edosk2674/machine-depend.h # # BitKeeper/deleted/.del-machine-depend.h~1002669f4725299 # 2004/05/14 19:48:59-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-h8300/generic/machine-depend.h # # BitKeeper/deleted/.del-h8300_smsc.h~76f44462fbd3ce56 # 2004/05/14 19:48:59-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-h8300/h8300_smsc.h # # ChangeSet # 2004/05/14 19:48:53-07:00 akpm@osdl.org # [PATCH] H8/300: Kconfig # # From: Yoshinori Sato # # - Separate taget depends config. # # arch/h8300/Kconfig.cpu # 2004/05/14 19:00:17-07:00 akpm@osdl.org +183 -0 # H8/300: Kconfig # # arch/h8300/Kconfig # 2004/05/14 19:00:17-07:00 akpm@osdl.org +1 -116 # H8/300: Kconfig # # arch/h8300/Kconfig.cpu # 2004/05/14 19:00:17-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/h8300/Kconfig.cpu # # ChangeSet # 2004/05/14 19:48:42-07:00 akpm@osdl.org # [PATCH] H8/300: ne driver # # From: Yoshinori Sato # # - ne2k compatible NIC support # # drivers/net/ne-h8300.c # 2004/05/14 19:00:17-07:00 akpm@osdl.org +657 -0 # H8/300: ne driver # # drivers/net/ne-h8300.c # 2004/05/14 19:00:17-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/net/ne-h8300.c # # drivers/net/Space.c # 2004/05/14 19:00:17-07:00 akpm@osdl.org +2 -1 # H8/300: ne driver # # drivers/net/Makefile # 2004/05/14 19:00:17-07:00 akpm@osdl.org +1 -0 # H8/300: ne driver # # drivers/net/Kconfig # 2004/05/14 19:00:17-07:00 akpm@osdl.org +7 -0 # H8/300: ne driver # # drivers/net/8390.h # 2004/05/14 19:00:17-07:00 akpm@osdl.org +1 -1 # H8/300: ne driver # # ChangeSet # 2004/05/14 19:48:31-07:00 akpm@osdl.org # [PATCH] H8/300: SCI driver fix # # From: Yoshinori Sato # # - fix h8300 depend setup sequence # # drivers/serial/sh-sci.c # 2004/05/14 19:00:17-07:00 akpm@osdl.org +15 -5 # H8/300: SCI driver fix # # ChangeSet # 2004/05/14 19:48:20-07:00 akpm@osdl.org # [PATCH] H8/300: preempt support # # From: Yoshinori Sato # # - add preempt support # - add new syscalls # - code cleanup # # include/asm-h8300/thread_info.h # 2004/05/14 19:00:16-07:00 akpm@osdl.org +7 -5 # H8/300: preempt support # # include/asm-h8300/hardirq.h # 2004/05/14 19:00:16-07:00 akpm@osdl.org +1 -1 # H8/300: preempt support # # arch/h8300/platform/h8s/entry.S # 2004/05/14 19:00:16-07:00 akpm@osdl.org +48 -33 # H8/300: preempt support # # arch/h8300/platform/h8300h/entry.S # 2004/05/14 19:00:16-07:00 akpm@osdl.org +47 -32 # H8/300: preempt support # # arch/h8300/kernel/syscalls.S # 2004/05/14 19:00:16-07:00 akpm@osdl.org +19 -16 # H8/300: preempt support # # ChangeSet # 2004/05/14 19:48:09-07:00 akpm@osdl.org # [PATCH] H/8300 pic support fix # # From: Yoshinori Sato # # Sorry. There was the file which lacked. # # include/asm-h8300/sigcontext.h # 2004/05/14 19:00:16-07:00 akpm@osdl.org +1 -0 # H/8300 pic support fix # # ChangeSet # 2004/05/14 19:47:58-07:00 akpm@osdl.org # [PATCH] H8/300: pic support # # From: Yoshinori Sato # # - add PIC binary support # # include/asm-v850/flat.h # 2004/05/14 19:00:16-07:00 akpm@osdl.org +2 -1 # H8/300: pic support # # include/asm-sh/flat.h # 2004/05/14 19:00:16-07:00 akpm@osdl.org +1 -1 # H8/300: pic support # # include/asm-m68knommu/flat.h # 2004/05/14 19:00:16-07:00 akpm@osdl.org +1 -1 # H8/300: pic support # # include/asm-h8300/processor.h # 2004/05/14 19:00:16-07:00 akpm@osdl.org +13 -5 # H8/300: pic support # # include/asm-h8300/flat.h # 2004/05/14 19:00:16-07:00 akpm@osdl.org +2 -1 # H8/300: pic support # # fs/binfmt_flat.c # 2004/05/14 19:00:16-07:00 akpm@osdl.org +1 -1 # H8/300: pic support # # arch/h8300/kernel/signal.c # 2004/05/14 19:00:16-07:00 akpm@osdl.org +4 -0 # H8/300: pic support # # ChangeSet # 2004/05/14 19:47:47-07:00 akpm@osdl.org # [PATCH] H8/300: ldscripts fix # # From: Yoshinori Sato # # - symbol prefix (use h8300 and v850) support # - include headers # # include/asm-generic/vmlinux.lds.h # 2004/05/14 19:00:16-07:00 akpm@osdl.org +16 -12 # H8/300: ldscripts fix # # arch/v850/kernel/vmlinux.lds.S # 2004/05/14 19:00:16-07:00 akpm@osdl.org +1 -0 # H8/300: ldscripts fix # # arch/h8300/kernel/vmlinux.lds.S # 2004/05/14 19:00:16-07:00 akpm@osdl.org +3 -0 # H8/300: ldscripts fix # # ChangeSet # 2004/05/14 19:47:36-07:00 akpm@osdl.org # [PATCH] H8/300: bitops.h add find_next_bit # # From: Yoshinori Sato # # - add find_next_bit # # include/asm-h8300/bitops.h # 2004/05/14 19:00:16-07:00 akpm@osdl.org +52 -13 # H8/300: bitops.h add find_next_bit # # ChangeSet # 2004/05/14 19:47:27-07:00 akpm@osdl.org # [PATCH] dentry layout tweaks # # Lookup typically touches three fields of the dentry: d_bucket, d_name.hash and # d_parent. # # Change the layout of things so that these will always be in the same # cacheline. # # include/linux/dcache.h # 2004/05/14 19:00:15-07:00 akpm@osdl.org +15 -4 # dentry layout tweaks # # ChangeSet # 2004/05/14 19:47:16-07:00 akpm@osdl.org # [PATCH] more dentry shrinkage # # - d_vfs_flags can be removed - just use d_flags. All modifications of # dentry->d_flags are under dentry->d_lock. # # On x86 this takes the internal string size up to 40 bytes. The # internal/external ratio on my 1.5M files hits 96%. # # include/linux/dcache.h # 2004/05/14 19:00:15-07:00 akpm@osdl.org +13 -13 # more dentry shrinkage # # fs/dcache.c # 2004/05/14 19:00:15-07:00 akpm@osdl.org +9 -9 # more dentry shrinkage # # ChangeSet # 2004/05/14 19:47:06-07:00 akpm@osdl.org # [PATCH] dentry d_bucket fix # # The gap between checking d_bucket and sampling d_move_count looks like a bug # to me. # # It feels safer to be checking d_bucket after taking the lock, when we know # that it is stable. # # And it's a little faster to check d_bucket after having checked the hash # rather than before. # # fs/dcache.c # 2004/05/14 19:00:15-07:00 akpm@osdl.org +8 -6 # dentry d_bucket fix # # ChangeSet # 2004/05/14 19:46:55-07:00 akpm@osdl.org # [PATCH] dentry qstr consolidation # # When dentries are given an external name we currently allocate an entire qstr # for the external name. # # This isn't needed. We can use the internal qstr and kmalloc only the string # itself. This saves 12 bytes from externally-allocated names and 4 bytes from # the dentry itself. # # The saving of 4 bytes from the dentry doesn't actually decrease the dentry's # storage requirements, but it makes four more bytes available for internal # names, taking the internal/external ratio from 89% up to 93% on my 1.5M files. # # # Fix: # # The qstr consolidation wasn't quite right, because it can cause qstr->len to # be unstable during lookup lockless traverasl. # # Fix that up by taking d_lock earlier in lookup. This serialises against # d_move. # # Take the lock after comparing the parent and hash to preserve the # mostly-lockless behaviour. # # This obsoletes d_movecount, which is removed. # # include/linux/dcache.h # 2004/05/14 19:00:15-07:00 akpm@osdl.org +10 -13 # dentry qstr consolidation # # fs/dcache.c # 2004/05/14 19:00:15-07:00 akpm@osdl.org +71 -67 # dentry qstr consolidation # # ChangeSet # 2004/05/14 19:46:44-07:00 akpm@osdl.org # [PATCH] dentry shrinkage # # Rework dentries so that the inline name length is between 31 and 48 bytes. # # On SMP P4-compiled x86 each dentry consumes 160 bytes (24 per page). # # Here's the histogram of name lengths on all 1.5M files on my workstation: # # 1: 0% # 2: 0% # 3: 1% # 4: 5% # 5: 8% # 6: 13% # 7: 19% # 8: 26% # 9: 33% # 10: 42% # 11: 49% # 12: 55% # 13: 60% # 14: 64% # 15: 67% # 16: 69% # 17: 71% # 18: 73% # 19: 75% # 20: 76% # 21: 78% # 22: 79% # 23: 80% # 24: 81% # 25: 82% # 26: 83% # 27: 85% # 28: 86% # 29: 87% # 30: 88% # 31: 89% # 32: 90% # 33: 91% # 34: 92% # 35: 93% # 36: 94% # 37: 95% # 38: 96% # 39: 96% # 40: 96% # 41: 96% # 42: 96% # 43: 96% # 44: 97% # 45: 97% # 46: 97% # 47: 97% # 48: 97% # 49: 98% # 50: 98% # 51: 98% # 52: 98% # 53: 98% # 54: 98% # 55: 98% # 56: 98% # 57: 98% # 58: 98% # 59: 98% # 60: 99% # 61: 99% # 62: 99% # 63: 99% # 64: 99% # # So on x86 we'll fit 89% of filenames into the inline name. # # # The patch also removes the NAME_ALLOC_LEN() rounding-up of the storage for the # out-of-line names. That seems unnecessary. # # include/linux/dcache.h # 2004/05/14 19:00:14-07:00 akpm@osdl.org +1 -5 # dentry shrinkage # # fs/dcache.c # 2004/05/14 19:00:14-07:00 akpm@osdl.org +9 -5 # dentry shrinkage # # ChangeSet # 2004/05/14 19:46:33-07:00 akpm@osdl.org # [PATCH] d_vfs_flags locking fix # # Be consistent about d_vfs_flags locking: take dentry->d_lock when modifying # it. # # fs/dcache.c # 2004/05/14 19:00:14-07:00 akpm@osdl.org +2 -0 # d_vfs_flags locking fix # # ChangeSet # 2004/05/14 19:46:23-07:00 akpm@osdl.org # [PATCH] d_flags locking fixes # # A few filesystems modify dentry.d_flags under non-obvious locking. To # consolidate that field wth d_vfs_flags they need to take ->d_lock # # fs/nfs/unlink.c # 2004/05/14 19:00:14-07:00 akpm@osdl.org +4 -0 # d_flags locking fixes # # fs/exportfs/expfs.c # 2004/05/14 19:00:14-07:00 akpm@osdl.org +4 -0 # d_flags locking fixes # # fs/autofs4/root.c # 2004/05/14 19:00:14-07:00 akpm@osdl.org +8 -1 # d_flags locking fixes # # fs/afs/dir.c # 2004/05/14 19:00:14-07:00 akpm@osdl.org +2 -0 # d_flags locking fixes # # ChangeSet # 2004/05/14 19:46:12-07:00 akpm@osdl.org # [PATCH] I2O subsystem fixing and cleanup for 2.6 - i2o-makefile-cleanup.patch # # From: Markus Lidel # # * The Kconfig and Makefile in drivers/message/i2o still got a CONFIG_I2O_PCI # entry, which is not used anymore. This one is replaced by a # CONFIG_I2O_CONFIG entry, which now builds the i2o_config module. # # drivers/message/i2o/Makefile # 2004/05/14 19:00:14-07:00 akpm@osdl.org +2 -1 # I2O subsystem fixing and cleanup for 2.6 - i2o-makefile-cleanup.patch # # drivers/message/i2o/Kconfig # 2004/05/14 19:00:14-07:00 akpm@osdl.org +8 -7 # I2O subsystem fixing and cleanup for 2.6 - i2o-makefile-cleanup.patch # # ChangeSet # 2004/05/14 19:46:01-07:00 akpm@osdl.org # [PATCH] I2O subsystem fixing and cleanup for 2.6 - i2o-64-bit-fix.patch # # From: Markus Lidel # # * provides i2o_context_list_*() functions, which maps 64-bit pointers to # 32-bit context id's in a dynamic list. On 32-bit systems the functions are # replaced with a static inline. # # * i2o_scsi now uses the i2o_context_list_*() functions for transaction # context, and therefore now work on 64-bit systems too. # # include/linux/i2o.h # 2004/05/14 19:00:14-07:00 akpm@osdl.org +40 -0 # I2O subsystem fixing and cleanup for 2.6 - i2o-64-bit-fix.patch # # drivers/message/i2o/i2o_scsi.c # 2004/05/14 19:00:14-07:00 akpm@osdl.org +21 -43 # I2O subsystem fixing and cleanup for 2.6 - i2o-64-bit-fix.patch # # drivers/message/i2o/i2o_core.c # 2004/05/14 19:00:14-07:00 akpm@osdl.org +136 -0 # I2O subsystem fixing and cleanup for 2.6 - i2o-64-bit-fix.patch # # ChangeSet # 2004/05/14 19:45:50-07:00 akpm@osdl.org # [PATCH] I2O subsystem fixing and cleanup for 2.6 - i2o_block-cleanup.patch # # From: Markus Lidel # # * more than 3 "visible" disks (hda, hdb, hdc, hdd) lead to kernel panics. # # * removes some unused code with partitions. # # * I2O_LOCK was often called with the addresses of the controller, and not # with the address of the device. Fixed. # # * the cleanup function for gendisk (del_gendisk) doesn't work if the queue # is shared between different devices. To workaround the queue is removed # before. # # * redundant code removed in module initialization and remove, use # i2ob_new_device and i2ob_del_device instead. # # * removed atomic_t queue_depth # # * removed unnecessary and bogus code for queue handling # # drivers/message/i2o/i2o_block.c # 2004/05/14 19:00:13-07:00 akpm@osdl.org +165 -217 # I2O subsystem fixing and cleanup for 2.6 - i2o_block-cleanup.patch # # ChangeSet # 2004/05/14 19:45:39-07:00 akpm@osdl.org # [PATCH] i2o: 64-bit fixes # # From: Markus Lidel # # Fix 64-bit problems. # # drivers/message/i2o/i2o_config.c # 2004/05/14 19:00:13-07:00 akpm@osdl.org +7 -1 # i2o: 64-bit fixes # # ChangeSet # 2004/05/14 19:45:29-07:00 akpm@osdl.org # [PATCH] I2O subsystem fixing and cleanup for 2.6 - i2o-passthru.patch # # From: Markus Lidel # # * Add a pass-thru ioctl to i2o_config, which is needed to work with the # Adaptec management software. # # include/linux/i2o.h # 2004/05/14 19:00:13-07:00 akpm@osdl.org +2 -0 # I2O subsystem fixing and cleanup for 2.6 - i2o-passthru.patch # # include/linux/i2o-dev.h # 2004/05/14 19:00:13-07:00 akpm@osdl.org +8 -0 # I2O subsystem fixing and cleanup for 2.6 - i2o-passthru.patch # # drivers/message/i2o/i2o_config.c # 2004/05/14 19:00:13-07:00 akpm@osdl.org +163 -0 # I2O subsystem fixing and cleanup for 2.6 - i2o-passthru.patch # # ChangeSet # 2004/05/14 19:45:18-07:00 akpm@osdl.org # [PATCH] I2O subsystem fixing and cleanup for 2.6 - i2o-config-clean.patch # # From: Markus Lidel # # * Changes the formating of the header in i2o_config.c # # drivers/message/i2o/i2o_config.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +16 -15 # I2O subsystem fixing and cleanup for 2.6 - i2o-config-clean.patch # # ChangeSet # 2004/05/14 19:45:07-07:00 akpm@osdl.org # [PATCH] Module ref counting for vt console drivers # # From: Herbert Xu # # The following patch adds basic module reference counting to vt console # drivers. Currently modules like fbcon are not counted at all. # # include/linux/console.h # 2004/05/14 19:00:12-07:00 akpm@osdl.org +3 -1 # Module ref counting for vt console drivers # # drivers/video/console/vgacon.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +1 -0 # Module ref counting for vt console drivers # # drivers/video/console/sticon.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +2 -1 # Module ref counting for vt console drivers # # drivers/video/console/promcon.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +1 -0 # Module ref counting for vt console drivers # # drivers/video/console/newport_con.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +2 -3 # Module ref counting for vt console drivers # # drivers/video/console/mdacon.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +2 -6 # Module ref counting for vt console drivers # # drivers/video/console/fbcon.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +9 -3 # Module ref counting for vt console drivers # # drivers/video/console/dummycon.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +2 -0 # Module ref counting for vt console drivers # # drivers/char/vt.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +25 -4 # Module ref counting for vt console drivers # # ChangeSet # 2004/05/14 19:44:57-07:00 akpm@osdl.org # [PATCH] ia64 cpu hotplug: core # # From: Ashok Raj # # Supports basic ability to enable hotplug functions for IA64. # Code is just evolving, and there are several loose ends to tie up. # # What this code drop does # - Support logical online and offline # - Handles interrupt migration without loss of interrupts. # - Handles stress fine > 24+ hrs with make -j/ftp/rcp workloads # - Handles irq migration from a dying cpu without loss of interrupts. # # What needs to be done # - Boot CPU removal support, with platform level authentication # - Putting cpu being removed in BOOT_RENDEZ mode. # # include/asm-ia64/smp.h # 2004/05/14 19:00:12-07:00 akpm@osdl.org +2 -0 # ia64 cpu hotplug: core # # arch/ia64/kernel/time.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +5 -0 # ia64 cpu hotplug: core # # arch/ia64/kernel/smpboot.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +127 -9 # ia64 cpu hotplug: core # # arch/ia64/kernel/smp.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +25 -1 # ia64 cpu hotplug: core # # arch/ia64/kernel/sal.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +13 -0 # ia64 cpu hotplug: core # # arch/ia64/kernel/process.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +42 -1 # ia64 cpu hotplug: core # # arch/ia64/kernel/irq_ia64.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +55 -5 # ia64 cpu hotplug: core # # arch/ia64/kernel/irq.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +103 -0 # ia64 cpu hotplug: core # # arch/ia64/kernel/iosapic.c # 2004/05/14 19:00:12-07:00 akpm@osdl.org +5 -2 # ia64 cpu hotplug: core # # arch/ia64/Kconfig # 2004/05/14 19:00:12-07:00 akpm@osdl.org +9 -0 # ia64 cpu hotplug: core # # ChangeSet # 2004/05/14 19:44:45-07:00 akpm@osdl.org # [PATCH] Revisited: ia64-cpu-hotplug-cpu_present.patch # # From: Paul Jackson # # With a hotplug capable kernel, there is a requirement to distinguish a # possible CPU from one actually present. The set of possible CPU numbers # doesn't change during a single system boot, but the set of present CPUs # changes as CPUs are physically inserted into or removed from a system. The # cpu_possible_map does not change once initialized at boot, but the # cpu_present_map changes dynamically as CPUs are inserted or removed. # # # Paul Jackson provided an expanded explanation: # # # Ashok's cpu hot plug patch adds a cpu_present_map, resulting in the following # cpu maps being available. All the following maps are fixed size bitmaps of # size NR_CPUS. # # #ifdef CONFIG_HOTPLUG_CPU # cpu_possible_map - map with all NR_CPUS bits set # cpu_present_map - map with bit 'cpu' set iff cpu is populated # cpu_online_map - map with bit 'cpu' set iff cpu available to scheduler # #else # cpu_possible_map - map with bit 'cpu' set iff cpu is populated # cpu_present_map - copy of cpu_possible_map # cpu_online_map - map with bit 'cpu' set iff cpu available to scheduler # #endif # # In either case, NR_CPUS is fixed at compile time, as the static size of these # bitmaps. The cpu_possible_map is fixed at boot time, as the set of CPU id's # that it is possible might ever be plugged in at anytime during the life of # that system boot. The cpu_present_map is dynamic(*), representing which CPUs # are currently plugged in. And cpu_online_map is the dynamic subset of # cpu_present_map, indicating those CPUs available for scheduling. # # If HOTPLUG is enabled, then cpu_possible_map is forced to have all NR_CPUS # bits set, otherwise it is just the set of CPUs that ACPI reports present at # boot. # # If HOTPLUG is enabled, then cpu_present_map varies dynamically, depending on # what ACPI reports as currently plugged in, otherwise cpu_present_map is just a # copy of cpu_possible_map. # # (*) Well, cpu_present_map is dynamic in the hotplug case. If not hotplug, # it's the same as cpu_possible_map, hence fixed at boot. # # kernel/timer.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +1 -1 # Revisited: ia64-cpu-hotplug-cpu_present.patch # # kernel/sched.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +3 -3 # Revisited: ia64-cpu-hotplug-cpu_present.patch # # kernel/fork.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +1 -1 # Revisited: ia64-cpu-hotplug-cpu_present.patch # # kernel/cpu.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +9 -1 # Revisited: ia64-cpu-hotplug-cpu_present.patch # # init/main.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +21 -2 # Revisited: ia64-cpu-hotplug-cpu_present.patch # # include/linux/cpumask.h # 2004/05/14 19:00:11-07:00 akpm@osdl.org +11 -0 # Revisited: ia64-cpu-hotplug-cpu_present.patch # # include/asm-ia64/smp.h # 2004/05/14 19:00:11-07:00 akpm@osdl.org +0 -3 # Revisited: ia64-cpu-hotplug-cpu_present.patch # # fs/proc/proc_misc.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +2 -2 # Revisited: ia64-cpu-hotplug-cpu_present.patch # # fs/buffer.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +1 -1 # Revisited: ia64-cpu-hotplug-cpu_present.patch # # arch/ia64/kernel/smpboot.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +13 -9 # Revisited: ia64-cpu-hotplug-cpu_present.patch # # ChangeSet # 2004/05/14 19:44:34-07:00 akpm@osdl.org # [PATCH] ia64 cpu hotplug: /proc rework # # From: Ashok Raj # # Changes proc entries for cpu hotplug to be created via the cpu hotplug # notifier callbacks. Also fixed a bug in the removal code that did not remove # proc entries as expected. # # arch/ia64/kernel/palinfo.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +104 -30 # ia64 cpu hotplug: /proc rework # # ChangeSet # 2004/05/14 19:44:23-07:00 akpm@osdl.org # [PATCH] ia64 cpu hotplug: IRQ affinity work # # From: Ashok Raj # # irq affinity setting via /proc was forcing iosapic rte programming by force. # The correct way to do this is to perform this when a interrupt is pending. # # arch/ia64/kernel/irq.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +9 -3 # ia64 cpu hotplug: IRQ affinity work # # arch/ia64/kernel/iosapic.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +19 -0 # ia64 cpu hotplug: IRQ affinity work # # ChangeSet # 2004/05/14 19:44:13-07:00 akpm@osdl.org # [PATCH] ia64 cpu hotplug: sysfs additions # # From: Ashok Raj # # Creation of sysfs via topology_init() creates sysfs entries. The creation of # the online control file is created separately when the cpu_up is invoked in # arch independent code. # # include/asm-ia64/cpu.h # 2004/05/14 19:00:11-07:00 akpm@osdl.org +17 -0 # ia64 cpu hotplug: sysfs additions # # arch/ia64/dig/topology.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +43 -0 # ia64 cpu hotplug: sysfs additions # # include/asm-ia64/cpu.h # 2004/05/14 19:00:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-ia64/cpu.h # # arch/ia64/dig/topology.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ia64/dig/topology.c # # arch/ia64/dig/Makefile # 2004/05/14 19:00:11-07:00 akpm@osdl.org +5 -0 # ia64 cpu hotplug: sysfs additions # # ChangeSet # 2004/05/14 19:44:02-07:00 akpm@osdl.org # [PATCH] ia64 cpu hotplug: init section fixes # # From: Ashok Raj # # Contains changes from __init to __devinit to support cpu hotplug Changes only # arch/ia64 portions of the kernel tree. # # include/asm-ia64/smp.h # 2004/05/14 19:00:11-07:00 akpm@osdl.org +2 -1 # ia64 cpu hotplug: init section fixes # # arch/ia64/mm/tlb.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +1 -1 # ia64 cpu hotplug: init section fixes # # arch/ia64/mm/init.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +2 -2 # ia64 cpu hotplug: init section fixes # # arch/ia64/kernel/time.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +1 -1 # ia64 cpu hotplug: init section fixes # # arch/ia64/kernel/smpboot.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +6 -6 # ia64 cpu hotplug: init section fixes # # arch/ia64/kernel/setup.c # 2004/05/14 19:00:11-07:00 akpm@osdl.org +1 -1 # ia64 cpu hotplug: init section fixes # # ChangeSet # 2004/05/14 19:43:50-07:00 akpm@osdl.org # [PATCH] ia64 cpu hotplug: core kernel initialisation # # From: Ashok Raj # # This patch changes __init to __devinit to init_idle so that when a new cpu # arrives, it can call these functions at a later time. # # kernel/sched.c # 2004/05/14 19:00:10-07:00 akpm@osdl.org +1 -1 # ia64 cpu hotplug: core kernel initialisation # # init/main.c # 2004/05/14 19:00:10-07:00 akpm@osdl.org +1 -1 # ia64 cpu hotplug: core kernel initialisation # # ChangeSet # 2004/05/14 19:43:39-07:00 akpm@osdl.org # [PATCH] swap speedups and fix # # From: Andrea Arcangeli # # I don't think we need an install_swap_bdev/remove_swap_bdev anymore, we should # use the swap_info->bdev, not the swap_bdevs. the swap_info already has a # ->bdev field, the only point of remove_swap_bdev/install_swap_bdev was to # unplug all devices as efficiently as possible, we don't need that anymore with # the page parameter. # # Plus the semaphore should be a rwsem to allow parallel unplug from multiple # pages. # # After that I don't need to take the semaphore anymore during swapon, no # swapcache with swp_type() pointing to such bdev, will be allowed until swapon # is complete (SWP_ACTIVE is set a lot later after setting p->bdev). # # In swapoff I only need a dummy serialization with the readers, after # try_to_unuse is complete: # # err = try_to_unuse(type); # current->flags &= ~PF_SWAPOFF; # # /* wait for any unplug function to finish */ # down_write(&swap_unplug_sem); # up_write(&swap_unplug_sem); # # # that's all, no other locking and no install_swap_bdev/remove_swap_bdev. # # (and the swap_bdevs[] compression code was busted) # # mm/swapfile.c # 2004/05/14 19:00:10-07:00 akpm@osdl.org +25 -49 # swap speedups and fix # # ChangeSet # 2004/05/14 19:43:29-07:00 akpm@osdl.org # [PATCH] blk_run_page(): we don't trust bh->b_page # # We don't trust bh->b_page to point to the right thing across all filesystems, # so revert this bit. # # fs/buffer.c # 2004/05/14 19:00:10-07:00 akpm@osdl.org +6 -1 # blk_run_page(): we don't trust bh->b_page # # ChangeSet # 2004/05/14 19:43:18-07:00 akpm@osdl.org # [PATCH] blk_run_page(): fixup for swap_unplug_io_fn() # # mm/swapfile.c # 2004/05/14 19:00:10-07:00 akpm@osdl.org +1 -1 # blk_run_page(): fixup for swap_unplug_io_fn() # # mm/filemap.c # 2004/05/14 19:00:10-07:00 akpm@osdl.org +1 -1 # blk_run_page(): fixup for swap_unplug_io_fn() # # include/linux/swap.h # 2004/05/14 19:00:10-07:00 akpm@osdl.org +1 -1 # blk_run_page(): fixup for swap_unplug_io_fn() # # ChangeSet # 2004/05/14 19:43:07-07:00 akpm@osdl.org # [PATCH] Add blk_run_page() # # From: Andrea Arcangeli # # From: Jens Axboe # # Add blk_run_page() API. This is so that we can pass the target page all the # way down to (for example) the swap unplug function. So swap can work out # which blockdevs back this particular page. # # mm/swapfile.c # 2004/05/14 19:00:09-07:00 akpm@osdl.org +1 -1 # Add blk_run_page() # # mm/readahead.c # 2004/05/14 19:00:09-07:00 akpm@osdl.org +1 -1 # Add blk_run_page() # # include/linux/blkdev.h # 2004/05/14 19:00:09-07:00 akpm@osdl.org +14 -3 # Add blk_run_page() # # include/linux/backing-dev.h # 2004/05/14 19:00:09-07:00 akpm@osdl.org +2 -2 # Add blk_run_page() # # fs/buffer.c # 2004/05/14 19:00:09-07:00 akpm@osdl.org +2 -10 # Add blk_run_page() # # drivers/block/ll_rw_blk.c # 2004/05/14 19:00:09-07:00 akpm@osdl.org +2 -1 # Add blk_run_page() # # ChangeSet # 2004/05/14 19:42:56-07:00 akpm@osdl.org # [PATCH] rmap-5-swap_unplug-page-revert # # Revert the pre-2.6.6 per-address-space unplugging changes. This removes a # swapper_space exceptionality, syncs things with Andrea and provides for # simplification of the swap unplug function. # # mm/swapfile.c # 2004/05/14 19:00:09-07:00 akpm@osdl.org +8 -15 # rmap-5-swap_unplug-page-revert # # mm/swap_state.c # 2004/05/14 19:00:09-07:00 akpm@osdl.org +2 -2 # rmap-5-swap_unplug-page-revert # # mm/nommu.c # 2004/05/14 19:00:09-07:00 akpm@osdl.org +5 -0 # rmap-5-swap_unplug-page-revert # # mm/filemap.c # 2004/05/14 19:00:09-07:00 akpm@osdl.org +1 -1 # rmap-5-swap_unplug-page-revert # # include/linux/swap.h # 2004/05/14 19:00:09-07:00 akpm@osdl.org +3 -2 # rmap-5-swap_unplug-page-revert # # ChangeSet # 2004/05/14 19:42:45-07:00 akpm@osdl.org # [PATCH] rename rmap_lock to page_map_lock # # Sync this up with Andrea's patches. # # mm/vmscan.c # 2004/05/14 19:00:09-07:00 akpm@osdl.org +10 -10 # rename rmap_lock to page_map_lock # # mm/rmap.c # 2004/05/14 19:00:09-07:00 akpm@osdl.org +4 -4 # rename rmap_lock to page_map_lock # # include/linux/rmap.h # 2004/05/14 19:00:09-07:00 akpm@osdl.org +2 -2 # rename rmap_lock to page_map_lock # # ChangeSet # 2004/05/14 19:42:34-07:00 akpm@osdl.org # [PATCH] filtered wakeups: apply to buffer_head functions # # From: William Lee Irwin III # # This patch implements wake-one semantics for buffer_head wakeups in a single # step. The buffer_head being waited on is passed to the waiter's wakeup # function by the waker, and the wakeup function compares that to the a pointer # stored in its on-stack structure and checking the readiness of the bit there # also. Wake-one semantics are achieved by using WQ_FLAG_EXCLUSIVE in the # codepaths waiting to acquire the bit for mutual exclusion. # # include/linux/buffer_head.h # 2004/05/14 19:00:09-07:00 akpm@osdl.org +3 -2 # filtered wakeups: apply to buffer_head functions # # fs/jbd/transaction.c # 2004/05/14 19:00:09-07:00 akpm@osdl.org +10 -2 # filtered wakeups: apply to buffer_head functions # # fs/buffer.c # 2004/05/14 19:00:09-07:00 akpm@osdl.org +65 -9 # filtered wakeups: apply to buffer_head functions # # ChangeSet # 2004/05/14 19:42:25-07:00 akpm@osdl.org # [PATCH] filtered wakeups: apply to pagecache functions # # From: William Lee Irwin III # # This patch implements wake-one semantics for page wakeups in a single step. # Discrimination between distinct pages is achieved by passing the page to the # wakeup function, which compares it to a pointer in its own on-stack structure # containing the waitqueue element and the page. Bit discrimination is achieved # by storing the bit number in that same structure and testing the bit in the # wakeup function. Wake-one semantics are achieved by using WQ_FLAG_EXCLUSIVE # in the codepaths waiting to acquire the bit for mutual exclusion. # # mm/filemap.c # 2004/05/14 19:00:08-07:00 akpm@osdl.org +51 -13 # filtered wakeups: apply to pagecache functions # # ChangeSet # 2004/05/14 19:42:14-07:00 akpm@osdl.org # [PATCH] filtered wakeups: wakeup enhancements # # From: William Lee Irwin III # # This patch provides an additional argument to __wake_up_common() so that the # information wakefunc.patch made waiters ready to receive may be passed to them # by wakers. This is provided as a separate patch so that the overhead of the # additional argument to __wake_up_common() can be measured in isolation. No # change in performance was observable here. # # kernel/sched.c # 2004/05/14 19:00:08-07:00 akpm@osdl.org +9 -8 # filtered wakeups: wakeup enhancements # # include/linux/wait.h # 2004/05/14 19:00:08-07:00 akpm@osdl.org +7 -7 # filtered wakeups: wakeup enhancements # # ChangeSet # 2004/05/14 19:42:03-07:00 akpm@osdl.org # [PATCH] filtered wakeups # # From: William Lee Irwin III # # This patch series is solving the "thundering herd" problem that occurs in the # mainline implementation of hashed waitqueues. There are two sources of # spurious wakeups in such arrangements: # # (a) Hash collisions that place waiters on different objects on the same # waitqueue, which wakes threads falsely when any of the objects hashed to # the same queue receives a wakeup. i.e. loss of information about which # object a wakeup event is related to. # # (b) Loss of information about which object a given waiter is waiting on. # This precludes wake-one semantics for mutual exclusion scenarios. For # instance, a lock bit may be slept on. If there are any waiters on the # object, a lock bit release event must wake at least one of them so as to # prevent deadlock. But without information as to which waiter is waiting # on which object, we must resort to waking all waiters who could possibly # be waiting on it. Now, as the lock bit provides mutual exclusion, only # one of the waiters woken can proceed, and the remainder will go back to # sleep and wait for another event, creating unnecessary system load. Once # wake-one semantics are established, only one of the waiters waiting to # acquire a lock bit need to be woken, which measurably reduces system load # and improves efficiency (i.e. it's the subject of the benchmarking I've # been sending to you). # # Even beyond the measurable efficiency gains, there are reasons of robustness # and responsiveness to motivate addressing the issue of thundering herds. In a # real-life scenario I've been personally involved in resolving, the thundering # herd issue caused powerful modern SMP machines with fast IO systems to be # unresponsive to user input for a minute at a time or more. Analogues of these # patches for the distro kernels involved fully resolved the issue to the # customer's satisfaction and obviated workarounds to limit the pagecache's # size. # # The latest spin of these patches basically shoves more pieces of the logic # into the wakeup functions, with some efficiency gains from sharing the hot # codepath with the rest of the kernel, and a slightly larger diff than the # patches with the newly-introduced entrypoint. Writing these was motivated by # the push to insulate sched.c from more of the details of wakeup semantics by # putting more of the logic into the wakeup functions. In order to accomplish # this while still solving (b), the wakeup functions grew a new argument for # communication about what object a wakeup event is related to to be passed by # the waker. # # ========= # # This patch provides an additional argument to wakeup functions so that # information may be passed from the waker to the waiter. This is provided as a # separate patch so that the overhead of the additional argument can be measured # in isolation. No change in performance was observable here. # # kernel/sched.c # 2004/05/14 19:00:08-07:00 akpm@osdl.org +2 -2 # filtered wakeups # # kernel/fork.c # 2004/05/14 19:00:08-07:00 akpm@osdl.org +2 -2 # filtered wakeups # # include/linux/wait.h # 2004/05/14 19:00:08-07:00 akpm@osdl.org +3 -3 # filtered wakeups # # fs/eventpoll.c # 2004/05/14 19:00:08-07:00 akpm@osdl.org +2 -2 # filtered wakeups # # ChangeSet # 2004/05/14 19:41:52-07:00 akpm@osdl.org # [PATCH] do_mounts_rd-malloc-fix # # gcc-3.4.0 sez: # # init/do_mounts_rd.c:309: warning: conflicting types for built-in function 'malloc' # # init/do_mounts_rd.c # 2004/05/14 19:00:07-07:00 akpm@osdl.org +2 -2 # do_mounts_rd-malloc-fix # # ChangeSet # 2004/05/14 19:41:41-07:00 akpm@osdl.org # [PATCH] VM accounting fix # # From: Hugh Dickins # # Stas Sergeev wrote: # # mprotect() fails to merge VMAs because one VMA can end up with # VM_ACCOUNT flag set, and another without that flag. That makes several # apps of mine to malfuncate. # # # Great find! Someone has got their test the wrong way round. Since that # VM_MAYACCT macro is being used in one place only, and just hiding what it's # actually about, fold it into its callsite. # # mm/mprotect.c # 2004/05/14 19:00:07-07:00 akpm@osdl.org +1 -2 # VM accounting fix # # include/linux/mm.h # 2004/05/14 19:00:07-07:00 akpm@osdl.org +0 -3 # VM accounting fix # # ChangeSet # 2004/05/14 19:41:31-07:00 akpm@osdl.org # [PATCH] revert the process-migration-speedup patch # # David Mosberger asked that this be backed out: # # "I do not believe that flushing the TLB before migration is be the right thing # to do on ia64 machines which support global TLB purges (i.e., all but SGI's # machines)." # # It was of huge benefit for the SGI machines, so work is ongoing. # # kernel/sched.c # 2004/05/14 19:00:07-07:00 akpm@osdl.org +0 -10 # revert the process-migration-speedup patch # # include/asm-ia64/tlb.h # 2004/05/14 19:00:07-07:00 akpm@osdl.org +0 -2 # revert the process-migration-speedup patch # # include/asm-generic/tlb.h # 2004/05/14 19:00:07-07:00 akpm@osdl.org +0 -2 # revert the process-migration-speedup patch # # ChangeSet # 2004/05/14 19:41:20-07:00 akpm@osdl.org # [PATCH] MSEC_TO_JIFFIES to msec_to_jiffies # # Switch all users of MSEC[S]_TO_JIFFIES and JIFFIES_TO_MSEC[S] over to use # jiffies_to_msecs() and msecs_to_jiffies(). Withdraw MSECS_TO_JIFFIES() and # JIFFIES_TO_MSECS() from the kernel API. # # net/sctp/socket.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +17 -17 # MSEC_TO_JIFFIES to msec_to_jiffies # # net/sctp/endpointola.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +2 -2 # MSEC_TO_JIFFIES to msec_to_jiffies # # net/sctp/chunk.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +1 -1 # MSEC_TO_JIFFIES to msec_to_jiffies # # net/sctp/associola.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +5 -5 # MSEC_TO_JIFFIES to msec_to_jiffies # # net/irda/irlap_event.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +3 -3 # MSEC_TO_JIFFIES to msec_to_jiffies # # net/irda/ircomm/ircomm_tty.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +1 -1 # MSEC_TO_JIFFIES to msec_to_jiffies # # kernel/sched.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +1 -1 # MSEC_TO_JIFFIES to msec_to_jiffies # # include/linux/time.h # 2004/05/14 19:00:06-07:00 akpm@osdl.org +0 -3 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/tekram.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +6 -6 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/tekram-sir.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +1 -1 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/stir4200.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +3 -3 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/sir_kthread.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +1 -1 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/sir_dev.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +1 -1 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/mcp2120.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +4 -4 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/ma600.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +8 -8 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/ma600-sir.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +4 -4 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/irtty-sir.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +2 -2 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/irport.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +2 -2 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/irda-usb.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +3 -3 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/girbil.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +5 -5 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/actisys.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +1 -1 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/act200l.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +5 -5 # MSEC_TO_JIFFIES to msec_to_jiffies # # drivers/net/irda/act200l-sir.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +1 -1 # MSEC_TO_JIFFIES to msec_to_jiffies # # ChangeSet # 2004/05/14 19:41:08-07:00 akpm@osdl.org # [PATCH] Covert drivers to use msec_to_jiffies # # Remove various private implementations of msecs_to_jiffies() and # jiffies_to_msecs(). # # There are various uppercase versions which should be consolidated. # # include/linux/libata.h # 2004/05/14 19:00:06-07:00 akpm@osdl.org +0 -5 # Covert drivers to use msec_to_jiffies # # drivers/net/tulip/de2104x.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +1 -8 # Covert drivers to use msec_to_jiffies # # drivers/char/watchdog/shwdt.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +0 -1 # Covert drivers to use msec_to_jiffies # # drivers/block/genhd.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +8 -18 # Covert drivers to use msec_to_jiffies # # drivers/block/carmel.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +0 -5 # Covert drivers to use msec_to_jiffies # # ChangeSet # 2004/05/14 19:40:57-07:00 akpm@osdl.org # [PATCH] MSEC_TO_JIFFIES consolidation # # From: Ingo Molnar # # We have various different implementations of MSEC[S]_TO_JIFFIES and # JIFFIES_TO_MSEC[S]. We recently had a compile-time clash in USB. # # Fix all that up. # # - The SCTP version was very inefficient. Hopefully this version is accurate # enough. # # - Optimise for the HZ=100 and HZ=1000 cases # # - This version does round-up, so sleep(9 milliseconds) works OK on 100HZ. # # - We still have lots of jiffies_to_msec and msec_to_jiffies implementations. # # From: William Lee Irwin III # # Optimize the cases where HZ is a divisor of 1000 or vice-versa in # JIFFIES_TO_MSECS() and MSECS_TO_JIFFIES() by allowing the nonvanishing(!) # integral ratios to appear as a parenthesized expressions eligible for # constant folding optimizations. # # From: me # # Use typesafe inlines for the jiffies-to-millisecond conversion functions. # # This means that milliseconds officially takes the type `unsigned int'. # All current callers seem to be OK with that. # # Drivers need to be fixed up to use this instead of their private versions. # # kernel/sched.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +1 -8 # MSEC_TO_JIFFIES consolidation # # include/net/sctp/sctp.h # 2004/05/14 19:00:06-07:00 akpm@osdl.org +0 -5 # MSEC_TO_JIFFIES consolidation # # include/net/irda/irda.h # 2004/05/14 19:00:06-07:00 akpm@osdl.org +0 -2 # MSEC_TO_JIFFIES consolidation # # include/linux/time.h # 2004/05/14 19:00:06-07:00 akpm@osdl.org +31 -0 # MSEC_TO_JIFFIES consolidation # # include/asm-i386/param.h # 2004/05/14 19:00:06-07:00 akpm@osdl.org +0 -2 # MSEC_TO_JIFFIES consolidation # # ChangeSet # 2004/05/14 19:40:46-07:00 akpm@osdl.org # [PATCH] sched: add missing local_irq_enable() # # From: Nick Piggin # # this_rq_lock does a local_irq_disable, and sched_yield() needs to undo that. # # kernel/sched.c # 2004/05/14 19:00:06-07:00 akpm@osdl.org +1 -0 # sched: add missing local_irq_enable() # # ChangeSet # 2004/05/14 19:40:34-07:00 akpm@osdl.org # [PATCH] Fix page double-freeing race # # This has been there for nearly two years. See bugzilla #1403 # # vmscan.c does, in two places: # # spin_lock(zone->lru_lock) # page = lru_to_page(&zone->inactive_list); # if (page_count(page) == 0) { # /* erk, it's being freed by __page_cache_release() or # * release_pages() # */ # put_it_back_on_the_lru(); # # } else { # # --> window 1 <-- # # page_cache_get(page); # put_in_on_private_list(); # } # spin_unlock(zone->lru_lock) # # use_the_private_list(); # # page_cache_release(page); # # # # whereas __page_cache_release() and release_pages() do: # # if (put_page_testzero(page)) { # # --> window 2 <-- # # spin_lock(lru->lock); # if (page_count(page) == 0) { # remove_it_from_the_lru(); # really_free_the_page() # } # spin_unlock(zone->lru_lock) # } # # # The race occurs if the vmscan.c path sees page_count()==1 and then the # page_cache_release() path happens in that few-instruction "window 1" before # vmscan's page_cache_get(). # # The page_cache_release() path does put_page_testzero(), which returns true. # Then this CPU takes an interrupt... # # The vmscan.c path then does page_cache_get(), taking the refcount to one. # Then it uses the page and does page_cache_release(), taking the refcount to # zero and the page is really freed. # # Now, the CPU running page_cache_release() returns from the interrupt, takes # the LRU lock, sees the page still has a refcount of zero and frees it again. # Boom. # # # The patch fixes this by closing "window 1". We provide a # "get_page_testone()" which grabs a ref on the page and returns true if the # refcount was previously zero. If that happens the vmscan.c code simply drops # the page's refcount again and leaves the page on the LRU. # # All this happens under the zone->lru_lock, which is also taken by # __page_cache_release() and release_pages(), so the vmscan code knows that the # page has not been returned to the page allocator yet. # # # In terms of implementation, the page counts are now offset by one: a free page # has page->_count of -1. This is so that we can use atomic_add_negative() and # atomic_inc_and_test() to provide put_page_testzero() and get_page_testone(). # # The macros hide all of this so the public interpretation of page_count() and # set_page_count() remains unaltered. # # The compiler can usually constant-fold the offsetting of page->count. This # patch increases an x86 SMP kernel's text by 32 bytes. # # The patch renames page->count to page->_count to break callers who aren't # using the macros. # # This patch requires that the architecture implement atomic_add_negative(). It # is currently present on # # arm # arm26 # i386 # ia64 # mips # ppc # s390 # v850 # x86_64 # # ppc implements this as # # #define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) # # and atomic_add_return() is implemented on # # alpha # cris # h8300 # ia64 # m68knommu # mips # parisc # ppc # ppc # ppc64 # s390 # sh # sparc # v850 # # so we're looking pretty good. # # mm/vmscan.c # 2004/05/14 19:00:05-07:00 akpm@osdl.org +14 -7 # Fix page double-freeing race # # include/linux/mm.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +34 -14 # Fix page double-freeing race # # ChangeSet # 2004/05/14 19:40:23-07:00 akpm@osdl.org # [PATCH] sparc64: implement atomic_add_negative() # # include/asm-sparc64/atomic.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +3 -0 # sparc64: implement atomic_add_negative() # # ChangeSet # 2004/05/14 19:40:13-07:00 akpm@osdl.org # [PATCH] ia64 atomic_inc_and_test fix # # From: David Mosberger # # include/asm-ia64/atomic.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +2 -2 # ia64 atomic_inc_and_test fix # # ChangeSet # 2004/05/14 19:40:02-07:00 akpm@osdl.org # [PATCH] alpha: atomic_inc_and_test() # # From: Ivan Kokshaysky # # It seems atomic_inc_and_test() is missing on alpha. # # include/asm-alpha/atomic.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +1 -0 # alpha: atomic_inc_and_test() # # ChangeSet # 2004/05/14 19:39:51-07:00 akpm@osdl.org # [PATCH] Implement atomic_inc_and_test() on various architectures # # It's easy to do when the arch provides atomic_inc_return(). # # include/asm-v850/atomic.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +10 -0 # Implement atomic_inc_and_test() on various architectures # # include/asm-sparc64/atomic.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +10 -0 # Implement atomic_inc_and_test() on various architectures # # include/asm-sparc/atomic.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +10 -0 # Implement atomic_inc_and_test() on various architectures # # include/asm-sh/atomic.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +10 -0 # Implement atomic_inc_and_test() on various architectures # # include/asm-s390/atomic.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +1 -0 # Implement atomic_inc_and_test() on various architectures # # include/asm-ppc64/atomic.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +10 -0 # Implement atomic_inc_and_test() on various architectures # # include/asm-ppc/atomic.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +10 -0 # Implement atomic_inc_and_test() on various architectures # # include/asm-parisc/atomic.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +10 -0 # Implement atomic_inc_and_test() on various architectures # # include/asm-m68knommu/atomic.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +10 -0 # Implement atomic_inc_and_test() on various architectures # # include/asm-h8300/atomic.h # 2004/05/14 19:00:05-07:00 akpm@osdl.org +10 -0 # Implement atomic_inc_and_test() on various architectures # # ChangeSet # 2004/05/14 19:39:40-07:00 akpm@osdl.org # [PATCH] Implement atomic_add_negative() on various architectures # # Lots of architectures have atomic_add_return() and no atomic_add_negative(). # # We can implement the latter in terms of the former. # # include/asm-sparc/atomic.h # 2004/05/14 19:00:04-07:00 akpm@osdl.org +2 -0 # Implement atomic_add_negative() on various architectures # # include/asm-sh/atomic.h # 2004/05/14 19:00:04-07:00 akpm@osdl.org +2 -0 # Implement atomic_add_negative() on various architectures # # include/asm-ppc64/atomic.h # 2004/05/14 19:00:04-07:00 akpm@osdl.org +2 -0 # Implement atomic_add_negative() on various architectures # # include/asm-parisc/atomic.h # 2004/05/14 19:00:04-07:00 akpm@osdl.org +2 -0 # Implement atomic_add_negative() on various architectures # # include/asm-m68knommu/atomic.h # 2004/05/14 19:00:04-07:00 akpm@osdl.org +2 -0 # Implement atomic_add_negative() on various architectures # # include/asm-h8300/atomic.h # 2004/05/14 19:00:04-07:00 akpm@osdl.org +1 -0 # Implement atomic_add_negative() on various architectures # # include/asm-cris/atomic.h # 2004/05/14 19:00:04-07:00 akpm@osdl.org +2 -0 # Implement atomic_add_negative() on various architectures # # include/asm-alpha/atomic.h # 2004/05/14 19:00:04-07:00 akpm@osdl.org +2 -0 # Implement atomic_add_negative() on various architectures # # ChangeSet # 2004/05/14 19:39:29-07:00 akpm@osdl.org # [PATCH] Make users of page->count use the provided macros # # I'm about to change the meaning (and name) of page->count. Go through and fix # up all those places which are open-coding references to it. # # drivers/scsi/sg.c # 2004/05/14 19:00:04-07:00 akpm@osdl.org +4 -4 # Make users of page->count use the provided macros # # drivers/char/drm/drm_vm.h # 2004/05/14 19:00:04-07:00 akpm@osdl.org +1 -1 # Make users of page->count use the provided macros # # drivers/char/drm/ati_pcigart.h # 2004/05/14 19:00:04-07:00 akpm@osdl.org +2 -2 # Make users of page->count use the provided macros # # arch/x86_64/mm/pageattr.c # 2004/05/14 19:00:04-07:00 akpm@osdl.org +4 -4 # Make users of page->count use the provided macros # # arch/um/kernel/mem.c # 2004/05/14 19:00:04-07:00 akpm@osdl.org +1 -1 # Make users of page->count use the provided macros # # arch/sparc/mm/init.c # 2004/05/14 19:00:04-07:00 akpm@osdl.org +1 -1 # Make users of page->count use the provided macros # # arch/ppc/mm/init.c # 2004/05/14 19:00:04-07:00 akpm@osdl.org +1 -1 # Make users of page->count use the provided macros # # arch/mips/mm/init.c # 2004/05/14 19:00:04-07:00 akpm@osdl.org +1 -1 # Make users of page->count use the provided macros # # arch/i386/mm/pageattr.c # 2004/05/14 19:00:04-07:00 akpm@osdl.org +4 -4 # Make users of page->count use the provided macros # # ChangeSet # 2004/05/14 16:48:56-07:00 davem@nuts.davemloft.net # Merge nuts.davemloft.net:/disk1/BK/network-2.6 # into nuts.davemloft.net:/disk1/BK/net-2.6 # # drivers/bluetooth/hci_usb.c # 2004/05/14 16:48:48-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # drivers/bluetooth/bfusb.c # 2004/05/14 16:48:47-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/05/14 15:44:08-07:00 greg@kroah.com # Merge kroah.com:/home/greg/linux/BK/bleed-2.6 # into kroah.com:/home/greg/linux/BK/driver-2.6 # # kernel/module.c # 2004/05/14 15:44:03-07:00 greg@kroah.com +0 -0 # Auto merged # # drivers/firmware/Kconfig # 2004/05/14 15:44:03-07:00 greg@kroah.com +0 -0 # Auto merged # # ChangeSet # 2004/05/14 15:21:10-07:00 greg@kroah.com # Merge kroah.com:/home/greg/linux/BK/bleed-2.6 # into kroah.com:/home/greg/linux/BK/i2c-2.6 # # include/linux/pci_ids.h # 2004/05/14 15:21:04-07:00 greg@kroah.com +0 -0 # Auto merged # # arch/i386/pci/irq.c # 2004/05/14 15:21:04-07:00 greg@kroah.com +0 -0 # Auto merged # # ChangeSet # 2004/05/14 15:00:02-07:00 dsaxena@plexity.net # [PATCH] I2C: Missed ixp42x -> ixp4xx conversion # # Forgot to include this with my original patch a few weeks ago... # # include/linux/i2c-id.h # 2004/05/12 17:20:41-07:00 dsaxena@plexity.net +1 -1 # I2C: Missed ixp42x -> ixp4xx conversion # # ChangeSet # 2004/05/14 14:59:26-07:00 bjorn@mork.no # [PATCH] I2C: "probe" module param broken for it87 in Linux 2.6.6 # # Jean Delvare writes: # > So I'd suggest that you simply use the standard exit sequence in the # > it87 driver (the second one in your current patch). A patch for the 2.4 # > driver would be appreciated as well. # # OK. I've attached a new version of the patch against linux-2.6.6. # I'll send a patch against current lm_sensors CVS removing the extra # exit command in a separate mail. # # Greg KH writes: # > On Wed, May 12, 2004 at 04:38:03PM +0200, Bj?rn Mork wrote: # >> + if (!it87_find(&addr)) { # >> + printk("it87.o: new ISA address: 0x%04x\n", addr); # > # > That printk is wrong (no KERN_ level, or dev_printk() style use). # > Please fix it in your next revision of this patch. # # Errh, I just added it to document my sloppyness. It was never meant # to be in the patch I sent you. Sorry. Removed in the attached patch. # The style of these drivers seem to be "just working, making no noise" # so I assume informational printk's are unwanted. # # drivers/i2c/chips/it87.c # 2004/05/13 10:49:41-07:00 bjorn@mork.no +78 -0 # I2C: "probe" module param broken for it87 in Linux 2.6.6 # # ChangeSet # 2004/05/14 14:58:42-07:00 jdgaston@snoqualmie.dp.intel.com # [PATCH] I2C: ICH6/6300ESB i2c support # # This patch adds DID support for ICH6 and 6300ESB to i2c-i801.c(SMBus). # In order to add this support I needed to patch pci_ids.h with the SMBus # DID's. To keep things orginized I renumbered the ICH6 and ESB entries # in pci_ids.h. I then patched the piix IDE and i810 audio drivers to # reflect the updated #define's. I also removed an error from irq.c; # there was a reference to a 6300ESB DID that does not exist. # # sound/oss/i810_audio.c # 2004/05/10 11:56:30-07:00 jdgaston@snoqualmie.dp.intel.com +5 -5 # I2C: ICH6/6300ESB i2c support # # include/linux/pci_ids.h # 2004/05/10 11:56:30-07:00 jdgaston@snoqualmie.dp.intel.com +18 -3 # I2C: ICH6/6300ESB i2c support # # drivers/ide/pci/piix.h # 2004/05/11 17:34:02-07:00 jdgaston@snoqualmie.dp.intel.com +1 -1 # I2C: ICH6/6300ESB i2c support # # drivers/ide/pci/piix.c # 2004/05/11 17:30:46-07:00 jdgaston@snoqualmie.dp.intel.com +4 -4 # I2C: ICH6/6300ESB i2c support # # drivers/i2c/busses/i2c-i801.c # 2004/05/10 11:56:30-07:00 jdgaston@snoqualmie.dp.intel.com +20 -6 # I2C: ICH6/6300ESB i2c support # # drivers/i2c/busses/Kconfig # 2004/05/10 11:56:30-07:00 jdgaston@snoqualmie.dp.intel.com +2 -0 # I2C: ICH6/6300ESB i2c support # # arch/i386/pci/irq.c # 2004/05/10 11:56:30-07:00 jdgaston@snoqualmie.dp.intel.com +2 -1 # I2C: ICH6/6300ESB i2c support # # ChangeSet # 2004/05/14 14:49:39-07:00 greg@kroah.com # USB: convert visor to use module_param() # # drivers/usb/serial/visor.c # 2004/05/14 07:49:18-07:00 greg@kroah.com +7 -6 # USB: convert visor to use module_param() # # ChangeSet # 2004/05/14 14:47:04-07:00 greg@kroah.com # USB: convert pl2303 to use module_param() # # drivers/usb/serial/pl2303.c # 2004/05/14 07:46:43-07:00 greg@kroah.com +3 -2 # USB: convert pl2303 to use module_param() # # ChangeSet # 2004/05/14 14:46:03-07:00 greg@kroah.com # USB: change usbserial core to use module_param() # # drivers/usb/serial/usb-serial.c # 2004/05/14 07:45:20-07:00 greg@kroah.com +3 -2 # USB: change usbserial core to use module_param() # # drivers/usb/serial/generic.c # 2004/05/14 07:45:20-07:00 greg@kroah.com +3 -2 # USB: change usbserial core to use module_param() # # ChangeSet # 2004/05/14 13:08:58-07:00 davem@nuts.davemloft.net # [TG3]: Add 572x/575x PCI IDs to driver table, update vers/reldate. # # drivers/net/tg3.c # 2004/05/14 13:08:40-07:00 davem@nuts.davemloft.net +12 -2 # [TG3]: Add 572x/575x PCI IDs to driver table, update vers/reldate. # # ChangeSet # 2004/05/14 13:04:52-07:00 davem@nuts.davemloft.net # [TG3]: Rewrite dma_rwctrl settings to handle PCIX/PCIE. # # drivers/net/tg3.h # 2004/05/14 13:04:34-07:00 davem@nuts.davemloft.net +9 -0 # [TG3]: Rewrite dma_rwctrl settings to handle PCIX/PCIE. # # drivers/net/tg3.c # 2004/05/14 13:04:34-07:00 davem@nuts.davemloft.net +49 -82 # [TG3]: Rewrite dma_rwctrl settings to handle PCIX/PCIE. # # ChangeSet # 2004/05/14 12:35:59-07:00 davem@nuts.davemloft.net # [TG3]: Do not enable slow clocks on 5750 with ASF. # # drivers/net/tg3.c # 2004/05/14 12:35:41-07:00 davem@nuts.davemloft.net +2 -1 # [TG3]: Do not enable slow clocks on 5750 with ASF. # # ChangeSet # 2004/05/14 12:22:38-07:00 davem@nuts.davemloft.net # [TG3]: More 5750 chip reset tweaks. # # drivers/net/tg3.c # 2004/05/14 12:22:21-07:00 davem@nuts.davemloft.net +31 -3 # [TG3]: More 5750 chip reset tweaks. # # ChangeSet # 2004/05/14 12:19:20-07:00 david-b@pacbell.net # [PATCH] USB: hcd-pci suspend tweak # # I needed this to get an APM + UHCI config to behave on resume. # Applies against your BK of last night ... OHCI and EHCI do # some of this manually, they could be simplified later. # # drivers/usb/core/hcd-pci.c # 2004/05/11 09:28:40-07:00 david-b@pacbell.net +2 -0 # USB: hcd-pci suspend tweak # # ChangeSet # 2004/05/14 12:13:00-07:00 maneesh@in.ibm.com # [PATCH] sysfs_rename_dir-cleanup # # o The following patch cleans up sysfs_rename_dir(). It now checks the # return code of kobject_set_name() and propagates the error code to its # callers. Because of this there are changes in the following two APIs. Both # return int instead of void. # # int sysfs_rename_dir(struct kobject * kobj, const char *new_name) # int kobject_rename(struct kobject * kobj, char *new_name) # # ChangeSet # 2004/05/14 12:12:11-07:00 masbock@us.ibm.com # [PATCH] add ibmasm driver warning message # # [note, I changed this a bit to be nicer on the system log, greg k-h] # # drivers/misc/ibmasm/module.c # 2004/05/14 05:00:50-07:00 masbock@us.ibm.com +7 -0 # add ibmasm driver warning message # # drivers/misc/Kconfig # 2004/05/10 08:38:51-07:00 masbock@us.ibm.com +7 -1 # add ibmasm driver warning message # # ChangeSet # 2004/05/14 12:02:44-07:00 davem@nuts.davemloft.net # [TG3]: Full chip reset tweaks for 5750. # # drivers/net/tg3.c # 2004/05/14 12:02:27-07:00 davem@nuts.davemloft.net +11 -0 # [TG3]: Full chip reset tweaks for 5750. # # ChangeSet # 2004/05/14 11:57:21-07:00 david-b@pacbell.net # [PATCH] USB: ohci resume fix # # Prakash K. Cheemplavam wrote: # > David Brownell wrote: # > # >>> There appear lines like # >>> # >>> usb usb2: string descriptor 0 read error: -108 # >>> # >>> bug or feature? They weren't there with 2.6.6-mm1. I have no usb2.0 # >>> stuff to actually test. My usb1 stuff seems to work though. # >> # >> Bug; minor, since the only real symptom seems to be messages like # >> that. Ignore them for now, I'll make a patch soonish. # > # > Ok, good. Thanks for the explanation of what is going on, though I don't # > can make too much out of it. ;-) # # The short version is: it's missing this patch. # # drivers/usb/host/ohci-hub.c # 2004/05/13 09:15:18-07:00 david-b@pacbell.net +1 -0 # USB: ohci resume fix # # ChangeSet # 2004/05/14 11:56:59-07:00 davem@nuts.davemloft.net # [TG3]: On 5750 with TSO, need to set some special reg bits. # # drivers/net/tg3.c # 2004/05/14 11:56:42-07:00 davem@nuts.davemloft.net +9 -0 # [TG3]: On 5750 with TSO, need to set some special reg bits. # # ChangeSet # 2004/05/14 11:52:44-07:00 baldrick@free.fr # [PATCH] USB: compile fix for usbfs snooping # # drivers/usb/core/devio.c # 2004/05/14 00:50:03-07:00 baldrick@free.fr +1 -0 # USB: compile fix for usbfs snooping # # ChangeSet # 2004/05/14 11:49:41-07:00 greg@kroah.com # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/whiteheat.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +1 -22 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/visor.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +5 -16 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/usb-serial.h # 2004/05/14 04:49:03-07:00 greg@kroah.com +0 -13 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/usb-serial.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +17 -66 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/safe_serial.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +3 -10 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/pl2303.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +2 -17 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/omninet.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +7 -24 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/kl5kusb105.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +20 -38 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/keyspan.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +1 -5 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/ir-usb.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +6 -21 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/ipaq.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +2 -14 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/io_ti.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +29 -43 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/io_edgeport.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +29 -36 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/generic.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +1 -12 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/ftdi_sio.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +49 -70 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/empeg.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +4 -18 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/cyberjack.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +4 -16 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/console.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +3 -2 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # drivers/usb/serial/belkin_sa.c # 2004/05/14 04:49:03-07:00 greg@kroah.com +4 -12 # USB: remove get_usb_serial() as it's pretty much unneeded # # It also could hide real bugs, and that's not good. And the name # implies that a reference is grabbed, and that's not true at all. # # ChangeSet # 2004/05/14 11:46:43-07:00 davem@nuts.davemloft.net # [TG3]: Include mss in every txd, not just the first, on 5750. # # drivers/net/tg3.c # 2004/05/14 11:46:26-07:00 davem@nuts.davemloft.net +12 -4 # [TG3]: Include mss in every txd, not just the first, on 5750. # # ChangeSet # 2004/05/14 14:10:10-04:00 jgarzik@redhat.com # [netdrvr] remove rcpci driver, for Red Creek Hardware VPNs # # Pete Popov, the author says # # This driver is obsolete and broken in 2.4 (and I'm pretty sure in 2.6). # The hardware has not been available for a while. I wrote the driver # for 2.2 but after I left RedCreek (which went out of business), # someone in the community updated it to 2.4, but I don't think that # person even had the hardware to test it so the driver remained broken # in 2.4. So my recommendation is that it's really time to remove this # driver from the kernel tree. Just my opinion but I thought I'd share # it with you. # [...] # I can't imagine that there are any users because 2.4 was broken last # time I checked (admittedly that was a year ago). # # drivers/net/Makefile # 2004/05/14 14:08:27-04:00 jgarzik@redhat.com +0 -3 # [netdrvr] remove rcpci driver, for Red Creek Hardware VPNs # # Pete Popov, the author says # # This driver is obsolete and broken in 2.4 (and I'm pretty sure in 2.6). # The hardware has not been available for a while. I wrote the driver # for 2.2 but after I left RedCreek (which went out of business), # someone in the community updated it to 2.4, but I don't think that # person even had the hardware to test it so the driver remained broken # in 2.4. So my recommendation is that it's really time to remove this # driver from the kernel tree. Just my opinion but I thought I'd share # it with you. # [...] # I can't imagine that there are any users because 2.4 was broken last # time I checked (admittedly that was a year ago). # # drivers/net/Kconfig # 2004/05/14 14:08:27-04:00 jgarzik@redhat.com +0 -10 # [netdrvr] remove rcpci driver, for Red Creek Hardware VPNs # # Pete Popov, the author says # # This driver is obsolete and broken in 2.4 (and I'm pretty sure in 2.6). # The hardware has not been available for a while. I wrote the driver # for 2.2 but after I left RedCreek (which went out of business), # someone in the community updated it to 2.4, but I don't think that # person even had the hardware to test it so the driver remained broken # in 2.4. So my recommendation is that it's really time to remove this # driver from the kernel tree. Just my opinion but I thought I'd share # it with you. # [...] # I can't imagine that there are any users because 2.4 was broken last # time I checked (admittedly that was a year ago). # # ChangeSet # 2004/05/14 10:54:51-07:00 greg@kroah.com # USB: remove serial_paranoia_check() function # # If this is hiding real problems, we need to find them. # # drivers/usb/serial/usb-serial.h # 2004/05/14 03:54:11-07:00 greg@kroah.com +1 -17 # USB: remove serial_paranoia_check() function # # If this is hiding real problems, we need to find them. # # drivers/usb/serial/usb-serial.c # 2004/05/14 03:54:11-07:00 greg@kroah.com +0 -3 # USB: remove serial_paranoia_check() function # # If this is hiding real problems, we need to find them. # # drivers/usb/serial/pl2303.c # 2004/05/14 03:54:11-07:00 greg@kroah.com +0 -3 # USB: remove serial_paranoia_check() function # # If this is hiding real problems, we need to find them. # # drivers/usb/serial/omninet.c # 2004/05/14 03:54:11-07:00 greg@kroah.com +0 -6 # USB: remove serial_paranoia_check() function # # If this is hiding real problems, we need to find them. # # drivers/usb/serial/keyspan_pda.c # 2004/05/14 03:54:11-07:00 greg@kroah.com +1 -15 # USB: remove serial_paranoia_check() function # # If this is hiding real problems, we need to find them. # # drivers/usb/serial/io_ti.c # 2004/05/14 03:54:11-07:00 greg@kroah.com +0 -4 # USB: remove serial_paranoia_check() function # # If this is hiding real problems, we need to find them. # # drivers/usb/serial/io_edgeport.c # 2004/05/14 03:54:11-07:00 greg@kroah.com +0 -8 # USB: remove serial_paranoia_check() function # # If this is hiding real problems, we need to find them. # # drivers/usb/serial/digi_acceleport.c # 2004/05/14 03:54:11-07:00 greg@kroah.com +0 -5 # USB: remove serial_paranoia_check() function # # If this is hiding real problems, we need to find them. # # drivers/usb/serial/cyberjack.c # 2004/05/14 03:54:11-07:00 greg@kroah.com +0 -5 # USB: remove serial_paranoia_check() function # # If this is hiding real problems, we need to find them. # # drivers/usb/serial/belkin_sa.c # 2004/05/14 03:54:11-07:00 greg@kroah.com +0 -6 # USB: remove serial_paranoia_check() function # # If this is hiding real problems, we need to find them. # # ChangeSet # 2004/05/14 10:53:59-07:00 greg@kroah.com # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/visor.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +0 -12 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/usb-serial.h # 2004/05/14 03:53:25-07:00 greg@kroah.com +1 -18 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/pl2303.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +0 -11 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/omninet.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +0 -11 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/kobil_sct.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +0 -3 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/keyspan_pda.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +0 -9 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/ir-usb.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +0 -12 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/ipaq.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +0 -15 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/io_ti.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +0 -14 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/io_edgeport.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +23 -44 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/generic.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +0 -3 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/ftdi_sio.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +0 -6 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/empeg.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +0 -12 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/digi_acceleport.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +3 -10 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/cyberjack.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +0 -6 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # drivers/usb/serial/belkin_sa.c # 2004/05/14 03:53:25-07:00 greg@kroah.com +0 -6 # USB: removed port_paranoia_check() call for usb serial drivers. # # Pretty useless stuff. If this was hiding anything real, we need to find out. # # ChangeSet # 2004/05/14 10:52:34-07:00 greg@kroah.com # USB: remove magic number field from struct usb_serial as it's pretty useless. # # drivers/usb/serial/usb-serial.h # 2004/05/14 03:52:11-07:00 greg@kroah.com +0 -8 # USB: remove magic number field from struct usb_serial as it's pretty useless. # # drivers/usb/serial/usb-serial.c # 2004/05/14 03:52:11-07:00 greg@kroah.com +1 -2 # USB: remove magic number field from struct usb_serial as it's pretty useless. # # ChangeSet # 2004/05/14 10:50:40-07:00 greg@kroah.com # USB: remove magic number field from usb_serial_port as it's pretty useless. # # drivers/usb/serial/usb-serial.h # 2004/05/14 03:50:03-07:00 greg@kroah.com +1 -8 # USB: remove magic number field from usb_serial_port as it's pretty useless. # # drivers/usb/serial/usb-serial.c # 2004/05/14 03:50:03-07:00 greg@kroah.com +0 -1 # USB: remove magic number field from usb_serial_port as it's pretty useless. # # BitKeeper/deleted/.del-rcpci45.c~835bf68187aa024c # 2004/05/14 13:45:40-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/rcpci45.c # # BitKeeper/deleted/.del-rclanmtl.h~8817c7ee4b998a86 # 2004/05/14 13:45:40-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/rclanmtl.h # # BitKeeper/deleted/.del-rclanmtl.c~29677cb1f1e8c94 # 2004/05/14 13:45:40-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/rclanmtl.c # # BitKeeper/deleted/.del-rcif.h~4592b9fa074f7f4 # 2004/05/14 13:45:40-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/rcif.h # # ChangeSet # 2004/05/14 10:34:27-07:00 y.rutschle@indigovision.com # [ARM] Fix broken IXP4xx GPIO0 IRQ handling # # Patch from Yves Rutschle # # arch/arm/mach-ixp4xx/common.c # 2004/05/14 10:34:16-07:00 y.rutschle@indigovision.com +1 -1 # Fix broken IXP4xx GPIO0 IRQ handling # # ChangeSet # 2004/05/14 13:28:03-04:00 hch@lst.de # [netdrvr wan] remove comx driver # # the drivers have been broken since pre-2.4.0, like referencing a symbol # that was made procfs-internal in 2.3.x, haven't received maintainer # updates for about the same period and MOD_{INC,DEC}_USE_COUNT usage that # pretty much unfixable (inside warts of _horrible_ procfs abuse). # # drivers/net/wan/Makefile # 2004/05/14 13:26:19-04:00 hch@lst.de +0 -8 # [netdrvr wan] remove comx driver # # the drivers have been broken since pre-2.4.0, like referencing a symbol # that was made procfs-internal in 2.3.x, haven't received maintainer # updates for about the same period and MOD_{INC,DEC}_USE_COUNT usage that # pretty much unfixable (inside warts of _horrible_ procfs abuse). # # drivers/net/wan/Kconfig # 2004/05/14 13:26:19-04:00 hch@lst.de +0 -113 # [netdrvr wan] remove comx driver # # the drivers have been broken since pre-2.4.0, like referencing a symbol # that was made procfs-internal in 2.3.x, haven't received maintainer # updates for about the same period and MOD_{INC,DEC}_USE_COUNT usage that # pretty much unfixable (inside warts of _horrible_ procfs abuse). # # BitKeeper/deleted/.del-comxhw.h~6b76e46436247886 # 2004/05/14 13:25:03-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/wan/comxhw.h # # BitKeeper/deleted/.del-comx.h~af3561d319f35c94 # 2004/05/14 13:25:03-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/wan/comx.h # # BitKeeper/deleted/.del-comx.c~fc2ba0c33f9a9544 # 2004/05/14 13:25:03-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/wan/comx.c # # BitKeeper/deleted/.del-comx-proto-ppp.c~a73732d78d29937c # 2004/05/14 13:25:03-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/wan/comx-proto-ppp.c # # BitKeeper/deleted/.del-comx-proto-lapb.c~c752dbedec6c7bfe # 2004/05/14 13:25:03-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/wan/comx-proto-lapb.c # # BitKeeper/deleted/.del-comx-proto-fr.c~37dfa3e616a11ce9 # 2004/05/14 13:25:03-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/wan/comx-proto-fr.c # # BitKeeper/deleted/.del-comx-hw-munich.c~a3e4363f14137edb # 2004/05/14 13:25:03-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/wan/comx-hw-munich.c # # BitKeeper/deleted/.del-comx-hw-mixcom.c~a865aecdd553123b # 2004/05/14 13:25:02-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/wan/comx-hw-mixcom.c # # BitKeeper/deleted/.del-comx-hw-locomx.c~31fef1823d490470 # 2004/05/14 13:25:02-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/wan/comx-hw-locomx.c # # BitKeeper/deleted/.del-comx-hw-comx.c~ffe17568e39e2f57 # 2004/05/14 13:25:02-04:00 jgarzik@redhat.com +0 -0 # Delete: drivers/net/wan/comx-hw-comx.c # # ChangeSet # 2004/05/14 14:16:04+01:00 aia21@cantab.net # NTFS: 2.1.11 - Rename uchar_t to ntfschar. # # fs/ntfs/volume.h # 2004/05/14 14:15:58+01:00 aia21@cantab.net +1 -1 # Rename uchar_t to ntfschar. # # fs/ntfs/upcase.c # 2004/05/14 14:15:58+01:00 aia21@cantab.net +4 -4 # Rename uchar_t to ntfschar. # # fs/ntfs/unistr.c # 2004/05/14 14:15:58+01:00 aia21@cantab.net +23 -23 # Rename uchar_t to ntfschar. # # fs/ntfs/types.h # 2004/05/14 14:15:58+01:00 aia21@cantab.net +1 -1 # Rename uchar_t to ntfschar. # # fs/ntfs/super.c # 2004/05/14 14:15:57+01:00 aia21@cantab.net +6 -6 # Rename uchar_t to ntfschar. # # fs/ntfs/ntfs.h # 2004/05/14 14:15:57+01:00 aia21@cantab.net +16 -16 # Rename uchar_t to ntfschar. # # fs/ntfs/namei.c # 2004/05/14 14:15:57+01:00 aia21@cantab.net +4 -4 # Rename uchar_t to ntfschar. # # fs/ntfs/logfile.h # 2004/05/14 14:15:57+01:00 aia21@cantab.net +1 -1 # Rename uchar_t to ntfschar. # # fs/ntfs/layout.h # 2004/05/14 14:15:57+01:00 aia21@cantab.net +4 -4 # Rename uchar_t to ntfschar. # # fs/ntfs/inode.h # 2004/05/14 14:15:57+01:00 aia21@cantab.net +3 -3 # Rename uchar_t to ntfschar. # # fs/ntfs/inode.c # 2004/05/14 14:15:57+01:00 aia21@cantab.net +4 -4 # Rename uchar_t to ntfschar. # # fs/ntfs/dir.h # 2004/05/14 14:15:56+01:00 aia21@cantab.net +3 -3 # Rename uchar_t to ntfschar. # # fs/ntfs/dir.c # 2004/05/14 14:15:56+01:00 aia21@cantab.net +22 -22 # Rename uchar_t to ntfschar. # # fs/ntfs/attrib.h # 2004/05/14 14:15:56+01:00 aia21@cantab.net +5 -4 # Rename uchar_t to ntfschar. # # fs/ntfs/attrib.c # 2004/05/14 14:15:56+01:00 aia21@cantab.net +14 -13 # Rename uchar_t to ntfschar. # # fs/ntfs/ChangeLog # 2004/05/14 14:15:56+01:00 aia21@cantab.net +2 -0 # Update for 2.1.11 release. # # ChangeSet # 2004/05/14 12:30:56+01:00 aia21@cantab.net # NTFS: 2.1.11 - Driver internal cleanups. # # fs/ntfs/logfile.c # 2004/05/14 12:30:49+01:00 aia21@cantab.net +6 -1 # Use generic_ffs() instead of ffs() in which allows the log_page_size # variable to be optimized by gcc into a constant. # # fs/ntfs/Makefile # 2004/05/14 12:30:49+01:00 aia21@cantab.net +1 -1 # Bump version. # # fs/ntfs/ChangeLog # 2004/05/14 12:30:49+01:00 aia21@cantab.net +4 -1 # Update. # # Documentation/filesystems/ntfs.txt # 2004/05/14 12:30:49+01:00 aia21@cantab.net +2 -0 # Update. # # ChangeSet # 2004/05/13 22:46:01-04:00 jgarzik@redhat.com # [libata] kill ATA_QCFLAG_POLL flag # # The standard ATA bit nIEN in the Device Control register serves as # the indicator for whether we are polling or not. As it mirrors # ATA_QCFLAG_POLL completely, eliminate that in favor of testing # ATA_NIEN bit. # # include/linux/libata.h # 2004/05/13 22:45:55-04:00 jgarzik@redhat.com +0 -2 # [libata] kill ATA_QCFLAG_POLL flag # # The standard ATA bit nIEN in the Device Control register serves as # the indicator for whether we are polling or not. As it mirrors # ATA_QCFLAG_POLL completely, eliminate that in favor of testing # ATA_NIEN bit. # # drivers/scsi/sata_vsc.c # 2004/05/13 22:45:55-04:00 jgarzik@redhat.com +1 -1 # [libata] kill ATA_QCFLAG_POLL flag # # The standard ATA bit nIEN in the Device Control register serves as # the indicator for whether we are polling or not. As it mirrors # ATA_QCFLAG_POLL completely, eliminate that in favor of testing # ATA_NIEN bit. # # drivers/scsi/sata_sx4.c # 2004/05/13 22:45:55-04:00 jgarzik@redhat.com +1 -1 # [libata] kill ATA_QCFLAG_POLL flag # # The standard ATA bit nIEN in the Device Control register serves as # the indicator for whether we are polling or not. As it mirrors # ATA_QCFLAG_POLL completely, eliminate that in favor of testing # ATA_NIEN bit. # # drivers/scsi/sata_promise.c # 2004/05/13 22:45:55-04:00 jgarzik@redhat.com +1 -1 # [libata] kill ATA_QCFLAG_POLL flag # # The standard ATA bit nIEN in the Device Control register serves as # the indicator for whether we are polling or not. As it mirrors # ATA_QCFLAG_POLL completely, eliminate that in favor of testing # ATA_NIEN bit. # # drivers/scsi/libata-core.c # 2004/05/13 22:45:55-04:00 jgarzik@redhat.com +1 -1 # [libata] kill ATA_QCFLAG_POLL flag # # The standard ATA bit nIEN in the Device Control register serves as # the indicator for whether we are polling or not. As it mirrors # ATA_QCFLAG_POLL completely, eliminate that in favor of testing # ATA_NIEN bit. # # ChangeSet # 2004/05/13 22:39:17-04:00 jgarzik@redhat.com # [libata] random minor bug fixes # # * Only call ata_sg_setup{_one} if ATA_QCFLAG_SG is set. Preparation # for future use, as currently ATA_QCFLAG_SG is always set when # ata_qc_issue is called. # # This change in theory is incorrect for Promise TX/SX4 drivers, # since those drivers set up the Promise-specific packet in their # ->fill_sg hook, which is now called conditionally. # # A FIXME that doesn't affect anything, for now. # # * ATA_PROT_ATAPI and ATA_PROT_ATAPI_DMA command issue need to be # differentiated. # # * Create and use ata_qc_set_polling() to consistently set/clear the # flags associated with using polling instead of interrupts. # # include/linux/libata.h # 2004/05/13 22:39:12-04:00 jgarzik@redhat.com +7 -0 # [libata] random minor bug fixes # # * Only call ata_sg_setup{_one} if ATA_QCFLAG_SG is set. Preparation # for future use, as currently ATA_QCFLAG_SG is always set when # ata_qc_issue is called. # # This change in theory is incorrect for Promise TX/SX4 drivers, # since those drivers set up the Promise-specific packet in their # ->fill_sg hook, which is now called conditionally. # # A FIXME that doesn't affect anything, for now. # # * ATA_PROT_ATAPI and ATA_PROT_ATAPI_DMA command issue need to be # differentiated. # # * Create and use ata_qc_set_polling() to consistently set/clear the # flags associated with using polling instead of interrupts. # # drivers/scsi/libata-scsi.c # 2004/05/13 22:39:12-04:00 jgarzik@redhat.com +1 -2 # [libata] random minor bug fixes # # * Only call ata_sg_setup{_one} if ATA_QCFLAG_SG is set. Preparation # for future use, as currently ATA_QCFLAG_SG is always set when # ata_qc_issue is called. # # This change in theory is incorrect for Promise TX/SX4 drivers, # since those drivers set up the Promise-specific packet in their # ->fill_sg hook, which is now called conditionally. # # A FIXME that doesn't affect anything, for now. # # * ATA_PROT_ATAPI and ATA_PROT_ATAPI_DMA command issue need to be # differentiated. # # * Create and use ata_qc_set_polling() to consistently set/clear the # flags associated with using polling instead of interrupts. # # drivers/scsi/libata-core.c # 2004/05/13 22:39:12-04:00 jgarzik@redhat.com +16 -11 # [libata] random minor bug fixes # # * Only call ata_sg_setup{_one} if ATA_QCFLAG_SG is set. Preparation # for future use, as currently ATA_QCFLAG_SG is always set when # ata_qc_issue is called. # # This change in theory is incorrect for Promise TX/SX4 drivers, # since those drivers set up the Promise-specific packet in their # ->fill_sg hook, which is now called conditionally. # # A FIXME that doesn't affect anything, for now. # # * ATA_PROT_ATAPI and ATA_PROT_ATAPI_DMA command issue need to be # differentiated. # # * Create and use ata_qc_set_polling() to consistently set/clear the # flags associated with using polling instead of interrupts. # # ChangeSet # 2004/05/13 21:26:59-04:00 jgarzik@redhat.com # [libata] more ATAPI work - translate SCSI CDB to ATA PACKET # # Now that we can specify ATAPI as a taskfile protocol, we can utilize # the existing SCSI->ATA translation infrastructure to build an ATA # PACKET command quickly and easily. # # drivers/scsi/libata.h # 2004/05/13 21:26:53-04:00 jgarzik@redhat.com +0 -1 # [libata] more ATAPI work - translate SCSI CDB to ATA PACKET # # Now that we can specify ATAPI as a taskfile protocol, we can utilize # the existing SCSI->ATA translation infrastructure to build an ATA # PACKET command quickly and easily. # # drivers/scsi/libata-scsi.c # 2004/05/13 21:26:53-04:00 jgarzik@redhat.com +16 -46 # [libata] more ATAPI work - translate SCSI CDB to ATA PACKET # # Now that we can specify ATAPI as a taskfile protocol, we can utilize # the existing SCSI->ATA translation infrastructure to build an ATA # PACKET command quickly and easily. # # drivers/scsi/libata-core.c # 2004/05/13 21:26:53-04:00 jgarzik@redhat.com +0 -14 # [libata] more ATAPI work - translate SCSI CDB to ATA PACKET # # Now that we can specify ATAPI as a taskfile protocol, we can utilize # the existing SCSI->ATA translation infrastructure to build an ATA # PACKET command quickly and easily. # # ChangeSet # 2004/05/13 21:15:42-04:00 jgarzik@redhat.com # [libata] use new ->bmdma_{start,setup} method to properly support ATAPI # # drivers/scsi/libata-core.c # 2004/05/13 21:15:37-04:00 jgarzik@redhat.com +9 -2 # [libata] use new ->bmdma_{start,setup} method to properly support ATAPI # # ChangeSet # 2004/05/13 20:35:48-04:00 jgarzik@redhat.com # [libata] add new ->bmdma_setup hook # # In order to support some new taskfile protocols, particularly ATAPI, # the setup-and-start-DMA hook needs to be split into its component # pieces, 'setup' and 'start'. # # For PCI IDE-style controllers, most of the code is moved into the # 'setup' portion, with the 'start' portion only flipping a single # bit in hardware. # # ChangeSet # 2004/05/13 17:34:01-07:00 dsaxena@xanadu.(none) # [ARM] Add config help and documentation for Intel IXP4xx platforms # # Patch from Deepak Saxena # # # include/linux/libata.h # 2004/05/13 20:33:36-04:00 jgarzik@redhat.com +3 -0 # [libata] add new ->bmdma_setup hook # # In order to support some new taskfile protocols, particularly ATAPI, # the setup-and-start-DMA hook needs to be split into its component # pieces, 'setup' and 'start'. # # For PCI IDE-style controllers, most of the code is moved into the # 'setup' portion, with the 'start' portion only flipping a single # bit in hardware. # # drivers/scsi/sata_vsc.c # 2004/05/13 20:33:36-04:00 jgarzik@redhat.com +1 -0 # [libata] add new ->bmdma_setup hook # # In order to support some new taskfile protocols, particularly ATAPI, # the setup-and-start-DMA hook needs to be split into its component # pieces, 'setup' and 'start'. # # For PCI IDE-style controllers, most of the code is moved into the # 'setup' portion, with the 'start' portion only flipping a single # bit in hardware. # # drivers/scsi/sata_via.c # 2004/05/13 20:33:36-04:00 jgarzik@redhat.com +1 -0 # [libata] add new ->bmdma_setup hook # # In order to support some new taskfile protocols, particularly ATAPI, # the setup-and-start-DMA hook needs to be split into its component # pieces, 'setup' and 'start'. # # For PCI IDE-style controllers, most of the code is moved into the # 'setup' portion, with the 'start' portion only flipping a single # bit in hardware. # # drivers/scsi/sata_sx4.c # 2004/05/13 20:33:36-04:00 jgarzik@redhat.com +8 -0 # [libata] add new ->bmdma_setup hook # # In order to support some new taskfile protocols, particularly ATAPI, # the setup-and-start-DMA hook needs to be split into its component # pieces, 'setup' and 'start'. # # For PCI IDE-style controllers, most of the code is moved into the # 'setup' portion, with the 'start' portion only flipping a single # bit in hardware. # # drivers/scsi/sata_svw.c # 2004/05/13 20:33:36-04:00 jgarzik@redhat.com +1 -0 # [libata] add new ->bmdma_setup hook # # In order to support some new taskfile protocols, particularly ATAPI, # the setup-and-start-DMA hook needs to be split into its component # pieces, 'setup' and 'start'. # # For PCI IDE-style controllers, most of the code is moved into the # 'setup' portion, with the 'start' portion only flipping a single # bit in hardware. # # drivers/scsi/sata_sis.c # 2004/05/13 20:33:36-04:00 jgarzik@redhat.com +1 -0 # [libata] add new ->bmdma_setup hook # # In order to support some new taskfile protocols, particularly ATAPI, # the setup-and-start-DMA hook needs to be split into its component # pieces, 'setup' and 'start'. # # For PCI IDE-style controllers, most of the code is moved into the # 'setup' portion, with the 'start' portion only flipping a single # bit in hardware. # # drivers/scsi/sata_sil.c # 2004/05/13 20:33:36-04:00 jgarzik@redhat.com +1 -0 # [libata] add new ->bmdma_setup hook # # In order to support some new taskfile protocols, particularly ATAPI, # the setup-and-start-DMA hook needs to be split into its component # pieces, 'setup' and 'start'. # # For PCI IDE-style controllers, most of the code is moved into the # 'setup' portion, with the 'start' portion only flipping a single # bit in hardware. # # drivers/scsi/sata_promise.c # 2004/05/13 20:33:36-04:00 jgarzik@redhat.com +8 -0 # [libata] add new ->bmdma_setup hook # # In order to support some new taskfile protocols, particularly ATAPI, # the setup-and-start-DMA hook needs to be split into its component # pieces, 'setup' and 'start'. # # For PCI IDE-style controllers, most of the code is moved into the # 'setup' portion, with the 'start' portion only flipping a single # bit in hardware. # # drivers/scsi/libata-core.c # 2004/05/13 20:33:36-04:00 jgarzik@redhat.com +40 -6 # [libata] add new ->bmdma_setup hook # # In order to support some new taskfile protocols, particularly ATAPI, # the setup-and-start-DMA hook needs to be split into its component # pieces, 'setup' and 'start'. # # For PCI IDE-style controllers, most of the code is moved into the # 'setup' portion, with the 'start' portion only flipping a single # bit in hardware. # # drivers/scsi/ata_piix.c # 2004/05/13 20:33:36-04:00 jgarzik@redhat.com +2 -0 # [libata] add new ->bmdma_setup hook # # In order to support some new taskfile protocols, particularly ATAPI, # the setup-and-start-DMA hook needs to be split into its component # pieces, 'setup' and 'start'. # # For PCI IDE-style controllers, most of the code is moved into the # 'setup' portion, with the 'start' portion only flipping a single # bit in hardware. # # Documentation/arm/IXP4xx # 2004/05/13 17:33:10-07:00 dsaxena@xanadu.(none) +155 -0 # # arch/arm/mach-ixp4xx/Kconfig # 2004/05/13 17:33:09-07:00 dsaxena@xanadu.(none) +26 -10 # Add help and arrange platforms in alphabetical order. # # Documentation/arm/IXP4xx # 2004/05/13 17:33:09-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/Documentation/arm/IXP4xx # # ChangeSet # 2004/05/13 16:04:18-07:00 david-b@pacbell.net # [PATCH] USB: usbhid calls itself "hid" # # drivers/usb/input/hid-core.c # 2004/05/12 04:08:51-07:00 david-b@pacbell.net +1 -1 # USB: usbhid calls itself "hid" # # ChangeSet # 2004/05/13 16:03:50-07:00 tony@atomide.com # [PATCH] USB: Merge support for Keyspan UPR-112 USB serial adapter from 2.4 to 2.6 # # Following patch merges the support for Keyspan UPR-112 USB serial adapter # from 2.4 to 2.6. # # drivers/usb/serial/keyspan.h # 2004/05/12 08:42:18-07:00 tony@atomide.com +18 -1 # USB: Merge support for Keyspan UPR-112 USB serial adapter from 2.4 to 2.6 # # ChangeSet # 2004/05/13 15:41:14-07:00 dsaxena@xanadu.(none) # MTD driver for Intel IXP4xx platform (from MTD CVS tree) # # Patch from Deepak Saxena # # drivers/mtd/maps/ixp4xx.c # 2004/05/13 15:41:03-07:00 dsaxena@xanadu.(none) +244 -0 # # drivers/mtd/maps/ixp4xx.c # 2004/05/13 15:41:03-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/drivers/mtd/maps/ixp4xx.c # # drivers/mtd/maps/Makefile # 2004/05/13 15:41:03-07:00 dsaxena@xanadu.(none) +1 -0 # IXP4xx MTD driver # # drivers/mtd/maps/Kconfig # 2004/05/13 15:41:03-07:00 dsaxena@xanadu.(none) +9 -0 # IXP4xx MTD driver # # ChangeSet # 2004/05/13 15:40:30-07:00 greg@kroah.com # USB: add snooping capability to usbfs for control messages. # # Also fix up some of the other printk() calls to be dev_* calls. # # drivers/usb/core/devio.c # 2004/05/13 08:39:48-07:00 greg@kroah.com +55 -9 # USB: add snooping capability to usbfs for control messages. # # Also fix up some of the other printk() calls to be dev_* calls. # # ChangeSet # 2004/05/13 15:12:54-07:00 dsaxena@xanadu.(none) # [ARM] Remove Documentation/ARM/XScale # # Patch from Deepak Saxena # # Documentation/ARM/XScale has not been updated by anyone in a long time; # therefore, it is being deleted until someone volunteers to provide # updated versions. # # # BitKeeper/deleted/.del-tlb-lock.txt~77f1d6aeda3c090 # 2004/05/13 14:38:44-07:00 dsaxena@xanadu.(none) +0 -0 # Delete: Documentation/arm/XScale/tlb-lock.txt # # BitKeeper/deleted/.del-pmu.txt~3eecfbb31cb40b4 # 2004/05/13 14:38:44-07:00 dsaxena@xanadu.(none) +0 -0 # Delete: Documentation/arm/XScale/pmu.txt # # BitKeeper/deleted/.del-pmon.txt~88a269055fd6891e # 2004/05/13 14:38:43-07:00 dsaxena@xanadu.(none) +0 -0 # Delete: Documentation/arm/XScale/IOP3XX/pmon.txt # # BitKeeper/deleted/.del-message.txt~a4db9e118e42bf9 # 2004/05/13 14:38:43-07:00 dsaxena@xanadu.(none) +0 -0 # Delete: Documentation/arm/XScale/IOP3XX/message.txt # # BitKeeper/deleted/.del-dma.txt~cbe702694f172423 # 2004/05/13 14:38:43-07:00 dsaxena@xanadu.(none) +0 -0 # Delete: Documentation/arm/XScale/IOP3XX/dma.txt # # BitKeeper/deleted/.del-cache-lock.txt~60355a0d3b053722 # 2004/05/13 14:38:43-07:00 dsaxena@xanadu.(none) +0 -0 # Delete: Documentation/arm/XScale/cache-lock.txt # # BitKeeper/deleted/.del-aau.txt~8a027e607b98cf14 # 2004/05/13 14:38:43-07:00 dsaxena@xanadu.(none) +0 -0 # Delete: Documentation/arm/XScale/IOP3XX/aau.txt # # BitKeeper/deleted/.del-IQ80321~2a95de5fcee7cc8 # 2004/05/13 14:38:43-07:00 dsaxena@xanadu.(none) +0 -0 # Delete: Documentation/arm/XScale/IOP3XX/IQ80321 # # BitKeeper/deleted/.del-IQ80310~84679126f3cb684a # 2004/05/13 14:38:43-07:00 dsaxena@xanadu.(none) +0 -0 # Delete: Documentation/arm/XScale/IOP3XX/IQ80310 # # BitKeeper/deleted/.del-80200EVB~7d0c3e8590fcb05 # 2004/05/13 14:38:43-07:00 dsaxena@xanadu.(none) +0 -0 # Delete: Documentation/arm/XScale/ADIFCC/80200EVB # # ChangeSet # 2004/05/13 14:15:01-07:00 akpm@osdl.org # [PATCH] USB: fix ohci-hcd build error # # "Matt H." wrote: # > # > Just attempted to compile 2.6.6-mm2 and got this error # > # > CC [M] drivers/usb/core/driverfs.o # > CC [M] drivers/usb/core/hcd-pci.o # > LD [M] drivers/usb/core/usbcore.o # > LD drivers/usb/host/built-in.o # > CC [M] drivers/usb/host/ehci-hcd.o # > CC [M] drivers/usb/host/ohci-hcd.o # > In file included from drivers/usb/host/ohci-hcd.c:129: # > drivers/usb/host/ohci-hub.c: In function `ohci_rh_resume': # > drivers/usb/host/ohci-hub.c:313: error: `hcd' undeclared (first use in this # > function) # # hm, not sure what's happened there... # # drivers/usb/host/ohci-hub.c # 2004/05/13 11:23:57-07:00 akpm@osdl.org +1 -1 # USB: fix ohci-hcd build error # # ChangeSet # 2004/05/13 14:14:34-07:00 stern@rowland.harvard.edu # [PATCH] USB: Don't delete interfaces until all are unbound # # On Thu, 13 May 2004, Duncan Sands wrote: # # > No, but the pointer for another (previous) interface may just have been # > set to NULL, causing an Oops when usb_ifnum_to_if loops over all # > interfaces. # # Of course! I trust you won't mind me changing your suggested fix # slightly. This should do an equally good job of repairing things, and it # will prevent other possible invalid references as well. # # drivers/usb/core/usb.c # 2004/05/13 06:40:06-07:00 stern@rowland.harvard.edu +6 -0 # USB: Don't delete interfaces until all are unbound # # drivers/usb/core/message.c # 2004/05/13 06:37:48-07:00 stern@rowland.harvard.edu +8 -1 # USB: Don't delete interfaces until all are unbound # # ChangeSet # 2004/05/13 14:14:05-07:00 baldrick@free.fr # [PATCH] USB: Patch to remove interface indices from devio.c # # > I went ahead and created a patch to change all the places where devio.c # > uses an interface index. Now it always uses just the interface number. # > Does this look all right to you? I don't have a convenient way to test # > it. # # Hi Alan, thanks for doing this. It looks and works OK. I added some name # changes: all struct usb_interface pointers are now called intf; and, when # reasonable, variables holding interface numbers are now all called ifnum. # This drowns your original changes in a sea of churning names, I hope you # don't mind. # # drivers/usb/core/devio.c # 2004/05/13 08:15:18-07:00 baldrick@free.fr +78 -108 # USB: Patch to remove interface indices from devio.c # # ChangeSet # 2004/05/13 14:13:38-07:00 david-b@pacbell.net # [PATCH] USB: missing probe() diagnostics for CDC Ethernet # # This patch should help correct the "missing diagnostics with # CONFIG_USB_DEBUG during CDC Ethernet probe()" issue. Some # folk are having problems with firmware that doesn't respond # properly to descriptor fetches -- which is unnecessarily # confusing because the diagnostics aren't being printed. # # drivers/usb/net/usbnet.c # 2004/05/09 13:10:23-07:00 david-b@pacbell.net +14 -20 # USB: missing probe() diagnostics for CDC Ethernet # # ChangeSet # 2004/05/13 10:40:24-07:00 dsaxena@xanadu.(none) # prpmc1100-setup.c, ixdp425-setup.c, coyote-setup.c: # Add INIT_MACHINE() to ixp4xx platform setup code # # arch/arm/mach-ixp4xx/prpmc1100-setup.c # 2004/05/13 10:39:40-07:00 dsaxena@xanadu.(none) +2 -8 # Add INIT_MACHINE() to ixp4xx platform setup code # # arch/arm/mach-ixp4xx/ixdp425-setup.c # 2004/05/13 10:39:40-07:00 dsaxena@xanadu.(none) +4 -10 # Add INIT_MACHINE() to ixp4xx platform setup code # # arch/arm/mach-ixp4xx/coyote-setup.c # 2004/05/13 10:39:40-07:00 dsaxena@xanadu.(none) +2 -9 # Add INIT_MACHINE() to ixp4xx platform setup code # # ChangeSet # 2004/05/13 10:37:50-07:00 dsaxena@xanadu.(none) # common.c: # Remove unused flag variable from ixp4xx_timer_interrupt # # arch/arm/mach-ixp4xx/common.c # 2004/05/13 10:36:08-07:00 dsaxena@xanadu.(none) +0 -2 # Remove unused flag variable from ixp4xx_timer_interrupt # # ChangeSet # 2004/05/13 18:27:25+01:00 ben-linux@org.rmk.(none) # [ARM PATCH] 1876/1: Removed apostrophes from asembler source # # Patch from Ben Dooks # # Removed two 's from assembly code (binutils has problems # with these) # # # arch/arm/kernel/debug.S # 2004/05/12 15:51:33+01:00 ben-linux@org.rmk.(none) +1 -1 # [PATCH] 1876/1: Removed apostrophes from asembler source # # arch/arm/boot/compressed/head.S # 2004/05/12 16:08:49+01:00 ben-linux@org.rmk.(none) +1 -1 # [PATCH] 1876/1: Removed apostrophes from asembler source # # ChangeSet # 2004/05/13 18:23:16+01:00 ben-linux@org.rmk.(none) # [ARM PATCH] 1875/1: SMDK2410 machine support # # Patch from Ben Dooks # # Initial support for SMDK2410 and variants # # arch/arm/mach-s3c2410/mach-smdk2410.c # 2004/05/12 15:54:31+01:00 ben-linux@org.rmk.(none) +109 -0 # [PATCH] 1875/1: SMDK2410 machine support # # include/asm-arm/arch-s3c2410/time.h # 2004/05/12 13:59:06+01:00 ben-linux@org.rmk.(none) +1 -1 # [PATCH] 1875/1: SMDK2410 machine support # # arch/arm/mach-s3c2410/mach-smdk2410.c # 2004/05/12 15:54:31+01:00 ben-linux@org.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/mach-s3c2410/mach-smdk2410.c # # arch/arm/mach-s3c2410/Makefile # 2004/05/12 13:59:06+01:00 ben-linux@org.rmk.(none) +1 -0 # [PATCH] 1875/1: SMDK2410 machine support # # arch/arm/mach-s3c2410/Kconfig # 2004/05/12 13:59:06+01:00 ben-linux@org.rmk.(none) +7 -0 # [PATCH] 1875/1: SMDK2410 machine support # # arch/arm/configs/smdk2410_defconfig # 2004/05/12 19:27:11+01:00 ben-linux@org.rmk.(none) +667 -0 # [PATCH] 1875/1: SMDK2410 machine support # # arch/arm/configs/smdk2410_defconfig # 2004/05/12 19:27:11+01:00 ben-linux@org.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/configs/smdk2410_defconfig # # ChangeSet # 2004/05/13 10:20:39-07:00 dsaxena@xanadu.(none) # common.c: # new file # # arch/arm/mach-ixp4xx/common.c # 2004/05/13 10:20:22-07:00 dsaxena@xanadu.(none) +266 -0 # # arch/arm/mach-ixp4xx/common.c # 2004/05/13 10:20:22-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/arch/arm/mach-ixp4xx/common.c # # ChangeSet # 2004/05/13 18:19:26+01:00 ben-linux@org.rmk.(none) # [ARM PATCH] 1874/1: S3C2410 - fix for selection of low-level debug UART # # Patch from Ben Dooks # # Fix selection configuration entry for UART number for low-level debug # # arch/arm/Kconfig # 2004/05/12 14:12:26+01:00 ben-linux@org.rmk.(none) +1 -1 # [PATCH] 1874/1: S3C2410 - fix for selection of low-level debug UART # # ChangeSet # 2004/05/13 14:41:47+01:00 jelenz@edu.rmk.(none) # [ARM PATCH] 1851/1: sa1100 fb support for collie # # Patch from John Lenz # # Add the sa1100fb_mach_info structure for collie # # drivers/video/sa1100fb.c # 2004/05/13 01:00:00+01:00 jelenz@edu.rmk.(none) +21 -0 # [PATCH] 1851/1: sa1100 fb support for collie # # ChangeSet # 2004/05/13 14:05:27+01:00 rmk@flint.arm.linux.org.uk # Merge bk://dsaxena.bkbits.net/linux-2.6-for-rmk # into flint.arm.linux.org.uk:/usr/src/bk/linux-2.6-ds # # arch/arm/kernel/entry-armv.S # 2004/05/13 14:04:22+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Auto merged # # arch/arm/kernel/debug.S # 2004/05/13 14:04:21+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Auto merged # # ChangeSet # 2004/05/13 12:59:34+01:00 nico@org.rmk.(none) # [ARM PATCH] 1871/1: faster IRQ retrieval for PXA27x # # Patch from Nicolas Pitre # # On the PXA27x it's also possible to get the IRQ info from CP6 # and it has a much lower latency than the memory mapped equivalent. # # arch/arm/kernel/entry-armv.S # 2004/05/13 02:11:42+01:00 nico@org.rmk.(none) +5 -0 # [PATCH] 1871/1: faster IRQ retrieval for PXA27x # # ChangeSet # 2004/05/13 12:55:33+01:00 nico@org.rmk.(none) # [ARM PATCH] 1865/1: DMA changes for PXA27x # # Patch from Nicolas Pitre # # # include/asm-arm/arch-pxa/dma.h # 2004/05/13 02:21:47+01:00 nico@org.rmk.(none) +21 -3 # [PATCH] 1865/1: DMA changes for PXA27x # # arch/arm/mach-pxa/dma.c # 2004/05/13 02:16:27+01:00 nico@org.rmk.(none) +3 -3 # [PATCH] 1865/1: DMA changes for PXA27x # # ChangeSet # 2004/05/13 12:51:39+01:00 nico@org.rmk.(none) # [ARM PATCH] 1864/1: separate PXA25x and PXA27x specific code # # Patch from Nicolas Pitre # # # arch/arm/mach-pxa/pxa27x.c # 2004/05/12 19:04:14+01:00 nico@org.rmk.(none) +120 -0 # [PATCH] 1864/1: separate PXA25x and PXA27x specific code # # arch/arm/mach-pxa/generic.c # 2004/04/28 03:15:18+01:00 nico@org.rmk.(none) +0 -67 # [PATCH] 1864/1: separate PXA25x and PXA27x specific code # # arch/arm/mach-pxa/Makefile # 2004/04/28 22:15:30+01:00 nico@org.rmk.(none) +2 -0 # [PATCH] 1864/1: separate PXA25x and PXA27x specific code # # arch/arm/mach-pxa/pxa27x.c # 2004/05/12 19:04:14+01:00 nico@org.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/mach-pxa/pxa27x.c # # arch/arm/mach-pxa/Kconfig # 2004/04/28 21:28:31+01:00 nico@org.rmk.(none) +13 -1 # [PATCH] 1864/1: separate PXA25x and PXA27x specific code # # arch/arm/mach-pxa/pxa25x.c # 2004/04/27 19:36:30+01:00 nico@org.rmk.(none) +94 -0 # [PATCH] 1864/1: separate PXA25x and PXA27x specific code # # arch/arm/mach-pxa/pxa25x.c # 2004/04/27 19:36:30+01:00 nico@org.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/mach-pxa/pxa25x.c # # ChangeSet # 2004/05/13 12:47:12+01:00 nico@org.rmk.(none) # [ARM PATCH] 1863/2: definitions and mapping for the Intel PXA27x internal registers # # # Patch from Nicolas Pitre # # This reworks PXA register mapping to accommodate the extra registers # of the PXA27x chips (aka Bulverde). # # include/asm-arm/arch-pxa/pxa-regs.h # 2004/05/12 03:58:45+01:00 nico@org.rmk.(none) +692 -25 # [PATCH] 1863/2: definitions and mapping for the Intel PXA27x internal registers # # include/asm-arm/arch-pxa/hardware.h # 2004/04/30 01:52:42+01:00 nico@org.rmk.(none) +13 -16 # [PATCH] 1863/2: definitions and mapping for the Intel PXA27x internal registers # # arch/arm/mach-pxa/generic.c # 2004/04/28 03:15:18+01:00 nico@org.rmk.(none) +12 -7 # [PATCH] 1863/2: definitions and mapping for the Intel PXA27x internal registers # # ChangeSet # 2004/05/13 12:43:02+01:00 nico@org.rmk.(none) # [ARM PATCH] 1842/1: fix/clarify some comments # # Patch from Nicolas Pitre # # # include/asm-arm/thread_info.h # 2004/05/03 19:51:38+01:00 nico@org.rmk.(none) +1 -1 # [PATCH] 1842/1: fix/clarify some comments # # arch/arm/kernel/entry-armv.S # 2004/05/03 19:55:24+01:00 nico@org.rmk.(none) +1 -1 # [PATCH] 1842/1: fix/clarify some comments # # ChangeSet # 2004/05/13 12:27:15+01:00 jkluebs@com.rmk.(none) # [ARM PATCH] 1848/1: PXA suspend/resume improvements # # Patch from John K Luebs # # This adds support to preserve the GPIO level across a suspend # and resume for PXA machine types. Removes the hack to preserve # the FFUART state as this is unnecessary with the 2.6 serial # driver code. # # arch/arm/mach-pxa/pm.c # 2004/05/08 06:26:39+01:00 jkluebs@com.rmk.(none) +12 -39 # [PATCH] 1848/1: PXA suspend/resume improvements # # ChangeSet # 2004/05/13 12:22:56+01:00 tony@com.rmk.(none) # [ARM PATCH] 1854/1: Remove old board specific OMAP files # # Patch from Tony Lindgren # # Removes old duplicate board specific files that have been renamed to # board-*.c # # BitKeeper/deleted/.del-omap-perseus2.c~9645374675850b43 # 2004/05/13 12:21:00+01:00 tony@com.rmk.(none) +0 -0 # Delete: arch/arm/mach-omap/omap-perseus2.c # # BitKeeper/deleted/.del-omap-generic.c~2b62a02fa6084188 # 2004/05/13 12:20:59+01:00 tony@com.rmk.(none) +0 -0 # Delete: arch/arm/mach-omap/omap-generic.c # # BitKeeper/deleted/.del-innovator1610.c~fa081e5bd042b1e4 # 2004/05/13 12:20:58+01:00 tony@com.rmk.(none) +0 -0 # Delete: arch/arm/mach-omap/innovator1610.c # # BitKeeper/deleted/.del-innovator1510.c~f2b03aa9ff6103da # 2004/05/13 12:20:57+01:00 tony@com.rmk.(none) +0 -0 # Delete: arch/arm/mach-omap/innovator1510.c # # ChangeSet # 2004/05/13 12:19:05+01:00 tony@com.rmk.(none) # [ARM PATCH] 1853/1: Update OMAP low level debug functions # # Patch from Tony Lindgren # # Changes OMAP low level debug function to allow virtual IO != physical # IO. Also removes waituart checking, as it only worked for first # serial port. # # arch/arm/kernel/debug.S # 2004/05/10 19:13:34+01:00 tony@com.rmk.(none) +16 -4 # [PATCH] 1853/1: Update OMAP low level debug functions # # ChangeSet # 2004/05/13 12:14:47+01:00 icampbell@com.rmk.(none) # [ARM PATCH] 1827/1: PXAFB patch updated based on comments in 1826 # # Patch from Ian Campbell # # The patch includes the PXA FB driver discussed recently on the # arm-kernel mailing list, I have incorporated your (RMK's) comments # from patch 1826. # # include/asm-arm/arch-pxa/pxafb.h # 2004/04/26 09:36:51+01:00 icampbell@com.rmk.(none) +68 -0 # [PATCH] 1827/1: PXAFB patch updated based on comments in 1826 # # include/asm-arm/arch-pxa/pxa-regs.h # 2004/04/26 11:00:41+01:00 icampbell@com.rmk.(none) +32 -7 # [PATCH] 1827/1: PXAFB patch updated based on comments in 1826 # # drivers/video/pxafb.h # 2004/04/26 11:02:12+01:00 icampbell@com.rmk.(none) +129 -0 # [PATCH] 1827/1: PXAFB patch updated based on comments in 1826 # # drivers/video/pxafb.c # 2004/04/26 11:01:49+01:00 icampbell@com.rmk.(none) +1376 -0 # [PATCH] 1827/1: PXAFB patch updated based on comments in 1826 # # drivers/video/fbmem.c # 2004/04/26 09:36:51+01:00 icampbell@com.rmk.(none) +5 -0 # [PATCH] 1827/1: PXAFB patch updated based on comments in 1826 # # drivers/video/Makefile # 2004/04/26 09:36:51+01:00 icampbell@com.rmk.(none) +1 -1 # [PATCH] 1827/1: PXAFB patch updated based on comments in 1826 # # drivers/video/Kconfig # 2004/04/26 09:36:53+01:00 icampbell@com.rmk.(none) +31 -0 # [PATCH] 1827/1: PXAFB patch updated based on comments in 1826 # # include/asm-arm/arch-pxa/pxafb.h # 2004/04/26 09:36:51+01:00 icampbell@com.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-pxa/pxafb.h # # drivers/video/pxafb.h # 2004/04/26 11:02:12+01:00 icampbell@com.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/drivers/video/pxafb.h # # drivers/video/pxafb.c # 2004/04/26 11:01:49+01:00 icampbell@com.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/drivers/video/pxafb.c # # arch/arm/mach-pxa/generic.c # 2004/04/26 09:36:51+01:00 icampbell@com.rmk.(none) +37 -0 # [PATCH] 1827/1: PXAFB patch updated based on comments in 1826 # # Documentation/fb/pxafb.txt # 2004/04/26 09:36:52+01:00 icampbell@com.rmk.(none) +54 -0 # [PATCH] 1827/1: PXAFB patch updated based on comments in 1826 # # Documentation/fb/pxafb.txt # 2004/04/26 09:36:52+01:00 icampbell@com.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/Documentation/fb/pxafb.txt # # ChangeSet # 2004/05/12 21:53:02-07:00 davem@nuts.davemloft.net # [TG3]: Updated ASF handling for 5750. # # drivers/net/tg3.h # 2004/05/12 21:52:44-07:00 davem@nuts.davemloft.net +3 -0 # [TG3]: Updated ASF handling for 5750. # # drivers/net/tg3.c # 2004/05/12 21:52:44-07:00 davem@nuts.davemloft.net +107 -18 # [TG3]: Updated ASF handling for 5750. # # ChangeSet # 2004/05/12 21:23:46-07:00 davem@nuts.davemloft.net # [TG3]: Update LED programming to support 5750. # # drivers/net/tg3.h # 2004/05/12 21:23:28-07:00 davem@nuts.davemloft.net +18 -15 # [TG3]: Update LED programming to support 5750. # # drivers/net/tg3.c # 2004/05/12 21:23:28-07:00 davem@nuts.davemloft.net +63 -33 # [TG3]: Update LED programming to support 5750. # # ChangeSet # 2004/05/12 20:28:36-07:00 davem@nuts.davemloft.net # [TG3]: Add 5750 NVRAM programming plus 5704 MAC offset bug fix. # # drivers/net/tg3.h # 2004/05/12 20:28:18-07:00 davem@nuts.davemloft.net +8 -1 # [TG3]: Add 5750 NVRAM programming plus 5704 MAC offset bug fix. # # drivers/net/tg3.c # 2004/05/12 20:28:18-07:00 davem@nuts.davemloft.net +72 -39 # [TG3]: Add 5750 NVRAM programming plus 5704 MAC offset bug fix. # # ChangeSet # 2004/05/12 15:24:58-07:00 dsaxena@xanadu.(none) # pci_ids.h: # IXP4xx support # # include/linux/pci_ids.h # 2004/05/12 15:23:15-07:00 dsaxena@xanadu.(none) +1 -0 # IXP4xx support # # ChangeSet # 2004/05/12 15:02:42-07:00 dsaxena@xanadu.(none) # Add IXP4xx support # # include/asm-arm/arch-ixp4xx/vmalloc.h # 2004/05/12 15:02:26-07:00 dsaxena@xanadu.(none) +17 -0 # # include/asm-arm/arch-ixp4xx/vmalloc.h # 2004/05/12 15:02:26-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/vmalloc.h # # include/asm-arm/arch-ixp4xx/uncompress.h # 2004/05/12 15:02:25-07:00 dsaxena@xanadu.(none) +64 -0 # # include/asm-arm/arch-ixp4xx/uncompress.h # 2004/05/12 15:02:25-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/uncompress.h # # include/asm-arm/arch-ixp4xx/timex.h # 2004/05/12 15:02:24-07:00 dsaxena@xanadu.(none) +12 -0 # # include/asm-arm/arch-ixp4xx/timex.h # 2004/05/12 15:02:24-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/timex.h # # include/asm-arm/arch-ixp4xx/time.h # 2004/05/12 15:02:23-07:00 dsaxena@xanadu.(none) +7 -0 # # include/asm-arm/arch-ixp4xx/time.h # 2004/05/12 15:02:23-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/time.h # # include/asm-arm/arch-ixp4xx/system.h # 2004/05/12 15:02:22-07:00 dsaxena@xanadu.(none) +43 -0 # # include/asm-arm/arch-ixp4xx/system.h # 2004/05/12 15:02:22-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/system.h # # include/asm-arm/arch-ixp4xx/serial.h # 2004/05/12 15:02:21-07:00 dsaxena@xanadu.(none) +27 -0 # # include/asm-arm/arch-ixp4xx/serial.h # 2004/05/12 15:02:21-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/serial.h # # include/asm-arm/arch-ixp4xx/prpmc1100.h # 2004/05/12 15:02:20-07:00 dsaxena@xanadu.(none) +33 -0 # # include/asm-arm/arch-ixp4xx/prpmc1100.h # 2004/05/12 15:02:20-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/prpmc1100.h # # include/asm-arm/arch-ixp4xx/platform.h # 2004/05/12 15:02:18-07:00 dsaxena@xanadu.(none) +116 -0 # # include/asm-arm/arch-ixp4xx/platform.h # 2004/05/12 15:02:18-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/platform.h # # include/asm-arm/arch-ixp4xx/param.h # 2004/05/12 15:02:16-07:00 dsaxena@xanadu.(none) +3 -0 # # include/asm-arm/arch-ixp4xx/param.h # 2004/05/12 15:02:16-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/param.h # # include/asm-arm/arch-ixp4xx/memory.h # 2004/05/12 15:02:15-07:00 dsaxena@xanadu.(none) +49 -0 # # include/asm-arm/arch-ixp4xx/memory.h # 2004/05/12 15:02:15-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/memory.h # # include/asm-arm/arch-ixp4xx/ixp4xx-regs.h # 2004/05/12 15:02:14-07:00 dsaxena@xanadu.(none) +551 -0 # # include/asm-arm/arch-ixp4xx/ixp4xx-regs.h # 2004/05/12 15:02:14-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h # # include/asm-arm/arch-ixp4xx/ixdp425.h # 2004/05/12 15:02:13-07:00 dsaxena@xanadu.(none) +38 -0 # # include/asm-arm/arch-ixp4xx/ixdp425.h # 2004/05/12 15:02:13-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/ixdp425.h # # include/asm-arm/arch-ixp4xx/irqs.h # 2004/05/12 15:02:12-07:00 dsaxena@xanadu.(none) +78 -0 # # include/asm-arm/arch-ixp4xx/irqs.h # 2004/05/12 15:02:12-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/irqs.h # # include/asm-arm/arch-ixp4xx/irq.h # 2004/05/12 15:02:11-07:00 dsaxena@xanadu.(none) +13 -0 # # include/asm-arm/arch-ixp4xx/irq.h # 2004/05/12 15:02:11-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/irq.h # # include/asm-arm/arch-ixp4xx/io.h # 2004/05/12 15:02:09-07:00 dsaxena@xanadu.(none) +388 -0 # # include/asm-arm/arch-ixp4xx/io.h # 2004/05/12 15:02:09-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/io.h # # include/asm-arm/arch-ixp4xx/ide.h # 2004/05/12 15:02:08-07:00 dsaxena@xanadu.(none) +37 -0 # # include/asm-arm/arch-ixp4xx/ide.h # 2004/05/12 15:02:08-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/ide.h # # include/asm-arm/arch-ixp4xx/hardware.h # 2004/05/12 15:02:07-07:00 dsaxena@xanadu.(none) +41 -0 # # include/asm-arm/arch-ixp4xx/hardware.h # 2004/05/12 15:02:07-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/hardware.h # # include/asm-arm/arch-ixp4xx/dma.h # 2004/05/12 15:02:06-07:00 dsaxena@xanadu.(none) +52 -0 # # include/asm-arm/arch-ixp4xx/dma.h # 2004/05/12 15:02:06-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/dma.h # # include/asm-arm/arch-ixp4xx/coyote.h # 2004/05/12 15:02:05-07:00 dsaxena@xanadu.(none) +36 -0 # # include/asm-arm/arch-ixp4xx/coyote.h # 2004/05/12 15:02:05-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/include/asm-arm/arch-ixp4xx/coyote.h # # arch/arm/mach-ixp4xx/prpmc1100-setup.c # 2004/05/12 15:02:04-07:00 dsaxena@xanadu.(none) +96 -0 # # arch/arm/mach-ixp4xx/prpmc1100-setup.c # 2004/05/12 15:02:04-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/arch/arm/mach-ixp4xx/prpmc1100-setup.c # # arch/arm/mach-ixp4xx/prpmc1100-pci.c # 2004/05/12 15:02:03-07:00 dsaxena@xanadu.(none) +119 -0 # # arch/arm/mach-ixp4xx/prpmc1100-pci.c # 2004/05/12 15:02:03-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/arch/arm/mach-ixp4xx/prpmc1100-pci.c # # arch/arm/mach-ixp4xx/ixdp425-setup.c # 2004/05/12 15:02:02-07:00 dsaxena@xanadu.(none) +153 -0 # # arch/arm/mach-ixp4xx/ixdp425-setup.c # 2004/05/12 15:02:02-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/arch/arm/mach-ixp4xx/ixdp425-setup.c # # arch/arm/mach-ixp4xx/ixdp425-pci.c # 2004/05/12 15:02:01-07:00 dsaxena@xanadu.(none) +84 -0 # # arch/arm/mach-ixp4xx/ixdp425-pci.c # 2004/05/12 15:02:01-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/arch/arm/mach-ixp4xx/ixdp425-pci.c # # arch/arm/mach-ixp4xx/coyote-setup.c # 2004/05/12 15:02:00-07:00 dsaxena@xanadu.(none) +97 -0 # # arch/arm/mach-ixp4xx/coyote-setup.c # 2004/05/12 15:02:00-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/arch/arm/mach-ixp4xx/coyote-setup.c # # arch/arm/mach-ixp4xx/coyote-pci.c # 2004/05/12 15:01:59-07:00 dsaxena@xanadu.(none) +69 -0 # # arch/arm/mach-ixp4xx/coyote-pci.c # 2004/05/12 15:01:59-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/arch/arm/mach-ixp4xx/coyote-pci.c # # arch/arm/mach-ixp4xx/common-pci.c # 2004/05/12 15:01:58-07:00 dsaxena@xanadu.(none) +543 -0 # # arch/arm/mach-ixp4xx/common-pci.c # 2004/05/12 15:01:58-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/arch/arm/mach-ixp4xx/common-pci.c # # arch/arm/mach-ixp4xx/Makefile # 2004/05/12 15:01:57-07:00 dsaxena@xanadu.(none) +10 -0 # # arch/arm/mach-ixp4xx/Makefile # 2004/05/12 15:01:57-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/arch/arm/mach-ixp4xx/Makefile # # arch/arm/mach-ixp4xx/Kconfig # 2004/05/12 15:01:56-07:00 dsaxena@xanadu.(none) +73 -0 # # arch/arm/mach-ixp4xx/Kconfig # 2004/05/12 15:01:56-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/arch/arm/mach-ixp4xx/Kconfig # # arch/arm/configs/ixp4xx_defconfig # 2004/05/12 15:01:55-07:00 dsaxena@xanadu.(none) +1081 -0 # # arch/arm/configs/ixp4xx_defconfig # 2004/05/12 15:01:55-07:00 dsaxena@xanadu.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-for-rmk/arch/arm/configs/ixp4xx_defconfig # # ChangeSet # 2004/05/12 14:59:16-07:00 dsaxena@xanadu.(none) # proc-xscale.S, Kconfig: # IXP4xx support # # arch/arm/mm/proc-xscale.S # 2004/05/12 14:58:58-07:00 dsaxena@xanadu.(none) +21 -0 # IXP4xx support # # arch/arm/mm/Kconfig # 2004/05/12 14:58:58-07:00 dsaxena@xanadu.(none) +1 -1 # IXP4xx support # # ChangeSet # 2004/05/12 14:58:18-07:00 dsaxena@xanadu.(none) # head.S, Makefile: # IXP4xx support # # arch/arm/boot/compressed/head.S # 2004/05/12 14:58:03-07:00 dsaxena@xanadu.(none) +6 -0 # IXP4xx support # # arch/arm/boot/Makefile # 2004/05/12 14:58:03-07:00 dsaxena@xanadu.(none) +2 -0 # IXP4xx support # # ChangeSet # 2004/05/12 14:57:06-07:00 dsaxena@xanadu.(none) # entry-armv.S, debug.S, bios32.c: # IXP4xx support # # arch/arm/kernel/entry-armv.S # 2004/05/12 14:56:47-07:00 dsaxena@xanadu.(none) +28 -0 # IXP4xx support # # arch/arm/kernel/debug.S # 2004/05/12 14:56:47-07:00 dsaxena@xanadu.(none) +25 -0 # IXP4xx support # # arch/arm/kernel/bios32.c # 2004/05/12 14:56:47-07:00 dsaxena@xanadu.(none) +28 -0 # IXP4xx support # # ChangeSet # 2004/05/12 14:55:17-07:00 dsaxena@xanadu.(none) # First of a set of eight patches that adds support for Intel's # IXP4xx family of network processors. The code still needs some # cleanup here and there, but it's to the point that it's should # be OK to push upstream. # # Some of the remaining TODOs: # # - Cleanup GPIO IRQ handling for edge-trigered HW (none exists ATM) # - Add IDE driver for various platforms # - Misc cleanups # # This patch adds the changes to arch/arm/Makefile and arch/arm/Kconfig # # arch/arm/Makefile # 2004/05/12 14:55:05-07:00 dsaxena@xanadu.(none) +1 -0 # IXP4xx support # # arch/arm/Kconfig # 2004/05/12 14:55:05-07:00 dsaxena@xanadu.(none) +7 -2 # IXP4xx support # # ChangeSet # 2004/05/12 14:25:12-07:00 davem@nuts.davemloft.net # [TG3]: If asked to load TSO firmware on 5750, just return success. # # The 5750 does TSO in hardware, not via firmware code. # # drivers/net/tg3.c # 2004/05/12 14:24:52-07:00 davem@nuts.davemloft.net +3 -0 # [TG3]: If asked to load TSO firmware on 5750, just return success. # # The 5750 does TSO in hardware, not via firmware code. # # ChangeSet # 2004/05/12 13:59:06-07:00 davem@nuts.davemloft.net # [TG3]: Update to non-5705 TSO firmware version 1.6.0 # # drivers/net/tg3.c # 2004/05/12 13:58:48-07:00 davem@nuts.davemloft.net +278 -278 # [TG3]: Update to non-5705 TSO firmware version 1.6.0 # # ChangeSet # 2004/05/12 13:49:49-07:00 davem@nuts.davemloft.net # [TG3]: Update to 5788 capable 5705 TSO firmware, version 1.2.0 # # drivers/net/tg3.c # 2004/05/12 13:49:30-07:00 davem@nuts.davemloft.net +119 -121 # [TG3]: Update to 5788 capable 5705 TSO firmware, version 1.2.0 # # ChangeSet # 2004/05/12 12:51:44-07:00 mchouque@online.fr # [MODULES]: Fix endianness in modprobe. # # scripts/modpost.c # 2004/05/12 12:51:30-07:00 mchouque@online.fr +1 -0 # [MODULES]: Fix endianness in modprobe. # # ChangeSet # 2004/05/12 12:03:46-07:00 shemminger@osdl.org # [BRIDGE]: Allow multiple interfaces with same address (necessary for VLAN's). # # net/bridge/br_fdb.c # 2004/05/12 12:03:33-07:00 shemminger@osdl.org +10 -10 # [BRIDGE]: Allow multiple interfaces with same address (necessary for VLAN's). # # ChangeSet # 2004/05/12 11:33:56-07:00 mchouque@online.fr # [SPARC]: Mark unaligned_panic as attribute used to workaround gcc-3.4 problem. # # arch/sparc64/kernel/unaligned.c # 2004/05/12 11:33:33-07:00 mchouque@online.fr +1 -1 # [SPARC]: Mark unaligned_panic as attribute used to workaround gcc-3.4 problem. # # ChangeSet # 2004/05/12 10:06:23-07:00 greg@kroah.com # Merge kroah.com:/home/greg/linux/BK/bleed-2.6 # into kroah.com:/home/greg/linux/BK/usb-2.6 # # drivers/usb/core/inode.c # 2004/05/12 10:06:18-07:00 greg@kroah.com +0 -0 # Auto merged # # MAINTAINERS # 2004/05/12 10:06:18-07:00 greg@kroah.com +0 -0 # Auto merged # # ChangeSet # 2004/05/11 16:43:50-07:00 maneesh@in.ibm.com # [PATCH] kobject/sysfs race fix # # The following patch fixes the race involved between unregistering a kobject # and simultaneously opeing a corresponding attribute file in sysfs. # # Ideally sysfs should take a ref. to the kobject as long as it has dentries # referring to the kobjects, but because of current limitations in # module/kobject ref counting, sysfs's pinning of kobject leads to # hang/delays in rmmod of certain modules. The patch checks for unhashed # dentries in check_perm() while opening a sysfs file. If the dentry is # still hashed then it goes ahead and takes the ref to kobject. This done # under the per dentry lock. It does this in the inline routine # sysfs_get_kobject(dentry). # # fs/sysfs/sysfs.h # 2004/04/14 11:26:50-07:00 maneesh@in.ibm.com +13 -0 # kobject/sysfs race fix # # fs/sysfs/file.c # 2004/04/14 11:26:50-07:00 maneesh@in.ibm.com +1 -1 # kobject/sysfs race fix # # fs/sysfs/bin.c # 2004/04/14 11:26:50-07:00 maneesh@in.ibm.com +1 -1 # kobject/sysfs race fix # # drivers/usb/image/mdc800.c # 2004/05/11 16:37:35-07:00 oliver@neukum.org +9 -3 # USB: fixes of assumptions about waitqueues # # ChangeSet # 2004/05/11 16:35:42-07:00 James.Bottomley@steeleye.com # [PATCH] fix dev_printk to work even in the absence of an attached driver # # include/linux/device.h # 2004/05/11 01:58:44-07:00 James.Bottomley@steeleye.com +1 -1 # fix dev_printk to work even in the absence of an attached driver # # ChangeSet # 2004/05/11 16:31:46-07:00 maneesh@in.ibm.com # [PATCH] kobject_set_name - error handling # # 1) kobject_set_name-cleanup-01.patch # # This patch corrects the following by checking the reutrn code from # kobject_set_name(). # # bus_add_driver() # bus_register() # sys_dev_register() # # # # o The following patch cleansup the kobject_set_name() users. Basically checking # return code from kobject_set_name(). There can be error returns like -ENOMEM # or -EFAULT from kobject_set_name() if the name length exceeds KOBJ_NAME_LEN. # # drivers/base/sys.c # 2004/05/11 09:20:09-07:00 maneesh@in.ibm.com +4 -1 # kobject_set_name - error handling # # drivers/base/bus.c # 2004/05/11 09:21:15-07:00 maneesh@in.ibm.com +9 -2 # kobject_set_name - error handling # # ChangeSet # 2004/05/11 16:19:59-07:00 colin@colino.net # [PATCH] USB: cosmetic fixes for cdc-acm # # drivers/usb/class/cdc-acm.c # 2004/05/10 10:04:34-07:00 colin@colino.net +142 -133 # USB: cosmetic fixes for cdc-acm # # ChangeSet # 2004/05/11 16:03:07-07:00 david-b@pacbell.net # [PATCH] USB: OHCI root hub suspend/resume/wakeup # # This patch goes on top of the previous two, and the hcd-0506 patch: # # - Moves root hub suspend/resume code out of PCI-specific bus glue # into generic hub code. That way it's easy to re-use it even # for non-PCI implementations like SA1111, OMAP, and LH7A404. # (Plus, given CONFIG_USB_SUSPEND, it can be invoked with sysfs.) # # - Root hub suspend is a lot more careful, as is root hub resume. # Pending transactions are now shut down more consistently; and # more registers are re-initialized on resume. # # - The PCI bus glue is now left with truly generic PCI stuff, plus # some PMAC-specific stuff (which doesn't include irq disabling # any more, hcd-0506 moves that up a level in the stack). # # - Remote wakeup support is basically working for the root hub. # (given CONFIG_USB_SUSPEND to suspend devices and enable it). # # - Idle HCs will now automatically suspend themselves, and resume # as necessary. This saves a certain amount of power on most # systems, and matches what UHCI has been doing for a while. # # The large size of this patch is mostly because of moving that # root hub suspend/resume code out of the PCI-specific glue. # # drivers/usb/host/ohci.h # 2004/05/09 10:29:43-07:00 david-b@pacbell.net +4 -1 # USB: OHCI root hub suspend/resume/wakeup # # drivers/usb/host/ohci-pci.c # 2004/05/09 10:33:18-07:00 david-b@pacbell.net +26 -142 # USB: OHCI root hub suspend/resume/wakeup # # drivers/usb/host/ohci-mem.c # 2004/05/09 10:31:20-07:00 david-b@pacbell.net +1 -0 # USB: OHCI root hub suspend/resume/wakeup # # drivers/usb/host/ohci-hub.c # 2004/05/09 10:35:38-07:00 david-b@pacbell.net +290 -3 # USB: OHCI root hub suspend/resume/wakeup # # drivers/usb/host/ohci-hcd.c # 2004/05/09 10:37:07-07:00 david-b@pacbell.net +12 -1 # USB: OHCI root hub suspend/resume/wakeup # # ChangeSet # 2004/05/11 15:57:51-07:00 david-b@pacbell.net # [PATCH] USB: khubd turns port power back on after reset # # This goes with the OHCI anti-deadlock patch, and is what # ensures that when a root hub loses power during suspend, # khubd can turn port power back on so devices can enumerate. # # drivers/usb/core/hub.c # 2004/05/09 10:26:14-07:00 david-b@pacbell.net +8 -1 # USB: khubd turns port power back on after reset # # ChangeSet # 2004/05/11 15:57:21-07:00 david-b@pacbell.net # [PATCH] USB: OHCI cleanups # # This splits out a few obvious fixes, to help shrink a PM patch: # # - when the HC is quiescing, don't schedule any more EDs # or re-activate any after unlink completion. # # - when the HC is suspended, don't access registers through # sysfs either. # # - simplify locking and call for donelist processing # # drivers/usb/host/ohci-q.c # 2004/05/11 13:17:33-07:00 david-b@pacbell.net +8 -9 # USB: OHCI cleanups # # drivers/usb/host/ohci-pci.c # 2004/05/11 06:28:56-07:00 david-b@pacbell.net +5 -3 # USB: OHCI cleanups # # drivers/usb/host/ohci-hcd.c # 2004/05/11 13:17:48-07:00 david-b@pacbell.net +4 -2 # USB: OHCI cleanups # # drivers/usb/host/ohci-dbg.c # 2004/05/11 13:17:33-07:00 david-b@pacbell.net +12 -2 # USB: OHCI cleanups # # ChangeSet # 2004/05/11 15:56:50-07:00 david-b@pacbell.net # [PATCH] USB: OHCI resume/reset stops deadlocking in PM code # # System-wide PM resume now happily deadlocks if one of the # resuming devices tries to remove devices which vanished # during the suspend(*). IMO that's unreasonable both # because devices can/do vanish, and because 2.4 didn't # deadlock in those cases; but no patch to fix that has been # merged. The result is that ever since merging the "new" PM # code, some OHCI-based systems deadlock on resume. # # So this patch handles the "lost power during resume" case # differently: it doesn't disconnect the root hub (or its # children) directly. Instead, it does part of that work # immediately, and defers the rest to khubd: # # - add a "pending" list for live urbs, and use it after reset # to abort pending URBs (and reclaim "live" EDs/TDs) # - immediately mark all devices NOTATTACHED, so any operations # on the devices before khubd handles the disconnects, including # resume() callbacks, will fail # - kick root hub so it can do the cleanup # # It also handles "fminterval" init/reinit a bit better, mostly # to work better in some remote wakeup scenarios addressed in # later patches: # # - save any initial value the boot firmware provided # - use it during initialization (and eventually, remote wakeup) # # Other changes: # # - use better jiffies calculation for scheduled delays # - the allocator does more of the one-time initialization # - initialize hcd.can_wakeup according to boot firmware # - move some inlines to the header # - minor cleanups # # # (*) http://marc.theaimsgroup.com/?l=linux-kernel&m=106606272103414&w=2 # reported against 2.6.0-test7. # # drivers/usb/host/ohci.h # 2004/05/11 03:17:51-07:00 david-b@pacbell.net +31 -2 # USB: OHCI resume/reset stops deadlocking in PM code # # drivers/usb/host/ohci-q.c # 2004/05/11 03:19:12-07:00 david-b@pacbell.net +3 -1 # USB: OHCI resume/reset stops deadlocking in PM code # # drivers/usb/host/ohci-mem.c # 2004/05/11 03:17:58-07:00 david-b@pacbell.net +2 -0 # USB: OHCI resume/reset stops deadlocking in PM code # # drivers/usb/host/ohci-hcd.c # 2004/05/11 04:09:19-07:00 david-b@pacbell.net +89 -30 # USB: OHCI resume/reset stops deadlocking in PM code # # ChangeSet # 2004/05/11 15:45:25-07:00 oliver@neukum.org # [PATCH] USB: fixes of assumptions about waitqueues # # quoting Linus: # # -- # > so there is no need to recheck the bit in do/while loop, because # > there is no false wakeups now. # # You should never assume this. You should assume that there are _always_ # false wakeups. # # Why? Because Linux has always allowed people to leave wait-queues active, # without being "atomic". For example, the tty read/write layer used to # (still does?) add itself on the wait-queue _once_, and then leave itself # on the wait-queue while in a loop it does copies from/to user space. # -- # # Unfortunately, this means us. Here's the first fix. Comments? # # - make sure timeouts are observed even if somebody left us on a queue # # ChangeSet # 2004/05/11 15:41:37-07:00 david-b@pacbell.net # [PATCH] USB: more functional HCD PCI PM glue # # This patch makes the usbcore PCI suspend/resume logic behave # much better. In particular: # # - Even HCs without PCI PM support will normally be able # to support global suspend, saving power ... and will # need to resume later. Let them try to suspend; lots # of not-that-old USB controllers don't have PM caps. # # - Saner order for the boilerplate PCI stuff. It also # explicitly disables the IRQ and DMA, which aren't # available in D1/D2/D3 states anyway. # # - Uses pci_enable_wake() when the root hub supports # remote wakeup. Didn't fully work in one test setup; # that controller's PME# was evidently ignored. (Not # enabled unless CONFIG_USB_SUSPEND.) # # It worked for me with brief tests with the current 2.6.6-rc # uhci-hcd with one old UHCI; more extensive ones with various # OHCIs (using patches which I'll post soonish); and not at all # with EHCI (where PM hasn't ever worked). # # Those of you who've been having PM problems might find # this helpful as-is, though I think that unless you're # using UHCI you'll also need an HCD patch. # # - Dave # # drivers/usb/core/hcd-pci.c # 2004/05/06 12:41:30-07:00 david-b@pacbell.net +47 -22 # USB: more functional HCD PCI PM glue # # ChangeSet # 2004/05/11 23:39:47+01:00 aia21@cantab.net # NTFS: Really final white space cleanups. # # fs/ntfs/attrib.c # 2004/05/11 23:38:56+01:00 aia21@cantab.net +16 -16 # White space cleanups. # # fs/ntfs/ChangeLog # 2004/05/11 23:38:50+01:00 aia21@cantab.net +10 -4 # Update # # ChangeSet # 2004/05/11 15:34:08-07:00 stern@rowland.harvard.edu # [PATCH] USB: Accept devices with funky interface/altsetting numbers # # Now that all the USB drivers have been audited, we can safely accept # devices that have noncompliant numbering for their interfaces or # altsettings. This patch skips bad or duplicate descriptors, allows gaps # in the numbering, accepts more or fewer interfaces than bNumInterfaces, # and logs warnings describing all these things. Also, the debugging log # messages have been improved by David Brownell. # # This should please a sizeable group of users. # # drivers/usb/core/config.c # 2004/05/11 06:59:21-07:00 stern@rowland.harvard.edu +173 -120 # USB: Accept devices with funky interface/altsetting numbers # # ChangeSet # 2004/05/11 15:33:38-07:00 david-b@pacbell.net # [PATCH] USB: EHCI power management updates # # This patch updates EHCI suspend/resume so that its essential # components work on a few different implementations: # # - make root hub suspend/resume work # - make remote wakeup work (given CONFIG_USB_SUSPEND patch) # - separate root hub suspend/resume from PCI suspend/resume # - say if controller supports remote wakeup (on this system) # - sysfs register dump unavailable if controller is suspended # # Plus a handful of minor cleanups. Please merge, along with the # "hcd-0506.patch" I sent last week. # # Tested by modifying sysfs power/state files, since ACPI doesn't # work on this system (so I can't test system suspend/resume): # # - For root hub(*) ... suspend/resume works, also remote wakeup # - PCI controller ... suspend/resume works, remote wakeup # signals PME# (according to "lspci -vv"), but that's ignored # on my test sytem # # Regardless of whether USB was active, "echo 1 > /proc/acpi/sleep" # produced a system that wouldn't resume, and the same result # came from "echo standby > /sys/power/state". So that's about # as far as I can take this testing for now. # # - Dave # # (*) Doing this relies on the CONFIG_USB_SUSPEND patch. Otherwise # no USB devices respond to sysfs power/state updates. The # PCI suspend/resume is a superset of this. # # drivers/usb/host/ehci.h # 2004/05/07 12:49:08-07:00 david-b@pacbell.net +15 -4 # USB: EHCI power management updates # # drivers/usb/host/ehci-hub.c # 2004/05/10 12:40:20-07:00 david-b@pacbell.net +177 -5 # USB: EHCI power management updates # # drivers/usb/host/ehci-hcd.c # 2004/05/10 12:38:12-07:00 david-b@pacbell.net +68 -68 # USB: EHCI power management updates # # drivers/usb/host/ehci-dbg.c # 2004/05/07 12:48:33-07:00 david-b@pacbell.net +27 -3 # USB: EHCI power management updates # # ChangeSet # 2004/05/11 15:33:09-07:00 stern@rowland.harvard.edu # [PATCH] USB Gadget: Fix file-storage gadget Request Sense length # # On Fri, 7 May 2004, kernel@metro.cx wrote: # > Hi All, # > # > I don't know where else to report this, but I found a very very very # > minor bug in the usb gadgets drivers, specifically the file_storage.c # > mass storage driver. # > # > In the function do_request_sense(..) it says: # > # > buf[7] = 18 - 7; // Additional sense length # > # > Whereas (according to page 38 of the USB mass storage class, UFI command spec, # > http://www.usb.org/developers/devclass_docs#approved) this clearly neads # > to be equal to 10, not 11. # > # > I checked with the 2.6.5 source, it is still there. Hope someone will find this usefull, although most USB hosts seem to ignore length bits alltogether anyway.... # > # > Koen Martens # # You are quite right; thank you for pointing this out. Greg, please apply # the patch below. # # drivers/usb/gadget/file_storage.c # 2004/05/07 05:21:45-07:00 stern@rowland.harvard.edu +1 -1 # USB Gadget: Fix file-storage gadget Request Sense length # # ChangeSet # 2004/05/11 15:32:38-07:00 lcapitulino@prefeitura.sp.gov.br # [PATCH] USB: fix media/dsbr100.c unused variable. # # drivers/usb/media/dsbr100.c: In function `usb_dsbr100_probe': # drivers/usb/media/dsbr100.c:239: warning: unused variable `videodev' # # drivers/usb/media/dsbr100.c # 2004/05/07 01:53:51-07:00 lcapitulino@prefeitura.sp.gov.br +0 -1 # USB: fix media/dsbr100.c unused variable. # # ChangeSet # 2004/05/11 23:16:06+01:00 aia21@cantab.net # NTFS: Only build logfile.o if building the driver with read-write support. # # fs/ntfs/Makefile # 2004/05/11 23:15:11+01:00 aia21@cantab.net +5 -3 # Only build logfile.o if building the driver with read-write support. # # fs/ntfs/ChangeLog # 2004/05/11 23:15:07+01:00 aia21@cantab.net +4 -0 # Update # # ChangeSet # 2004/05/11 14:59:36-07:00 arjanv@redhat.com # [PATCH] PCI crash with pciless box or pci=off workaround on Vaio's # # From: Alan Cox # # Reasoning # # # - Earlier in boot if we find a PCI bus we set raw_pci_ops to the function # table to use for PCI accesses. # - When we enter this function we now check if we have such a method # - If not then we know it will otherwise crash because the call sequence # through the code goes # # pci_irq_init # pirq_peer_trick # pci_scan_bus_parented # which always leads down into the device scan and a pci config access # via raw_pci_ops # # The moment the scan searches for a device it has to crash as it has no # access methods. # # - The other case which does nothing but pci_fixup_irqs is a no-op with no # PCI devices # # - THUS any situation that is changed by the raw_pci_ops check was # previously an oops case anyway or did nothing anyway. # # # Tested with pci=off and without # # arch/i386/pci/irq.c # 2004/05/07 06:28:59-07:00 arjanv@redhat.com +1 -1 # PCI crash with pciless box or pci=off workaround on Vaio's # # ChangeSet # 2004/05/11 14:54:19-07:00 herbert@gondor.apana.org.au # [PATCH] acpiphp_glue.c oops fix # # It oopses during modprobe becasue the first load of acpiphp didn't clean up # properly. # # drivers/pci/hotplug/acpiphp_glue.c # 2004/04/26 06:38:16-07:00 herbert@gondor.apana.org.au +2 -0 # acpiphp_glue.c oops fix # # ChangeSet # 2004/05/11 14:50:43-07:00 lcapitulino@prefeitura.sp.gov.br # [PATCH] PCI Hotplug: fix wrong var used in hotplug/shpchp_ctrl.c. # # Zhenmin's checker tool detected this: # # 9. /drivers/pci/hotplug/shpchp_ctrl.c, Line 1575: # err("%s: Failed to disable slot, error code(%d)\n", __FUNCTION__, rc); # # Maybe change to: # err("%s: Failed to disable slot, error code(%d)\n", __FUNCTION__, # retval); # # I think it is right because at line 1564, the slot is turned off, and # in this line (1575) is checked the status to see if we got an error; if # so, the error number is shown. This number is in 'retval', not in 'rc' # ('rc' does have the return of configure_new_device()). # # The patch bellow fixes that: # # drivers/pci/hotplug/shpchp_ctrl.c # 2004/05/06 16:59:42-07:00 lcapitulino@prefeitura.sp.gov.br +1 -1 # PCI Hotplug: fix wrong var used in hotplug/shpchp_ctrl.c. # # ChangeSet # 2004/05/11 14:50:01-07:00 eike-hotplug@sf-tec.de # [PATCH] SHPC PCI Hotplug: fix cleanup_slots again... # # Am Donnerstag, 6. Mai 2004 02:48 schrieb Sy, Dely L: # > On Fri, 30 Apr 2004 12:31:18 +0200, Rolf Eike Beer wrote: # # >> - # >> -static int cleanup_slots (struct controller * ctrl) # >> +static void cleanup_slots(const struct controller *ctrl) # >> { # >> - struct slot *old_slot, *next_slot; # >> + struct slot *old_slot; # >> # >> old_slot = ctrl->slot; # >> ctrl->slot = NULL; # >> # >> while (old_slot) { # >> - next_slot = old_slot->next; # >> - pci_hp_deregister (old_slot->hotplug_slot); # >> - kfree(old_slot->hotplug_slot->info); # >> - kfree(old_slot->hotplug_slot->name); # >> - kfree(old_slot->hotplug_slot); # >> - kfree(old_slot); # >> - old_slot = next_slot; # >> + pci_hp_deregister(old_slot->hotplug_slot); # >> + old_slot = old_slot->next; # >> } # > # > The variable next_slot and its assignment should be kept, for once # > pci_hp_deregister() is called and the release callback function, which # > you added, may come in and clean up old_slot structure before the next # > ptr is saved. The code should be: # > # > static void cleanup_slots(const struct controller *ctrl) # > { # > struct slot *old_slot, *next_slot; # > # > old_slot = ctrl->slot; # > ctrl->slot = NULL; # > # > while (old_slot) { # > next_slot = old_slot->next; # > pci_hp_deregister (old_slot->hotplug_slot); # > old_slot = next_slot; # > } # > } # # Yes, good point. Greg, this patch makes does it. Please apply on top of the # other stuff. # # drivers/pci/hotplug/shpchp_core.c # 2004/05/06 05:19:55-07:00 eike-hotplug@sf-tec.de +3 -2 # SHPC PCI Hotplug: fix cleanup_slots again... # # ChangeSet # 2004/05/11 14:46:07-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express, SHPCHP: fix freeing wrong resources # # drivers/pci/hotplug/shpchp_core.c # 2004/05/06 02:54:32-07:00 eike-hotplug@sf-tec.de +4 -4 # PCI Express, SHPCHP: fix freeing wrong resources # # drivers/pci/hotplug/pciehp_core.c # 2004/05/06 02:53:57-07:00 eike-hotplug@sf-tec.de +4 -4 # PCI Express, SHPCHP: fix freeing wrong resources # # ChangeSet # 2004/05/11 14:44:42-07:00 eike-hotplug@sf-tec.de # [PATCH] CompactPCI: remove two useless functions # # This 2 get_* functions do the same the hotplug core does if this functions # would not be there. Kill Bil^H^H^Hem! # # Eike # # drivers/pci/hotplug/cpci_hotplug_core.c # 2004/05/05 11:59:58-07:00 eike-hotplug@sf-tec.de +0 -18 # CompactPCI: remove two useless functions # # ChangeSet # 2004/05/11 14:44:02-07:00 eike-hotplug@sf-tec.de # [PATCH] CompactPCI: remove slot_paranoia_check and get_slot # # slot_paranoia_check is only another kind of checking everything for NULL. # Removing this leads to function get_slot is reduced to a simple cast, so this # function can be killed also. # # Eike # # drivers/pci/hotplug/cpci_hotplug_core.c # 2004/05/05 11:52:41-07:00 eike-hotplug@sf-tec.de +5 -36 # CompactPCI: remove slot_paranoia_check and get_slot # # ChangeSet # 2004/05/11 14:43:25-07:00 eike-hotplug@sf-tec.de # [PATCH] CompactPCI: remove useless NULL checks # # If the "struct hotplug_slot *" parameter is ever NULL then something bogus is # going on, we should not hide this bug by catching it. Also the name used in # debug messages is fixed. # # Eike # # drivers/pci/hotplug/cpci_hotplug_core.c # 2004/05/05 11:38:07-07:00 eike-hotplug@sf-tec.de +0 -26 # CompactPCI: remove useless NULL checks # # ChangeSet # 2004/05/11 14:42:00-07:00 eike-hotplug@sf-tec.de # [PATCH] CompactPCI: use goto for error handling # # Convert cpci_hotplug_core.c::cpci_hp_register_bus to use goto for error # handling. # # Eike # # drivers/pci/hotplug/cpci_hotplug_core.c # 2004/05/05 10:48:50-07:00 eike-hotplug@sf-tec.de +21 -25 # CompactPCI: use goto for error handling # # ChangeSet # 2004/05/11 14:40:08-07:00 eike-hotplug@sf-tec.de # [PATCH] CompactPCI: remove two useless checks # # This two checks are useless: cpci_hp_register_bus is only called from two # places, one has constant arguments, the other one passes the module # parameters which are checked for this condition on module load. And the bus # argument of cpci_hp_unregister_bus can never be NULL, all functions calling # this function use fields of the bus struct before so they will oops if it # would ever be NULL. # # Eike # # drivers/pci/hotplug/cpci_hotplug_core.c # 2004/05/05 10:58:37-07:00 eike-hotplug@sf-tec.de +0 -7 # CompactPCI: remove two useless checks # # ChangeSet # 2004/05/11 14:39:27-07:00 eike-hotplug@sf-tec.de # [PATCH] CompactPCI: remove set_attention_status # # This one removes useless code and fixes the issue that the return code of # set_attention_status for cpcihp is always 0 even if cpci_set_attention_status # returns an error. # # Eike # # drivers/pci/hotplug/cpci_hotplug_core.c # 2004/05/05 10:23:16-07:00 eike-hotplug@sf-tec.de +1 -16 # CompactPCI: remove set_attention_status # # ChangeSet # 2004/05/11 14:31:48-07:00 hannal@us.ibm.com # [PATCH] USB: Add class support to drivers/usb/misc/tiglusb.c # # drivers/usb/misc/tiglusb.c # 2004/05/05 15:40:27-07:00 hannal@us.ibm.com +49 -15 # USB: Add class support to drivers/usb/misc/tiglusb.c # # ChangeSet # 2004/05/11 14:31:21-07:00 hannal@us.ibm.com # [PATCH] Add class support to drivers/net/wan/cosa.c # # This patch adds sysfs class support to the Cosa driver. I have verified it # compiles but do not have the hardware to test it. If someone could that # would be helpful. # # drivers/net/wan/cosa.c # 2004/05/05 16:01:56-07:00 hannal@us.ibm.com +34 -7 # Add class support to drivers/net/wan/cosa.c # # ChangeSet # 2004/05/11 13:46:12-07:00 khali@linux-fr.org # [PATCH] I2C: Rename hardware monitoring I2C class # # Quoting myself: # # > Mmm, I once proposed that I2C_ADAP_CLASS_SMBUS would be better renamed # > I2C_ADAP_CLASS_SENSORS (so I2C_CLASS_SENSORS now). What about that? I # > think it would be great to embed that change into your patch, so that # > the name changes only once. # > # > BTW, if HWMON is prefered to SENSORS, this is fine with me too, I # > have no strong preference. # # Below is a patch that does that. I finally went for HWMON. Yes, it's # big, but it's actually nothing more than # s/I2C_CLASS_SMBUS/I2C_CLASS_HWMON/ (thanks perl -wip :)). # # include/linux/i2c.h # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/chips/w83l785ts.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/chips/w83781d.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/chips/via686a.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/chips/lm90.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/chips/lm83.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/chips/lm80.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/chips/lm78.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/chips/lm75.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/chips/it87.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/chips/gl518sm.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/chips/fscher.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/chips/asb100.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/chips/adm1021.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-viapro.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-via.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-sis96x.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-sis630.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-sis5595.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-piix4.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-parport-light.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-parport.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-nforce2.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-isa.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-i801.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-amd8111.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-amd756.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-ali15x3.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-ali1563.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # drivers/i2c/busses/i2c-ali1535.c # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +1 -1 # I2C: Rename hardware monitoring I2C class # # Documentation/i2c/porting-clients # 2004/05/09 10:05:17-07:00 khali@linux-fr.org +2 -2 # I2C: Rename hardware monitoring I2C class # # ChangeSet # 2004/05/11 13:45:12-07:00 R.S.Bultje@students.uu.nl # [PATCH] I2C: new i2c video decoder calls: saa7111 driver # # Attached patch implements the i2c calls in the saa7111 driver. # # The driver is still compatible with old behaviour, so the zr36067 driver # (the original user of the saa7111 module) doesn't need any changes. I'll # probably gradually make everything use DECODER_INIT instead of 0 (that was # a nice hack back then) somewhere later. # # Can I just remove '0' later on? Or are there official ABI rules for # stable kernel versions? # # drivers/media/video/saa7111.c # 2004/05/04 10:38:15-07:00 R.S.Bultje@students.uu.nl +54 -5 # I2C: new i2c video decoder calls: saa7111 driver # # ChangeSet # 2004/05/11 13:44:19-07:00 R.S.Bultje@students.uu.nl # [PATCH] I2C: new i2c video decoder calls # # Attached patch adds three new calls to the i2c video decoder API. The changes # were requested by Michael (CC'ed) and approved by Gerd Knorr (v4l maintainer, # CC'ed). # # Short explanation: # # * INIT is a general initialization call with optional initialization data. # Reason for this is that several i2c decoders (or general: clients) are being # used by several adapters (main drivers), and in some cases, one adapter # simply needs different settings than the other, either because the adapter # is completely different or because the card was reverse engineered in a way # that doesn't allow multiple adapters to run using the same original # initialization data. Michael faces such a problem right now. Both he and # me lack time to properly sit together and work out the exact details or a # proper way to merge. # # * VBI_BYPASS and GPIO set specific pins on the decoder. This will be used # in the saa7111 driver. My driver (zr36067, original user of the saa7111 # driver) doesn't use any of this, but Michael's does. # # include/linux/video_decoder.h # 2004/05/04 10:36:13-07:00 R.S.Bultje@students.uu.nl +7 -0 # I2C: new i2c video decoder calls # # ChangeSet # 2004/05/11 13:43:55-07:00 khali@linux-fr.org # [PATCH] I2C: kill duplicate includes in i2c bus drivers # # Following a suggestion of Arthur Othieno, here is a trivial patch that # kills duplicate inclusions of config.h in four i2c bus drivers. # # At first I was thinking of also removing inclusions of config.h wherever # it doesn't seem to be necessary but Eugene doesn't seem to think it's a # good idea. So I may give it a try later (in 2.7), but for now this # simple patch will be enough. # # drivers/i2c/busses/scx200_i2c.c # 2004/05/09 12:45:34-07:00 khali@linux-fr.org +0 -1 # I2C: kill duplicate includes in i2c bus drivers # # drivers/i2c/busses/scx200_acb.c # 2004/05/09 12:45:30-07:00 khali@linux-fr.org +0 -1 # I2C: kill duplicate includes in i2c bus drivers # # drivers/i2c/busses/i2c-piix4.c # 2004/05/09 12:45:43-07:00 khali@linux-fr.org +0 -1 # I2C: kill duplicate includes in i2c bus drivers # # drivers/i2c/busses/i2c-keywest.c # 2004/05/09 12:45:24-07:00 khali@linux-fr.org +0 -1 # I2C: kill duplicate includes in i2c bus drivers # # ChangeSet # 2004/05/11 13:32:24-07:00 greg@kroah.com # Module attributes: fix build error if CONFIG_MODULE_UNLOAD=n # # Thanks to Andrew Morton for pointing this out to me. # # kernel/module.c # 2004/05/11 13:32:10-07:00 greg@kroah.com +16 -16 # Module attributes: fix build error if CONFIG_MODULE_UNLOAD=n # # Thanks to Andrew Morton for pointing this out to me. # # ChangeSet # 2004/05/11 13:18:00-07:00 davem@nuts.davemloft.net # [SPARC64]: Export pci_domain_nr to modules. # # arch/sparc64/kernel/pci.c # 2004/05/11 13:17:42-07:00 davem@nuts.davemloft.net +2 -0 # [SPARC64]: Export pci_domain_nr to modules. # # ChangeSet # 2004/05/11 12:19:43-07:00 davem@nuts.davemloft.net # [SCHED]: Fix double slash in include directive. # # kernel/sched.c # 2004/05/11 12:19:26-07:00 davem@nuts.davemloft.net +1 -1 # [SCHED]: Fix double slash in include directive. # # ChangeSet # 2004/05/11 11:34:29-07:00 greg@kroah.com # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/storage/shuttle_usbat.h # 2004/05/11 04:32:50-07:00 greg@kroah.com +0 -20 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/storage/shuttle_usbat.c # 2004/05/11 04:32:50-07:00 greg@kroah.com +70 -72 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/storage/jumpshot.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +1 -1 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/storage/isd200.c # 2004/05/11 04:32:50-07:00 greg@kroah.com +13 -13 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/storage/datafab.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +1 -1 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/serial/kobil_sct.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +1 -1 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/serial/ir-usb.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +1 -1 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/serial/ipaq.c # 2004/05/11 04:32:50-07:00 greg@kroah.com +1 -1 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/serial/io_ti.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +5 -5 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/net/usbnet.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +5 -5 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/net/rtl8150.c # 2004/05/11 04:32:50-07:00 greg@kroah.com +4 -4 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/net/pegasus.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +2 -2 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/net/kaweth.c # 2004/05/11 04:32:50-07:00 greg@kroah.com +10 -8 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/misc/emi62_fw_s.h # 2004/05/11 04:32:50-07:00 greg@kroah.com +4 -3 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/misc/emi62_fw_m.h # 2004/05/11 04:32:49-07:00 greg@kroah.com +4 -3 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/misc/emi62.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +1 -1 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/misc/emi26_fw.h # 2004/05/11 04:32:49-07:00 greg@kroah.com +3 -3 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/misc/emi26.c # 2004/05/11 04:32:50-07:00 greg@kroah.com +1 -1 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/misc/cytherm.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +3 -6 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/media/w9968cf.h # 2004/05/11 04:32:49-07:00 greg@kroah.com +2 -2 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/media/ultracam.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +1 -1 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/input/wacom.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +2 -2 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/input/kbtab.c # 2004/05/11 04:32:50-07:00 greg@kroah.com +1 -1 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/input/hid-core.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +5 -3 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/input/aiptek.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +2 -2 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # drivers/usb/class/bluetty.c # 2004/05/11 04:32:49-07:00 greg@kroah.com +2 -2 # USB: make functions static in usb drivers that should be # # Thanks to Tridge's findstatic.pl script for helping find these. # # ChangeSet # 2004/05/11 13:31:42-04:00 gtw@cs.bu.edu # [sound i810] silently ignore invalid PCM_ENABLE_xxx bits from userland # # We must guarantee that struct file's ->f_mode agrees with # PCM_ENABLE_xxx bits from userland OSS apps. Other drivers silently # ignore invalid bits, so we follow their lead. # # sound/oss/i810_audio.c # 2004/05/11 13:31:37-04:00 gtw@cs.bu.edu +9 -2 # [sound i810] silently ignore invalid PCM_ENABLE_xxx bits from userland # # We must guarantee that struct file's ->f_mode agrees with # PCM_ENABLE_xxx bits from userland OSS apps. Other drivers silently # ignore invalid bits, so we follow their lead. # # ChangeSet # 2004/05/11 17:38:24+01:00 aia21@cantab.net # NTFS: 2.1.10 - Force read-only (re)mounting of volumes with unsupported flags. # # fs/ntfs/super.c # 2004/05/11 17:38:17+01:00 aia21@cantab.net +34 -1 # Force read-only (re)mounting if any of the following bits are set in # the volume information flags: # VOLUME_IS_DIRTY, VOLUME_RESIZE_LOG_FILE, # VOLUME_UPGRADE_ON_MOUNT, VOLUME_DELETE_USN_UNDERWAY, # VOLUME_REPAIR_OBJECT_ID, VOLUME_MODIFIED_BY_CHKDSK # To make this easier we define VOLUME_MUST_MOUNT_RO_MASK with all the # above bits set so the test is made easy. # # fs/ntfs/Makefile # 2004/05/11 17:38:16+01:00 aia21@cantab.net +1 -1 # Update for 2.1.10 release. # # ChangeSet # 2004/05/11 16:51:14+01:00 nico@org.rmk.(none) # [ARM PATCH] 1843/2: supress PCMCIA build warnings # # Patch from Nicolas Pitre # # This is an alternative to patch #1843/1 keeping the ugliness # (and possible future breakage) to the affected driver only. # This one should be applied after patch #1830/2. # # drivers/pcmcia/soc_common.h # 2004/05/04 14:23:48+01:00 nico@org.rmk.(none) +1 -1 # [PATCH] 1843/2: supress PCMCIA build warnings # # drivers/pcmcia/pxa2xx_lubbock.c # 2004/05/04 14:40:32+01:00 nico@org.rmk.(none) +6 -3 # [PATCH] 1843/2: supress PCMCIA build warnings # # ChangeSet # 2004/05/11 16:46:51+01:00 nico@org.rmk.(none) # [ARM PATCH] 1831/1: remove outdated SA11xx PCMCIA documentation # # Patch from Nicolas Pitre # # This documentation isn't reflecting the code anymore and therefore # is misleading. Better remove it and let people see the code where # multiple examples can now be followed. # # BitKeeper/deleted/.del-PCMCIA~699d5c97500f14b6 # 2004/05/11 16:44:25+01:00 nico@org.rmk.(none) +0 -0 # Delete: Documentation/arm/SA1100/PCMCIA # # ChangeSet # 2004/05/11 16:42:43+01:00 nico@org.rmk.(none) # [ARM PATCH] 1830/2: PCMCIA support for Lubbock (PXA2xx based) # # Patch from Nicolas Pitre # # [Patch #1830/1 wasn't generated correctly. Here's the fixed one.] # # This adds PCMCIA support for Lubbock and relies on patch #1829/1. This # is probably the only reference board using both the PXA2xx and the SA1111 # for PCMCIA support. Other board won't need to link sa1111_generic.o. # # drivers/pcmcia/sa1111_generic.h # 2004/04/23 00:48:42+01:00 nico@org.rmk.(none) +1 -0 # [PATCH] 1830/2: PCMCIA support for Lubbock (PXA2xx based) # # drivers/pcmcia/sa1111_generic.c # 2004/04/23 01:35:49+01:00 nico@org.rmk.(none) +3 -0 # [PATCH] 1830/2: PCMCIA support for Lubbock (PXA2xx based) # # drivers/pcmcia/Makefile # 2004/04/22 23:34:55+01:00 nico@org.rmk.(none) +3 -0 # [PATCH] 1830/2: PCMCIA support for Lubbock (PXA2xx based) # # drivers/pcmcia/pxa2xx_lubbock.c # 2004/04/23 01:51:18+01:00 nico@org.rmk.(none) +218 -0 # [PATCH] 1830/2: PCMCIA support for Lubbock (PXA2xx based) # # drivers/pcmcia/pxa2xx_lubbock.c # 2004/04/23 01:51:18+01:00 nico@org.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-pcmcia/drivers/pcmcia/pxa2xx_lubbock.c # # ChangeSet # 2004/05/11 16:38:35+01:00 nico@org.rmk.(none) # [ARM PATCH] 1829/1: base support for PCMCIA on the Intel PXA2xx chip # # Patch from Nicolas Pitre # # This provides base PCMCIA support for PXA2xx and relies on patch #1828/1. # Board specific support must be added separately. # # This is based on initial work from Stefan Eletzhofer and Ian Molton. # # drivers/pcmcia/pxa2xx_base.h # 2004/04/23 01:47:26+01:00 nico@org.rmk.(none) +3 -0 # [PATCH] 1829/1: base support for PCMCIA on the Intel PXA2xx chip # # include/asm-arm/arch-pxa/pxa-regs.h # 2004/04/20 17:52:02+01:00 nico@org.rmk.(none) +13 -0 # [PATCH] 1829/1: base support for PCMCIA on the Intel PXA2xx chip # # drivers/pcmcia/pxa2xx_base.h # 2004/04/23 01:47:26+01:00 nico@org.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-pcmcia/drivers/pcmcia/pxa2xx_base.h # # drivers/pcmcia/Makefile # 2004/04/22 23:34:55+01:00 nico@org.rmk.(none) +2 -0 # [PATCH] 1829/1: base support for PCMCIA on the Intel PXA2xx chip # # drivers/pcmcia/Kconfig # 2004/04/21 21:07:13+01:00 nico@org.rmk.(none) +7 -0 # [PATCH] 1829/1: base support for PCMCIA on the Intel PXA2xx chip # # drivers/pcmcia/pxa2xx_base.c # 2004/04/23 01:50:10+01:00 nico@org.rmk.(none) +335 -0 # [PATCH] 1829/1: base support for PCMCIA on the Intel PXA2xx chip # # drivers/pcmcia/pxa2xx_base.c # 2004/04/23 01:50:10+01:00 nico@org.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-pcmcia/drivers/pcmcia/pxa2xx_base.c # # ChangeSet # 2004/05/11 16:32:38+01:00 nico@org.rmk.(none) # [ARM PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # Patch from Nicolas Pitre # # [Updated after comments on patch #1828/1] # # This patch moves things around and rename a few files/functions/structures # to be shared with PXA2xx PCMCIA support (coming in a separate patch) and # maybe others SOCs. No functional change were made so SA11xx users # shouldn't see any difference. # # drivers/pcmcia/sa1111_generic.h # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +8 -7 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1111_generic.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +11 -11 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_yopy.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +10 -10 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_xp860.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +2 -2 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_trizeps.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +10 -10 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_system3.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +3 -3 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_stork.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +10 -10 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_simpad.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +10 -10 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_shannon.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +10 -10 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_pfs168.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +2 -2 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_pangolin.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +10 -10 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_neponset.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +2 -2 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_jornada720.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +2 -2 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_h3600.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +10 -10 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_graphicsmaster.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +2 -2 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_graphicsclient.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +7 -7 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_generic.h # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +2 -1 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/soc_common.h # 2004/05/04 17:06:54+01:00 nico@org.rmk.(none) +95 -37 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/soc_common.c # 2004/05/04 16:47:32+01:00 nico@org.rmk.(none) +135 -332 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_generic.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +2 -2 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_freebird.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +10 -10 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_flexanet.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +10 -10 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_cerf.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +10 -10 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_badge4.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +1 -1 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_assabet.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +10 -10 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa1100_adsbitsy.c # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +2 -2 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/Makefile # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +2 -0 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa11xx_base.h # 2004/05/04 16:24:57+01:00 nico@org.rmk.(none) +14 -55 # [PATCH] 1828/2: rework SA11xx PCMCIA code structure for better sharing of generic # code # # drivers/pcmcia/sa11xx_base.c # 2004/05/11 16:26:50+01:00 nico@org.rmk.(none) +257 -0 # # drivers/pcmcia/sa11xx_base.c # 2004/05/11 16:26:50+01:00 nico@org.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-pcmcia/drivers/pcmcia/sa11xx_base.c # # ChangeSet # 2004/05/11 07:54:30-07:00 geert@linux-m68k.org # [PATCH] M68k superfluous whitespace # # M68k: Remove superfluous whitespace that hurts my eyes with `let # c_space_errors=1' in vim. This includes correcting trailing whitespace and # spaces in front of tabs. `diff -urNbB' shows no difference before/after. # # include/asm-m68k/virtconvert.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/user.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # include/asm-m68k/unaligned.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/tlbflush.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +5 -5 # M68k superfluous whitespace # # include/asm-m68k/thread_info.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/termios.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/sun3xflop.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +14 -14 # M68k superfluous whitespace # # include/asm-m68k/sun3x.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/sun3mmu.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # include/asm-m68k/sun3_pgalloc.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +5 -5 # M68k superfluous whitespace # # include/asm-m68k/string.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # include/asm-m68k/sockios.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/signal.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/sigcontext.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/shmbuf.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/setup.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/serial.h # 2004/04/04 03:11:22-07:00 geert@linux-m68k.org +3 -3 # M68k superfluous whitespace # # include/asm-m68k/sembuf.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/rtc.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/raw_io.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/q40_master.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # include/asm-m68k/page_offset.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/page.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +3 -3 # M68k superfluous whitespace # # include/asm-m68k/oplib.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # include/asm-m68k/openprom.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +44 -44 # M68k superfluous whitespace # # include/asm-m68k/mvme16xhw.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/mvme147hw.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/msgbuf.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/motorola_pgtable.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/mmu_context.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # include/asm-m68k/md.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # include/asm-m68k/macints.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # include/asm-m68k/macintosh.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +8 -8 # M68k superfluous whitespace # # include/asm-m68k/machw.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/mac_via.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +12 -12 # M68k superfluous whitespace # # include/asm-m68k/mac_psc.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +6 -6 # M68k superfluous whitespace # # include/asm-m68k/mac_oss.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/mac_asc.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # include/asm-m68k/irq.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/ipc.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/io.h # 2004/04/04 03:12:11-07:00 geert@linux-m68k.org +7 -7 # M68k superfluous whitespace # # include/asm-m68k/intersil.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/ide.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/hwtest.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # include/asm-m68k/floppy.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +7 -7 # M68k superfluous whitespace # # include/asm-m68k/entry.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/dvma.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +6 -6 # M68k superfluous whitespace # # include/asm-m68k/delay.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/checksum.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/cacheflush.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +3 -3 # M68k superfluous whitespace # # include/asm-m68k/bootinfo.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +5 -5 # M68k superfluous whitespace # # include/asm-m68k/bitops.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/atariints.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +6 -6 # M68k superfluous whitespace # # include/asm-m68k/atarihw.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +41 -41 # M68k superfluous whitespace # # include/asm-m68k/atari_acsi.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/atari_SCCserial.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/atafdreg.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # include/asm-m68k/apollohw.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # include/asm-m68k/apollodma.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +5 -5 # M68k superfluous whitespace # # include/asm-m68k/amigahw.h # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +8 -8 # M68k superfluous whitespace # # arch/m68k/sun3x/time.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +5 -5 # M68k superfluous whitespace # # arch/m68k/sun3x/prom.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +3 -3 # M68k superfluous whitespace # # arch/m68k/sun3x/dvma.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +22 -22 # M68k superfluous whitespace # # arch/m68k/sun3x/config.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # arch/m68k/sun3/sun3ints.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +15 -15 # M68k superfluous whitespace # # arch/m68k/sun3/sun3dvma.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +33 -33 # M68k superfluous whitespace # # arch/m68k/sun3/prom/init.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/sun3/mmu_emu.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +20 -20 # M68k superfluous whitespace # # arch/m68k/sun3/leds.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # arch/m68k/sun3/intersil.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/sun3/idprom.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # arch/m68k/sun3/dvma.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # arch/m68k/sun3/config.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +15 -15 # M68k superfluous whitespace # # arch/m68k/q40/q40ints.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +20 -20 # M68k superfluous whitespace # # arch/m68k/q40/config.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +9 -9 # M68k superfluous whitespace # # arch/m68k/q40/README # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +24 -24 # M68k superfluous whitespace # # arch/m68k/q40/Makefile # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/mvme16x/rtc.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # arch/m68k/mvme16x/mvme16x_ksyms.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/mvme147/config.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +7 -7 # M68k superfluous whitespace # # arch/m68k/mm/sun3mmu.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # arch/m68k/mm/sun3kmap.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +15 -15 # M68k superfluous whitespace # # arch/m68k/mm/motorola.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +3 -3 # M68k superfluous whitespace # # arch/m68k/mm/memory.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +3 -3 # M68k superfluous whitespace # # arch/m68k/mm/init.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/mm/hwtest.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +5 -5 # M68k superfluous whitespace # # arch/m68k/mm/fault.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # arch/m68k/math-emu/fp_util.S # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/math-emu/fp_scan.S # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # arch/m68k/math-emu/fp_log.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # arch/m68k/math-emu/fp_cond.S # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # arch/m68k/math-emu/fp_arith.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/mac/via.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +9 -9 # M68k superfluous whitespace # # arch/m68k/mac/psc.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +3 -3 # M68k superfluous whitespace # # arch/m68k/mac/oss.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +5 -5 # M68k superfluous whitespace # # arch/m68k/mac/misc.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +6 -6 # M68k superfluous whitespace # # arch/m68k/mac/macints.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +7 -7 # M68k superfluous whitespace # # arch/m68k/mac/macboing.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +38 -38 # M68k superfluous whitespace # # arch/m68k/mac/iop.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +9 -9 # M68k superfluous whitespace # # arch/m68k/mac/debug.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +12 -12 # M68k superfluous whitespace # # arch/m68k/mac/config.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +32 -32 # M68k superfluous whitespace # # arch/m68k/mac/bootparse.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +89 -89 # M68k superfluous whitespace # # arch/m68k/mac/baboon.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +3 -3 # M68k superfluous whitespace # # arch/m68k/lib/muldi3.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # arch/m68k/lib/lshrdi3.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/lib/ashrdi3.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/lib/ashldi3.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/kernel/vmlinux-sun3.lds # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +14 -14 # M68k superfluous whitespace # # arch/m68k/kernel/vmlinux-std.lds # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +7 -7 # M68k superfluous whitespace # # arch/m68k/kernel/traps.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +13 -13 # M68k superfluous whitespace # # arch/m68k/kernel/sys_m68k.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +5 -5 # M68k superfluous whitespace # # arch/m68k/kernel/sun3-head.S # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +14 -14 # M68k superfluous whitespace # # arch/m68k/kernel/signal.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +5 -5 # M68k superfluous whitespace # # arch/m68k/kernel/setup.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +15 -15 # M68k superfluous whitespace # # arch/m68k/kernel/ptrace.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +7 -7 # M68k superfluous whitespace # # arch/m68k/kernel/head.S # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +3 -3 # M68k superfluous whitespace # # arch/m68k/kernel/entry.S # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +15 -15 # M68k superfluous whitespace # # arch/m68k/kernel/bios32.c # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/ifpsp060/src/pfpsp.S # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +652 -652 # M68k superfluous whitespace # # arch/m68k/ifpsp060/src/itest.S # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # arch/m68k/ifpsp060/src/isp.S # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +270 -270 # M68k superfluous whitespace # # arch/m68k/ifpsp060/src/ilsp.S # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +53 -53 # M68k superfluous whitespace # # arch/m68k/ifpsp060/src/ftest.S # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +8 -8 # M68k superfluous whitespace # # arch/m68k/ifpsp060/src/fpsp.S # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +913 -913 # M68k superfluous whitespace # # arch/m68k/ifpsp060/src/fplsp.S # 2004/04/04 03:11:21-07:00 geert@linux-m68k.org +179 -179 # M68k superfluous whitespace # # arch/m68k/ifpsp060/os.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +39 -39 # M68k superfluous whitespace # # arch/m68k/ifpsp060/isp.doc # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +9 -9 # M68k superfluous whitespace # # arch/m68k/ifpsp060/iskeleton.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +9 -9 # M68k superfluous whitespace # # arch/m68k/ifpsp060/ilsp.doc # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +8 -8 # M68k superfluous whitespace # # arch/m68k/ifpsp060/fskeleton.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +13 -13 # M68k superfluous whitespace # # arch/m68k/ifpsp060/fpsp.doc # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +10 -10 # M68k superfluous whitespace # # arch/m68k/ifpsp060/fplsp.doc # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +3 -3 # M68k superfluous whitespace # # arch/m68k/ifpsp060/TEST.DOC # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +7 -7 # M68k superfluous whitespace # # arch/m68k/ifpsp060/README # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # arch/m68k/ifpsp060/MISC # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +3 -3 # M68k superfluous whitespace # # arch/m68k/ifpsp060/CHANGES # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +13 -13 # M68k superfluous whitespace # # arch/m68k/hp300/ints.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +8 -8 # M68k superfluous whitespace # # arch/m68k/hp300/hp300map.map # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +45 -45 # M68k superfluous whitespace # # arch/m68k/fpsp040/x_unsupp.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +9 -9 # M68k superfluous whitespace # # arch/m68k/fpsp040/x_unimp.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # arch/m68k/fpsp040/x_unfl.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +17 -17 # M68k superfluous whitespace # # arch/m68k/fpsp040/x_store.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +22 -22 # M68k superfluous whitespace # # arch/m68k/fpsp040/x_snan.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +13 -13 # M68k superfluous whitespace # # arch/m68k/Makefile # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/Kconfig # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # arch/m68k/fpsp040/x_ovfl.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +8 -8 # M68k superfluous whitespace # # arch/m68k/fpsp040/x_operr.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +13 -13 # M68k superfluous whitespace # # arch/m68k/fpsp040/x_fline.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # arch/m68k/fpsp040/x_bsun.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # arch/m68k/fpsp040/util.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +35 -35 # M68k superfluous whitespace # # arch/m68k/fpsp040/tbldo.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +5 -5 # M68k superfluous whitespace # # arch/m68k/fpsp040/stwotox.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +14 -14 # M68k superfluous whitespace # # arch/m68k/fpsp040/sto_res.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # arch/m68k/fpsp040/stanh.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +5 -5 # M68k superfluous whitespace # # arch/m68k/fpsp040/stan.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +29 -29 # M68k superfluous whitespace # # arch/m68k/fpsp040/ssinh.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # arch/m68k/fpsp040/ssin.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +13 -13 # M68k superfluous whitespace # # arch/m68k/fpsp040/srem_mod.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +9 -9 # M68k superfluous whitespace # # arch/m68k/fpsp040/smovecr.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +6 -6 # M68k superfluous whitespace # # arch/m68k/fpsp040/slogn.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +19 -19 # M68k superfluous whitespace # # arch/m68k/fpsp040/slog2.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +17 -17 # M68k superfluous whitespace # # arch/m68k/fpsp040/skeleton.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +26 -26 # M68k superfluous whitespace # # arch/m68k/fpsp040/sint.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +15 -15 # M68k superfluous whitespace # # arch/m68k/fpsp040/sgetem.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +7 -7 # M68k superfluous whitespace # # arch/m68k/fpsp040/setox.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +14 -14 # M68k superfluous whitespace # # arch/m68k/fpsp040/scosh.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +3 -3 # M68k superfluous whitespace # # arch/m68k/fpsp040/scale.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +11 -11 # M68k superfluous whitespace # # arch/m68k/fpsp040/satanh.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +4 -4 # M68k superfluous whitespace # # arch/m68k/fpsp040/satan.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +11 -11 # M68k superfluous whitespace # # arch/m68k/fpsp040/sasin.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +5 -5 # M68k superfluous whitespace # # arch/m68k/fpsp040/sacos.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +8 -8 # M68k superfluous whitespace # # arch/m68k/fpsp040/round.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +53 -53 # M68k superfluous whitespace # # arch/m68k/fpsp040/res_func.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +77 -77 # M68k superfluous whitespace # # arch/m68k/fpsp040/kernel_ex.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +30 -30 # M68k superfluous whitespace # # arch/m68k/fpsp040/get_op.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +41 -41 # M68k superfluous whitespace # # arch/m68k/fpsp040/gen_except.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +39 -39 # M68k superfluous whitespace # # arch/m68k/fpsp040/fpsp.h # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +13 -13 # M68k superfluous whitespace # # arch/m68k/fpsp040/do_func.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +28 -28 # M68k superfluous whitespace # # arch/m68k/fpsp040/decbin.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +12 -12 # M68k superfluous whitespace # # arch/m68k/fpsp040/bugfix.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +34 -34 # M68k superfluous whitespace # # arch/m68k/fpsp040/binstr.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # arch/m68k/fpsp040/bindec.S # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +58 -58 # M68k superfluous whitespace # # arch/m68k/fpsp040/README # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # arch/m68k/defconfig # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/bvme6000/rtc.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # arch/m68k/atari/time.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +19 -19 # M68k superfluous whitespace # # arch/m68k/atari/stram.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +19 -19 # M68k superfluous whitespace # # arch/m68k/atari/stdma.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/atari/debug.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +12 -12 # M68k superfluous whitespace # # arch/m68k/atari/config.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +14 -14 # M68k superfluous whitespace # # arch/m68k/atari/atasound.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/atari/ataints.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +12 -12 # M68k superfluous whitespace # # arch/m68k/apollo/dn_ints.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # arch/m68k/apollo/dn_debug.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +2 -2 # M68k superfluous whitespace # # arch/m68k/apollo/dma.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/apollo/config.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +32 -32 # M68k superfluous whitespace # # arch/m68k/amiga/config.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +7 -7 # M68k superfluous whitespace # # arch/m68k/amiga/chipram.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # arch/m68k/amiga/amisound.c # 2004/04/04 03:11:20-07:00 geert@linux-m68k.org +1 -1 # M68k superfluous whitespace # # fs/ntfs/mft.h # 2004/05/11 15:19:37+01:00 aia21@cantab.net +0 -2 # Remove obsolete declaration of format_mft_record2(). # # fs/ntfs/layout.h # 2004/05/11 15:19:37+01:00 aia21@cantab.net +25 -22 # - Add VOLUME_MUST_MOUNT_RO_MASK bit mask to VOLUME_FLAGS enum. # - Also, missed a few trailing tabs in the whitespace cleanup patch. # # fs/ntfs/ChangeLog # 2004/05/11 15:19:37+01:00 aia21@cantab.net +15 -1 # Update for 2.1.10 release. # # Documentation/filesystems/ntfs.txt # 2004/05/11 15:19:37+01:00 aia21@cantab.net +3 -0 # Update for 2.1.10 release. # # ChangeSet # 2004/05/11 09:50:41+01:00 aia21@cantab.net # Merge cantab.net:/home/src/bklinux-2.6 # into cantab.net:/home/src/ntfs-2.6 # # fs/ntfs/ntfs.h # 2004/05/11 09:50:36+01:00 aia21@cantab.net +0 -0 # Auto merged # # ChangeSet # 2004/05/11 04:05:08-04:00 herbert@gondor.apana.org.au # [sound/oss i810] fix deadlock in drain_dac # # This patch fixes a typo in a previous change that causes the driver # to deadlock under SMP. # # sound/oss/i810_audio.c # 2004/05/11 04:05:01-04:00 herbert@gondor.apana.org.au +1 -1 # [sound/oss i810] fix deadlock in drain_dac # # This patch fixes a typo in a previous change that causes the driver # to deadlock under SMP. # # ChangeSet # 2004/05/11 04:04:09-04:00 herbert@gondor.apana.org.au # [sound/oss i810] fix reads/writes % 4 != 0 # # This patch removes another bogus chunk of code that breaks when # the application does a partial write. # # In particular, a read/write of x bytes where x % 4 != 0 will loop forever. # # sound/oss/i810_audio.c # 2004/05/11 04:04:02-04:00 herbert@gondor.apana.org.au +0 -18 # [sound/oss i810] fix reads/writes % 4 != 0 # # This patch removes another bogus chunk of code that breaks when # the application does a partial write. # # In particular, a read/write of x bytes where x % 4 != 0 will loop forever. # # ChangeSet # 2004/05/11 04:02:55-04:00 herbert@gondor.apana.org.au # [sound/oss i810] fix drain_dac loop when signals_allowed==0 # # This patch fixes another bug in the drain_dac wait loop when it is # called with signals_allowed == 0. # # sound/oss/i810_audio.c # 2004/05/11 04:02:49-04:00 herbert@gondor.apana.org.au +2 -1 # [sound/oss i810] fix drain_dac loop when signals_allowed==0 # # This patch fixes another bug in the drain_dac wait loop when it is # called with signals_allowed == 0. # # ChangeSet # 2004/05/11 04:01:34-04:00 herbert@gondor.apana.org.au # [sound/oss i810] remove divides on playback # # This patch removes a couple of divides on the playback path. # # sound/oss/i810_audio.c # 2004/05/11 04:01:28-04:00 herbert@gondor.apana.org.au +4 -6 # [sound/oss i810] remove divides on playback # # This patch removes a couple of divides on the playback path. # # ChangeSet # 2004/05/11 03:59:23-04:00 herbert@gondor.apana.org.au # [sound/oss i810] fix OSS fragments # # This patch makes userfragsize do what it's meant to do: do not start # DAC/ADC until a full fragment is available. # # sound/oss/i810_audio.c # 2004/05/11 03:59:17-04:00 herbert@gondor.apana.org.au +13 -4 # [sound/oss i810] fix OSS fragments # # This patch makes userfragsize do what it's meant to do: do not start # DAC/ADC until a full fragment is available. # # ChangeSet # 2004/05/11 03:58:35-04:00 herbert@gondor.apana.org.au # [sound/oss i810] fix playback SETTRIGGER # # This patch fixes SETTRIGGER with playback so that the LVI is always # set and the DAC is always started. # # sound/oss/i810_audio.c # 2004/05/11 03:58:29-04:00 herbert@gondor.apana.org.au +3 -3 # [sound/oss i810] fix playback SETTRIGGER # # This patch fixes SETTRIGGER with playback so that the LVI is always # set and the DAC is always started. # # ChangeSet # 2004/05/11 03:57:31-04:00 herbert@gondor.apana.org.au # [sound/oss i810] fix partial DMA transfers # # This patch fixes a longstanding bug in this driver where partial fragments # are fed to the hardware. Worse yet, those fragments are then extended # while the hardware is doing DMA transfers causing all sorts of problems. # # sound/oss/i810_audio.c # 2004/05/11 03:57:25-04:00 herbert@gondor.apana.org.au +77 -48 # [sound/oss i810] fix partial DMA transfers # # This patch fixes a longstanding bug in this driver where partial fragments # are fed to the hardware. Worse yet, those fragments are then extended # while the hardware is doing DMA transfers causing all sorts of problems. # # ChangeSet # 2004/05/11 03:56:34-04:00 herbert@gondor.apana.org.au # [sound/oss i810] clean up with macros # # This patch adds a number macros to clean up the code. # # sound/oss/i810_audio.c # 2004/05/11 03:56:29-04:00 herbert@gondor.apana.org.au +18 -10 # [sound/oss i810] clean up with macros # # This patch adds a number macros to clean up the code. # # ChangeSet # 2004/05/11 03:52:23-04:00 herbert@gondor.apana.org.au # [sound/oss] remove bogus CIV_TO_LVI # # This patch removes a pair of bogus LVI assignments. The explanation in # the comment is wrong because the value of PCIB tells the hardware that # the DMA buffer can be processed even if LVI == CIV. # # Setting LVI to CIV + 1 causes overruns when with short writes # (something that vmware is very fond of). # # sound/oss/i810_audio.c # 2004/05/11 03:52:17-04:00 herbert@gondor.apana.org.au +0 -10 # [sound/oss] remove bogus CIV_TO_LVI # # This patch removes a pair of bogus LVI assignments. The explanation in # the comment is wrong because the value of PCIB tells the hardware that # the DMA buffer can be processed even if LVI == CIV. # # Setting LVI to CIV + 1 causes overruns when with short writes # (something that vmware is very fond of). # # ChangeSet # 2004/05/11 03:50:39-04:00 herbert@gondor.apana.org.au # [sound/oss i810] fix race # # This patch fixes the value of swptr in case of an underrun/overrun. # # Overruns/underruns probably won't occur at all when the driver is # fixed properly, but this doesn't hurt. # # sound/oss/i810_audio.c # 2004/05/11 03:50:33-04:00 herbert@gondor.apana.org.au +2 -2 # [sound/oss i810] fix race # # This patch fixes the value of swptr in case of an underrun/overrun. # # Overruns/underruns probably won't occur at all when the driver is # fixed properly, but this doesn't hurt. # # ChangeSet # 2004/05/11 03:48:33-04:00 herbert@gondor.apana.org.au # [sound/oss i810] fix wait queue race in drain_dac # # This particular one fixes a textbook race condition in drain_dac # that causes it to timeout when it shouldn't. # # sound/oss/i810_audio.c # 2004/05/11 03:45:43-04:00 herbert@gondor.apana.org.au +11 -10 # [sound/oss i810] fix wait queue race in drain_dac # # This particular one fixes a textbook race condition in drain_dac # that causes it to timeout when it shouldn't. # # ChangeSet # 2004/05/11 03:05:10-04:00 mingo@elte.hu # [netdrvr dmfe] netpoll support # # drivers/net/tulip/dmfe.c # 2004/05/10 20:00:00-04:00 mingo@elte.hu +23 -0 # netpoll support for dmfe.c, 2.6.6-rc3 # # ChangeSet # 2004/05/11 03:05:01-04:00 hch@lst.de # [netdrvr gt961000eth] remove useless MOD_{INC,DEC}_USE_COUNT # # *grr* - this one slipped in after my last round of audits it seems. # # drivers/net/gt96100eth.c # 2004/05/03 09:22:22-04:00 hch@lst.de +0 -6 # remove useless MOD_{INC,DEC}_USE_COUNT # # ChangeSet # 2004/05/11 03:04:53-04:00 akpm@osdl.org # [PATCH] 8139too not running s3 suspend/resume pci fix # # From: "Adrian Yee" # # Having an 8139 based device in my notebook, I often switch between it and # wireless. The problem is that the 8139too driver does not save/restore the # pci configuration of the card if the device isn't running. This simple # patch moves the save/restore code so that the code runs regardless of # whether or not the device is running. # # I looked at other drivers and they all seem to do the same thing. Is there # a reason why this isn't done like in the patch? # # drivers/net/8139too.c # 2004/04/26 13:11:44-04:00 akpm@osdl.org +3 -2 # 8139too not running s3 suspend/resume pci fix # # ChangeSet # 2004/05/11 03:04:44-04:00 akpm@osdl.org # [PATCH] lance.c: fix for card with signature 0x52 0x49 # # From: Vesselin Kostadiov # # Problem: The lance.c driver did not work with my Racal Interlan EtherBlaster # card. # # More info: I found that my card has a signature 0x52 0x49 that was not # recognized by the driver. # # Explanation: Following your suggestion I created a static table with possible # signatures, not too different from the table in ni65.c. The updated code # compares the first byte of the cards signature with the first byte of the # signatures from the table. It this succeeds then it reads the second byte and # compares the whole signature with the values from the table. This way the # minimal I/O reads approach is maintained. # # Side effect: The previous version would missdetect cards with signatures 0x52 # 0x57 and 0x57 0x44. This has been fixed as well. # # drivers/net/lance.c # 2004/05/03 09:40:23-04:00 akpm@osdl.org +37 -7 # lance.c: fix for card with signature 0x52 0x49 # # ChangeSet # 2004/05/11 03:04:36-04:00 cw@f00f.org # [PATCH] kill warning in r8169 # # drivers/net/r8169.c # 2004/05/10 14:42:46-04:00 cw@f00f.org +1 -1 # bk 2.6.6 r8169.c shud'up gcc # # ChangeSet # 2004/05/10 22:12:24-04:00 jgarzik@redhat.com # [libata] Maintainer annotations # # In MAINTAINERS and in individual low-level drivers. # # drivers/scsi/sata_vsc.c # 2004/05/10 22:12:19-04:00 jgarzik@redhat.com +4 -0 # [libata] Maintainer annotations # # In MAINTAINERS and in individual low-level drivers. # # drivers/scsi/sata_via.c # 2004/05/10 22:12:19-04:00 jgarzik@redhat.com +4 -0 # [libata] Maintainer annotations # # In MAINTAINERS and in individual low-level drivers. # # drivers/scsi/sata_sx4.c # 2004/05/10 22:12:19-04:00 jgarzik@redhat.com +4 -0 # [libata] Maintainer annotations # # In MAINTAINERS and in individual low-level drivers. # # drivers/scsi/sata_svw.c # 2004/05/10 22:12:19-04:00 jgarzik@redhat.com +6 -1 # [libata] Maintainer annotations # # In MAINTAINERS and in individual low-level drivers. # # drivers/scsi/sata_sis.c # 2004/05/10 22:12:19-04:00 jgarzik@redhat.com +4 -0 # [libata] Maintainer annotations # # In MAINTAINERS and in individual low-level drivers. # # drivers/scsi/sata_sil.c # 2004/05/10 22:12:19-04:00 jgarzik@redhat.com +5 -1 # [libata] Maintainer annotations # # In MAINTAINERS and in individual low-level drivers. # # drivers/scsi/sata_promise.c # 2004/05/10 22:12:19-04:00 jgarzik@redhat.com +4 -0 # [libata] Maintainer annotations # # In MAINTAINERS and in individual low-level drivers. # # drivers/scsi/ata_piix.c # 2004/05/10 22:12:19-04:00 jgarzik@redhat.com +4 -0 # [libata] Maintainer annotations # # In MAINTAINERS and in individual low-level drivers. # # MAINTAINERS # 2004/05/10 22:12:19-04:00 jgarzik@redhat.com +6 -0 # [libata] Maintainer annotations # # In MAINTAINERS and in individual low-level drivers. # # ChangeSet # 2004/05/10 21:51:40-04:00 jgarzik@redhat.com # [libata] preparation for writeback caching support # # * bug fix: make sure 'nsect' member of struct ata_queued_cmd is # initialized each time a cmd is re-used. Only affects PIO data xfers, # which nobody uses. # * slightly change the way a device's flags are printed out. currently # the only flag is 'lba48', but soon 'wcache' will appear also. # * add WB-cache-related constants and macros to linux/ata.h # # include/linux/ata.h # 2004/05/10 21:49:59-04:00 jgarzik@redhat.com +4 -0 # [libata] preparation for writeback caching support # # * bug fix: make sure 'nsect' member of struct ata_queued_cmd is # initialized each time a cmd is re-used. Only affects PIO data xfers, # which nobody uses. # * slightly change the way a device's flags are printed out. currently # the only flag is 'lba48', but soon 'wcache' will appear also. # * add WB-cache-related constants and macros to linux/ata.h # # drivers/scsi/libata-core.c # 2004/05/10 21:49:59-04:00 jgarzik@redhat.com +3 -2 # [libata] preparation for writeback caching support # # * bug fix: make sure 'nsect' member of struct ata_queued_cmd is # initialized each time a cmd is re-used. Only affects PIO data xfers, # which nobody uses. # * slightly change the way a device's flags are printed out. currently # the only flag is 'lba48', but soon 'wcache' will appear also. # * add WB-cache-related constants and macros to linux/ata.h # # ChangeSet # 2004/05/10 16:54:27-07:00 eger@havoc.gtf.org # [PATCH] radeon: fix overlapping copyarea # # This fixes a corruption problem with overlapping copyarea()'s # in the radeon driver. # # drivers/video/aty/radeon_accel.c # 2004/04/18 16:49:14-07:00 eger@havoc.gtf.org +17 -4 # radeon: fix overlapping copyarea # # ChangeSet # 2004/05/10 16:54:17-07:00 paulus@samba.org # [PATCH] ppc64: extra barrier in I/O operations # # At the moment, on PPC64, the instruction we use for wmb() doesn't # order cacheable stores vs. non-cacheable stores. (It does order # cacheable vs. cacheable and non-cacheable vs. non-cacheable.) This # causes problems in the sort of driver code that writes stuff into # memory, does a wmb(), then a writel to the device to start a DMA # operation to read the stuff it has just written to memory. # # This patch solves the problem by adding a sync instruction before the # store in the write* and out* macros. The sync is a full barrier that # orders all loads and stores, cacheable or not. The patch also moves # the eieio instruction that we had after the store to before the load # in the read* and in* macros. With the sync before the store, we don't # need an eieio as well in a sequence of stores, but we still need an # eieio between a store and a load. # # I think it is better to do this than to turn wmb() into a full memory # barrier (a sync instruction) because the full barrier is slow and # isn't needed with the sync in the write*/out* macros. This way, # write*/out* are fully ordered with respect to preceding loads and # stores, which is what driver writers expect, and we avoid penalizing # users of wmb() who are only doing cacheable stores. # # include/asm-ppc64/io.h # 2004/05/08 20:31:13-07:00 paulus@samba.org +25 -23 # ppc64: extra barrier in I/O operations # # ChangeSet # 2004/05/10 16:30:02-07:00 willy@debian.org # [PATCH] PA-RISC updates for 2.6.6 # # - Split PA7300LC from PA7100LC (Matthew Wilcox) # - Handle 32-bit firmware and 64-bit kernel at runtime (Ryan Bradetich) # - Fix building in a separate tree (Matthew Wilcox) # - Update defconfigs (Randolph Chung) # - Make WCHAN work (Randolph Chung) # - Initial support for SMP in 2.6 (Grant Grundler) # - Use 8-byte PTEs on 32-bit kernels (James Bottomley) # - Implement L2/L3 hybrid page tables for 64 bit kernels (James Bottomley) # - Support 8TB of physical and virtual address space (James Bottomley) # - Macro'ise the tlb miss handlers (James Bottomley) # - Check the ptrace flags correctly in the syscall return path (Randolph Chung) # - Eliminate many magic numbers (James Bottomley) # - Work around linker bug in vmlinux.lds.S (James Bottomley) # - Many cache flushing fixes (James Bottomley) # - first baby step for PA8800 support (Grant Grundler) # - Self-aligning spinlocks (Randolph Chung) # # include/asm-parisc/unwind.h # 2004/05/08 15:13:01-07:00 willy@debian.org +72 -0 # PA-RISC updates for 2.6.6 # # include/asm-parisc/unistd.h # 2004/05/10 02:19:33-07:00 willy@debian.org +148 -98 # PA-RISC updates for 2.6.6 # # include/asm-parisc/system.h # 2004/05/10 02:19:33-07:00 willy@debian.org +19 -1 # PA-RISC updates for 2.6.6 # # include/asm-parisc/spinlock.h # 2004/05/10 02:19:33-07:00 willy@debian.org +29 -22 # PA-RISC updates for 2.6.6 # # include/asm-parisc/smp.h # 2004/05/10 02:19:33-07:00 willy@debian.org +1 -3 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/unwind.c # 2004/05/08 15:31:44-07:00 willy@debian.org +295 -0 # PA-RISC updates for 2.6.6 # # include/asm-parisc/unwind.h # 2004/05/08 15:13:01-07:00 willy@debian.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-parisc/unwind.h # # include/asm-parisc/processor.h # 2004/05/10 02:19:33-07:00 willy@debian.org +23 -14 # PA-RISC updates for 2.6.6 # # include/asm-parisc/pgtable.h # 2004/05/10 02:19:33-07:00 willy@debian.org +73 -35 # PA-RISC updates for 2.6.6 # # include/asm-parisc/pgalloc.h # 2004/05/10 02:19:32-07:00 willy@debian.org +59 -13 # PA-RISC updates for 2.6.6 # # include/asm-parisc/pdc.h # 2004/05/10 02:19:32-07:00 willy@debian.org +1 -0 # PA-RISC updates for 2.6.6 # # include/asm-parisc/page.h # 2004/05/10 02:19:32-07:00 willy@debian.org +46 -2 # PA-RISC updates for 2.6.6 # # include/asm-parisc/hardware.h # 2004/05/10 02:19:32-07:00 willy@debian.org +2 -1 # PA-RISC updates for 2.6.6 # # include/asm-parisc/fixmap.h # 2004/05/10 02:19:32-07:00 willy@debian.org +14 -10 # PA-RISC updates for 2.6.6 # # include/asm-parisc/dma-mapping.h # 2004/05/10 02:19:32-07:00 willy@debian.org +3 -0 # PA-RISC updates for 2.6.6 # # include/asm-parisc/cacheflush.h # 2004/05/10 02:19:32-07:00 willy@debian.org +73 -19 # PA-RISC updates for 2.6.6 # # include/asm-parisc/cache.h # 2004/05/10 02:19:32-07:00 willy@debian.org +2 -0 # PA-RISC updates for 2.6.6 # # include/asm-parisc/bitops.h # 2004/05/10 02:19:32-07:00 willy@debian.org +23 -12 # PA-RISC updates for 2.6.6 # # include/asm-parisc/atomic.h # 2004/05/10 02:19:32-07:00 willy@debian.org +36 -23 # PA-RISC updates for 2.6.6 # # drivers/parisc/wax.c # 2004/05/10 02:19:04-07:00 willy@debian.org +0 -1 # PA-RISC updates for 2.6.6 # # drivers/parisc/superio.c # 2004/05/10 02:19:04-07:00 willy@debian.org +1 -1 # PA-RISC updates for 2.6.6 # # arch/parisc/mm/init.c # 2004/05/10 02:18:39-07:00 willy@debian.org +7 -2 # PA-RISC updates for 2.6.6 # # arch/parisc/lib/bitops.c # 2004/05/10 02:18:39-07:00 willy@debian.org +12 -14 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/vmlinux.lds.S # 2004/05/10 02:18:39-07:00 willy@debian.org +16 -3 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/unwind.c # 2004/05/08 15:31:44-07:00 willy@debian.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/parisc/kernel/unwind.c # # arch/parisc/kernel/syscall_table.S # 2004/05/10 02:18:39-07:00 willy@debian.org +9 -0 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/syscall.S # 2004/05/10 02:18:38-07:00 willy@debian.org +3 -2 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/sys_parisc.c # 2004/05/10 02:18:38-07:00 willy@debian.org +4 -2 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/smp.c # 2004/05/10 02:18:38-07:00 willy@debian.org +49 -121 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/signal.c # 2004/05/10 02:18:38-07:00 willy@debian.org +17 -8 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/setup.c # 2004/05/10 02:18:37-07:00 willy@debian.org +6 -2 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/real2.S # 2004/05/10 02:18:37-07:00 willy@debian.org +2 -1 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/processor.c # 2004/05/10 02:18:37-07:00 willy@debian.org +2 -3 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/process.c # 2004/05/10 02:18:37-07:00 willy@debian.org +27 -0 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/perf.c # 2004/05/10 02:18:37-07:00 willy@debian.org +4 -2 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/pci-dma.c # 2004/05/10 02:18:37-07:00 willy@debian.org +4 -4 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/pacache.S # 2004/05/10 02:18:37-07:00 willy@debian.org +92 -4 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/init_task.c # 2004/05/10 02:18:37-07:00 willy@debian.org +5 -3 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/head64.S # 2004/05/10 02:18:37-07:00 willy@debian.org +14 -17 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/head.S # 2004/05/10 02:18:37-07:00 willy@debian.org +12 -10 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/hardware.c # 2004/05/10 02:18:37-07:00 willy@debian.org +4 -3 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/firmware.c # 2004/05/10 02:18:37-07:00 willy@debian.org +49 -13 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/entry.S # 2004/05/10 02:18:36-07:00 willy@debian.org +324 -563 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/cache.c # 2004/05/10 02:18:36-07:00 willy@debian.org +35 -26 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/asm-offsets.c # 2004/05/10 02:18:36-07:00 willy@debian.org +15 -0 # PA-RISC updates for 2.6.6 # # arch/parisc/kernel/Makefile # 2004/05/10 02:18:36-07:00 willy@debian.org +1 -1 # PA-RISC updates for 2.6.6 # # arch/parisc/configs/c3000_defconfig # 2004/05/10 02:18:36-07:00 willy@debian.org +18 -13 # PA-RISC updates for 2.6.6 # # arch/parisc/configs/b180_defconfig # 2004/05/10 02:18:36-07:00 willy@debian.org +16 -11 # PA-RISC updates for 2.6.6 # # arch/parisc/configs/a500_defconfig # 2004/05/10 02:18:36-07:00 willy@debian.org +20 -15 # PA-RISC updates for 2.6.6 # # arch/parisc/configs/712_defconfig # 2004/05/10 02:18:36-07:00 willy@debian.org +11 -11 # PA-RISC updates for 2.6.6 # # arch/parisc/Makefile # 2004/05/10 02:18:36-07:00 willy@debian.org +2 -1 # PA-RISC updates for 2.6.6 # # arch/parisc/Kconfig # 2004/05/10 02:18:36-07:00 willy@debian.org +25 -26 # PA-RISC updates for 2.6.6 # # ChangeSet # 2004/05/10 16:25:28-07:00 geert@linux-m68k.org # [PATCH] M68k missing # # M68k: needs include for # __attribute_const__ (from Richard Zidlicky) # # include/asm-m68k/virtconvert.h # 2004/05/05 03:58:46-07:00 geert@linux-m68k.org +1 -0 # M68k missing # # ChangeSet # 2004/05/10 16:25:18-07:00 geert@linux-m68k.org # [PATCH] Sun3x dummycon # # Sun3x: Like most other platforms, Sun3x needs conswitchp set if # CONFIG_DUMMY_CONSOLE is defined (from Sam Creasey) # # arch/m68k/sun3x/config.c # 2004/04/30 02:42:04-07:00 geert@linux-m68k.org +4 -0 # Sun3x dummycon # # ChangeSet # 2004/05/10 16:24:30-07:00 torvalds@ppc970.osdl.org # Merge bk://gkernel.bkbits.net/libata-2.6 # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # include/linux/pci_ids.h # 2004/05/10 16:24:27-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/Makefile # 2004/05/10 16:24:27-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/Kconfig # 2004/05/10 16:24:27-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/05/10 16:13:18-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] ntfs cleanup # # ntfs_fill_super() and ntfs_read_inode_mount() cleaned up. Removed # the kludges around the first iget() on NTFS. Instead of playing with # (re)setting ->s_op we have the MFT_FILE inode set up by explicit new_inode()/ # set ->i_ino/insert_inode_hash()/call ntfs_read_inode_mount() directly. # That kills the need of second super_operations and it allows to return # error from ntfs_read_inode_mount() without resorting to ugly "poisoning" # tricks. # # fs/ntfs/super.c # 2004/05/09 23:16:23-07:00 viro@parcelfarce.linux.theplanet.co.uk +11 -34 # ntfs cleanup # # fs/ntfs/ntfs.h # 2004/05/09 23:18:07-07:00 viro@parcelfarce.linux.theplanet.co.uk +0 -10 # ntfs cleanup # # fs/ntfs/inode.h # 2004/05/09 22:41:09-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # ntfs cleanup # # fs/ntfs/inode.c # 2004/05/09 22:46:58-07:00 viro@parcelfarce.linux.theplanet.co.uk +8 -21 # ntfs cleanup # # ChangeSet # 2004/05/10 16:10:46-07:00 torvalds@ppc970.osdl.org # Merge bk://linux-scsi.bkbits.net/scsi-for-linus-2.6 # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # include/linux/pci_ids.h # 2004/05/10 16:10:43-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/megaraid.c # 2004/05/10 16:10:42-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # MAINTAINERS # 2004/05/10 16:10:42-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/05/10 23:56:17+01:00 rmk@flint.arm.linux.org.uk # [SERIAL] Fix exit function pointer initialisers # # This wraps pointer initialisers to functions marked __devexit with # __devexit_p. # # drivers/serial/8250_pci.c # 2004/05/10 23:53:49+01:00 rmk@flint.arm.linux.org.uk +4 -4 # exit function pointer initialisers should be marked with __devexit_p # # ChangeSet # 2004/05/10 23:53:05+01:00 aia21@cantab.net # NTFS: Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/logfile.c # 2004/05/10 23:52:19+01:00 aia21@cantab.net +1 -1 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/time.h # 2004/05/10 23:52:17+01:00 aia21@cantab.net +1 -1 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/volume.h # 2004/05/10 23:52:16+01:00 aia21@cantab.net +2 -2 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/unistr.c # 2004/05/10 23:52:14+01:00 aia21@cantab.net +10 -12 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/types.h # 2004/05/10 23:52:12+01:00 aia21@cantab.net +1 -1 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/sysctl.h # 2004/05/10 23:52:10+01:00 aia21@cantab.net +6 -7 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/sysctl.c # 2004/05/10 23:52:09+01:00 aia21@cantab.net +6 -7 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/ntfs.h # 2004/05/10 23:52:07+01:00 aia21@cantab.net +2 -3 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/namei.c # 2004/05/10 23:52:05+01:00 aia21@cantab.net +4 -4 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/mst.c # 2004/05/10 23:52:04+01:00 aia21@cantab.net +1 -1 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/mft.h # 2004/05/10 23:52:02+01:00 aia21@cantab.net +1 -1 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/mft.c # 2004/05/10 23:52:00+01:00 aia21@cantab.net +4 -5 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/malloc.h # 2004/05/10 23:51:59+01:00 aia21@cantab.net +1 -1 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/layout.h # 2004/05/10 23:51:57+01:00 aia21@cantab.net +0 -1 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/file.c # 2004/05/10 23:51:56+01:00 aia21@cantab.net +4 -5 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/endian.h # 2004/05/10 23:51:54+01:00 aia21@cantab.net +4 -5 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/dir.h # 2004/05/10 23:51:52+01:00 aia21@cantab.net +4 -5 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/debug.h # 2004/05/10 23:51:48+01:00 aia21@cantab.net +4 -5 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/debug.c # 2004/05/10 23:51:44+01:00 aia21@cantab.net +4 -5 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/attrib.h # 2004/05/10 23:51:19+01:00 aia21@cantab.net +4 -5 # Cleanup whitespace (trailing space removal, etc). # # fs/ntfs/Makefile # 2004/05/10 23:51:09+01:00 aia21@cantab.net +1 -1 # Update # # fs/ntfs/ChangeLog # 2004/05/10 23:50:55+01:00 aia21@cantab.net +4 -1 # Update # # ChangeSet # 2004/05/10 17:29:29-05:00 jejb@mulgrave.(none) # qla2100 fabric fixes # # From: "Andrew Vasquez" # # Ok, well there aren't too many folks using an QLA2100 in a fabric # topology, if there were, they wouldn't have gotten very far in the # driver load sequence. I've been able to scrape-up a QLA2100, 1Gig # switch, and an JBOD. Upon loading the 8.00.00b12k driver, the # firmware successfully logs into the switch, the driver receives a # LOOP_UP event, but, the kernel panics due to NULL pointer dereference # while trying to perform an RFT_ID -- the attached patch against # current scsi-misc-2.6 fixes that problem. # # drivers/scsi/qla2xxx/qla_os.c # 2004/05/10 17:29:10-05:00 jejb@mulgrave.(none) +2 -2 # qla2100 fabric fixes # # drivers/scsi/qla2xxx/qla_init.c # 2004/05/10 17:29:10-05:00 jejb@mulgrave.(none) +0 -4 # qla2100 fabric fixes # # drivers/scsi/qla2xxx/qla_gs.c # 2004/05/10 17:29:10-05:00 jejb@mulgrave.(none) +12 -60 # qla2100 fabric fixes # # drivers/scsi/qla2xxx/qla_def.h # 2004/05/10 17:29:10-05:00 jejb@mulgrave.(none) +0 -5 # qla2100 fabric fixes # # ChangeSet # 2004/05/10 16:40:22-05:00 James.Bottomley@steeleye.com # [PATCH] fix LLD module refcounting in sr.c # # The patch to close all the open/close/hotplug races in sr left the # module refcounting broken so that the ULD housing the CD device now # can't be removed until the device itself is removed. # # This patch (structurally identical to the one for sd.c to perform the # same function) fixes the module refcounting. # # drivers/scsi/sr.c # 2004/05/10 11:12:15-05:00 James.Bottomley@steeleye.com +14 -11 # fix LLD module refcounting in sr.c # # ChangeSet # 2004/05/10 14:25:52-07:00 akpm@osdl.org # [PATCH] get_thread_area macro fixes # # From: Adam Lackorzynski # # one of the macros for get_thread_area extracts the wrong bit. The # "32bit" field is in bit 22, not 23 (as can be seen in desc.h). # # [ Fix ia64/x86-64 too, while we're at it. Linus ] # # arch/x86_64/ia32/tls32.c # 2004/05/10 07:22:43-07:00 akpm@osdl.org +1 -1 # get_thread_area macro fixes # # arch/ia64/ia32/sys_ia32.c # 2004/05/10 07:22:43-07:00 akpm@osdl.org +1 -1 # get_thread_area macro fixes # # arch/i386/kernel/ptrace.c # 2004/05/10 07:22:43-07:00 akpm@osdl.org +1 -1 # get_thread_area macro fixes # # arch/i386/kernel/process.c # 2004/05/10 07:22:43-07:00 akpm@osdl.org +1 -1 # get_thread_area macro fixes # # ChangeSet # 2004/05/10 14:25:41-07:00 akpm@osdl.org # [PATCH] Add SMT setup for domain scheduler on x86-64 # # From: Andi Kleen # # Set up SMT for the domain scheduler on x86-64. This way the scheduling # works better on HyperThreading aware systems; in particular it will use # both physical CPUs before sharing two virtual CPUs on the same package. # This improves performance considerably in some cases. # # Based on the i386 code and a previous patch from Suresh B. Siddha. # # arch/x86_64/kernel/domain.c # 2004/05/10 03:25:59-07:00 akpm@osdl.org +89 -0 # Add SMT setup for domain scheduler on x86-64 # # include/asm-x86_64/processor.h # 2004/05/10 03:25:59-07:00 akpm@osdl.org +5 -0 # Add SMT setup for domain scheduler on x86-64 # # arch/x86_64/kernel/domain.c # 2004/05/10 03:25:59-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/x86_64/kernel/domain.c # # arch/x86_64/kernel/Makefile # 2004/05/10 03:25:59-07:00 akpm@osdl.org +1 -0 # Add SMT setup for domain scheduler on x86-64 # # arch/x86_64/Kconfig # 2004/05/10 03:25:59-07:00 akpm@osdl.org +10 -0 # Add SMT setup for domain scheduler on x86-64 # # ChangeSet # 2004/05/10 14:25:30-07:00 akpm@osdl.org # [PATCH] x86-64: convert sibling map to masks # # From: Andi Kleen # # From: Suresh B. Siddha # # Convert sibling map on x86-64 to cpumasks. # # This is needed for the SMT patches. # # include/asm-x86_64/smp.h # 2004/05/10 03:25:56-07:00 akpm@osdl.org +1 -1 # x86-64: convert sibling map to masks # # arch/x86_64/kernel/smpboot.c # 2004/05/10 03:25:56-07:00 akpm@osdl.org +23 -18 # x86-64: convert sibling map to masks # # ChangeSet # 2004/05/10 14:14:39-07:00 torvalds@ppc970.osdl.org # Remove intermezzo, per instructions from Peter Braam. # # BitKeeper/deleted/.del-vfs.c~165e22e6a7ba108 # 2004/05/10 14:13:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/vfs.c # # BitKeeper/deleted/.del-upcall.c~976ba6ddc70d82d0 # 2004/05/10 14:13:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/upcall.c # # BitKeeper/deleted/.del-sysctl.c~e29fbc5ba9b64254 # 2004/05/10 14:13:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/sysctl.c # # BitKeeper/deleted/.del-super.c~326162ada7873a62 # 2004/05/10 14:13:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/super.c # # BitKeeper/deleted/.del-replicator.c~8d717c6a8a2aed8c # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/replicator.c # # BitKeeper/deleted/.del-psdev.c~20211a738de20311 # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/psdev.c # # BitKeeper/deleted/.del-presto.c~ca1c8539f09f58b3 # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/presto.c # # BitKeeper/deleted/.del-methods.c~2b904fa1331fb6b1 # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/methods.c # # BitKeeper/deleted/.del-kml_utils.c~f6480e1c3639483b # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/kml_utils.c # # BitKeeper/deleted/.del-kml_unpack.c~a6a712f450c0a5c9 # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/kml_unpack.c # # BitKeeper/deleted/.del-kml_setup.c~a45e484b43988906 # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/kml_setup.c # # BitKeeper/deleted/.del-kml_reint.c~baf57ddfb16b6a9 # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/kml_reint.c # # BitKeeper/deleted/.del-kml_decode.c~6b7df6c56b9af923 # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/kml_decode.c # # BitKeeper/deleted/.del-kml.c~b65b8d24cc0c4ffd # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/kml.c # # BitKeeper/deleted/.del-journal_xfs.c~8c292cee9b94d964 # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/journal_xfs.c # # BitKeeper/deleted/.del-journal_tmpfs.c~4b578b9c4f5d5885 # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/journal_tmpfs.c # # BitKeeper/deleted/.del-journal_reiserfs.c~266418f57226fc78 # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/journal_reiserfs.c # # BitKeeper/deleted/.del-journal_obdfs.c~9d17c618797703ec # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/journal_obdfs.c # # BitKeeper/deleted/.del-journal_ext3.c~245345523fcb42b0 # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/journal_ext3.c # # BitKeeper/deleted/.del-journal_ext2.c~b3cf997587046f60 # 2004/05/10 14:13:30-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/journal_ext2.c # # BitKeeper/deleted/.del-journal.c~38743a9cf991b967 # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/journal.c # # BitKeeper/deleted/.del-intermezzo_upcall.h~a9a4d5322388a64c # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/intermezzo_upcall.h # # BitKeeper/deleted/.del-intermezzo_psdev.h~cc557782bdb799b6 # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/intermezzo_psdev.h # # BitKeeper/deleted/.del-intermezzo_lib.h~30f1b0a71cc1ecfa # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/intermezzo_lib.h # # BitKeeper/deleted/.del-intermezzo_kml.h~5eeff6672408808a # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/intermezzo_kml.h # # BitKeeper/deleted/.del-intermezzo_journal.h~cf9d1e68a72eb656 # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/intermezzo_journal.h # # BitKeeper/deleted/.del-intermezzo_idl.h~c3ad3183cc030538 # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/intermezzo_idl.h # # BitKeeper/deleted/.del-intermezzo_fs.h~7e6e6586d37758c4 # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/intermezzo_fs.h # # BitKeeper/deleted/.del-inode.c~db7d289a82a13d69 # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/inode.c # # BitKeeper/deleted/.del-fileset.c~90d053ee7dff80c9 # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/fileset.c # # BitKeeper/deleted/.del-file.c~db7b29cfd4569e4d # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/file.c # # BitKeeper/deleted/.del-ext_attr.c~9eb3e1fa34f83cf3 # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/ext_attr.c # # BitKeeper/deleted/.del-dir.c~b00f4a9b315238c # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/dir.c # # BitKeeper/deleted/.del-dcache.c~a257396396f1bff8 # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/dcache.c # # BitKeeper/deleted/.del-cache.c~3ffbeca15415a312 # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/cache.c # # BitKeeper/deleted/.del-Makefile~f539ea491787e98b # 2004/05/10 14:13:29-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/intermezzo/Makefile # # ChangeSet # 2004/05/10 14:12:21-07:00 akpm@osdl.org # [PATCH] Fix __down Tainting Kernel with CONFIG_MODVERSIONS=y # # From: Rusty Russell # # PowerPC64 ABI has ".funcname" (the actual function) and "funcname" (the # function descriptor) and we strip off the dots in "dedotify" called from # module_frob_arch_sections(). We need to also de-dotify the corresponding # names in the __version section. # # Actually has nothing to do with __down, it's just that we only print the # first symbol whose version is missing. # # arch/ppc64/kernel/module.c # 2004/05/10 04:25:58-07:00 akpm@osdl.org +13 -0 # Fix __down Tainting Kernel with CONFIG_MODVERSIONS=y # # ChangeSet # 2004/05/10 14:12:10-07:00 akpm@osdl.org # [PATCH] PPC termio fix # # From: Paul Mackerras # # It turns out that we are not handling the TABDLY bits of the termios # c_oflag field correctly on PPC, PPC64 and Alpha. These three architectures # have a value for XTABS that is different from the TAB3 value. POSIX # specifies that setting the TABDLY field to TAB3 should result in tabs being # expanded to spaces. In n_tty.c:opost() we check for O_TABDLY(tty) == # XTABS, which is fine on most architectures because they have XTABS == TAB3. # # I think the right thing to do is just to change the definition of XTABS to # be the same as TAB3 on these architectures. The patch below does this for # PPC and PPC64 (and I suggest the Alpha maintainer should do the same). At # the moment, applications using either the XTABS or TAB3 values won't get # the expected behaviour. With this patch, apps that use TAB3 will get the # expected behaviour. Apps that use XTABS will need to be recompiled (but # note that the POSIX-specified name to use is TAB3 not XTABS). # # include/asm-ppc64/termbits.h # 2004/05/10 04:25:57-07:00 akpm@osdl.org +1 -1 # PPC termio fix # # include/asm-ppc/termbits.h # 2004/05/10 04:25:57-07:00 akpm@osdl.org +1 -1 # PPC termio fix # # ChangeSet # 2004/05/10 14:12:00-07:00 akpm@osdl.org # [PATCH] remove intermezzo # # Peter Braam said: # # I would just like to say that I have no difficulties with intermezzo # being rm -rf'd. There are probably only a handful of users. # # In the past 4 years nobody has supported InterMezzo sufficiently for # it to become successful. I have been fortunate to get really good support # for the Lustre project. So I have focussed on that. Lustre 1.X has # become really solid. # # The disconnected operation, caching and mirroring functionality of # InterMezzo will become available in Lustre as a new feature in version 2. # # So I see no point in keeping InterMezzo if it is a nuisance. # # # The patch removes the references to intermezzo. Please do a `bk rm' of # fs/intermezzo. # # fs/Makefile # 2004/05/10 04:25:57-07:00 akpm@osdl.org +0 -1 # remove intermezzo # # fs/Kconfig # 2004/05/10 04:25:57-07:00 akpm@osdl.org +0 -16 # remove intermezzo # # ChangeSet # 2004/05/10 14:11:49-07:00 akpm@osdl.org # [PATCH] make tags for selinux # # From: Olaf Hering # # make tags skips security/selinux/include because of find . -name include # -prune This patch does just add it later. No idea if it can be done # better. # # Makefile # 2004/05/10 04:25:57-07:00 akpm@osdl.org +2 -0 # make tags for selinux # # ChangeSet # 2004/05/10 14:11:38-07:00 akpm@osdl.org # [PATCH] fix some typos in sound docs # # From: Christoph Hellwig # # (partially from the debian kernel tree) # # Documentation/sound/oss/VIBRA16 # 2004/05/10 04:25:57-07:00 akpm@osdl.org +5 -5 # fix some typos in sound docs # # Documentation/sound/oss/OPL3-SA # 2004/05/10 04:25:57-07:00 akpm@osdl.org +1 -1 # fix some typos in sound docs # # ChangeSet # 2004/05/10 14:11:28-07:00 akpm@osdl.org # [PATCH] telephony/ixj.h: remove kernel 2.2 #ifdef's # # From: Adrian Bunk # # The patch below removes two #ifdef's for kernel 2.2 from # linux-2.6.2-mm1/drivers/telephony/ixj.h # # drivers/telephony/ixj.h # 2004/05/10 04:25:56-07:00 akpm@osdl.org +0 -9 # telephony/ixj.h: remove kernel 2.2 #ifdef's # # ChangeSet # 2004/05/10 14:11:17-07:00 akpm@osdl.org # [PATCH] remove kernel 2.2 code from drivers/net/hamradio/dmascc.c # # From: Adrian Bunk # # The patch below removes some #ifdef'd kernel 2.2 code from # drivers/net/hamradio/dmascc.c. # # drivers/net/hamradio/dmascc.c # 2004/05/10 04:25:56-07:00 akpm@osdl.org +0 -18 # remove kernel 2.2 code from drivers/net/hamradio/dmascc.c # # ChangeSet # 2004/05/10 14:11:07-07:00 akpm@osdl.org # [PATCH] Crystal cs4235 mixer fix # # From: Joseph Parmelee # # Fixes improper setup of the mixer on Crystal soundcards with the CS4235 # chip. # # sound/oss/ad1848.c # 2004/05/10 04:25:56-07:00 akpm@osdl.org +1 -0 # Crystal cs4235 mixer fix # # ChangeSet # 2004/05/10 14:10:56-07:00 akpm@osdl.org # [PATCH] export con_set_default_unimap() # # fbcon needs this symbol. # # drivers/char/consolemap.c # 2004/05/10 04:25:56-07:00 akpm@osdl.org +1 -0 # export con_set_default_unimap() # # ChangeSet # 2004/05/10 14:10:46-07:00 akpm@osdl.org # [PATCH] Make usermodehelper_init() use core_initcall() # # We may as well make usermodehelper_init() core_initcall as well, to make # sure its services are avaialble to all the other initcall levels. # # kernel/kmod.c # 2004/05/10 04:25:56-07:00 akpm@osdl.org +1 -1 # Make usermodehelper_init() use core_initcall() # # ChangeSet # 2004/05/10 14:10:35-07:00 akpm@osdl.org # [PATCH] use core_initcall for binfmt initialisation # # We need to register the binfmts earlier, so normal initcalls can successfully # run call_usermodehelper() to execute things. # # fs/binfmt_som.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +1 -1 # use core_initcall for binfmt initialisation # # fs/binfmt_script.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +2 -2 # use core_initcall for binfmt initialisation # # fs/binfmt_misc.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +1 -1 # use core_initcall for binfmt initialisation # # fs/binfmt_flat.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +1 -1 # use core_initcall for binfmt initialisation # # fs/binfmt_em86.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +2 -2 # use core_initcall for binfmt initialisation # # fs/binfmt_elf.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +2 -2 # use core_initcall for binfmt initialisation # # fs/binfmt_aout.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +1 -1 # use core_initcall for binfmt initialisation # # ChangeSet # 2004/05/10 14:10:24-07:00 akpm@osdl.org # [PATCH] minor RCU optimization # # From: Stephen Hemminger # # Minor tweak to rcu, use __list_splice instead of list_splice because the # list has already been checked for empty. # # kernel/rcupdate.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +2 -2 # minor RCU optimization # # ChangeSet # 2004/05/10 14:10:14-07:00 akpm@osdl.org # [PATCH] remove MOD_INC_USE_COUNT usage in arch/um/drivers/harddog_kern.c # # From: Christoph Hellwig # # ->open already has a reference so use __module_get. The file has no # maintainer noted in it, all credits are from the driver it's copied from. # # arch/um/drivers/harddog_kern.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +1 -1 # remove MOD_INC_USE_COUNT usage in arch/um/drivers/harddog_kern.c # # ChangeSet # 2004/05/10 14:10:03-07:00 akpm@osdl.org # [PATCH] fix MOD_INC_USE_COUNT usage in mtd # # From: Christoph Hellwig # # mtd driver need to get another reference if ->probe succeeds (strange design # if you ask me, but what the heck..), and while most drivers have been switched # to __module_get already two are still missing. # # drivers/mtd/chips/sharp.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +1 -1 # fix MOD_INC_USE_COUNT usage in mtd # # drivers/mtd/chips/amd_flash.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +1 -1 # fix MOD_INC_USE_COUNT usage in mtd # # ChangeSet # 2004/05/10 14:09:53-07:00 akpm@osdl.org # [PATCH] drivers/video/* MOD_INC_USE_COUNT fixes # # From: Christoph Hellwig # # A bunch of framebuffer drivers use MOD_INC_USE_COUNT to prevent themselves # from unloading completely - but we have a much easier way to do so, that is # simply removing the module_exit/cleanup_module handler. # # drivers/video/virgefb.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +0 -9 # drivers/video/* MOD_INC_USE_COUNT fixes # # drivers/video/sa1100fb.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +0 -2 # drivers/video/* MOD_INC_USE_COUNT fixes # # drivers/video/retz3fb.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +0 -12 # drivers/video/* MOD_INC_USE_COUNT fixes # # drivers/video/cyberfb.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +0 -9 # drivers/video/* MOD_INC_USE_COUNT fixes # # drivers/video/atafb.c # 2004/05/10 04:25:55-07:00 akpm@osdl.org +0 -11 # drivers/video/* MOD_INC_USE_COUNT fixes # # ChangeSet # 2004/05/10 14:09:42-07:00 akpm@osdl.org # [PATCH] fix MOD_{INC,DEC}_USE_COUNT gunk in arch/um/drivers/net_kern.c # # From: Christoph Hellwig # # Well, UML is pretty out of date in mainline, but I'd like to squash the last # users of said beasts rather sooner than later. # # arch/um/drivers/net_kern.c # 2004/05/10 04:25:54-07:00 akpm@osdl.org +0 -2 # fix MOD_{INC,DEC}_USE_COUNT gunk in arch/um/drivers/net_kern.c # # ChangeSet # 2004/05/10 14:09:31-07:00 akpm@osdl.org # [PATCH] kill MOD_{INC,DEC}_USE_COUNT gunk in arch/cris/arch-v10/drivers/pcf8563.c # # From: Christoph Hellwig # # Driver already sets fops->owner so the open/close methods are entirely # superflous. # # arch/cris/arch-v10/drivers/pcf8563.c # 2004/05/10 04:25:54-07:00 akpm@osdl.org +0 -18 # kill MOD_{INC,DEC}_USE_COUNT gunk in arch/cris/arch-v10/drivers/pcf8563.c # # ChangeSet # 2004/05/10 14:09:21-07:00 akpm@osdl.org # [PATCH] kill useless MOD_{INC,DEC}_USE_COUNT in sound/oss/msnd.c # # From: Christoph Hellwig # # Callers are exported register/unregister handlers so the module is locked in # core by users of said exports. # # sound/oss/msnd.c # 2004/05/10 04:25:54-07:00 akpm@osdl.org +0 -5 # kill useless MOD_{INC,DEC}_USE_COUNT in sound/oss/msnd.c # # ChangeSet # 2004/05/10 14:09:10-07:00 akpm@osdl.org # [PATCH] cpqarray update for 2.6 # # From: # # This patch fixes 2 minor issues that break our Array Configuration utility. # my_io was changed to a pointer so the & had to removed when using it with # copy_to_user(). # # Sometime in 2.5 SG_MAX got changed to 31. Maybe to copy cciss? Now I'm # changing it back to 32 so our app can work. # # drivers/block/ida_cmd.h # 2004/05/10 04:25:54-07:00 akpm@osdl.org +1 -1 # cpqarray update for 2.6 # # drivers/block/cpqarray.c # 2004/05/10 04:25:54-07:00 akpm@osdl.org +1 -1 # cpqarray update for 2.6 # # ChangeSet # 2004/05/10 14:09:00-07:00 akpm@osdl.org # [PATCH] Add sysctl to define a hugetlb-capable group # # From: "Chen, Kenneth W" , # "Seth, Rohit" # # This patch addresses the longstanding problem wherein Oracle needs # CAP_IPC_LOCK to allocate SHM_HUGETLB shm memory, but people don't want to run # Oracle as root, and capabilties are busted. # # Various ideas with rlimits didn't work out, mainly because these objects live # beyond the lifetime of the user processes which establish them. # # What we do is to create root-writeable /proc/sys/vm/hugetlb_shm_group which # specifies a single group ID. Users who belong to that group may allocate # hugepages for SHM_HUGETLB shm segments. # # So the sysadmin will greate a new group, say `hugepageusers', will add the # oracle user to that group and will write that group's ID into # /proc/sys/vm/hugetlb_shm_group. # # kernel/sysctl.c # 2004/05/10 04:25:53-07:00 akpm@osdl.org +8 -0 # Add sysctl to define a hugetlb-capable group # # include/linux/sysctl.h # 2004/05/10 04:25:53-07:00 akpm@osdl.org +1 -0 # Add sysctl to define a hugetlb-capable group # # include/linux/hugetlb.h # 2004/05/10 04:25:53-07:00 akpm@osdl.org +1 -0 # Add sysctl to define a hugetlb-capable group # # fs/hugetlbfs/inode.c # 2004/05/10 04:25:53-07:00 akpm@osdl.org +9 -1 # Add sysctl to define a hugetlb-capable group # # Documentation/vm/hugetlbpage.txt # 2004/05/10 04:25:53-07:00 akpm@osdl.org +6 -3 # Add sysctl to define a hugetlb-capable group # # Documentation/filesystems/proc.txt # 2004/05/10 04:25:53-07:00 akpm@osdl.org +8 -7 # Add sysctl to define a hugetlb-capable group # # ChangeSet # 2004/05/10 14:08:49-07:00 akpm@osdl.org # [PATCH] hugepage: fix add_to_page_cache() error handling # # From: David Gibson # # add_to_page_cache() locks the given page if and only if it suceeds. The # hugepage code (every arch), however, does an unlock_page() after # add_to_page_cache() before checking the return code, which could trip the # BUG() in unlock_page() if add_to_page_cache() failed. # # In practice we've never hit this bug, because the only ways # add_to_page_cache() can fail are when we fail to allocate a radix tree node # (very rare), or when there is already a page at that offset in the radix # tree, which never happens during prefault, obviously. We should probably # fix it anyway, though. # # The analagous bug in some of the patches floating about to # demand-allocation of hugepages is more of a problem, because multiple # processes can race to instantiate a particular page in the radix tree - # that's been hit at least once (which is how I found this). # # arch/sparc64/mm/hugetlbpage.c # 2004/05/10 04:25:53-07:00 akpm@osdl.org +3 -2 # hugepage: fix add_to_page_cache() error handling # # arch/sh/mm/hugetlbpage.c # 2004/05/10 04:25:53-07:00 akpm@osdl.org +3 -2 # hugepage: fix add_to_page_cache() error handling # # arch/ppc64/mm/hugetlbpage.c # 2004/05/10 04:25:53-07:00 akpm@osdl.org +3 -2 # hugepage: fix add_to_page_cache() error handling # # arch/ia64/mm/hugetlbpage.c # 2004/05/10 04:25:53-07:00 akpm@osdl.org +3 -2 # hugepage: fix add_to_page_cache() error handling # # arch/i386/mm/hugetlbpage.c # 2004/05/10 04:25:53-07:00 akpm@osdl.org +3 -2 # hugepage: fix add_to_page_cache() error handling # # ChangeSet # 2004/05/10 14:08:38-07:00 akpm@osdl.org # [PATCH] fix wrong var used in hotplug/shpchp_ctrl.c. # # From: "Luiz Fernando N. Capitulino" # # Zhenmin's checker tool detected this: # # 9. /drivers/pci/hotplug/shpchp_ctrl.c, Line 1575: # err("%s: Failed to disable slot, error code(%d)\n", __FUNCTION__, rc); # # Maybe change to: # err("%s: Failed to disable slot, error code(%d)\n", __FUNCTION__, # retval); # # I think it is right because at line 1564, the slot is turned off, and in # this line (1575) is checked the status to see if we got an error; if so, # the error number is shown. This number is in 'retval', not in 'rc' ('rc' # does have the return of configure_new_device()). # # drivers/pci/hotplug/shpchp_ctrl.c # 2004/05/10 04:25:53-07:00 akpm@osdl.org +1 -1 # fix wrong var used in hotplug/shpchp_ctrl.c. # # ChangeSet # 2004/05/10 14:08:27-07:00 akpm@osdl.org # [PATCH] Lindent arch/i386/kernel/cpuid.c # # From: Hanna Linder # # Per Greg's request this is a patch of having run Lindent on cpuid.c. The # tabs were not the right number of spaces before. I have verified it still # compiles and boots with this "change". # # arch/i386/kernel/cpuid.c # 2004/05/10 04:25:53-07:00 akpm@osdl.org +86 -86 # Lindent arch/i386/kernel/cpuid.c # # ChangeSet # 2004/05/10 14:08:17-07:00 akpm@osdl.org # [PATCH] pcmcia/tcic.c warning fix. # # From: "Luiz Fernando N. Capitulino" # # drivers/pcmcia/tcic.c:63: warning: `version' defined but not used # # drivers/pcmcia/tcic.c # 2004/05/10 04:25:52-07:00 akpm@osdl.org +1 -1 # pcmcia/tcic.c warning fix. # # ChangeSet # 2004/05/10 14:08:06-07:00 akpm@osdl.org # [PATCH] as-iosched barrier fix # # From: Jens Axboe # # AS does not correctly account requests inserted with INSERT_FRONT or # INSERT_BACK, barriers for example. In other elevators, requeued requests also # go through the insert path, but AS has its own requeue handler which means the # code has never been tested. # # Also, make inserting a barrier with INSERT_SORT imply INSERT_BACK, which is # the logical behaviour. Previously such insertions weren't rigorously defined. # # drivers/block/elevator.c # 2004/05/10 04:25:52-07:00 akpm@osdl.org +7 -0 # as-iosched barrier fix # # drivers/block/as-iosched.c # 2004/05/10 04:25:52-07:00 akpm@osdl.org +20 -4 # as-iosched barrier fix # # ChangeSet # 2004/05/10 14:07:55-07:00 akpm@osdl.org # [PATCH] Fix race on tty close # # From: Benjamin Herrenschmidt # # ldisc close can race with the flush_to_ldisc workqueue. # # This patch fixes it by killing the workqueue first. # # drivers/char/tty_io.c # 2004/05/10 04:25:52-07:00 akpm@osdl.org +12 -12 # Fix race on tty close # # ChangeSet # 2004/05/10 14:07:45-07:00 akpm@osdl.org # [PATCH] SElinux interface for reporting size of printk buffer # # From: Olaf Dabrunz # # Add the necessary hooks so that a SELinux-enabled kernel will allow the new # "report the size of the printk buffer" query to work. # # security/selinux/hooks.c # 2004/05/10 04:25:52-07:00 akpm@osdl.org +1 -0 # SElinux interface for reporting size of printk buffer # # security/dummy.c # 2004/05/10 04:25:52-07:00 akpm@osdl.org +1 -1 # SElinux interface for reporting size of printk buffer # # security/commoncap.c # 2004/05/10 04:25:52-07:00 akpm@osdl.org +1 -1 # SElinux interface for reporting size of printk buffer # # ChangeSet # 2004/05/10 14:07:34-07:00 akpm@osdl.org # [PATCH] blk: cache queue_congestion_on/off_threshold values # # From: "Chen, Kenneth W" # # It's kind of redundant that queue_congestion_on/off_threshold gets # calculated on every I/O and they produce the same number over and over # again unless q->nr_requests gets changed (which is probably a very rare # event). We can cache those values in the request_queue structure. # # include/linux/blkdev.h # 2004/05/10 04:25:51-07:00 akpm@osdl.org +2 -0 # blk: cache queue_congestion_on/off_threshold values # # drivers/block/ll_rw_blk.c # 2004/05/10 04:25:51-07:00 akpm@osdl.org +16 -13 # blk: cache queue_congestion_on/off_threshold values # # ChangeSet # 2004/05/10 14:07:23-07:00 akpm@osdl.org # [PATCH] swsusp documentation updates # # From: Pavel Machek # # Documentation/power/swsusp.txt # 2004/05/10 04:25:51-07:00 akpm@osdl.org +56 -5 # swsusp documentation updates # # ChangeSet # 2004/05/10 14:07:13-07:00 akpm@osdl.org # [PATCH] simplify mqueue_inode_info->messages allocation # # From: Chris Wright # # Currently, if a user creates an mqueue and passes an mq_attr, the # info->messages will be created twice (and the extra one is properly freed). # This patch simply delays the allocation so that it only ever happens once. # The relevant mq_attr data is passed to lower levels via the dentry->d_fsdata # fs private data. This also helps isolate the areas we'd need to touch to do # rlimits on mqueues. # # ipc/mqueue.c # 2004/05/10 04:25:51-07:00 akpm@osdl.org +14 -25 # simplify mqueue_inode_info->messages allocation # # ChangeSet # 2004/05/10 14:07:02-07:00 akpm@osdl.org # [PATCH] bfs filesystem read past the end of dir # # From: Jakub Jermar # # I found out that BFS filesystem will eventually try to read and interpret # garbage past the end of directory in bfs_add_entry(). If the garbage # (interpreted as i-node number) is not set to zero (does it have to be?) # bfs_add_entry() will consider it a regular directory entry. # # This causes weird things like this: # # touch a # # rm a # # ls # # touch b # # ls # a # # My patch detects an attempt to read past the end of directory and explicitly # clears the garbage that represents i-node number. Thus the correct behaviour # is achieved. # # (was unable to contact Tigran) # # fs/bfs/dir.c # 2004/05/10 04:25:51-07:00 akpm@osdl.org +6 -1 # bfs filesystem read past the end of dir # # ChangeSet # 2004/05/10 14:06:52-07:00 akpm@osdl.org # [PATCH] update Documentation/md.txt # # From: (Dick Streefland) # # The following patch documents the currently undocumented raid= kernel # parameter. # # Documentation/md.txt # 2004/05/10 04:25:51-07:00 akpm@osdl.org +21 -2 # update Documentation/md.txt # # ChangeSet # 2004/05/10 14:06:42-07:00 akpm@osdl.org # [PATCH] es7000 subarch update for generic arch # # From: "Protasevich, Natalie" # # This is ES7000 sub architecture update. It makes ES7000 a part of the # generic architecture, so the single compiled kernel will be able to choose # a correct set of parameters, routines ("genapic"), and a boot path. It # uses criteria provided by the subarch for platform identification. In case # of ES7000, it is a unique product/vendor string in the ACPI/MP OEM table, # and server control registers. The patch is confined to only es7000 subarch # and generic subarch. It was tested on ES7000 as well as generic Intel 8x # Xeon system. Andi Kleen has reviewed the changes. # # arch/i386/mach-generic/es7000.c # 2004/05/10 14:06:36-07:00 akpm@osdl.org +28 -0 # # include/asm-i386/mach-generic/mach_apic.h # 2004/05/10 04:25:50-07:00 akpm@osdl.org +3 -2 # es7000 subarch update for generic arch # # include/asm-i386/mach-es7000/mach_mpparse.h # 2004/05/10 04:25:50-07:00 akpm@osdl.org +7 -5 # es7000 subarch update for generic arch # # include/asm-i386/mach-es7000/mach_ipi.h # 2004/05/10 04:25:50-07:00 akpm@osdl.org +1 -1 # es7000 subarch update for generic arch # # include/asm-i386/genapic.h # 2004/05/10 04:25:50-07:00 akpm@osdl.org +4 -1 # es7000 subarch update for generic arch # # arch/i386/mach-generic/probe.c # 2004/05/10 04:25:50-07:00 akpm@osdl.org +2 -0 # es7000 subarch update for generic arch # # arch/i386/mach-generic/es7000.c # 2004/05/10 14:06:36-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/i386/mach-generic/es7000.c # # arch/i386/mach-generic/Makefile # 2004/05/10 04:25:50-07:00 akpm@osdl.org +1 -12 # es7000 subarch update for generic arch # # arch/i386/mach-es7000/es7000plat.c # 2004/05/10 04:25:50-07:00 akpm@osdl.org +14 -14 # es7000 subarch update for generic arch # # arch/i386/mach-es7000/es7000.h # 2004/05/10 04:25:50-07:00 akpm@osdl.org +1 -1 # es7000 subarch update for generic arch # # arch/i386/mach-es7000/Makefile # 2004/05/10 04:25:50-07:00 akpm@osdl.org +2 -1 # es7000 subarch update for generic arch # # arch/i386/Makefile # 2004/05/10 04:25:50-07:00 akpm@osdl.org +2 -1 # es7000 subarch update for generic arch # # arch/i386/Kconfig # 2004/05/10 04:25:50-07:00 akpm@osdl.org +2 -2 # es7000 subarch update for generic arch # # BitKeeper/deleted/.del-topology.c~2d79ed1a63b27690 # 2004/05/10 14:06:36-07:00 akpm@osdl.org +0 -0 # Delete: arch/i386/mach-es7000/topology.c # # BitKeeper/deleted/.del-setup.c~1b687d49b2d0b042 # 2004/05/10 14:06:36-07:00 akpm@osdl.org +0 -0 # Delete: arch/i386/mach-es7000/setup.c # # ChangeSet # 2004/05/10 14:05:51-07:00 akpm@osdl.org # [PATCH] CLOCK_TICK_RATE: use CLOCK_TICK_RATE # # From: Thorsten Kranzkowski # # use CLOCK_TICK_RATE where 1193180 was used in general timing calculations. # (optional) # # sound/oss/pas2_pcm.c # 2004/05/10 04:25:50-07:00 akpm@osdl.org +5 -4 # CLOCK_TICK_RATE: use CLOCK_TICK_RATE # # drivers/input/joystick/analog.c # 2004/05/10 04:25:50-07:00 akpm@osdl.org +1 -1 # CLOCK_TICK_RATE: use CLOCK_TICK_RATE # # ChangeSet # 2004/05/10 14:05:40-07:00 akpm@osdl.org # [PATCH] CLOCK_TICK_RATE: use PIT_TICK_RATE in *spkr.c # # From: Thorsten Kranzkowski # # drivers/input/misc/pcspkr.c # 2004/05/10 04:25:50-07:00 akpm@osdl.org +2 -1 # CLOCK_TICK_RATE: use PIT_TICK_RATE in *spkr.c # # drivers/input/misc/Kconfig # 2004/05/10 04:25:50-07:00 akpm@osdl.org +1 -1 # CLOCK_TICK_RATE: use PIT_TICK_RATE in *spkr.c # # drivers/input/misc/98spkr.c # 2004/05/10 04:25:50-07:00 akpm@osdl.org +2 -1 # CLOCK_TICK_RATE: use PIT_TICK_RATE in *spkr.c # # arch/x86_64/kernel/time.c # 2004/05/10 04:25:50-07:00 akpm@osdl.org +4 -3 # CLOCK_TICK_RATE: use PIT_TICK_RATE in *spkr.c # # ChangeSet # 2004/05/10 14:05:29-07:00 akpm@osdl.org # [PATCH] CLOCK_TICK_RATE: introduce asm-*/8253pit.h, #define PIT_TICK_RATE constant. # # From: Thorsten Kranzkowski # # The calculation of the counter values in drivers/input/misc/pcspkr.c is # incorrectly based on CLOCK_TICK_RATE. This goes unnoticed in i386 because # there the system clock is driven by the same Programmable Interval Timer chip # as the speaker. But this doesn't hold true on other archs, e.g. Alpha. # # To solve this problem I made these patches: # # 1/3: introduce asm-*/8253pit.h, #define PIT_TICK_RATE constant. # It seems this is not always the same value. # 2/3: use PIT_TICK_RATE in *spkr.c # 3/3: use CLOCK_TICK_RATE where 1193180 was used in general timing # calculations. (optional) # # There are still some places where the magic number is used instead of the # #define (vt_ioctl.c, gameport.c) but I left them as-is. I got some responses # from arch maintainers to specifically not touch their respective architectures # so changing these places would mean breakage for them. # # Tested on Alpha and i386, ack'ed by Ralf Baechle for MIPS. # # # This patch: # # introduce asm-*/8253pit.h, #define PIT_TICK_RATE constant. # # include/asm-x86_64/8253pit.h # 2004/05/10 04:25:49-07:00 akpm@osdl.org +10 -0 # CLOCK_TICK_RATE: introduce asm-*/8253pit.h, #define PIT_TICK_RATE constant. # # include/asm-mips/8253pit.h # 2004/05/10 04:25:49-07:00 akpm@osdl.org +10 -0 # CLOCK_TICK_RATE: introduce asm-*/8253pit.h, #define PIT_TICK_RATE constant. # # include/asm-i386/8253pit.h # 2004/05/10 04:25:49-07:00 akpm@osdl.org +12 -0 # CLOCK_TICK_RATE: introduce asm-*/8253pit.h, #define PIT_TICK_RATE constant. # # include/asm-x86_64/timex.h # 2004/05/10 04:25:49-07:00 akpm@osdl.org +2 -1 # CLOCK_TICK_RATE: introduce asm-*/8253pit.h, #define PIT_TICK_RATE constant. # # include/asm-x86_64/8253pit.h # 2004/05/10 04:25:49-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-x86_64/8253pit.h # # include/asm-mips/8253pit.h # 2004/05/10 04:25:49-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-mips/8253pit.h # # include/asm-i386/8253pit.h # 2004/05/10 04:25:49-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-i386/8253pit.h # # include/asm-alpha/8253pit.h # 2004/05/10 04:25:49-07:00 akpm@osdl.org +10 -0 # CLOCK_TICK_RATE: introduce asm-*/8253pit.h, #define PIT_TICK_RATE constant. # # arch/alpha/kernel/time.c # 2004/05/10 04:25:49-07:00 akpm@osdl.org +4 -4 # CLOCK_TICK_RATE: introduce asm-*/8253pit.h, #define PIT_TICK_RATE constant. # # include/asm-alpha/8253pit.h # 2004/05/10 04:25:49-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-alpha/8253pit.h # # ChangeSet # 2004/05/10 14:05:18-07:00 akpm@osdl.org # [PATCH] readahead: keep file->f_ra sane # # When two threads are simultaneously pread()ing from the same fd (which is a # legitimate thing to do), the readahead code thinks that a huge amount of # seeking is happening and shrinks the window, damaging performance a lot. # # I don't see a sane way to avoid this within the readahead code, so take a # private copy of the readahead state and restore it prior to returning from the # read. # # mm/filemap.c # 2004/05/10 04:25:49-07:00 akpm@osdl.org +6 -3 # readahead: keep file->f_ra sane # # ChangeSet # 2004/05/10 14:05:07-07:00 akpm@osdl.org # [PATCH] jiffies-to-clockt fix # # From: john stultz # # This patch polishes up Tim Schmielau's (tim@physik3.uni-rostock.de) fix for # jiffies_to_clock_t() and jiffies_64_to_clock_t(). The issues observed was # w/ /proc output not matching up to wall time due to accumulated error # caused by HZ not being exactly 1000 on i386 systems. The solution is to # correct that error by using the more accurate TICK_NSEC in our calculation. # # Additionally, this patch corrects 3 warnings in the TCP layer uncovered by # this change. # # net/ipv6/tcp_ipv6.c # 2004/05/10 04:25:49-07:00 akpm@osdl.org +2 -2 # jiffies-to-clockt fix # # net/ipv4/tcp_ipv4.c # 2004/05/10 04:25:49-07:00 akpm@osdl.org +2 -2 # jiffies-to-clockt fix # # include/linux/times.h # 2004/05/10 04:25:49-07:00 akpm@osdl.org +12 -6 # jiffies-to-clockt fix # # ChangeSet # 2004/05/10 14:04:56-07:00 akpm@osdl.org # [PATCH] cyclades cleanups # # From: Marcelo Tosatti # # - cleanups for cyclades Kconfig entry (Adrian Bunk/me) # - janitors project: remove dead function (Don Koch) # # From: aris@cathedrallabs.org (Aristeu Sergio Rozanski Filho) # # Use the standard min/max macros # # drivers/char/cyclades.c # 2004/05/10 04:25:49-07:00 akpm@osdl.org +9 -23 # cyclades cleanups # # drivers/char/Kconfig # 2004/05/10 04:25:49-07:00 akpm@osdl.org +3 -5 # cyclades cleanups # # ChangeSet # 2004/05/10 14:04:46-07:00 akpm@osdl.org # [PATCH] fix ramdisk size assembler warning # # From: Jorn Engel # # AS arch/i386/boot/setup.o # /usr/src/linux-2.6.5/arch/i386/boot/setup.S: Assembler messages: # /usr/src/linux-2.6.5/arch/i386/boot/setup.S:159: Warning: value 0x37ffffff truncated to 0x37ffffff # # The warning is correct, the calculated value for ramdisk_max would be # 0xb7ffffff instead of 0x37ffffff. Truncating 0xb7ffffff to 0x37ffffff # is desired behaviour, so we should do it explicitly. # # arch/i386/boot/setup.S # 2004/05/10 04:25:48-07:00 akpm@osdl.org +2 -1 # fix ramdisk size assembler warning # # ChangeSet # 2004/05/10 14:04:36-07:00 akpm@osdl.org # [PATCH] ppc64: use generic ipc syscall translation # # From: David Gibson # # Currently ppc64 has its own code to convert 32-bit ipc() syscalls to 64-bit, # rather than using the common translation code from ipc/compat.c. This patch, # tweaked slightly from an earlier version of Anton Blanchard's fixes that, # replacing the ppc64 code with calls to the common code. # # I've run the LSB IPC tests, and as many of the LTP IPC tests as I could figure # out how to run easily, and it seems to pass them all. # # include/asm-ppc64/ppc32.h # 2004/05/10 04:25:48-07:00 akpm@osdl.org +0 -5 # ppc64: use generic ipc syscall translation # # include/asm-ppc64/compat.h # 2004/05/10 04:25:48-07:00 akpm@osdl.org +63 -0 # ppc64: use generic ipc syscall translation # # arch/ppc64/kernel/sys_ppc32.c # 2004/05/10 04:25:48-07:00 akpm@osdl.org +46 -603 # ppc64: use generic ipc syscall translation # # arch/ppc64/Kconfig # 2004/05/10 04:25:48-07:00 akpm@osdl.org +4 -0 # ppc64: use generic ipc syscall translation # # ChangeSet # 2004/05/10 14:04:25-07:00 akpm@osdl.org # [PATCH] gcc-3.4.0 fixes for 2.6.6-rc3 x86_64 kernel # # From: Mikael Pettersson # # Here are some patches to fix compilation warnings from # gcc-3.4.0 in the 2.6.6-rc3 x86_64 kernel. # # - puts() type conflict in boot/compressed/misc.c: # rename to putstr(), just like i386 did # - cast-as-lvalue in ia32_copy_siginfo_from_user(): # use temporary # - code before declaration in io_apic.c: # move decl up # - code before declaration in ioremap.c: # move existing #ifndef up # - cast-as-lvalue (tons of them) from UP version of per_cpu(): # merged asm-generic's version # # include/asm-x86_64/percpu.h # 2004/05/10 04:25:48-07:00 akpm@osdl.org +1 -1 # gcc-3.4.0 fixes for 2.6.6-rc3 x86_64 kernel # # arch/x86_64/mm/ioremap.c # 2004/05/10 04:25:48-07:00 akpm@osdl.org +2 -2 # gcc-3.4.0 fixes for 2.6.6-rc3 x86_64 kernel # # arch/x86_64/kernel/io_apic.c # 2004/05/10 04:25:48-07:00 akpm@osdl.org +3 -2 # gcc-3.4.0 fixes for 2.6.6-rc3 x86_64 kernel # # arch/x86_64/ia32/ia32_signal.c # 2004/05/10 04:25:48-07:00 akpm@osdl.org +3 -1 # gcc-3.4.0 fixes for 2.6.6-rc3 x86_64 kernel # # arch/x86_64/boot/compressed/misc.c # 2004/05/10 04:25:48-07:00 akpm@osdl.org +7 -7 # gcc-3.4.0 fixes for 2.6.6-rc3 x86_64 kernel # # ChangeSet # 2004/05/10 14:04:14-07:00 akpm@osdl.org # [PATCH] fixup 68360 module refcounting # # From: Christoph Hellwig # # drivers/serial/68360serial.c # 2004/05/10 04:25:48-07:00 akpm@osdl.org +1 -5 # fixup 68360 module refcounting # # ChangeSet # 2004/05/10 14:04:03-07:00 akpm@osdl.org # [PATCH] Warn when smp_call_function() is called with interrupts disabled # # From: Keith Owens # # Almost every architecture has a comment above smp_call_function() # # * You must not call this function with disabled interrupts or from a # * hardware interrupt handler or from a bottom half handler. # # I have not seen any problems with calling smp_call_function() from a bottom # half handler, but calling it with interrupts disabled can definitely # deadlock. This bug is hard to reproduce and even harder to debug. # # CPU A CPU B # Disable interrupts # smp_call_function() # Take call_lock # Send IPIs # Wait for all cpus to acknowledge IPI # CPU A has not responded, spin waiting # for cpu A to respond, holding call_lock # smp_call_function() # Spin waiting for call_lock # Deadlock Deadlock # # Change all smp_call_function() to WARN_ON(irqs_disabled()). It should be # BUG_ON() but some buggy code like SCSI sg will break with BUG_ON, so just # warn for now. Change it to BUG_ON after the buggy code has been fixed. # # arch/x86_64/kernel/smp.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +3 -0 # Warn when smp_call_function() is called with interrupts disabled # # arch/um/kernel/smp.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +3 -0 # Warn when smp_call_function() is called with interrupts disabled # # arch/sparc64/kernel/smp.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +3 -0 # Warn when smp_call_function() is called with interrupts disabled # # arch/sh/kernel/smp.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +3 -0 # Warn when smp_call_function() is called with interrupts disabled # # arch/s390/kernel/smp.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +3 -0 # Warn when smp_call_function() is called with interrupts disabled # # arch/ppc64/kernel/smp.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +3 -0 # Warn when smp_call_function() is called with interrupts disabled # # arch/ppc/kernel/smp.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +2 -0 # Warn when smp_call_function() is called with interrupts disabled # # arch/parisc/kernel/smp.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +3 -0 # Warn when smp_call_function() is called with interrupts disabled # # arch/mips/kernel/smp.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +3 -0 # Warn when smp_call_function() is called with interrupts disabled # # arch/ia64/kernel/smp.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +3 -0 # Warn when smp_call_function() is called with interrupts disabled # # arch/i386/mach-voyager/voyager_smp.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +3 -0 # Warn when smp_call_function() is called with interrupts disabled # # arch/i386/kernel/smp.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +3 -0 # Warn when smp_call_function() is called with interrupts disabled # # arch/alpha/kernel/smp.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +3 -0 # Warn when smp_call_function() is called with interrupts disabled # # ChangeSet # 2004/05/10 14:03:52-07:00 akpm@osdl.org # [PATCH] worker_thread race fix # # Fix a waitqueue-handling race in worker_thread(). # # kernel/workqueue.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +4 -3 # worker_thread race fix # # ChangeSet # 2004/05/10 14:03:41-07:00 akpm@osdl.org # [PATCH] pcmcia/i82365.c warning fix # # From: "Luiz Fernando N. Capitulino" # # drivers/pcmcia/i82365.c: At top level: # drivers/pcmcia/i82365.c:71: warning: `version' defined but not used # # drivers/pcmcia/i82365.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +1 -1 # pcmcia/i82365.c warning fix # # ChangeSet # 2004/05/10 14:03:31-07:00 akpm@osdl.org # [PATCH] throttle P4 thermal warnings # # From: Zwane Mwaikambo # # In really bad conditions this can keep printing for a while, throttle the # output somewhat. Also change the "CPU%d" formatting to better match the # other boot output. # # arch/i386/kernel/cpu/mcheck/p4.c # 2004/05/10 04:25:47-07:00 akpm@osdl.org +20 -10 # throttle P4 thermal warnings # # ChangeSet # 2004/05/10 14:03:20-07:00 akpm@osdl.org # [PATCH] fix deadlock in create_workqueue() # # Fix bug identified by Srivatsa Vaddagiri : # # There's a deadlock in __create_workqueue when CONFIG_HOTPLUG_CPU is set. This # can happen when create_workqueue_thread fails to create a worker thread. In # that case, we call destroy_workqueue with cpu hotplug lock held. # destroy_workqueue however also attempts to take the same lock. # # kernel/workqueue.c # 2004/05/10 04:25:46-07:00 akpm@osdl.org +1 -1 # fix deadlock in create_workqueue() # # ChangeSet # 2004/05/10 14:03:10-07:00 akpm@osdl.org # [PATCH] remove blk_queue_bounce() printks # # From: Matt Domsch # # Jens Axboe wrote: # It should just be deleted. As you note, it is a debug message. I # originally added it so we would have some clues as to dma capability for # bug reports. There never was any, the check can go :) # # drivers/block/ll_rw_blk.c # 2004/05/10 04:25:46-07:00 akpm@osdl.org +0 -14 # remove blk_queue_bounce() printks # # ChangeSet # 2004/05/10 14:02:59-07:00 akpm@osdl.org # [PATCH] Fix MTD suspend/resume # # From: Russell King # # This patch carries forward the following bug fix from MTD CVS, which causes a # lot of noise after a suspend/resume cycle on ARM devices. # # revision 1.127 # date: 2003/07/02 20:29:38; author: acurtis; state: Exp; lines: +2 -1 # Added FL_STATUS to the FL_READY case in put_chip(). (Eliminate noise) # # drivers/mtd/chips/cfi_cmdset_0001.c # 2004/05/10 04:25:46-07:00 akpm@osdl.org +1 -0 # Fix MTD suspend/resume # # ChangeSet # 2004/05/10 14:02:49-07:00 akpm@osdl.org # [PATCH] dentry and inode cache hash algorithm performance changes. # # From: "Jose R. Santos" # # It alleviates some issues seen with Linux when accessing millions of files on # machines with large amounts of RAM (+32GB). Both algorithms are base on some # studies that Dominique Heger was doing on hash table efficiencies in Linux. # The dentry hash table has been tested in small systems with one internal IDE # hard disk as well as in large SMP with many fiberchanel disks. Dominique # claims that in all the testing done, they did not see one case were this has # function provided worst performance and that in most test they were seeing # better performance. # # The inode hash function was done by me base on Dominique's original work and # has only been stress tested with SpecSFS. It provided a 3% improvement over # the default algorithm in the SpecSFS results and speed ups in the response # time of almost all filesystem operations the benchmark stress. With the # better distribution is as also possible to reduce the number of inode buckets # for 32 million to 16 million and still get a slightly better results. # # Anton was nice enough to provide some graphs that show the distribution # before and after the patch at http://samba.org/~anton/linux/sfs/1/ # # For the dentry hash function, some of my other coorkers had put this hash # function through various testing and have concluded that the hash function was # equal or better than the default hash function. These runs were done with a # (hopefully to be Open Source soon) benchmark called FFSB which can simulate # various io patters across many filesystems and variable file sizes. # # SpecSFS fileset is basically a lot of small file which varies depending on the # size of the run. For a not so big SMP system the number of file is in the +20 # Million files range. Of those 20 million files only 10% are access randomly # by the client. The purpose of this is that the benchmark tries to stress not # only the NFS layer but, VM and Filesystems layers as well. The filesets are # also hundreds of gigabytes in size in order to promote disk head movement by # guaranteeing cache misses in memory. SFS 27% of the workload are lookups # __d_lookup has showing high in my profiles. # # For the inode hash the problem that I see is that when running a benchmark # with this huge fileset we end up trying to free a lot of inode entries during # the run while trying to put new entries in cache. We end up calling # ifind_fast() which calls find_inodes_fast() held under inode_lock. In order # to avoid holding the inode_lock we needed to avoid having long chains in that # hash function. # # When I took a look at the original hash function, I found it to be a bit to # simple for any workload. My solution (which I took advantage of Dominique's # work) was to create a hash that function that could generate completely # different hashes depending on the hashval and the superblock in order to have # the hash scale as we added more filesystems to the machine. # # Both of these problems can be somewhat tuned out by increasing the number of # buckets of both d and i cache but it got to a point were I had 256MB of inode # and 128MB in dentry hash buckets on a not so large SMP. With the hash changes # I have been able to reduce the number of buckets to 128MB for inode cache and # to 32MB for dentry cache and still get better performance. # # If it help my case... I haven't been running this benchmark for long, so I # haven't been able to find a way to cheat. I need to come up with generic # solutions until I can find a cheat for the benchmark. :) # # # SDET results: # # Steve Pratt seem to have a SDET setup already and he did me the favor of # running SDET with a reduce dentry entry hash table size. I belive that # his table suggest that less than 3% change is acceptable variability, but # overall he got a 5% better number using the new hash algorith. # # A) x4408way1.sdet.2.6.5100000-8p.04-05-05_12.08.44 vs # B) x4408way1.sdet.2.6.5+hash-100000-8p.04-05-05_11.48.02 # # # Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) # Inode-cache hash table entries: 1048576 (order: 10, 4194304 bytes) # # Results:Throughput # # tolerance = 0.00 + 3.00% of A # A B # Threads Ops/sec Ops/sec %diff diff tolerance # ----------- ------------ ------------ -------- ------------ ------------ # 1 4341.9300 4401.9500 1.38 60.02 130.26 # 2 8242.2000 8165.1200 -0.94 -77.08 247.27 # 4 15274.4900 15257.1000 -0.11 -17.39 458.23 # 8 21326.9200 21320.7000 -0.03 -6.22 639.81 # 16 23056.2100 24282.8000 5.32 1226.59 691.69 * # 32 23397.2500 24684.6100 5.50 1287.36 701.92 * # 64 23372.7600 23632.6500 1.11 259.89 701.18 # 128 17009.3900 16651.9600 -2.10 -357.43 510.28 # ========================================================================= # # fs/inode.c # 2004/05/10 04:25:46-07:00 akpm@osdl.org +5 -4 # dentry and inode cache hash algorithm performance changes. # # fs/dcache.c # 2004/05/10 04:25:46-07:00 akpm@osdl.org +5 -3 # dentry and inode cache hash algorithm performance changes. # # ChangeSet # 2004/05/10 14:02:38-07:00 akpm@osdl.org # [PATCH] cmpci OSS driver update # # From: C.L. Tien # # Current version from cmedia. # # sound/oss/cmpci.c # 2004/05/10 04:25:45-07:00 akpm@osdl.org +1319 -1174 # cmpci OSS driver update # # sound/oss/Makefile # 2004/05/10 04:25:45-07:00 akpm@osdl.org +6 -0 # cmpci OSS driver update # # sound/oss/Kconfig # 2004/05/10 04:25:45-07:00 akpm@osdl.org +12 -83 # cmpci OSS driver update # # ChangeSet # 2004/05/10 14:02:27-07:00 akpm@osdl.org # [PATCH] EDD: follow sysfs convention, MODULE_VERSION, remove dead SCSI symlink # # From: Matt Domsch # # Clean up the edd.c driver. # # * use kobject_set_name() instead of snprintf() per GregKH's recommendation. # * Add MODULE_VERSION() # * s/driverfs/sysfs/ in Kconfig # * Remove report URL message, as there have been too many BIOSs reported, # virtually none of which are EDD-capable. This may return if/when I # develop a better reporting method and database to capture/store the # data from users. # * Remove the unused code for creating a symlink to the scsi_device. # This never worked right, and I'm going to show the relationship from # a userspace tool which uses libsysfs instead. # # drivers/firmware/edd.c # 2004/05/10 04:25:45-07:00 akpm@osdl.org +9 -118 # EDD: follow sysfs convention, MODULE_VERSION, remove dead SCSI symlink # # drivers/firmware/Kconfig # 2004/05/10 04:25:45-07:00 akpm@osdl.org +1 -1 # EDD: follow sysfs convention, MODULE_VERSION, remove dead SCSI symlink # # ChangeSet # 2004/05/10 14:02:17-07:00 akpm@osdl.org # [PATCH] blk_start_queue() should use kblockd # # kblockd is the thread which runs unplug functions, not keventd. # # drivers/block/ll_rw_blk.c # 2004/05/10 04:25:45-07:00 akpm@osdl.org +1 -1 # blk_start_queue() should use kblockd # # ChangeSet # 2004/05/10 14:02:06-07:00 akpm@osdl.org # [PATCH] Only Print Taint Message Once # # From: Rusty Russell # # Only print the tainted message the first time. Its purpose is to warn # users that we can't support them, not to fill their logs. # # kernel/module.c # 2004/05/10 04:25:45-07:00 akpm@osdl.org +1 -1 # Only Print Taint Message Once # # ChangeSet # 2004/05/10 14:01:55-07:00 akpm@osdl.org # [PATCH] Un-inline spinlocks on ppc64 # # From: Paul Mackerras # # The patch below moves the ppc64 spinlocks and rwlocks out of line and into # arch/ppc64/lib/locks.c, and implements _raw_spin_lock_flags for ppc64. # # Part of the motivation for moving the spinlocks and rwlocks out of line was # that I needed to add code to the slow paths to yield the processor to the # hypervisor on systems with shared processors. On these systems, a cpu as # seen by the kernel is a virtual processor that is not necessarily running # full-time on a real physical cpu. If we are spinning on a lock which is # held by another virtual processor which is not running at the moment, we # are just wasting time. In such a situation it is better to do a hypervisor # call to ask it to give the rest of our time slice to the lock holder so # that forward progress can be made. # # The one problem with out-of-line spinlock routines is that lock contention # will show up in profiles in the spin_lock etc. routines rather than in the # callers, as it does with inline spinlocks. I have added a CONFIG_SPINLINE # config option for people that want to do profiling. In the longer term, Anton # is talking about teaching the profiling code to attribute samples in the spin # lock routines to the routine's caller. # # This patch reduces the kernel by about 80kB on my G5. With inline # spinlocks selected, the kernel gets about 4kB bigger than without the # patch, because _raw_spin_lock_flags is slightly bigger than _raw_spin_lock. # # This patch depends on the patch from Keith Owens to add # _raw_spin_lock_flags. # # include/asm-ppc64/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +98 -37 # Un-inline spinlocks on ppc64 # # include/asm-ppc64/paca.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +7 -3 # Un-inline spinlocks on ppc64 # # arch/ppc64/lib/locks.c # 2004/05/10 04:25:44-07:00 akpm@osdl.org +285 -0 # Un-inline spinlocks on ppc64 # # arch/ppc64/lib/Makefile # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -1 # Un-inline spinlocks on ppc64 # # arch/ppc64/kernel/pacaData.c # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -0 # Un-inline spinlocks on ppc64 # # arch/ppc64/lib/locks.c # 2004/05/10 04:25:44-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc64/lib/locks.c # # ChangeSet # 2004/05/10 14:01:44-07:00 akpm@osdl.org # [PATCH] Allow architectures to reenable interrupts on contended spinlocks # # From: Keith Owens # # As requested by Linus, update all architectures to add the common # infrastructure. Tested on ia64 and i386. # # Enable interrupts while waiting for a disabled spinlock, but only if # interrupts were enabled before issuing spin_lock_irqsave(). # # This patch consists of three sections :- # # * An architecture independent change to call _raw_spin_lock_flags() # instead of _raw_spin_lock() when the flags are available. # # * An ia64 specific change to implement _raw_spin_lock_flags() and to # define _raw_spin_lock(lock) as _raw_spin_lock_flags(lock, 0) for the # ASM_SUPPORTED case. # # * Patches for all other architectures and for ia64 with !ASM_SUPPORTED # to map _raw_spin_lock_flags(lock, flags) to _raw_spin_lock(lock). # Architecture maintainers can define _raw_spin_lock_flags() to do # something useful if they want to enable interrupts while waiting for # a disabled spinlock. # # include/linux/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +3 -1 # Allow architectures to reenable interrupts on contended spinlocks # # include/asm-x86_64/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -0 # Allow architectures to reenable interrupts on contended spinlocks # # include/asm-sparc64/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +2 -0 # Allow architectures to reenable interrupts on contended spinlocks # # include/asm-sparc/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +2 -0 # Allow architectures to reenable interrupts on contended spinlocks # # include/asm-sh/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -0 # Allow architectures to reenable interrupts on contended spinlocks # # include/asm-s390/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -0 # Allow architectures to reenable interrupts on contended spinlocks # # include/asm-ppc64/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -0 # Allow architectures to reenable interrupts on contended spinlocks # # include/asm-ppc/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -0 # Allow architectures to reenable interrupts on contended spinlocks # # include/asm-parisc/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -0 # Allow architectures to reenable interrupts on contended spinlocks # # include/asm-mips/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -0 # Allow architectures to reenable interrupts on contended spinlocks # # include/asm-ia64/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +15 -9 # Allow architectures to reenable interrupts on contended spinlocks # # include/asm-i386/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -0 # Allow architectures to reenable interrupts on contended spinlocks # # include/asm-arm/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -0 # Allow architectures to reenable interrupts on contended spinlocks # # include/asm-alpha/spinlock.h # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -0 # Allow architectures to reenable interrupts on contended spinlocks # # arch/ia64/kernel/head.S # 2004/05/10 04:25:44-07:00 akpm@osdl.org +17 -5 # Allow architectures to reenable interrupts on contended spinlocks # # ChangeSet # 2004/05/10 14:01:33-07:00 akpm@osdl.org # [PATCH] Kill some 'No description found...' warnings. (kernel-api.sgml) # # From: Alexey Dobriyan # # Fix various kernel-doc parameters. # # net/core/dev.c # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -1 # Kill some 'No description found...' warnings. (kernel-api.sgml) # # lib/string.c # 2004/05/10 04:25:44-07:00 akpm@osdl.org +2 -2 # Kill some 'No description found...' warnings. (kernel-api.sgml) # # drivers/block/ll_rw_blk.c # 2004/05/10 04:25:44-07:00 akpm@osdl.org +1 -1 # Kill some 'No description found...' warnings. (kernel-api.sgml) # # ChangeSet # 2004/05/10 14:01:22-07:00 akpm@osdl.org # [PATCH] Kill a warning while making pdfdocs. # # From: Alexey Dobriyan # # DOCPROC Documentation/DocBook/parportbook.sgml # Warning(drivers/parport/share.c:188): No description found for parameter 'drv' # (kernel-doc parameter name is incorrect.) # # drivers/parport/share.c # 2004/05/10 04:25:43-07:00 akpm@osdl.org +1 -1 # Kill a warning while making pdfdocs. # # ChangeSet # 2004/05/10 14:01:13-07:00 akpm@osdl.org # [PATCH] com90xx error message patch: check_region() gone # # From: Greg Aumann # # This patch updates two error messages to reflect changes in the code. # # drivers/net/arcnet/com90xx.c # 2004/05/10 04:25:43-07:00 akpm@osdl.org +2 -2 # com90xx error message patch: check_region() gone # # ChangeSet # 2004/05/10 14:01:03-07:00 akpm@osdl.org # [PATCH] Improve laptop mode's block_dump output # # From: "Theodore Ts'o" # # This patch versus improves the output produced by "echo 1 > # /proc/sys/vm/block_dump", in the following ways: # # 1) The messages are printed with KERN_DEBUG, so that even if sysklogd is # running, if configured appropriately, it will not need to write to log # files. # # 2) The inode which is dirtied by a process is now identified more # precisely by inode number and filesystem ID, and by a dcache name if # present. # # 3) In the generic filesystem sget function, the superblock id (s_id) is # filled in with the filesystem type by default. Filesystems which are # block-device based will override s_id, but this allows pseudo # filesystems such as tmpfs, procfs, etc. to be identified in (2). # # fs/super.c # 2004/05/10 04:25:43-07:00 akpm@osdl.org +1 -0 # Improve laptop mode's block_dump output # # fs/fs-writeback.c # 2004/05/10 04:25:43-07:00 akpm@osdl.org +17 -2 # Improve laptop mode's block_dump output # # drivers/block/ll_rw_blk.c # 2004/05/10 04:25:43-07:00 akpm@osdl.org +1 -1 # Improve laptop mode's block_dump output # # ChangeSet # 2004/05/10 14:00:52-07:00 akpm@osdl.org # [PATCH] find_user locking and leak fix # # find_user() is being called from set/get_priority(), but it doesn't take the # needed lock, and those callers were forgetting to drop the refcount which # find_user() took. # # kernel/user.c # 2004/05/10 04:25:43-07:00 akpm@osdl.org +12 -1 # find_user locking and leak fix # # kernel/sys.c # 2004/05/10 04:25:43-07:00 akpm@osdl.org +4 -0 # find_user locking and leak fix # # ChangeSet # 2004/05/10 14:00:41-07:00 akpm@osdl.org # [PATCH] mptfusion depends on scsi # # From: Olaf Hering # # drivers/message/fusion/Kconfig # 2004/05/10 04:25:43-07:00 akpm@osdl.org +1 -1 # mptfusion depends on scsi # # ChangeSet # 2004/05/10 14:00:30-07:00 akpm@osdl.org # [PATCH] reiserfs: add device info to diagnostic messages # # From: Chris Mason # # From: Jeff Mahoney # # Add device info to the various reiserfs warnings and panics so you can tell # which filesystem triggers the message. Loosely based on code from Oleg # Drokin. # # include/linux/reiserfs_fs.h # 2004/05/10 04:25:42-07:00 akpm@osdl.org +8 -9 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/xattr.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +15 -15 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/tail_conversion.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +2 -2 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/super.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +87 -87 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/stree.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +46 -43 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/procfs.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +4 -3 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/prints.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +37 -13 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/objectid.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +2 -2 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/namei.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +18 -12 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/lbalance.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +2 -2 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/journal.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +104 -94 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/item_ops.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +18 -19 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/inode.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +37 -28 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/fix_node.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +17 -10 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/file.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +9 -5 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/do_balan.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +13 -9 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/dir.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +2 -2 # reiserfs: add device info to diagnostic messages # # fs/reiserfs/bitmap.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +25 -24 # reiserfs: add device info to diagnostic messages # # ChangeSet # 2004/05/10 14:00:19-07:00 akpm@osdl.org # [PATCH] reiserfs: xattr permission fix # # From: Chris Mason # # From: jeffm@suse.com # # reiserfs permission bug fix for xattrs # # fs/reiserfs/xattr.c # 2004/05/10 04:25:42-07:00 akpm@osdl.org +2 -1 # reiserfs: xattr permission fix # # ChangeSet # 2004/05/10 14:00:09-07:00 akpm@osdl.org # [PATCH] reiserfs: quota support # # From: Chris Mason # # ReiserFS support for quotas. Originally from Jan Kara # # include/linux/reiserfs_fs.h # 2004/05/10 04:25:41-07:00 akpm@osdl.org +18 -6 # reiserfs: quota support # # fs/reiserfs/tail_conversion.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +6 -4 # reiserfs: quota support # # fs/reiserfs/super.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +7 -4 # reiserfs: quota support # # fs/reiserfs/stree.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +146 -33 # reiserfs: quota support # # fs/reiserfs/namei.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +9 -5 # reiserfs: quota support # # fs/reiserfs/inode.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +110 -42 # reiserfs: quota support # # fs/reiserfs/fix_node.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +4 -3 # reiserfs: quota support # # fs/reiserfs/file.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +6 -6 # reiserfs: quota support # # fs/reiserfs/do_balan.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +1 -5 # reiserfs: quota support # # fs/reiserfs/bitmap.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +57 -13 # reiserfs: quota support # # ChangeSet # 2004/05/10 13:59:58-07:00 akpm@osdl.org # [PATCH] reiserfs: xattr locking fixes # # From: Chris Mason # # From: jeffm@suse.com # # reiserfs xattr locking fixes # # include/linux/reiserfs_xattr.h # 2004/05/10 04:25:41-07:00 akpm@osdl.org +23 -0 # reiserfs: xattr locking fixes # # include/linux/reiserfs_fs_i.h # 2004/05/10 04:25:41-07:00 akpm@osdl.org +2 -0 # reiserfs: xattr locking fixes # # fs/reiserfs/xattr_acl.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +13 -2 # reiserfs: xattr locking fixes # # fs/reiserfs/xattr.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +26 -6 # reiserfs: xattr locking fixes # # fs/reiserfs/inode.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +2 -0 # reiserfs: xattr locking fixes # # ChangeSet # 2004/05/10 13:59:47-07:00 akpm@osdl.org # [PATCH] reiserfs: selinux support # # From: Chris Mason # # From: jeffm@suse.com # # reiserfs support for selinux # # fs/reiserfs/xattr_security.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +69 -0 # reiserfs: selinux support # # include/linux/reiserfs_xattr.h # 2004/05/10 04:25:41-07:00 akpm@osdl.org +3 -0 # reiserfs: selinux support # # fs/reiserfs/xattr_security.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/fs/reiserfs/xattr_security.c # # fs/reiserfs/xattr.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +3 -0 # reiserfs: selinux support # # fs/reiserfs/Makefile # 2004/05/10 04:25:41-07:00 akpm@osdl.org +4 -0 # reiserfs: selinux support # # fs/Kconfig # 2004/05/10 04:25:41-07:00 akpm@osdl.org +12 -0 # reiserfs: selinux support # # ChangeSet # 2004/05/10 13:59:36-07:00 akpm@osdl.org # [PATCH] reiserfs: support trusted xattrs # # From: Chris Mason # # From: jeffm@suse.com # # reiserfs support for trusted xattrs # # fs/reiserfs/xattr_trusted.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +81 -0 # reiserfs: support trusted xattrs # # include/linux/reiserfs_xattr.h # 2004/05/10 04:25:41-07:00 akpm@osdl.org +1 -0 # reiserfs: support trusted xattrs # # fs/reiserfs/xattr_trusted.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/fs/reiserfs/xattr_trusted.c # # fs/reiserfs/xattr.c # 2004/05/10 04:25:41-07:00 akpm@osdl.org +1 -0 # reiserfs: support trusted xattrs # # fs/reiserfs/Makefile # 2004/05/10 04:25:41-07:00 akpm@osdl.org +1 -1 # reiserfs: support trusted xattrs # # ChangeSet # 2004/05/10 13:59:25-07:00 akpm@osdl.org # [PATCH] reiserfs: ACL support # # From: Chris Mason # # From: jeffm@suse.com # # reiserfs acl support # # include/linux/reiserfs_acl.h # 2004/05/10 04:25:40-07:00 akpm@osdl.org +91 -0 # reiserfs: ACL support # # include/linux/reiserfs_xattr.h # 2004/05/10 04:25:40-07:00 akpm@osdl.org +6 -1 # reiserfs: ACL support # # include/linux/reiserfs_fs_sb.h # 2004/05/10 04:25:40-07:00 akpm@osdl.org +3 -1 # reiserfs: ACL support # # include/linux/reiserfs_fs_i.h # 2004/05/10 04:25:40-07:00 akpm@osdl.org +3 -0 # reiserfs: ACL support # # include/linux/reiserfs_acl.h # 2004/05/10 04:25:40-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/linux/reiserfs_acl.h # # fs/reiserfs/xattr_user.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +7 -3 # reiserfs: ACL support # # fs/reiserfs/xattr_acl.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +552 -0 # reiserfs: ACL support # # fs/reiserfs/xattr.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +74 -8 # reiserfs: ACL support # # fs/reiserfs/super.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +25 -0 # reiserfs: ACL support # # fs/reiserfs/namei.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +33 -0 # reiserfs: ACL support # # fs/reiserfs/inode.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +23 -0 # reiserfs: ACL support # # fs/reiserfs/file.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +1 -0 # reiserfs: ACL support # # fs/reiserfs/Makefile # 2004/05/10 04:25:40-07:00 akpm@osdl.org +4 -0 # reiserfs: ACL support # # fs/Kconfig # 2004/05/10 04:25:40-07:00 akpm@osdl.org +14 -2 # reiserfs: ACL support # # fs/reiserfs/xattr_acl.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/fs/reiserfs/xattr_acl.c # # ChangeSet # 2004/05/10 13:59:13-07:00 akpm@osdl.org # [PATCH] reiserfs: xattr support # # From: Chris Mason # # From: jeffm@suse.com # # reiserfs support for xattrs # # include/linux/reiserfs_xattr.h # 2004/05/10 04:25:40-07:00 akpm@osdl.org +100 -0 # reiserfs: xattr support # # fs/reiserfs/xattr_user.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +95 -0 # reiserfs: xattr support # # fs/reiserfs/xattr.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +1348 -0 # reiserfs: xattr support # # include/linux/reiserfs_xattr.h # 2004/05/10 04:25:40-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/linux/reiserfs_xattr.h # # include/linux/reiserfs_fs_sb.h # 2004/05/10 04:25:40-07:00 akpm@osdl.org +10 -1 # reiserfs: xattr support # # include/linux/reiserfs_fs_i.h # 2004/05/10 04:25:40-07:00 akpm@osdl.org +2 -1 # reiserfs: xattr support # # include/linux/reiserfs_fs.h # 2004/05/10 04:25:40-07:00 akpm@osdl.org +7 -1 # reiserfs: xattr support # # fs/reiserfs/xattr_user.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/fs/reiserfs/xattr_user.c # # fs/reiserfs/xattr.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/fs/reiserfs/xattr.c # # fs/reiserfs/super.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +43 -3 # reiserfs: xattr support # # fs/reiserfs/namei.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +53 -1 # reiserfs: xattr support # # fs/reiserfs/inode.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +64 -1 # reiserfs: xattr support # # fs/reiserfs/file.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +6 -45 # reiserfs: xattr support # # fs/reiserfs/dir.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +11 -0 # reiserfs: xattr support # # fs/reiserfs/Makefile # 2004/05/10 04:25:40-07:00 akpm@osdl.org +4 -0 # reiserfs: xattr support # # fs/Kconfig # 2004/05/10 04:25:40-07:00 akpm@osdl.org +10 -0 # reiserfs: xattr support # # ChangeSet # 2004/05/10 13:59:01-07:00 akpm@osdl.org # [PATCH] reiserfs: acl device node initialization # # From: Chris Mason # # From: jeffm@suse.com # # properly init device inodes in the acl code # # fs/reiserfs/namei.c # 2004/05/10 04:25:40-07:00 akpm@osdl.org +1 -1 # reiserfs: acl device node initialization # # ChangeSet # 2004/05/10 13:58:51-07:00 akpm@osdl.org # [PATCH] Reiserfs commit default fix # # From: Bart Samwel # # This patch from Micha Feigin fixes some bugs in the earlier reiserfs # commit default patch. The changelog: # # * If you remounted without any commit=NNN option, it would assume commit=0 # and restore the defaults. This patch makes it leave the current state alone # if you don't pass commit=NNN. # # * Added range check for cast from unsigned long to unsigned int. # # fs/reiserfs/super.c # 2004/05/10 04:25:39-07:00 akpm@osdl.org +7 -7 # Reiserfs commit default fix # # ChangeSet # 2004/05/10 13:58:41-07:00 akpm@osdl.org # [PATCH] partitioning cleanup: use DOS_EXTENDED_PARTITION # # From: FabF # # Use the pre-existing enum rather than magic numbers. # # fs/partitions/msdos.c # 2004/05/10 04:25:39-07:00 akpm@osdl.org +3 -3 # partitioning cleanup: use DOS_EXTENDED_PARTITION # # ChangeSet # 2004/05/10 13:58:30-07:00 akpm@osdl.org # [PATCH] fix 3c59x.c to allow 3c905c 100bT-FD # # From: Burton Windle # # Fix the 3c905C 10/100 transceiver initialisation woes. # # drivers/net/3c59x.c # 2004/05/10 04:25:39-07:00 akpm@osdl.org +1 -1 # fix 3c59x.c to allow 3c905c 100bT-FD # # ChangeSet # 2004/05/10 13:58:20-07:00 akpm@osdl.org # [PATCH] shrink_slab: improved handling of GFP_NOFS allocations # # Currently, shrink_slab() will decide that it needs to scan a certain number of # dentries, will call shrink_dcache_memory() requesting that this be done, and # shrink_dcache_memory() will simply bale out without doing anything because the # caller did not have __GFP_FS. # # This has the potential to disrupt our lovely pagecache-vs-slab balancing act. # So change things so that shrinker callouts can return -1, indicating that they # baled out. This way, shrink_slab can remember that this slab was owed a # certain number of scannings and these will be correctly performed next time a # __GFP_FS caller comes by. # # mm/vmscan.c # 2004/05/10 04:25:38-07:00 akpm@osdl.org +15 -12 # shrink_slab: improved handling of GFP_NOFS allocations # # fs/dcache.c # 2004/05/10 04:25:38-07:00 akpm@osdl.org +13 -14 # shrink_slab: improved handling of GFP_NOFS allocations # # ChangeSet # 2004/05/10 13:58:09-07:00 akpm@osdl.org # [PATCH] New version of early CPU detect # # From: Andi Kleen # # We still need some kind of early CPU detection, e.g. for the AMD768 # workaround and for the slab allocator to size its slabs correctly for the # cache line. Also some other code already had private early CPU routines. # # This patch takes a new approach compared to the previous patch which caused # Andrew so much grief. It only fills in a few selected fields in # boot_cpu_data (only the data needed to identify the CPU type and the cache # alignment). In particular the feature masks are not filled in, and the # other fields are also not touched to prevent unwanted side effects. # # Also convert the ppro workaround to use standard cpu data now. # # I'm not sure if slab still has the necessary support to use the cache line # size early; previously Manfred showed some serious memory saving with this # for kernels that are compiled for a bigger cache line size than the CPU (is # often the case on distribution kernels). This code could be reenable now # with this patch. # # include/asm-i386/processor.h # 2004/05/10 04:25:38-07:00 akpm@osdl.org +1 -0 # New version of early CPU detect # # arch/i386/kernel/cpu/intel.c # 2004/05/10 04:25:38-07:00 akpm@osdl.org +14 -33 # New version of early CPU detect # # arch/i386/kernel/cpu/cpu.h # 2004/05/10 04:25:38-07:00 akpm@osdl.org +3 -0 # New version of early CPU detect # # arch/i386/kernel/cpu/common.c # 2004/05/10 04:25:38-07:00 akpm@osdl.org +44 -5 # New version of early CPU detect # # ChangeSet # 2004/05/10 13:57:58-07:00 akpm@osdl.org # [PATCH] remove some unused variables in s2io # # From: Anton Blanchard # # Found a few warnings when compiling with NAPI off. # # drivers/net/s2io.c # 2004/05/10 04:25:38-07:00 akpm@osdl.org +0 -3 # remove some unused variables in s2io # # ChangeSet # 2004/05/10 13:57:48-07:00 akpm@osdl.org # [PATCH] Remove bootsect_helper on x86_64 and pc98 # # From: Coywolf Qi Hunt # # Since "Direct booting from floppy is no longer supported", this patch is # remove the bootsect_helper code from x86_64 and PC-9800. # # arch/x86_64/boot/setup.S # 2004/05/10 04:25:38-07:00 akpm@osdl.org +1 -82 # Remove bootsect_helper on x86_64 and pc98 # # arch/i386/boot98/setup.S # 2004/05/10 04:25:38-07:00 akpm@osdl.org +1 -86 # Remove bootsect_helper on x86_64 and pc98 # # ChangeSet # 2004/05/10 13:57:37-07:00 akpm@osdl.org # [PATCH] Remove bootsect_helper and a comment fix # # From: Coywolf Qi Hunt # # Since "Direct booting from floppy is no longer supported", this patch is to # remove the bootsect_helper code. And also a comment fix. # # The other two platforms x86_64 and PC-9800 should also be cleaned up too. # # arch/i386/boot/setup.S # 2004/05/10 04:25:38-07:00 akpm@osdl.org +2 -84 # Remove bootsect_helper and a comment fix # # ChangeSet # 2004/05/10 13:57:26-07:00 akpm@osdl.org # [PATCH] ppc32: ppc8xx build fixes # # From: "Prof. BJ" # # - m8xx_setup warning and mfmsr error fix # - ppc8xx_pic include error fix # - tqm8xxl.c typeing (syntax) error fix # - commproc.c include error and prototype warning fix # # (acked by Matt Porter) # # drivers/mtd/maps/tqm8xxl.c # 2004/05/10 04:25:37-07:00 akpm@osdl.org +1 -1 # ppc32: ppc8xx build fixes # # arch/ppc/syslib/ppc8xx_pic.h # 2004/05/10 04:25:37-07:00 akpm@osdl.org +1 -0 # ppc32: ppc8xx build fixes # # arch/ppc/syslib/m8xx_setup.c # 2004/05/10 04:25:37-07:00 akpm@osdl.org +3 -4 # ppc32: ppc8xx build fixes # # arch/ppc/8xx_io/commproc.c # 2004/05/10 04:25:37-07:00 akpm@osdl.org +2 -2 # ppc32: ppc8xx build fixes # # ChangeSet # 2004/05/10 13:57:16-07:00 akpm@osdl.org # [PATCH] es7000 subarch update # # From: "Protasevich, Natalie" # # The patch fixes a problem with ES7000 Server Management mechanism that uses # platform register mip_port. It was not initialized, so the mechanism was not # functional. # # The patch also fixes the APIC destination for hierarchical and flat cluster # models used in ES7000. The destination ID's reflect policies for Cascade # based systems which use logical delivery and lowest priority mechanism, and # for xAPIC based models that use physical delivery and fixed APIC destinations. # # The patch also turns on NO_IOAPIC_CHECK (1) to avoid error messages and # attempts to re-write the ID, because on ES7000 all ID's are hard coded in the # BIOS and cannot be altered. # # include/asm-i386/mach-es7000/mach_apic.h # 2004/05/10 04:25:37-07:00 akpm@osdl.org +9 -1 # es7000 subarch update # # arch/i386/mach-es7000/es7000.h # 2004/05/10 04:25:37-07:00 akpm@osdl.org +1 -0 # es7000 subarch update # # arch/i386/mach-es7000/es7000.c # 2004/05/10 04:25:37-07:00 akpm@osdl.org +1 -0 # es7000 subarch update # # ChangeSet # 2004/05/10 13:57:05-07:00 akpm@osdl.org # [PATCH] Consolidate sys32_nfsservctl # # From: Arnd Bergmann # # sys32_nfsservctl is the largest remaining syscall emulation handler that can # be consolidated. mips and ia64 currently don't use this at all, parisc has a # simpler implementation than the one used by s390, sparc ppc and that the new # compat_sys_nfsservctl is based on. # # The user access checks in the code are inconsistant at least, which should be # fixed here. # # Compile tested only due to lack of proper test setup. # # fs/compat.c # 2004/05/10 04:25:37-07:00 akpm@osdl.org +239 -0 # Consolidate sys32_nfsservctl # # arch/x86_64/ia32/sys_ia32.c # 2004/05/10 04:25:37-07:00 akpm@osdl.org +0 -227 # Consolidate sys32_nfsservctl # # arch/x86_64/ia32/ia32entry.S # 2004/05/10 04:25:37-07:00 akpm@osdl.org +1 -1 # Consolidate sys32_nfsservctl # # arch/sparc64/kernel/systbls.S # 2004/05/10 04:25:37-07:00 akpm@osdl.org +1 -1 # Consolidate sys32_nfsservctl # # arch/sparc64/kernel/sys_sparc32.c # 2004/05/10 04:25:37-07:00 akpm@osdl.org +0 -226 # Consolidate sys32_nfsservctl # # arch/s390/kernel/syscalls.S # 2004/05/10 04:25:37-07:00 akpm@osdl.org +1 -1 # Consolidate sys32_nfsservctl # # arch/s390/kernel/compat_wrapper.S # 2004/05/10 04:25:37-07:00 akpm@osdl.org +5 -5 # Consolidate sys32_nfsservctl # # arch/s390/kernel/compat_linux.c # 2004/05/10 04:25:37-07:00 akpm@osdl.org +0 -220 # Consolidate sys32_nfsservctl # # arch/ppc64/kernel/sys_ppc32.c # 2004/05/10 04:25:37-07:00 akpm@osdl.org +0 -239 # Consolidate sys32_nfsservctl # # arch/ppc64/kernel/misc.S # 2004/05/10 04:25:37-07:00 akpm@osdl.org +1 -1 # Consolidate sys32_nfsservctl # # arch/parisc/kernel/syscall_table.S # 2004/05/10 04:25:37-07:00 akpm@osdl.org +1 -1 # Consolidate sys32_nfsservctl # # arch/parisc/kernel/sys_parisc32.c # 2004/05/10 04:25:37-07:00 akpm@osdl.org +0 -88 # Consolidate sys32_nfsservctl # # arch/ia64/ia32/sys_ia32.c # 2004/05/10 04:25:37-07:00 akpm@osdl.org +0 -170 # Consolidate sys32_nfsservctl # # ChangeSet # 2004/05/10 13:56:53-07:00 akpm@osdl.org # [PATCH] Consolidate sys32_select # # From: Arnd Bergmann # # sys32_select has seven mostly but not exactly identical versions, so # consolidate them as compat_sys_select. Based on the ppc64 implementation, # which most closely resembles sys_select. One bug that was not caught by LTP # has been fixed since the first version of this patch. # # tested x86_64, ia64 and s390. # # include/linux/compat.h # 2004/05/10 04:25:36-07:00 akpm@osdl.org +4 -0 # Consolidate sys32_select # # fs/compat.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +188 -0 # Consolidate sys32_select # # arch/x86_64/ia32/sys_ia32.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +2 -103 # Consolidate sys32_select # # arch/x86_64/ia32/ia32entry.S # 2004/05/10 04:25:36-07:00 akpm@osdl.org +1 -1 # Consolidate sys32_select # # arch/sparc64/kernel/systbls.S # 2004/05/10 04:25:36-07:00 akpm@osdl.org +2 -2 # Consolidate sys32_select # # arch/sparc64/kernel/sys_sunos32.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +3 -6 # Consolidate sys32_select # # arch/sparc64/kernel/sys_sparc32.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +0 -152 # Consolidate sys32_select # # arch/s390/kernel/syscalls.S # 2004/05/10 04:25:36-07:00 akpm@osdl.org +1 -1 # Consolidate sys32_select # # arch/s390/kernel/compat_wrapper.S # 2004/05/10 04:25:36-07:00 akpm@osdl.org +7 -7 # Consolidate sys32_select # # arch/s390/kernel/compat_linux.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +0 -154 # Consolidate sys32_select # # arch/ppc64/kernel/sys_ppc32.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +4 -159 # Consolidate sys32_select # # arch/parisc/kernel/syscall_table.S # 2004/05/10 04:25:36-07:00 akpm@osdl.org +1 -1 # Consolidate sys32_select # # arch/parisc/kernel/sys_parisc32.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +0 -121 # Consolidate sys32_select # # arch/mips/kernel/scall64-o32.S # 2004/05/10 04:25:36-07:00 akpm@osdl.org +1 -1 # Consolidate sys32_select # # arch/mips/kernel/scall64-n32.S # 2004/05/10 04:25:36-07:00 akpm@osdl.org +1 -1 # Consolidate sys32_select # # arch/mips/kernel/linux32.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +0 -161 # Consolidate sys32_select # # arch/ia64/ia32/sys_ia32.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +2 -106 # Consolidate sys32_select # # arch/ia64/ia32/ia32_entry.S # 2004/05/10 04:25:36-07:00 akpm@osdl.org +1 -1 # Consolidate sys32_select # # ChangeSet # 2004/05/10 13:56:42-07:00 akpm@osdl.org # [PATCH] Consolidate do_execve32 # # From: Arnd Bergmann # # The code for sys32_execve/do_execve32 in most of the seven versions was copied # from fs/exec.c but not kept up-to-date. The new compat_do_execve() function # is based on the mips code and has been resync'ed with do_execve(). IA64 # changes are from Arun Sharma. # # Tested on x86_64, ia64 and s390 # # include/linux/compat.h # 2004/05/10 04:25:36-07:00 akpm@osdl.org +3 -0 # Consolidate do_execve32 # # fs/compat.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +231 -0 # Consolidate do_execve32 # # arch/x86_64/ia32/sys_ia32.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +15 -86 # Consolidate do_execve32 # # arch/sparc64/kernel/sys_sparc32.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +3 -192 # Consolidate do_execve32 # # arch/s390/kernel/compat_linux.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +3 -184 # Consolidate do_execve32 # # arch/ppc64/kernel/sys_ppc32.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +1 -186 # Consolidate do_execve32 # # arch/parisc/kernel/sys_parisc32.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +2 -185 # Consolidate do_execve32 # # arch/mips/kernel/linux32.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +3 -225 # Consolidate do_execve32 # # arch/ia64/ia32/sys_ia32.c # 2004/05/10 04:25:36-07:00 akpm@osdl.org +14 -56 # Consolidate do_execve32 # # ChangeSet # 2004/05/10 13:56:32-07:00 akpm@osdl.org # [PATCH] Consolidate sys32_readv and sys32_writev # # From: Arnd Bergmann # # The seven implementations of this have gone out of sync and are mostly buggy. # The new compat_sys_* version is based on the ppc64 implementation, which most # closely resembles the code in sys_readv/sys_writev. # # Tested on x86_64, ia64 and s390. # # include/linux/compat.h # 2004/05/10 04:25:35-07:00 akpm@osdl.org +6 -0 # Consolidate sys32_readv and sys32_writev # # fs/compat.c # 2004/05/10 04:25:35-07:00 akpm@osdl.org +186 -0 # Consolidate sys32_readv and sys32_writev # # arch/x86_64/ia32/sys_ia32.c # 2004/05/10 04:25:35-07:00 akpm@osdl.org +0 -98 # Consolidate sys32_readv and sys32_writev # # arch/x86_64/ia32/ia32entry.S # 2004/05/10 04:25:35-07:00 akpm@osdl.org +2 -2 # Consolidate sys32_readv and sys32_writev # # arch/sparc64/kernel/systbls.S # 2004/05/10 04:25:35-07:00 akpm@osdl.org +1 -1 # Consolidate sys32_readv and sys32_writev # # arch/sparc64/kernel/sys_sunos32.c # 2004/05/10 04:25:35-07:00 akpm@osdl.org +2 -5 # Consolidate sys32_readv and sys32_writev # # arch/sparc64/kernel/sys_sparc32.c # 2004/05/10 04:25:35-07:00 akpm@osdl.org +0 -176 # Consolidate sys32_readv and sys32_writev # # arch/s390/kernel/syscalls.S # 2004/05/10 04:25:35-07:00 akpm@osdl.org +2 -2 # Consolidate sys32_readv and sys32_writev # # arch/s390/kernel/compat_wrapper.S # 2004/05/10 04:25:35-07:00 akpm@osdl.org +8 -8 # Consolidate sys32_readv and sys32_writev # # arch/s390/kernel/compat_linux.c # 2004/05/10 04:25:35-07:00 akpm@osdl.org +0 -138 # Consolidate sys32_readv and sys32_writev # # arch/ppc64/kernel/sys_ppc32.c # 2004/05/10 04:25:35-07:00 akpm@osdl.org +0 -172 # Consolidate sys32_readv and sys32_writev # # arch/ppc64/kernel/misc.S # 2004/05/10 04:25:35-07:00 akpm@osdl.org +2 -2 # Consolidate sys32_readv and sys32_writev # # arch/parisc/kernel/syscall_table.S # 2004/05/10 04:25:35-07:00 akpm@osdl.org +2 -2 # Consolidate sys32_readv and sys32_writev # # arch/parisc/kernel/sys_parisc32.c # 2004/05/10 04:25:35-07:00 akpm@osdl.org +0 -143 # Consolidate sys32_readv and sys32_writev # # arch/mips/kernel/scall64-o32.S # 2004/05/10 04:25:35-07:00 akpm@osdl.org +2 -2 # Consolidate sys32_readv and sys32_writev # # arch/mips/kernel/scall64-n32.S # 2004/05/10 04:25:35-07:00 akpm@osdl.org +2 -2 # Consolidate sys32_readv and sys32_writev # # arch/mips/kernel/linux32.c # 2004/05/10 04:25:35-07:00 akpm@osdl.org +0 -144 # Consolidate sys32_readv and sys32_writev # # arch/ia64/ia32/sys_ia32.c # 2004/05/10 04:25:35-07:00 akpm@osdl.org +0 -79 # Consolidate sys32_readv and sys32_writev # # arch/ia64/ia32/ia32_entry.S # 2004/05/10 04:25:35-07:00 akpm@osdl.org +2 -2 # Consolidate sys32_readv and sys32_writev # # ChangeSet # 2004/05/10 13:56:20-07:00 akpm@osdl.org # [PATCH] AS: increase batch expiry intervals # # From: Nick Piggin # # Without disturbing the read/write ratio, increase the bathc expiry # intervals. This wil have the effect of increasing latency a little, but # with improved throughput. # # drivers/block/as-iosched.c # 2004/05/10 04:25:35-07:00 akpm@osdl.org +2 -2 # AS: increase batch expiry intervals # # ChangeSet # 2004/05/10 13:56:10-07:00 akpm@osdl.org # [PATCH] Laptop Mode doc update # # From: # # Richard Atterer reported that mutt does not play well with noatime (it uses # access times to check whether new mail has arrived in a folder). This patch # warns about this in the doc, and adds a setting to the control script to # disable the noatime remount. # # Documentation/laptop-mode.txt # 2004/05/10 04:25:35-07:00 akpm@osdl.org +14 -2 # Laptop Mode doc update # # ChangeSet # 2004/05/10 13:55:59-07:00 akpm@osdl.org # [PATCH] cyclades MAINTAINERS update # # From: Marcelo Tosatti # # MAINTAINERS # 2004/05/10 04:25:35-07:00 akpm@osdl.org +2 -4 # cyclades MAINTAINERS update # # ChangeSet # 2004/05/10 13:55:49-07:00 akpm@osdl.org # [PATCH] selinux: reopen descriptors closed on exec to /dev/null # # From: Stephen Smalley # # This patch changes the SELinux module to try to reset any descriptors it # closes on exec (due to a lack of permission by the new domain to the inherited # open file) to refer to the null device. This counters the problem of SELinux # inducing program misbehavior, particularly due to having descriptors 0-2 # closed when the new domain is not allowed access to the caller's tty. This is # primarily to address the case where the caller is trusted with respect to the # new domain, as the untrusted caller case is already handled via AT_SECURE and # glibc secure mode. The code is partly based on the OpenWall LSM, which in # turn drew from the OpenWall kernel patch. Note that the code does not # guarantee that the descriptor is always re-opened to /dev/null; it merely # makes a reasonable effort to do so, but can fail under various conditions. # # security/selinux/include/initial_sid_to_string.h # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -0 # selinux: reopen descriptors closed on exec to /dev/null # # security/selinux/include/flask.h # 2004/05/10 04:25:34-07:00 akpm@osdl.org +2 -1 # selinux: reopen descriptors closed on exec to /dev/null # # security/selinux/hooks.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +82 -3 # selinux: reopen descriptors closed on exec to /dev/null # # ChangeSet # 2004/05/10 13:55:38-07:00 akpm@osdl.org # [PATCH] ext3 error handling fixes # # From: Andreas Dilger # # a) we don't call ext3_error() for an IO error in ext3_find_entry(), so we # won't do the normal ext3 error handling (mark SB in error, remount-ro # or panic if desired); # b) in empty_dir() we don't continue checking for non-empty blocks after a # content error (ext3_check_dir_entry() calls ext3_error() already); # c) we had decided not to mark the SB in error for holes in directories to # allow leway in the indexed-directory implementation, but this change # incorrectly also disabled marking the SB in error for real IO errors. # # fs/ext3/namei.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +22 -13 # ext3 error handling fixes # # ChangeSet # 2004/05/10 13:55:27-07:00 akpm@osdl.org # [PATCH] sched: in_sched_functions() cleanup # # From: Rusty Russell # # 1) Create an in_sched_functions() function in sched.c and make the # archs use it. (Two archs have wchan #if 0'd out: left them alone). # # 2) Move __sched from linux/init.h to linux/sched.h and add comment. # # 3) Rename __scheduling_functions_start_here/end_here to __sched_text_start/end. # # Thanks to wli and Sam Ravnborg for clue donation. # # kernel/sched.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +8 -7 # sched: in_sched_functions() cleanup # # include/linux/sched.h # 2004/05/10 04:25:34-07:00 akpm@osdl.org +4 -2 # sched: in_sched_functions() cleanup # # include/linux/init.h # 2004/05/10 04:25:34-07:00 akpm@osdl.org +0 -2 # sched: in_sched_functions() cleanup # # include/asm-generic/vmlinux.lds.h # 2004/05/10 04:25:34-07:00 akpm@osdl.org +2 -2 # sched: in_sched_functions() cleanup # # arch/x86_64/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -9 # sched: in_sched_functions() cleanup # # arch/v850/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +2 -2 # sched: in_sched_functions() cleanup # # arch/sparc64/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -2 # sched: in_sched_functions() cleanup # # arch/sparc/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -2 # sched: in_sched_functions() cleanup # # arch/sh/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -7 # sched: in_sched_functions() cleanup # # arch/s390/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -9 # sched: in_sched_functions() cleanup # # arch/ppc64/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -7 # sched: in_sched_functions() cleanup # # arch/ppc/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -7 # sched: in_sched_functions() cleanup # # arch/mips/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +2 -8 # sched: in_sched_functions() cleanup # # arch/m68knommu/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +2 -9 # sched: in_sched_functions() cleanup # # arch/m68k/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +2 -9 # sched: in_sched_functions() cleanup # # arch/ia64/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -8 # sched: in_sched_functions() cleanup # # arch/i386/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -8 # sched: in_sched_functions() cleanup # # arch/h8300/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -7 # sched: in_sched_functions() cleanup # # arch/cris/arch-v10/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +2 -2 # sched: in_sched_functions() cleanup # # arch/arm26/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -7 # sched: in_sched_functions() cleanup # # arch/arm/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -7 # sched: in_sched_functions() cleanup # # arch/alpha/kernel/process.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +1 -7 # sched: in_sched_functions() cleanup # # ChangeSet # 2004/05/10 13:55:16-07:00 akpm@osdl.org # [PATCH] Fix ext3 bogus ENOSPC # # With strange workloads which do a lot of quick truncation on small filesystems # it is possible to get into a situation where there are free blocks on the # disk, but they are not allocatable at this time due to their having been freed # up in the current JBD transaction. Applications get unexpected ENOSPC errors. # # We can fix that with this patch, originally by Andreas Dilger which forces a # single commit+retry when an ENOSPC is encountered. # # fs/ext3/inode.c # 2004/05/10 04:25:34-07:00 akpm@osdl.org +15 -2 # Fix ext3 bogus ENOSPC # # ChangeSet # 2004/05/10 13:55:06-07:00 akpm@osdl.org # [PATCH] reduce NMI watchdog call frequency with local APIC. # # From: Mikael Pettersson # # The real problem is that SMP with nmi_watchdog=2 initialises the lapic NMI # watchdog but doesn't check it and therefore doesn't reduce nmi_hz. This is # an SMP bug. # # The patch changes smpboot.c to do a check_nmi_watchdog() at the appropriate # place, which fixes the high NMI frequency problem w/o changing anything # else. I've verified that it solves the problem on my MP-capable UP box. # # arch/i386/kernel/smpboot.c # 2004/05/10 04:25:33-07:00 akpm@osdl.org +3 -0 # reduce NMI watchdog call frequency with local APIC. # # ChangeSet # 2004/05/10 13:54:55-07:00 akpm@osdl.org # [PATCH] Fix nmi_watchdog=2 and P4 HT # # From: Philippe Elie # # With nmi_watchdog=2 and a P4 ht box the nmi is occurring only on logical # processor 0, it's better to get it on both. # # With this patch, on x86 SMP and nmi_watchdog=2, nmi interupts occur at 1000 # hz (if the cpu is loaded) not at the intended 1 hz rate but that's a distinct # problem. # # arch/i386/kernel/nmi.c # 2004/05/10 04:25:33-07:00 akpm@osdl.org +12 -5 # Fix nmi_watchdog=2 and P4 HT # # ChangeSet # 2004/05/10 13:54:45-07:00 akpm@osdl.org # [PATCH] Fixes in 32 bit ioctl emulation code # # From: Raghavan , # me # # I am submitting a patch that fixes 2 race conditions in the 32 bit ioctl # emulation code.(fs/compat.c) Since the search is not locked; when a # ioctl_trans structure is deleted, corruption can occur. # # The following scenarios discuss the race conditions: # # 1) When the search is hapenning, if any ioctl_trans structure gets # deleted; then rather than searching the hash table, the code will start # searching the free list. # # while (t && t->cmd != cmd) # - # # fs/compat.c # 2004/05/10 04:25:33-07:00 akpm@osdl.org +69 -75 # Fixes in 32 bit ioctl emulation code # # ChangeSet # 2004/05/10 13:54:34-07:00 akpm@osdl.org # [PATCH] mips: sgiwd93 2.6 fixes and crapectomy # # From: Ralf Baechle # # Get to work under 2.6 sorting out the giant mess this has been. Further # cleanups would require a full crapectomy of wd33c93.c itself ... # # drivers/scsi/sgiwd93.h # 2004/05/10 04:25:33-07:00 akpm@osdl.org +1 -1 # mips: sgiwd93 2.6 fixes and crapectomy # # drivers/scsi/sgiwd93.c # 2004/05/10 04:25:33-07:00 akpm@osdl.org +214 -181 # mips: sgiwd93 2.6 fixes and crapectomy # # ChangeSet # 2004/05/10 13:54:24-07:00 akpm@osdl.org # [PATCH] mips: remove dz driver # # From: Ralf Baechle # # This driver has been obsoleted by drivers/serial/dz.c. # # drivers/char/Makefile # 2004/05/10 04:25:32-07:00 akpm@osdl.org +0 -1 # mips: remove dz driver # # BitKeeper/deleted/.del-dz.h~25236ecd58449050 # 2004/05/10 13:54:18-07:00 akpm@osdl.org +0 -0 # Delete: drivers/char/dz.h # # BitKeeper/deleted/.del-dz.c~828b4cc0c8f0a111 # 2004/05/10 13:54:18-07:00 akpm@osdl.org +0 -0 # Delete: drivers/char/dz.c # # ChangeSet # 2004/05/10 13:54:13-07:00 akpm@osdl.org # [PATCH] mips: 64-bit MIPS needs compat stuff # # From: Ralf Baechle # # sound/core/Kconfig # 2004/05/10 04:25:32-07:00 akpm@osdl.org +1 -1 # mips: 64-bit MIPS needs compat stuff # # ChangeSet # 2004/05/10 13:54:02-07:00 akpm@osdl.org # [PATCH] mips: add missing IP22 Zilog bit # # From: Ralf Baechle # # Add missing definition PORT_IP22ZILOG which is need by ip22zilog driver. # # include/linux/serial_core.h # 2004/05/10 04:25:32-07:00 akpm@osdl.org +3 -0 # mips: add missing IP22 Zilog bit # # ChangeSet # 2004/05/10 13:53:51-07:00 akpm@osdl.org # [PATCH] mips: GBE Video Driver # # From: Ralf Baechle # # This patch adds the GBE video driver for the video system in SGI IP32 # aka O2 and it's i386-based equivalent the Visual Workstation. # # This driver obsoletes sgivwfb.c; but I'd prefer to play safe and remove # it after some additional time, just in case. # # include/video/gbe.h # 2004/05/10 04:25:32-07:00 akpm@osdl.org +317 -0 # mips: GBE Video Driver # # drivers/video/gbefb.c # 2004/05/10 04:25:32-07:00 akpm@osdl.org +1200 -0 # mips: GBE Video Driver # # include/video/gbe.h # 2004/05/10 04:25:32-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/video/gbe.h # # drivers/video/gbefb.c # 2004/05/10 04:25:32-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/video/gbefb.c # # drivers/video/fbmem.c # 2004/05/10 04:25:32-07:00 akpm@osdl.org +5 -0 # mips: GBE Video Driver # # drivers/video/Makefile # 2004/05/10 04:25:32-07:00 akpm@osdl.org +1 -0 # mips: GBE Video Driver # # drivers/video/Kconfig # 2004/05/10 04:25:32-07:00 akpm@osdl.org +15 -0 # mips: GBE Video Driver # # ChangeSet # 2004/05/10 13:53:41-07:00 akpm@osdl.org # [PATCH] mips: remove VIDEO_TYPE_SNI_RM # # From: Ralf Baechle # # The RM200's onboard video really is a plain old boring Cyrix PCI card. # # include/linux/tty.h # 2004/05/10 04:25:31-07:00 akpm@osdl.org +0 -1 # mips: remove VIDEO_TYPE_SNI_RM # # ChangeSet # 2004/05/10 13:53:30-07:00 akpm@osdl.org # [PATCH] mips: newport driver fixes # # From: Ralf Baechle # # Make the driver for Newport aka XL work in 2.6. # # drivers/video/console/newport_con.c # 2004/05/10 04:25:31-07:00 akpm@osdl.org +54 -69 # mips: newport driver fixes # # drivers/video/console/Makefile # 2004/05/10 04:25:31-07:00 akpm@osdl.org +1 -1 # mips: newport driver fixes # # ChangeSet # 2004/05/10 13:53:19-07:00 akpm@osdl.org # [PATCH] mips: Simplify expression # # From: Ralf Baechle # # CONFIG_MIPS is always defined, for 32-bit and 64-bit. # # drivers/video/logo/logo.c # 2004/05/10 04:25:31-07:00 akpm@osdl.org +1 -1 # mips: Simplify expression # # ChangeSet # 2004/05/10 13:53:07-07:00 akpm@osdl.org # [PATCH] mips: fix 2.6 fb setup # # From: Ralf Baechle # # drivers/video/fbmem.c # 2004/05/10 04:25:31-07:00 akpm@osdl.org +1 -2 # mips: fix 2.6 fb setup # # ChangeSet # 2004/05/10 13:52:56-07:00 akpm@osdl.org # [PATCH] MIPS update # # From: Ralf Baechle # # - Kconfig cleanups: # - enable DMA_NONCOHERENT, DMA_COHERENT or DMA_IP27 via reverse dependencies # - untangle VRC4171 / VRC4173 selection # - R10000 support enables PREFETCH # - SEAD needs IRQ_CPU # - Update defconfig against latest Kconfig files. # - Fix computation of return address if syscall number was out of range # - Add power managment hooks in signal code. # - Don't try to handle signals when previous context was not in user mode. # - Fix serial interface setup for VR41xx systems. # - Build fixes after CLEAR_BITMAP changed name. # - Removes bogus comment from # - is dead. # - Start collecting common definitions for PMON firmware in # - Define ARCH_MIN_TASKALIGN to 8; we have 64-bit members even on 32-bit # kernels if we're running on MIPS II or better. # # include/asm-mips/vr41xx/vr41xx.h # 2004/05/10 04:25:30-07:00 akpm@osdl.org +13 -7 # MIPS update # # include/asm-mips/unistd.h # 2004/05/10 04:25:30-07:00 akpm@osdl.org +33 -6 # MIPS update # # include/asm-mips/thread_info.h # 2004/05/10 04:25:30-07:00 akpm@osdl.org +4 -2 # MIPS update # # include/asm-mips/ptrace.h # 2004/05/10 04:25:30-07:00 akpm@osdl.org +2 -0 # MIPS update # # include/asm-mips/processor.h # 2004/05/10 04:25:30-07:00 akpm@osdl.org +2 -0 # MIPS update # # include/asm-mips/pmon.h # 2004/05/10 04:25:30-07:00 akpm@osdl.org +22 -0 # MIPS update # # include/asm-mips/mach-db1x00/db1x00.h # 2004/05/10 04:25:30-07:00 akpm@osdl.org +22 -9 # MIPS update # # include/asm-mips/mach-au1x00/au1000.h # 2004/05/10 04:25:30-07:00 akpm@osdl.org +17 -2 # MIPS update # # include/asm-mips/hdreg.h # 2004/05/10 04:25:30-07:00 akpm@osdl.org +1 -1 # MIPS update # # include/asm-mips/checksum.h # 2004/05/10 04:25:30-07:00 akpm@osdl.org +0 -4 # MIPS update # # arch/mips/vr41xx/zao-capcella/setup.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +2 -1 # MIPS update # # arch/mips/vr41xx/victor-mpc30x/setup.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +2 -1 # MIPS update # # arch/mips/vr41xx/tanbac-tb0229/setup.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +4 -1 # MIPS update # # arch/mips/vr41xx/tanbac-tb0226/setup.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +4 -1 # MIPS update # # arch/mips/vr41xx/nec-eagle/setup.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +2 -1 # MIPS update # # arch/mips/vr41xx/ibm-workpad/setup.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +2 -1 # MIPS update # # arch/mips/vr41xx/common/serial.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +46 -39 # MIPS update # # arch/mips/vr41xx/common/icu.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +33 -29 # MIPS update # # arch/mips/vr41xx/casio-e55/setup.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +2 -1 # MIPS update # # arch/mips/sgi-ip27/ip27-hubio.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +3 -3 # MIPS update # # arch/mips/pci/ops-au1000.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +132 -51 # MIPS update # # arch/mips/pci/fixup-au1000.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +58 -8 # MIPS update # # arch/mips/momentum/ocelot_g/prom.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +1 -11 # MIPS update # # arch/mips/momentum/ocelot_c/prom.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +1 -11 # MIPS update # # arch/mips/momentum/jaguar_atx/prom.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +1 -11 # MIPS update # # arch/mips/kernel/signal_n32.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +1 -0 # MIPS update # # arch/mips/kernel/signal32.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +17 -3 # MIPS update # # arch/mips/kernel/signal.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +16 -3 # MIPS update # # arch/mips/kernel/scall64-o32.S # 2004/05/10 04:25:30-07:00 akpm@osdl.org +15 -3 # MIPS update # # arch/mips/kernel/scall64-n32.S # 2004/05/10 04:25:30-07:00 akpm@osdl.org +19 -3 # MIPS update # # arch/mips/kernel/scall64-64.S # 2004/05/10 04:25:30-07:00 akpm@osdl.org +18 -3 # MIPS update # # arch/mips/kernel/scall32-o32.S # 2004/05/10 04:25:30-07:00 akpm@osdl.org +16 -3 # MIPS update # # arch/mips/kernel/ptrace.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +10 -1 # MIPS update # # arch/mips/kernel/mips_ksyms.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +3 -0 # MIPS update # # arch/mips/kernel/irixsig.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +16 -3 # MIPS update # # arch/mips/kernel/irixelf.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +1 -1 # MIPS update # # arch/mips/kernel/entry.S # 2004/05/10 04:25:30-07:00 akpm@osdl.org +3 -1 # MIPS update # # arch/mips/gt64120/momenco_ocelot/prom.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +1 -11 # MIPS update # # arch/mips/defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +21 -26 # MIPS update # # arch/mips/configs/yosemite_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +19 -26 # MIPS update # # arch/mips/configs/xxs1500_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +26 -34 # MIPS update # # arch/mips/configs/workpad_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +25 -33 # MIPS update # # arch/mips/configs/tb0229_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +33 -40 # MIPS update # # arch/mips/configs/tb0226_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +25 -33 # MIPS update # # arch/mips/configs/sead_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +4 -5 # MIPS update # # arch/mips/configs/sb1250-swarm_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +29 -36 # MIPS update # # arch/mips/configs/rm200_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +62 -63 # MIPS update # # arch/mips/configs/pb1550_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +35 -43 # MIPS update # # arch/mips/configs/pb1500_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +35 -43 # MIPS update # # arch/mips/configs/pb1100_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +26 -34 # MIPS update # # arch/mips/configs/pb1000_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +26 -34 # MIPS update # # arch/mips/configs/osprey_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +18 -26 # MIPS update # # arch/mips/configs/ocelot_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +18 -26 # MIPS update # # arch/mips/configs/ocelot_c_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +18 -26 # MIPS update # # arch/mips/configs/mtx1_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +26 -34 # MIPS update # # arch/mips/configs/mpc30x_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +61 -28 # MIPS update # # arch/mips/configs/mirage_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +26 -34 # MIPS update # # arch/mips/configs/malta_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +28 -36 # MIPS update # # arch/mips/configs/lasat200_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +27 -35 # MIPS update # # arch/mips/configs/jmr3927_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +28 -36 # MIPS update # # arch/mips/configs/jaguar-atx_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +22 -30 # MIPS update # # arch/mips/configs/ivr_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +28 -36 # MIPS update # # arch/mips/configs/it8172_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +18 -26 # MIPS update # # arch/mips/configs/ip32_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +28 -36 # MIPS update # # arch/mips/configs/ip27_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +64 -71 # MIPS update # # arch/mips/configs/ip22_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +21 -26 # MIPS update # # arch/mips/configs/ev96100_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +18 -26 # MIPS update # # arch/mips/au1000/common/cputable.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +56 -0 # MIPS update # # arch/mips/Kconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +63 -17 # MIPS update # # include/asm-mips/pmon.h # 2004/05/10 04:25:30-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-mips/pmon.h # # arch/mips/configs/ev64120_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +32 -40 # MIPS update # # arch/mips/configs/eagle_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +29 -37 # MIPS update # # arch/mips/configs/e55_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +25 -32 # MIPS update # # arch/mips/configs/decstation_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +18 -26 # MIPS update # # arch/mips/configs/ddb5477_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +28 -36 # MIPS update # # arch/mips/configs/ddb5476_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +28 -36 # MIPS update # # arch/mips/configs/db1500_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +26 -34 # MIPS update # # arch/mips/configs/db1100_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +26 -34 # MIPS update # # arch/mips/configs/db1000_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +26 -34 # MIPS update # # arch/mips/configs/cobalt_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +28 -36 # MIPS update # # arch/mips/configs/capcella_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +29 -36 # MIPS update # # arch/mips/configs/bosporus_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +26 -34 # MIPS update # # arch/mips/configs/atlas_defconfig # 2004/05/10 04:25:30-07:00 akpm@osdl.org +28 -36 # MIPS update # # arch/mips/au1000/common/setup.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +13 -24 # MIPS update # # arch/mips/au1000/common/power.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +1 -1 # MIPS update # # arch/mips/au1000/common/cputable.c # 2004/05/10 04:25:30-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/au1000/common/cputable.c # # arch/mips/au1000/common/Makefile # 2004/05/10 04:25:30-07:00 akpm@osdl.org +1 -1 # MIPS update # # ChangeSet # 2004/05/10 13:52:43-07:00 akpm@osdl.org # [PATCH] Fix deadlock in journalled quota # # From: Jan Kara # # Attached patch should fix reported deadlock in journalled quota code. # quotactl() call was violating the locking rules and didn't start transaction # when it should. # # From: # # Found a couple of symbols not exported that were needed by the ext3.ko # module. # # include/linux/quota.h # 2004/05/10 03:26:52-07:00 akpm@osdl.org +2 -0 # Fix deadlock in journalled quota # # fs/ext3/super.c # 2004/05/10 03:26:52-07:00 akpm@osdl.org +36 -0 # Fix deadlock in journalled quota # # fs/dquot.c # 2004/05/10 03:26:52-07:00 akpm@osdl.org +6 -2 # Fix deadlock in journalled quota # # ChangeSet # 2004/05/10 16:48:38-04:00 len.brown@intel.com # [ACPI] handle _CRS outside _PRS -- even when non-zero # avoid sharing IRQ12 # http://bugzilla.kernel.org/show_bug.cgi?id=2665 # # drivers/acpi/pci_link.c # 2004/05/10 16:42:35-04:00 len.brown@intel.com +11 -5 # handle _CRS outside _PRS even when non-zero # avoid sharing IRQ12 # # ChangeSet # 2004/05/10 15:38:00-05:00 markh@osdl.org # [PATCH] aacraid reset handler fix # # This fixes a situation where the handler can exit too early. # # drivers/scsi/aacraid/linit.c # 2004/05/10 06:42:31-05:00 markh@osdl.org +7 -5 # aacraid reset handler fix # # ChangeSet # 2004/05/10 13:30:22-07:00 akpm@osdl.org # [PATCH] migration_thread() race fix # # From: Srivatsa Vaddagiri # # Noticed that migration_thread can examine "kthread_should_stop()?" without # setting its state to TASK_INTERRUPTIBLE first. This can cause kthread_stop # on that thread to block forever ... # # P.S - I assumed that having the task state set to TASK_INTERRUTIBLE # while it is doing active_load_balance is fine. It seemed to be # the case earlier also. # # kernel/sched.c # 2004/05/10 03:04:29-07:00 akpm@osdl.org +3 -1 # migration_thread() race fix # # ChangeSet # 2004/05/10 13:30:12-07:00 akpm@osdl.org # [PATCH] sched_getaffinity vs cpu hotplug race fix # # From: Srivatsa Vaddagiri # # Fix the race in sys_sched_getaffinity. Patch below takes cpu_hotplug lock # before reading cpus_allowed mask of a task. # # kernel/sched.c # 2004/05/10 03:09:41-07:00 akpm@osdl.org +2 -0 # sched_getaffinity vs cpu hotplug race fix # # ChangeSet # 2004/05/10 13:30:01-07:00 akpm@osdl.org # [PATCH] Move migrate_all_tasks to CPU_DEAD handling # # From: Srivatsa Vaddagiri # # migrate_all_tasks is currently run with rest of the machine stopped. # It iterates thr' the complete task table, turning off cpu affinity of any task # that it finds affine to the dying cpu. Depending on the task table # size this can take considerable time. All this time machine is stopped, doing # nothing. # # Stopping the machine for such extended periods can be avoided if we do # task migration in CPU_DEAD notification and that's precisely what this patch # does. # # The patch puts idle task to the _front_ of the dying CPU's runqueue at the # highest priority possible. This cause idle thread to run _immediately_ after # kstopmachine thread yields. Idle thread notices that its cpu is offline and # dies quickly. Task migration can then be done at leisure in CPU_DEAD # notification, when rest of the CPUs are running. # # Some advantages with this approach are: # # - More scalable. Predicatable amout of time that machine is stopped. # - No changes to hot path/core code. We are just exploiting scheduler # rules which runs the next high-priority task on the runqueue. Also # since I put idle task to the _front_ of the runqueue, there # are no races when a equally high priority task is woken up # and added to the runqueue. It gets in at the back of the runqueue, # _after_ idle task! # - cpu_is_offline check that is presenty required in try_to_wake_up, # idle_balance and rebalance_tick can be removed, thus speeding them # up a bit # # From: Srivatsa Vaddagiri # # Rusty mentioned that the unlikely hints against cpu_is_offline is # redundant since the macro already has that hint. Patch below removes those # redundant hints I added. # # kernel/sched.c # 2004/05/10 03:09:41-07:00 akpm@osdl.org +81 -29 # Move migrate_all_tasks to CPU_DEAD handling # # kernel/fork.c # 2004/05/10 03:04:26-07:00 akpm@osdl.org +9 -1 # Move migrate_all_tasks to CPU_DEAD handling # # kernel/cpu.c # 2004/05/10 03:04:09-07:00 akpm@osdl.org +20 -9 # Move migrate_all_tasks to CPU_DEAD handling # # include/linux/sched.h # 2004/05/10 03:04:09-07:00 akpm@osdl.org +1 -2 # Move migrate_all_tasks to CPU_DEAD handling # # ChangeSet # 2004/05/10 13:29:51-07:00 akpm@osdl.org # [PATCH] sched: Look at another CPU's domain # # From: Nick Piggin # # The SMT wake_idle code really wants to look at a non-local CPU's domain in # order to check for idle siblings. # # So change the domain attachment code a little bit so we continue to hold a # runqueue's lock while attaching a new domain. This means the locking rules # have changed to: you may access your own domain without any lock, you must # hold a remote runqueue's lock in order to view its domain. # # kernel/sched.c # 2004/05/10 03:09:41-07:00 akpm@osdl.org +4 -4 # sched: Look at another CPU's domain # # ChangeSet # 2004/05/10 13:29:40-07:00 akpm@osdl.org # [PATCH] sched: micro-optimisation for wake_up # # From: Nick Piggin # # This actually does produce better code, especially under the locked # section. # # Turns a conditional + unconditional jump under the lock in the unlikely # case into a cmov outside the lock. # # kernel/sched.c # 2004/05/10 03:09:41-07:00 akpm@osdl.org +5 -4 # sched: micro-optimisation for wake_up # # ChangeSet # 2004/05/10 13:29:30-07:00 akpm@osdl.org # [PATCH] sched: reduce idle time # # From: Nick Piggin # # It makes NEWLY_IDLE balances cause find_busiest_group return the busiest # available group even if there isn't an imbalance. Basically - try a bit # harder to prevent schedule emptying the runqueue. # # It is quite aggressive, but that isn't so bad because we don't (by default) # do NEWLY_IDLE balancing across NUMA nodes, and NEWLY_IDLE balancing is always # restricted to cache_hot tasks. # # It picked up a little bit of idle time that dbt2-pgsql was seeing... # # kernel/sched.c # 2004/05/10 03:09:41-07:00 akpm@osdl.org +2 -1 # sched: reduce idle time # # ChangeSet # 2004/05/10 13:29:19-07:00 akpm@osdl.org # [PATCH] sched: balance-on-clone # # From: Ingo Molnar # # Implement balancing during clone(). It does the following things: # # - introduces SD_BALANCE_CLONE that can serve as a tool for an # architecture to limit the search-idlest-CPU scope on clone(). # E.g. the 512-CPU systems should rather not enable this. # # - uses the highest sd for the imbalance_pct, not this_rq (which didnt # make sense). # # - unifies balance-on-exec and balance-on-clone via the find_idlest_cpu() # function. Gets rid of sched_best_cpu() which was still a bit # inconsistent IMO, it used 'min_load < load' as a condition for # balancing - while a more correct approach would be to use half of the # imbalance_pct, like passive balancing does. # # - the patch also reintroduces the possibility to do SD_BALANCE_EXEC on # SMP systems, and activates it - to get testing. # # - NOTE: there's one thing in this patch that is slightly unclean: i # introduced wake_up_forked_thread. I did this to make it easier to get # rid of this patch later (wake_up_forked_process() has lots of # dependencies in various architectures). If this capability remains in # the kernel then i'll clean it up and introduce one function for # wake_up_forked_process/thread. # # - NOTE2: i added the SD_BALANCE_CLONE flag to the NUMA CPU template too. # Some NUMA architectures probably want to disable this. # # kernel/sched.c # 2004/05/10 03:09:41-07:00 akpm@osdl.org +133 -36 # sched: balance-on-clone # # kernel/fork.c # 2004/05/10 03:09:41-07:00 akpm@osdl.org +17 -3 # sched: balance-on-clone # # include/linux/sched.h # 2004/05/10 03:09:41-07:00 akpm@osdl.org +17 -6 # sched: balance-on-clone # # ChangeSet # 2004/05/10 13:29:07-07:00 akpm@osdl.org # [PATCH] sched: cpu load management cleanup # # From: Ingo Molnar # # This does the source/target cleanup. This is a no-functionality patch which # also adds more comments to explain these functions. # # kernel/sched.c # 2004/05/10 03:09:42-07:00 akpm@osdl.org +16 -10 # sched: cpu load management cleanup # # ChangeSet # 2004/05/10 13:28:57-07:00 akpm@osdl.org # [PATCH] sched: passive balancing damping # # From: Nick Piggin # # This patch starts to balance woken processes when half the relevant domain's # imbalance_pct is reached. Previously balancing would start after a small, # constant difference in waker/wakee runqueue loads was reached, which would # cause too much process movement when there are lots of processes running. # # It also turns wake balancing into a domain flag while previously it was always # on. Now sched domains can "soft partition" an SMP system without using # processor affinities. # # kernel/sched.c # 2004/05/10 03:09:42-07:00 akpm@osdl.org +19 -16 # sched: passive balancing damping # # include/linux/sched.h # 2004/05/10 03:09:42-07:00 akpm@osdl.org +6 -3 # sched: passive balancing damping # # ChangeSet # 2004/05/10 13:28:46-07:00 akpm@osdl.org # [PATCH] sched: cleanups # # From: Ingo Molnar # # This re-adds cleanups which were lost in splitups of an earlier patch. # # kernel/sched.c # 2004/05/10 03:09:42-07:00 akpm@osdl.org +14 -17 # sched: cleanups # # ChangeSet # 2004/05/10 13:28:35-07:00 akpm@osdl.org # [PATCH] sched: lock cpu_attach_domain for hotplug # # From: Nick Piggin # # The attached patch is required to work correctly with the CPU hotplug # framework. John Hawkes reports successful booting with this. # # kernel/sched.c # 2004/05/10 03:09:42-07:00 akpm@osdl.org +4 -0 # sched: lock cpu_attach_domain for hotplug # # ChangeSet # 2004/05/10 13:28:20-07:00 akpm@osdl.org # [PATCH] sched: extend sync wakeups # # From: Ingo Molnar # # The attached patch extends sync wakeups to the process sys_exit() path too: # the chldwait wakeup can be done sync, since we know that the process is # going to exit (and thus deschedule). # # The most visible effect of this change is strace's behavior on SMP systems: # it now stays on a single CPU, together with the traced child. (previously # it would run in parallel to the child, bouncing around madly.) # # kernel/signal.c # 2004/05/10 03:04:00-07:00 akpm@osdl.org +2 -2 # sched: extend sync wakeups # # ChangeSet # 2004/05/10 13:28:10-07:00 akpm@osdl.org # [PATCH] sched: add enqueeu_task_head() # # From: Ingo Molnar # # Helper function for later patches # # kernel/sched.c # 2004/05/10 03:09:42-07:00 akpm@osdl.org +15 -0 # sched: add enqueeu_task_head() # # ChangeSet # 2004/05/10 13:27:59-07:00 akpm@osdl.org # [PATCH] sched: uninlinings # # From: Ingo Molnar # # Uninline things # # kernel/sched.c # 2004/05/10 03:09:42-07:00 akpm@osdl.org +12 -12 # sched: uninlinings # # ChangeSet # 2004/05/10 13:27:48-07:00 akpm@osdl.org # [PATCH] sched: minor cleanups # # From: Nick Piggin # # Minor cleanups from Ingo's patch including task_hot (do it right in # try_to_wake_up too). # # kernel/sched.c # 2004/05/10 03:09:43-07:00 akpm@osdl.org +19 -28 # sched: minor cleanups # # include/linux/sched.h # 2004/05/10 03:09:42-07:00 akpm@osdl.org +3 -3 # sched: minor cleanups # # ChangeSet # 2004/05/10 13:27:37-07:00 akpm@osdl.org # [PATCH] sched: fix setup races # # From: Nick Piggin # # De-racify the sched domain setup code. This involves creating a dummy # "init" domain during sched_init (which is called early). # # When topology information becomes available, the sched domains are then # built and attached. The attach mechanism is asynchronous and uses the # migration threads, which perform the switch with interrupts off. This is a # quiescent state, so domains can still be lockless on the read side. It # also allows us to change the domains at runtime without much more work. # This is something SGI is interested in to elegantly do soft partitioning of # their systems without having to use hard cpu affinities (which cause # balancing problems of their own). # # The current setup code also has a race somewhere because it is unable to # boot on a 384 CPU system. # # # # From: Anton Blanchard # # This is basically a mindless ppc64 merge of the x86 changes to sched # domain init code. # # Actually if I produce a sibling_map[] then the x86 code and the ppc64 # will be identical. Maybe we can merge it. # # kernel/sched.c # 2004/05/10 03:09:43-07:00 akpm@osdl.org +118 -45 # sched: fix setup races # # include/linux/sched.h # 2004/05/10 03:09:43-07:00 akpm@osdl.org +3 -7 # sched: fix setup races # # arch/ppc64/kernel/smp.c # 2004/05/10 13:27:30-07:00 akpm@osdl.org +63 -121 # sched: fix setup races # # arch/i386/kernel/smpboot.c # 2004/05/10 13:27:30-07:00 akpm@osdl.org +59 -74 # sched: fix setup races # # ChangeSet # 2004/05/10 13:27:24-07:00 akpm@osdl.org # [PATCH] ARCH_HAS_SCHED_WAKE_BALANCE doesnt exist # # From: Anton Blanchard # # It seems someone has been making trivial changes without using grep. # # include/asm-ppc64/processor.h # 2004/05/10 13:27:18-07:00 akpm@osdl.org +1 -1 # ARCH_HAS_SCHED_WAKE_BALANCE doesnt exist # # ChangeSet # 2004/05/10 13:27:13-07:00 akpm@osdl.org # [PATCH] ppc64: sched-domain support # # From: Anton Blanchard # # Below are the diffs between the current ppc64 sched init stuff and x86. # # - Ignore the POWER5 specific stuff, I dont set up a sibling map yet. # - What should I set cache_hot_time to? # # large cpumask typechecking requirements (perhaps useful on x86 as well): # - cpu->cpumask = CPU_MASK_NONE -> cpus_clear(cpu->cpumask); # - cpus_and(nodemask, node_to_cpumask(i), cpu_possible_map) doesnt work, # need to use a temporary # # include/asm-ppc64/processor.h # 2004/05/10 03:09:43-07:00 akpm@osdl.org +5 -0 # ppc64: sched-domain support # # arch/ppc64/kernel/smp.c # 2004/05/10 03:09:43-07:00 akpm@osdl.org +273 -5 # ppc64: sched-domain support # # arch/ppc64/Kconfig # 2004/05/10 13:27:07-07:00 akpm@osdl.org +9 -0 # ppc64: sched-domain support # # ChangeSet # 2004/05/10 13:27:02-07:00 akpm@osdl.org # [PATCH] sched: oops fix # # From: Nick Piggin # # After the for_each_domain change, the warn here won't trigger, instead it # will oops in the if statement. Also, make sure we don't pass an empty # cpumask to for_each_cpu. # # kernel/sched.c # 2004/05/10 03:09:43-07:00 akpm@osdl.org +5 -6 # sched: oops fix # # ChangeSet # 2004/05/10 13:26:51-07:00 akpm@osdl.org # [PATCH] sched: altix tuning # # From: Nick Piggin # # From: John Hawkes # # The following brings up performance on a 64-way Altix. This system being on # the smaller end of the scale should also be applicable to other NUMA systems. # # include/linux/sched.h # 2004/05/10 03:09:43-07:00 akpm@osdl.org +1 -1 # sched: altix tuning # # ChangeSet # 2004/05/10 13:26:40-07:00 akpm@osdl.org # [PATCH] sched: fix imbalance calculations # # From: Nick Piggin # # Imbalance calculations were not right. This would cause unneeded migration. # # kernel/sched.c # 2004/05/10 03:09:43-07:00 akpm@osdl.org +22 -16 # sched: fix imbalance calculations # # ChangeSet # 2004/05/10 13:26:30-07:00 akpm@osdl.org # [PATCH] sched: wakeup balancing fixes # # From: Nick Piggin # # Make affine wakes and "passive load balancing" more conservative. Aggressive # affine wakeups were causing huge regressions in dbt3-pgsql on 8-way non NUMA # systems at OSDL's STP. # # kernel/sched.c # 2004/05/10 03:09:44-07:00 akpm@osdl.org +17 -7 # sched: wakeup balancing fixes # # ChangeSet # 2004/05/10 13:26:19-07:00 akpm@osdl.org # [PATCH] Hotplug CPU sched_balance_exec Fix # # From: Rusty Russell # # From: Srivatsa Vaddagiri # From: Andrew Morton # From: Rusty Russell # # We want to get rid of lock_cpu_hotplug() in sched_migrate_task. Found # that lockless migration of execing task is _extremely_ racy. The # races I hit are described below, alongwith probable solutions. # # Task migration done elsewhere should be safe (?) since they either # hold the lock (sys_sched_setaffinity) or are done entirely with preemption # disabled (load_balance). # # sched_balance_exec does: # # a. disables preemption # b. finds new_cpu for current # c. enables preemption # d. calls sched_migrate_task to migrate current to new_cpu # # and sched_migrate_task does: # # e. task_rq_lock(p) # f. migrate_task(p, dest_cpu ..) # (if we have to wait for migration thread) # g. task_rq_unlock() # h. wake_up_process(rq->migration_thread) # i. wait_for_completion() # # Several things can happen here: # # 1. new_cpu can go down after h and before migration thread has # got around to handle the request # # ==> we need to add a cpu_is_offline check in __migrate_task # # 2. new_cpu can go down between c and d or before f. # # ===> Even though this case is automatically handled by the above # change (migrate_task being called on a running task, current, # will delegate migration to migration thread), would it be # good practice to avoid calling migrate_task in the first place # itself when dest_cpu is offline. This means adding another # cpu_is_offline check after e in sched_migrate_task # # 3. The 'current' task can get preempted _immediately_ after # g and when it comes back, task_cpu(p) can be dead. In # which case, it is invalid to do wake_up on a non-existent migration # thread. (rq->migration_thread can be NULL). # # ===> We should disable preemption thr' g and h # # 4. Before migration thread gets around to handle the request, its cpu # goes dead. This will leave unhandled migration requests in the dead # cpu. # # ===> We need to wakeup sleeping requestors (if any) in CPU_DEAD # notification. # # I really wonder if we can get rid of these issues by avoiding balancing at # exec time and instead have it balanced during load_balance ..Alternately # if this is valuable and we want to retain it, I think we still need to # consider a read/write sem, with sched_migrate_task doing down_read_trylock. # This may eliminate the deadlock I hit between cpu_up and CPU_UP_PREPARE # notification, which had forced me away from r/w sem. # # Anyway patch below addresses the above races. Its against 2.6.6-rc2-mm1 # and has been tested on a 4way Intel Pentium SMP m/c. # # # Rusty sez: # # Two other changes: # 1) I grabbed a reference to the thread, rather than using # preempt_disable(). It's the more obvious way I think. # # 2) Why the wait_to_die code? It might be needed if we move tasks after # stop_machine, but for nowI don't see the problem with the migration # thread running on the wrong CPU for a bit: nothing is on this runqueue # so active_load_balance is safe, and __migrate task will be a noop (due # to cpu_is_offline() check). If there is a problem, your fix is racy, # because we could be preempted immediately afterwards. # # So I just stop the kthread then wakeup any remaining... # # kernel/sched.c # 2004/05/10 03:09:44-07:00 akpm@osdl.org +28 -9 # Hotplug CPU sched_balance_exec Fix # # ChangeSet # 2004/05/10 13:26:09-07:00 akpm@osdl.org # [PATCH] sched: trivial fixes, cleanups # # From: Ingo Molnar # # The trivial fixes. # # - added recent trivial bits from Nick's and my patches. # - hotplug CPU fix # - early init cleanup # # kernel/sched.c # 2004/05/10 03:09:44-07:00 akpm@osdl.org +244 -245 # sched: trivial fixes, cleanups # # init/main.c # 2004/05/10 03:03:59-07:00 akpm@osdl.org +8 -1 # sched: trivial fixes, cleanups # # include/linux/sched.h # 2004/05/10 03:09:43-07:00 akpm@osdl.org +16 -11 # sched: trivial fixes, cleanups # # include/asm-i386/processor.h # 2004/05/10 03:03:59-07:00 akpm@osdl.org +1 -1 # sched: trivial fixes, cleanups # # include/asm-i386/param.h # 2004/05/10 03:03:59-07:00 akpm@osdl.org +3 -1 # sched: trivial fixes, cleanups # # arch/i386/kernel/smpboot.c # 2004/05/10 03:09:43-07:00 akpm@osdl.org +5 -5 # sched: trivial fixes, cleanups # # arch/i386/Kconfig # 2004/05/10 03:03:59-07:00 akpm@osdl.org +1 -1 # sched: trivial fixes, cleanups # # ChangeSet # 2004/05/10 13:25:57-07:00 akpm@osdl.org # [PATCH] Reduce TLB flushing during process migration # # From: Martin Hicks # # Another optimization patch from Jack Steiner, intended to reduce TLB # flushes during process migration. # # Most architextures should define tlb_migrate_prepare() to be flush_tlb_mm(), # but on i386, it would be a wasted flush, because i386 disconnects previous # cpus from the tlb flush automatically. # # kernel/sched.c # 2004/05/10 03:09:44-07:00 akpm@osdl.org +10 -0 # Reduce TLB flushing during process migration # # include/asm-ia64/tlb.h # 2004/05/10 03:03:59-07:00 akpm@osdl.org +2 -0 # Reduce TLB flushing during process migration # # include/asm-generic/tlb.h # 2004/05/10 03:03:59-07:00 akpm@osdl.org +2 -0 # Reduce TLB flushing during process migration # # ChangeSet # 2004/05/10 13:25:45-07:00 akpm@osdl.org # [PATCH] sched: add local load metrics # # From: Nick Piggin # # This patch removes the per runqueue array of NR_CPU arrays. Each time we # want to check a remote CPU's load we check nr_running as well anyway, so # introduce a cpu_load which is the load of the local runqueue and is kept # updated in the timer tick. Put them in the same cacheline. # # This has additional benefits of having the cpu_load consistent across all # CPUs and more up to date. It is sampled better too, being updated once per # timer tick. # # This shouldn't make much difference in scheduling behaviour, but all # benchmarks are either as good or better on the 16-way NUMAQ: hackbench, # reaim, volanomark are about the same, tbench and dbench are maybe a bit # better. kernbench is about one percent better. # # John reckons it isn't a big deal, but it does save 4K per CPU or 2MB total # on his big systems, so I figure it must be a bit kinder on the caches. I # think it is just nicer in general anyway. # # kernel/sched.c # 2004/05/10 03:09:44-07:00 akpm@osdl.org +30 -43 # sched: add local load metrics # # ChangeSet # 2004/05/10 13:25:34-07:00 akpm@osdl.org # [PATCH] sched: SMT niceness handling # # From: Con Kolivas # # This patch provides full per-package priority support for SMT processors # (aka pentium4 hyperthreading) when combined with CONFIG_SCHED_SMT. # # It maintains cpu percentage distribution within each physical cpu package # by limiting the time a lower priority task can run on a sibling cpu # concurrently with a higher priority task. # # It introduces a new flag into the scheduler domain # unsigned int per_cpu_gain; /* CPU % gained by adding domain cpus */ # # This is empirically set to 15% for pentium4 at the moment and can be # modified to support different values dynamically as newer processors come # out with improved SMT performance. It should not matter how many siblings # there are. # # How it works is it compares tasks running on sibling cpus and when a lower # static priority task is running it will delay it till # high_priority_timeslice * (100 - per_cpu_gain) / 100 <= low_prio_timeslice # # eg. a nice 19 task timeslice is 10ms and nice 0 timeslice is 102ms On # vanilla the nice 0 task runs on one logical cpu while the nice 19 task runs # unabated on the other logical cpu. With smtnice the nice 0 runs on one # logical cpu for 102ms and the nice 19 sleeps till the nice 0 task has 12ms # remaining and then will schedule. # # Real time tasks and kernel threads are not altered by this code, and kernel # threads do not delay lower priority user tasks. # # with lots of thanks to Zwane Mwaikambo and Nick Piggin for help with the # coding of this version. # # If this is merged, it is probably best to delay pushing this upstream in # mainline till sched_domains gets tested for at least one major release. # # kernel/sched.c # 2004/05/10 03:09:44-07:00 akpm@osdl.org +115 -2 # sched: SMT niceness handling # # include/linux/sched.h # 2004/05/10 03:09:44-07:00 akpm@osdl.org +5 -0 # sched: SMT niceness handling # # arch/i386/kernel/smpboot.c # 2004/05/10 03:09:44-07:00 akpm@osdl.org +10 -2 # sched: SMT niceness handling # # ChangeSet # 2004/05/10 13:25:22-07:00 akpm@osdl.org # [PATCH] sched_domains: use cpu_possible_map # # From: Nick Piggin # # This changes sched domains to contain all possible CPUs, and check for # online as needed. It's in order to play nicely with CPU hotplug. # # kernel/sched.c # 2004/05/10 03:09:44-07:00 akpm@osdl.org +24 -29 # sched_domains: use cpu_possible_map # # arch/i386/kernel/smpboot.c # 2004/05/10 03:09:44-07:00 akpm@osdl.org +11 -11 # sched_domains: use cpu_possible_map # # ChangeSet # 2004/05/10 13:25:11-07:00 akpm@osdl.org # [PATCH] sched-group-power # # From: Nick Piggin # # The following patch implements a cpu_power member to struct sched_group. # # This allows special casing to be removed for SMT groups in the balancing # code. It does not take CPU hotplug into account yet, but that shouldn't be # too hard. # # I have tested it on the NUMAQ by pretending it has SMT. Works as expected. # Active balances across nodes. # # kernel/sched.c # 2004/05/10 03:09:45-07:00 akpm@osdl.org +67 -63 # sched-group-power # # include/linux/sched.h # 2004/05/10 03:09:44-07:00 akpm@osdl.org +11 -1 # sched-group-power # # arch/i386/kernel/smpboot.c # 2004/05/10 03:09:45-07:00 akpm@osdl.org +12 -3 # sched-group-power # # ChangeSet # 2004/05/10 13:25:00-07:00 akpm@osdl.org # [PATCH] sched_balance_exec(): don't fiddle with the cpus_allowed mask # # From: Rusty Russell , # Nick Piggin # # The current sched_balance_exec() sets the task's cpus_allowed mask # temporarily to move it to a different CPU. This has several issues, # including the fact that a task will see its affinity at a bogus value. # # So we change the migration_req_t to explicitly specify a destination CPU, # rather than the migration thread deriving it from cpus_allowed. If the # requested CPU is no longer valid (racing with another set_cpus_allowed, # say), it can be ignored: if the task is not allowed on this CPU, there will # be another migration request pending. # # This change allows sched_balance_exec() to tell the migration thread what # to do without changing the cpus_allowed mask. # # So we rename __set_cpus_allowed() to move_task(), as the cpus_allowed mask # is now set by the caller. And move_task_away(), which the migration thread # uses to actually perform the move, is renamed __move_task(). # # I also ignore offline CPUs in sched_best_cpu(), so sched_migrate_task() # doesn't need to check for offline CPUs. # # Ulterior motive: this approach also plays well with CPU Hotplug. # Previously that patch might have seen a task with cpus_allowed only # containing the dying CPU (temporarily due to sched_balance_exec) and # forcibly reset it to all cpus, which might be wrong. The other approach is # to hold the cpucontrol sem around sched_balance_exec(), which is too much # of a bottleneck. # # kernel/sched.c # 2004/05/10 03:09:45-07:00 akpm@osdl.org +33 -34 # sched_balance_exec(): don't fiddle with the cpus_allowed mask # # ChangeSet # 2004/05/10 13:24:49-07:00 akpm@osdl.org # [PATCH] sched: handle inter-CPU jiffies skew # # From: Nick Piggin # # John Hawkes discribed this problem to me: # # There *is* a small problem in this area, though, that SuSE avoids. # "jiffies" gets updated by cpu0. The other CPUs may, over time, get out of # sync (and they're initialized on ia64 to start out being out of sync), so # it's no guarantee that every CPU will wake up from its timer interrupt and # see a "jiffies" value that is guaranteed to be last_jiffies+1. Sometimes # the jiffies value may be unchanged since the last wakeup. Sometimes the # jiffies value may have incremented by 2 (or more, especially if cpu0's # interrupts are disabled for long stretches of time). So an algoithm that # says, "I'll call load_balance() only when jiffies is *exactly* N" is going # to fail on occasion, either by calling load_balance() too often or not # often enough. *** # # I fixed this by adding a last_balance field to struct sched_domain, and # working off that. # # kernel/sched.c # 2004/05/10 03:09:45-07:00 akpm@osdl.org +8 -8 # sched: handle inter-CPU jiffies skew # # include/linux/sched.h # 2004/05/10 03:09:45-07:00 akpm@osdl.org +4 -0 # sched: handle inter-CPU jiffies skew # # ChangeSet # 2004/05/10 13:24:38-07:00 akpm@osdl.org # [PATCH] sched: implement domains for i386 HT # # From: Nick Piggin # # The following patch builds a scheduling description for the i386 # architecture using cpu_sibling_map to set up SMT if CONFIG_SCHED_SMT is # set. # # It could be made more fancy and collapse degenerate domains at runtime (ie. # 1 sibling per CPU, or 1 NUMA node in the computer). # # # From: Zwane Mwaikambo # # This fixes an oops due to cpu_sibling_map being uninitialised when a # system with no MP table (most UP boxen) boots a CONFIG_SMT kernel. What # also happens is that the cpu_group lists end up not being terminated # properly, but this oops kills it first. Patch tested on UP w/o MP table, # 2x P2 and UP Xeon w/ no siblings. # # From: "Martin J. Bligh" , # Nick Piggin # # Change arch_init_sched_domains to use cpu_online_map # # From: Anton Blanchard # # Fix build with NR_CPUS > BITS_PER_LONG # # kernel/sched.c # 2004/05/10 03:09:45-07:00 akpm@osdl.org +10 -25 # sched: implement domains for i386 HT # # include/linux/sched.h # 2004/05/10 03:09:45-07:00 akpm@osdl.org +16 -0 # sched: implement domains for i386 HT # # include/asm-i386/processor.h # 2004/05/10 03:09:44-07:00 akpm@osdl.org +5 -0 # sched: implement domains for i386 HT # # arch/i386/kernel/smpboot.c # 2004/05/10 03:09:45-07:00 akpm@osdl.org +205 -1 # sched: implement domains for i386 HT # # arch/i386/Kconfig # 2004/05/10 03:09:44-07:00 akpm@osdl.org +10 -0 # sched: implement domains for i386 HT # # ChangeSet # 2004/05/10 13:24:26-07:00 akpm@osdl.org # [PATCH] sched: cpu_sibling_map to cpu_mask # # From: Nick Piggin # # This is a (somewhat) trivial patch which converts cpu_sibling_map from an # array of CPUs to an array of cpumasks. Needed for >2 siblings per package, # but it actually can simplify code as it allows the cpu_sibling_map to be # set up even when there is 1 sibling per package. Intel want this, I use it # in the next patch to build scheduling domains for the P4 HT. # # From: Thomas Schlichter # # Build fix # # From: "Pallipadi, Venkatesh" # # Fix to handle more than 2 siblings per package. # # include/asm-i386/smp.h # 2004/05/10 03:03:57-07:00 akpm@osdl.org +1 -1 # sched: cpu_sibling_map to cpu_mask # # arch/i386/oprofile/op_model_p4.c # 2004/05/10 03:03:57-07:00 akpm@osdl.org +2 -5 # sched: cpu_sibling_map to cpu_mask # # arch/i386/kernel/smpboot.c # 2004/05/10 03:09:45-07:00 akpm@osdl.org +21 -19 # sched: cpu_sibling_map to cpu_mask # # arch/i386/kernel/io_apic.c # 2004/05/10 03:03:57-07:00 akpm@osdl.org +12 -7 # sched: cpu_sibling_map to cpu_mask # # arch/i386/kernel/cpu/cpufreq/p4-clockmod.c # 2004/05/10 03:03:57-07:00 akpm@osdl.org +15 -18 # sched: cpu_sibling_map to cpu_mask # # ChangeSet # 2004/05/10 13:24:15-07:00 akpm@osdl.org # [PATCH] scheduler domain balancing improvements # # From: Nick Piggin # # This patch gets the sched_domain scheduler working better WRT balancing. # Its been tested on the NUMAQ. Among other things it changes to the way SMT # load calculation works so as not to active load blances when it shouldn't. # # It still has a problem with SMT and NUMA: it will put a task on each # sibling in a node before moving tasks to another node. It should probably # start moving tasks after each *physical* CPU is filled. # # To fix, you need "how much CPU power in this domain?" At the moment we # approximate # runqueues == CPU power, and hack around it at the CPU # physical domain by counting all sibling runqueues as 1. # # It isn't hard to correctly work the CPU power out, but once CPU hotplug is # in the equation it becomes much more hotplug events. If anyone is actually # interested in getting this fixed, that is. # # kernel/sched.c # 2004/05/10 03:09:45-07:00 akpm@osdl.org +36 -19 # scheduler domain balancing improvements # # ChangeSet # 2004/05/10 13:24:05-07:00 akpm@osdl.org # [PATCH] sched_domain debugging # # From: Nick Piggin # # Anton was attempting to make a sched domain topology for his POWER5 and was # having some trouble. # # This patch only includes code which is ifdefed out, but hopefully it will # be of some use to implementors. # # kernel/sched.c # 2004/05/10 03:09:46-07:00 akpm@osdl.org +78 -0 # sched_domain debugging # # Documentation/sched-domains.txt # 2004/05/10 03:03:57-07:00 akpm@osdl.org +7 -0 # sched_domain debugging # # ChangeSet # 2004/05/10 13:23:54-07:00 akpm@osdl.org # [PATCH] sched: scheduler domain support # # From: Nick Piggin # # This is the core sched domains patch. It can handle any number of levels # in a scheduling heirachy, and allows architectures to easily customize how # the scheduler behaves. It also provides progressive balancing backoff # needed by SGI on their large systems (although they have not yet tested # it). # # It is built on top of (well, uses ideas from) my previous SMP/NUMA work, and # gets results very similar to them when using the default scheduling # description. # # Benchmarks # ========== # # Martin was seeing I think 10-20% better system times in kernbench on the 32 # way. I was seeing improvements in dbench, tbench, kernbench, reaim, # hackbench on a 16-way NUMAQ. Hackbench in fact had a non linear element # which is all but eliminated. Large improvements in volanomark. # # Cross node task migration was decreased in all above benchmarks, sometimes by # a factor of 100!! Cross CPU migration was also generally decreased. See # this post: # http://groups.google.com.au/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&frame=right&th=a406c910b30cbac4&seekm=UAdQ.3hj.5%40gated-at.bofh.it#link2 # # Results on a hyperthreading P4 are equivalent to Ingo's shared runqueues # patch (which is a big improvement). # # Some examples on the 16-way NUMAQ (this is slightly older sched domain code): # # http://www.kerneltrap.org/~npiggin/w26/hbench.png # http://www.kerneltrap.org/~npiggin/w26/vmark.html # # From: Jes Sorensen # # Tiny patch to make -mm3 compile on an NUMA box with NR_CPUS > # BITS_PER_LONG. # # From: "Martin J. Bligh" # # Fix a minor nit with the find_busiest_group code. No functional change, # but makes the code simpler and clearer. This patch does two things ... # adds some more expansive comments, and removes this if clause: # # if (*imbalance < SCHED_LOAD_SCALE # && max_load - this_load > SCHED_LOAD_SCALE) # *imbalance = SCHED_LOAD_SCALE; # # If we remove the scaling factor, we're basically conditionally doing: # # if (*imbalance < 1) # *imbalance = 1; # # Which is pointless, as the very next thing we do is to remove the # scaling factor, rounding up to the nearest integer as we do: # # *imbalance = (*imbalance + SCHED_LOAD_SCALE - 1) >> SCHED_LOAD_SHIFT; # # Thus the if statement is redundant, and only makes the code harder to # read ;-) # # From: Rick Lindsley # # In find_busiest_group(), after we exit the do/while, we select our # imbalance. But max_load, avg_load, and this_load are all unsigned, so # min(x,y) will make a bad choice if max_load < avg_load < this_load (that # is, a choice between two negative [very large] numbers). # # Unfortunately, there is a bug when max_load never gets changed from zero # (look in the loop and think what happens if the only load on the machine is # being created by cpu groups of which we are a member). And you have a # recipe for some really bogus values for imbalance. # # Even if you fix the max_load == 0 bug, there will still be times when # avg_load - this_load will be negative (thus very large) and you'll make the # decision to move stuff when you shouldn't have. # # This patch allows for this_load to set max_load, which if I understand # the logic properly is correct. With this patch applied, the algorithm is # *much* more conservative ... maybe *too* conservative but that's for # another round of testing ... # # From: Ingo Molnar # # sched-find-busiest-fix # # kernel/sched.c # 2004/05/10 03:09:46-07:00 akpm@osdl.org +818 -348 # sched: scheduler domain support # # init/main.c # 2004/05/10 03:09:44-07:00 akpm@osdl.org +1 -1 # sched: scheduler domain support # # include/linux/sched.h # 2004/05/10 03:09:45-07:00 akpm@osdl.org +68 -2 # sched: scheduler domain support # # Documentation/sched-domains.txt # 2004/05/10 03:09:46-07:00 akpm@osdl.org +48 -0 # sched: scheduler domain support # # Documentation/sched-domains.txt # 2004/05/10 03:09:46-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/sched-domains.txt # # ChangeSet # 2004/05/10 13:23:42-07:00 akpm@osdl.org # [PATCH] sched: improved resolution in find_busiest_node # # From: Nick Piggin # # From: Frank Cornelis # # In order to get the best possible resolution we need to use NR_CPUS instead # of the constant value 10. load is an int, so no need to worry about # overflows... # # kernel/sched.c # 2004/05/10 03:09:46-07:00 akpm@osdl.org +3 -3 # sched: improved resolution in find_busiest_node # # ChangeSet # 2004/05/10 13:23:31-07:00 akpm@osdl.org # [PATCH] small scheduler cleanup # # From: Ingo Molnar # # From: Nick Piggin wrote: # # It removes the last place where we mess with run_list open coded. # # kernel/sched.c # 2004/05/10 03:09:46-07:00 akpm@osdl.org +7 -7 # small scheduler cleanup # # ChangeSet # 2004/05/10 13:17:31-05:00 jejb@mulgrave.(none) # Add SCSI IPR PCI Ids to pci_ids.h # # include/linux/pci_ids.h # 2004/05/10 13:17:04-05:00 jejb@mulgrave.(none) +2 -0 # Add SCSI IPR PCI Ids # # ChangeSet # 2004/05/10 20:12:34+02:00 marcel@holtmann.org # [Bluetooth] Use type of the parent socket # # The SELinux fixes for kernel sockets assume that we always use the type # SOCK_SEQPACKET, but this must not be the truth. Give the sock->type # as argument to sock_create_lite() and everything is correct for the new # child socket. # # net/bluetooth/rfcomm/core.c # 2004/05/10 20:08:06+02:00 marcel@holtmann.org +3 -4 # Use type of the parent socket # # ChangeSet # 2004/05/10 13:12:01-04:00 jgarzik@redhat.com # Merge redhat.com:/spare/repo/netdev-2.6/8139too # into redhat.com:/spare/repo/net-drivers-2.6 # # drivers/net/8139too.c # 2004/05/10 13:11:57-04:00 jgarzik@redhat.com +0 -0 # Auto merged # # ChangeSet # 2004/05/10 11:27:04-05:00 jejb@mulgrave.(none) # Add IBM power RAID driver 2.0.6 # # From: Brian King # # drivers/scsi/ipr.h # 2004/05/10 11:26:37-05:00 jejb@mulgrave.(none) +1251 -0 # # drivers/scsi/ipr.c # 2004/05/10 11:26:37-05:00 jejb@mulgrave.(none) +6012 -0 # # drivers/scsi/ipr.h # 2004/05/10 11:26:37-05:00 jejb@mulgrave.(none) +0 -0 # BitKeeper file /home/jejb/BK/scsi-misc-2.6/drivers/scsi/ipr.h # # drivers/scsi/ipr.c # 2004/05/10 11:26:37-05:00 jejb@mulgrave.(none) +0 -0 # BitKeeper file /home/jejb/BK/scsi-misc-2.6/drivers/scsi/ipr.c # # drivers/scsi/Makefile # 2004/05/10 11:26:37-05:00 jejb@mulgrave.(none) +1 -0 # Add IBM power RAID driver 2.0.6 # # drivers/scsi/Kconfig # 2004/05/10 11:26:37-05:00 jejb@mulgrave.(none) +25 -0 # Add IBM power RAID driver 2.0.6 # # drivers/pci/pci.ids # 2004/05/10 11:26:36-05:00 jejb@mulgrave.(none) +2 -0 # Add IBM power RAID driver 2.0.6 # # MAINTAINERS # 2004/05/10 11:26:36-05:00 jejb@mulgrave.(none) +5 -0 # Add IBM power RAID driver 2.0.6 # # ChangeSet # 2004/05/10 10:55:37-05:00 shaggy@austin.ibm.com # JFS: module unload was not removing /proc/fs/jfs/ # # fs/jfs/jfs_debug.c # 2004/05/10 10:55:31-05:00 shaggy@austin.ibm.com +3 -3 # fix remove_proc_entry argument # # ChangeSet # 2004/05/10 17:25:27+02:00 marcel@holtmann.org # [Bluetooth] Adapt changes for USB core altsettings # # The USB core has changed its way the interfaces and the altsettings are # stored. The probe routines of the USB based Bluetooth drivers must be # changed and in some cases they are simplified. # # Patch from Alan Stern # # drivers/bluetooth/hci_usb.c # 2004/05/10 17:21:53+02:00 marcel@holtmann.org +77 -82 # Adapt changes for USB core altsettings # # drivers/bluetooth/bfusb.c # 2004/05/10 17:21:48+02:00 marcel@holtmann.org +3 -3 # Adapt changes for USB core altsettings # # drivers/bluetooth/bcm203x.c # 2004/05/10 17:20:59+02:00 marcel@holtmann.org +1 -1 # Adapt changes for USB core altsettings # # ChangeSet # 2004/05/10 17:11:34+02:00 marcel@holtmann.org # [Bluetooth] Fix disconnect race on ISOC interface # # The hci_usb_disconnect() gets called recursively when SCO support # is enabled and used. This causes sysfs_hash_and_remove() finally to # dereference a NULL pointer. # # Noticed by Sebastian Schmidt # # drivers/bluetooth/hci_usb.c # 2004/05/10 17:02:36+02:00 marcel@holtmann.org +4 -2 # Fix disconnect race on ISOC interface # # ChangeSet # 2004/05/10 09:52:40-05:00 noodles@earth.li # [PATCH] Initio INI-9X00U/UW error handling in 2.6 # # Plumb old error handling into new eh infrastructure. # # drivers/scsi/ini9100u.h # 2004/04/30 13:39:30-05:00 noodles@earth.li +2 -1 # Initio INI-9X00U/UW error handling in 2.6 # # drivers/scsi/ini9100u.c # 2004/04/30 13:40:06-05:00 noodles@earth.li +13 -1 # Initio INI-9X00U/UW error handling in 2.6 # # ChangeSet # 2004/05/10 09:49:16-05:00 jejb@mulgrave.(none) # sym53c500_cs remove irq,ioport scsi attributes # # From: Bob Tracy # # drivers/scsi/pcmcia/sym53c500_cs.c # 2004/05/10 09:49:05-05:00 jejb@mulgrave.(none) +1 -35 # sym53c500_cs remove irq,ioport scsi attributes # # ChangeSet # 2004/05/10 09:39:21-05:00 hch@lst.de # [PATCH] mca_53c9x needs CONFIG_MCA_LEGACY # # drivers/scsi/Kconfig # 2004/05/05 04:52:38-05:00 hch@lst.de +1 -1 # mca_53c9x needs CONFIG_MCA_LEGACY # # ChangeSet # 2004/05/10 09:37:24-05:00 hch@lst.de # [PATCH] missing pci_set_master in megaraid # # drivers/scsi/megaraid.c # 2004/01/31 00:52:56-06:00 hch@lst.de +1 -0 # missing pci_enable_device in megaraid # # ChangeSet # 2004/05/10 09:36:45-05:00 hch@lst.de # [PATCH] imm/ppa style police # # fix remaining style problems after Al ressurrected the drivers. # # drivers/scsi/ppa.h # 2004/02/22 15:38:12-06:00 hch@lst.de +1 -1 # imm/ppa style police # # drivers/scsi/ppa.c # 2004/02/22 15:36:06-06:00 hch@lst.de +18 -12 # imm/ppa style police # # drivers/scsi/imm.h # 2004/02/22 15:38:29-06:00 hch@lst.de +1 -1 # imm/ppa style police # # drivers/scsi/imm.c # 2004/02/22 15:34:11-06:00 hch@lst.de +22 -18 # imm/ppa style police # # ChangeSet # 2004/05/10 09:35:31-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [15/15] qla2xxx: Update driver version # # Update version number to 8.00.00b12-k. # # drivers/scsi/qla2xxx/qla_version.h | 4 ++-- # 1 files changed, 2 insertions(+), 2 deletions(-) # # drivers/scsi/qla2xxx/qla_version.h # 2004/05/03 10:17:14-05:00 andrew.vasquez@qlogic.com +2 -2 # PATCH [15/15] qla2xxx: Update driver version # # ChangeSet # 2004/05/10 09:34:47-05:00 jejb@mulgrave.(none) # PATCH [14/15] qla2xxx: Resync with latest released firmware -- 3.02.28. # # From: Andrew Vasquez # # drivers/scsi/qla2xxx/ql2300_fw.c |12380 +++++++++++++++++++-------------------- # drivers/scsi/qla2xxx/ql2322_fw.c |11812 ++++++++++++++++++------------------- # drivers/scsi/qla2xxx/ql6312_fw.c |10174 ++++++++++++++++---------------- # drivers/scsi/qla2xxx/ql6322_fw.c |10352 ++++++++++++++++---------------- # 4 files changed, 22368 insertions(+), 22350 deletions(-) # # drivers/scsi/qla2xxx/ql6322_fw.c # 2004/05/10 09:34:32-05:00 jejb@mulgrave.(none) +5178 -5174 # PATCH [14/15] qla2xxx: Resync with latest released firmware -- 3.02.28. # # drivers/scsi/qla2xxx/ql6312_fw.c # 2004/05/10 09:34:32-05:00 jejb@mulgrave.(none) +5089 -5085 # PATCH [14/15] qla2xxx: Resync with latest released firmware -- 3.02.28. # # drivers/scsi/qla2xxx/ql2322_fw.c # 2004/05/10 09:34:31-05:00 jejb@mulgrave.(none) +5909 -5903 # PATCH [14/15] qla2xxx: Resync with latest released firmware -- 3.02.28. # # drivers/scsi/qla2xxx/ql2300_fw.c # 2004/05/10 09:34:31-05:00 jejb@mulgrave.(none) +6192 -6188 # PATCH [14/15] qla2xxx: Resync with latest released firmware -- 3.02.28. # # ChangeSet # 2004/05/10 09:31:56-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [13/15] qla2xxx: Misc. code scrubbing # # Misc. driver scrubbing: # # o Use kernel #define for PCI command register bit. # # o Fix rate-limiting check the queue-depth module # parameter. # # o Clean-up comments. # # drivers/scsi/qla2xxx/qla_init.c | 2 +- # drivers/scsi/qla2xxx/qla_mbx.c | 1 - # drivers/scsi/qla2xxx/qla_os.c | 7 +++---- # 3 files changed, 4 insertions(+), 6 deletions(-) # # drivers/scsi/qla2xxx/qla_os.c # 2004/05/03 10:16:34-05:00 andrew.vasquez@qlogic.com +3 -4 # PATCH [13/15] qla2xxx: Misc. code scrubbing # # drivers/scsi/qla2xxx/qla_mbx.c # 2004/05/03 10:16:34-05:00 andrew.vasquez@qlogic.com +0 -1 # PATCH [13/15] qla2xxx: Misc. code scrubbing # # drivers/scsi/qla2xxx/qla_init.c # 2004/05/03 10:16:34-05:00 andrew.vasquez@qlogic.com +1 -1 # PATCH [13/15] qla2xxx: Misc. code scrubbing # # ChangeSet # 2004/05/10 09:30:37-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [12/15] qla2xxx: RIO/ZIO fixes # # RIO/ZIO fixes: # # o Reduce register access during RIO operation by checking # for a 'dirtied' signature. # # o Fix problem where ZIO mode handling could result in a # nasty recursive call-frame. # # drivers/scsi/qla2xxx/qla_os.c | 5 +---- # 1 files changed, 1 insertion(+), 4 deletions(-) # # drivers/scsi/qla2xxx/qla_os.c # 2004/05/03 10:16:15-05:00 andrew.vasquez@qlogic.com +1 -4 # PATCH [12/15] qla2xxx: RIO/ZIO fixes # # ChangeSet # 2004/05/10 09:29:37-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [11/15] qla2xxx: /proc fixes # # /proc file updates: # # o Address 'unaligned access' message on ia64 platorms # while displaying bit-field flags. # # o Iterate through the the OS target array to display # target ID bindings. # # drivers/scsi/qla2xxx/qla_os.c | 30 ++++++++++++------------------ # 1 files changed, 12 insertions(+), 18 deletions(-) # # drivers/scsi/qla2xxx/qla_os.c # 2004/05/03 10:15:57-05:00 andrew.vasquez@qlogic.com +12 -18 # PATCH [11/15] qla2xxx: /proc fixes # # ChangeSet # 2004/05/10 09:28:20-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [10/15] qla2xxx: Use readX_relaxed # # Jeremy Higdon : # # For those to whom this is new (it was discussed on linux-kernel # and linux-ia64 I believe), normal PCI register reads imply that # PCI DMA writes that occured prior to the PCI MMR (memory mapped # register) read (on the PCI bus) will be reflected in system # memory once the MMR read is complete. # # On our platforms, we can speed up the MMR read significantly if # that ordering requirement is "relaxed". # # So I attempted to find the common register reads that don't # have a need for this ordering so that I could make them use # this faster read. # # drivers/scsi/qla2xxx/qla_def.h | 3 +++ # drivers/scsi/qla2xxx/qla_iocb.c | 6 +++--- # drivers/scsi/qla2xxx/qla_isr.c | 2 +- # 3 files changed, 7 insertions(+), 4 deletions(-) # # drivers/scsi/qla2xxx/qla_isr.c # 2004/05/03 10:15:38-05:00 andrew.vasquez@qlogic.com +1 -1 # PATCH [10/15] qla2xxx: Use readX_relaxed # # drivers/scsi/qla2xxx/qla_iocb.c # 2004/05/03 10:15:38-05:00 andrew.vasquez@qlogic.com +3 -3 # PATCH [10/15] qla2xxx: Use readX_relaxed # # drivers/scsi/qla2xxx/qla_def.h # 2004/05/03 10:15:38-05:00 andrew.vasquez@qlogic.com +3 -0 # PATCH [10/15] qla2xxx: Use readX_relaxed # # ChangeSet # 2004/05/10 09:27:07-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [9/15] qla2xxx: Tape command handling fixes # # Fix several problems when handling commands issued to tape devices: # # 1) insure commands are not prematurely returned to the mid-layer # with a failed status during loop/fabric transitions. # # 2) tape commands tend to have rather 'long' timeout values, # unfortunately, as the these values increase into the 17 to # 20 minute range (and larger), the cumulative skew of the # RISC's own timer result in commands being held for seconds # beyond their defined timeout values. Compensate for this # in the driver's command timeout function. # # drivers/scsi/qla2xxx/qla_def.h | 3 + # drivers/scsi/qla2xxx/qla_init.c | 4 ++ # drivers/scsi/qla2xxx/qla_isr.c | 10 ++--- # drivers/scsi/qla2xxx/qla_os.c | 74 ++++++++++++++++++++++++++++++++++++---- # 4 files changed, 79 insertions(+), 12 deletions(-) # # drivers/scsi/qla2xxx/qla_os.c # 2004/05/03 10:15:19-05:00 andrew.vasquez@qlogic.com +68 -6 # PATCH [9/15] qla2xxx: Tape command handling fixes # # drivers/scsi/qla2xxx/qla_isr.c # 2004/05/03 10:15:19-05:00 andrew.vasquez@qlogic.com +5 -5 # PATCH [9/15] qla2xxx: Tape command handling fixes # # drivers/scsi/qla2xxx/qla_init.c # 2004/05/03 10:15:19-05:00 andrew.vasquez@qlogic.com +4 -0 # PATCH [9/15] qla2xxx: Tape command handling fixes # # drivers/scsi/qla2xxx/qla_def.h # 2004/05/03 10:15:19-05:00 andrew.vasquez@qlogic.com +2 -1 # PATCH [9/15] qla2xxx: Tape command handling fixes # # ChangeSet # 2004/05/10 09:25:58-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [8/15] qla2xxx: Volatile topology fixes # # Fix problem where during ISP initialization in a volatile topology # (i.e. fabric environment with large number of streaming RSCNs) the # driver would loop indefinitely or hang due to termination of an # invalid thread pid. # # drivers/scsi/qla2xxx/qla_init.c | 142 ++++++++++++++++------------------------ # drivers/scsi/qla2xxx/qla_os.c | 1 # 2 files changed, 60 insertions(+), 83 deletions(-) # # drivers/scsi/qla2xxx/qla_os.c # 2004/05/03 10:15:01-05:00 andrew.vasquez@qlogic.com +1 -0 # PATCH [8/15] qla2xxx: Volatile topology fixes # # drivers/scsi/qla2xxx/qla_init.c # 2004/05/03 10:15:01-05:00 andrew.vasquez@qlogic.com +59 -83 # PATCH [8/15] qla2xxx: Volatile topology fixes # # ChangeSet # 2004/05/10 09:24:46-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [7/15] qla2xxx: Firmware options fixes # # Cleanup retrieval and update of firmware options: # # o Update only valid for non-(2[12]00) ISPs. # o Instruct firmware to return completed IOCBs without # waiting for an ABTS to complete. # # drivers/scsi/qla2xxx/qla_init.c | 79 +++++++++++++++++++++++++--------------- # 1 files changed, 50 insertions(+), 29 deletions(-) # # drivers/scsi/qla2xxx/qla_init.c # 2004/05/03 10:14:42-05:00 andrew.vasquez@qlogic.com +50 -29 # PATCH [7/15] qla2xxx: Firmware options fixes # # ChangeSet # 2004/05/10 09:23:44-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [6/15] qla2xxx: LoopID downcast fix # # Fix problem where the driver would incorrectly down-cast the target # loop_id while retrieving link statistics. # # drivers/scsi/qla2xxx/qla_gbl.h | 2 +- # drivers/scsi/qla2xxx/qla_mbx.c | 2 +- # 2 files changed, 2 insertions(+), 2 deletions(-) # # drivers/scsi/qla2xxx/qla_mbx.c # 2004/05/03 10:14:24-05:00 andrew.vasquez@qlogic.com +1 -1 # PATCH [6/15] qla2xxx: LoopID downcast fix # # drivers/scsi/qla2xxx/qla_gbl.h # 2004/05/03 10:14:24-05:00 andrew.vasquez@qlogic.com +1 -1 # PATCH [6/15] qla2xxx: LoopID downcast fix # # ChangeSet # 2004/05/10 09:21:29-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [5/15] qla2xxx: Debug messages during ISP abort # # Issue a kernel warning message before initiating an ISP abort (big # hammer) -- additional debugging mechanism in case of event. # # drivers/scsi/qla2xxx/qla_mbx.c | 9 +++++++++ # drivers/scsi/qla2xxx/qla_os.c | 2 ++ # drivers/scsi/qla2xxx/qla_rscn.c | 2 ++ # 3 files changed, 13 insertions(+) # # drivers/scsi/qla2xxx/qla_rscn.c # 2004/05/03 10:14:05-05:00 andrew.vasquez@qlogic.com +2 -0 # PATCH [5/15] qla2xxx: Debug messages during ISP abort # # drivers/scsi/qla2xxx/qla_os.c # 2004/05/03 10:14:05-05:00 andrew.vasquez@qlogic.com +2 -0 # PATCH [5/15] qla2xxx: Debug messages during ISP abort # # drivers/scsi/qla2xxx/qla_mbx.c # 2004/05/03 10:14:05-05:00 andrew.vasquez@qlogic.com +9 -0 # PATCH [5/15] qla2xxx: Debug messages during ISP abort # # ChangeSet # 2004/05/10 09:20:18-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [4/15] qla2xxx: PortID binding fixes # # Fix problem where port ID binding would not be honoured when # a device was moved within the fabric. # # drivers/scsi/qla2xxx/qla_init.c | 33 ++++++++++++++++++++++++--------- # 1 files changed, 24 insertions(+), 9 deletions(-) # # drivers/scsi/qla2xxx/qla_init.c # 2004/05/03 10:13:47-05:00 andrew.vasquez@qlogic.com +24 -9 # PATCH [4/15] qla2xxx: PortID binding fixes # # ChangeSet # 2004/05/10 09:18:48-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [3/15] qla2xxx: 2100 request-q contraints # # Older, notably the ISP2100, chips have some contraints for the request # queue depth and number of scatter-gather elements allowed for a # given command. For this chip, reduce request queue size to 128 and # maximum number of scatter-gather entries for a command to 32. # # drivers/scsi/qla2xxx/qla_def.h | 14 +++----------- # drivers/scsi/qla2xxx/qla_init.c | 9 +++++---- # drivers/scsi/qla2xxx/qla_iocb.c | 14 +++++++------- # drivers/scsi/qla2xxx/qla_os.c | 14 +++++++++----- # drivers/scsi/qla2xxx/qla_rscn.c | 2 +- # 5 files changed, 25 insertions(+), 28 deletions(-) # # drivers/scsi/qla2xxx/qla_rscn.c # 2004/05/03 10:13:28-05:00 andrew.vasquez@qlogic.com +1 -1 # PATCH [3/15] qla2xxx: 2100 request-q contraints # # drivers/scsi/qla2xxx/qla_os.c # 2004/05/03 10:13:28-05:00 andrew.vasquez@qlogic.com +9 -5 # PATCH [3/15] qla2xxx: 2100 request-q contraints # # drivers/scsi/qla2xxx/qla_iocb.c # 2004/05/03 10:13:28-05:00 andrew.vasquez@qlogic.com +7 -7 # PATCH [3/15] qla2xxx: 2100 request-q contraints # # drivers/scsi/qla2xxx/qla_init.c # 2004/05/03 10:13:28-05:00 andrew.vasquez@qlogic.com +5 -4 # PATCH [3/15] qla2xxx: 2100 request-q contraints # # drivers/scsi/qla2xxx/qla_def.h # 2004/05/03 10:13:28-05:00 andrew.vasquez@qlogic.com +3 -11 # PATCH [3/15] qla2xxx: 2100 request-q contraints # # ChangeSet # 2004/05/10 09:17:18-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [2/15] qla2xxx: Remove flash routines # # Remove flash support from embedded driver: # # o Remove unused option-rom variables from host structure. # o Remove flash manipulation routines. # # drivers/scsi/qla2xxx/qla_def.h | 2 # drivers/scsi/qla2xxx/qla_gbl.h | 8 # drivers/scsi/qla2xxx/qla_init.c | 3 # drivers/scsi/qla2xxx/qla_sup.c | 446 ---------------------------------------- # 4 files changed, 459 deletions(-) # # drivers/scsi/qla2xxx/qla_sup.c # 2004/05/03 10:13:09-05:00 andrew.vasquez@qlogic.com +0 -446 # PATCH [2/15] qla2xxx: Remove flash routines # # drivers/scsi/qla2xxx/qla_init.c # 2004/05/03 10:13:09-05:00 andrew.vasquez@qlogic.com +0 -3 # PATCH [2/15] qla2xxx: Remove flash routines # # drivers/scsi/qla2xxx/qla_gbl.h # 2004/05/03 10:13:09-05:00 andrew.vasquez@qlogic.com +0 -8 # PATCH [2/15] qla2xxx: Remove flash routines # # drivers/scsi/qla2xxx/qla_def.h # 2004/05/03 10:13:09-05:00 andrew.vasquez@qlogic.com +0 -2 # PATCH [2/15] qla2xxx: Remove flash routines # # ChangeSet # 2004/05/10 09:15:55-05:00 andrew.vasquez@qlogic.com # [PATCH] PATCH [1/15] qla2xxx: Firmware dump fixes # # ISP dump routine fixes: # # o Properly release hardware_lock in failure path. # # o Fix inability to complete ISP2100 dump, by properly # reseting the RISC after register reads. # # drivers/scsi/qla2xxx/qla_dbg.c | 34 ++++++++++++---------------------- # 1 files changed, 12 insertions(+), 22 deletions(-) # # drivers/scsi/qla2xxx/qla_dbg.c # 2004/05/03 10:12:51-05:00 andrew.vasquez@qlogic.com +12 -22 # PATCH [1/15] qla2xxx: Firmware dump fixes # # ChangeSet # 2004/05/10 09:15:12-05:00 jejb@mulgrave.(none) # MPT Fusion driver 3.01.06 update # # From: Moore, Eric Dean # # drivers/message/fusion/mptscsih.c # 2004/05/10 09:14:57-05:00 jejb@mulgrave.(none) +0 -4 # MPT Fusion driver 3.01.06 update # # drivers/message/fusion/mptbase.h # 2004/05/10 09:14:57-05:00 jejb@mulgrave.(none) +2 -2 # MPT Fusion driver 3.01.06 update # # ChangeSet # 2004/05/10 09:10:59-05:00 brking@us.ibm.com # [PATCH] Make SCSI timeout modifiable # # add a timeout field to struct scsi_device and expose it in in sysfs. # # This patch allows LLDs to override the default timeout used for scsi devices # and exposes it in sysfs. The default timeout value used is too short for # many RAID array devices, such as those created by the ipr driver. # # include/scsi/scsi_device.h # 2004/04/30 04:52:16-05:00 brking@us.ibm.com +2 -0 # Make SCSI timeout modifiable # # drivers/scsi/sd.c # 2004/04/30 04:55:42-05:00 brking@us.ibm.com +8 -3 # Make SCSI timeout modifiable # # drivers/scsi/scsi_sysfs.c # 2004/04/30 04:53:56-05:00 brking@us.ibm.com +21 -0 # Make SCSI timeout modifiable # # ChangeSet # 2004/05/10 09:56:02+01:00 aia21@cantab.net # NTFS: 2.1.9 release - Fix two bugs in the decompression engine # in handling of corner cases. # # fs/ntfs/compress.c # 2004/05/10 09:55:48+01:00 aia21@cantab.net +22 -7 # - Fix a bug where we would not always detect that we have reached the # end of a compression block because we were ending at minus one byte # which is effectively the same as being at the end. The fix is to # check whether the uncompressed buffer has been fully filled and if so # we assume we have reached the end of the compression block. A big # thank you to Marcin Gibu\x{0142}a for the bug report, the assistance in # tracking down the bug and testing the fix. # - Fix a possible bug where when a compressed read is truncated to the # end of the file, the offset inside the last page was not truncated. # # fs/ntfs/Makefile # 2004/05/10 09:55:48+01:00 aia21@cantab.net +1 -1 # Update version to 2.1.9. # # fs/ntfs/ChangeLog # 2004/05/10 09:55:48+01:00 aia21@cantab.net +13 -1 # Update for 2.1.9 release. # # Documentation/filesystems/ntfs.txt # 2004/05/10 09:55:48+01:00 aia21@cantab.net +2 -0 # Update for 2.1.9 release. # # ChangeSet # 2004/05/09 23:00:33-07:00 davem@nuts.davemloft.net # [TG3]: Do not write stats coalescing ticks reg on 5705/5750. # # drivers/net/tg3.c # 2004/05/09 23:00:16-07:00 davem@nuts.davemloft.net +8 -5 # [TG3]: Do not write stats coalescing ticks reg on 5705/5750. # # ChangeSet # 2004/05/09 22:51:30-07:00 davem@nuts.davemloft.net # [TG3]: Correct RDMAC/WDMAC mode settings on 5705/5750. # # drivers/net/tg3.h # 2004/05/09 22:51:13-07:00 davem@nuts.davemloft.net +2 -0 # [TG3]: Correct RDMAC/WDMAC mode settings on 5705/5750. # # drivers/net/tg3.c # 2004/05/09 22:51:13-07:00 davem@nuts.davemloft.net +25 -13 # [TG3]: Correct RDMAC/WDMAC mode settings on 5705/5750. # # ChangeSet # 2004/05/09 22:33:21-07:00 davem@nuts.davemloft.net # [TG3]: Double delay after writing MAC_MI_MODE reg. # # drivers/net/tg3.c # 2004/05/09 22:33:04-07:00 davem@nuts.davemloft.net +8 -8 # [TG3]: Double delay after writing MAC_MI_MODE reg. # # ChangeSet # 2004/05/09 22:29:53-07:00 davem@nuts.davemloft.net # [TG3]: Do not set CLOCK_CTRL_DELAY_PCI_GRANT on PCI Express. # # drivers/net/tg3.c # 2004/05/09 22:29:34-07:00 davem@nuts.davemloft.net +4 -2 # [TG3]: Do not set CLOCK_CTRL_DELAY_PCI_GRANT on PCI Express. # # ChangeSet # 2004/05/09 22:26:54-07:00 davem@nuts.davemloft.net # [TG3]: Fix chiprev test in previous change. # # drivers/net/tg3.c # 2004/05/09 22:26:36-07:00 davem@nuts.davemloft.net +1 -1 # [TG3]: Fix chiprev test in previous change. # # ChangeSet # 2004/05/09 22:22:49-07:00 davem@nuts.davemloft.net # [TG3]: PCI Express 5750_A0 chips need 5701_REG_WRITE_BUG treatment. # # drivers/net/tg3.c # 2004/05/09 22:22:32-07:00 davem@nuts.davemloft.net +5 -1 # [TG3]: PCI Express 5750_A0 chips need 5701_REG_WRITE_BUG treatment. # # ChangeSet # 2004/05/09 22:17:55-07:00 davem@nuts.davemloft.net # [TIGON3]: Detect and record PCI Express. # # drivers/net/tg3.h # 2004/05/09 22:17:35-07:00 davem@nuts.davemloft.net +1 -0 # [TIGON3]: Detect and record PCI Express. # # drivers/net/tg3.c # 2004/05/09 22:17:35-07:00 davem@nuts.davemloft.net +3 -0 # [TIGON3]: Detect and record PCI Express. # # ChangeSet # 2004/05/08 20:57:41-07:00 davem@nuts.davemloft.net # [TG3]: Prepare for 5750 support plus minor fixes. # # 1) Handle cases that apply to 5750 the same as 5705. # 2) Only set CLOCK_CTRL_FORCE_CLKRUN on 5705_A0 # 3) Clear out on-chip and memory stats block right before # setting MAC_MODE. # 4) On bootup chip probe, always skip PHY reset if link # is up. # # drivers/net/tg3.c # 2004/05/08 20:57:12-07:00 davem@nuts.davemloft.net +65 -46 # [TG3]: Prepare for 5750 support plus minor fixes. # # 1) Handle cases that apply to 5750 the same as 5705. # 2) Only set CLOCK_CTRL_FORCE_CLKRUN on 5705_A0 # 3) Clear out on-chip and memory stats block right before # setting MAC_MODE. # 4) On bootup chip probe, always skip PHY reset if link # is up. # # ChangeSet # 2004/05/08 20:05:09-07:00 davem@nuts.davemloft.net # [TG3]: Add 5750 chip and PHY IDs. # # drivers/net/tg3.h # 2004/05/08 20:04:52-07:00 davem@nuts.davemloft.net +5 -1 # [TG3]: Add 5750 chip and PHY IDs. # # ChangeSet # 2004/05/08 19:54:32-07:00 davem@nuts.davemloft.net # [TG3]: Add 572x/575x PCI IDs. # # include/linux/pci_ids.h # 2004/05/08 19:54:13-07:00 davem@nuts.davemloft.net +5 -0 # [TG3]: Add 572x/575x PCI IDs. # # drivers/pci/pci.ids # 2004/05/08 19:54:13-07:00 davem@nuts.davemloft.net +10 -0 # [TG3]: Add 572x/575x PCI IDs. # # ChangeSet # 2004/05/07 14:22:49-07:00 greg@kroah.com # Add modules to sysfs # # This patch adds basic kobject support to struct module, and it creates a # /sys/module directory which contains all of the individual modules. Each # module currently exports the refcount (if they are unloadable) and any # module paramaters that are marked exportable in sysfs. # # Was written by me and Rusty over and over many times during the past 6 months. # # kernel/params.c # 2004/05/07 14:22:37-07:00 greg@kroah.com +1 -1 # Add modules to sysfs # # This patch adds basic kobject support to struct module, and it creates a # /sys/module directory which contains all of the individual modules. Each # module currently exports the refcount (if they are unloadable) and any # module paramaters that are marked exportable in sysfs. # # Was written by me and Rusty over and over many times during the past 6 months. # # kernel/module.c # 2004/05/07 14:22:37-07:00 greg@kroah.com +160 -0 # Add modules to sysfs # # This patch adds basic kobject support to struct module, and it creates a # /sys/module directory which contains all of the individual modules. Each # module currently exports the refcount (if they are unloadable) and any # module paramaters that are marked exportable in sysfs. # # Was written by me and Rusty over and over many times during the past 6 months. # # include/linux/moduleparam.h # 2004/05/07 14:22:37-07:00 greg@kroah.com +2 -2 # Add modules to sysfs # # This patch adds basic kobject support to struct module, and it creates a # /sys/module directory which contains all of the individual modules. Each # module currently exports the refcount (if they are unloadable) and any # module paramaters that are marked exportable in sysfs. # # Was written by me and Rusty over and over many times during the past 6 months. # # include/linux/module.h # 2004/05/07 14:22:37-07:00 greg@kroah.com +25 -0 # Add modules to sysfs # # This patch adds basic kobject support to struct module, and it creates a # /sys/module directory which contains all of the individual modules. Each # module currently exports the refcount (if they are unloadable) and any # module paramaters that are marked exportable in sysfs. # # Was written by me and Rusty over and over many times during the past 6 months. # # ChangeSet # 2004/05/07 16:05:39-05:00 shaggy@austin.ibm.com # JFS: [CHECKER] More robust error recovery in add_index # # If an error is encountered in add_index, it now leaves the index table # in a consistent state. Since the return value is stored in the # directory entry regardless of add_index's success, return zero # instead of -EPERM (which made no sense). # # fs/jfs/jfs_dtree.c # 2004/05/07 16:05:21-05:00 shaggy@austin.ibm.com +16 -12 # Clean up add_index failure # # ChangeSet # 2004/05/07 10:32:36-05:00 shaggy@austin.ibm.com # JFS: reduce stack usage # # fs/jfs/jfs_dtree.c # 2004/05/07 10:32:20-05:00 shaggy@austin.ibm.com +34 -14 # Get long unicode names off the stack # # ChangeSet # 2004/05/07 09:38:25-05:00 shaggy@austin.ibm.com # JFS: Avoid race invalidating metadata page # # fs/jfs/jfs_metapage.h # 2004/05/07 09:38:07-05:00 shaggy@austin.ibm.com +1 -0 # Avoid race between __get_metapage & release_metapage # # fs/jfs/jfs_metapage.c # 2004/05/07 09:38:07-05:00 shaggy@austin.ibm.com +67 -40 # Avoid race between __get_metapage & release_metapage # # ChangeSet # 2004/05/06 22:45:23-04:00 jgarzik@redhat.com # Merge redhat.com:/spare/repo/linux-2.6 # into redhat.com:/spare/repo/libata-2.6 # # include/linux/pci_ids.h # 2004/05/06 22:45:19-04:00 jgarzik@redhat.com +0 -0 # Auto merged # # drivers/scsi/sata_vsc.c # 2004/05/06 22:45:19-04:00 jgarzik@redhat.com +0 -4 # Auto merged # # drivers/scsi/sata_sis.c # 2004/05/06 22:45:19-04:00 jgarzik@redhat.com +0 -0 # Auto merged # # ChangeSet # 2004/05/05 16:43:11-07:00 Matt_Domsch@dell.com # [PATCH] PCI: PCI devices with no PCI_CACHE_LINE_SIZE implemented # # On Wed, May 05, 2004 at 03:31:02PM -0700, Greg KH wrote: # > On Thu, Apr 29, 2004 at 02:53:01PM -0500, Matt Domsch wrote: # > > a) need this be a warning, wouldn't KERN_DEBUG suffice, if a message # > > is needed at all? This is printed in pci_generic_prep_mwi(). # > # > Yes, we should make that KERN_DEBUG. I don't have a problem with that. # > Care to make a patch? # # drivers/pci/pci.c # 2004/05/05 10:39:08-07:00 Matt_Domsch@dell.com +1 -1 # PCI: PCI devices with no PCI_CACHE_LINE_SIZE implemented # # ChangeSet # 2004/05/05 16:14:40-07:00 hunold@convergence.de # [PATCH] I2C: add .class to i2c drivers # # in the "[RFC|PATCH][2.6] Additional i2c adapter flags for i2c client # isolation" thread, the i2c people have agreed that an ".class" field # should be added to struct i2c_driver. # # Currently only drivers do checks for plausibility ("Is this an adapter I # can attach to?"), but adapters don't have a chance to keep drivers away # from their bus. # # If both drivers and adapters provide a .class entry, the i2c-core can # easily compare them and let devices only probe on busses where they can # really exist. # # Real world example: DVB i2c adapters cannot ensure that only known DVB # i2c chipsets probe their busses. Most client drivers probe every bus # they get their hands on. This will confuse some DVB i2c busses. # # With the new I2C_CLASS_ALL flag it will be possible that an adapter can # request that really all drivers are probed on the adapter. On the other # hand, drivers can make sure that they get the chance to probe on every # i2c adapter out there (this is not encouraged, though) # # The attached patch does the first step: # - add .class member to struct i2c_device # - remove unused .flags member from struct i2c_adapter # - rename I2C_ADAP_CLASS_xxx to I2C_CLASS_xxx (to be used both for # drivers and adapters) # - add new I2C_CLASS_ALL and I2C_CLASS_SOUND classes # - follow these changes in the existing drivers with copy & paste # # include/linux/i2c.h # 2004/05/05 09:29:31-07:00 hunold@convergence.de +9 -7 # I2C: add .class to i2c drivers # # drivers/usb/media/w9968cf.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/media/video/tvmixer.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +2 -2 # I2C: add .class to i2c drivers # # drivers/media/video/tvaudio.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +2 -2 # I2C: add .class to i2c drivers # # drivers/media/video/tuner.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +2 -2 # I2C: add .class to i2c drivers # # drivers/media/video/tda9887.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +2 -2 # I2C: add .class to i2c drivers # # drivers/media/video/tda9875.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +2 -2 # I2C: add .class to i2c drivers # # drivers/media/video/tda7432.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +2 -2 # I2C: add .class to i2c drivers # # drivers/media/video/saa7134/saa7134-i2c.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +2 -2 # I2C: add .class to i2c drivers # # drivers/media/video/saa7134/saa6752hs.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/media/video/saa5249.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/media/video/saa5246a.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/media/video/mxb.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/media/video/msp3400.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +2 -2 # I2C: add .class to i2c drivers # # drivers/media/video/hexium_orion.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/media/video/hexium_gemini.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/media/video/dpc7146.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/media/video/cx88/cx88-i2c.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +2 -2 # I2C: add .class to i2c drivers # # drivers/media/video/bttv-i2c.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +4 -4 # I2C: add .class to i2c drivers # # drivers/media/video/bt832.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/chips/w83l785ts.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/chips/w83781d.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/chips/via686a.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/chips/lm90.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/chips/lm83.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/chips/lm80.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/chips/lm78.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/chips/lm75.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/chips/it87.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/chips/gl518sm.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/chips/fscher.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/chips/asb100.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/chips/adm1021.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-voodoo3.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +2 -2 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-viapro.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-via.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-sis96x.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-sis630.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-sis5595.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-piix4.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-parport.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-parport-light.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-nforce2.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-isa.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-i801.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-amd8111.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-amd756.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-ali15x3.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-ali1563.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # drivers/i2c/busses/i2c-ali1535.c # 2004/05/05 02:40:37-07:00 hunold@convergence.de +1 -1 # I2C: add .class to i2c drivers # # Documentation/i2c/porting-clients # 2004/05/05 02:40:37-07:00 hunold@convergence.de +2 -2 # I2C: add .class to i2c drivers # # ChangeSet # 2004/05/05 15:34:40-07:00 khali@linux-fr.org # [PATCH] I2C: Fix memory leaks in w83781d and asb100 # # Quoting myself # # > U-ho. I think I've introduced a memory leak with this patch :( # > # > For drivers that handle subclients (asb100 and w83781d on i2c), the # > sublient memory is never released if I read the code correctly. This # > is because we now free the private data on unload, assuming that it # > contains the i2c client data as well. That's true for the main i2c # > client, but not for the subclients (data == NULL so nothing is freed). # > # > Could someone take a look and confirm? # # I could test and actually saw memory leaking when cycling the w83781d # driver at a sustained rate (5/s). # # > I can see two different fixes: # > # > 1* When freeing the memory, free the data if it's not NULL (main # > client), else free client (subclients). Cleaner (I suppose?). # > # > 2* When creating subclients, do data = &client instead of data = NULL. # > Then freeing will work. Less code, faster. Are there side effects? (I # > don't think so) # > # > My preference would go to 2*. # # I ended up implementing 1*. That's cleaner and there's actually almost # no extra code. # # Mark, can you confirm that I'm doing the correct thing? I'll do # something similar in our CVS repository (for now, the asb100 and w83781d # drivers had not their memory allocation scheme reworked there). # # drivers/i2c/chips/w83781d.c # 2004/05/02 14:51:11-07:00 khali@linux-fr.org +7 -1 # I2C: Fix memory leaks in w83781d and asb100 # # drivers/i2c/chips/asb100.c # 2004/05/02 14:51:17-07:00 khali@linux-fr.org +7 -1 # I2C: Fix memory leaks in w83781d and asb100 # # ChangeSet # 2004/05/05 15:34:20-07:00 khali@linux-fr.org # [PATCH] I2C: Rewrite temperature conversions in via686a driver # # The following patch rewrites the temperature conversion macros and # functions found in the via686a chip driver. Contrary to the voltage # conversions a few weeks ago, temperature conversions were numerically # correct, but artificially complex. The new ones are cleaner. It also # fixes a highly improbable array overflow (would take one of the measured # temperatures to be over 145 degrees C). # # Successfully tested by Mark D. Studebaker and I, and already applied to # our CVS repository. # # drivers/i2c/chips/via686a.c # 2004/05/01 10:26:35-07:00 khali@linux-fr.org +21 -42 # I2C: Rewrite temperature conversions in via686a driver # # ChangeSet # 2004/05/05 15:34:00-07:00 khali@linux-fr.org # [PATCH] I2C: Invert as99127f beep bits in kernel space # # The following patch changes the way we invert beep bits for the AS99127F # sensor chip. This chip behaves differently from the other chips in that # a disabled bit is 1, not 0. So far we didn't handle that specificity in # the w83781d driver, so it was left to user-space applications to handle # it. For the sake of uniformity, it's obviously better if it's done in # the driver instead (although the meaning of each bit is still # chip-dependant). # # I already did a similar change to the 2.4 driver and the sensors # program. I don't think that many user-space application will be # affected, since most of them don't handle the beep mask as far as I can # tell. # # This also close Debian bug #209299: # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=209299 # # Successfully tested on my AS99127F rev.1 chip. Aurelien Jarno also # checked that there were no regression on non-Asus chips. # # drivers/i2c/chips/w83781d.c # 2004/05/02 08:09:44-07:00 khali@linux-fr.org +16 -10 # I2C: Invert as99127f beep bits in kernel space # # ChangeSet # 2004/05/05 15:33:39-07:00 khali@linux-fr.org # [PATCH] I2C: Sensors (W83627HF) in Tyan S2882 # # drivers/i2c/chips/Kconfig # 2004/04/19 12:21:53-07:00 khali@linux-fr.org +1 -1 # I2C: Sensors (W83627HF) in Tyan S2882 # # ChangeSet # 2004/05/05 15:10:00-07:00 bellucda@tiscali.it # [PATCH] missing audit in bus_register() # # |How about using a goto on the error path to clean up properly # |instead of the different return sections. # # .. here goes Take 2: # # drivers/base/bus.c # 2004/04/28 11:45:19-07:00 bellucda@tiscali.it +18 -3 # missing audit in bus_register() # # ChangeSet # 2004/05/05 14:40:43-07:00 greg@kroah.com # Driver core: handle error if we run out of memory in kmap code # # drivers/base/map.c # 2004/05/05 07:39:44-07:00 greg@kroah.com +7 -0 # Driver core: handle error if we run out of memory in kmap code # # ChangeSet # 2004/05/05 14:32:49-07:00 herbert@gondor.apana.org.au # [PATCH] USB Storage: Sony Clie # # I've received the following report which indicates that the Sony Clie needs # the US_FL_FIX_INQUIRY flag set. # # http://bugs.debian.org/243650 # # drivers/usb/storage/unusual_devs.h # 2004/04/16 17:47:39-07:00 herbert@gondor.apana.org.au +7 -0 # USB Storage: Sony Clie # # ChangeSet # 2004/05/05 14:20:44-07:00 lxiep@us.ibm.com # [PATCH] PCI Hotplug: rpaphp doesn't initialize slot's name # # Attached is a revised version of rpaphp.patch. It has the following fixes: # - Set up slot->name # - Kill some dbgs # - Eike's fixes # - New fixes for incorrect "goto" in rpaphp_slot.c. # # ChangeSet # 2004/05/05 14:10:42-07:00 stern@rowland.harvard.edu # [PATCH] PATCH: (as268) Import device-reset changes from gadget-2.6 tree # # This patch imports the changes that David Brownell has made to the # device-reset functions in his gadget-2.6 tree. Once these ongoing # troubling questions about locking are settled, I'll add support for the # "descriptors changed" case. # # drivers/usb/core/hub.c # 2004/05/03 08:02:43-07:00 stern@rowland.harvard.edu +99 -97 # PATCH: (as268) Import device-reset changes from gadget-2.6 tree # # ChangeSet # 2004/05/05 13:44:44-07:00 al.fracchetti@tin.it # [PATCH] USB Storage: Kyocera Finecsm 3L -unusual_devs.h # # drivers/usb/storage/unusual_devs.h # 2004/03/27 10:48:01-08:00 al.fracchetti@tin.it +6 -0 # USB Storage: Kyocera Finecsm 3L -unusual_devs.h # # ChangeSet # 2004/05/05 13:36:39-07:00 stern@rowland.harvard.edu # [PATCH] USB: Small change to CPiA USB driver # # Only one aspect of it is notable: The CPiA USB # driver calls usb_driver_release_interface() during its disconnect() # routine. That doesn't appear to be necessary, since it didn't call # usb_driver_claim_interface() beforehand and since the interface will be # released automatically when disconnect() returns. # # drivers/media/video/cpia_usb.c # 2004/04/27 06:54:33-07:00 stern@rowland.harvard.edu +1 -3 # USB: Small change to CPiA USB driver # # ChangeSet # 2004/05/05 13:36:11-07:00 stern@rowland.harvard.edu # [PATCH] USB Storage: unusual_devs.h update # # On 4 May 2004, Rajesh Kumble Nayak wrote: # # > The Above patch work fine for Sony Hc-85 # > I shall post the dmesg entry soon. # > # > With many thanks # > Rajesh # # Greg and Pete, here's the patch. It's possible that this entry could be # combined with the previous one, but until we know definitely they should # be kept separate. # # drivers/usb/storage/unusual_devs.h # 2004/04/29 07:42:22-07:00 stern@rowland.harvard.edu +7 -0 # USB Storage: unusual_devs.h update # # ChangeSet # 2004/05/05 13:35:43-07:00 stern@rowland.harvard.edu # [PATCH] USB: Reduce kernel stack usage # # This patch allocates a temporary array from the heap instead of from the # kernel's stack in usb_set_configuration(). It also updates a few # comments. Please apply. # # drivers/usb/core/message.c # 2004/05/03 03:26:40-07:00 stern@rowland.harvard.edu +23 -12 # USB: Reduce kernel stack usage # # ChangeSet # 2004/05/05 13:35:14-07:00 daniel.ritz@gmx.ch # [PATCH] USB: add support for eGalax Touchscreen USB # # this is the second version of the patch to add support for eGalax Touchkit USB # touchscreen. changes since last patch: # - fixed the bug in open, found by oliver neukum # - renamed driver from touchkit.c to touchkitusb.c (since the thing also exists # as RS232, PS/2 and I2C) # - some minor coding style updates # # drivers/usb/input/touchkitusb.c # 2004/05/02 07:32:32-07:00 daniel.ritz@gmx.ch +310 -0 # USB: add support for eGalax Touchscreen USB # # drivers/usb/input/Makefile # 2004/04/25 09:18:58-07:00 daniel.ritz@gmx.ch +1 -0 # USB: add support for eGalax Touchscreen USB # # drivers/usb/input/Kconfig # 2004/05/01 10:40:50-07:00 daniel.ritz@gmx.ch +13 -0 # USB: add support for eGalax Touchscreen USB # # drivers/usb/input/touchkitusb.c # 2004/05/02 07:32:32-07:00 daniel.ritz@gmx.ch +0 -0 # BitKeeper file /home/greg/linux/BK/usb-2.6/drivers/usb/input/touchkitusb.c # # ChangeSet # 2004/05/05 13:34:46-07:00 david-b@pacbell.net # [PATCH] USB: usbnet handles Billionton Systems USB2AR # # This adds another ax8817x device to "usbnet". # # drivers/usb/net/usbnet.c # 2004/04/26 14:32:52-07:00 david-b@pacbell.net +4 -0 # USB: usbnet handles Billionton Systems USB2AR # # ChangeSet # 2004/05/05 13:34:16-07:00 stefan.eletzhofer@eletztrick.de # [PATCH] USB Gadget: fix g_serial debug module parm # # g_serial.ko can't be load as module because "debug" is only # defined if G_SERIAL_DEBUG is defined, but "debug" is referenced # in MODULE_PARM(). # # drivers/usb/gadget/serial.c # 2004/05/04 17:00:00-07:00 stefan.eletzhofer@eletztrick.de +5 -1 # USB Gadget: fix g_serial debug module parm # # ChangeSet # 2004/05/05 13:33:47-07:00 stefan.eletzhofer@eletztrick.de # [PATCH] USB Gadget: fix pxa define in gadget_chips.h # # below is a trivial patch which fixes the PXA gadget define # in drivers/linux/usb/gadget/gadget_chips.h # # Everywhere CONFIG_USB_GADGET_PXA2XX is used, except in that file, which # bites obviously ... # # # Fix define for PXA UDC. # # drivers/usb/gadget/gadget_chips.h # 2004/05/04 17:00:00-07:00 stefan.eletzhofer@eletztrick.de +1 -1 # USB Gadget: fix pxa define in gadget_chips.h # # ChangeSet # 2004/05/05 12:13:23-07:00 greg@kroah.com # USB: add support for Zire 31 devices. # # Info was from Adriaan de Groot # # drivers/usb/serial/visor.h # 2004/05/05 05:12:42-07:00 greg@kroah.com +1 -0 # USB: add support for Zire 31 devices. # # Info was from Adriaan de Groot # # drivers/usb/serial/visor.c # 2004/05/05 05:12:42-07:00 greg@kroah.com +3 -0 # USB: add support for Zire 31 devices. # # Info was from Adriaan de Groot # # ChangeSet # 2004/05/05 12:09:08-07:00 greg@kroah.com # PCI Hotplug: revert broken PCI Express hotplug patch # # drivers/pci/hotplug/pciehp_core.c # 2004/05/05 05:08:03-07:00 greg@kroah.com +32 -34 # PCI Hotplug: revert broken PCI Express hotplug patch # # ChangeSet # 2004/05/04 14:16:58-07:00 olh@suse.de # [PATCH] add simple class for adb # # This adds /sys/class/adb/, removes unused devfs lines and updates a # comment to match reality. # # drivers/macintosh/adb.c # 2004/05/01 10:58:08-07:00 olh@suse.de +13 -6 # add simple class for adb # # ChangeSet # 2004/05/04 16:50:21-04:00 jgarzik@redhat.com # [netdrvr b44] use miilib for MII ioctl handling # # drivers/net/b44.h # 2004/05/04 16:50:16-04:00 jgarzik@redhat.com +2 -0 # [netdrvr b44] use miilib for MII ioctl handling # # drivers/net/b44.c # 2004/05/04 16:50:16-04:00 jgarzik@redhat.com +34 -31 # [netdrvr b44] use miilib for MII ioctl handling # # ChangeSet # 2004/05/04 16:36:29-04:00 jgarzik@redhat.com # [netdrvr b44] use netdev_priv # # drivers/net/b44.c # 2004/05/04 16:36:24-04:00 jgarzik@redhat.com +16 -14 # [netdrvr b44] use netdev_priv # # ChangeSet # 2004/05/04 16:33:55-04:00 jgarzik@redhat.com # [netdrvr b44] ethtool_ops support # # drivers/net/b44.c # 2004/05/04 16:33:50-04:00 jgarzik@redhat.com +195 -210 # [netdrvr b44] ethtool_ops support # # ChangeSet # 2004/05/04 09:30:28-05:00 akpm@osdl.org # [PATCH] support swsusp for aic7xxx # # From: Pavel Machek # # Marks threads as needed for suspend. # DESC # aic79xx_osm.c build fix # EDESC # # drivers/scsi/aic7xxx/aic79xx_osm.c: In function `ahd_linux_dv_thread': # drivers/scsi/aic7xxx/aic79xx_osm.c:2594: `PF_IOTHREAD' undeclared (first use in this function) # # drivers/scsi/aic7xxx/aic7xxx_osm.c # 2004/04/26 01:09:37-05:00 akpm@osdl.org +1 -0 # support swsusp for aic7xxx # # drivers/scsi/aic7xxx/aic79xx_osm.c # 2004/04/26 01:09:37-05:00 akpm@osdl.org +1 -0 # support swsusp for aic7xxx # # ChangeSet # 2004/05/04 09:25:05-05:00 rddunlap@osdl.org # [PATCH] (3/5) ncr53c8x: use kernel.h min/max # # From: Michael Veeck # Subject: [Kernel-janitors] [PATCH] drivers/scsi/53c* MIN/MAX removal # # # Patch (against 2.6.6-rc1) removes unnecessary min/max macros and changes # calls to use kernel.h macros instead. # # # drivers/scsi/ncr53c8xx.c | 6 +++--- # drivers/scsi/sym53c8xx_comm.h | 5 +---- # 2 files changed, 4 insertions(+), 7 deletions(-) # # drivers/scsi/sym53c8xx_comm.h # 2004/04/23 00:32:08-05:00 rddunlap@osdl.org +1 -4 # (3/5) ncr53c8x: use kernel.h min/max # # drivers/scsi/ncr53c8xx.c # 2004/04/23 00:32:08-05:00 rddunlap@osdl.org +3 -3 # (3/5) ncr53c8x: use kernel.h min/max # # ChangeSet # 2004/05/04 09:24:23-05:00 rddunlap@osdl.org # [PATCH] (4/5) nsp32 (ninja): use kernel.h min/max/ARRAY_SIZE # # From: Michael Veeck # Subject: [Kernel-janitors] [PATCH] drivers/scsi/nsp MIN/MAX/NUMBER removal # # Patch (against 2.6.6-rc1) removes unnecessary min/max/number macros and # changes calls to use kernel.h macros instead. # # # drivers/scsi/nsp32.c | 24 ++++++++++++------------ # drivers/scsi/nsp32.h | 4 ---- # 2 files changed, 12 insertions(+), 16 deletions(-) # # drivers/scsi/nsp32.h # 2004/04/23 00:34:00-05:00 rddunlap@osdl.org +0 -4 # (4/5) nsp32 (ninja): use kernel.h min/max/ARRAY_SIZE # # drivers/scsi/nsp32.c # 2004/04/23 00:34:00-05:00 rddunlap@osdl.org +12 -12 # (4/5) nsp32 (ninja): use kernel.h min/max/ARRAY_SIZE # # ChangeSet # 2004/05/04 09:23:43-05:00 rddunlap@osdl.org # [PATCH] (2/5) aic7xyz_old: use kernel.h min/max/ARRAY_SIZE # # From: Michael Veeck # Subject: [Kernel-janitors] [PATCH] drivers/scsi/aic7xxx_old MIN/MAX/NUMBER # removal # # Patch (against 2.6.6-rc1) removes unnecessary min/max/number macros and # changes calls to use kernel.h macros instead. # # # drivers/scsi/aic7xxx_old.c | 43 ++++++++++++++------------------ # drivers/scsi/aic7xxx_old/aic7xxx_proc.c | 6 ++-- # 2 files changed, 23 insertions(+), 26 deletions(-) # # drivers/scsi/aic7xxx_old/aic7xxx_proc.c # 2004/04/23 00:31:11-05:00 rddunlap@osdl.org +3 -3 # (2/5) aic7xyz_old: use kernel.h min/max/ARRAY_SIZE # # drivers/scsi/aic7xxx_old.c # 2004/04/23 00:31:11-05:00 rddunlap@osdl.org +20 -23 # (2/5) aic7xyz_old: use kernel.h min/max/ARRAY_SIZE # # ChangeSet # 2004/05/04 09:22:56-05:00 rddunlap@osdl.org # [PATCH] (5/5) pcmcia/nsp: use kernel.h min/max/ARRAY_SIZE # # From: Michael Veeck # Subject: [Kernel-janitors] [PATCH] drivers/scsi/pcmcia MIN/MAX/NUMBER removal # # # Patch (against 2.6.6-rc1) removes unnecessary min/max/number macros and # changes calls to use kernel.h macros instead. # # # drivers/scsi/pcmcia/nsp_cs.c | 12 ++++++------ # drivers/scsi/pcmcia/nsp_cs.h | 2 -- # 2 files changed, 6 insertions(+), 8 deletions(-) # # drivers/scsi/pcmcia/nsp_cs.h # 2004/04/23 00:34:49-05:00 rddunlap@osdl.org +0 -2 # (5/5) pcmcia/nsp: use kernel.h min/max/ARRAY_SIZE # # drivers/scsi/pcmcia/nsp_cs.c # 2004/04/23 00:34:49-05:00 rddunlap@osdl.org +6 -6 # (5/5) pcmcia/nsp: use kernel.h min/max/ARRAY_SIZE # # ChangeSet # 2004/05/04 09:21:23-05:00 akpm@osdl.org # [PATCH] aic7xxx deadlock fix # # We cannot call del_timer_sync() from within that timer's handler function! # # drivers/scsi/aic7xxx/aic7xxx_osm.c # 2004/04/26 01:09:29-05:00 akpm@osdl.org +9 -3 # aic7xxx deadlock fix # # ChangeSet # 2004/05/04 09:19:18-05:00 jeremy@sgi.com # [PATCH] minor changes to qla1280 driver # # On one of our big machines we found a problem with posted writes while # running AIM. # # Two writes of the Request Queue In pointer went out of order, making # the chip think that it had a queue wrap. # # I took advantage of this opportunity to add relaxed reads, which helps # the Altix. It should not affect other arches. All reads are relaxed # except for the read of the Semaphore register. # # drivers/scsi/qla1280.h # 2004/04/22 14:26:22-05:00 jeremy@sgi.com +2 -1 # minor changes to qla1280 driver # # drivers/scsi/qla1280.c # 2004/04/22 14:26:22-05:00 jeremy@sgi.com +4 -1 # minor changes to qla1280 driver # # ChangeSet # 2004/05/04 09:17:25-05:00 stern@rowland.harvard.edu # [PATCH] PATCH: (as255) Handle Unit Attention during INQUIRY better # # Some buggy USB storage devices can return Unit Attention status for # INQUIRY commands. The current code in scsi_scan.c checks for ASC = 0x28 = # Not ready to ready transition, but these devices can also return ASC = # 0x29 = Power-on or reset occurred. In addition, the code doesn't retry # the INQUIRY when these codes are received. # # drivers/scsi/scsi_scan.c # 2004/04/21 12:04:15-05:00 stern@rowland.harvard.edu +13 -7 # PATCH: (as255) Handle Unit Attention during INQUIRY better # # ChangeSet # 2004/05/04 09:12:32-05:00 rct@gherkin.frus.com # [PATCH] sym53c500_cs PCMCIA SCSI driver (round 5) # # Fifth attempt at a PCMCIA SCSI driver for the Symbios 53c500 # controller. This version has all the cleanup Christoph has requested # to date, including removal of support for the obsolete (in 2.6) # proc_info functionality. # # Support for additional sysfs class device attributes has been added: # two are read-only (irq, ioport), one is read-write (fast_pio). The # read-write attribute is a per-instance flag indicating the PIO speed # of the particular HBA: valid values are 1 (enabled -- default) and 0 # (disabled). # # Documentation/scsi/sym53c500_cs.txt # 2004/05/03 16:08:26-05:00 rct@gherkin.frus.com +23 -0 # sym53c500_cs PCMCIA SCSI driver (round 5) # # drivers/scsi/pcmcia/Makefile # 2004/05/03 16:08:26-05:00 rct@gherkin.frus.com +1 -0 # sym53c500_cs PCMCIA SCSI driver (round 5) # # drivers/scsi/pcmcia/Kconfig # 2004/05/03 16:08:26-05:00 rct@gherkin.frus.com +10 -0 # sym53c500_cs PCMCIA SCSI driver (round 5) # # Documentation/scsi/sym53c500_cs.txt # 2004/05/03 16:08:26-05:00 rct@gherkin.frus.com +0 -0 # BitKeeper file /home/jejb/BK/scsi-misc-2.6/Documentation/scsi/sym53c500_cs.txt # # Documentation/scsi/00-INDEX # 2004/05/03 16:08:26-05:00 rct@gherkin.frus.com +2 -0 # sym53c500_cs PCMCIA SCSI driver (round 5) # # drivers/scsi/pcmcia/sym53c500_cs.c # 2004/05/03 19:18:28-05:00 rct@gherkin.frus.com +1076 -0 # sym53c500_cs PCMCIA SCSI driver (round 5) # # drivers/scsi/pcmcia/sym53c500_cs.c # 2004/05/03 19:18:28-05:00 rct@gherkin.frus.com +0 -0 # BitKeeper file /home/jejb/BK/scsi-misc-2.6/drivers/scsi/pcmcia/sym53c500_cs.c # # ChangeSet # 2004/05/03 14:18:33-07:00 tejohnson@yahoo.com # [PATCH] USB: update for mtouchusb # # The attached patch for the 3M Touch Systems Capacitive controller. (again) # # Quick list of changes: # # * decrease mtouch->open counter in the event of a urb submission # failure # # The changes are due to comments Oliver Neukum's comments on the # touchkit.c driver. Good catch! Sorry I missed it. # # http://marc.theaimsgroup.com/?l=linux-usb-devel&m=108343028201159&w=2 # # drivers/usb/input/mtouchusb.c # 2004/05/02 09:37:18-07:00 tejohnson@yahoo.com +3 -1 # USB: update for mtouchusb # # ChangeSet # 2004/05/03 14:17:38-07:00 stern@rowland.harvard.edu # [PATCH] USB: Altsetting update for USB IrDA driver # # This patch updates the USB IrDA driver to take into account that the # kernel may no longer store altsetting entries in numerical order. # The driver only needed one change; this was a simple matter of using the # entry corresponding to the altsetting that was just installed. # # drivers/net/irda/irda-usb.c # 2004/05/03 03:37:59-07:00 stern@rowland.harvard.edu +1 -1 # USB: Altsetting update for USB IrDA driver # # ChangeSet # 2004/05/03 14:16:51-07:00 c.lucas@ifrance.com # [PATCH] USB: esthetic and trivial patch. # # include/linux/usb.h # 2004/05/02 23:42:51-07:00 c.lucas@ifrance.com +1 -1 # USB: esthetic and trivial patch. # # ChangeSet # 2004/05/02 21:56:49-07:00 tony.cureington@hp.com # [TG3]: Add eeprom dump support. # # drivers/net/tg3.c # 2004/05/02 21:56:36-07:00 tony.cureington@hp.com +68 -0 # [TG3]: Add eeprom dump support. # # ChangeSet # 2004/05/02 20:30:19-07:00 kenn@linux.ie # [PATCH] Re: Platform device matching # # On Mon, Apr 26, 2004 at 12:27:33AM +0100, Russell King wrote: # > So, this comment needs updating: # > # > * So, extract the from the device, and compare it against # > * the name of the driver. Return whether they match or not. # # Want a patch? # # drivers/base/platform.c # 2004/04/25 16:33:43-07:00 kenn@linux.ie +3 -2 # Re: Platform device matching # # ChangeSet # 2004/05/02 20:29:59-07:00 hannal@us.ibm.com # [PATCH] add class support to drivers/char/tipar.c # # This patch adds class support to the Texas Instruments graphing calculators # with a parallel link cable. # # I have verified it compiles. If someone has the hardware please verify it works. # # drivers/char/tipar.c # 2004/04/28 13:48:10-07:00 hannal@us.ibm.com +42 -7 # add class support to drivers/char/tipar.c # # ChangeSet # 2004/05/02 20:29:41-07:00 hannal@us.ibm.com # [PATCH] add class support to drivers/block/paride/pt.c # # This patch adds class support to pt.c which "the high-level driver for parallel # port ATAPI tape drives based on chips supported by the paride module." Which I # dont have in order to test. # # I have verified it compiles but can not test it. If someone who has the # hardware could I would appreciate it. # # drivers/block/paride/pt.c # 2004/04/16 16:09:52-07:00 hannal@us.ibm.com +45 -9 # add class support to drivers/block/paride/pt.c # # ChangeSet # 2004/05/02 20:29:22-07:00 hannal@us.ibm.com # [PATCH] add class support to drivers/block/paride/pg.c # # This patch adds class support to pg.c, the parallel port generic ATAPI device driver. # # I have verified it compiles but do not have the hardware. If someone does and # could test that would be helpful. # # drivers/block/paride/pg.c # 2004/04/21 14:50:32-07:00 hannal@us.ibm.com +38 -10 # add class support to drivers/block/paride/pg.c # # ChangeSet # 2004/05/02 20:28:58-07:00 hannal@us.ibm.com # [PATCH] Add class support to drivers/char/ip2main.c # # drivers/char/ip2main.c # 2004/04/14 10:08:00-07:00 hannal@us.ibm.com +39 -5 # Add class support to drivers/char/ip2main.c # # ChangeSet # 2004/05/02 20:28:38-07:00 sebek64@post.cz # [PATCH] Class support for ppdev.c # # drivers/char/ppdev.c # 2004/04/13 10:25:50-07:00 sebek64@post.cz +43 -2 # Class support for ppdev.c # # ChangeSet # 2004/05/01 23:04:01-07:00 stefan.eletzhofer@eletztrick.de # [PATCH] I2C: add I2C epson 8564 RTC chip driver # # Add support for the Epson 8564 RTC chip. # # drivers/i2c/chips/rtc8564.h # 2004/05/01 17:00:00-07:00 stefan.eletzhofer@eletztrick.de +78 -0 # I2C: add I2C epson 8564 RTC chip driver # # drivers/i2c/chips/rtc8564.h # 2004/05/01 17:00:00-07:00 stefan.eletzhofer@eletztrick.de +0 -0 # BitKeeper file /home/greg/linux/BK/i2c-2.6/drivers/i2c/chips/rtc8564.h # # drivers/i2c/chips/rtc8564.c # 2004/05/01 17:00:00-07:00 stefan.eletzhofer@eletztrick.de +396 -0 # I2C: add I2C epson 8564 RTC chip driver # # drivers/i2c/chips/Makefile # 2004/05/01 17:00:00-07:00 stefan.eletzhofer@eletztrick.de +1 -0 # I2C: add I2C epson 8564 RTC chip driver # # drivers/i2c/chips/Kconfig # 2004/05/01 17:00:00-07:00 stefan.eletzhofer@eletztrick.de +10 -0 # I2C: add I2C epson 8564 RTC chip driver # # drivers/i2c/chips/rtc8564.c # 2004/05/01 17:00:00-07:00 stefan.eletzhofer@eletztrick.de +0 -0 # BitKeeper file /home/greg/linux/BK/i2c-2.6/drivers/i2c/chips/rtc8564.c # # ChangeSet # 2004/05/01 22:35:09-07:00 dsaxena@plexity.net # [PATCH] I2C: Update IXP4xx I2C bus driver # # The 2.6 IXP4xx code has been cleaned up to change all references to # IXP42x/IXP425 with IXP4xx. The following patch updates the I2C bits. # Before applying, you need to 'bk move i2c-ixp42x.c ixp-4xx.c". # # drivers/i2c/busses/i2c-ixp4xx.c # 2004/04/14 16:44:56-07:00 dsaxena@plexity.net +57 -52 # I2C: Update IXP4xx I2C bus driver # # drivers/i2c/busses/Makefile # 2004/04/15 09:26:47-07:00 dsaxena@plexity.net +1 -1 # I2C: Update IXP4xx I2C bus driver # # drivers/i2c/busses/Kconfig # 2004/04/15 09:26:47-07:00 dsaxena@plexity.net +5 -5 # I2C: Update IXP4xx I2C bus driver # # ChangeSet # 2004/05/01 22:34:26-07:00 kevin@koconnor.net # [PATCH] I2C: support I2C_M_NO_RD_ACK in i2c-algo-bit # # I have an I2C device (Samsung ks0127 video grabber) with a peculiar i2c # implementation. When reading bytes, it only senses for the stop condition # in the place where the acknowledge bit should be. So, to properly support # this device acks need to be turned off during reads. # # There is an I2C_M_NO_RD_ACK bit already defined in i2c.h which appears to # be what I want. Unfortunately it doesn't seem to be used anywhere in the # current tree. At the end of this message is a patch to teach i2c_algo_bit # to honor the bit. # # drivers/i2c/algos/i2c-algo-bit.c # 2004/04/19 21:35:39-07:00 kevin@koconnor.net +7 -3 # I2C: support I2C_M_NO_RD_ACK in i2c-algo-bit # # ChangeSet # 2004/05/01 22:33:50-07:00 khali@linux-fr.org # [PATCH] I2C: Voltage conversions in via686a # # My previous patch was actually not correct, reading from the chip's # registers was fixed but writing limits to it wasn't. This new version of # the patch should be better. Sorry for the trouble. # # drivers/i2c/chips/via686a.c # 2004/04/25 14:51:00-07:00 khali@linux-fr.org +24 -32 # I2C: Voltage conversions in via686a # # ChangeSet # 2004/05/01 22:32:34-07:00 greg@kroah.com # I2C: rename i2c-ip4xx.c driver # # drivers/i2c/busses/i2c-ixp4xx.c # 2004/05/01 22:31:27-07:00 greg@kroah.com +0 -0 # Rename: drivers/i2c/busses/i2c-ixp42x.c -> drivers/i2c/busses/i2c-ixp4xx.c # # ChangeSet # 2004/05/01 21:36:29-07:00 akpm@osdl.org # [PATCH] PCI Hotplug: pciehp-linkage-fix.patch # # This fixes allyesconfig # # drivers/pci/hotplug/pciehp_core.c # 2004/05/01 18:59:19-07:00 akpm@osdl.org +5 -5 # PCI Hotplug: pciehp-linkage-fix.patch # # ChangeSet # 2004/05/01 16:47:38-07:00 khali@linux-fr.org # [PATCH] I2C: Add LM99 support to the lm90 driver # # The following patch adds support for the LM99 chip to the lm90 driver, # on popular request. The nVidia GeForce FX 5900 series cards have such a # chip on-board for monitoring the GPU temperature. # # Relevant pointers: # http://archives.andrew.net.au/lm-sensors/msg07671.html # http://secure.netroedge.com/~lm78/readticket.cgi?ticket=1661 # http://secure.netroedge.com/~lm78/readticket.cgi?ticket=1662 # # Additional effects of the patch: # # * Do not consider the lm90 driver experimental anymore. I have had # enough testers and not a single problem report, the driver is working # OK. # # * Support the LM89. According to the datasheets, it is exactly the same # chip as the LM99 (to the chip ID). We've never seen this chip in a # computer so far, but it doesn't cost anything to support it (actually we # cannot not support it, since we have no way to differenciate with the # LM99). # # * Scan two addresses instead of one. The LM99 and LM89 have a "-1" # variant using an alternate address. # # * Update copyright year. # # * Reword the identification code a bit. It is hopefully slightly less # unreadable. # # This patch was successfully tested by Corey Hickey. # # drivers/i2c/chips/lm90.c # 2004/04/23 12:40:28-07:00 khali@linux-fr.org +37 -12 # I2C: Add LM99 support to the lm90 driver # # drivers/i2c/chips/Kconfig # 2004/04/23 11:33:15-07:00 khali@linux-fr.org +3 -3 # I2C: Add LM99 support to the lm90 driver # # ChangeSet # 2004/05/01 16:24:00-07:00 msdemlei@cl.uni-heidelberg.de # [PATCH] USB: DSBR-100 tiny patch # # On Fri, Feb 06, 2004 at 10:17:32AM -0800, Greg KH wrote: # > On Fri, Feb 06, 2004 at 05:06:01PM +0100, Markus Demleitner wrote: # > > Since I finally switched over to 2.6 I noticed that my dsbr100 driver # > > produces a warning to the effect that I should provide a release # > > callback. After a quick google on the issue I came to the conclusion # > # > No, you will have to fix up your driver to work properly, sorry. It's # > due to the changes to the v4l layer to handle removable devices much # > better (and to tie it into the driver model.) # # I didn't get around to doing real work on this until now, but finally # in the attachment there's my stab at bringing dsbr100 up to kernel 2.6. # I'm not really comfortable with the release callback issues (I've yet # to find some HOWTO-like documentation on this...) on the v4l side, # so I'd be grateful if you could have a look at it. I've basically # tried to copy what stv680 does, which may or may not have been a # good idea (in particular see the comment above the disconnect # function). # # I've used the opportunity for some code beautyfing, which of course # makes the patch a bit of a mess. I hope you won't mind too much # -- as you can see, it would have been pretty messy anyway. # # drivers/usb/media/dsbr100.c # 2004/04/21 12:32:35-07:00 msdemlei@cl.uni-heidelberg.de +133 -94 # USB: DSBR-100 tiny patch # # ChangeSet # 2004/05/01 16:18:03-07:00 david-b@pacbell.net # [PATCH] USB: dummy_hcd, root port wakeup/suspend # # Here's what's in my tree to make dummy_hcd do suspend and # wakeup correctly ... that is, making its emulated root hub # and gadget work more like real ones. # # It's easier to do this for fake hardware than the real stuff. # But real drivers tend to need very similar changes ... :) # # - Dave # # p.s. This does not depend on the suspend/resume patch. # And it doesn't do "global" suspend (of root hub). # # drivers/usb/gadget/dummy_hcd.c # 2004/04/29 11:16:12-07:00 david-b@pacbell.net +133 -33 # USB: dummy_hcd, root port wakeup/suspend # # ChangeSet # 2004/05/01 16:02:37-07:00 baldrick@free.fr # [PATCH] USB: fix WARN_ON in usbfs # # On Tuesday 27 April 2004 10:58, Oliver Neukum wrote: # > Am Dienstag, 27. April 2004 00:14 schrieb Greg KH: # > > On Mon, Apr 26, 2004 at 04:05:17PM +0200, Duncan Sands wrote: # > > > diff -Nru a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c # > > > --- a/drivers/usb/core/devio.c Mon Apr 26 13:48:28 2004 # > > > +++ b/drivers/usb/core/devio.c Mon Apr 26 13:48:28 2004 # > > > @@ -350,8 +350,8 @@ # > > > * all pending I/O requests; 2.6 does that. # > > > */ # > > > # > > > - if (ifnum < 8*sizeof(ps->ifclaimed)) # > > > - clear_bit(ifnum, &ps->ifclaimed); # > > > + BUG_ON(ifnum >= 8*sizeof(ps->ifclaimed)); # > > # > > I've changed that to a WARN_ON(). Yeah, writing over memory is bad, but # > > oopsing is worse. Let's be a bit nicer than that. # > # > You aren't nice that way. An oops has localised consequences. Scribbling # > over memory can cause anything. # # Hi Greg, if won't accept a BUG_ON, how about the following? # # drivers/usb/core/devio.c # 2004/04/30 03:01:37-07:00 baldrick@free.fr +5 -2 # USB: fix WARN_ON in usbfs # # ChangeSet # 2004/05/01 16:02:00-07:00 baldrick@free.fr # [PATCH] USB: usbfs: change extern inline to static inline # # And change __inline__ to inline and get rid of an unused function # while at it. # # drivers/usb/core/devio.c # 2004/04/30 16:36:25-07:00 baldrick@free.fr +5 -30 # USB: usbfs: change extern inline to static inline # # ChangeSet # 2004/04/30 22:19:36-07:00 stuber@loria.fr # [PATCH] USB: LEGO USB Tower driver v0.95 # # here is the latest version 0.95 of the LEGO USB Tower driver against 2.6.6-rc3 # which corrects a lot of problems in the version currently in the kernel, # most notably sleeping in interrupt context and improper locking. # Please apply. # # It has been thoroughly tested with UHCI, OHCI and EHCI host controllers # using Lejos and NQC. Firmware and program download, and with proper # modifications all communication protocols supported by Lejos work, # as well as firmware and program download and datalog upload in NQC. # # Notes to application maintainers/protocol designers: # # - Small modifications are needed in communication protocols because # the tower tends to discard the first byte of transmissions. # So for example LNP needs to send an extra byte like 0xff before # the packet, and F7 handlers needs to cope with a lost 0x55. # # - I suggest /dev/usb/legousbtower0 etc. as the standard device names. # This puts it in the same place as the other USB devices and makes # clear which driver is responsible for these devices. # # drivers/usb/misc/legousbtower.c # 2004/04/30 12:44:31-07:00 stuber@loria.fr +489 -276 # USB: LEGO USB Tower driver v0.95 # # MAINTAINERS # 2004/04/30 08:30:25-07:00 stuber@loria.fr +7 -0 # USB: LEGO USB Tower driver v0.95 # # ChangeSet # 2004/04/30 22:19:00-07:00 david-b@pacbell.net # [PATCH] USB: reject urb submissions to suspended devices # # This patch rejects URB submissions to suspended devices, so # that they don't get hardware-specific fault reports. Instead, # they get the same code (-EHOSTUNREACH) for all HCDs. # # It also fixes a minor problem with colliding declarations of # the symbol USB_STATE_SUSPENDED. # # drivers/usb/core/urb.c # 2004/04/28 07:00:02-07:00 david-b@pacbell.net +2 -0 # USB: reject urb submissions to suspended devices # # drivers/usb/core/hcd.h # 2004/04/28 07:01:03-07:00 david-b@pacbell.net +1 -1 # USB: reject urb submissions to suspended devices # # drivers/usb/core/hcd-pci.c # 2004/04/28 06:57:24-07:00 david-b@pacbell.net +3 -3 # USB: reject urb submissions to suspended devices # # ChangeSet # 2004/04/30 22:17:59-07:00 david-b@pacbell.net # [PATCH] USB Gadget: gadget zero and USB suspend/resume # # This patch lets gadget zero be more useful in testing usb suspend # and resume. It prints messages on suspend() and resume(), and # supports an "autoresume=N" mode to wake the host after N seconds. # # drivers/usb/gadget/zero.c # 2004/04/27 13:26:18-07:00 david-b@pacbell.net +63 -2 # USB Gadget: gadget zero and USB suspend/resume # # ChangeSet # 2004/04/30 22:16:57-07:00 linux-usb@nerds-incorporated.org # [PATCH] USB: Alcatel TD10 Serial to USB converter cable support # # The Alcatel TD10 USB to Serial converter cable (for use with a Alcatel # OT 535 or 735(i) mobile phone) seems to be a repackaged Alcatel # version of the Prolific 2303 adapter. # # And as such, simply adding its product/vendor id (0x11f7/0x02df) to # drivers/usb/serial/pl2303.c seems to be enough to make it work. # # drivers/usb/serial/pl2303.h # 2004/04/29 09:35:06-07:00 linux-usb@nerds-incorporated.org +3 -0 # USB: Alcatel TD10 Serial to USB converter cable support # # drivers/usb/serial/pl2303.c # 2004/04/29 09:35:28-07:00 linux-usb@nerds-incorporated.org +1 -0 # USB: Alcatel TD10 Serial to USB converter cable support # # ChangeSet # 2004/04/30 22:15:51-07:00 stern@rowland.harvard.edu # [PATCH] USB: USB altsetting updates for IDSN Hisax driver # # The USB core is changing the way interfaces and altsettings are stored. # They are no longer required to be in numerical order, and as a result, # simply indexing the interface and altsetting arrays won't work as # expected. # # This patch for the st5481 takes these changes into account. A simpler # approach would be to store a pointer to the struct usb_host_interface # rather than look it up repeatedly, but I'm not very familiar with this # driver and didn't want to attempt such an alteration. # # drivers/isdn/hisax/st5481_usb.c # 2004/04/26 07:43:53-07:00 stern@rowland.harvard.edu +7 -3 # USB: USB altsetting updates for IDSN Hisax driver # # drivers/isdn/hisax/st5481_d.c # 2004/04/26 07:43:53-07:00 stern@rowland.harvard.edu +7 -2 # USB: USB altsetting updates for IDSN Hisax driver # # drivers/isdn/hisax/st5481_b.c # 2004/04/26 07:43:53-07:00 stern@rowland.harvard.edu +7 -2 # USB: USB altsetting updates for IDSN Hisax driver # # ChangeSet # 2004/04/30 18:36:06-05:00 jejb@mulgrave.(none) # Fix errors in [PATCH] aic7xxx: fix oops whe hardware is not present # # This patch was causing a boot panic. Now fixed. # # drivers/scsi/aic7xxx/aic7xxx_osm.h # 2004/04/30 18:35:30-05:00 jejb@mulgrave.(none) +12 -0 # Fix errors in [PATCH] aic7xxx: fix oops whe hardware is not present # # drivers/scsi/aic7xxx/aic7xxx_osm.c # 2004/04/30 18:35:30-05:00 jejb@mulgrave.(none) +10 -21 # Fix errors in [PATCH] aic7xxx: fix oops whe hardware is not present # # drivers/scsi/aic7xxx/aic7770_osm.c # 2004/04/30 18:35:30-05:00 jejb@mulgrave.(none) +4 -4 # Fix errors in [PATCH] aic7xxx: fix oops whe hardware is not present # # ChangeSet # 2004/04/30 15:27:22-07:00 greg@kroah.com # PCI Hotplug: fix build error due to previous patches. # # drivers/pci/hotplug/shpchp_core.c # 2004/04/30 08:26:54-07:00 greg@kroah.com +1 -1 # PCI Hotplug: fix build error due to previous patches. # # ChangeSet # 2004/04/30 15:25:10-07:00 eike-hotplug@sf-tec.de # [PATCH] SHPC PCI Hotplug: remove some useless casts # # Remove a useless cast: pci_add_new_bus returns a struct pci_bus*, so no need # to cast. # # drivers/pci/hotplug/shpchp_pci.c # 2004/04/23 15:39:10-07:00 eike-hotplug@sf-tec.de +1 -1 # SHPC PCI Hotplug: remove some useless casts # # ChangeSet # 2004/04/30 15:24:49-07:00 eike-hotplug@sf-tec.de # [PATCH] SHPC PCI Hotplug: more coding style fixes # # A big bunch of coding style fixes for shpchp_ctrl.c and shpchp_pci.c # # Eike # # drivers/pci/hotplug/shpchp_pci.c # 2004/04/23 15:39:10-07:00 eike-hotplug@sf-tec.de +119 -70 # SHPC PCI Hotplug: more coding style fixes # # drivers/pci/hotplug/shpchp_ctrl.c # 2004/04/27 17:24:01-07:00 eike-hotplug@sf-tec.de +13 -12 # SHPC PCI Hotplug: more coding style fixes # # ChangeSet # 2004/04/30 15:24:15-07:00 eike-hotplug@sf-tec.de # [PATCH] SHPC PCI Hotplug: kill useless NULL checks # # drivers/pci/hotplug/shpchp_core.c # 2004/04/29 13:18:25-07:00 eike-hotplug@sf-tec.de +3 -32 # SHPC PCI Hotplug: kill useless NULL checks # # ChangeSet # 2004/04/30 15:23:43-07:00 eike-hotplug@sf-tec.de # [PATCH] SHPC PCI Hotplug: codingstyle fixes # # Some small coding style fixes for shpchp_core.c. # # drivers/pci/hotplug/shpchp_core.c # 2004/04/29 13:18:25-07:00 eike-hotplug@sf-tec.de +5 -5 # SHPC PCI Hotplug: codingstyle fixes # # ChangeSet # 2004/04/30 15:23:11-07:00 eike-hotplug@sf-tec.de # [PATCH] SHPC PCI Hotplug: use goto for error handling # # Convert shpchp_core.c::init_slots to use goto for error handling. # # drivers/pci/hotplug/shpchp_core.c # 2004/04/29 13:18:25-07:00 eike-hotplug@sf-tec.de +24 -29 # SHPC PCI Hotplug: use goto for error handling # # ChangeSet # 2004/04/30 15:22:36-07:00 eike-hotplug@sf-tec.de # [PATCH] SHPC PCI Hotplug: fix cleanup_slots to use a release function # # shpchp is the only driver which does not use a release function for the slot # struct. This adds one and does some minor coding style fixes. Also no one # cares about the return value of cleanup_slots (which is always 0 anyway) so # we can make the function void. # # drivers/pci/hotplug/shpchp_core.c # 2004/04/29 13:35:38-07:00 eike-hotplug@sf-tec.de +23 -15 # SHPC PCI Hotplug: fix cleanup_slots to use a release function # # ChangeSet # 2004/04/30 15:21:59-07:00 eike-hotplug@sf-tec.de # [PATCH] SHPC PCI Hotplug: kill hardware_test # # shpchp_core.c::hardware_test is empty. If we remove it we tell the user that # hardware tests are not supported at all. # # drivers/pci/hotplug/shpchp_core.c # 2004/04/29 13:19:43-07:00 eike-hotplug@sf-tec.de +0 -9 # SHPC PCI Hotplug: kill hardware_test # # ChangeSet # 2004/04/30 15:04:50-07:00 eike-hotplug@sf-tec.de # [PATCH] SHPC PCI Hotplug: use new style of module parameters # # Convert shpchp_core.c to use new style of module handling. # # Eike # # drivers/pci/hotplug/shpchp_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +4 -3 # SHPC PCI Hotplug: use new style of module parameters # # ChangeSet # 2004/04/30 15:04:23-07:00 eike-hotplug@sf-tec.de # [PATCH] RPA PCI Hotplug: codingstyle fixes for rpaphp_pci.c # # Some coding style fixes for rpaphp_pci.c. # # drivers/pci/hotplug/rpaphp_pci.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +15 -16 # RPA PCI Hotplug: codingstyle fixes for rpaphp_pci.c # # ChangeSet # 2004/04/30 15:03:58-07:00 eike-hotplug@sf-tec.de # [PATCH] RPA PCI Hotplug: use goto for error handling in rpaphp_slot.c # # Convert rpaphp_slot.c::alloc_slot_struct to use goto for error handling. Also # some small coding style fixes. # # drivers/pci/hotplug/rpaphp_slot.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +32 -32 # RPA PCI Hotplug: use goto for error handling in rpaphp_slot.c # # ChangeSet # 2004/04/30 15:03:27-07:00 eike-hotplug@sf-tec.de # [PATCH] RPA PCI Hotplug: remove useless NULL checks from rpaphp_core.c # # Remove two useless NULL checks from rpaphp_core.c # # drivers/pci/hotplug/rpaphp_core.c # 2004/04/29 12:44:44-07:00 eike-hotplug@sf-tec.de +2 -8 # RPA PCI Hotplug: remove useless NULL checks from rpaphp_core.c # # ChangeSet # 2004/04/30 15:02:53-07:00 eike-hotplug@sf-tec.de # [PATCH] RPA PCI Hotplug: fix up init_slots in rpaphp_core.c # # rpaphp_core.c::init_slots is not more than a for loop and is called only from # one place, this inlines the important 3 lines. Als add some __init and __exit. # # drivers/pci/hotplug/rpaphp_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +4 -14 # RPA PCI Hotplug: fix up init_slots in rpaphp_core.c # # ChangeSet # 2004/04/30 15:02:20-07:00 eike-hotplug@sf-tec.de # [PATCH] RPA PCI Hotplug: codingstyle fixes for rpaphp_core.c # # Some coding style fixes for rpaphp_core.c: # -s/return(foo)/return foo/ # -some whitespace fixes # -document function in proper way # # Eike # # drivers/pci/hotplug/rpaphp_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +14 -13 # RPA PCI Hotplug: codingstyle fixes for rpaphp_core.c # # ChangeSet # 2004/04/30 15:01:47-07:00 eike-hotplug@sf-tec.de # [PATCH] RPA PCI Hotplug: kill get_cur_bus_speed from rpaphp_core.c # # The get_cur_bus_speed function of rpaphp does nothing that the PCI Hotplug Core # would not do by itself if this function does not exist, so just kill it. # # drivers/pci/hotplug/rpaphp_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +0 -14 # RPA PCI Hotplug: kill get_cur_bus_speed from rpaphp_core.c # # ChangeSet # 2004/04/30 15:01:13-07:00 eike-hotplug@sf-tec.de # [PATCH] RPA PCI Hotplug: use new style of module parameters # # The debug parameter of rpaphp is only used as a boolean so we can scan the # commandline of it like a boolean parameter. # # drivers/pci/hotplug/rpaphp_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +1 -1 # RPA PCI Hotplug: use new style of module parameters # # ChangeSet # 2004/04/30 15:00:38-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express Hotplug: codingstyle fixes for pciehp_pci.c # # This is a bunch of coding style fixes (wrap long lines, whitspacing etc.) for # pciehp_pci.c # # drivers/pci/hotplug/pciehp_pci.c # 2004/04/23 15:39:19-07:00 eike-hotplug@sf-tec.de +119 -72 # PCI Express Hotplug: codingstyle fixes for pciehp_pci.c # # ChangeSet # 2004/04/30 15:00:01-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express Hotplug: kill more useless casts # # This patch does two things: # -remove casts of pointers which are void* or already the correct type for the # target # -if we dereferenced a struct member and copied this to it's own variable use # this and don't dereference the member again # # drivers/pci/hotplug/pciehp_pci.c # 2004/04/23 15:39:19-07:00 eike-hotplug@sf-tec.de +1 -1 # PCI Express Hotplug: kill more useless casts # # drivers/pci/hotplug/pciehp_hpc.c # 2004/04/29 11:01:21-07:00 eike-hotplug@sf-tec.de +41 -41 # PCI Express Hotplug: kill more useless casts # # ChangeSet # 2004/04/30 14:52:21-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express Hotplug: mark global variables static # # Don't know why, but it looks like a good idea to mark this global variables # static. # # drivers/pci/hotplug/pciehp_core.c # 2004/04/29 11:10:54-07:00 eike-hotplug@sf-tec.de +5 -5 # PCI Express Hotplug: mark global variables static # # ChangeSet # 2004/04/30 14:52:02-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express Hotplug: some cleanups # # Some coding style fixes and small cleanups for pciehp_core.c: # -wrap long lines # -kill spaces before opening braces of functions # -remove code duplication where both parts of an if statement do exactly the # same # -kill some useless comments # -kill an unneeded initialisation # # drivers/pci/hotplug/pciehp_core.c # 2004/04/29 11:10:54-07:00 eike-hotplug@sf-tec.de +34 -32 # PCI Express Hotplug: some cleanups # # ChangeSet # 2004/04/30 14:51:30-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express Hotplug: remove useless kmalloc casts # # The result of kmalloc does not need to be casted to any other pointer type. # Also use kmalloc(*foo) instead of kmalloc(type_of_foo) and wrap some long # lines. # # drivers/pci/hotplug/pciehp_core.c # 2004/04/29 11:10:54-07:00 eike-hotplug@sf-tec.de +14 -8 # PCI Express Hotplug: remove useless kmalloc casts # # ChangeSet # 2004/04/30 14:50:55-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express Hotplug: codingstyle fixes for pciehp.h # # Some small coding style fixes and a typo fix for pciehp.h # # drivers/pci/hotplug/pciehp.h # 2004/04/29 11:07:54-07:00 eike-hotplug@sf-tec.de +11 -11 # PCI Express Hotplug: codingstyle fixes for pciehp.h # # ChangeSet # 2004/04/30 14:50:28-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express Hotplug: use goto for error handling # # This changes pciehp_core.c::init_slots to use goto for error hanling. Also a # missing magic missed by previous patches is killed. # # drivers/pci/hotplug/pciehp_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +21 -24 # PCI Express Hotplug: use goto for error handling # # ChangeSet # 2004/04/30 14:49:55-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: remove useless NULL checks from cpqphp_ctrl.c # # Remove useless NULL checks from cpqphp_ctrl.c. Under normal circumstances # there is no chance for any of this functions to get called with a NULL # argument. If we are in such trouble that we get a NULL pointer don't hide it, # just oops. # # ChangeSet # 2004/04/30 14:49:21-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express Hotplug: kill hardware_test # # The hardware_test function of the PCI Express Hotplug driver is empty. It's # better to completely kill this to tell the user hardware tests are not # supported by this driver. # # drivers/pci/hotplug/pciehp_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +0 -7 # PCI Express Hotplug: kill hardware_test # # ChangeSet # 2004/04/30 14:48:46-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: kill useless kmalloc casts # # This patch removes the cast of kmalloc's results to the target pointer type. # Also it fixes kmalloc to use sizeof(*foo) instead of sizeof(type_of_foo) as # suggested by Matthew Wilcox. Also removes a few useless checks if a pointer # is NULL before calling kfree: kfree checks this itself. # # ChangeSet # 2004/04/30 14:48:11-07:00 eike-hotplug@sf-tec.de # [PATCH] RPA PCI Hotplug: Remove useless NULL checks # # Remove useless NULL checks and magic numbers from rpaphp. If one of these # ever becomes invalid we are in serious trouble anyway. # # drivers/pci/hotplug/rpaphp_slot.c # 2004/04/28 22:41:20-07:00 eike-hotplug@sf-tec.de +2 -5 # RPA PCI Hotplug: Remove useless NULL checks # # drivers/pci/hotplug/rpaphp_core.c # 2004/04/28 22:41:20-07:00 eike-hotplug@sf-tec.de +6 -29 # RPA PCI Hotplug: Remove useless NULL checks # # drivers/pci/hotplug/rpaphp.h # 2004/04/28 22:41:20-07:00 eike-hotplug@sf-tec.de +0 -3 # RPA PCI Hotplug: Remove useless NULL checks # # ChangeSet # 2004/04/30 14:47:34-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express Hotplug: remove useless NULL checks # # Remove useless NULL checks and magic numbers from PCI Express Hotplug, also # some minimal coding style fixes. # # drivers/pci/hotplug/pciehp_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +21 -51 # PCI Express Hotplug: remove useless NULL checks # # drivers/pci/hotplug/pciehp.h # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +2 -41 # PCI Express Hotplug: remove useless NULL checks # # ChangeSet # 2004/04/30 14:24:30-07:00 greg@kroah.com # PCI Hotplug: fix stupid build bugs caused by previous patches. # # Doesn't anyone build their patches anymore before sending them out... # # drivers/pci/hotplug/cpci_hotplug_core.c # 2004/04/30 07:24:17-07:00 greg@kroah.com +0 -4 # PCI Hotplug: fix stupid build bugs caused by previous patches. # # Doesn't anyone build their patches anymore before sending them out... # # ChangeSet # 2004/04/30 14:18:56-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: fix missing braces # # Fix missing braces. It does not change the code but makes it easier to read. # # ChangeSet # 2004/04/30 14:18:21-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express Hotplug: use new style of module parameters # # This converts PCI Express Hotplug to the new style of module parameter # handling. # # drivers/pci/hotplug/pciehp_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +4 -3 # PCI Express Hotplug: use new style of module parameters # # drivers/pci/hotplug/pciehp.h # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +1 -5 # PCI Express Hotplug: use new style of module parameters # # ChangeSet # 2004/04/30 14:17:48-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug: Move an often used while loop to an inline function # # Walking through a pci_resource list and freeing all members is done a lot of # times in unload functions. This patch moves this to an inline function in # pciehp_core.c, pciehp_pci.c, shpchp_core.c and shpchp_pci.c. This shrinks the # code a lot (some 200 lines) and makes it much easier to read. Also adds some # __exit. # # drivers/pci/hotplug/shpchp_pci.c # 2004/04/23 15:39:10-07:00 eike-hotplug@sf-tec.de +55 -117 # PCI Hotplug: Move an often used while loop to an inline function # # drivers/pci/hotplug/shpchp_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +20 -60 # PCI Hotplug: Move an often used while loop to an inline function # # drivers/pci/hotplug/pciehp_pci.c # 2004/04/23 15:39:19-07:00 eike-hotplug@sf-tec.de +57 -117 # PCI Hotplug: Move an often used while loop to an inline function # # drivers/pci/hotplug/pciehp_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +20 -60 # PCI Hotplug: Move an often used while loop to an inline function # # ChangeSet # 2004/04/30 14:17:13-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug Core: use new style of module parameters # # Convert PCI Hotplug Core to new style of module parameter handling. # # drivers/pci/hotplug/pci_hotplug_core.c # 2004/04/21 09:59:30-07:00 eike-hotplug@sf-tec.de +3 -6 # PCI Hotplug Core: use new style of module parameters # # ChangeSet # 2004/04/30 14:16:40-07:00 eike-hotplug@sf-tec.de # [PATCH] [BUGFIX] shpchp_pci.c: fix missing braces after if # # Add missing braces around if statement, if not we will try to add devices # for an empty slot. # # drivers/pci/hotplug/shpchp_pci.c # 2004/04/23 15:39:10-07:00 eike-hotplug@sf-tec.de +3 -2 # [BUGFIX] shpchp_pci.c: fix missing braces after if # # ChangeSet # 2004/04/30 14:16:10-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug: Remove type magic from kmalloc # # This patch removes the cast of kmalloc's results to the target pointer type. # Also it fixes kmalloc to use sizeof(*foo) instead of sizeof(type_of_foo) as # suggested by Matthew Wilcox. Also removes a few useless checks if a pointer # is NULL before calling kfree: kfree checks this itself. # # drivers/pci/hotplug/shpchp_ctrl.c # 2004/04/27 16:29:27-07:00 eike-hotplug@sf-tec.de +19 -22 # PCI Hotplug: Remove type magic from kmalloc # # ChangeSet # 2004/04/30 14:15:38-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: some final fixes for cpqphp_core.c # # Final small fixes for cpqphp_core.c: # -use better error handling in one_time_init # -small coding style fixes # -the name of the driver is not "pci_hotplug" # -add an __exit for unload_cpqphp # -changes enough to increment version, isn't it? # # ChangeSet # 2004/04/30 14:15:05-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: coding style fixes for cpqphp_ctrl.c # # Some coding style fixes I missed last time. # # ChangeSet # 2004/04/30 14:14:30-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: use goto for error handling in cpqphp_ctrl.c # # Change cpqphp_ctrl.c to use goto for error handling. # # ChangeSet # 2004/04/30 14:13:57-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: fix C++ style comments # # This is not C++! Fix comments from C++ style to C style, removing some useless # ones (e.g. no need to tell up and down protect a critical section). # # ChangeSet # 2004/04/30 14:13:24-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: remove useless NULL checks from cpqphp_core.c # # Remove some useless NULL checks in cpqphp_core.c # # ChangeSet # 2004/04/30 14:12:50-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: use goto for error handling # # Convert ctrl_slot_setup to use goto for error handling and fix some minor # coding style things. # # ChangeSet # 2004/04/30 14:12:23-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: split up hardware_test # # This puts the LED shifting used as "hardware test" in a function to make # cpqhp_hardware_test much smaller and easier to read. Also changes some # comments from C++ to C style. # # ChangeSet # 2004/04/30 14:11:54-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: more coding style fixes # # Fix a lot of coding style issues in Compaq PCI hotplug: # -spaces before opening brace of functions # -much too much C++ style comments # -wrap long lines # -remove some comments where the code does not really need to be explained # # Eike # # ChangeSet # 2004/04/30 14:11:19-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: use new style of module parameters # # Convert Compaq PCI Hotplug driver to use the new style of module parameters. # # ChangeSet # 2004/04/30 14:10:45-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: move huge inline function out of header file # # set_controller_speed is implemented in cpqphp.h but only used in cpqphp_ctrl.c # and it's much too big to be defined in a header file. This patch moves it to # cpqphp_ctrl.c. Also the inline attribute is removed, this function is called # from 2 places and to big to be an inline. # # ChangeSet # 2004/04/30 14:10:12-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: remove useless NULL checks # # Remove some useless NULL and magic checks from Compaq PCI Hotplug driver. # If one of this pointers is invalid we are in bad trouble anyway. # # ChangeSet # 2004/04/30 14:09:35-07:00 eike-hotplug@sf-tec.de # [PATCH] Compaq PCI Hotplug: coding style fixes # # The usual coding style fixes, this time for cpqphp_ctrl.c and cpqphp.c. # # ChangeSet # 2004/04/29 16:14:39-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express Hotplug: splut pciehp_ctrl.c::configure_new_function # # configure_new_function is way too big (>600 lines). Split it in 2 functions, # one for the new functions and one for bridges. And split out a small piece # from the bridge function which is used twice to it's own function. # # Patch is huge because of the identation changes but does nothing than the # split and some minor coding style changes. # # drivers/pci/hotplug/pciehp_ctrl.c # 2004/04/24 03:03:36-07:00 eike-hotplug@sf-tec.de +435 -417 # PCI Express Hotplug: splut pciehp_ctrl.c::configure_new_function # # ChangeSet # 2004/04/29 16:14:14-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express Hotplug: remove useless kmalloc casts # # The result of kmalloc does not need to be casted, it is a void * which can be # assigned to any pointer variable. Also avoid code duplication in one if # statement. # # drivers/pci/hotplug/pciehp_ctrl.c # 2004/04/24 02:48:25-07:00 eike-hotplug@sf-tec.de +18 -12 # PCI Express Hotplug: remove useless kmalloc casts # # ChangeSet # 2004/04/29 16:13:41-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Express Hotplug: fix coding style # # drivers/pci/hotplug/pciehp_ctrl.c # 2004/04/24 02:24:45-07:00 eike-hotplug@sf-tec.de +117 -120 # PCI Express Hotplug: fix coding style # # ChangeSet # 2004/04/29 16:04:49-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug skeleton: final cleanups # # Some final fixes for the skeleton driver: # -spaces before opening brace # -add a better example for hardware_test function # -remove a "int retval" in a void function # -some more coding style changes # -changed enough stuff: increase version number # -fix a typo in a comment # # drivers/pci/hotplug/pcihp_skeleton.c # 2004/04/23 18:22:46-07:00 eike-hotplug@sf-tec.de +25 -22 # PCI Hotplug skeleton: final cleanups # # ChangeSet # 2004/04/29 16:04:00-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug skeleton: use goto for error handling # # Convert PCI hotplug skeleton driver to use goto for error handling in # init_slots to avoid code duplication. # # drivers/pci/hotplug/pcihp_skeleton.c # 2004/04/23 18:19:36-07:00 eike-hotplug@sf-tec.de +19 -22 # PCI Hotplug skeleton: use goto for error handling # # ChangeSet # 2004/04/29 16:03:26-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug skeleton: mark functions __init/__exit # # Add __init and __exit to some functions only called from __init/__exit context. # # drivers/pci/hotplug/pcihp_skeleton.c # 2004/04/23 18:15:14-07:00 eike-hotplug@sf-tec.de +4 -4 # PCI Hotplug skeleton: mark functions __init/__exit # # ChangeSet # 2004/04/29 16:02:44-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug skeleton: fix codingstyle # # Coding style fixes for pcihp_skeleton.c: remove spaces before opening braces # and change a comment in function hardware_test to make clearer that the # functions purpose is not to tell the user there are no tests. # # drivers/pci/hotplug/pcihp_skeleton.c # 2004/04/23 18:10:52-07:00 eike-hotplug@sf-tec.de +25 -26 # PCI Hotplug skeleton: fix codingstyle # # ChangeSet # 2004/04/29 16:02:12-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug skeleton: remove useless NULL checks # # This one removes all the useless NULL checks including slot_paranoia_check, # get_slot and the magic number from the PCI hotplug skeleton driver. Also some # lines containing only a single tab are fixed. # # drivers/pci/hotplug/pcihp_skeleton.c # 2004/04/23 18:05:03-07:00 eike-hotplug@sf-tec.de +17 -82 # PCI Hotplug skeleton: remove useless NULL checks # # ChangeSet # 2004/04/29 16:01:34-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug skeleton: use new style of module parameters # # Convert the PCI hotplug skeleton driver to use new style of module parameter # handling. # # drivers/pci/hotplug/pcihp_skeleton.c # 2004/04/23 17:40:13-07:00 eike-hotplug@sf-tec.de +3 -6 # PCI Hotplug skeleton: use new style of module parameters # # ChangeSet # 2004/04/29 15:52:30-07:00 eike-hotplug@sf-tec.de # [PATCH] ACPI PCI Hotplug: add a BUG() where one should be # # If there is a condition with the comment "should never happen" it is a good # place for a BUG() if it is ever reached. # # drivers/pci/hotplug/acpiphp_glue.c # 2004/04/21 09:59:29-07:00 eike-hotplug@sf-tec.de +2 -1 # ACPI PCI Hotplug: add a BUG() where one should be # # ChangeSet # 2004/04/29 15:51:57-07:00 eike-hotplug@sf-tec.de # [PATCH] ACPI PCI Hotplug: coding style fixes # # Some minor coding style fixes: # -space before opening brace of function # -wrap some long lines # -change some identations from spaces to tabs # # drivers/pci/hotplug/acpiphp_glue.c # 2004/04/21 09:59:29-07:00 eike-hotplug@sf-tec.de +5 -5 # ACPI PCI Hotplug: coding style fixes # # ChangeSet # 2004/04/29 15:51:27-07:00 eike-hotplug@sf-tec.de # [PATCH] ACPI PCI Hotplug: use goto for error handling # # This one fixes another space before an opening brace I missed before and # optimizes the error paths in init_slots a bit more. # # drivers/pci/hotplug/acpiphp_core.c # 2004/04/23 16:46:02-07:00 eike-hotplug@sf-tec.de +7 -6 # ACPI PCI Hotplug: use goto for error handling # # ChangeSet # 2004/04/29 15:50:56-07:00 eike-hotplug@sf-tec.de # [PATCH] ACPI PCI Hotplug: kill magic number # # The magic slot number was only another type of checking the validity of a # pointer. These checks are all gone so magic can follow them. # # drivers/pci/hotplug/acpiphp_core.c # 2004/04/23 16:39:58-07:00 eike-hotplug@sf-tec.de +0 -1 # ACPI PCI Hotplug: kill magic number # # drivers/pci/hotplug/acpiphp.h # 2004/04/23 16:39:49-07:00 eike-hotplug@sf-tec.de +0 -2 # ACPI PCI Hotplug: kill magic number # # ChangeSet # 2004/04/29 15:50:22-07:00 eike-hotplug@sf-tec.de # [PATCH] ACPI PCI Hotplug: use new style of module parameters # # This one converts acpiphp_core.c to use the new interface for module # parameters. # # drivers/pci/hotplug/acpiphp_core.c # 2004/04/23 11:02:59-07:00 eike-hotplug@sf-tec.de +2 -1 # ACPI PCI Hotplug: use new style of module parameters # # ChangeSet # 2004/04/29 15:01:10-07:00 eike-hotplug@sf-tec.de # [PATCH] CompactPCI Hotplug ZT5550: use new style of module parameters # # Convert the driver to use new interface for module parameters, Also fix the # driver name used in debug messages. # # Eike # # drivers/pci/hotplug/cpcihp_zt5550.c # 2004/04/29 08:00:35-07:00 eike-hotplug@sf-tec.de +3 -6 # [PATCH] CompactPCI Hotplug ZT5550: use new style of module parameters # # Convert the driver to use new interface for module parameters, Also fix the # driver name used in debug messages. # # Eike # # ChangeSet # 2004/04/29 14:59:12-07:00 eike-hotplug@sf-tec.de # [PATCH] CompactPCI Hotplug: kill magic number # # slot->magic is not used anymore since slot_paranoia_check is dead, so just kill # it. # # drivers/pci/hotplug/cpci_hotplug_core.c # 2004/04/29 07:58:20-07:00 eike-hotplug@sf-tec.de +0 -1 # [PATCH] CompactPCI Hotplug: kill magic number # # slot->magic is not used anymore since slot_paranoia_check is dead, so just kill # it. # # drivers/pci/hotplug/cpci_hotplug.h # 2004/04/29 07:58:20-07:00 eike-hotplug@sf-tec.de +0 -2 # [PATCH] CompactPCI Hotplug: kill magic number # # slot->magic is not used anymore since slot_paranoia_check is dead, so just kill # it. # # ChangeSet # 2004/04/29 14:53:25-07:00 eike-hotplug@sf-tec.de # [PATCH] CompactPCI Hotplug: remove unneeded funtion for parameter handling # # A special function for handling the parameters in non-module case is not # needed, the MODULE_* makros handle this also for compiled in situations. # # drivers/pci/hotplug/cpcihp_generic.c # 2004/04/29 07:53:02-07:00 eike-hotplug@sf-tec.de +0 -67 # [PATCH] CompactPCI Hotplug: remove unneeded funtion for parameter handling # # A special function for handling the parameters in non-module case is not # needed, the MODULE_* makros handle this also for compiled in situations. # # ChangeSet # 2004/04/29 14:26:03-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug: Clean up acpiphp_core.c: remove 3 get_* functions # # If we remove this 3 get_* functions the pci hotplug core will do the same # thing for us. # # drivers/pci/hotplug/acpiphp_core.c # 2004/04/18 10:13:31-07:00 eike-hotplug@sf-tec.de +2 -43 # PCI Hotplug: Clean up acpiphp_core.c: remove 3 get_* functions # # ChangeSet # 2004/04/29 14:25:28-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug: Clean up acpiphp_core.c: return # # Fix 2 very ugly return constructs. # # drivers/pci/hotplug/acpiphp_core.c # 2004/04/18 09:19:25-07:00 eike-hotplug@sf-tec.de +1 -7 # PCI Hotplug: Clean up acpiphp_core.c: return # # ChangeSet # 2004/04/29 14:25:00-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug: Clean up acpiphp_core.c: use goto for error handling # # This one converts the error handling in init_slots to use gotos to avoid code # duplication. # # drivers/pci/hotplug/acpiphp_core.c # 2004/04/18 09:17:59-07:00 eike-hotplug@sf-tec.de +15 -16 # PCI Hotplug: Clean up acpiphp_core.c: use goto for error handling # # ChangeSet # 2004/04/29 14:24:32-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug: Clean up acpiphp_core.c: kill hardware_test # # The function hardware_test only tells that there are no tests. If we just # kill it the file "test" in the slot's directory will not show up which # means pretty much the same. # # drivers/pci/hotplug/acpiphp_core.c # 2004/04/18 09:12:27-07:00 eike-hotplug@sf-tec.de +0 -20 # PCI Hotplug: Clean up acpiphp_core.c: kill hardware_test # # ChangeSet # 2004/04/29 14:24:01-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug: Clean up acpiphp_core.c: coding style # # This patch kills the space before the opening brace in function # declarations. It also beautifies some ugly return statements. # # drivers/pci/hotplug/acpiphp_core.c # 2004/04/18 09:11:50-07:00 eike-hotplug@sf-tec.de +20 -37 # PCI Hotplug: Clean up acpiphp_core.c: coding style # # ChangeSet # 2004/04/29 14:23:32-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug: Clean up acpiphp_core.c: slot_paranoia_check # # Matthew Wilcox wrote: # > On Thu, Apr 22, 2004 at 01:18:23PM +0200, Rolf Eike Beer wrote: # > > slot_paranoia_check is only another kind of checking everything for NULL. # > > Removing this leads to function get_slot is reduced to a simple cast, so # > > this function can be killed also. # > # > Since private is void *, you don't even need the casts. # > # > > static int enable_slot (struct hotplug_slot *hotplug_slot) # > > { # > > - struct slot *slot = get_slot(hotplug_slot, __FUNCTION__); # > > + struct slot *slot = (struct slot *)hotplug_slot->private; # > # > struct slot *slot = hotplug_slot->private; # > # > is enough. # # Fixed. # # drivers/pci/hotplug/acpiphp_core.c # 2004/04/18 09:04:56-07:00 eike-hotplug@sf-tec.de +8 -48 # PCI Hotplug: Clean up acpiphp_core.c: slot_paranoia_check # # ChangeSet # 2004/04/29 14:23:01-07:00 eike-hotplug@sf-tec.de # [PATCH] PCI Hotplug: Clean up acpiphp_core.c: null checks # # If the "struct hotplug_struct *" parameter to any function in # hotplug_slots_ops is ever NULL something bogus is going on. In this case we # should just oops and not hide the bug. This also fixes the driver name used in # debug messages. # # drivers/pci/hotplug/acpiphp_core.c # 2004/04/18 08:36:18-07:00 eike-hotplug@sf-tec.de +1 -35 # PCI Hotplug: Clean up acpiphp_core.c: null checks # # ChangeSet # 2004/04/29 14:07:10-07:00 johnrose@austin.ibm.com # [PATCH] PCI Hotplug: RPA DLPAR remove slot, return code fix # # drivers/pci/hotplug/rpadlpar_core.c # 2004/04/19 08:44:43-07:00 johnrose@austin.ibm.com +10 -10 # PCI Hotplug: RPA DLPAR remove slot, return code fix # # ChangeSet # 2004/04/29 14:01:19-07:00 lxiep@us.ibm.com # [PATCH] PCI Hotplug: rpaphp: set eeh option (enabled ) prior to any i/o to newly added IOA # # Attached patch fix the problem I have found during DLPAR I/O slots # testing on our new hardware. rpaphp needs to set eeh-option(eanbled) # for newly added IOA prior to performing PCI config(pci_setup_device), # otherwise the pci_dev of the IOA will have invalid base address # information. # # Linas Vepstas impleted eeh changes. # # drivers/pci/hotplug/rpaphp_pci.c # 2004/04/21 07:35:49-07:00 lxiep@us.ibm.com +3 -1 # PCI Hotplug: rpaphp: set eeh option (enabled ) prior to any i/o to newly added IOA # # ChangeSet # 2004/04/29 13:17:35-07:00 jochen@jochen.org # [PATCH] PCI: message cleanup in PCI probe # # The messages read: # # PCI: Address space collision on region 8 of bridge 0000:00:1f.0 [1180:11bf] # PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1 # Transparent bridge - 0000:00:1e.0 # PCI: Using IRQ router PIIX/ICH [8086/24cc] at 0000:00:1f.0 # PCI: Found IRQ 11 for device 0000:00:1f.1 # # The following patch adds "PCI: " in front of the message and KERN_INFO as well. # Compile&boot tested. # # Jochen # # drivers/pci/probe.c # 2004/04/18 04:57:06-07:00 jochen@jochen.org +1 -1 # PCI: message cleanup in PCI probe # # ChangeSet # 2004/04/29 13:16:38-07:00 jochen@jochen.org # [PATCH] PCI: I'm moving # # Can you please feed the following patch to Andrew? # # CREDITS # 2004/04/18 04:49:42-07:00 jochen@jochen.org +2 -2 # PCI: I'm moving # # ChangeSet # 2004/04/29 13:15:55-07:00 dsaxena@plexity.net # [PATCH] PCI: pci.ids update from sf.net + add IXP4xx to pci_ids.h # # include/linux/pci_ids.h # 2004/04/15 10:48:16-07:00 dsaxena@plexity.net +1 -0 # PCI: pci.ids update from sf.net + add IXP4xx to pci_ids.h # # drivers/pci/pci.ids # 2004/04/15 10:51:41-07:00 dsaxena@plexity.net +1248 -225 # PCI: pci.ids update from sf.net + add IXP4xx to pci_ids.h # # ChangeSet # 2004/04/29 10:47:50-07:00 greg@kroah.com # USB: fix build error in hci_usb driver due to urb reference count change. # # This really needs to get fixed the proper way, by making the urb allocation # dynamic in the driver, instead of the hack it is currently doing... # # drivers/bluetooth/hci_usb.c # 2004/04/29 03:47:26-07:00 greg@kroah.com +1 -1 # USB: fix build error in hci_usb driver due to urb reference count change. # # This really needs to get fixed the proper way, by making the urb allocation # dynamic in the driver, instead of the hack it is currently doing... # # ChangeSet # 2004/04/29 10:40:57-07:00 greg@kroah.com # USB: remove the wait_for_urb function from bfusb driver as it's no longer needed. # # drivers/bluetooth/bfusb.c # 2004/04/29 03:40:30-07:00 greg@kroah.com +0 -9 # USB: remove the wait_for_urb function from bfusb driver as it's no longer needed. # # ChangeSet # 2004/04/28 21:43:38-07:00 sean@mess.org # [PATCH] USB: fix PhidgetServo driver # # Somehow I managed to send the wrong version. Here is a patch which fixes # that. (Remove a dev_info() which wasn't supposed to be there, and make sure # that everything is still consistent in the unlikely event that kmalloc() # fails). Just minor cleanups. # # drivers/usb/misc/phidgetservo.c # 2004/04/28 17:35:09-07:00 sean@mess.org +14 -17 # USB: fix PhidgetServo driver # # ChangeSet # 2004/04/28 13:25:14-07:00 david-b@pacbell.net # [PATCH] USB: fix sparc64 2.6.6-rc2-mm2 build busted: usb/core/hub.c hubstatus # # > 2) An undefined 'hubstatus' variable in drivers/usb/core/hub.c: # > # > CC drivers/usb/core/hub.o # > drivers/usb/core/hub.c: In function `hub_port_connect_change': # > drivers/usb/core/hub.c:1343: error: `hubstatus' undeclared (first use in this function) # > drivers/usb/core/hub.c:1343: error: (Each undeclared identifier is reported only once # > drivers/usb/core/hub.c:1343: error: for each function it appears in.) # > make[3]: *** [drivers/usb/core/hub.o] Error 1 # > # > As a total shot in the dark, the following fixes the build (I've no clue # > if it is the right fix): # # Yes, it's the right fix. Greg, please merge the attached patch, # which will be needed on any big-endian system. # # drivers/usb/core/hub.c # 2004/04/27 01:19:29-07:00 david-b@pacbell.net +1 -1 # USB: fix sparc64 2.6.6-rc2-mm2 build busted: usb/core/hub.c hubstatus # # ChangeSet # 2004/04/28 11:52:21-07:00 stern@rowland.harvard.edu # [PATCH] USB: Lock devices during tree traversal # # On Tue, 27 Apr 2004, Greg KH wrote: # # > So, what's next in this patch series? :) # # Funny you should ask... # # While writing those patches I noted a problem, that the USB device tree # can change while a process reading /proc/bus/usb/devices is traversing it, # leading to an oops when a pointer to a no-longer-existing child device is # dereferenced. The ensuing discussion led to the conclusion that the # devices' ->serialize locks should be acquired, top-down, while going # through the tree. # # That means changing the code that populates the devices file and changing # the code that adds and removes USB device structures. This patch takes # care of the first part. I'm delaying the second part because that section # of usbcore is still under change -- David Brownell's revisions have not # yet been fully integrated. # # A similar change should be made to usb_find_device() and match_device() in # usb.c. You may want to add that yourself. # # drivers/usb/core/devices.c # 2004/04/28 06:48:48-07:00 stern@rowland.harvard.edu +10 -2 # USB: Lock devices during tree traversal # # ChangeSet # 2004/04/28 11:51:52-07:00 sean@mess.org # [PATCH] USB: add new USB PhidgetServo driver # # Here is a driver for the usb servo controllers from Phidgets # , using sysfs. # # Note that the devices claim to be hid devices, so I've added them to the # hid_blacklist (HID_QUIRK_IGNORE). A servo controller isn't really an hid # device (or is it?). # # drivers/usb/misc/Makefile # 2004/04/21 09:02:00-07:00 sean@mess.org +1 -0 # USB: add new USB PhidgetServo driver # # drivers/usb/misc/Kconfig # 2004/04/21 09:02:00-07:00 sean@mess.org +12 -0 # USB: add new USB PhidgetServo driver # # drivers/usb/input/hid-core.c # 2004/04/22 02:54:25-07:00 sean@mess.org +12 -0 # USB: add new USB PhidgetServo driver # # drivers/usb/Makefile # 2004/04/21 09:02:00-07:00 sean@mess.org +1 -0 # USB: add new USB PhidgetServo driver # # drivers/usb/misc/phidgetservo.c # 2004/04/27 04:03:07-07:00 sean@mess.org +330 -0 # USB: add new USB PhidgetServo driver # # drivers/usb/misc/phidgetservo.c # 2004/04/27 04:03:07-07:00 sean@mess.org +0 -0 # BitKeeper file /home/greg/linux/BK/usb-2.6/drivers/usb/misc/phidgetservo.c # # ChangeSet # 2004/04/28 11:51:03-07:00 greg@kroah.com # My cleanups to the smbios driver. # # drivers/firmware/smbios.c # 2004/04/28 04:50:49-07:00 greg@kroah.com +13 -31 # My cleanups to the smbios driver. # # ChangeSet # 2004/04/28 11:50:29-07:00 Michael_E_Brown@Dell.com # [PATCH] add SMBIOS tables to sysfs -- UPDATED # # drivers/firmware/smbios.h # 2004/04/28 04:43:56-07:00 Michael_E_Brown@Dell.com +53 -0 # [PATCH] add SMBIOS tables to sysfs -- UPDATED # # drivers/firmware/smbios.h # 2004/04/28 04:43:56-07:00 Michael_E_Brown@Dell.com +0 -0 # BitKeeper file /home/greg/linux/BK/driver-2.6/drivers/firmware/smbios.h # # drivers/firmware/Makefile # 2004/04/28 04:43:56-07:00 Michael_E_Brown@Dell.com +1 -0 # [PATCH] add SMBIOS tables to sysfs -- UPDATED # # drivers/firmware/Kconfig # 2004/04/28 04:43:56-07:00 Michael_E_Brown@Dell.com +8 -0 # [PATCH] add SMBIOS tables to sysfs -- UPDATED # # drivers/firmware/smbios.c # 2004/04/28 04:43:56-07:00 Michael_E_Brown@Dell.com +266 -0 # [PATCH] add SMBIOS tables to sysfs -- UPDATED # # drivers/firmware/smbios.c # 2004/04/28 04:43:56-07:00 Michael_E_Brown@Dell.com +0 -0 # BitKeeper file /home/greg/linux/BK/driver-2.6/drivers/firmware/smbios.c # # ChangeSet # 2004/04/28 11:32:17-05:00 jejb@mulgrave.(none) # Cset exclude: jejb@mulgrave.(none)|ChangeSet|20040404150128|05866 # # scsi_get_device needs no NULL check # # drivers/scsi/scsi.c # 2004/04/28 11:32:09-05:00 jejb@mulgrave.(none) +0 -0 # scsi_get_device needs no NULL check # # ChangeSet # 2004/04/27 17:33:52-07:00 greg@kroah.com # USB: fix compiler warnings in devices.c file. # # drivers/usb/core/devices.c # 2004/04/27 10:33:12-07:00 greg@kroah.com +2 -2 # USB: fix compiler warnings in devices.c file. # # ChangeSet # 2004/04/27 16:02:32-07:00 stern@rowland.harvard.edu # [PATCH] USB: Allocate interface structures dynamically # # This is a revised version of an earlier patch; I feel a lot better about # this one. Basically it does the same thing as before: allocate # interfaces dynamically to avoid the problems with reusing them. # # The difference is that this patch adds a struct kref to the array of # usb_interface_cache's, so the array can persist if needed after the # device has been disconnected. Each interface takes a reference to it # (along with the configuration itself), so as long as the interfaces # remain pinned in memory the altsettings will also remain. # # Here is a slight revision of patch as246b. This one allocates all the new # interfaces before changing any other state; otherwise it's the same. # # include/linux/usb.h # 2004/04/15 07:43:58-07:00 stern@rowland.harvard.edu +38 -3 # USB: Allocate interface structures dynamically # # drivers/usb/core/usb.c # 2004/04/15 05:19:20-07:00 stern@rowland.harvard.edu +1 -1 # USB: Allocate interface structures dynamically # # drivers/usb/core/message.c # 2004/04/15 05:28:25-07:00 stern@rowland.harvard.edu +46 -13 # USB: Allocate interface structures dynamically # # drivers/usb/core/devices.c # 2004/04/15 05:21:07-07:00 stern@rowland.harvard.edu +19 -12 # USB: Allocate interface structures dynamically # # drivers/usb/core/config.c # 2004/04/15 07:45:41-07:00 stern@rowland.harvard.edu +31 -44 # USB: Allocate interface structures dynamically # # ChangeSet # 2004/04/27 15:22:05-07:00 greg@kroah.com # USB: fix incorrect usb-serial conversion for cur_altsetting from previous patch. # # drivers/usb/serial/usb-serial.c # 2004/04/27 08:21:23-07:00 greg@kroah.com +1 -1 # USB: fix incorrect usb-serial conversion for cur_altsetting from previous patch. # # ChangeSet # 2004/04/27 14:45:49-07:00 greg@kroah.com # USB: make ehci driver use a kref instead of an atomic_t # # drivers/usb/host/ehci.h # 2004/04/27 14:45:32-07:00 greg@kroah.com +2 -1 # USB: make ehci driver use a kref instead of an atomic_t # # drivers/usb/host/ehci-sched.c # 2004/04/27 14:45:32-07:00 greg@kroah.com +3 -3 # USB: make ehci driver use a kref instead of an atomic_t # # drivers/usb/host/ehci-q.c # 2004/04/27 14:45:32-07:00 greg@kroah.com +5 -5 # USB: make ehci driver use a kref instead of an atomic_t # # drivers/usb/host/ehci-mem.c # 2004/04/27 14:45:32-07:00 greg@kroah.com +23 -16 # USB: make ehci driver use a kref instead of an atomic_t # # drivers/usb/host/ehci-hcd.c # 2004/04/27 14:45:32-07:00 greg@kroah.com +1 -1 # USB: make ehci driver use a kref instead of an atomic_t # # ChangeSet # 2004/04/27 14:21:13-07:00 greg@kroah.com # USB: removed unused atomic_t in keyspan driver structure. # # drivers/usb/serial/keyspan.c # 2004/04/27 07:20:12-07:00 greg@kroah.com +0 -3 # USB: removed unused atomic_t in keyspan driver structure. # # ChangeSet # 2004/04/27 14:02:13-04:00 jgarzik@redhat.com # [libata sata_sx4] trivial: fix filename in header # # drivers/scsi/sata_sx4.c # 2004/04/27 14:02:07-04:00 jgarzik@redhat.com +1 -1 # [libata sata_sx4] trivial: fix filename in header # # ChangeSet # 2004/04/26 17:07:28-07:00 greg@kroah.com # USB: switch struct urb to use a kref instead of it's own atomic_t # # include/linux/usb.h # 2004/04/26 10:06:52-07:00 greg@kroah.com +2 -1 # USB: switch struct urb to use a kref instead of it's own atomic_t # # drivers/usb/core/urb.c # 2004/04/26 10:06:52-07:00 greg@kroah.com +13 -8 # USB: switch struct urb to use a kref instead of it's own atomic_t # # ChangeSet # 2004/04/26 16:11:11-07:00 mdharm-usb@one-eyed-alien.net # [PATCH] USB: usb-storage driver changes for 2.6.x [4/4] # # This is a trivial patch to remove some duplicate includes. sched.h and # errno.h are already included in this file about a dozen lines or so above # this point. # # drivers/usb/storage/usb.c # 2004/04/24 19:25:23-07:00 mdharm-usb@one-eyed-alien.net +0 -2 # USB: usb-storage driver changes for 2.6.x [4/4] # # ChangeSet # 2004/04/26 16:10:49-07:00 mdharm-usb@one-eyed-alien.net # [PATCH] USB: usb-storage driver changes for 2.6.x [3/4] # # This patch adds some clear-halt calls if a GetMaxLUN fails. Apparently, # some devices (like certain early-rev Zip100s) stall their bulk pipes if # they receive a GetMaxLUN. # # drivers/usb/storage/transport.c # 2004/04/24 19:25:32-07:00 mdharm-usb@one-eyed-alien.net +11 -0 # USB: usb-storage driver changes for 2.6.x [3/4] # # ChangeSet # 2004/04/26 16:10:25-07:00 mdharm-usb@one-eyed-alien.net # [PATCH] USB: usb-storage driver changes for 2.6.x [2/4] # # This is patch as248b from Alan Stern, modified by myself: This adds a flag # which allows us to supress the "unneeded unusual_devs.h entry" message. # This is useful for times when idiotic device manufacturers break the rules # and release two different devices with the same VID, PID, and revision # number. # # drivers/usb/storage/usb.h # 2004/04/24 19:25:41-07:00 mdharm-usb@one-eyed-alien.net +1 -0 # USB: usb-storage driver changes for 2.6.x [2/4] # # drivers/usb/storage/usb.c # 2004/04/24 19:25:41-07:00 mdharm-usb@one-eyed-alien.net +1 -1 # USB: usb-storage driver changes for 2.6.x [2/4] # # drivers/usb/storage/unusual_devs.h # 2004/04/24 19:25:41-07:00 mdharm-usb@one-eyed-alien.net +1 -1 # USB: usb-storage driver changes for 2.6.x [2/4] # # ChangeSet # 2004/04/26 16:10:02-07:00 mdharm-usb@one-eyed-alien.net # [PATCH] USB: usb-storage driver changes for 2.6.x [1/4] # # Patch as239b from Alan Stern: This patch improves the interaction between # a SCSI reset, an internally generated reset, and an abort. This improves # our error-recovery in cases where the device is hung (or almost hung) while # we're trying to auto-reset. # # drivers/usb/storage/usb.h # 2004/04/24 19:25:50-07:00 mdharm-usb@one-eyed-alien.net +3 -2 # USB: usb-storage driver changes for 2.6.x [1/4] # # drivers/usb/storage/transport.c # 2004/04/24 19:25:50-07:00 mdharm-usb@one-eyed-alien.net +26 -21 # USB: usb-storage driver changes for 2.6.x [1/4] # # drivers/usb/storage/scsiglue.c # 2004/04/24 19:25:50-07:00 mdharm-usb@one-eyed-alien.net +11 -8 # USB: usb-storage driver changes for 2.6.x [1/4] # # ChangeSet # 2004/04/26 16:09:34-07:00 stern@rowland.harvard.edu # [PATCH] USB: Altsetting updates for usb/serial # # The updates needed for proper altsetting handling among the USB serial # drivers turned out to be a lot easier than I expected, thanks to the # organization of the drivers. Only a handful of changes were needed. # # drivers/usb/serial/usb-serial.c # 2004/04/26 07:38:00-07:00 stern@rowland.harvard.edu +1 -1 # USB: Altsetting updates for usb/serial # # drivers/usb/serial/safe_serial.c # 2004/04/26 07:38:00-07:00 stern@rowland.harvard.edu +1 -1 # USB: Altsetting updates for usb/serial # # drivers/usb/serial/kobil_sct.c # 2004/04/26 07:38:00-07:00 stern@rowland.harvard.edu +1 -1 # USB: Altsetting updates for usb/serial # # drivers/usb/serial/io_ti.c # 2004/04/26 07:38:00-07:00 stern@rowland.harvard.edu +1 -1 # USB: Altsetting updates for usb/serial # # ChangeSet # 2004/04/26 16:09:06-07:00 baldrick@free.fr # [PATCH] USB: be assertive in usbfs # # Be assertive. # # drivers/usb/core/devio.c # 2004/04/26 06:48:28-07:00 baldrick@free.fr +2 -2 # USB: be assertive in usbfs # # ChangeSet # 2004/04/26 16:08:38-07:00 bellucda@tiscali.it # [PATCH] USB: audits in usb_init() # # there were some missing audits in usb_init() # # drivers/usb/core/usb.c # 2004/04/26 14:55:56-07:00 bellucda@tiscali.it +26 -6 # USB: audits in usb_init() # # ChangeSet # 2004/04/26 16:08:12-07:00 tejohnson@yahoo.com # [PATCH] USB: mtouchusb update for 2.6.6-rc2 # # The attached patch for the 3M Touch Systems Capacitive controller. # # Quick list of changes: # # * Changed reset from standard USB dev reset to vendor reset # * Changed data sent to host from compensated to raw coordinates # * Eliminated vendor/product module params # * Performed multiple successfull tests with an EXII-5010UC # # The changes are primarily due to comments from Vojtech Pavlik, as well # as making the newer EXII-50XXUC controllers work. # # Thanks to 3M Touch Systems for sending me some new controllers to test with! # # An updated HOWTO is also available at: # # # http://groomlakelabs.com/grandamp/code/microtouch/Linux-Input-USB-Touchscreen-HowTo.txt # # drivers/usb/input/mtouchusb.c # 2004/04/25 12:16:01-07:00 tejohnson@yahoo.com +35 -72 # USB: mtouchusb update for 2.6.6-rc2 # # Documentation/usb/mtouchusb.txt # 2004/04/25 12:16:49-07:00 tejohnson@yahoo.com +42 -51 # USB: mtouchusb update for 2.6.6-rc2 # # ChangeSet # 2004/04/26 12:41:28-04:00 akpm@osdl.org # [PATCH] sata_sx4.c warning fix # # drivers/scsi/sata_sx4.c: In function `pdc20621_put_to_dimm': # drivers/scsi/sata_sx4.c:928: warning: comparison is always true due to limited range of data type # # The code is doing, effectively: # # if ((long)(expr returning u32)) >= 0 # # but on 64-bit architectures, that will always be true. # # So cast the u32 result to s32 before promoting to long so that bit 31 # correctly propagates into bits 32-63. # # drivers/scsi/sata_sx4.c # 2004/04/26 02:55:02-04:00 akpm@osdl.org +1 -1 # sata_sx4.c warning fix # # ChangeSet # 2004/04/26 12:00:03-04:00 jgarzik@redhat.com # [libata] remove unused struct ata_engine # # include/linux/libata.h # 2004/04/26 11:59:58-04:00 jgarzik@redhat.com +0 -10 # [libata] remove unused struct ata_engine # # drivers/scsi/libata-core.c # 2004/04/26 11:59:58-04:00 jgarzik@redhat.com +0 -3 # [libata] remove unused struct ata_engine # # ChangeSet # 2004/04/26 09:06:21-05:00 akpm@osdl.org # [PATCH] scsi_disk_release() warning fix # # drivers/scsi/sd.c: In function `scsi_disk_release': # drivers/scsi/sd.c:1477: warning: unused variable `sdev' # # drivers/scsi/sd.c # 2004/04/26 01:17:21-05:00 akpm@osdl.org +0 -1 # scsi_disk_release() warning fix # # ChangeSet # 2004/04/25 23:51:40-07:00 airlied@pdx.freedesktop.org # Merge pdx.freedesktop.org:/home/airlied/linux/drm-2.6 # into pdx.freedesktop.org:/home/airlied/linux/drm-dev # # drivers/char/drm/i830_irq.c # 2004/04/25 23:51:36-07:00 airlied@pdx.freedesktop.org +0 -0 # Auto merged # # drivers/char/drm/i830_dma.c # 2004/04/25 23:51:36-07:00 airlied@pdx.freedesktop.org +0 -0 # Auto merged # # drivers/char/drm/i810_dma.c # 2004/04/25 23:51:36-07:00 airlied@pdx.freedesktop.org +0 -0 # Auto merged # # ChangeSet # 2004/04/25 23:45:24-07:00 airlied@pdx.freedesktop.org # drm_pciids.h: # add new tdfx id, and blank ffb ids # # drivers/char/drm/drm_pciids.h # 2004/04/25 23:44:34-07:00 airlied@pdx.freedesktop.org +5 -0 # add new tdfx id, and blank ffb ids # # ChangeSet # 2004/04/25 23:09:37-07:00 airlied@pdx.freedesktop.org # Merge http://linux.bkbits.net/linux-2.5 # into pdx.freedesktop.org:/home/airlied/linux/drm-dev # # drivers/char/drm/i830_irq.c # 2004/04/25 23:09:33-07:00 airlied@pdx.freedesktop.org +0 -0 # Auto merged # # drivers/char/drm/i830_dma.c # 2004/04/25 23:09:33-07:00 airlied@pdx.freedesktop.org +0 -0 # Auto merged # # drivers/char/drm/i810_dma.c # 2004/04/25 23:09:33-07:00 airlied@pdx.freedesktop.org +0 -0 # Auto merged # # ChangeSet # 2004/04/26 02:09:12-04:00 jgarzik@redhat.com # [libata promise] make sure our schedule_timeout(N) are never with N==0 # # Make sure we delay for a minimum desired length of time. # # drivers/scsi/sata_sx4.c # 2004/04/26 02:09:07-04:00 jgarzik@redhat.com +2 -2 # [libata promise] make sure our schedule_timeout(N) are never with N==0 # # Make sure we delay for a minimum desired length of time. # # drivers/scsi/sata_promise.c # 2004/04/26 02:09:07-04:00 jgarzik@redhat.com +1 -1 # [libata promise] make sure our schedule_timeout(N) are never with N==0 # # Make sure we delay for a minimum desired length of time. # # ChangeSet # 2004/04/26 01:36:12-04:00 jgarzik@redhat.com # [libata] replace per-command semaphore with optional completion # # The semaphore was initialized and up'd for each command, but nobody # was listening. Replace this with a completion, which may or may not # be present. # # include/linux/libata.h # 2004/04/26 01:36:07-04:00 jgarzik@redhat.com +1 -1 # [libata] replace per-command semaphore with optional completion # # The semaphore was initialized and up'd for each command, but nobody # was listening. Replace this with a completion, which may or may not # be present. # # drivers/scsi/libata-core.c # 2004/04/26 01:36:07-04:00 jgarzik@redhat.com +3 -2 # [libata] replace per-command semaphore with optional completion # # The semaphore was initialized and up'd for each command, but nobody # was listening. Replace this with a completion, which may or may not # be present. # # ChangeSet # 2004/04/26 01:15:11-04:00 jgarzik@redhat.com # [libata] increase max-sectors limit for modern drives # # This is the much-discussed "speed up SATA" patch. It limits requests # to 1MB as discussed, rather than the hardware maximum (32MB). # # As soon as Jens Axboe's patch to dynamically determining request # size is merged, max_sectors becomes what it properly should be -- # a description of the absolute hardware maximum. # # drivers/scsi/libata-scsi.c # 2004/04/26 01:15:05-04:00 jgarzik@redhat.com +19 -0 # [libata] increase max-sectors limit for modern drives # # This is the much-discussed "speed up SATA" patch. It limits requests # to 1MB as discussed, rather than the hardware maximum (32MB). # # As soon as Jens Axboe's patch to dynamically determining request # size is merged, max_sectors becomes what it properly should be -- # a description of the absolute hardware maximum. # # ChangeSet # 2004/04/26 00:54:47-04:00 jgarzik@redhat.com # [libata] work queueing cleanups and fixes # # Make sure to initialize PIO data xfer state. # # Use queue_delayed_work() rather than manually calling schedule_timeout(), # then queue_work(), ourselves. # # drivers/scsi/libata-core.c # 2004/04/26 00:54:42-04:00 jgarzik@redhat.com +13 -13 # [libata] work queueing cleanups and fixes # # Make sure to initialize PIO data xfer state. # # Use queue_delayed_work() rather than manually calling schedule_timeout(), # then queue_work(), ourselves. # # ChangeSet # 2004/04/26 00:17:47-04:00 jgarzik@redhat.com # [libata] some work on the ATAPI path # # Remove a lot of redundant code in ATAPI packet submission. # # ATAPI is still disabled, it doesn't work yet. # # drivers/scsi/libata-scsi.c # 2004/04/26 00:17:42-04:00 jgarzik@redhat.com +8 -2 # [libata] some work on the ATAPI path # # Remove a lot of redundant code in ATAPI packet submission. # # ATAPI is still disabled, it doesn't work yet. # # drivers/scsi/libata-core.c # 2004/04/26 00:17:42-04:00 jgarzik@redhat.com +11 -65 # [libata] some work on the ATAPI path # # Remove a lot of redundant code in ATAPI packet submission. # # ATAPI is still disabled, it doesn't work yet. # # ChangeSet # 2004/04/25 23:54:36-04:00 jgarzik@redhat.com # [libata] internal cleanup: kill ata_pio_start # # Integrate it into its caller. # # drivers/scsi/libata-core.c # 2004/04/25 23:54:31-04:00 jgarzik@redhat.com +5 -21 # [libata] internal cleanup: kill ata_pio_start # # Integrate it into its caller. # # ChangeSet # 2004/04/25 23:13:39-04:00 jgarzik@redhat.com # [libata] make ata_wq workqueue local to libata-core module # # Now that libata-scsi module no longer calls queue_work() directly, # we can localize the use of ata_wq. # # drivers/scsi/libata.h # 2004/04/25 23:13:34-04:00 jgarzik@redhat.com +0 -2 # [libata] make ata_wq workqueue local to libata-core module # # Now that libata-scsi module no longer calls queue_work() directly, # we can localize the use of ata_wq. # # drivers/scsi/libata-scsi.c # 2004/04/25 23:13:34-04:00 jgarzik@redhat.com +0 -1 # [libata] make ata_wq workqueue local to libata-core module # # Now that libata-scsi module no longer calls queue_work() directly, # we can localize the use of ata_wq. # # drivers/scsi/libata-core.c # 2004/04/25 23:13:34-04:00 jgarzik@redhat.com +1 -1 # [libata] make ata_wq workqueue local to libata-core module # # Now that libata-scsi module no longer calls queue_work() directly, # we can localize the use of ata_wq. # # ChangeSet # 2004/04/25 23:05:58-04:00 jgarzik@redhat.com # [libata] move ATAPI command initiation code from libata-scsi to libata-core # # ChangeSet # 2004/04/25 22:05:57-05:00 andmike@us.ibm.com # [PATCH] fix module unload problem in sd # # Move scsi_device_get out of sd probe path to allow module to be unloaded # when devices are not open. # # drivers/scsi/libata.h # 2004/04/25 23:05:53-04:00 jgarzik@redhat.com +1 -0 # [libata] move ATAPI command initiation code from libata-scsi to libata-core # # drivers/scsi/libata-scsi.c # 2004/04/25 23:05:53-04:00 jgarzik@redhat.com +4 -46 # [libata] move ATAPI command initiation code from libata-scsi to libata-core # # drivers/scsi/libata-core.c # 2004/04/25 23:05:53-04:00 jgarzik@redhat.com +53 -0 # [libata] move ATAPI command initiation code from libata-scsi to libata-core # # drivers/scsi/sd.c # 2004/04/22 00:20:13-05:00 andmike@us.ibm.com +15 -10 # fix module unload problem in sd # # ChangeSet # 2004/04/25 21:47:36-04:00 jgarzik@redhat.com # [libata] move probe execution from katad thread to workqueue thread # # This allows us to kill the katad thread itself, and several # thread-related variables in struct ata_port. # # include/linux/libata.h # 2004/04/25 21:47:31-04:00 jgarzik@redhat.com +2 -6 # [libata] move probe execution from katad thread to workqueue thread # # This allows us to kill the katad thread itself, and several # thread-related variables in struct ata_port. # # drivers/scsi/libata.h # 2004/04/25 21:47:31-04:00 jgarzik@redhat.com +0 -1 # [libata] move probe execution from katad thread to workqueue thread # # This allows us to kill the katad thread itself, and several # thread-related variables in struct ata_port. # # drivers/scsi/libata-core.c # 2004/04/25 21:47:31-04:00 jgarzik@redhat.com +20 -137 # [libata] move probe execution from katad thread to workqueue thread # # This allows us to kill the katad thread itself, and several # thread-related variables in struct ata_port. # # ChangeSet # 2004/04/25 20:18:57-04:00 jgarzik@redhat.com # [libata] move PIO data xfer from katad thread to workqueue thread # # include/linux/libata.h # 2004/04/25 20:18:52-04:00 jgarzik@redhat.com +15 -7 # [libata] move PIO data xfer from katad thread to workqueue thread # # drivers/scsi/libata-core.c # 2004/04/25 20:18:52-04:00 jgarzik@redhat.com +73 -63 # [libata] move PIO data xfer from katad thread to workqueue thread # # ChangeSet # 2004/04/25 19:28:29-04:00 jgarzik@redhat.com # [libata] move ATAPI startup from katad thread to workqueue thread # # libata creates one thread per ata_port structure. This is inadequate # for our needs, and also cumbersome to maintain, now that workqueues # and Rusty's thread work is available. # # This patch begins to move libata away from doing its own per-port # thread, by moving the ATAPI command initiation code to work under # the workqueue system. # # This patch also creates a private workqueue, global to all of libata. # # include/linux/libata.h # 2004/04/25 19:28:23-04:00 jgarzik@redhat.com +3 -1 # [libata] move ATAPI startup from katad thread to workqueue thread # # libata creates one thread per ata_port structure. This is inadequate # for our needs, and also cumbersome to maintain, now that workqueues # and Rusty's thread work is available. # # This patch begins to move libata away from doing its own per-port # thread, by moving the ATAPI command initiation code to work under # the workqueue system. # # This patch also creates a private workqueue, global to all of libata. # # drivers/scsi/libata.h # 2004/04/25 19:28:23-04:00 jgarzik@redhat.com +1 -0 # [libata] move ATAPI startup from katad thread to workqueue thread # # libata creates one thread per ata_port structure. This is inadequate # for our needs, and also cumbersome to maintain, now that workqueues # and Rusty's thread work is available. # # This patch begins to move libata away from doing its own per-port # thread, by moving the ATAPI command initiation code to work under # the workqueue system. # # This patch also creates a private workqueue, global to all of libata. # # drivers/scsi/libata-scsi.c # 2004/04/25 19:28:23-04:00 jgarzik@redhat.com +3 -2 # [libata] move ATAPI startup from katad thread to workqueue thread # # libata creates one thread per ata_port structure. This is inadequate # for our needs, and also cumbersome to maintain, now that workqueues # and Rusty's thread work is available. # # This patch begins to move libata away from doing its own per-port # thread, by moving the ATAPI command initiation code to work under # the workqueue system. # # This patch also creates a private workqueue, global to all of libata. # # drivers/scsi/libata-core.c # 2004/04/25 19:28:23-04:00 jgarzik@redhat.com +22 -12 # [libata] move ATAPI startup from katad thread to workqueue thread # # libata creates one thread per ata_port structure. This is inadequate # for our needs, and also cumbersome to maintain, now that workqueues # and Rusty's thread work is available. # # This patch begins to move libata away from doing its own per-port # thread, by moving the ATAPI command initiation code to work under # the workqueue system. # # This patch also creates a private workqueue, global to all of libata. # # ChangeSet # 2004/04/25 09:23:51-05:00 aradford@amcc.com # [PATCH] 3ware driver update # # This patch includes the following driver changes: # # 1.26.00.038 - Roll driver minor version to 26 to denote kernel 2.6. # Add support for cmds_per_lun module parameter. # 1.26.00.039 - Fix bug in tw_chrdev_ioctl() polling code. # Fix data_buffer_length usage in tw_chrdev_ioctl(). # Update contact information. # # drivers/scsi/3w-xxxx.h # 2004/04/21 17:27:30-05:00 aradford@amcc.com +4 -4 # 3ware driver update # # drivers/scsi/3w-xxxx.c # 2004/04/21 17:27:29-05:00 aradford@amcc.com +26 -22 # 3ware driver update # # ChangeSet # 2004/04/25 09:20:56-05:00 garloff@suse.de # [PATCH] scsi: don't attach device if PQ indicates not connected # # include/scsi/scsi_device.h # 2004/04/21 11:55:21-05:00 garloff@suse.de +1 -0 # don't attach device if PQ indicates not connected # # include/scsi/scsi.h # 2004/04/21 11:54:43-05:00 garloff@suse.de +7 -0 # don't attach device if PQ indicates not connected # # drivers/scsi/scsi_sysfs.c # 2004/04/21 11:56:33-05:00 garloff@suse.de +2 -1 # don't attach device if PQ indicates not connected # # drivers/scsi/scsi_scan.c # 2004/04/21 11:56:02-05:00 garloff@suse.de +5 -10 # don't attach device if PQ indicates not connected # # ChangeSet # 2004/04/25 09:13:40-05:00 chrisw@osdl.org # [PATCH] Update aacraid MAINTAINERS entry # # MAINTAINERS # 2004/04/19 07:59:12-05:00 chrisw@osdl.org +2 -4 # Update aacraid MAINTAINERS entry # # ChangeSet # 2004/04/25 09:12:06-05:00 jejb@mulgrave.(none) # aic7xxx: compile fix for EISA only case # # We can't refer to PCI functions for a pure # EISA machine. # # drivers/scsi/aic7xxx/aic7xxx_osm.c # 2004/04/25 09:11:53-05:00 jejb@mulgrave.(none) +2 -0 # aic7xxx: compile fix for EISA only case # # ChangeSet # 2004/04/25 09:10:30-05:00 akpm@osdl.org # [PATCH] aic7xxx: fix oops whe hardware is not present # # From: Herbert Xu # # This is because aic7xxx does not unregister itself properly if no devices # are found. This patch fixes the problem. # # drivers/scsi/aic7xxx/aic7xxx_osm.h # 2004/04/06 23:09:31-05:00 akpm@osdl.org +1 -1 # aic7xxx: fix oops whe hardware is not present # # drivers/scsi/aic7xxx/aic7xxx_osm.c # 2004/04/06 23:09:31-05:00 akpm@osdl.org +19 -4 # aic7xxx: fix oops whe hardware is not present # # drivers/scsi/aic7xxx/aic7770_osm.c # 2004/04/06 23:09:31-05:00 akpm@osdl.org +12 -13 # aic7xxx: fix oops whe hardware is not present # # ChangeSet # 2004/04/25 09:08:55-05:00 Kai.Makisara@kolumbus.fi # [PATCH] SCSI tape log message fixes # # This patch changes the st console/log messages: # # - __GFP_NOWARN added to buffer allocation to suppress useless messages # when having to use smaller than default segments # - move log message from enlarge_buffer() to caller so that the tape name # can be printed and remove some debugging messages; now the st messages # should include drive name where applicable (a problem reported by # Hironobu Ishii) # - setting options is logged only when debugging; the most important # options are now seen in sysfs # # drivers/scsi/st.c # 2004/04/04 07:39:34-05:00 Kai.Makisara@kolumbus.fi +54 -66 # SCSI tape log message fixes # # ChangeSet # 2004/04/25 09:05:51-05:00 praka@users.sourceforge.net # [PATCH] qla2xxx set current state fixes # # - always set_current_state(TASK_UNINTERRUBTIBLE) unless we explicitly # check for signals. # # - make all timeouts take HZ based values. # # drivers/scsi/qla2xxx/qla_os.c # 2004/03/31 15:56:30-06:00 praka@users.sourceforge.net +14 -14 # qla2xxx set current state fixes # # drivers/scsi/qla2xxx/qla_init.c # 2004/03/31 15:48:53-06:00 praka@users.sourceforge.net +1 -1 # qla2xxx set current state fixes # # ChangeSet # 2004/04/25 09:04:26-05:00 aris@cathedrallabs.org # [PATCH] qlogic_cs: use qlogicfas408 module # # this patch kills qlogic_core.c and I guess the same idea can be # applied to other pcmcia scsi drivers. comments? # # drivers/scsi/pcmcia/qlogic_stub.c # 2004/03/30 13:46:44-06:00 aris@cathedrallabs.org +35 -30 # qlogic_cs: use qlogicfas408 module # # drivers/scsi/pcmcia/Makefile # 2004/03/30 13:04:19-06:00 aris@cathedrallabs.org +1 -1 # qlogic_cs: use qlogicfas408 module # # BitKeeper/deleted/.del-qlogic_core.c~5bf1eee84f4e0415 # 2004/04/25 09:04:14-05:00 aris@cathedrallabs.org +0 -0 # Delete: drivers/scsi/pcmcia/qlogic_core.c # # ChangeSet # 2004/04/25 09:02:48-05:00 aris@cathedrallabs.org # [PATCH] qlogicfas: split and create a new module # # drivers/scsi/qlogicfas408.h # 2004/03/30 10:49:32-06:00 aris@cathedrallabs.org +27 -31 # qlogicfas: split and create a new module with only # # drivers/scsi/qlogicfas408.c # 2004/04/25 09:02:28-05:00 aris@cathedrallabs.org +637 -0 # # drivers/scsi/qlogicfas.c # 2004/03/30 10:51:19-06:00 aris@cathedrallabs.org +50 -571 # qlogicfas: split and create a new module with only # # drivers/scsi/Makefile # 2004/03/30 06:54:40-06:00 aris@cathedrallabs.org +2 -1 # qlogicfas: split and create a new module with only # # drivers/scsi/qlogicfas408.c # 2004/04/25 09:02:28-05:00 aris@cathedrallabs.org +0 -0 # BitKeeper file /home/jejb/BK/scsi-misc-2.6/drivers/scsi/qlogicfas408.c # # ChangeSet # 2004/04/25 09:00:34-05:00 aris@cathedrallabs.org # [PATCH] qlogicfas: kill horrible irq probing # # this patch kills irq probe and also I/O because isn't useful to # probe I/O if we can't probe irq later. # # drivers/scsi/qlogicfas.c # 2004/03/18 05:31:52-06:00 aris@cathedrallabs.org +26 -45 # qlogicfas: kill horrible irq probing # # ChangeSet # 2004/04/25 08:44:44-05:00 jejb@mulgrave.(none) # MPT Fusion add back FC909 support # # From: "Moore, Eric Dean" # # drivers/message/fusion/mptscsih.c # 2004/04/25 08:44:31-05:00 jejb@mulgrave.(none) +23 -10 # MPT Fusion add back FC909 support # # drivers/message/fusion/mptctl.h # 2004/04/25 08:44:31-05:00 jejb@mulgrave.(none) +31 -0 # MPT Fusion add back FC909 support # # drivers/message/fusion/mptctl.c # 2004/04/25 08:44:31-05:00 jejb@mulgrave.(none) +52 -26 # MPT Fusion add back FC909 support # # drivers/message/fusion/mptbase.h # 2004/04/25 08:44:31-05:00 jejb@mulgrave.(none) +2 -2 # MPT Fusion add back FC909 support # # drivers/message/fusion/mptbase.c # 2004/04/25 08:44:31-05:00 jejb@mulgrave.(none) +157 -0 # MPT Fusion add back FC909 support # # ChangeSet # 2004/04/24 19:37:41-07:00 airlied@pdx.freedesktop.org # drm_irq.h: # remove NO_VERSION # # drivers/char/drm/drm_irq.h # 2004/04/24 19:36:53-07:00 airlied@pdx.freedesktop.org +0 -1 # remove NO_VERSION # # ChangeSet # 2004/04/24 22:15:40-04:00 jeremy@sgi.com # [PATCH] sata_vsc initialization fix # # drivers/scsi/sata_vsc.c # 2004/04/22 15:14:14-04:00 jeremy@sgi.com +4 -0 # sata_vsc initialization fix # # ChangeSet # 2004/04/24 14:12:03-04:00 jgarzik@redhat.com # [libata] clean up taskfile submission to hardware # # When writing taskfile (an ATA command) to the controller, the exact # setup of the taskfile is dependent on the taskfile "protocol": # PIO, PIO Multiple, DMA, Non-data, etc. # # So, we separate out the submission of the taskfile to hardware into # a separate function ata_qc_issue_prot(), which will later be the # home for more code. # # Also, remove some dead code (#if 0'd). # # include/linux/libata.h # 2004/04/24 14:11:58-04:00 jgarzik@redhat.com +0 -1 # [libata] clean up taskfile submission to hardware # # When writing taskfile (an ATA command) to the controller, the exact # setup of the taskfile is dependent on the taskfile "protocol": # PIO, PIO Multiple, DMA, Non-data, etc. # # So, we separate out the submission of the taskfile to hardware into # a separate function ata_qc_issue_prot(), which will later be the # home for more code. # # Also, remove some dead code (#if 0'd). # # drivers/scsi/libata-core.c # 2004/04/24 14:11:58-04:00 jgarzik@redhat.com +53 -56 # [libata] clean up taskfile submission to hardware # # When writing taskfile (an ATA command) to the controller, the exact # setup of the taskfile is dependent on the taskfile "protocol": # PIO, PIO Multiple, DMA, Non-data, etc. # # So, we separate out the submission of the taskfile to hardware into # a separate function ata_qc_issue_prot(), which will later be the # home for more code. # # Also, remove some dead code (#if 0'd). # # ChangeSet # 2004/04/24 13:26:06-04:00 jgarzik@redhat.com # [libata] add ata_tf_{to,from}_fis helpers # # include/linux/libata.h # 2004/04/24 13:26:01-04:00 jgarzik@redhat.com +2 -0 # [libata] add ata_tf_{to,from}_fis helpers # # drivers/scsi/libata-core.c # 2004/04/24 13:26:01-04:00 jgarzik@redhat.com +73 -0 # [libata] add ata_tf_{to,from}_fis helpers # # ChangeSet # 2004/04/23 16:41:30-07:00 stern@rowland.harvard.edu # [PATCH] USB: Altsetting update for USB net drivers # # The only driver under usb/net that needed any altsetting changes was # usbnet. I'm not looking forward to going through all the source files # under usb/serial. :-( # # drivers/usb/net/usbnet.c # 2004/04/22 09:56:28-07:00 stern@rowland.harvard.edu +4 -4 # USB: Altsetting update for USB net drivers # # ChangeSet # 2004/04/23 16:41:04-07:00 stern@rowland.harvard.edu # [PATCH] USB: Altsetting update for USB misc drivers # # This is the altsetting update for the drivers under usb/misc. As you can, # not much was needed at all. # # drivers/usb/misc/uss720.c # 2004/04/22 09:08:37-07:00 stern@rowland.harvard.edu +1 -1 # USB: Altsetting update for USB misc drivers # # drivers/usb/misc/legousbtower.c # 2004/04/22 09:01:26-07:00 stern@rowland.harvard.edu +1 -1 # USB: Altsetting update for USB misc drivers # # ChangeSet # 2004/04/23 16:40:35-07:00 stern@rowland.harvard.edu # [PATCH] USB: Altsetting updates for USB media drivers # # This patch implements the new altsetting regime for the drivers under # usb/media. Not much needed to be changed. I'm unable to test any of the # changes, but at least they compile all right (except that I didn't even # try to compile the pwc driver since it's marked BROKEN). # # The stv680 and w9968cf drivers still include an assumption that they are # bound to interface number 0. Since that the drivers are fairly tightly # linked to a specific kind of device I didn't try to change those # assumptions, but maybe they should be changed. # # drivers/usb/media/vicam.c # 2004/04/22 04:41:49-07:00 stern@rowland.harvard.edu +1 -1 # USB: Altsetting updates for USB media drivers # # drivers/usb/media/ultracam.c # 2004/04/21 09:26:45-07:00 stern@rowland.harvard.edu +4 -3 # USB: Altsetting updates for USB media drivers # # drivers/usb/media/se401.c # 2004/04/21 09:21:19-07:00 stern@rowland.harvard.edu +1 -1 # USB: Altsetting updates for USB media drivers # # drivers/usb/media/pwc-if.c # 2004/04/21 09:18:47-07:00 stern@rowland.harvard.edu +5 -2 # USB: Altsetting updates for USB media drivers # # drivers/usb/media/ov511.c # 2004/04/22 04:40:56-07:00 stern@rowland.harvard.edu +11 -3 # USB: Altsetting updates for USB media drivers # # drivers/usb/media/konicawc.c # 2004/04/21 09:41:57-07:00 stern@rowland.harvard.edu +12 -5 # USB: Altsetting updates for USB media drivers # # drivers/usb/media/ibmcam.c # 2004/04/21 09:32:00-07:00 stern@rowland.harvard.edu +5 -4 # USB: Altsetting updates for USB media drivers # # ChangeSet # 2004/04/23 16:40:06-07:00 stern@rowland.harvard.edu # [PATCH] USB: Cosmetic improvements for the UHCI driver # # This patch makes a few minor improvements to the appearance of the UHCI # driver. Please apply. # # drivers/usb/host/uhci-hcd.h # 2004/04/19 04:05:56-07:00 stern@rowland.harvard.edu +7 -7 # USB: Cosmetic improvements for the UHCI driver # # drivers/usb/host/uhci-hcd.c # 2004/04/14 03:19:54-07:00 stern@rowland.harvard.edu +10 -10 # USB: Cosmetic improvements for the UHCI driver # # ChangeSet # 2004/04/23 16:39:38-07:00 stern@rowland.harvard.edu # [PATCH] USB: Ignore URB_NO_INTERRUPT flag in UHCI # # Following a suggestion of David Brownell's I have decided to remove # support for the URB_NO_INTERRUPT flag in the UHCI driver. The overall # effect of the flag is to reduce the number of interrupts, thereby # improving throughput somewhat while increasing the duration of the # remaining IRQ handlers quite a lot (i.e., increasing interrupt variance). # So I think we're better off without it. Mind you, this is all in the # absence of any firm measurements. # # A common case where this will come up is during usb-storage bulk # transfers. Such transfers are generally divided into scatter-gather # components each corresponding to a single URB and transferring one memory # page (4 KB). While generating an interrupt for each one is a little # faster than ideal -- about every 3 ms -- it's better than waiting until 64 # KB has been transferred and there are 1024 individual TDs to clean up # during the IRQ. # # drivers/usb/host/uhci-hcd.c # 2004/04/16 04:02:37-07:00 stern@rowland.harvard.edu +7 -3 # USB: Ignore URB_NO_INTERRUPT flag in UHCI # # ChangeSet # 2004/04/23 16:20:26-07:00 baldrick@free.fr # [PATCH] USB usbfs: drop pointless racy check # # The check of interface->dev.driver requires a lock to be taken # to protect against driver binding changes. But in fact I think it # is better just to drop the test. The result is that the caller is # required to claim an interface before changing the altsetting, # which is consistent with the other routines that operate on # interfaces. # # devio.c | 6 ++---- # 1 files changed, 2 insertions(+), 4 deletions(-) # # drivers/usb/core/devio.c # 2004/04/14 05:18:37-07:00 baldrick@free.fr +2 -4 # USB usbfs: drop pointless racy check # # ChangeSet # 2004/04/23 16:20:07-07:00 baldrick@free.fr # [PATCH] USB usbfs: missing lock in proc_getdriver # # Hi Oliver, # # > I expect it to rarely matter, but it might matter now and then. It's # > just a question of hygiene. If you are using a temporary buffer I'd # > like to see it used to full advantage. So either drop the lock or do # > a direct copy. I'd prefer the first option your patch implemented. # # I agree. Greg, please consider applying the updated patch: # # # # Protect against driver binding changes while reading the driver name. # # drivers/usb/core/devio.c # 2004/04/14 07:03:12-07:00 baldrick@free.fr +6 -4 # USB usbfs: missing lock in proc_getdriver # # ChangeSet # 2004/04/23 16:19:43-07:00 baldrick@free.fr # [PATCH] USB usbfs: destroy submitted urbs only on the disconnected interface # # The remaining three patches contain miscellaneous fixes to usbfs. # This one fixes up the disconnect callback to only shoot down urbs # on the disconnected interface, and not on all interfaces. It also adds # a sanity check (this check is pointless because the interface could # never have been claimed in the first place if it failed, but I feel better # having it there). # # devio.c | 6 ++++-- # 1 files changed, 4 insertions(+), 2 deletions(-) # # drivers/usb/core/devio.c # 2004/04/14 05:18:20-07:00 baldrick@free.fr +4 -2 # USB usbfs: destroy submitted urbs only on the disconnected interface # # ChangeSet # 2004/04/23 16:19:14-07:00 baldrick@free.fr # [PATCH] USB usbfs: fix up releaseintf # # The semaphore is now taken in the callers. # # devio.c | 2 -- # 1 files changed, 2 deletions(-) # # drivers/usb/core/devio.c # 2004/04/14 05:18:08-07:00 baldrick@free.fr +0 -2 # USB usbfs: fix up releaseintf # # ChangeSet # 2004/04/23 16:18:50-07:00 baldrick@free.fr # [PATCH] USB usbfs: fix up proc_ioctl # # The semaphore is now taken in the caller. # # devio.c | 2 -- # 1 files changed, 2 deletions(-) # # drivers/usb/core/devio.c # 2004/04/14 05:17:56-07:00 baldrick@free.fr +0 -2 # USB usbfs: fix up proc_ioctl # # ChangeSet # 2004/04/23 16:18:24-07:00 baldrick@free.fr # [PATCH] USB usbfs: fix up proc_setconfig # # The semaphore is now taken in the caller. # # devio.c | 2 -- # 1 files changed, 2 deletions(-) # # drivers/usb/core/devio.c # 2004/04/14 05:17:46-07:00 baldrick@free.fr +0 -2 # USB usbfs: fix up proc_setconfig # # ChangeSet # 2004/04/23 16:17:59-07:00 baldrick@free.fr # [PATCH] USB usbfs: remove obsolete comment from proc_resetdevice # # devio.c | 3 --- # 1 files changed, 3 deletions(-) # # drivers/usb/core/devio.c # 2004/04/14 05:17:37-07:00 baldrick@free.fr +0 -3 # USB usbfs: remove obsolete comment from proc_resetdevice # # ChangeSet # 2004/04/23 16:17:35-07:00 baldrick@free.fr # [PATCH] USB usbfs: replace the per-file semaphore with the per-device semaphore # # devio.c | 43 +++++++++++++++++++++++-------------------- # usbdevice_fs.h | 1 - # 2 files changed, 23 insertions(+), 21 deletions(-) # # include/linux/usbdevice_fs.h # 2004/04/14 05:34:00-07:00 baldrick@free.fr +0 -1 # USB usbfs: replace the per-file semaphore with the per-device semaphore # # drivers/usb/core/devio.c # 2004/04/14 05:17:29-07:00 baldrick@free.fr +23 -20 # USB usbfs: replace the per-file semaphore with the per-device semaphore # # ChangeSet # 2004/04/23 16:17:09-07:00 baldrick@free.fr # [PATCH] USB usbfs: take a reference to the usb device # # Hi Greg, this is the first of a series of patches that replace the # per-file semaphore ps->devsem with the per-device semaphore # ps->dev->serialize. The role of devsem was to protect against # device disconnection. This can be done equally well using # ps->dev->serialize. On the other hand, ps->dev->serialize # protects against configuration and other changes, and has # already been introduced into usbfs in several places. Using # just one semaphore simplifies the code and removes some # remaining race conditions. It should also fix the oopses some # people have been seeing. In this first patch, a reference is # taken to the usb device as long as the usbfs file is open. That # way we can use ps->dev->serialize for as long as ps exists. # # devio.c | 27 ++++++++++++++++----------- # inode.c | 3 --- # 2 files changed, 16 insertions(+), 14 deletions(-) # # drivers/usb/core/inode.c # 2004/04/14 05:15:29-07:00 baldrick@free.fr +0 -3 # USB usbfs: take a reference to the usb device # # drivers/usb/core/devio.c # 2004/04/14 05:15:29-07:00 baldrick@free.fr +16 -11 # USB usbfs: take a reference to the usb device # # ChangeSet # 2004/04/23 15:45:24-07:00 david-b@pacbell.net # [PATCH] USB: khubd fixes # # This goes on top of the other enumeration patch I just sent, # to handle some dubious and/or broken hub configurations better. # # # Make khubd handle some cases better: # # - Track power budget for bus-powered hubs. This version only warns # when the budgets are exceeded. Eventually, the budgets should help # prevent such errors. # # - Rejects illegal USB setup: two consecutive bus powered hubs # would exceed the voltage drop budget, causing much flakiness. # # - For hosts with high speed hubs, warn when devices are hooked up # to full speed hubs if they'd be faster on a high speed one. # # - For hubs that don't do power switching, don't try to use it # # - For hubs that aren't self-powered, don't report local power status # # drivers/usb/core/hub.h # 2004/04/19 08:29:02-07:00 david-b@pacbell.net +2 -0 # USB: khubd fixes # # drivers/usb/core/hub.c # 2004/04/20 20:44:45-07:00 david-b@pacbell.net +143 -15 # USB: khubd fixes # # ChangeSet # 2004/04/23 15:44:57-07:00 david-b@pacbell.net # [PATCH] USB: re-factor enumeration logic # # This is an update to some patches from the December/January # timeframe, which will help sort out some of the mess for # drivers that need to use the reset logic. It's one of the # last significant patches in my gadget-2.6 tree that haven't # yet been merged into the main kernel tree. # # # More refactoring of the enumeration code paths: # # * The first half of usb_new_device() becomes the second half of a new # hub_port_init() routine (resets, sets address, gets descriptor) # # * The middle chunk of hub_port_connect_change() becomes the first half # of that new hub_port_init() routine. # # * Khubd uses that new routine in hub_port_connect_change(). # # * Now usb_new_device() cleans up better after faults, and has # a more useful locking policy (caller owns dev->serialize). # # * Has related minor cleanups including commenting some of # the curious request sequences coming from khubd. # # Refactoring means a lot of the current usb_reset_device() logic won't # need to stay an imperfect clone of the enumeration code ... soon, it # can just call hub_port_init(). # # Even without touching usb_reset_device(), this eliminates a deadlock. # Previously, address0_sem was used both during probe and during reset, # so probe routines can't implement DFU firmware download (involves a # reset; DFU also uncovers other problems) or safely recover from probe # faults by resetting (usb-storage can try that). Now that lock is no # longer held during probe(); so those deadlocks are gone. (And some # drivers, like at76c503, can start to remove ugly workarounds.) # # drivers/usb/core/usb.c # 2004/04/21 03:46:29-07:00 david-b@pacbell.net +13 -79 # USB: re-factor enumeration logic # # drivers/usb/core/hub.c # 2004/04/21 03:46:29-07:00 david-b@pacbell.net +215 -72 # USB: re-factor enumeration logic # # drivers/usb/core/hcd.c # 2004/04/21 03:46:29-07:00 david-b@pacbell.net +12 -0 # USB: re-factor enumeration logic # # ChangeSet # 2004/04/23 15:44:32-07:00 david-b@pacbell.net # [PATCH] USB: usbtest, smp unlink modes # # Handle some SMP-visible unlink states better. # # drivers/usb/misc/usbtest.c # 2004/04/14 20:23:11-07:00 david-b@pacbell.net +3 -3 # USB: usbtest, smp unlink modes # # ChangeSet # 2004/04/23 14:50:19-07:00 greg@kroah.com # [PATCH] USB: fix devio compiler warnings created by previous patch. # # drivers/usb/core/devio.c # 2004/04/23 07:33:30-07:00 greg@kroah.com +2 -2 # USB: fix devio compiler warnings created by previous patch. # # ChangeSet # 2004/04/23 14:49:56-07:00 stern@rowland.harvard.edu # [PATCH] USB: Eliminate dead code from the UHCI driver # # I'm not sure what this piece of code is doing in the UHCI driver. It # looks like someone envisioned queuing several URBs for the same endpoint # simultaneously. Anyway, the driver can't do that and this code can never # run. # # drivers/usb/host/uhci-hcd.c # 2004/04/16 04:02:37-07:00 stern@rowland.harvard.edu +1 -11 # USB: Eliminate dead code from the UHCI driver # # ChangeSet # 2004/04/23 14:49:33-07:00 stern@rowland.harvard.edu # [PATCH] USB: Implement endpoint_disable() for UHCI # # This patch implements the endpoint_disable method for the UHCI driver, as # you requested a while back. It guarantees that during unbinding events # (disconnect, configuration change, rmmod) the UHCI driver will have # finished using every URB for the interface being unbound. It doesn't # quite guarantee that the completion handlers will have finished running, # but it would take a pretty unlikely race to violate that assumption. (I # think it's the same with the OHCI and EHCI drivers.) # # Despite the patch numbering this one applies _after_ as249, which is a # more important bugfix. # # drivers/usb/host/uhci-hcd.h # 2004/04/19 04:05:56-07:00 stern@rowland.harvard.edu +2 -0 # USB: Implement endpoint_disable() for UHCI # # drivers/usb/host/uhci-hcd.c # 2004/04/14 03:19:54-07:00 stern@rowland.harvard.edu +49 -0 # USB: Implement endpoint_disable() for UHCI # # ChangeSet # 2004/04/23 14:49:10-07:00 stern@rowland.harvard.edu # [PATCH] USB: unusual_devs.h update # # On Tue, 20 Apr 2004, Damian Ivereigh wrote: # # > Here is the output of dmesg when plugging in an IBM USB MemKey # > # > usb-storage: This device (0a16,8888,0100 S 06 P 50) has unneeded SubClass and Protocol entries in unusual_devs.h # > Please send a copy of this message to # # Thank you for sending this in. Greg and Pete, here's the patch. # # drivers/usb/storage/unusual_devs.h # 2004/04/19 05:11:29-07:00 stern@rowland.harvard.edu +1 -1 # USB: unusual_devs.h update # # ChangeSet # 2004/04/23 14:48:47-07:00 stern@rowland.harvard.edu # [PATCH] USB: Remove unusual_devs entries for Minolta DiMAGE 7, 7Hi # # It looks safe to conclude that the unusual_devs.h entries for the Minolta # DiMAGE 7x cameras aren't needed. (Michael has tested the 7Hi and it's # definitely unnecessary.) The two other DiMAGE entries probably aren't # needed either, but we don't have any evidence of that so I'm leaving them. # # drivers/usb/storage/unusual_devs.h # 2004/04/16 04:37:06-07:00 stern@rowland.harvard.edu +0 -16 # USB: Remove unusual_devs entries for Minolta DiMAGE 7, 7Hi # # ChangeSet # 2004/04/23 14:48:28-07:00 david-b@pacbell.net # [PATCH] USB: root hubs can report remote wakeup feature # # The patch lets HCDs report the root hub remote wakeup feature to usbcore # through config descriptors, and lets usbcore say whether or not remote # wakeup (of host from sleep, by devices) should be enabled. # # Both OHCI and UHCI HCDs have some remote wakeup support already; I'm not # too sure how well it works. Given (separate) patches, their root hubs # can start to act more like other hubs in this area too. That'll make # it easier to start using USB suspend mode. # # drivers/usb/core/hcd.h # 2004/04/13 11:48:39-07:00 david-b@pacbell.net +10 -1 # USB: root hubs can report remote wakeup feature # # drivers/usb/core/hcd.c # 2004/04/13 11:33:31-07:00 david-b@pacbell.net +28 -11 # USB: root hubs can report remote wakeup feature # # ChangeSet # 2004/04/23 14:48:02-07:00 david-b@pacbell.net # [PATCH] USB: fix usbfs iso interval problem # # In 2.6, ISO transfers on USB require a value for urb->interval ... which # usbfs didn't provide (until this patch), or let user mode drivers specify. # # This patch initializes the urb->interval from the endpoint's descriptor, # so ISO transfers should now work from userspace. It also fixes a related # problem for interrupt transfers. # # drivers/usb/core/devio.c # 2004/04/14 13:36:53-07:00 david-b@pacbell.net +7 -1 # USB: fix usbfs iso interval problem # # ChangeSet # 2004/04/22 05:22:10-07:00 airlied@pdx.freedesktop.org # Merge pdx.freedesktop.org:/home/airlied/linux/linus-2.5 # into pdx.freedesktop.org:/home/airlied/linux/drm-2.6 # # drivers/char/drm/i830_irq.c # 2004/04/22 05:22:01-07:00 airlied@pdx.freedesktop.org +0 -0 # Auto merged # # drivers/char/drm/i830_dma.c # 2004/04/22 05:22:00-07:00 airlied@pdx.freedesktop.org +0 -0 # Auto merged # # drivers/char/drm/i810_dma.c # 2004/04/22 05:22:00-07:00 airlied@pdx.freedesktop.org +0 -0 # Auto merged # # ChangeSet # 2004/04/22 04:39:19-07:00 airlied@pdx.freedesktop.org # drmP.h: # remove unused structure # # drivers/char/drm/drmP.h # 2004/04/22 04:36:28-07:00 airlied@pdx.freedesktop.org +0 -7 # remove unused structure # # ChangeSet # 2004/04/22 04:25:40-07:00 airlied@pdx.freedesktop.org # convert DRM to use pci device structures on Linux, move pci ids # into a separate include file (this is auto-generated from the DRM # tree) # # drivers/char/drm/drm_pciids.h # 2004/04/22 04:25:27-07:00 airlied@pdx.freedesktop.org +198 -0 # # drivers/char/drm/tdfx.h # 2004/04/22 04:25:27-07:00 airlied@pdx.freedesktop.org +0 -8 # convert DRM to use pci device structures on Linux, move pci ids # into a separate include file (this is auto-generated from the DRM # tree) # # drivers/char/drm/sis.h # 2004/04/22 04:25:27-07:00 airlied@pdx.freedesktop.org +0 -7 # convert DRM to use pci device structures on Linux, move pci ids # into a separate include file (this is auto-generated from the DRM # tree) # # drivers/char/drm/radeon.h # 2004/04/22 04:25:27-07:00 airlied@pdx.freedesktop.org +0 -61 # convert DRM to use pci device structures on Linux, move pci ids # into a separate include file (this is auto-generated from the DRM # tree) # # drivers/char/drm/r128.h # 2004/04/22 04:25:27-07:00 airlied@pdx.freedesktop.org +0 -40 # convert DRM to use pci device structures on Linux, move pci ids # into a separate include file (this is auto-generated from the DRM # tree) # # drivers/char/drm/mga.h # 2004/04/22 04:25:27-07:00 airlied@pdx.freedesktop.org +0 -6 # convert DRM to use pci device structures on Linux, move pci ids # into a separate include file (this is auto-generated from the DRM # tree) # # drivers/char/drm/i830.h # 2004/04/22 04:25:27-07:00 airlied@pdx.freedesktop.org +0 -7 # convert DRM to use pci device structures on Linux, move pci ids # into a separate include file (this is auto-generated from the DRM # tree) # # drivers/char/drm/i810.h # 2004/04/22 04:25:27-07:00 airlied@pdx.freedesktop.org +0 -8 # convert DRM to use pci device structures on Linux, move pci ids # into a separate include file (this is auto-generated from the DRM # tree) # # drivers/char/drm/gamma.h # 2004/04/22 04:25:27-07:00 airlied@pdx.freedesktop.org +0 -4 # convert DRM to use pci device structures on Linux, move pci ids # into a separate include file (this is auto-generated from the DRM # tree) # # drivers/char/drm/ffb.h # 2004/04/22 04:25:27-07:00 airlied@pdx.freedesktop.org +0 -1 # convert DRM to use pci device structures on Linux, move pci ids # into a separate include file (this is auto-generated from the DRM # tree) # # drivers/char/drm/drm_pciids.h # 2004/04/22 04:25:27-07:00 airlied@pdx.freedesktop.org +0 -0 # BitKeeper file /home/airlied/linux/drm-dev/drivers/char/drm/drm_pciids.h # # drivers/char/drm/drm_drv.h # 2004/04/22 04:25:27-07:00 airlied@pdx.freedesktop.org +7 -4 # convert DRM to use pci device structures on Linux, move pci ids # into a separate include file (this is auto-generated from the DRM # tree) # # ChangeSet # 2004/04/22 03:43:42-04:00 jgarzik@redhat.com # [libata] Promise driver split part 4: common header # # drivers/scsi/sata_sx4.c # 2004/04/22 03:43:37-04:00 jgarzik@redhat.com +1 -124 # [libata] Promise driver split part 4: common header # # drivers/scsi/sata_promise.c # 2004/04/22 03:43:37-04:00 jgarzik@redhat.com +2 -125 # [libata] Promise driver split part 4: common header # # drivers/scsi/Kconfig # 2004/04/22 03:43:37-04:00 jgarzik@redhat.com +1 -1 # [libata] Promise driver split part 4: common header # # drivers/scsi/sata_promise.h # 2004/04/22 03:39:42-04:00 jgarzik@redhat.com +154 -0 # # drivers/scsi/sata_promise.h # 2004/04/22 03:39:42-04:00 jgarzik@redhat.com +0 -0 # BitKeeper file /spare/repo/libata-2.6/drivers/scsi/sata_promise.h # # ChangeSet # 2004/04/22 03:37:49-04:00 jgarzik@redhat.com # [libata] Promise driver split part 3: remove TX2/4 code from sata_sx4 # # drivers/scsi/sata_sx4.c # 2004/04/22 03:37:44-04:00 jgarzik@redhat.com +26 -333 # [libata] Promise driver split part 3: remove TX2/4 code from sata_sx4 # # ChangeSet # 2004/04/22 03:26:15-04:00 jgarzik@redhat.com # [libata] Promise driver split part 2: remove SX4 code from sata_promise # # drivers/scsi/sata_promise.c # 2004/04/22 03:26:10-04:00 jgarzik@redhat.com +7 -1106 # [libata] Promise driver split part 2: remove SX4 code from sata_promise # # ChangeSet # 2004/04/22 03:11:44-04:00 jgarzik@redhat.com # [libata] Promise driver split part 1: clone to sx4 # # Clone sata_promise to sata_sx4. # # drivers/scsi/Makefile # 2004/04/22 03:11:39-04:00 jgarzik@redhat.com +1 -0 # [libata] Promise driver split part 1: clone to sx4 # # Clone sata_promise to sata_sx4. # # drivers/scsi/Kconfig # 2004/04/22 03:11:39-04:00 jgarzik@redhat.com +10 -2 # [libata] Promise driver split part 1: clone to sx4 # # Clone sata_promise to sata_sx4. # # drivers/scsi/sata_sx4.c # 2004/04/22 03:06:00-04:00 jgarzik@redhat.com +0 -0 # bk cp drivers/scsi/sata_promise.c drivers/scsi/sata_sx4.c # # ChangeSet # 2004/04/22 00:51:41-04:00 jgarzik@redhat.com # [libata sata_sis] add new PCI id # # Also remove constant from linux/pci_ids.h. # # include/linux/pci_ids.h # 2004/04/22 00:49:04-04:00 jgarzik@redhat.com +0 -1 # [libata sata_sis] add new PCI id # # Also remove constant from linux/pci_ids.h. # # drivers/scsi/sata_sis.c # 2004/04/22 00:49:04-04:00 jgarzik@redhat.com +2 -1 # [libata sata_sis] add new PCI id # # Also remove constant from linux/pci_ids.h. # # ChangeSet # 2004/04/21 21:34:03-04:00 pavel@ucw.cz # [PATCH] Cleanups for b44 # # Hi! # # During some unrelated work I was confused by b44_init_hw. Its return # is checked in _open() but nowhere else. I started adding missing # checks, but then I found why its so: it only ever returns 0. # # So this turns it into void. Killed #if 0-ed piece of code and fixed # indentation at one point. Please apply, # Pavel # # ChangeSet # 2004/04/21 18:32:05-07:00 airlied@pdx.freedesktop.org # define an empty driver pci ids for ffb driver # # drivers/char/drm/ffb.h # 2004/04/21 18:31:59-07:00 airlied@pdx.freedesktop.org +2 -0 # define an empty driver pci ids for ffb driver # # drivers/net/b44.c # 2004/04/20 19:24:14-04:00 pavel@ucw.cz +4 -13 # Cleanups for b44 # # ChangeSet # 2004/04/21 20:53:56-04:00 brazilnut@us.ibm.com # [PATCH] pcnet32 timer to free tx skbs for 79C971/972 # # At the next opportunity to add new code to 2.6.6, please apply the following: # # This patch uses an on-chip timer to free completed transmit skb's for the # 79C971 and 972 versions which currently will leave completed transmit # skb's on the transmit ring until new transmit traffic occurs. # # drivers/net/pcnet32.c # 2004/04/20 11:48:49-04:00 brazilnut@us.ibm.com +43 -8 # pcnet32 timer to free tx skbs for 79C971/972 # # ChangeSet # 2004/04/21 20:53:46-04:00 brazilnut@us.ibm.com # [PATCH] pcnet32 add register dump capability # # At the next opportunity to add new code to 2.6.6, please apply the following # patch to include the capability to dump chip registers. Ethtool -d support. # # drivers/net/pcnet32.c # 2004/04/20 11:43:34-04:00 brazilnut@us.ibm.com +76 -3 # pcnet32 add register dump capability # # ChangeSet # 2004/04/21 20:40:33-04:00 vda@port.imtp.ilyichevsk.odessa.ua # [PATCH] fealnx #11: cleanup and coding style # # drivers/net/fealnx.c # 2004/04/05 15:54:35-04:00 vda@port.imtp.ilyichevsk.odessa.ua +22 -26 # 2.6 fealnx.c #11: cleanup and coding style # # ChangeSet # 2004/04/21 20:40:25-04:00 vda@port.imtp.ilyichevsk.odessa.ua # [PATCH] fealnx #10: replace local delay functions with udelay # # drivers/net/fealnx.c # 2004/04/05 15:54:32-04:00 vda@port.imtp.ilyichevsk.odessa.ua +6 -43 # 2.6 fealnx.c #10: replace local delay functions with udelay # # ChangeSet # 2004/04/21 20:40:18-04:00 vda@port.imtp.ilyichevsk.odessa.ua # [PATCH] fealnx #9: fix locking for set_rx_mode # # drivers/net/fealnx.c # 2004/04/05 15:54:30-04:00 vda@port.imtp.ilyichevsk.odessa.ua +16 -2 # 2.6 fealnx.c #9: fix locking for set_rx_mode # # ChangeSet # 2004/04/21 20:40:10-04:00 vda@port.imtp.ilyichevsk.odessa.ua # [PATCH] fealnx #8: rework error handling # # Add reset timer, fire it 1/2 sec after 'Too much work in interrupt' # Move reset code from tx_timeout into two separate routines: # reset_and_disable_rxtx() and enable_rxtx() # New function reset_tx_descriptors(): clean up tx ring # after tx_timeout. tx_timeout now does: # reset_and_disable_rxtx() # reset_tx_descriptors() # enable_rxtx() # netif_wake_queue() # Absense of netif_wake_queue() call was probably the cause of # tx_timeout() stalling all future tx. # Remove stop_nic_tx(), not used anymore # # drivers/net/fealnx.c # 2004/04/05 15:54:59-04:00 vda@port.imtp.ilyichevsk.odessa.ua +142 -41 # 2.6 fealnx.c #8: rework error handling # # ChangeSet # 2004/04/21 20:40:03-04:00 vda@port.imtp.ilyichevsk.odessa.ua # [PATCH] fealnx #7: Garzik fix (IIRC): add locking to tx_timeout # # drivers/net/fealnx.c # 2004/04/05 15:54:55-04:00 vda@port.imtp.ilyichevsk.odessa.ua +8 -3 # 2.6 fealnx.c #7: Garzik fix (IIRC): add locking to tx_timeout # # ChangeSet # 2004/04/21 20:39:55-04:00 vda@port.imtp.ilyichevsk.odessa.ua # [PATCH] fealnx #6: Francois' fixes for low memory handling; remove free_one_rx_descriptor (not used anymore) # # drivers/net/fealnx.c # 2004/04/05 15:54:52-04:00 vda@port.imtp.ilyichevsk.odessa.ua +26 -47 # 2.6 fealnx.c #6: Francois' fixes for low memory handling; remove free_one_rx_descriptor (not used anymore) # # ChangeSet # 2004/04/21 20:39:48-04:00 vda@port.imtp.ilyichevsk.odessa.ua # [PATCH] fealnx #5: introduce stop_nic_rxtx(), use it where makes sense # # drivers/net/fealnx.c # 2004/04/05 14:16:24-04:00 vda@port.imtp.ilyichevsk.odessa.ua +15 -6 # 2.6 fealnx.c #5: introduce stop_nic_rxtx(), use it where makes sense # # ChangeSet # 2004/04/21 20:39:40-04:00 vda@port.imtp.ilyichevsk.odessa.ua # [PATCH] fealnx #4: stop doing stop_nic_rx/writel(np->crvalue) in reset_rx_descriptors # # this can inadvertently (re)enable tx and/or rx. # # drivers/net/fealnx.c # 2004/04/05 11:16:51-04:00 vda@port.imtp.ilyichevsk.odessa.ua +8 -4 # 2.6 fealnx.c #4: stop doing stop_nic_rx/writel(np->crvalue) in reset_rx_descriptors # # ChangeSet # 2004/04/21 20:39:33-04:00 vda@port.imtp.ilyichevsk.odessa.ua # [PATCH] fealnx #3: fix pointer substraction bug # # drivers/net/fealnx.c # 2004/04/05 11:08:07-04:00 vda@port.imtp.ilyichevsk.odessa.ua +5 -5 # 2.6 fealnx.c #3: fix pointer substraction bug # # ChangeSet # 2004/04/21 20:39:25-04:00 vda@port.imtp.ilyichevsk.odessa.ua # [PATCH] fealnx #2: add 'static'; fix wrapped comment # # drivers/net/fealnx.c # 2004/04/05 11:01:53-04:00 vda@port.imtp.ilyichevsk.odessa.ua +6 -9 # 2.6 fealnx.c #2: add 'static'; fix wrapped comment # # ChangeSet # 2004/04/21 20:39:18-04:00 vda@port.imtp.ilyichevsk.odessa.ua # [PATCH] fealnx #1: replace magic constants with enums # # drivers/net/fealnx.c # 2004/04/05 10:58:48-04:00 vda@port.imtp.ilyichevsk.odessa.ua +42 -33 # 2.6 fealnx.c #1: replace magic constants with enums # # ChangeSet # 2004/04/21 20:39:10-04:00 vda@port.imtp.ilyichevsk.odessa.ua # [PATCH] fealnx #0: replace dev->base_addr with ioaddr # # drivers/net/fealnx.c # 2004/04/05 10:23:40-04:00 vda@port.imtp.ilyichevsk.odessa.ua +8 -10 # 2.6 fealnx.c #0: replace dev->base_addr with ioaddr # # drivers/scsi/sata_sx4.c # 2004/04/14 17:04:43-04:00 jgarzik@redhat.com +2 -2 # [libata sata_promise] fix taskfile delivery cases # # We should only be touching the ATA shadow registers if we are doing # PIO. # # ChangeSet # 2004/04/10 06:56:43-07:00 airlied@pdx.freedesktop.org # From Jon Smirl: # This code allows the mesa drivers to use a single definition of the DRM sarea/IOCTLS # # drivers/char/drm/radeon_drm.h # 2004/04/10 06:56:33-07:00 airlied@pdx.freedesktop.org +60 -27 # From Jon Smirl: # This code allows the mesa drivers to use a single definition of the DRM sarea/IOCTLS # # drivers/char/drm/r128_drm.h # 2004/04/10 06:56:33-07:00 airlied@pdx.freedesktop.org +42 -19 # From Jon Smirl: # This code allows the mesa drivers to use a single definition of the DRM sarea/IOCTLS # # drivers/char/drm/mga_drm.h # 2004/04/10 06:56:33-07:00 airlied@pdx.freedesktop.org +24 -11 # From Jon Smirl: # This code allows the mesa drivers to use a single definition of the DRM sarea/IOCTLS # # drivers/char/drm/drm_sarea.h # 2004/04/10 06:56:33-07:00 airlied@pdx.freedesktop.org +14 -0 # From Jon Smirl: # This code allows the mesa drivers to use a single definition of the DRM sarea/IOCTLS # # ChangeSet # 2004/04/10 06:27:26-07:00 airlied@pdx.freedesktop.org # * Introduce COMMIT_RING() as in radeon DRM, stop using error prone # writeback for ring read pointer (Paul Mackerras) # * Get rid of some superfluous stuff, minor fixes # # drivers/char/drm/r128_state.c # 2004/04/10 06:27:19-07:00 airlied@pdx.freedesktop.org +25 -9 # * Introduce COMMIT_RING() as in radeon DRM, stop using error prone # writeback for ring read pointer (Paul Mackerras) # * Get rid of some superfluous stuff, minor fixes # # drivers/char/drm/r128_drv.h # 2004/04/10 06:27:19-07:00 airlied@pdx.freedesktop.org +32 -25 # * Introduce COMMIT_RING() as in radeon DRM, stop using error prone # writeback for ring read pointer (Paul Mackerras) # * Get rid of some superfluous stuff, minor fixes # # drivers/char/drm/r128_cce.c # 2004/04/10 06:27:19-07:00 airlied@pdx.freedesktop.org +9 -30 # * Introduce COMMIT_RING() as in radeon DRM, stop using error prone # writeback for ring read pointer (Paul Mackerras) # * Get rid of some superfluous stuff, minor fixes # # ChangeSet # 2004/04/10 05:26:04-07:00 airlied@pdx.freedesktop.org # radeon_drm.h: # missing define from previous checkin # # drivers/char/drm/radeon_drm.h # 2004/04/10 05:25:29-07:00 airlied@pdx.freedesktop.org +1 -0 # missing define from previous checkin # # ChangeSet # 2004/04/10 00:52:10-07:00 airlied@pdx.freedesktop.org # Miscellaneous changes from DRM CVS # # drivers/char/drm/drm_stub.h # 2004/04/10 00:52:04-07:00 airlied@pdx.freedesktop.org +2 -2 # retab.. # # drivers/char/drm/drm_bufs.h # 2004/04/10 00:52:04-07:00 airlied@pdx.freedesktop.org +1 -1 # use correct preproc directive.. # # drivers/char/drm/drm_agpsupport.h # 2004/04/10 00:52:04-07:00 airlied@pdx.freedesktop.org +2 -0 # add another error test for 2.6 # # drivers/char/drm/drmP.h # 2004/04/10 00:52:04-07:00 airlied@pdx.freedesktop.org +0 -12 # move lock to drm.h # # drivers/char/drm/drm.h # 2004/04/10 00:52:04-07:00 airlied@pdx.freedesktop.org +14 -2 # move the lcok to drm.h align some preprocesor stuff # # ChangeSet # 2004/04/10 00:06:33-07:00 airlied@pdx.freedesktop.org # drm_ctx_dtor.patch # Submitted by: Erdi Chen # # drivers/char/drm/drm_memory_debug.h # 2004/04/10 00:06:27-07:00 airlied@pdx.freedesktop.org +1 -0 # drm_ctx_dtor.patch # Submitted by: Erdi Chen # # drivers/char/drm/drm_drv.h # 2004/04/10 00:06:27-07:00 airlied@pdx.freedesktop.org +27 -0 # drm_ctx_dtor.patch # Submitted by: Erdi Chen # # drivers/char/drm/drm_context.h # 2004/04/10 00:06:27-07:00 airlied@pdx.freedesktop.org +29 -0 # drm_ctx_dtor.patch # Submitted by: Erdi Chen # # drivers/char/drm/drmP.h # 2004/04/10 00:06:27-07:00 airlied@pdx.freedesktop.org +16 -0 # drm_ctx_dtor.patch # Submitted by: Erdi Chen # # ChangeSet # 2004/04/09 23:56:13-07:00 airlied@pdx.freedesktop.org # More differentiated error codes for DRM(agp_acquire) # # drivers/char/drm/drm_agpsupport.h # 2004/04/09 23:56:07-07:00 airlied@pdx.freedesktop.org +5 -1 # More differentiated error codes for DRM(agp_acquire) # # ChangeSet # 2004/04/09 23:44:36-07:00 airlied@pdx.freedesktop.org # From Michel Daenzer: # Adapt to nopage() prototype change in Linux 2.6.1. # # Reviewed by: Arjan van de Ven , additional feedback # from William Lee Irwin III and Linus Torvalds. # # drivers/char/drm/drm_vm.h # 2004/04/09 23:44:27-07:00 airlied@pdx.freedesktop.org +97 -51 # From Michel Daenzer: # Adapt to nopage() prototype change in Linux 2.6.1. # # Reviewed by: Arjan van de Ven , additional feedback # from William Lee Irwin III and Linus Torvalds. # # drivers/char/drm/drmP.h # 2004/04/09 23:44:27-07:00 airlied@pdx.freedesktop.org +0 -12 # From Michel Daenzer: # Adapt to nopage() prototype change in Linux 2.6.1. # # Reviewed by: Arjan van de Ven , additional feedback # from William Lee Irwin III and Linus Torvalds. # # ChangeSet # 2004/04/09 23:20:06-07:00 airlied@pdx.freedesktop.org # From Eric Anholt + Jon Smirl: # Don't ioremap the framebuffer area. The ioremapped area wasn't used by # anything. # # drivers/char/drm/radeon_drv.h # 2004/04/09 23:19:59-07:00 airlied@pdx.freedesktop.org +0 -1 # From Eric Anholt + Jon Smirl: # Don't ioremap the framebuffer area. The ioremapped area wasn't used by # anything. # # drivers/char/drm/radeon_cp.c # 2004/04/09 23:19:59-07:00 airlied@pdx.freedesktop.org +0 -7 # From Eric Anholt + Jon Smirl: # Don't ioremap the framebuffer area. The ioremapped area wasn't used by # anything. # # drivers/char/drm/r128_drv.h # 2004/04/09 23:19:59-07:00 airlied@pdx.freedesktop.org +0 -1 # From Eric Anholt + Jon Smirl: # Don't ioremap the framebuffer area. The ioremapped area wasn't used by # anything. # # drivers/char/drm/r128_cce.c # 2004/04/09 23:19:59-07:00 airlied@pdx.freedesktop.org +0 -7 # From Eric Anholt + Jon Smirl: # Don't ioremap the framebuffer area. The ioremapped area wasn't used by # anything. # # drivers/char/drm/mga_drv.h # 2004/04/09 23:19:59-07:00 airlied@pdx.freedesktop.org +0 -1 # From Eric Anholt + Jon Smirl: # Don't ioremap the framebuffer area. The ioremapped area wasn't used by # anything. # # drivers/char/drm/mga_dma.c # 2004/04/09 23:19:59-07:00 airlied@pdx.freedesktop.org +0 -8 # From Eric Anholt + Jon Smirl: # Don't ioremap the framebuffer area. The ioremapped area wasn't used by # anything. # # drivers/char/drm/drm_bufs.h # 2004/04/09 23:19:58-07:00 airlied@pdx.freedesktop.org +3 -1 # From Eric Anholt + Jon Smirl: # Don't ioremap the framebuffer area. The ioremapped area wasn't used by # anything. # # ChangeSet # 2004/04/09 23:07:59-07:00 airlied@pdx.freedesktop.org # From Eric Anholt: # Return EBUSY when attempting to addmap a DRM_SHM area with a lock in it if # dev->lock.hw_lock is already set. This fixes the case of two X Servers running # on the same head on different VTs with interface 1.1, by making the 2nd head # fail to inizialize like before. # # drivers/char/drm/drm_bufs.h # 2004/04/09 23:07:52-07:00 airlied@pdx.freedesktop.org +6 -0 # From Eric Anholt: # Return EBUSY when attempting to addmap a DRM_SHM area with a lock in it if # dev->lock.hw_lock is already set. This fixes the case of two X Servers running # on the same head on different VTs with interface 1.1, by making the 2nd head # fail to inizialize like before. # # ChangeSet # 2004/04/09 23:00:48-07:00 airlied@pdx.freedesktop.org # From Eric Anholt: some cleanups from AlanH: # - Tie the DRM to a specific device: setunique no longer succeeds when given # a busid that doesn't correspond to the device the DRM is attached to. This # is a breaking of backwards-compatibility only for the multiple-DRI-head case # with X Servers that don't use interface 1.1. # - Move irq_busid to drm_irq.h and make it only return the IRQ for the current # device. Retains compatibility with previous X Servers, cleans up unnecessary # code. This means no irq_busid on !__HAVE_IRQ, but can be changed if # necessary. # - Bump interface version to 1.2. This version when set signifies that the # control ioctl should ignore the irq number passed in and enable the # interrupt handler for the attached device. Otherwise it errors out when # the passed-in irq is not equal to the device's. # - Store the highest version the interface has been set to in the device. # # drivers/char/drm/radeon_cp.c # 2004/04/09 23:00:37-07:00 airlied@pdx.freedesktop.org +1 -1 # From Eric Anholt: some cleanups from AlanH: # - Tie the DRM to a specific device: setunique no longer succeeds when given # a busid that doesn't correspond to the device the DRM is attached to. This # is a breaking of backwards-compatibility only for the multiple-DRI-head case # with X Servers that don't use interface 1.1. # - Move irq_busid to drm_irq.h and make it only return the IRQ for the current # device. Retains compatibility with previous X Servers, cleans up unnecessary # code. This means no irq_busid on !__HAVE_IRQ, but can be changed if # necessary. # - Bump interface version to 1.2. This version when set signifies that the # control ioctl should ignore the irq number passed in and enable the # interrupt handler for the attached device. Otherwise it errors out when # the passed-in irq is not equal to the device's. # - Store the highest version the interface has been set to in the device. # # drivers/char/drm/r128_cce.c # 2004/04/09 23:00:37-07:00 airlied@pdx.freedesktop.org +1 -1 # From Eric Anholt: some cleanups from AlanH: # - Tie the DRM to a specific device: setunique no longer succeeds when given # a busid that doesn't correspond to the device the DRM is attached to. This # is a breaking of backwards-compatibility only for the multiple-DRI-head case # with X Servers that don't use interface 1.1. # - Move irq_busid to drm_irq.h and make it only return the IRQ for the current # device. Retains compatibility with previous X Servers, cleans up unnecessary # code. This means no irq_busid on !__HAVE_IRQ, but can be changed if # necessary. # - Bump interface version to 1.2. This version when set signifies that the # control ioctl should ignore the irq number passed in and enable the # interrupt handler for the attached device. Otherwise it errors out when # the passed-in irq is not equal to the device's. # - Store the highest version the interface has been set to in the device. # # drivers/char/drm/mga_dma.c # 2004/04/09 23:00:37-07:00 airlied@pdx.freedesktop.org +1 -1 # From Eric Anholt: some cleanups from AlanH: # - Tie the DRM to a specific device: setunique no longer succeeds when given # a busid that doesn't correspond to the device the DRM is attached to. This # is a breaking of backwards-compatibility only for the multiple-DRI-head case # with X Servers that don't use interface 1.1. # - Move irq_busid to drm_irq.h and make it only return the IRQ for the current # device. Retains compatibility with previous X Servers, cleans up unnecessary # code. This means no irq_busid on !__HAVE_IRQ, but can be changed if # necessary. # - Bump interface version to 1.2. This version when set signifies that the # control ioctl should ignore the irq number passed in and enable the # interrupt handler for the attached device. Otherwise it errors out when # the passed-in irq is not equal to the device's. # - Store the highest version the interface has been set to in the device. # # drivers/char/drm/i830_dma.c # 2004/04/09 23:00:37-07:00 airlied@pdx.freedesktop.org +2 -2 # From Eric Anholt: some cleanups from AlanH: # - Tie the DRM to a specific device: setunique no longer succeeds when given # a busid that doesn't correspond to the device the DRM is attached to. This # is a breaking of backwards-compatibility only for the multiple-DRI-head case # with X Servers that don't use interface 1.1. # - Move irq_busid to drm_irq.h and make it only return the IRQ for the current # device. Retains compatibility with previous X Servers, cleans up unnecessary # code. This means no irq_busid on !__HAVE_IRQ, but can be changed if # necessary. # - Bump interface version to 1.2. This version when set signifies that the # control ioctl should ignore the irq number passed in and enable the # interrupt handler for the attached device. Otherwise it errors out when # the passed-in irq is not equal to the device's. # - Store the highest version the interface has been set to in the device. # # drivers/char/drm/i810_dma.c # 2004/04/09 23:00:37-07:00 airlied@pdx.freedesktop.org +1 -1 # From Eric Anholt: some cleanups from AlanH: # - Tie the DRM to a specific device: setunique no longer succeeds when given # a busid that doesn't correspond to the device the DRM is attached to. This # is a breaking of backwards-compatibility only for the multiple-DRI-head case # with X Servers that don't use interface 1.1. # - Move irq_busid to drm_irq.h and make it only return the IRQ for the current # device. Retains compatibility with previous X Servers, cleans up unnecessary # code. This means no irq_busid on !__HAVE_IRQ, but can be changed if # necessary. # - Bump interface version to 1.2. This version when set signifies that the # control ioctl should ignore the irq number passed in and enable the # interrupt handler for the attached device. Otherwise it errors out when # the passed-in irq is not equal to the device's. # - Store the highest version the interface has been set to in the device. # # drivers/char/drm/gamma_dma.c # 2004/04/09 23:00:37-07:00 airlied@pdx.freedesktop.org +1 -1 # From Eric Anholt: some cleanups from AlanH: # - Tie the DRM to a specific device: setunique no longer succeeds when given # a busid that doesn't correspond to the device the DRM is attached to. This # is a breaking of backwards-compatibility only for the multiple-DRI-head case # with X Servers that don't use interface 1.1. # - Move irq_busid to drm_irq.h and make it only return the IRQ for the current # device. Retains compatibility with previous X Servers, cleans up unnecessary # code. This means no irq_busid on !__HAVE_IRQ, but can be changed if # necessary. # - Bump interface version to 1.2. This version when set signifies that the # control ioctl should ignore the irq number passed in and enable the # interrupt handler for the attached device. Otherwise it errors out when # the passed-in irq is not equal to the device's. # - Store the highest version the interface has been set to in the device. # # drivers/char/drm/drm_irq.h # 2004/04/09 23:00:37-07:00 airlied@pdx.freedesktop.org +57 -18 # From Eric Anholt: some cleanups from AlanH: # - Tie the DRM to a specific device: setunique no longer succeeds when given # a busid that doesn't correspond to the device the DRM is attached to. This # is a breaking of backwards-compatibility only for the multiple-DRI-head case # with X Servers that don't use interface 1.1. # - Move irq_busid to drm_irq.h and make it only return the IRQ for the current # device. Retains compatibility with previous X Servers, cleans up unnecessary # code. This means no irq_busid on !__HAVE_IRQ, but can be changed if # necessary. # - Bump interface version to 1.2. This version when set signifies that the # control ioctl should ignore the irq number passed in and enable the # interrupt handler for the attached device. Otherwise it errors out when # the passed-in irq is not equal to the device's. # - Store the highest version the interface has been set to in the device. # # drivers/char/drm/drm_ioctl.h # 2004/04/09 23:00:37-07:00 airlied@pdx.freedesktop.org +36 -137 # From Eric Anholt: some cleanups from AlanH: # - Tie the DRM to a specific device: setunique no longer succeeds when given # a busid that doesn't correspond to the device the DRM is attached to. This # is a breaking of backwards-compatibility only for the multiple-DRI-head case # with X Servers that don't use interface 1.1. # - Move irq_busid to drm_irq.h and make it only return the IRQ for the current # device. Retains compatibility with previous X Servers, cleans up unnecessary # code. This means no irq_busid on !__HAVE_IRQ, but can be changed if # necessary. # - Bump interface version to 1.2. This version when set signifies that the # control ioctl should ignore the irq number passed in and enable the # interrupt handler for the attached device. Otherwise it errors out when # the passed-in irq is not equal to the device's. # - Store the highest version the interface has been set to in the device. # # drivers/char/drm/drm_drv.h # 2004/04/09 23:00:37-07:00 airlied@pdx.freedesktop.org +14 -4 # From Eric Anholt: some cleanups from AlanH: # - Tie the DRM to a specific device: setunique no longer succeeds when given # a busid that doesn't correspond to the device the DRM is attached to. This # is a breaking of backwards-compatibility only for the multiple-DRI-head case # with X Servers that don't use interface 1.1. # - Move irq_busid to drm_irq.h and make it only return the IRQ for the current # device. Retains compatibility with previous X Servers, cleans up unnecessary # code. This means no irq_busid on !__HAVE_IRQ, but can be changed if # necessary. # - Bump interface version to 1.2. This version when set signifies that the # control ioctl should ignore the irq number passed in and enable the # interrupt handler for the attached device. Otherwise it errors out when # the passed-in irq is not equal to the device's. # - Store the highest version the interface has been set to in the device. # # drivers/char/drm/drmP.h # 2004/04/09 23:00:37-07:00 airlied@pdx.freedesktop.org +12 -4 # From Eric Anholt: some cleanups from AlanH: # - Tie the DRM to a specific device: setunique no longer succeeds when given # a busid that doesn't correspond to the device the DRM is attached to. This # is a breaking of backwards-compatibility only for the multiple-DRI-head case # with X Servers that don't use interface 1.1. # - Move irq_busid to drm_irq.h and make it only return the IRQ for the current # device. Retains compatibility with previous X Servers, cleans up unnecessary # code. This means no irq_busid on !__HAVE_IRQ, but can be changed if # necessary. # - Bump interface version to 1.2. This version when set signifies that the # control ioctl should ignore the irq number passed in and enable the # interrupt handler for the attached device. Otherwise it errors out when # the passed-in irq is not equal to the device's. # - Store the highest version the interface has been set to in the device. # # ChangeSet # 2004/04/09 22:34:54-07:00 airlied@pdx.freedesktop.org # From: Michel Daenzer: # Memory layout transition: # # * the 2D driver initializes MC_FB_LOCATION and related registers sanely # * the DRM deduces the layout from these registers # * clients use the new SETPARAM ioctl to tell the DRM where they think the # framebuffer is located in the card's address space # * the DRM uses all this information to check client state and fix it up if # necessary # # This is a prerequisite for things like direct rendering with IGP chips and # video capturing. # # drivers/char/drm/radeon_state.c # 2004/04/09 22:34:48-07:00 airlied@pdx.freedesktop.org +370 -42 # From: Michel Daenzer: # Memory layout transition: # # * the 2D driver initializes MC_FB_LOCATION and related registers sanely # * the DRM deduces the layout from these registers # * clients use the new SETPARAM ioctl to tell the DRM where they think the # framebuffer is located in the card's address space # * the DRM uses all this information to check client state and fix it up if # necessary # # This is a prerequisite for things like direct rendering with IGP chips and # video capturing. # # drivers/char/drm/radeon_drv.h # 2004/04/09 22:34:47-07:00 airlied@pdx.freedesktop.org +5 -0 # From: Michel Daenzer: # Memory layout transition: # # * the 2D driver initializes MC_FB_LOCATION and related registers sanely # * the DRM deduces the layout from these registers # * clients use the new SETPARAM ioctl to tell the DRM where they think the # framebuffer is located in the card's address space # * the DRM uses all this information to check client state and fix it up if # necessary # # This is a prerequisite for things like direct rendering with IGP chips and # video capturing. # # drivers/char/drm/radeon_drm.h # 2004/04/09 22:34:47-07:00 airlied@pdx.freedesktop.org +14 -1 # From: Michel Daenzer: # Memory layout transition: # # * the 2D driver initializes MC_FB_LOCATION and related registers sanely # * the DRM deduces the layout from these registers # * clients use the new SETPARAM ioctl to tell the DRM where they think the # framebuffer is located in the card's address space # * the DRM uses all this information to check client state and fix it up if # necessary # # This is a prerequisite for things like direct rendering with IGP chips and # video capturing. # # drivers/char/drm/radeon_cp.c # 2004/04/09 22:34:47-07:00 airlied@pdx.freedesktop.org +20 -9 # From: Michel Daenzer: # Memory layout transition: # # * the 2D driver initializes MC_FB_LOCATION and related registers sanely # * the DRM deduces the layout from these registers # * clients use the new SETPARAM ioctl to tell the DRM where they think the # framebuffer is located in the card's address space # * the DRM uses all this information to check client state and fix it up if # necessary # # This is a prerequisite for things like direct rendering with IGP chips and # video capturing. # # drivers/char/drm/radeon.h # 2004/04/09 22:34:47-07:00 airlied@pdx.freedesktop.org +19 -3 # From: Michel Daenzer: # Memory layout transition: # # * the 2D driver initializes MC_FB_LOCATION and related registers sanely # * the DRM deduces the layout from these registers # * clients use the new SETPARAM ioctl to tell the DRM where they think the # framebuffer is located in the card's address space # * the DRM uses all this information to check client state and fix it up if # necessary # # This is a prerequisite for things like direct rendering with IGP chips and # video capturing. # # drivers/char/drm/drm_os_linux.h # 2004/04/09 22:34:47-07:00 airlied@pdx.freedesktop.org +4 -0 # From: Michel Daenzer: # Memory layout transition: # # * the 2D driver initializes MC_FB_LOCATION and related registers sanely # * the DRM deduces the layout from these registers # * clients use the new SETPARAM ioctl to tell the DRM where they think the # framebuffer is located in the card's address space # * the DRM uses all this information to check client state and fix it up if # necessary # # This is a prerequisite for things like direct rendering with IGP chips and # video capturing. # # drivers/char/drm/drm_fops.h # 2004/04/09 22:34:47-07:00 airlied@pdx.freedesktop.org +2 -0 # From: Michel Daenzer: # Memory layout transition: # # * the 2D driver initializes MC_FB_LOCATION and related registers sanely # * the DRM deduces the layout from these registers # * clients use the new SETPARAM ioctl to tell the DRM where they think the # framebuffer is located in the card's address space # * the DRM uses all this information to check client state and fix it up if # necessary # # This is a prerequisite for things like direct rendering with IGP chips and # video capturing. # # drivers/char/drm/drm_drv.h # 2004/04/09 22:34:47-07:00 airlied@pdx.freedesktop.org +3 -0 # From: Michel Daenzer: # Memory layout transition: # # * the 2D driver initializes MC_FB_LOCATION and related registers sanely # * the DRM deduces the layout from these registers # * clients use the new SETPARAM ioctl to tell the DRM where they think the # framebuffer is located in the card's address space # * the DRM uses all this information to check client state and fix it up if # necessary # # This is a prerequisite for things like direct rendering with IGP chips and # video capturing. # # drivers/char/drm/drmP.h # 2004/04/09 22:34:47-07:00 airlied@pdx.freedesktop.org +3 -0 # From: Michel Daenzer: # Memory layout transition: # # * the 2D driver initializes MC_FB_LOCATION and related registers sanely # * the DRM deduces the layout from these registers # * clients use the new SETPARAM ioctl to tell the DRM where they think the # framebuffer is located in the card's address space # * the DRM uses all this information to check client state and fix it up if # necessary # # This is a prerequisite for things like direct rendering with IGP chips and # video capturing. # # ChangeSet # 2004/04/09 21:32:02-07:00 airlied@pdx.freedesktop.org # From Eric Anholt: # Introduce a new ioctl, DRM_IOCTL_SET_VERSION. This ioctl allows the server # or client to notify the DRM that it expects a certain version of the device # dependent or device independent interface. If the major doesn't match or minor # is too large, EINVAL is returned. A major of -1 means that the requestor # doesn't care about that portion of the interface. The ioctl returns the actual # versions in the same struct. # # drivers/char/drm/drm_ioctl.h # 2004/04/09 21:28:47-07:00 airlied@pdx.freedesktop.org +74 -1 # From Eric Anholt: # Introduce a new ioctl, DRM_IOCTL_SET_VERSION. This ioctl allows the server # or client to notify the DRM that it expects a certain version of the device # dependent or device independent interface. If the major doesn't match or minor # is too large, EINVAL is returned. A major of -1 means that the requestor # doesn't care about that portion of the interface. The ioctl returns the actual # versions in the same struct. # # drivers/char/drm/drm_drv.h # 2004/04/09 21:28:47-07:00 airlied@pdx.freedesktop.org +1 -0 # From Eric Anholt: # Introduce a new ioctl, DRM_IOCTL_SET_VERSION. This ioctl allows the server # or client to notify the DRM that it expects a certain version of the device # dependent or device independent interface. If the major doesn't match or minor # is too large, EINVAL is returned. A major of -1 means that the requestor # doesn't care about that portion of the interface. The ioctl returns the actual # versions in the same struct. # # drivers/char/drm/drmP.h # 2004/04/09 21:28:47-07:00 airlied@pdx.freedesktop.org +2 -0 # From Eric Anholt: # Introduce a new ioctl, DRM_IOCTL_SET_VERSION. This ioctl allows the server # or client to notify the DRM that it expects a certain version of the device # dependent or device independent interface. If the major doesn't match or minor # is too large, EINVAL is returned. A major of -1 means that the requestor # doesn't care about that portion of the interface. The ioctl returns the actual # versions in the same struct. # # drivers/char/drm/drm.h # 2004/04/09 21:28:47-07:00 airlied@pdx.freedesktop.org +11 -0 # From Eric Anholt: # Introduce a new ioctl, DRM_IOCTL_SET_VERSION. This ioctl allows the server # or client to notify the DRM that it expects a certain version of the device # dependent or device independent interface. If the major doesn't match or minor # is too large, EINVAL is returned. A major of -1 means that the requestor # doesn't care about that portion of the interface. The ioctl returns the actual # versions in the same struct. # # ChangeSet # 2004/04/09 20:03:25-07:00 airlied@pdx.freedesktop.org # - Add DRM_GET_PRIV_WITH_RETURN macro. This can be used in shared code to get # the drm_file_t * based on the filp passed in ioctl handlers. # # drivers/char/drm/drm_os_linux.h # 2004/04/09 20:03:19-07:00 airlied@pdx.freedesktop.org +2 -0 # - Add DRM_GET_PRIV_WITH_RETURN macro. This can be used in shared code to get # the drm_file_t * based on the filp passed in ioctl handlers. # # ChangeSet # 2004/04/09 19:35:05-07:00 airlied@pdx.freedesktop.org # left gamma_dma.c out of last changeset # # drivers/char/drm/gamma_dma.c # 2004/04/09 19:34:58-07:00 airlied@pdx.freedesktop.org +3 -3 # FRom Eric Anholt: # Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit. # # ChangeSet # 2004/04/09 19:12:53-07:00 airlied@pdx.freedesktop.org # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/drm_irq.h # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +333 -0 # # drivers/char/drm/radeon_irq.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -1 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/radeon_drv.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -0 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/radeon_cp.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -1 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/radeon.h # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -1 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/r128_irq.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -1 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/r128_drv.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -0 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/r128_cce.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -1 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/r128.h # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -1 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/mga_irq.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -1 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/mga_drv.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -0 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/mga_dma.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -1 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/mga.h # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -1 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/i830_irq.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -1 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/i830_drv.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -0 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/i830_dma.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -1 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/i830.h # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +2 -2 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/i810_dma.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -1 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/i810.h # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -1 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/gamma_drv.c # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +1 -0 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/gamma.h # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +2 -2 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/drm_irq.h # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +0 -0 # BitKeeper file /home/airlied/linux/drm-dev/drivers/char/drm/drm_irq.h # # drivers/char/drm/drm_drv.h # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +6 -6 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/drm_dma.h # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +5 -298 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # drivers/char/drm/drmP.h # 2004/04/09 19:12:45-07:00 airlied@pdx.freedesktop.org +11 -7 # From: Eric Anholt: # - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from # __HAVE_DMA. This will be useful for adding vblank sync support to sis and # tdfx. Rename dma_service to irq_handler, which is more accurately what it is. # - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have # the right number of underscores. This may have been a problem in the case # that the server died without doing its DRM_IOCTL_CONTROL to uninit # # ChangeSet # 2004/04/09 00:28:45-07:00 airlied@pdx.freedesktop.org # - Converted Linux drivers to initialize DRM instances based on PCI IDs, not # just a single instance. The PCI ID lists include a driver private field, which may be used # by drivers for chip family or other information. Based on work by jonsmirl # and Eric Anholt. I've left out the PCI device naming for this patch as # that might be a bit controversial. clean up tdfx to look like everyone else.. # # drivers/char/drm/tdfx_drv.c # 2004/04/09 00:28:35-07:00 airlied@pdx.freedesktop.org +0 -41 # - Converted Linux drivers to initialize DRM instances based on PCI IDs, not # just a single instance. The PCI ID lists include a driver private field, which may be used # by drivers for chip family or other information. Based on work by jonsmirl # and Eric Anholt. I've left out the PCI device naming for this patch as # that might be a bit controversial. clean up tdfx to look like everyone else.. # # drivers/char/drm/tdfx.h # 2004/04/09 00:28:35-07:00 airlied@pdx.freedesktop.org +18 -0 # - Converted Linux drivers to initialize DRM instances based on PCI IDs, not # just a single instance. The PCI ID lists include a driver private field, which may be used # by drivers for chip family or other information. Based on work by jonsmirl # and Eric Anholt. I've left out the PCI device naming for this patch as # that might be a bit controversial. clean up tdfx to look like everyone else.. # # drivers/char/drm/sis.h # 2004/04/09 00:28:35-07:00 airlied@pdx.freedesktop.org +7 -0 # - Converted Linux drivers to initialize DRM instances based on PCI IDs, not # just a single instance. The PCI ID lists include a driver private field, which may be used # by drivers for chip family or other information. Based on work by jonsmirl # and Eric Anholt. I've left out the PCI device naming for this patch as # that might be a bit controversial. # # drivers/char/drm/radeon.h # 2004/04/09 00:28:35-07:00 airlied@pdx.freedesktop.org +60 -1 # - Converted Linux drivers to initialize DRM instances based on PCI IDs, not # just a single instance. The PCI ID lists include a driver private field, which may be used # by drivers for chip family or other information. Based on work by jonsmirl # and Eric Anholt. I've left out the PCI device naming for this patch as # that might be a bit controversial. # # drivers/char/drm/r128.h # 2004/04/09 00:28:35-07:00 airlied@pdx.freedesktop.org +40 -0 # - Converted Linux drivers to initialize DRM instances based on PCI IDs, not # just a single instance. The PCI ID lists include a driver private field, which may be used # by drivers for chip family or other information. Based on work by jonsmirl # and Eric Anholt. I've left out the PCI device naming for this patch as # that might be a bit controversial. # # drivers/char/drm/mga.h # 2004/04/09 00:28:35-07:00 airlied@pdx.freedesktop.org +6 -0 # - Converted Linux drivers to initialize DRM instances based on PCI IDs, not # just a single instance. The PCI ID lists include a driver private field, which may be used # by drivers for chip family or other information. Based on work by jonsmirl # and Eric Anholt. I've left out the PCI device naming for this patch as # that might be a bit controversial. # # drivers/char/drm/i830.h # 2004/04/09 00:28:35-07:00 airlied@pdx.freedesktop.org +7 -0 # - Converted Linux drivers to initialize DRM instances based on PCI IDs, not # just a single instance. The PCI ID lists include a driver private field, which may be used # by drivers for chip family or other information. Based on work by jonsmirl # and Eric Anholt. I've left out the PCI device naming for this patch as # that might be a bit controversial. # # drivers/char/drm/i810.h # 2004/04/09 00:28:35-07:00 airlied@pdx.freedesktop.org +8 -1 # - Converted Linux drivers to initialize DRM instances based on PCI IDs, not # just a single instance. The PCI ID lists include a driver private field, which may be used # by drivers for chip family or other information. Based on work by jonsmirl # and Eric Anholt. I've left out the PCI device naming for this patch as # that might be a bit controversial. # # drivers/char/drm/gamma.h # 2004/04/09 00:28:35-07:00 airlied@pdx.freedesktop.org +4 -0 # - Converted Linux drivers to initialize DRM instances based on PCI IDs, not # just a single instance. The PCI ID lists include a driver private field, which may be used # by drivers for chip family or other information. Based on work by jonsmirl # and Eric Anholt. I've left out the PCI device naming for this patch as # that might be a bit controversial. # # drivers/char/drm/drm_drv.h # 2004/04/09 00:28:35-07:00 airlied@pdx.freedesktop.org +87 -115 # - Converted Linux drivers to initialize DRM instances based on PCI IDs, not # just a single instance. The PCI ID lists include a driver private field, which may be used # by drivers for chip family or other information. Based on work by jonsmirl # and Eric Anholt. I've left out the PCI device naming for this patch as # that might be a bit controversial. # # drivers/char/drm/drmP.h # 2004/04/09 00:28:35-07:00 airlied@pdx.freedesktop.org +7 -4 # - Converted Linux drivers to initialize DRM instances based on PCI IDs, not # just a single instance. The PCI ID lists include a driver private field, which may be used # by drivers for chip family or other information. Based on work by jonsmirl # and Eric Anholt. I've left out the PCI device naming for this patch as # that might be a bit controversial. # # ChangeSet # 2004/04/06 08:37:52-04:00 hirofumi@mail.parknet.co.jp # [PATCH] 8139too: more useful debug info for tx_timeout # # Hi, # # I think this patch is useful for looking whether it's the real driver # bug or other bug. # # What do you think of this? If ok, please apply. # -- # OGAWA Hirofumi # # # # [PATCH] 8139too: more useful debug info for tx_timeout # # /* disable Tx ASAP, if not already */ # tmp8 = RTL_R8 (ChipCmd); # if (tmp8 & CmdTxEnb) # RTL_W8 (ChipCmd, CmdRxEnb); # # The above will clear the Tx Descs. So, this prints the debugging info # before rtl8139_tx_timeout() does it. And IntrStatus etc. also prints # anytime for the debug. # # drivers/net/8139too.c # 2004/04/05 12:35:48-04:00 hirofumi@mail.parknet.co.jp +11 -15 # 8139too: more useful debug info for tx_timeout # # drivers/scsi/sata_sx4.c # 2004/03/26 20:40:53-05:00 jgarzik@redhat.com +66 -17 # [libata sata_promise] better locking and error handling # # * Prefer spin_lock() to spin_lock_irq() in interrupt handler # * Reset each port, before probing the SATA phy # * Reset port when every time an error occurs # # drivers/scsi/sata_sx4.c # 2004/03/26 01:13:16-05:00 jgarzik@redhat.com +15 -22 # [libata sata_promise] minor initialization updates # # * remove incorrect PATA port check # * enable undocumented bit 13 in flash control register, # because the Promise driver does so. # * wait 10 ms after setting TBG mode, for the same reason. # # drivers/scsi/sata_sx4.c # 2004/03/25 01:44:03-05:00 jgarzik@redhat.com +24 -29 # [libata] consolidate data transfer mode handling # # The various ways you can send data to/from your ATA device is # known as the ATA taskfile protocol: PIO single sector, PIO # multiple sector, DMA, DMA TCQ, DMA NCQ, ... # # Prior to this change, the data direction (read/write) was encoded # implicitly into the ATA_PROT_xxx value itself. This increased # complexity in some areas, and inhibited flexibility in others. # # This change separates data direction from taskfile protocol, and also # moves the data direction flag (ATA_QCFLAG_WRITE) down to a lower # level (ATA_TFLAG_WRITE). # # drivers/scsi/sata_sx4.c # 2004/03/24 23:50:29-05:00 jgarzik@redhat.com +20 -1 # [libata sata_promise] check for PATA port on PDC20375 # # We don't handle it yet, but this prints out a message in its presence, # permitting verification of the check and informing users why their # PATA device is not recognized. # # drivers/scsi/sata_sx4.c # 2004/03/18 17:55:44-05:00 jgarzik@redhat.com +3 -0 # [libata] explicitly set consistent DMA mask to 0xffffffff # # Do not rely on the default being 0xffffffff. # # drivers/scsi/sata_sx4.c # 2004/03/18 13:22:43-05:00 jgarzik@redhat.com +0 -1 # [libata] remove unneeded linux/config.h includes # # drivers/scsi/sata_sx4.c # 2004/03/18 05:34:59-05:00 jgarzik@redhat.com +0 -2 # [libata] API cleanup # # Remove ->phy_config hook, everybody used pata_phy_config. Rename # function to ata_set_mode, and directly call internally. # # drivers/scsi/sata_sx4.c # 2004/03/12 21:28:52-05:00 jgarzik@redhat.com +1 -7 # [libata] clean up module_init() hook of sata_{promise,sil,svw} drivers # # The more verbose form existed for decreased differences with the 2.4 # backport. But differences in this area existed anyway, so why not # clean up the 2.6 versions even more. # # drivers/scsi/sata_sx4.c # 2004/03/10 21:36:23-05:00 jgarzik@redhat.com +0 -21 # [libata] make set_{pio,udma}mode hooks optional # # Only one driver actually uses them. # # drivers/scsi/sata_sx4.c # 2004/03/09 07:14:51-05:00 jeremy@sgi.com +4 -1 # [libata] Split up shared IO register locations into individual components # # Most ATA host controllers follow a standard layout for the # ATA shadow registers, where command/status, error/feature, and # devctl/altstatus share a single bus I/O address, because one register # of each pair is read-only, and the other is write-only. # # On the Vitesse/Intel chip, all registers are given distinction bus I/O # addresses, which necessitates changing the libata data structures # to cope with this. This simply involves storing a few more bus addresses. # # drivers/scsi/sata_sx4.c # 2004/03/08 22:33:20-05:00 jgarzik@redhat.com +9 -1 # [libata sata_promise] provide proper SCSI completion function # # Promise driver uses a custom error handling function, so we need # the fix that was applied to the libata core: the SCSI error # handling thread requires that we complete commands using a special # completion function, since the normal one doesn't work inside # the error handling thread. # # drivers/scsi/sata_sx4.c # 2004/02/26 21:23:26-05:00 jgarzik@redhat.com +1 -1 # [libata] limit S/G table size to 128 entries # # Agreeing with Ben H's recommendation, I reduce the max-hw-segments # number to 128, to match max-phys-segments number. This shouldn't # affect performance because 128*64K is far above the max transfer size # for most current IDE devices. Even 128*4K is OK. # # drivers/scsi/sata_sx4.c # 2004/02/25 18:29:10-05:00 jgarzik@redhat.com +1 -1 # [libata] bump versions # # drivers/scsi/sata_sx4.c # 2004/02/25 18:26:06-05:00 dmilburn@redhat.com +57 -1 # [libata sata_promise] Fix DIMM initialization on PCI-X bus # # drivers/scsi/sata_sx4.c # 2004/02/13 13:07:29-05:00 jgarzik@redhat.com +1 -1 # Bump libata, ata_piix to version 1.0. # # Also update copyrights for 2004. # # drivers/scsi/sata_sx4.c # 2003/12/17 17:35:39-05:00 jgarzik@redhat.com +35 -12 # [libata promise] fix another ugly bug # # For the SX4, only one Host DMA (local DIMM) engine is on the hardware, # while there is an ATA engine for each SATA port. This means that # Host DMA transactions must be queued. When previously fixing this problem # (the driver had previously assumed an HDMA engine per port), I stored # the HDMA packet queue in a per-port data structure. # # This was incorrect: this patch changes it to correctly use a # per-host data structure, not a per-port structure. # # drivers/scsi/sata_sx4.c # 2003/12/16 19:16:55-05:00 Michael_E_Brown@Dell.com +1 -0 # [libata] fake geometry for partition tables / setups that need such # # drivers/scsi/sata_sx4.c # 2003/12/05 13:41:01-05:00 jgarzik@redhat.com +413 -3 # [libata promise] Properly initialize DIMM, on SX4 # # On-board DIMM should be sized and initialized by the driver. Previously, # a single DIMM size was simply (and incorrectly) assumed, and # initialization was presumed to have been done by the card's BIOS. # # Contributed by Promise, updated by David Milburn @ Red Hat. # # drivers/scsi/sata_sx4.c # 2003/11/30 11:56:01-05:00 grundler@parisc-linux.org +2 -2 # [libata] use sg_dma_xxx macros # # Fixes build on some platforms, fixes issues on others. # # drivers/scsi/sata_sx4.c # 2003/11/26 16:10:43-05:00 jgarzik@redhat.com +71 -53 # [libata] Fix PDC20621: we only have one Host DMA engine, not one per port # # Whoops. So, we need to queue HDMA transactions internally. # # drivers/scsi/sata_sx4.c # 2003/11/14 19:52:35-05:00 pp@ee.oulu.fi +2 -0 # [libata] add Promise PCI id # # drivers/scsi/sata_sx4.c # 2003/11/10 10:41:07-05:00 jgarzik@redhat.com +26 -11 # [libata promise] fixes suggested by Promise # # * flush host FIFO after sending data to DIMM window # * don't set SCR addresses, as the hardware doesn't have SCRs # (cosmetic) # # drivers/scsi/sata_sx4.c # 2003/11/07 16:24:15-05:00 jgarzik@redhat.com +11 -1 # [libata] fix Promise PCI posting bugs # # drivers/scsi/sata_sx4.c # 2003/11/06 13:31:55-05:00 jgarzik@redhat.com +3 -3 # [libata] fix ugly Promise interrupt masking bug # # drivers/scsi/sata_sx4.c # 2003/10/31 09:55:43-05:00 jgarzik@redhat.com +2 -0 # [libata] add Promise SATA pci id # # drivers/scsi/sata_sx4.c # 2003/10/28 11:04:25-05:00 jgarzik@redhat.com +56 -15 # [libata] Add paranoia checks/settings suggested by Promise # # drivers/scsi/sata_sx4.c # 2003/10/23 19:27:35-04:00 jgarzik@redhat.com +5 -3 # [libata] PDC20621 hdma fixes # # drivers/scsi/sata_sx4.c # 2003/10/22 22:26:51-04:00 jgarzik@redhat.com +2 -2 # [libata] fix Promise build on older compilers # # drivers/scsi/sata_sx4.c # 2003/10/22 18:02:58-04:00 jgarzik@redhat.com +231 -79 # [libata] more pdc20621 work # # drivers/scsi/sata_sx4.c # 2003/10/22 12:33:27-04:00 jgarzik@redhat.com +346 -80 # [libata] fill in a lot more Promise PDC20621 support # # drivers/scsi/sata_sx4.c # 2003/10/22 01:05:47-04:00 jgarzik@redhat.com +102 -44 # [libata] convert Promise to packetized DMA # # drivers/scsi/sata_sx4.c # 2003/10/21 23:13:53-04:00 jgarzik@redhat.com +4 -0 # [libata] add per-driver port init/shutdown hooks, with helper defaults # # drivers/scsi/sata_sx4.c # 2003/10/21 19:21:36-04:00 jgarzik@redhat.com +766 -0 # # drivers/scsi/sata_sx4.c # 2003/10/21 19:21:36-04:00 jgarzik@redhat.com +0 -0 # BitKeeper file /spare/repo/libata-2.5-merge/drivers/scsi/sata_promise.c # diff -Nru a/CREDITS b/CREDITS --- a/CREDITS Tue May 18 23:38:08 2004 +++ b/CREDITS Tue May 18 23:38:08 2004 @@ -1284,8 +1284,8 @@ D: National Language Support D: Linux Internationalization Project D: German Localization for Linux and GNU software -S: Helenenstrasse 18 -S: 65183 Wiesbaden +S: Kriemhildring 12a +S: 65795 Hattersheim am Main S: Germany N: Christoph Hellwig diff -Nru a/Documentation/arm/IXP4xx b/Documentation/arm/IXP4xx --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/Documentation/arm/IXP4xx Tue May 18 23:38:09 2004 @@ -0,0 +1,155 @@ + +------------------------------------------------------------------------- +Release Notes for Linux on Intel's IXP4xx Network Processor + +Maintained by Deepak Saxena +------------------------------------------------------------------------- + +1. Overview + +Intel's IXP4xx network processor is a highly integrated SOC that +is targeted for network applications, though it has become popular +in industrial control and other areas due to low cost and power +consumption. The IXP4xx family currently consists of several processors +that support different network offload functions such as encryption, +routing, firewalling, etc. For more information on the various +versions of the CPU, see: + + http://developer.intel.com/design/network/products/npfamily/ixp4xx.htm + +Intel also made the IXCP1100 CPU for sometime which is an IXP4xx +stripped of much of the network intelligence. + +2. Linux Support + +Linux currently supports the following features on the IXP4xx chips: + +- Dual serial ports +- PCI interface +- Flash access (MTD/JFFS) +- I2C through GPIO +- GPIO for input/output/interrupts + See include/asm-arm/arch-ixp4xx/platform.h for access functions. +- Timers (watchdog, OS) + +The following components of the chips are not supported by Linux and +require the use of Intel's propietary CSR softare: + +- USB device interface +- Network interfaces (HSS, Utopia, NPEs, etc) +- Network offload functionality + +If you need to use any of the above, you need to download Intel's +software from: + + http://developer.intel.com/design/network/products/npfamily/ixp425swr1.htm + +DO NOT POST QUESTIONS TO THE LINUX MAILING LISTS REGARDING THE PROPIETARY +SOFTWARE. + +There are several websites that provide directions/pointers on using +Intel's software: + +http://ixp4xx-osdg.sourceforge.net/ + Open Source Developer's Guide for using uClinux and the Intel libraries + +http://gatewaymaker.sourceforge.net/ + Simple one page summary of building a gateway using an IXP425 and Linux + +http://ixp425.sourceforge.net/ + ATM device driver for IXP425 that relies on Intel's libraries + +3. Known Issues/Limitations + +3a. Limited inbound PCI window + +The IXP4xx family allows for up to 256MB of memory but the PCI interface +can only expose 64MB of that memory to the PCI bus. This means that if +you are running with > 64MB, all PCI buffers outside of the accessible +range will be bounced using the routines in arch/arm/common/dmabounce.c. + +3b. Limited outbound PCI window + +IXP4xx provides two methods of accessing PCI memory space: + +1) A direct mapped window from 0x48000000 to 0x4bffffff (64MB). + To access PCI via this space, we simply ioremap() the BAR + into the kernel and we can use the standard read[bwl]/write[bwl] + macros. This is the preffered method due to speed but it + limits the system to just 64MB of PCI memory. This can be + problamatic if using video cards and other memory-heavy devices. + +2) If > 64MB of memory space is required, the IXP4xx can be + configured to use indirect registers to access PCI This allows + for up to 128MB (0x48000000 to 0x4fffffff) of memory on the bus. + The disadvantadge of this is that every PCI access requires + three local register accesses plus a spinlock, but in some + cases the performance hit is acceptable. In addition, you cannot + mmap() PCI devices in this case due to the indirect nature + of the PCI window. + +By default, the direct method is used for performance reasons. If +you need more PCI memory, enable the IXP4XX_INDIRECT_PCI config option. + +3c. GPIO as Interrupts + +Currently the code only handles level-sensitive GPIO interrupts + +4. Supported platforms + +ADI Engineering Coyote Gateway Reference Platform +http://www.adiengineering.com/productsCoyote.html + + The ADI Coyote platform is reference design for those building + small residential/office gateways. One NPE is connected to a 10/100 + interface, one to 4-port 10/100 switch, and the third to and ADSL + interface. In addition, it also supports to POTs interfaces connected + via SLICs. Note that those are not supported by Linux ATM. Finally, + the platform has two mini-PCI slots used for 802.11[bga] cards. + Finally, there is an IDE port hanging off the expansion bus. + +Gateworks Avila Network Platform +http://www.gateworks.com/avila_sbc.htm + + The Avila platform is basically and IXDP425 with the 4 PCI slots + replaced with mini-PCI slots and a CF IDE interface hanging off + the expansion bus. + +Intel IXDP425 Development Platform +http://developer.intel.com/design/network/products/npfamily/ixdp425.htm + + This is Intel's standard reference platform for the IXDP425 and is + also known as the Richfield board. It contains 4 PCI slots, 16MB + of flash, two 10/100 ports and one ADSL port. + +Motorola PrPMC1100 Processor Mezanine Card +http://www.fountainsys.com/datasheet/PrPMC1100.pdf + + The PrPMC1100 is based on the IXCP1100 and is meant to plug into + and IXP2400/2800 system to act as the system controller. It simply + contains a CPU and 16MB of flash on the board and needs to be + plugged into a carrier board to function. Currently Linux only + supports the Motorola PrPMC carrier board for this platform. + See https://mcg.motorola.com/us/ds/pdf/ds0144.pdf for info + on the carrier board. + +5. TODO LIST + +- Add support for Coyote IDE +- Add support for edge-based GPIO interrupts +- Add support for CF IDE on expansion bus + +6. Thanks + +The IXP4xx work has been funded by Intel Corp. and MontaVista Software, Inc. + +The following people have contributed patches/comments/etc: + +Lutz Jaenicke +Justin Mayfield +Robert E. Ranslam +[I know I've forgotten others, please email me to be added] + +------------------------------------------------------------------------- + +Last Update: 5/13/2004 diff -Nru a/Documentation/arm/SA1100/PCMCIA b/Documentation/arm/SA1100/PCMCIA --- a/Documentation/arm/SA1100/PCMCIA Tue May 18 23:38:06 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,374 +0,0 @@ -Kernel Low-Level PCMCIA Interface Documentation -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -John G Dorsey -Updated: 30 June, 2000 - - -Note: this interface has not been finalized! -See also: http://www.cs.cmu.edu/~wearable/software/pcmcia-arm.html - - -Introduction - -Early versions of PCMCIA Card Services for StrongARM were designed to -permit a single socket driver to run on a variety of SA-1100 boards by -using a userland configuration process. During the conversion to the 2.3 -kernel series, all of the configuration has moved into sub-drivers in the -kernel proper (see linux/drivers/pcmcia/sa1100*). This document describes -the low-level interface between those sub-drivers and the sa1100 socket -driver module. - -Presently, there are six operations which must be provided by the -board-specific code. Only functions whose implementation is likely to -differ across board designs are required at this level. Some examples -include: - - - configuring card detect lines to generate interrupts - - sensing the legal voltage levels for inserted cards - - asserting the reset signal for a card - -Functions which are assumed to be the same across all designs are -performed within the generic socket driver itself. Some examples of these -kinds of operations include: - - - configuring memory access times based on the core clock frequency - - reads/writes on memory, byte swizzling, ... - -The current implementation allows the specific per-board set of low-level -operations to be determined at run time. For each specific board, the -following structure should be filled in: - - struct pcmcia_low_level { - int (*init)(struct pcmcia_init *); - int (*shutdown)(void); - int (*socket_state)(struct pcmcia_state_array *); - int (*get_irq_info)(struct pcmcia_irq_info *); - int (*configure_socket)(const struct pcmcia_configure *); - }; - -The component functions are described in detail below. Using the -machine_is_*() tests, the pointer `pcmcia_low_level' should be assigned to -the location of the table for your board. - - -0. init(struct pcmcia_init *init) - -This operation has three responsibilities: - - - perform any board-specific initialization tasks - - associate the given handler with any interrupt-generating signals - such as card detection, or battery voltage detection - - set up any necessary edge detection for card ready signals - -Argument passing for this operation is implemented by the following -structure: - - struct pcmcia_init { - void (*handler)(int irq, void *dev, struct pt_regs *regs); - struct pcmcia_maps *maps; - }; - -Here, `handler' is provided by the socket driver, and `maps' must be -modified if the default mapping isn't appropriate. This operation should -return one of two values: - - - the highest-numbered socket available, plus one - - a negative number, indicating an error in configuration - -Note that the former case is _not_ the same as "the number of sockets -available." In particular, if your design uses SA-1100 slot "one" but -not slot "zero," you MUST report "2" to the socket driver. - - -1. shutdown(void) - -This operation takes no arguments, and will be called during cleanup for -the socket driver module. Any state associated with the socket controller, -including allocated data structures, reserved IRQs, etc. should be -released in this routine. - -The return value for this operation is not examined. - - -2. socket_state(struct pcmcia_state_array *state_array) - -This operation will be invoked from the interrupt handler which was set up -in the earlier call to init(). Note, however, that it should not include -any side effects which would be inappropriate if the operation were to -occur when no interrupt is pending. (An extra invocation of this operation -currently takes place to initialize state in the socket driver.) - -Argument passing for this operation is handled by a structure which -contains an array of the following type: - - struct pcmcia_state { - unsigned detect: 1, - ready: 1, - bvd1: 1, - bvd2: 1, - wrprot: 1, - vs_3v: 1, - vs_Xv: 1; - }; - -Upon return from the operation, a struct pcmcia_state should be filled in -for each socket available in the hardware. For every array element (up to -`size' in the struct pcmcia_state_saarray) which does not correspond to an -available socket, zero the element bits. (This includes element [0] if -socket zero is not used.) - -Regardless of how the various signals are routed to the SA-1100, the bits -in struct pcmcia_state always have the following semantics: - - detect - 1 if a card is fully inserted, 0 otherwise - ready - 1 if the card ready signal is asserted, 0 otherwise - bvd1 - the value of the Battery Voltage Detect 1 signal - bvd2 - the value of the Battery Voltage Detect 2 signal - wrprot - 1 if the card is write-protected, 0 otherwise - vs_3v - 1 if the card must be operated at 3.3V, 0 otherwise - vs_Xv - 1 if the card must be operated at X.XV, 0 otherwise - -A note about the BVD signals: if your board does not make both lines -directly observable to the processor, just return reasonable values. The -standard interpretation of the BVD signals is: - - BVD1 BVD2 - - 0 x battery is dead - 1 0 battery warning - 1 1 battery ok - -Regarding the voltage sense flags (vs_3v, vs_Xv), these bits should be set -based on a sampling of the Voltage Sense pins, if available. The standard -interpretation of the VS signals (for a "low-voltage" socket) is: - - VS1 VS2 - - 0 0 X.XV, else 3.3V, else none - 0 1 3.3V, else none - 1 0 X.XV, else none - 1 1 5V, else none - -More information about the BVD and VS conventions is available in chapter -5 of "PCMCIA System Architecture," 2nd ed., by Don Anderson. - -This operation should return 1 if an IRQ is actually pending for the -socket controller, 0 if no IRQ is pending (but no error condition exists, -such as an undersized state array), or -1 on any error. - - -3. get_irq_info(struct pcmcia_irq_info *info) - -This operation obtains the IRQ assignment which is legal for the given -socket. An argument of the following type is passed: - - struct pcmcia_irq_info { - unsigned int sock; - unsigned int irq ; - }; - -The `sock' field contains the socket index being queried. The `irq' field -should contain the IRQ number corresponding to the card ready signal from -the device. - -This operation should return 0 on success, or -1 on any error. - - -4. configure_socket(const struct pcmcia_configure *configure) - -This operation allows the caller to apply power to the socket, issue a -reset, or enable various outputs. The argument is of the following type: - - struct pcmcia_configure { - unsigned sock: 8, - vcc: 8, - vpp: 8, - output: 1, - speaker: 1, - reset: 1; - }; - -The `sock' field contains the index of the socket to be configured. The -`vcc' and `vpp' fields contain the voltages to be applied for Vcc and Vpp, -respectively, in units of 0.1V. (Note that vpp==120 indicates that -programming voltage should be applied.) - -The two output enables, `output' and `speaker', refer to the card data -signal enable and the card speaker enable, respectively. The `reset' bit, -when set, indicates that the card reset should be asserted. - -This operation should return 0 on success, or -1 on any error. - - -Board-Specific Notes - -The following information is known about various SA-11x0 board designs -which may be used as reference while adding support to the kernel. - - -Carnegie Mellon Itsy/Cue (http://www.cs.cmu.edu/~wearable/itsy/) - - Itsy Chip Select 3 (CS3) Interface - ("ITSY MEMORY/PCMCIA ADD-ON BOARD with BATTERY and CHARGER CIRCUITRY," - memo dated 5-20-99, from Tim Manns to Richard Martin, et. al) - - Read: - ABVD2 (SS)D0 A slot, Battery Voltage Detect - ABVD1 (SS)D1 - AVSS2 (SS)D2 A slot, Voltage Sense - AVSS1 (SS)D3 - GND (SS)D4 - GND (SS)D5 - GND (SS)D6 - GND (SS)D7 - - BBVD2 (SS)D8 B slot, Battery Voltage Detect - BBVD1 (SS)D9 - BVSS2 (SS)D10 B slot, Voltage Sense - BVSS1 (SS)D11 - GND (SS)D12 - GND (SS)D13 - GND (SS)D14 - GND (SS)D15 - - Write: - (SS)D0 A_VPP_VCC LTC1472 VPPEN1 - (SS)D1 A_VPP_PGM LTC1472 VPPEN0 - (SS)D2 A_VCC_3 LTC1472 VCCEN0 - (SS)D3 A_VCC_5 LTC1472 VCCEN1 - (SS)D4 RESET (A SLOT) - (SS)D5 GND - (SS)D6 GND - (SS)D7 GND - - (SS)D8 B_VPP_VCC LTC1472 VPPEN1 - (SS)D9 B_VPP_PGM LTC1472 VPPEN0 - (SS)D10 B_VCC_3 LTC1472 VCCEN0 - (SS)D11 B_VCC_5 LTC1472 VCCEN1 - (SS)D12 RESET (B SLOT) - (SS)D13 GND - (SS)D14 GND - (SS)D15 GND - - GPIO pin assignments are as follows: (from schematics) - - GPIO 10 Slot 0 Card Detect - GPIO 11 Slot 1 Card Detect - GPIO 12 Slot 0 Ready/Interrupt - GPIO 13 Slot 1 Ready/Interrupt - - - -Intel SA-1100 Multimedia Board (http://developer.intel.com/design/strong/) - - CPLD Registers - SA-1100 Multimedia Development Board with Companion SA-1101 Development - Board User's Guide, p.4-42 - - This SA-1100/1101 development package uses only one GPIO pin (24) to - signal changes in card status, and requires software to inspect a - PCMCIA status register to determine the source. - - Read: (PCMCIA Power Sense Register - 0x19400000) - S0VS1 0 Slot 0 voltage sense - S0VS2 1 - S0BVD1 2 Slot 0 battery voltage sense - S0BVD2 3 - S1VS1 4 Slot 1 voltage sense - S1VS2 5 - S1BVD1 6 Slot 1 battery voltage sense - S1BVD2 7 - - Read/Write: (PCMCIA Power Control Register - 0x19400002) - S0VPP0 0 Slot 0 Vpp - S0VPP1 1 - S0VCC0 2 Slot 0 Vcc - S0VCC1 3 - S1VPP0 4 Slot 1 Vpp - S1VPP1 5 - S1VCC0 6 Slot 1 Vcc - S1VCC1 7 - - Read: (PCMCIA Status Register - 0x19400004) - S0CD1 0 Slot 0 Card Detect 1 - S0RDY 1 Slot 0 Ready/Interrupt - S0STSCHG 2 Slot 0 Status Change - S0Reset 3 Slot 0 Reset (RW) - S1CD1 4 Slot 1 Card Detect 1 - S1RDY 5 Slot 1 Ready/Interrupt - S1STSCHG 6 Slot 1 Status Change - S1Reset 7 Slot 1 Reset (RW) - - - -Intel SA-1100 Evaluation Platform (http://developer.intel.com/design/strong/) - - Brutus I/O Pins and Chipselect Register - pcmcia-brutus.c, by Ivo Clarysse - (What's the official reference for this info?) - - This SA-1100 development board uses more GPIO pins than say, the Itsy - or the SA-1100/1101 multimedia package. The pin assignments are as - follows: - - GPIO 2 Slot 0 Battery Voltage Detect 1 - GPIO 3 Slot 0 Ready/Interrupt - GPIO 4 Slot 0 Card Detect - GPIO 5 Slot 1 Battery Voltage Detect 1 - GPIO 6 Slot 1 Ready/Interrupt - GPIO 7 Slot 1 Card Detect - - Like the Itsy, Brutus uses a chipselect register in static memory - bank 3 for the other signals, such as voltage sense or reset: - - Read: - P0_VS1 8 Slot 0 Voltage Sense - P0_VS2 9 - P0_STSCHG 10 Slot 0 Status Change - P1_VS1 12 Slot 1 Voltage Sense - P1_VS2 13 - P1_STSCHG 14 Slot 1 Status Change - - Read/Write: - P0_ 16 Slot 0 MAX1600EAI control line - P0_ 17 Slot 0 MAX1600EAI control line - P0_ 18 Slot 0 MAX1600EAI control line - P0_ 19 Slot 0 MAX1600EAI control line - P0_ 20 Slot 0 12V - P0_ 21 Slot 0 Vpp to Vcc (CONFIRM?) - P0_ 22 Slot 0 enable fan-out drivers & xcvrs - P0_SW_RST 23 Slot 0 Reset - P1_ 24 Slot 1 MAX1600EAI control line - P1_ 25 Slot 1 MAX1600EAI control line - P1_ 26 Slot 1 MAX1600EAI control line - P1_ 27 Slot 1 MAX1600EAI control line - P1_ 28 Slot 1 12V - P1_ 29 Slot 1 Vpp to Vcc (CONFIRM?) - P1_ 30 Slot 1 enable fan-out drivers & xcvrs - P1_SW_RST 31 Slot 1 Reset - - For each slot, the bits labelled "MAX1600EAI" should (apparently) - be written with the value 0101 for Vcc 3.3V, and 1001 for Vcc 5V. - - - -Intel SA-1110 Development Platform (http://developer.intel.com/design/strong/) - - GPIO Pin Descriptions and Board Control Register - SA-1110 Microprocessor Development Board User's Guide, p.4-7, 4-10 - - The Assabet board contains only a single Compact Flash slot, - attached to slot 1 on the SA-1110. Card detect, ready, and BVD - signals are routed through GPIO, with power and reset placed in a - control register. Note that the CF bus must be enabled before use. - - GPIO 21 Slot 1 Compact Flash interrupt - GPIO 22 Slot 1 card detect (CD1 NOR CD2) - GPIO 24 Slot 1 Battery Voltage Detect 2 - GPIO 25 Slot 1 Battery Voltage Detect 1 - - Write-only: (Board Control Register - 0x12000000) - CF_PWR 0 CF bus power (3.3V) - CF_RST 1 CF reset - CF_Bus_On 7 CF bus enable - diff -Nru a/Documentation/arm/XScale/ADIFCC/80200EVB b/Documentation/arm/XScale/ADIFCC/80200EVB --- a/Documentation/arm/XScale/ADIFCC/80200EVB Tue May 18 23:38:09 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,110 +0,0 @@ - -Board Overview ------------------------------ - -This is an beta release of the Xscale Linux port to the ADI 80200EVB -evaluation board. - -The 80200EVB is an evaluation platform for ADI Engineering's high-performance -80200FCC chipset for the Intel 80200 XScale CPU. The 80200FCC is an open -source FPGA based system that contains a PCI unit and a high performance -memory controller. - -In addition to the 80200FCC, the board also contains a 16C550 UART, and 4MB -of flash. - -The board is still under development and currently only the UART is functional -as the PCI bits have not been programmed into the FPGA. - -For more information on the board, see http://www.adiengineering.com - -Port Status ------------------------------ - -Supported: - -- Onboard UART (Polled operation only) -- Cache/TLB locking on 80200 CPU - -TODO: - -- PCI when hardware supports it - -Building the Kernel ------------------------------ -change Linux makefile -make adi_evb_config -make oldconfig -make zImage - -Loading Linux ------------------------------ - -Before you can use Linux on the ADI board, you need to grab the following: - -ADI 80200EVB Monitor: - ftp://source.mvista.com/pub/xscale/ADI_EVB/monitor.srec - -ADI JFFS2 Image: - ftp://source.mvista.com/pub/xscale/ADI_EVB/adi.jffs2 - -Once you've got the Cygnus prompt, type in the following command: - - load - -On another terminal window: - - cat monitor.srec > /dev/ttyS0 - -(replace ttyS0 with the serial port you are using) - -Once completed, just type 'go' at the cygmon prompt and you should see: - - MontaVista IQ80310 Monitor Version 0.1 - monitor> - -Type 'b 115200' at the prompt and change your terminal speed to 115200 - -The first thing to do is to upload and burn the jffs2 filesystem image -onto the boards 4MB of flash: - - monitor> u c1000000 - Uploading file at 0xc1000000 - Now send file with ymodem - -Do as the monitor says and transfer the file adi.jffs2. Once complete, -the following will copy the jffs2 image to location 0x80000 in the flash. - - monitor> f 8000 c1000000 200000 - Erasing sector 0x00080000 - Writing sector 0x00080000 with data at 0xC1000000 - Erasing sector 0x000A0000 - Writing sector 0x000A0000 with data at 0xC1020000 - Erasing sector 0x000C0000 - ... - -Now use the same command as above to upload your zImage to location c1000000. -When you've done that, type 'j c1000000' to run Linux. Login as -root and you're all set to go. - -Misc Notes ------------------------------ - -The current version of the HW does not have an onboard timer, so the 80200 -PMU is not available for general use as it is being used for a timer source. - -By default, the MTD driver reserves the first 512K for bootloaders and -the remaining 3.5MB for the filesystem. You can edit drivers/mtd/map/adi_evb.c -to change this as needed for your application. - -Contributors ------------------------------ - -Thanks to ADI Engineering for providing the hardware for development - -Deepak Saxena - Initial port - ------------------------------ -Enjoy. If you have any problem please contact Deepak Saxena -dsaxena@mvista.com - diff -Nru a/Documentation/arm/XScale/IOP3XX/IQ80310 b/Documentation/arm/XScale/IOP3XX/IQ80310 --- a/Documentation/arm/XScale/IOP3XX/IQ80310 Tue May 18 23:38:09 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,247 +0,0 @@ - -Board Overview ------------------------------ - -The Cyclone IQ80310 board is an evaluation platform for Intel's 80200 Xscale -CPU and 80312 Intelligent I/O chipset (collectively called IOP310 chipset). - -The 80312 contains dual PCI hoses (called the ATUs), a PCI-to-PCI bridge, -three DMA channels (1 on secondary PCI, one on primary PCI ), I2C, I2O -messaging unit, XOR unit for RAID operations, a bus performance monitoring -unit, and a memory controller with ECC features. - -For more information on the board, see http://developer.intel.com/iio - -Port Status ------------------------------ - -Supported: - -- MTD/JFFS/JFFS2 -- NFS root -- RAMDISK root -- 2ndary PCI slots -- Onboard ethernet -- Serial ports (ttyS0/S1) -- Cache/TLB locking on 80200 CPU -- Performance monitoring unit on 80200 CPU -- 80200 Performance Monitoring Unit -- Acting as a system controller on Cyclone 80303BP PCI backplane -- DMA engines (EXPERIMENTAL) -- 80312 Bus Performance Monitor (EXPERIMENTAL) -- Application Accelerator Unit (XOR engine for RAID) (EXPERIMENTAL) -- Messaging Unit (EXPERIMENTAL) - -TODO: -- I2C - -Building the Kernel ------------------------------ -make iq80310_config -make oldconfig -make zImage - -This will build an image setup for BOOTP/NFS root support. To change this, -just run make menuconfig and disable nfs root or add a "root=" option. - -Preparing the Hardware ------------------------------ - -This document assumes you're using a Rev D or newer board running -Redboot as the bootloader. Note that the version of RedBoot provided -with the boards has a major issue and you need to replace it with the -latest RedBoot. You can grab the source from the ECOS CVS or you can -get a prebuilt image and burn it in using FRU at: - - ftp://source.mvista.com/pub/xscale/iq80310/redboot.bin - -Make sure you do an 'fis init' command once you boot with the new -RedBoot image. - - - -Downloading Linux ------------------------------ - -Assuming you have your development system setup to act as a bootp/dhcp -server and running tftp: - - RedBoot> load -r -b 0xa1008000 /tftpboot/zImage.xs - Raw file loaded 0xa1008000-0xa1094bd8 - -If you're not using dhcp/tftp, you can use y-modem instead: - - RedBoot> load -r -b 0xa1008000 -m y - -Note that on Rev D. of the board, tftp does not work due to intermittent -interrupt issues, so you need to download using ymodem. - -Once the download is completed: - - RedBoot> go 0xa1008000 - -Root Devices ------------------------------ - -A kernel is not useful without a root filesystem, and you have several -choices with this board: NFS root, RAMDISK, or JFFS/JFFS2. For development -purposes, it is suggested that you use NFS root for easy access to various -tools. Once you're ready to deploy, probably want to utilize JFFS/JFFS2 on -the flash device. - -MTD on the IQ80310 ------------------------------ - -Linux on the IQ80310 supports RedBoot FIS paritioning if it is enabled. -Out of the box, once you've done 'fis init' on RedBoot, you will get -the following partitioning scheme: - - root@192.168.0.14:~# cat /proc/mtd - dev: size erasesize name - mtd0: 00040000 00020000 "RedBoot" - mtd1: 00040000 00020000 "RedBoot[backup]" - mtd2: 0075f000 00020000 "unallocated space" - mtd3: 00001000 00020000 "RedBoot config" - mtd4: 00020000 00020000 "FIS directory" - -To create an FIS directory, you need to use the fis command in RedBoot. -As an example, you can burn the kernel into the flash once it's downloaded: - - RedBoot> fis create -b 0xa1008000 -l 0x8CBAC -r 0xa1008000 -f 0x80000 kernel - ... Erase from 0x00080000-0x00120000: ..... - ... Program from 0xa1008000-0xa1094bac at 0x00080000: ..... - ... Unlock from 0x007e0000-0x00800000: . - ... Erase from 0x007e0000-0x00800000: . - ... Program from 0xa1fdf000-0xa1fff000 at 0x007e0000: . - ... Lock from 0x007e0000-0x00800000: . - - RedBoot> fis list - Name FLASH addr Mem addr Length Entry point - RedBoot 0x00000000 0x00000000 0x00040000 0x00000000 - RedBoot[backup] 0x00040000 0x00040000 0x00040000 0x00000000 - RedBoot config 0x007DF000 0x007DF000 0x00001000 0x00000000 - FIS directory 0x007E0000 0x007E0000 0x00020000 0x00000000 - kernel 0x00080000 0xA1008000 0x000A0000 0x00000000 - -This leads to the following Linux MTD setup: - - mtroot@192.168.0.14:~# cat /proc/mtd - dev: size erasesize name - mtd0: 00040000 00020000 "RedBoot" - mtd1: 00040000 00020000 "RedBoot[backup]" - mtd2: 000a0000 00020000 "kernel" - mtd3: 006bf000 00020000 "unallocated space" - mtd4: 00001000 00020000 "RedBoot config" - mtd5: 00020000 00020000 "FIS directory" - -Note that there is not a 1:1 mapping to the number of RedBoot paritions to -MTD partitions as unused space also gets allocated into MTD partitions. - -As an aside, the -r option when creating the Kernel entry allows you to -simply do an 'fis load kernel' to copy the image from flash into memory. -You can then do an 'fis go 0xa1008000' to start Linux. - -If you choose to use static partitioning instead of the RedBoot partioning: - - /dev/mtd0 0x00000000 - 0x0007ffff: Boot Monitor (512k) - /dev/mtd1 0x00080000 - 0x0011ffff: Kernel Image (640K) - /dev/mtd2 0x00120000 - 0x0071ffff: File System (6M) - /dev/mtd3 0x00720000 - 0x00800000: RedBoot Reserved (896K) - -To use a JFFS1/2 root FS, you need to donwload the JFFS image using either -tftp or ymodem, and then copy it to flash: - - RedBoot> load -r -b 0xa1000000 /tftpboot/jffs.img - Raw file loaded 0xa1000000-0xa1600000 - RedBoot> fis create -b 0xa1000000 -l 0x600000 -f 0x120000 jffs - ... Erase from 0x00120000-0x00720000: .................................. - ... Program from 0xa1000000-0xa1600000 at 0x00120000: .................. - ...................... - ... Unlock from 0x007e0000-0x00800000: . - ... Erase from 0x007e0000-0x00800000: . - ... Program from 0xa1fdf000-0xa1fff000 at 0x007e0000: . - ... Lock from 0x007e0000-0x00800000: . - RedBoot> fis list - Name FLASH addr Mem addr Length Entry point - RedBoot 0x00000000 0x00000000 0x00040000 0x00000000 - RedBoot[backup] 0x00040000 0x00040000 0x00040000 0x00000000 - RedBoot config 0x007DF000 0x007DF000 0x00001000 0x00000000 - FIS directory 0x007E0000 0x007E0000 0x00020000 0x00000000 - kernel 0x00080000 0xA1008000 0x000A0000 0xA1008000 - jffs 0x00120000 0x00120000 0x00600000 0x00000000 - -This looks like this in Linux: - - root@192.168.0.14:~# cat /proc/mtd - dev: size erasesize name - mtd0: 00040000 00020000 "RedBoot" - mtd1: 00040000 00020000 "RedBoot[backup]" - mtd2: 000a0000 00020000 "kernel" - mtd3: 00600000 00020000 "jffs" - mtd4: 000bf000 00020000 "unallocated space" - mtd5: 00001000 00020000 "RedBoot config" - mtd6: 00020000 00020000 "FIS directory" - -You need to boot the kernel once and watch the boot messages to see how the -JFFS RedBoot partition mapped into the MTD partition scheme. - -You can grab a pre-built JFFS image to use as a root file system at: - - ftp://source.mvista.com/pub/xscale/iq80310/jffs.img - -For detailed info on using MTD and creating a JFFS image go to: - - http://www.linux-mtd.infradead.org. - -For details on using RedBoot's FIS commands, type 'fis help' or consult -your RedBoot manual. - -Contributors ------------------------------ - -Thanks to Intel Corporation for providing the hardware. - -John Clark - Initial discovery of RedBoot issues -Dave Jiang - IRQ demux fixes, AAU, DMA, MU -Nicolas Pitre - Initial port, cleanup, debugging -Matt Porter - PCI subsystem development, debugging -Tim Sanders - Initial PCI code -Mark Salter - RedBoot fixes -Deepak Saxena - Cleanup, debug, cache lock, PMU - ------------------------------ -Enjoy. - -If you have any problems please contact Deepak Saxena - -A few notes from rmk ------------------------------ - -These are notes of my initial experience getting the IQ80310 Rev D up and -running. In total, it has taken many hours to work out what's going on... -The version of redboot used is: - - RedBoot(tm) bootstrap and debug environment, version UNKNOWN - built 14:58:21, Aug 15 2001 - - -1. I've had a corrupted download of the redboot.bin file from Montavista's - FTP site. It would be a good idea if there were md5sums, sum or gpg - signatures available to ensure the integrity of the downloaded files. - The result of this was an apparantly 100% dead card. - -2. RedBoot Intel EtherExpress Pro 100 driver seems to be very unstable - - I've had it take out the whole of a 100mbit network for several minutes. - The Hub indiates ZERO activity, despite machines attempting to communicate. - Further to this, while tftping the kernel, the transfer will stall regularly, - and might even drop the link LED. - -3. There appears to be a bug in the Intel Documentation Pack that comes with - the IQ80310 board. Serial port 1, which is the socket next to the LEDs - is address 0xfe810000, not 0xfe800000. - - Note that RedBoot uses either serial port 1 OR serial port 2, so if you - have your console connected to the wrong port, you'll see redboot messages - but not kernel boot messages. - -4. Trying to use fconfig to setup a boot script fails - it hangs when trying - to erase the flash. diff -Nru a/Documentation/arm/XScale/IOP3XX/IQ80321 b/Documentation/arm/XScale/IOP3XX/IQ80321 --- a/Documentation/arm/XScale/IOP3XX/IQ80321 Tue May 18 23:38:08 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,215 +0,0 @@ - -Board Overview ------------------------------ - -The Worcester IQ80321 board is an evaluation platform for Intel's 80321 Xscale -CPU (sometimes called IOP321 chipset). - -The 80321 contains a single PCI hose (called the ATUs), a PCI-to-PCI bridge, -two DMA channels, I2C, I2O messaging unit, XOR unit for RAID operations, -a bus performance monitoring unit, and a memory controller with ECC features. - -For more information on the board, see http://developer.intel.com/iio - -Port Status ------------------------------ - -Supported: - -- MTD/JFFS/JFFS2 root -- NFS root -- RAMDISK root -- Serial port (ttyS0) -- Cache/TLB locking on 80321 CPU -- Performance monitoring unit on 80321 CPU - -TODO: - -- DMA engines -- I2C -- 80321 Bus Performance Monitor -- Application Accelerator Unit (XOR engine for RAID) -- I2O Messaging Unit -- I2C unit -- SSP - -Building the Kernel ------------------------------ -make iq80321_config -make oldconfig -make zImage - -This will build an image setup for BOOTP/NFS root support. To change this, -just run make menuconfig and disable nfs root or add a "root=" option. - -Preparing the Hardware ------------------------------ - -Make sure you do an 'fis init' command once you boot with the new -RedBoot image. - -Downloading Linux ------------------------------ - -Assuming you have your development system setup to act as a bootp/dhcp -server and running tftp: - -NOTE: The 80321 board uses a different default memory map than the 80310. - - RedBoot> load -r -b 0x01008000 -m y - -Once the download is completed: - - RedBoot> go 0x01008000 - -There is a version of RedBoot floating around that has DHCP support, but -I've never been able to cleanly transfer a kernel image and have it run. - -Root Devices ------------------------------ - -A kernel is not useful without a root filesystem, and you have several -choices with this board: NFS root, RAMDISK, or JFFS/JFFS2. For development -purposes, it is suggested that you use NFS root for easy access to various -tools. Once you're ready to deploy, probably want to utilize JFFS/JFFS2 on -the flash device. - -MTD on the IQ80321 ------------------------------ - -Linux on the IQ80321 supports RedBoot FIS paritioning if it is enabled. -Out of the box, once you've done 'fis init' on RedBoot, you will get -the following partitioning scheme: - - root@192.168.0.14:~# cat /proc/mtd - dev: size erasesize name - mtd0: 00040000 00020000 "RedBoot" - mtd1: 00040000 00020000 "RedBoot[backup]" - mtd2: 0075f000 00020000 "unallocated space" - mtd3: 00001000 00020000 "RedBoot config" - mtd4: 00020000 00020000 "FIS directory" - -To create an FIS directory, you need to use the fis command in RedBoot. -As an example, you can burn the kernel into the flash once it's downloaded: - - RedBoot> fis create -b 0x01008000 -l 0x8CBAC -r 0x01008000 -f 0x80000 kernel - ... Erase from 0x00080000-0x00120000: ..... - ... Program from 0x01008000-0x01094bac at 0x00080000: ..... - ... Unlock from 0x007e0000-0x00800000: . - ... Erase from 0x007e0000-0x00800000: . - ... Program from 0x01fdf000-0x01fff000 at 0x007e0000: . - ... Lock from 0x007e0000-0x00800000: . - - RedBoot> fis list - Name FLASH addr Mem addr Length Entry point - RedBoot 0x00000000 0x00000000 0x00040000 0x00000000 - RedBoot[backup] 0x00040000 0x00040000 0x00040000 0x00000000 - RedBoot config 0x007DF000 0x007DF000 0x00001000 0x00000000 - FIS directory 0x007E0000 0x007E0000 0x00020000 0x00000000 - kernel 0x00080000 0x01008000 0x000A0000 0x00000000 - -This leads to the following Linux MTD setup: - - mtroot@192.168.0.14:~# cat /proc/mtd - dev: size erasesize name - mtd0: 00040000 00020000 "RedBoot" - mtd1: 00040000 00020000 "RedBoot[backup]" - mtd2: 000a0000 00020000 "kernel" - mtd3: 006bf000 00020000 "unallocated space" - mtd4: 00001000 00020000 "RedBoot config" - mtd5: 00020000 00020000 "FIS directory" - -Note that there is not a 1:1 mapping to the number of RedBoot paritions to -MTD partitions as unused space also gets allocated into MTD partitions. - -As an aside, the -r option when creating the Kernel entry allows you to -simply do an 'fis load kernel' to copy the image from flash into memory. -You can then do an 'fis go 0x01008000' to start Linux. - -If you choose to use static partitioning instead of the RedBoot partioning: - - /dev/mtd0 0x00000000 - 0x0007ffff: Boot Monitor (512k) - /dev/mtd1 0x00080000 - 0x0011ffff: Kernel Image (640K) - /dev/mtd2 0x00120000 - 0x0071ffff: File System (6M) - /dev/mtd3 0x00720000 - 0x00800000: RedBoot Reserved (896K) - -To use a JFFS1/2 root FS, you need to donwload the JFFS image using either -tftp or ymodem, and then copy it to flash: - - RedBoot> load -r -b 0x01000000 /tftpboot/jffs.img - Raw file loaded 0x01000000-0x01600000 - RedBoot> fis create -b 0x01000000 -l 0x600000 -f 0x120000 jffs - ... Erase from 0x00120000-0x00720000: .................................. - ... Program from 0x01000000-0x01600000 at 0x00120000: .................. - ...................... - ... Unlock from 0x007e0000-0x00800000: . - ... Erase from 0x007e0000-0x00800000: . - ... Program from 0x01fdf000-0x01fff000 at 0x007e0000: . - ... Lock from 0x007e0000-0x00800000: . - RedBoot> fis list - Name FLASH addr Mem addr Length Entry point - RedBoot 0x00000000 0x00000000 0x00040000 0x00000000 - RedBoot[backup] 0x00040000 0x00040000 0x00040000 0x00000000 - RedBoot config 0x007DF000 0x007DF000 0x00001000 0x00000000 - FIS directory 0x007E0000 0x007E0000 0x00020000 0x00000000 - kernel 0x00080000 0x01008000 0x000A0000 0x01008000 - jffs 0x00120000 0x00120000 0x00600000 0x00000000 - -This looks like this in Linux: - - root@192.168.0.14:~# cat /proc/mtd - dev: size erasesize name - mtd0: 00040000 00020000 "RedBoot" - mtd1: 00040000 00020000 "RedBoot[backup]" - mtd2: 000a0000 00020000 "kernel" - mtd3: 00600000 00020000 "jffs" - mtd4: 000bf000 00020000 "unallocated space" - mtd5: 00001000 00020000 "RedBoot config" - mtd6: 00020000 00020000 "FIS directory" - -You need to boot the kernel once and watch the boot messages to see how the -JFFS RedBoot partition mapped into the MTD partition scheme. - -You can grab a pre-built JFFS image to use as a root file system at: - - ftp://source.mvista.com/pub/xscale/iq80310/jffs.img - -For detailed info on using MTD and creating a JFFS image go to: - - http://www.linux-mtd.infradead.org. - -For details on using RedBoot's FIS commands, type 'fis help' or consult -your RedBoot manual. - -BUGS and ISSUES ------------------------------ - -* As shipped from Intel, pre-production boards have two issues: - -- The on board ethernet is disabled S8E1-2 is off. You will need to turn it on. - -- The PCIXCAPs are configured for a 100Mhz clock, but the clock selected is - actually only 66Mhz. This causes the wrong PPL multiplier to be used and the - board only runs at 400Mhz instead of 600Mhz. The way to observe this is to - use a independent clock to time a "sleep 10" command from the prompt. If it - takes 15 seconds instead of 10, you are running at 400Mhz. - -- The experimental IOP310 drivers for the AAU, DMA, etc. are not supported yet. - -Contributors ------------------------------ -The port to the IQ80321 was performed by: - -Rory Bolt - Initial port, debugging. - -This port was based on the IQ80310 port with the following contributors: - -Nicolas Pitre - Initial port, cleanup, debugging -Matt Porter - PCI subsystem development, debugging -Tim Sanders - Initial PCI code -Deepak Saxena - Cleanup, debug, cache lock, PMU - -The port is currently maintained by Deepak Saxena - ------------------------------ -Enjoy. diff -Nru a/Documentation/arm/XScale/IOP3XX/aau.txt b/Documentation/arm/XScale/IOP3XX/aau.txt --- a/Documentation/arm/XScale/IOP3XX/aau.txt Tue May 18 23:38:07 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,178 +0,0 @@ -Support functions for the Intel 80310 AAU -=========================================== - -Dave Jiang -Last updated: 09/18/2001 - -The Intel 80312 companion chip in the 80310 chipset contains an AAU. The -AAU is capable of processing up to 8 data block sources and perform XOR -operations on them. This unit is typically used to accelerated XOR -operations utilized by RAID storage device drivers such as RAID 5. This -API is designed to provide a set of functions to take adventage of the -AAU. The AAU can also be used to transfer data blocks and used as a memory -copier. The AAU transfer the memory faster than the operation performed by -using CPU copy therefore it is recommended to use the AAU for memory copy. - ------------------- -int aau_request(u32 *aau_context, const char *device_id); -This function allows the user the acquire the control of the the AAU. The -function will return a context of AAU to the user and allocate -an interrupt for the AAU. The user must pass the context as a parameter to -various AAU API calls. - -int aau_queue_buffer(u32 aau_context, aau_head_t *listhead); -This function starts the AAU operation. The user must create a SGL -header with a SGL attached. The format is presented below. The SGL is -built from kernel memory. - -/* hardware descriptor */ -typedef struct _aau_desc -{ - u32 NDA; /* next descriptor address [READONLY] */ - u32 SAR[AAU_SAR_GROUP]; /* src addrs */ - u32 DAR; /* destination addr */ - u32 BC; /* byte count */ - u32 DC; /* descriptor control */ - u32 SARE[AAU_SAR_GROUP]; /* extended src addrs */ -} aau_desc_t; - -/* user SGL format */ -typedef struct _aau_sgl -{ - aau_desc_t aau_desc; /* AAU HW Desc */ - u32 status; /* status of SGL [READONLY] */ - struct _aau_sgl *next; /* pointer to next SG [READONLY] */ - void *dest; /* destination addr */ - void *src[AAU_SAR_GROUP]; /* source addr[4] */ - void *ext_src[AAU_SAR_GROUP]; /* ext src addr[4] */ - u32 total_src; /* total number of source */ -} aau_sgl_t; - -/* header for user SGL */ -typedef struct _aau_head -{ - u32 total; /* total descriptors allocated */ - u32 status; /* SGL status */ - aau_sgl_t *list; /* ptr to head of list */ - aau_callback_t callback; /* callback func ptr */ -} aau_head_t; - - -The function will call aau_start() and start the AAU after it queues -the SGL to the processing queue. When the function will either -a. Sleep on the wait queue aau->wait_q if no callback has been provided, or -b. Continue and then call the provided callback function when DMA interrupt - has been triggered. - -int aau_suspend(u32 aau_context); -Stops/Suspends the AAU operation - -int aau_free(u32 aau_context); -Frees the ownership of AAU. Called when no longer need AAU service. - -aau_sgl_t * aau_get_buffer(u32 aau_context, int num_buf); -This function obtains an AAU SGL for the user. User must specify the number -of descriptors to be allocated in the chain that is returned. - -void aau_return_buffer(u32 aau_context, aau_sgl_t *list); -This function returns all SGL back to the API after user is done. - -int aau_memcpy(void *dest, void *src, u32 size); -This function is a short cut for user to do memory copy utilizing the AAU for -better large block memory copy vs using the CPU. This is similar to using -typical memcpy() call. - -* User is responsible for the source address(es) and the destination address. - The source and destination should all be cached memory. - - - -void aau_test() -{ - u32 aau; - char dev_id[] = "AAU"; - int size = 2; - int err = 0; - aau_head_t *head; - aau_sgl_t *list; - u32 i; - u32 result = 0; - void *src, *dest; - - printk("Starting AAU test\n"); - if((err = aau_request(&aau, dev_id))<0) - { - printk("test - AAU request failed: %d\n", err); - return; - } - else - { - printk("test - AAU request successful\n"); - } - - head = kmalloc(sizeof(aau_head_t), GFP_KERNEL); - head->total = size; - head->status = 0; - head->callback = NULL; - - list = aau_get_buffer(aau, size); - if(!list) - { - printk("Can't get buffers\n"); - return; - } - head->list = list; - - src = kmalloc(1024, GFP_KERNEL); - dest = kmalloc(1024, GFP_KERNEL); - - while(list) - { - list->status = 0; - list->aau_desc->SAR[0] = (u32)src; - list->aau_desc->DAR = (u32)dest; - list->aau_desc->BC = 1024; - - /* see iop310-aau.h for more DCR commands */ - list->aau_desc->DC = AAU_DCR_WRITE | AAU_DCR_BLKCTRL_1_DF; - if(!list->next) - { - list->aau_desc->DC = AAU_DCR_IE; - break; - } - list = list->next; - } - - printk("test- Queueing buffer for AAU operation\n"); - err = aau_queue_buffer(aau, head); - if(err >= 0) - { - printk("AAU Queue Buffer is done...\n"); - } - else - { - printk("AAU Queue Buffer failed...: %d\n", err); - } - - - -#if 1 - printk("freeing the AAU\n"); - aau_return_buffer(aau, head->list); - aau_free(aau); - kfree(src); - kfree(dest); - kfree((void *)head); -#endif -} - -All Disclaimers apply. Use this at your own discretion. Neither Intel nor I -will be responsible if anything goes wrong. =) - - -TODO -____ -* Testing -* Do zero-size AAU transfer/channel at init - so all we have to do is chainining - diff -Nru a/Documentation/arm/XScale/IOP3XX/dma.txt b/Documentation/arm/XScale/IOP3XX/dma.txt --- a/Documentation/arm/XScale/IOP3XX/dma.txt Tue May 18 23:38:08 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,214 +0,0 @@ -Support functions forthe Intel 80310 DMA channels -================================================== - -Dave Jiang -Last updated: 09/18/2001 - -The Intel 80310 XScale chipset provides 3 DMA channels via the 80312 I/O -companion chip. Two of them resides on the primary PCI bus and one on the -secondary PCI bus. - -The DMA API provided is not compatible with the generic interface in the -ARM tree unfortunately due to how the 80312 DMACs work. Hopefully some time -in the near future a software interface can be done to bridge the differences. -The DMA API has been modeled after Nicholas Pitre's SA11x0 DMA API therefore -they will look somewhat similar. - - -80310 DMA API -------------- - -int dma_request(dmach_t channel, const char *device_id); - -This function will attempt to allocate the channel depending on what the -user requests: - -IOP310_DMA_P0: PCI Primary 1 -IOP310_DMA_P1: PCI Primary 2 -IOP310_DMA_S0: PCI Secondary 1 -/*EOF*/ - -Once the user allocates the DMA channel it is owned until released. Although -other users can also use the same DMA channel, but no new resources will be -allocated. The function will return the allocated channel number if successful. - -int dma_queue_buffer(dmach_t channel, dma_sghead_t *listhead); - -The user will construct a SGL in the form of below: -/* - * Scattered Gather DMA List for user - */ -typedef struct _dma_desc -{ - u32 NDAR; /* next descriptor adress [READONLY] */ - u32 PDAR; /* PCI address */ - u32 PUADR; /* upper PCI address */ - u32 LADR; /* local address */ - u32 BC; /* byte count */ - u32 DC; /* descriptor control */ -} dma_desc_t; - -typedef struct _dma_sgl -{ - dma_desc_t dma_desc; /* DMA descriptor */ - u32 status; /* descriptor status [READONLY] */ - u32 data; /* user defined data */ - struct _dma_sgl *next; /* next descriptor [READONLY] */ -} dma_sgl_t; - -/* dma sgl head */ -typedef struct _dma_head -{ - u32 total; /* total elements in SGL */ - u32 status; /* status of sgl */ - u32 mode; /* read or write mode */ - dma_sgl_t *list; /* pointer to list */ - dma_callback_t callback; /* callback function */ -} dma_head_t; - - -The user shall allocate user SGL elements by calling the function: -dma_get_buffer(). This function will give the user an SGL element. The user -is responsible for creating the SGL head however. The user is also -responsible for allocating the memory for DMA data. The following code segment -shows how a DMA operation can be performed: - -#include - -void dma_test(void) -{ - char dev_id[] = "Primary 0"; - dma_head_t *sgl_head = NULL; - dma_sgl_t *sgl = NULL; - int err = 0; - int channel = -1; - u32 *test_ptr = 0; - DECLARE_WAIT_QUEUE_HEAD(wait_q); - - - *(IOP310_ATUCR) = (IOP310_ATUCR_PRIM_OUT_ENAB | - IOP310_ATUCR_DIR_ADDR_ENAB); - - channel = dma_request(IOP310_DMA_P0, dev_id); - - sgl_head = (dma_head_t *)kmalloc(sizeof(dma_head_t), GFP_KERNEL); - sgl_head->callback = NULL; /* no callback created */ - sgl_head->total = 2; /* allocating 2 DMA descriptors */ - sgl_head->mode = (DMA_MOD_WRITE); - sgl_head->status = 0; - - /* now we get the two descriptors */ - sgl = dma_get_buffer(channel, 2); - - /* we set the header to point to the list we allocated */ - sgl_head->list = sgl; - - /* allocate 1k of DMA data */ - sgl->data = (u32)kmalloc(1024, GFP_KERNEL); - - /* Local address is physical */ - sgl->dma_desc.LADR = (u32)virt_to_phys(sgl->data); - - /* write to arbitrary location over the PCI bus */ - sgl->dma_desc.PDAR = 0x00600000; - sgl->dma_desc.PUADR = 0; - sgl->dma_desc.BC = 1024; - - /* set write & invalidate PCI command */ - sgl->dma_desc.DC = DMA_DCR_PCI_MWI; - sgl->status = 0; - - /* set a pattern */ - memset(sgl->data, 0xFF, 1024); - - /* User's responsibility to keep buffers cached coherent */ - cpu_dcache_clean(sgl->data, sgl->data + 1024); - - sgl = sgl->next; - - sgl->data = (u32)kmalloc(1024, GFP_KERNEL); - sgl->dma_desc.LADR = (u32)virt_to_phys(sgl->data); - sgl->dma_desc.PDAR = 0x00610000; - sgl->dma_desc.PUADR = 0; - sgl->dma_desc.BC = 1024; - - /* second descriptor has interrupt flag enabled */ - sgl->dma_desc.DC = (DMA_DCR_PCI_MWI | DMA_DCR_IE); - - /* must set end of chain flag */ - sgl->status = DMA_END_CHAIN; /* DO NOT FORGET THIS!!!! */ - - memset(sgl->data, 0x0f, 1024); - /* User's responsibility to keep buffers cached coherent */ - cpu_dcache_clean(sgl->data, sgl->data + 1024); - - /* queuing the buffer, this function will sleep since no callback */ - err = dma_queue_buffer(channel, sgl_head); - - /* now we are woken from DMA complete */ - - /* do data operations here */ - - /* free DMA data if necessary */ - - /* return the descriptors */ - dma_return_buffer(channel, sgl_head->list); - - /* free the DMA */ - dma_free(channel); - - kfree((void *)sgl_head); -} - - -dma_sgl_t * dma_get_buffer(dmach_t channel, int buf_num); - -This call allocates DMA descriptors for the user. - - -void dma_return_buffer(dmach_t channel, dma_sgl_t *list); - -This call returns the allocated descriptors back to the API. - - -int dma_suspend(dmach_t channel); - -This call suspends any DMA transfer on the given channel. - - - -int dma_resume(dmach_t channel); - -This call resumes a DMA transfer which would have been stopped through -dma_suspend(). - - -int dma_flush_all(dmach_t channel); - -This completely flushes all queued buffers and on-going DMA transfers on a -given channel. This is called when DMA channel errors have occurred. - - -void dma_free(dmach_t channel); - -This clears all activities on a given DMA channel and releases it for future -requests. - - - -Buffer Allocation ------------------ -It is the user's responsibility to allocate, free, and keep track of the -allocated DMA data memory. Upon calling dma_queue_buffer() the user must -relinquish the control of the buffers to the kernel and not change the -state of the buffers that it has passed to the kernel. The user will regain -the control of the buffers when it has been woken up by the bottom half of -the DMA interrupt handler. The user can allocate cached buffers or non-cached -via pci_alloc_consistent(). It is the user's responsibility to ensure that -the data is cache coherent. - -*Reminder* -The user is responsble to ensure the ATU is setup properly for DMA transfers. - -All Disclaimers apply. Use this at your own discretion. Neither Intel nor I -will be responsible ifanything goes wrong. diff -Nru a/Documentation/arm/XScale/IOP3XX/message.txt b/Documentation/arm/XScale/IOP3XX/message.txt --- a/Documentation/arm/XScale/IOP3XX/message.txt Tue May 18 23:38:05 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,110 +0,0 @@ -Support functions for the Intel 80310 MU -=========================================== - -Dave Jiang -Last updated: 10/11/2001 - -The messaging unit of the IOP310 contains 4 components and is utilized for -passing messages between the PCI agents on the primary bus and the Intel(R) -80200 CPU. The four components are: -Messaging Component -Doorbell Component -Circular Queues Component -Index Registers Component - -Messaging Component: -Contains 4 32bit registers, 2 in and 2 out. Writing to the registers assert -interrupt on the PCI bus or to the 80200 depend on incoming or outgoing. - -int mu_msg_request(u32 *mu_context); -Request the usage of Messaging Component. mu_context is written back by the -API. The MU context is passed to other Messaging calls as a parameter. - -int mu_msg_set_callback(u32 mu_context, u8 reg, mu_msg_cb_t func); -Setup the callback function for incoming messages. Callback can be setup for -outbound 0, 1, or both outbound registers. - -int mu_msg_post(u32 mu_context, u32 val, u8 reg); -Posting a message in the val parameter. The reg parameter denotes whether -to use register 0, 1. - -int mu_msg_free(u32 mu_context, u8 mode); -Free the usage of messaging component. mode can be specified soft or hard. In -hardmode all resources are unallocated. - -Doorbell Component: -The doorbell registers contains 1 inbound and 1 outbound. Depending on the bits -being set different interrupts are asserted. - -int mu_db_request(u32 *mu_context); -Request the usage of the doorbell register. - -int mu_db_set_callback(u32 mu_context, mu_db_cb_t func); -Setting up the inbound callback. - -void mu_db_ring(u32 mu_context, u32 mask); -Write to the outbound db register with mask. - -int mu_db_free(u32 mu_context); -Free the usage of doorbell component. - -Circular Queues Component: -The circular queue component has 4 circular queues. Inbound post, inbound free, -outbound post, outbound free. These queues are used to pass messages. - -int mu_cq_request(u32 *mu_context, u32 q_size); -Request the usage of the queue. See code comment header for q_size. It tells -the API how big of queues to setup. - -int mu_cq_inbound_init(u32 mu_context, mfa_list_t *list, u32 size, - mu_cq_cb_t func); -Init inbound queues. The user must provide a list of free message frames to -be put in inbound free queue and the callback function to handle the inbound -messages. - -int mu_cq_enable(u32 mu_context); -Enables the circular queues mechanism. Called once all the setup functions -are called. - -u32 mu_cq_get_frame(u32 mu_context); -Obtain the address of an outbound free frame for the user. - -int mu_cq_post_frame(u32 mu_context, u32 mfa); -The user can post the frame once getting the frame and put information in the -frame. - -int mu_cq_free(u32 mu_context); -Free the usage of circular queues mechanism. - -Index Registers Component: -The index register provides the mechanism to receive inbound messages. - -int mu_ir_request(u32 *mu_context); -Request of Index Register component usage. - -int mu_ir_set_callback(u32 mu_context, mu_ir_cb_t callback); -Setting up callback for inbound messages. The callback will receive the -value of the register that IAR offsets to. - -int mu_ir_free(u32 mu_context); -Free the usage of Index Registers component. - -void mu_set_irq_threshold(u32 mu_context, int thresh); -Setup the IRQ threshold before relinquish processing in IRQ space. Default -is set at 10 loops. - - -*NOTE: Example of host driver that utilize the MU can be found in the Linux I2O -driver. Specifically i2o_pci and some functions of i2o_core. The I2O driver -only utilize the circular queues mechanism. The other 3 components are simple -enough that they can be easily setup. The MU API provides no flow control for -the messaging mechanism. Flow control of the messaging needs to be established -by a higher layer of software on the IOP or the host driver. - -All Disclaimers apply. Use this at your own discretion. Neither Intel nor I -will be responsible if anything goes wrong. =) - - -TODO -____ - diff -Nru a/Documentation/arm/XScale/IOP3XX/pmon.txt b/Documentation/arm/XScale/IOP3XX/pmon.txt --- a/Documentation/arm/XScale/IOP3XX/pmon.txt Tue May 18 23:38:07 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,71 +0,0 @@ - -Intel's XScale Microarchitecture 80312 companion processor provides a -Performance Monitoring Unit (PMON) that can be utilized to provide -information that can be useful for fine tuning of code. This text -file describes the API that's been developed for use by Linux kernel -programmers. Note that to get the most usage out of the PMON, -I highly reccomend getting the XScale reference manual from Intel[1] -and looking at chapter 12. - -To use the PMON, you must #include in your -source file. - -Since there's only one PMON, only one user can currently use the PMON -at a given time. To claim the PMON for usage, call iop310_pmon_claim() which -returns an identifier. When you are done using the PMON, call -iop310_pmon_release() with the id you were given earlier. - -The PMON consists of 14 registers that can be used for performance measurements. -By combining different statistics, you can derive complex performance metrics. - -To start the PMON, just call iop310_pmon_start(mode). Mode tells the PMON what -statistics to capture and can each be one of: - - IOP310_PMU_MODE0 - Performance Monitoring Disabled - - IOP310_PMU_MODE1 - Primary PCI bus and internal agents (bridge, dma Ch0, dam Ch1, patu) - - IOP310_PMU_MODE2 - Secondary PCI bus and internal agents (bridge, dma Ch0, dam Ch1, patu) - - IOP310_PMU_MODE3 - Secondary PCI bus and internal agents (external masters 0..2 and Intel - 80312 I/O companion chip) - - IOP310_PMU_MODE4 - Secondary PCI bus and internal agents (external masters 3..5 and Intel - 80312 I/O companion chip) - - IOP310_PMU_MODE5 - Intel 80312 I/O companion chip internal bus, DMA Channels and Application - Accelerator - - IOP310_PMU_MODE6 - Intel 80312 I/O companion chip internal bus, PATU, SATU and Intel 80200 - processor - - IOP310_PMU_MODE7 - Intel 80312 I/O companion chip internal bus, Primary PCI bus, Secondary - PCI bus and Secondary PCI agents (external masters 0..5 & Intel 80312 I/O - companion chip) - -To get the results back, call iop310_pmon_stop(&results) where results is -defined as follows: - -typedef struct _iop310_pmon_result -{ - u32 timestamp; /* Global Time Stamp Register */ - u32 timestamp_overflow; /* Time Stamp overflow count */ - u32 event_count[14]; /* Programmable Event Counter - Registers 1-14 */ - u32 event_overflow[14]; /* Overflow counter for PECR1-14 */ -} iop310_pmon_res_t; - - --- -This code is still under development, so please feel free to send patches, -questions, comments, etc to me. - -Deepak Saxena diff -Nru a/Documentation/arm/XScale/cache-lock.txt b/Documentation/arm/XScale/cache-lock.txt --- a/Documentation/arm/XScale/cache-lock.txt Tue May 18 23:38:07 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,123 +0,0 @@ - -Intel's XScale Microarchitecture provides support for locking of data -and instructions into the appropriate caches. This file provides -an overview of the API that has been developed to take advantage of this -feature from kernel space. Note that there is NO support for user space -cache locking. - -For example usage of this code, grab: - - ftp://source.mvista.com/pub/xscale/cache-test.c - -If you have any questions, comments, patches, etc, please contact me. - -Deepak Saxena - -API DESCRIPTION - - -I. Header File - - #include - -II. Cache Capability Discovery - - SYNOPSIS - - int cache_query(u8 cache_type, - struct cache_capabilities *pcache); - - struct cache_capabilities - { - u32 flags; /* Flags defining capabilities */ - u32 cache_size; /* Cache size in K (1024 bytes) */ - u32 max_lock; /* Maximum lockable region in K */ - } - - /* - * Flags - */ - - /* - * Bit 0: Cache lockability - * Bits 1-31: Reserved for future use - */ - #define CACHE_LOCKABLE 0x00000001 /* Cache can be locked */ - - /* - * Cache Types - */ - #define ICACHE 0x00 - #define DCACHE 0x01 - - DESCRIPTION - - This function fills out the pcache capability identifier for the - requested cache. cache_type is either DCACHE or ICACHE. This - function is not very useful at the moment as all XScale CPU's - have the same size Cache, but is is provided for future XScale - based processors that may have larger cache sizes. - - RETURN VALUE - - This function returns 0 if no error occurs, otherwise it returns - a negative, errno compatible value. - - -EIO Unknown hardware error - -III. Cache Locking - - SYNOPSIS - - int cache_lock(void *addr, u32 len, u8 cache_type, const char *desc); - - DESCRIPTION - - This function locks a physically contigous portion of memory starting - at the virtual address pointed to by addr into the cache referenced - by cache_type. - - The address of the data/instruction that is to be locked must be - aligned on a cache line boundary (L1_CACHE_ALIGNEMENT). - - The desc parameter is an optional (pass NULL if not used) human readable - descriptor of the locked memory region that is used by the cache - management code to build the /proc/cache_locks table. - - Note that this function does not check whether the address is valid - or not before locking it into the cache. That duty is up to the - caller. Also, it does not check for duplicate or overlaping - entries. - - RETURN VALUE - - If the function is successful in locking the entry into cache, a - zero is returned. - - If an error occurs, an appropriate error value is returned. - - -EINVAL The memory address provided was not cache line aligned - -ENOMEM Could not allocate memory to complete operation - -ENOSPC Not enough space left on cache to lock in requested region - -EIO Unknown error - -III. Cache Unlocking - - SYNOPSIS - - int cache_unlock(void *addr) - - DESCRIPTION - - This function unlocks a portion of memory that was previously locked - into either the I or D cache. - - RETURN VALUE - - If the entry is cleanly unlocked from the cache, a 0 is returned. - In the case of an error, an appropriate error is returned. - - -ENOENT No entry with given address associated with this cache - -EIO Unknown error - - diff -Nru a/Documentation/arm/XScale/pmu.txt b/Documentation/arm/XScale/pmu.txt --- a/Documentation/arm/XScale/pmu.txt Tue May 18 23:38:06 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,168 +0,0 @@ - -Intel's XScale Microarchitecture processors provide a Performance -Monitoring Unit (PMU) that can be utilized to provide information -that can be useful for fine tuning of code. This text file describes -the API that's been developed for use by Linux kernel programmers. -When I have some extra time on my hand, I will extend the code to -provide support for user mode performance monitoring (which is -probably much more useful). Note that to get the most usage out -of the PMU, I highly reccomend getting the XScale reference manual -from Intel and looking at chapter 12. - -To use the PMU, you must #include in your source file. - -Since there's only one PMU, only one user can currently use the PMU -at a given time. To claim the PMU for usage, call pmu_claim() which -returns an identifier. When you are done using the PMU, call -pmu_release() with the identifier that you were given by pmu_claim. - -In addition, the PMU can only be used on XScale based systems that -provide an external timer. Systems that the PMU is currently supported -on are: - - - Cyclone IQ80310 - -Before delving into how to use the PMU code, let's do a quick overview -of the PMU itself. The PMU consists of three registers that can be -used for performance measurements. The first is the CCNT register with -provides the number of clock cycles elapsed since the PMU was started. -The next two register, PMN0 and PMN1, are eace user programmable to -provide 1 of 20 different performance statistics. By combining different -statistics, you can derive complex performance metrics. - -To start the PMU, just call pmu_start(pm0, pmn1). pmn0 and pmn1 tell -the PMU what statistics to capture and can each be one of: - -EVT_ICACHE_MISS - Instruction fetches requiring access to external memory - -EVT_ICACHE_NO_DELIVER - Instruction cache could not deliver an instruction. Either an - ICACHE miss or an instruction TLB miss. - -EVT_ICACHE_DATA_STALL - Stall in execution due to a data dependency. This counter is - incremented each cycle in which the condition is present. - -EVT_ITLB_MISS - Instruction TLB miss - -EVT_DTLB_MISS - Data TLB miss - -EVT_BRANCH - A branch instruction was executed and it may or may not have - changed program flow - -EVT_BRANCH_MISS - A branch (B or BL instructions only) was mispredicted - -EVT_INSTRUCTION - An instruction was executed - -EVT_DCACHE_FULL_STALL - Stall because data cache buffers are full. Incremented on every - cycle in which condition is present. - -EVT_DCACHE_FULL_STALL_CONTIG - Stall because data cache buffers are full. Incremented on every - cycle in which condition is contigous. - -EVT_DCACHE_ACCESS - Data cache access (data fetch) - -EVT_DCACHE_MISS - Data cache miss - -EVT_DCACHE_WRITE_BACK - Data cache write back. This counter is incremented for every - 1/2 line (four words) that are written back. - -EVT_PC_CHANGED - Software changed the PC. This is incremented only when the - software changes the PC and there is no mode change. For example, - a MOV instruction that targets the PC would increment the counter. - An SWI would not as it triggers a mode change. - -EVT_BCU_REQUEST - The Bus Control Unit(BCU) received a request from the core - -EVT_BCU_FULL - The BCU request queue if full. A high value for this event means - that the BCU is often waiting for to complete on the external bus. - -EVT_BCU_DRAIN - The BCU queues were drained due to either a Drain Write Buffer - command or an I/O transaction for a page that was marked as - uncacheable and unbufferable. - -EVT_BCU_ECC_NO_ELOG - The BCU detected an ECC error on the memory bus but noe ELOG - register was available to to log the errors. - -EVT_BCU_1_BIT_ERR - The BCU detected a 1-bit error while reading from the bus. - -EVT_RMW - An RMW cycle occurred due to narrow write on ECC protected memory. - -To get the results back, call pmu_stop(&results) where results is defined -as a struct pmu_results: - - struct pmu_results - { - u32 ccnt; /* Clock Counter Register */ - u32 ccnt_of; / - u32 pmn0; /* Performance Counter Register 0 */ - u32 pmn0_of; - u32 pmn1; /* Performance Counter Register 1 */ - u32 pmn1_of; - }; - -Pretty simple huh? Following are some examples of how to get some commonly -wanted numbers out of the PMU data. Note that since you will be dividing -things, this isn't super useful from the kernel and you need to printk the -data out to syslog. See [1] for more examples. - -Instruction Cache Efficiency - - pmu_start(EVT_INSTRUCTION, EVT_ICACHE_MISS); - ... - pmu_stop(&results); - - icache_miss_rage = results.pmn1 / results.pmn0; - cycles_per_instruction = results.ccnt / results.pmn0; - -Data Cache Efficiency - - pmu_start(EVT_DCACHE_ACCESS, EVT_DCACHE_MISS); - ... - pmu_stop(&results); - - dcache_miss_rage = results.pmn1 / results.pmn0; - -Instruction Fetch Latency - - pmu_start(EVT_ICACHE_NO_DELIVER, EVT_ICACHE_MISS); - ... - pmu_stop(&results); - - average_stall_waiting_for_instruction_fetch = - results.pmn0 / results.pmn1; - - percent_stall_cycles_due_to_instruction_fetch = - results.pmn0 / results.ccnt; - - -ToDo: - -- Add support for usermode PMU usage. This might require hooking into - the scheduler so that we pause the PMU when the task that requested - statistics is scheduled out. - --- -This code is still under development, so please feel free to send patches, -questions, comments, etc to me. - -Deepak Saxena - diff -Nru a/Documentation/arm/XScale/tlb-lock.txt b/Documentation/arm/XScale/tlb-lock.txt --- a/Documentation/arm/XScale/tlb-lock.txt Tue May 18 23:38:05 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,64 +0,0 @@ - -Intel's XScale Microarchitecture provides support for locking of TLB -entries in both the instruction and data TLBs. This file provides -an overview of the API that has been developed to take advantage of this -feature from kernel space. Note that there is NO support for user space. - -In general, this feature should be used in conjunction with locking -data or instructions into the appropriate caches. See the file -cache-lock.txt in this directory. - -If you have any questions, comments, patches, etc, please contact me. - -Deepak Saxena - - -API DESCRIPTION - -I. Header file - - #include - -II. Locking an entry into the TLB - - SYNOPSIS - - xscale_tlb_lock(u8 tlb_type, u32 addr); - - /* - * TLB types - */ - #define ITLB 0x0 - #define DTLB 0x1 - - DESCRIPTION - - This function locks the virtual to physical mapping for virtual - address addr into the requested TLB. - - RETURN VALUE - - If the entry is properly locked into the TLB, a 0 is returned. - In case of an error, an appropriate error is returned. - - -ENOSPC No more entries left in the TLB - -EIO Unknown error - -III. Unlocking an entry from a TLB - - SYNOPSIS - - xscale_tlb_unlock(u8 tlb_type, u32 addr); - - DESCRIPTION - - This function unlocks the entry for virtual address addr from the - specified cache. - - RETURN VALUE - - If the TLB entry is properly unlocked, a 0 is returned. - In case of an error, an appropriate error is returned. - - -ENOENT No entry for given address in specified TLB - diff -Nru a/Documentation/fb/pxafb.txt b/Documentation/fb/pxafb.txt --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/Documentation/fb/pxafb.txt Tue May 18 23:38:09 2004 @@ -0,0 +1,54 @@ +Driver for PXA25x LCD controller +================================ + +The driver supports the following options, either via +options= when modular or video=pxafb: when built in. + +For example: + modprobe pxafb options=mode:640x480-8,passive +or on the kernel command line + video=pxafb:mode:640x480-8,passive + +mode:XRESxYRES[-BPP] + XRES == LCCR1_PPL + 1 + YRES == LLCR2_LPP + 1 + The resolution of the display in pixels + BPP == The bit depth. Valid values are 1, 2, 4, 8 and 16. + +pixclock:PIXCLOCK + Pixel clock in picoseconds + +left:LEFT == LCCR1_BLW + 1 +right:RIGHT == LCCR1_ELW + 1 +hsynclen:HSYNC == LCCR1_HSW + 1 +upper:UPPER == LCCR2_BFW +lower:LOWER == LCCR2_EFR +vsynclen:VSYNC == LCCR2_VSW + 1 + Display margins and sync times + +color | mono => LCCR0_CMS + umm... + +active | passive => LCCR0_PAS + Active (TFT) or Passive (STN) display + +single | dual => LCCR0_SDS + Single or dual panel passive display + +4pix | 8pix => LCCR0_DPD + 4 or 8 pixel monochrome single panel data + +hsync:HSYNC +vsync:VSYNC + Horizontal and vertical sync. 0 => active low, 1 => active + high. + +dpc:DPC + Double pixel clock. 1=>true, 0=>false + +outputen:POLARITY + Output Enable Polarity. 0 => active low, 1 => active high + +pixclockpol:POLARITY + pixel clock polarity + 0 => falling edge, 1 => rising edge diff -Nru a/Documentation/filesystems/befs.txt b/Documentation/filesystems/befs.txt --- a/Documentation/filesystems/befs.txt Tue May 18 23:38:07 2004 +++ b/Documentation/filesystems/befs.txt Tue May 18 23:38:07 2004 @@ -17,8 +17,8 @@ AUTHOR ===== -Current maintainer: Will Dyson -Has been working on the code since Aug 13, 2001. See the changelog for +The largest part of the code written by Will Dyson +He has been working on the code since Aug 13, 2001. See the changelog for details. Original Author: Makoto Kato @@ -26,6 +26,8 @@ Does anyone know of a more current email address for Makoto? He doesn't respond to the address given above... + +Current maintainer: Sergey S. Kostyliov WHAT IS THIS DRIVER? ================== diff -Nru a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt --- a/Documentation/filesystems/ntfs.txt Tue May 18 23:38:07 2004 +++ b/Documentation/filesystems/ntfs.txt Tue May 18 23:38:07 2004 @@ -273,6 +273,13 @@ Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. +2.1.11: + - Driver internal cleanups. +2.1.10: + - Force read-only (re)mounting of volumes with unsupported volume + flags and various cleanups. +2.1.9: + - Fix two bugs in handling of corner cases in the decompression engine. 2.1.8: - Read the $MFT mirror and compare it to the $MFT and if the two do not match, force a read-only mount and do not allow read-write remounts. diff -Nru a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt --- a/Documentation/filesystems/proc.txt Tue May 18 23:38:06 2004 +++ b/Documentation/filesystems/proc.txt Tue May 18 23:38:06 2004 @@ -1208,6 +1208,14 @@ and thrash the system to death, so large and/or important servers will want to set this value to 0. +nr_hugepages and hugetlb_shm_group +---------------------------------- + +nr_hugepages configures number of hugetlb page reserved for the system. + +hugetlb_shm_group contains group id that is allowed to create SysV shared +memory segment using hugetlb page. + 2.5 /proc/sys/dev - Device specific parameters ---------------------------------------------- @@ -1848,10 +1856,3 @@ command to write value into these files, thereby changing the default settings of the kernel. ------------------------------------------------------------------------------ - - - - - - - diff -Nru a/Documentation/i2c/porting-clients b/Documentation/i2c/porting-clients --- a/Documentation/i2c/porting-clients Tue May 18 23:38:06 2004 +++ b/Documentation/i2c/porting-clients Tue May 18 23:38:06 2004 @@ -62,9 +62,9 @@ patch to the Documentation/i2c/sysfs-interface file. * [Attach] For I2C drivers, the attach function should make sure - that the adapter's class has I2C_ADAP_CLASS_SMBUS, using the + that the adapter's class has I2C_CLASS_HWMON, using the following construct: - if (!(adapter->class & I2C_ADAP_CLASS_SMBUS)) + if (!(adapter->class & I2C_CLASS_HWMON)) return 0; ISA-only drivers of course don't need this. diff -Nru a/Documentation/laptop-mode.txt b/Documentation/laptop-mode.txt --- a/Documentation/laptop-mode.txt Tue May 18 23:38:08 2004 +++ b/Documentation/laptop-mode.txt Tue May 18 23:38:08 2004 @@ -69,12 +69,10 @@ * If you have your filesystems listed as type "auto" in fstab, like I did, then the control script will not recognize them as filesystems that need remounting. -* If you have XFS, make SURE that you set the XFS_HZ value in the control script - correctly, to the value of HZ of your running kernel. Laptop mode will not - work correctly if it is set too low, and you may lose data if it is set too - high. The reason for this problem is that XFS does not export its sysctl - variables in centisecs (like most other subsystems do) but in "jiffies", - which is an internal kernel measure. Once this is fixed things will get better. +* It has been reported that some versions of the mutt mail client use file access + times to determine whether a folder contains new mail. If you use mutt and + experience this, you must disable the noatime remounting in the control script + by setting DO_REMOUNT_NOATIME=0. The details @@ -295,6 +293,9 @@ # Shall we remount journaled fs. with appropiate commit interval? (1=yes) DO_REMOUNTS=1 +# And shall we add the "noatime" option to that as well? (1=yes) +DO_REMOUNT_NOATIME=1 + # age time, in seconds. should be put into a sysconfig file MAX_AGE=600 @@ -319,11 +320,15 @@ DEF_DIRTY_RATIO=40 DEF_XFS_AGE_BUFFER=15 DEF_XFS_SYNC_INTERVAL=30 +DEF_XFS_BUFD_INTERVAL=1 -# This must be adjusted manually to the value of HZ in the running kernel, -# until the XFS people change their external interfaces to work in centisecs -# like the rest of the external world. Unfortunately this cannot be automated. :( -XFS_HZ=1000 +# This must be adjusted manually to the value of HZ in the running kernel +# on 2.4, until the XFS people change their 2.4 external interfaces to work in +# centisecs. This can be automated, but it's a work in progress that still needs +# some fixes. On 2.6 kernels, XFS uses USER_HZ instead of HZ for external +# interfaces, and that is currently always set to 100. So you don't need to +# change this on 2.6. +XFS_HZ=100 if [ ! -e /proc/sys/vm/laptop_mode ]; then echo "Kernel is not patched with laptop_mode patch." @@ -335,6 +340,10 @@ exit 1 fi +if [ $DO_REMOUNT_NOATIME -eq 1 ]; then + NOATIME_OPT=",noatime" +fi + case "$1" in start) AGE=$((100*$MAX_AGE)) @@ -342,19 +351,29 @@ echo -n "Starting laptop_mode" if [ -d /proc/sys/vm/pagebuf ] ; then + # (For 2.4 and early 2.6.) # This only needs to be set, not reset -- it is only used when # laptop mode is enabled. echo $XFS_AGE > /proc/sys/vm/pagebuf/lm_flush_age echo $XFS_AGE > /proc/sys/fs/xfs/lm_sync_interval elif [ -f /proc/sys/fs/xfs/lm_age_buffer ] ; then + # (A couple of early 2.6 laptop mode patches had these.) # The same goes for these. echo $XFS_AGE > /proc/sys/fs/xfs/lm_age_buffer echo $XFS_AGE > /proc/sys/fs/xfs/lm_sync_interval elif [ -f /proc/sys/fs/xfs/age_buffer ] ; then + # (2.6.6) # But not for these -- they are also used in normal # operation. echo $XFS_AGE > /proc/sys/fs/xfs/age_buffer echo $XFS_AGE > /proc/sys/fs/xfs/sync_interval + elif [ -f /proc/sys/fs/xfs/age_buffer_centisecs ] ; then + # (2.6.7 upwards) + # And not for these either. These are in centisecs, + # not USER_HZ, so we have to use $AGE, not $XFS_AGE. + echo $AGE > /proc/sys/fs/xfs/age_buffer_centisecs + echo $AGE > /proc/sys/fs/xfs/xfssyncd_centisecs + echo 3000 > /proc/sys/fs/xfs/xfsbufd_centisecs fi case "$KLEVEL" in @@ -376,10 +395,10 @@ case "$FST" in "ext3"|"reiserfs") PARSEDOPTS="$(parse_mount_opts commit "$OPTS")" - mount $DEV -t $FST $MP -o remount,$PARSEDOPTS,commit=$MAX_AGE,noatime + mount $DEV -t $FST $MP -o remount,$PARSEDOPTS,commit=$MAX_AGE$NOATIME_OPT ;; "xfs") - mount $DEV -t $FST $MP -o remount,$OPTS,noatime + mount $DEV -t $FST $MP -o remount,$OPTS$NOATIME_OPT ;; esac if [ -b $DEV ] ; then @@ -395,9 +414,14 @@ echo -n "Stopping laptop_mode" echo "0" > /proc/sys/vm/laptop_mode if [ -f /proc/sys/fs/xfs/age_buffer ] && [ ! -f /proc/sys/fs/xfs/lm_age_buffer ] ; then - # These need to be restored though, if there are no lm_*. + # These need to be restored, if there are no lm_*. echo "$(($XFS_HZ*$DEF_XFS_AGE_BUFFER))" > /proc/sys/fs/xfs/age_buffer echo "$(($XFS_HZ*$DEF_XFS_SYNC_INTERVAL))" > /proc/sys/fs/xfs/sync_interval + elif [ -f /proc/sys/fs/xfs/age_buffer_centisecs ] ; then + # These need to be restored as well. + echo "$((100*$DEF_XFS_AGE_BUFFER))" > /proc/sys/fs/xfs/age_buffer_centisecs + echo "$((100*$DEF_XFS_SYNC_INTERVAL))" > /proc/sys/fs/xfs/xfssyncd_centisecs + echo "$((100*$DEF_XFS_BUFD_INTERVAL))" > /proc/sys/fs/xfs/xfsbufd_centisecs fi case "$KLEVEL" in "2.4") @@ -473,7 +497,7 @@ case $status in "on-line") echo "Setting HD spindown to 2 hours" - /sbin/laptop-mode stop + /sbin/laptop_mode stop /sbin/hdparm -S $ACAD_HD /dev/hda > /dev/null 2>&1 /sbin/hdparm -B 255 /dev/hda > /dev/null 2>&1 #echo -n $ACAD_CPU:$ACAD_THR > /proc/acpi/processor/CPU0/limit @@ -481,7 +505,7 @@ ;; "off-line") echo "Setting HD spindown to 20 seconds" - /sbin/laptop-mode start + /sbin/laptop_mode start /sbin/hdparm -S $BATT_HD /dev/hda > /dev/null 2>&1 /sbin/hdparm -B 1 /dev/hda > /dev/null 2>&1 #echo -n $BATT_CPU:$BATT_THR > /proc/acpi/processor/CPU0/limit diff -Nru a/Documentation/md.txt b/Documentation/md.txt --- a/Documentation/md.txt Tue May 18 23:38:08 2004 +++ b/Documentation/md.txt Tue May 18 23:38:08 2004 @@ -2,6 +2,8 @@ http://www..kernel.org/pub/linux/utils/raid/.... +Boot time assembly of RAID arrays +--------------------------------- You can boot with your md device with the following kernel command lines: @@ -11,6 +13,8 @@ for raid arrays with persistent superblocks md=,dev0,dev1,...,devn +or, to assemble a partitionable array: + md=d,dev0,dev1,...,devn md device no. = the number of the md device ... 0 means md0, @@ -34,7 +38,22 @@ e:\loadlin\loadlin e:\zimage root=/dev/md0 md=0,0,4,0,/dev/hdb2,/dev/hdc3 ro -------------------------------- + +Boot time autodetection of RAID arrays +-------------------------------------- + +When md is compiled into the kernel (not as module), partitions of +type 0xfd are scanned and automatically assembled into RAID arrays. +This autodetection may be suppressed with the kernel parameter +"raid=noautodetect". + +The kernel parameter "raid=partitionable" (or "raid=part") means +that all auto-detected arrays are assembled as partitionable. + + +Superblock formats +------------------ + The md driver can support a variety of different superblock formats. (It doesn't yet, but it can) @@ -82,7 +101,7 @@ Specific Rules that apply to format-0 super block arrays, and - arrays with no superblock (non-presistant). + arrays with no superblock (non-persistant). ------------------------------------------------------------- An array can be 'created' by describing the array (level, chunksize diff -Nru a/Documentation/power/swsusp.txt b/Documentation/power/swsusp.txt --- a/Documentation/power/swsusp.txt Tue May 18 23:38:05 2004 +++ b/Documentation/power/swsusp.txt Tue May 18 23:38:05 2004 @@ -123,10 +123,61 @@ replace ethernet card, resume. If you are fast your users will not even see broken connections. -Any other idea you might have tell me! +Q: Maybe I'm missing something, but why doesn't the regular io paths +work? -Contacting the author -If you have any question or any patch that solves the above or detected -problems please contact me at seasons@falcon.sch.bme.hu. I might delay -answering, sorry about that. +A: (Basically) you want to replace all kernel data with kernel data saved +on disk. How do you do that using normal i/o paths? If you'll read +"new" data 4KB at a time, you'll crash... because you still need "old" +data to do the reading, and "new" data may fit on same physical spot +in memory. +There are two solutions to this: + +* require half of memory to be free during suspend. That way you can +read "new" data onto free spots, then cli and copy + +* assume we had special "polling" ide driver that only uses memory +between 0-640KB. That way, I'd have to make sure that 0-640KB is free +during suspending, but otherwise it would work... + +Q: Does linux support ACPI S4? + +A: No. + +When swsusp was created, ACPI was not too widespread, so we tried to +avoid using ACPI-specific stuff. ACPI also is/was notoriously +buggy. These days swsusp works on APM-only i386 machines and even +without any power managment at all. Some versions also work on PPC. + +That means that machine does not enter S4 on suspend-to-disk, but +simply enters S5. That has few advantages, you can for example boot +windows on next boot, and return to your Linux session later. You +could even have few different Linuxes on your box (not sharing any +partitions), and switch between them. + +It also has disadvantages. On HP nx5000, if you unplug power cord +while machine is suspended-to-disk, Linux will fail to notice that. + +Q: My machine doesn't work with ACPI. How can I use swsusp than ? + +A: Do reboot() syscall with right parameters. Warning: glibc gets in +its way, so check with strace: + +reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, 0xd000fce2) + +(Thanks to Peter Osterlund:) + +#include +#include + +#define LINUX_REBOOT_MAGIC1 0xfee1dead +#define LINUX_REBOOT_MAGIC2 672274793 +#define LINUX_REBOOT_CMD_SW_SUSPEND 0xD000FCE2 + +int main() +{ + syscall(SYS_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, + LINUX_REBOOT_CMD_SW_SUSPEND, 0); + return 0; +} diff -Nru a/Documentation/sched-domains.txt b/Documentation/sched-domains.txt --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/Documentation/sched-domains.txt Tue May 18 23:38:09 2004 @@ -0,0 +1,55 @@ +Each CPU has a "base" scheduling domain (struct sched_domain). These are +accessed via cpu_sched_domain(i) and this_sched_domain() macros. The domain +hierarchy is built from these base domains via the ->parent pointer. ->parent +MUST be NULL terminated, and domain structures should be per-CPU as they +are locklessly updated. + +Each scheduling domain spans a number of CPUs (stored in the ->span field). +A domain's span MUST be a superset of it child's span, and a base domain +for CPU i MUST span at least i. The top domain for each CPU will generally +span all CPUs in the system although strictly it doesn't have to, but this +could lead to a case where some CPUs will never be given tasks to run unless +the CPUs allowed mask is explicitly set. A sched domain's span means "balance +process load among these CPUs". + +Each scheduling domain must have one or more CPU groups (struct sched_group) +which are organised as a circular one way linked list from the ->groups +pointer. The union of cpumasks of these groups MUST be the same as the +domain's span. The intersection of cpumasks from any two of these groups +MUST be the empty set. The group pointed to by the ->groups pointer MUST +contain the CPU to which the domain belongs. Groups may be shared among +CPUs as they contain read only data after they have been set up. + +Balancing within a sched domain occurs between groups. That is, each group +is treated as one entity. The load of a group is defined as the sum of the +load of each of its member CPUs, and only when the load of a group becomes +out of balance are tasks moved between groups. + +In kernel/sched.c, rebalance_tick is run periodically on each CPU. This +function takes its CPU's base sched domain and checks to see if has reached +its rebalance interval. If so, then it will run load_balance on that domain. +rebalance_tick then checks the parent sched_domain (if it exists), and the +parent of the parent and so forth. + +*** Implementing sched domains *** +The "base" domain will "span" the first level of the hierarchy. In the case +of SMT, you'll span all siblings of the physical CPU, with each group being +a single virtual CPU. + +In SMP, the parent of the base domain will span all physical CPUs in the +node. Each group being a single physical CPU. Then with NUMA, the parent +of the SMP domain will span the entire machine, with each group having the +cpumask of a node. Or, you could do multi-level NUMA or Opteron, for example, +might have just one domain covering its one NUMA level. + +The implementor should read comments in include/linux/sched.h: +struct sched_domain fields, SD_FLAG_*, SD_*_INIT to get an idea of +the specifics and what to tune. + +Implementors should change the line +#undef SCHED_DOMAIN_DEBUG +to +#define SCHED_DOMAIN_DEBUG +in kernel/sched.c as this enables an error checking parse of the sched domains +which should catch most possible errors (described above). It also prints out +the domain structure in a visual format. diff -Nru a/Documentation/scsi/00-INDEX b/Documentation/scsi/00-INDEX --- a/Documentation/scsi/00-INDEX Tue May 18 23:38:07 2004 +++ b/Documentation/scsi/00-INDEX Tue May 18 23:38:07 2004 @@ -62,6 +62,8 @@ - info on API between SCSI layer and low level drivers st.txt - info on scsi tape driver +sym53c500_cs.txt + - info on PCMCIA driver for Symbios Logic 53c500 based adapters sym53c8xx_2.txt - info on second generation driver for sym53c8xx based adapters tmscsim.txt diff -Nru a/Documentation/scsi/sym53c500_cs.txt b/Documentation/scsi/sym53c500_cs.txt --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/Documentation/scsi/sym53c500_cs.txt Tue May 18 23:38:09 2004 @@ -0,0 +1,23 @@ +The sym53c500_cs driver originated as an add-on to David Hinds' pcmcia-cs +package, and was written by Tom Corner (tcorner@via.at). A rewrite was +long overdue, and the current version addresses the following concerns: + + (1) extensive kernel changes between 2.4 and 2.6. + (2) deprecated PCMCIA support outside the kernel. + +All the USE_BIOS code has been ripped out. It was never used, and could +not have worked anyway. The USE_DMA code is likewise gone. Many thanks +to YOKOTA Hiroshi (nsp_cs driver) and David Hinds (qlogic_cs driver) for +the code fragments I shamelessly adapted for this work. Thanks also to +Christoph Hellwig for his patient tutelage while I stumbled about. + +The Symbios Logic 53c500 chip was used in the "newer" (circa 1997) version +of the New Media Bus Toaster PCMCIA SCSI controller. Presumably there are +other products using this chip, but I've never laid eyes (much less hands) +on one. + +Through the years, there have been a number of downloads of the pcmcia-cs +version of this driver, and I guess it worked for those users. It worked +for Tom Corner, and it works for me. Your mileage will probably vary. + +--Bob Tracy (rct@frus.com) diff -Nru a/Documentation/sound/oss/OPL3-SA b/Documentation/sound/oss/OPL3-SA --- a/Documentation/sound/oss/OPL3-SA Tue May 18 23:38:07 2004 +++ b/Documentation/sound/oss/OPL3-SA Tue May 18 23:38:07 2004 @@ -34,7 +34,7 @@ mpu_irq: This is the MPU401's IRQ. If you'd like to use the OPL3 FM Synthesizer, make sure you enable -CONFIG_YM3812 (in 'make config'). That'll build the opl3.o module. +CONFIG_SOUND_YM3812 (in 'make config'). That'll build the opl3.o module. Then a simple 'insmod opl3 io=0x388', and you now have FM Synth. diff -Nru a/Documentation/sound/oss/VIBRA16 b/Documentation/sound/oss/VIBRA16 --- a/Documentation/sound/oss/VIBRA16 Tue May 18 23:38:06 2004 +++ b/Documentation/sound/oss/VIBRA16 Tue May 18 23:38:06 2004 @@ -62,12 +62,12 @@ Or, take the hard way: -insmod souncore -insmod sound -insmod uart401 -insmod sb io=0x220 irq=5 dma=1 dma16=3 +modprobe soundcore +modprobe sound +modprobe uart401 +modprobe sb io=0x220 irq=5 dma=1 dma16=3 # do you need MIDI? -insmod opl3=0x388 +modprobe opl3=0x388 Just in case, the kernel sound support should be: diff -Nru a/Documentation/usb/mtouchusb.txt b/Documentation/usb/mtouchusb.txt --- a/Documentation/usb/mtouchusb.txt Tue May 18 23:38:09 2004 +++ b/Documentation/usb/mtouchusb.txt Tue May 18 23:38:09 2004 @@ -1,26 +1,38 @@ CHANGES -- Created based off of scanner & INSTALL from the original touchscreen +- 0.3 - Created based off of scanner & INSTALL from the original touchscreen driver on freshmeat (http://freshmeat.net/projects/3mtouchscreendriver) - Amended for linux-2.4.18, then 2.4.19 -- Complete rewrite using Linux Input in 2.6.3 +- 0.5 - Complete rewrite using Linux Input in 2.6.3 Unfortunately no calibration support at this time +- 1.4 - Multiple changes to support the EXII 5000UC and house cleaning + Changed reset from standard USB dev reset to vendor reset + Changed data sent to host from compensated to raw coordinates + Eliminated vendor/product module params + Performed multiple successfull tests with an EXII-5010UC -DRIVER NOTES: +SUPPORTED HARDWARE: + + All controllers have the Vendor: 0x0596 & Product: 0x0001 -Installation is simple, you only need to add Linux Input, Linux USB, and the -driver to the kernel. The driver can also be optionally built as a module. -If you have another MicroTouch device that you wish to experiment with -or try using this driver with, but the Vendor and Product ID's are not -coded in, don't despair. If the driver was compiled as a module, you can -pass options to the driver. Simply try: + Controller Description Part Number + ------------------------------------------------------ - /sbin/modprobe mtouchusb vendor=0x#### product=0x**** + USB Capacitive - Pearl Case 14-205 (Discontinued) + USB Capacitive - Black Case 14-124 (Discontinued) + USB Capacitive - No Case 14-206 (Discontinued) + + USB Capacitive - Pearl Case EXII-5010UC + USB Capacitive - Black Case EXII-5030UC + USB Capacitive - No Case EXII-5050UC + +DRIVER NOTES: -If it works, send me the iVendor & iProduct (or a patch) and I will add... +Installation is simple, you only need to add Linux Input, Linux USB, and the +driver to the kernel. The driver can also be optionally built as a module. This driver appears to be one of possible 2 Linux USB Input Touchscreen drivers. Although 3M produces a binary only driver available for @@ -28,53 +40,28 @@ touchscreen for embedded apps using QTEmbedded, DirectFB, etc. So I feel the logical choice is to use Linux Imput. -A little info about the MicroTouch USB controller (14-206): - -Y is inverted, and the device has a total possible resolution of 0 - 65535. - -Y is inverted by the driver by: +Currently there is no way to calibrate the device via this driver. Even if +the device could be calibrated, the driver pulls to raw coordinate data from +the controller. This means calibration must be performed within the +userspace. + +The controller screen resolution is now 0 to 16384 for both X and Y reporting +the raw touch data. This is the same for the old and new capacitive USB +controllers. + +Perhaps at some point an abstract function will be placed into evdev so +generic functions like calibrations, resets, and vendor information can be +requested from the userspace (And the drivers would handle the vendor specific +tasks). - input.absmin[ABS_Y] = MTOUCHUSB_MAX_YC; - input.absmax[ABS_Y] = MTOUCHUSB_MIN_YC; - -absmin & absmax are also used to scale the data, sine it is rather high -resolution. - - ---------------touch screen area----------------- - I MicroTouch (xmax,ymax) @I - I X I - I ########visible monitor area############## I - I #@ (xmin,ymin) # I - I # # I - I # # I - I # # I - I # # I - I # # I - I Y # # I - I # # I - I # # I - I # # I - I # # I - I # # I - I # (xmax,ymax) @# I - I ########################################## I - I I - I@ MicroTouch (xmin,ymin) I - ------------------------------------------------- - -Currently there is no way to calibrate the device via this driver. Perhaps -at some point an abstract function will be placed into evdev so generic -functions like calibrations, resets, and vendor information can be requested -(And the drivers would handle the vendor specific tasks). - -ADDITIONAL INFORMATION/UPDATES: +ADDITIONAL INFORMATION/UPDATES/X CONFIGURATION EXAMPLE: http://groomlakelabs.com/grandamp/code/microtouch/ TODO: Implement a control urb again to handle requests to and from the device -such as calibration, etc. +such as calibration, etc once/if it becomes available. DISCLAMER: @@ -83,3 +70,7 @@ http://www.3m.com/3MTouchSystems/downloads/ +THANKS: + +A huge thank you to 3M Touch Systems for the EXII-5010UC controllers for +testing! diff -Nru a/Documentation/vm/hugetlbpage.txt b/Documentation/vm/hugetlbpage.txt --- a/Documentation/vm/hugetlbpage.txt Tue May 18 23:38:05 2004 +++ b/Documentation/vm/hugetlbpage.txt Tue May 18 23:38:05 2004 @@ -91,9 +91,12 @@ used to change the file attributes on hugetlbfs. Also, it is important to note that no such mount command is required if the -applications are going to use only shmat/shmget system calls. It is possible -for same or different applications to use any combination of mmaps and shm* -calls. Though the mount of filesystem will be required for using mmaps. +applications are going to use only shmat/shmget system calls. Users who +wish to use hugetlb page via shared memory segment should be a member of +a supplementary group and system admin needs to configure that gid into +/proc/sys/vm/hugetlb_shm_group. It is possible for same or different +applications to use any combination of mmaps and shm* calls. Though the +mount of filesystem will be required for using mmaps. /* Example of using hugepage in user application using Sys V shared memory * system calls. In this example, app is requesting memory of size 256MB that diff -Nru a/MAINTAINERS b/MAINTAINERS --- a/MAINTAINERS Tue May 18 23:38:08 2004 +++ b/MAINTAINERS Tue May 18 23:38:08 2004 @@ -168,10 +168,8 @@ AACRAID SCSI RAID DRIVER P: Adaptec OEM Raid Solutions -M: linux-aacraid-devel@dell.com -L: linux-aacraid-devel@dell.com -L: linux-aacraid-announce@dell.com -W: http://domsch.com/linux +L: linux-scsi@vger.kernel.org +W: http://linux.dell.com/storage.shtml S: Supported ACPI @@ -574,14 +572,12 @@ S: Maintained CYCLADES ASYNC MUX DRIVER -P: Henrique Gobbi -M: henrique@cyclades.com +M: async@cyclades.com W: http://www.cyclades.com/ S: Supported CYCLADES PC300 DRIVER -P: Henrique Gobbi -M: henrique@cyclades.com +M: pc300@cyclades.com W: http://www.cyclades.com/ S: Supported @@ -976,6 +972,11 @@ W: http://www.uni-mainz.de/~langm000/linux.html S: Maintained +IBM Power Linux RAID adapter +P: Brian King +M: brking@us.ibm.com +S: Supported + IBM ServeRAID RAID DRIVER P: Jack Hammer P: Dave Jeffery @@ -1228,6 +1229,13 @@ L: linux-scsi@vger.kernel.org S: Maintained +LEGO USB Tower driver +P: Juergen Stuber +M: starblue@users.sourceforge.net +L: legousb-devel@lists.sourceforge.net +W: http://legousb.sourceforge.net/ +S: Maintained + LINUX FOR IBM pSERIES (RS/6000) P: Paul Mackerras M: paulus@au.ibm.com @@ -1801,6 +1809,12 @@ L: linux-kernel@vger.kernel.org (kernel issues) L: selinux@tycho.nsa.gov (general discussion) W: http://www.nsa.gov/selinux +S: Supported + +SERIAL ATA (SATA) SUBSYSTEM: +P: Jeff Garzik +M: jgarzik@pobox.com +L: linux-ide@vger.kernel.org S: Supported SGI SN-IA64 (Altix) SERIAL CONSOLE DRIVER diff -Nru a/Makefile b/Makefile --- a/Makefile Tue May 18 23:38:08 2004 +++ b/Makefile Tue May 18 23:38:08 2004 @@ -1001,6 +1001,8 @@ -name '*.[chS]' -print; \ find arch/$(ARCH) $(RCS_FIND_IGNORE) \ -name '*.[chS]' -print; \ + find security/selinux/include $(RCS_FIND_IGNORE) \ + -name '*.[chS]' -print; \ find include $(RCS_FIND_IGNORE) \ \( -name config -o -name 'asm-*' \) -prune \ -o -name '*.[chS]' -print; \ @@ -1056,6 +1058,9 @@ find * $(RCS_FIND_IGNORE) \ -name '*.[hcS]' -type f -print | sort \ | xargs $(PERL) -w scripts/checkversion.pl + +buildcheck: + $(PERL) scripts/reference_discarded.pl endif #ifeq ($(config-targets),1) endif #ifeq ($(mixed-targets),1) diff -Nru a/arch/alpha/kernel/module.c b/arch/alpha/kernel/module.c --- a/arch/alpha/kernel/module.c Tue May 18 23:38:05 2004 +++ b/arch/alpha/kernel/module.c Tue May 18 23:38:05 2004 @@ -234,6 +234,10 @@ value was resolved from somewhere else. */ if (sym->st_shndx == SHN_UNDEF) goto reloc_overflow; + if ((sym->st_other & STO_ALPHA_STD_GPLOAD) == + STO_ALPHA_STD_GPLOAD) + /* Omit the prologue. */ + value += 8; /* FALLTHRU */ case R_ALPHA_BRADDR: value -= (u64)location + 4; diff -Nru a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c --- a/arch/alpha/kernel/process.c Tue May 18 23:38:09 2004 +++ b/arch/alpha/kernel/process.c Tue May 18 23:38:09 2004 @@ -510,12 +510,6 @@ return 0; } -/* - * These bracket the sleeping functions.. - */ -#define first_sched ((unsigned long) scheduling_functions_start_here) -#define last_sched ((unsigned long) scheduling_functions_end_here) - unsigned long get_wchan(struct task_struct *p) { @@ -534,7 +528,7 @@ */ pc = thread_saved_pc(p); - if (pc >= first_sched && pc < last_sched) { + if (in_sched_functions(pc)) { schedule_frame = ((unsigned long *)p->thread_info->pcb.ksp)[6]; return ((unsigned long *)schedule_frame)[12]; } diff -Nru a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c --- a/arch/alpha/kernel/smp.c Tue May 18 23:38:06 2004 +++ b/arch/alpha/kernel/smp.c Tue May 18 23:38:06 2004 @@ -820,6 +820,9 @@ unsigned long timeout; int num_cpus_to_call; + /* Can deadlock when called with interrupts disabled */ + WARN_ON(irqs_disabled()); + data.func = func; data.info = info; data.wait = wait; diff -Nru a/arch/alpha/kernel/time.c b/arch/alpha/kernel/time.c --- a/arch/alpha/kernel/time.c Tue May 18 23:38:07 2004 +++ b/arch/alpha/kernel/time.c Tue May 18 23:38:07 2004 @@ -45,6 +45,7 @@ #include #include #include +#include #include #include @@ -254,12 +255,11 @@ * arch/i386/time.c. */ -#define PIC_TICK_RATE 1193180UL #define CALIBRATE_LATCH 0xffff #define TIMEOUT_COUNT 0x100000 static unsigned long __init -calibrate_cc_with_pic(void) +calibrate_cc_with_pit(void) { int cc, count = 0; @@ -287,7 +287,7 @@ if (count <= 1 || count == TIMEOUT_COUNT) return 0; - return ((long)cc * PIC_TICK_RATE) / (CALIBRATE_LATCH + 1); + return ((long)cc * PIT_TICK_RATE) / (CALIBRATE_LATCH + 1); } /* The Linux interpretation of the CMOS clock register contents: @@ -313,7 +313,7 @@ /* Calibrate CPU clock -- attempt #1. */ if (!est_cycle_freq) - est_cycle_freq = validate_cc_value(calibrate_cc_with_pic()); + est_cycle_freq = validate_cc_value(calibrate_cc_with_pit()); cc1 = rpcc_after_update_in_progress(); diff -Nru a/arch/arm/Kconfig b/arch/arm/Kconfig --- a/arch/arm/Kconfig Tue May 18 23:38:07 2004 +++ b/arch/arm/Kconfig Tue May 18 23:38:07 2004 @@ -111,6 +111,9 @@ config ARCH_IOP3XX bool "IOP3xx-based" +config ARCH_IXP4XX + bool "IXP4xx-based" + config ARCH_L7200 bool "LinkUp-L7200" help @@ -170,6 +173,8 @@ source "arch/arm/mach-iop3xx/Kconfig" +source "arch/arm/mach-ixp4xx/Kconfig" + source "arch/arm/mach-pxa/Kconfig" source "arch/arm/mach-sa1100/Kconfig" @@ -222,7 +227,7 @@ config DMABOUNCE bool - depends on SA1111 + depends on SA1111 || ARCH_IXP4XX default y source arch/arm/mm/Kconfig @@ -252,7 +257,7 @@ # Now handle the bus types config PCI bool "PCI support" if ARCH_INTEGRATOR_AP - default y if ARCH_FTVPCI || ARCH_SHARK || FOOTBRIDGE_HOST || ARCH_IOP3XX + default y if ARCH_FTVPCI || ARCH_SHARK || FOOTBRIDGE_HOST || ARCH_IOP3XX || ARCH_IXP4XX help Find out whether you have a PCI motherboard. PCI is the name of a bus system, i.e. the way the CPU talks to the other stuff inside @@ -791,8 +796,8 @@ before it is used. config DEBUG_S3C2410_UART - int depends on DEBUG_LL && ARCH_S3C2410 + int "S3C2410 UART to use for low-level debug" default "0" help Choice for UART for kernel low-level using S3C2410 UARTS, diff -Nru a/arch/arm/Makefile b/arch/arm/Makefile --- a/arch/arm/Makefile Tue May 18 23:38:06 2004 +++ b/arch/arm/Makefile Tue May 18 23:38:06 2004 @@ -92,6 +92,7 @@ textaddr-$(CONFIG_ARCH_FORTUNET) := 0xc0008000 machine-$(CONFIG_ARCH_IOP3XX) := iop3xx machine-$(CONFIG_ARCH_ADIFCC) := adifcc + machine-$(CONFIG_ARCH_IXP4XX) := ixp4xx machine-$(CONFIG_ARCH_OMAP) := omap machine-$(CONFIG_ARCH_S3C2410) := s3c2410 machine-$(CONFIG_ARCH_LH7A40X) := lh7a40x diff -Nru a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile --- a/arch/arm/boot/Makefile Tue May 18 23:38:05 2004 +++ b/arch/arm/boot/Makefile Tue May 18 23:38:05 2004 @@ -51,6 +51,8 @@ params_phys-$(CONFIG_ARCH_IOP3XX) := 0xa0000100 zreladdr-$(CONFIG_ARCH_ADIFCC) := 0xc0008000 params_phys-$(CONFIG_ARCH_ADIFCC) := 0xc0000100 + zreladdr-$(CONFIG_ARCH_IXP4XX) := 0x00008000 +params-phys-$(CONFIG_ARCH_IXP4XX) := 0x00000100 zreladdr-$(CONFIG_ARCH_OMAP) := 0x10008000 params_phys-$(CONFIG_ARCH_OMAP) := 0x10000100 initrd_phys-$(CONFIG_ARCH_OMAP) := 0x10800000 diff -Nru a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S --- a/arch/arm/boot/compressed/head.S Tue May 18 23:38:09 2004 +++ b/arch/arm/boot/compressed/head.S Tue May 18 23:38:09 2004 @@ -73,6 +73,12 @@ .macro writeb, rb str \rb, [r3, #0x14] @ UTDR .endm +#elif defined(CONFIG_ARCH_IXP4XX) + .macro loadsp, rb + mov \rb, #0xc8000000 + .endm + .macro writeb, rb + str \rb, [r3, #0] #elif defined(CONFIG_ARCH_LH7A40X) .macro loadsp, rb ldr \rb, =0x80000700 @ UART2 UARTBASE @@ -176,7 +182,7 @@ ldmia r0, {r1, r2, r3, r4, r5, r6, ip, sp} subs r0, r0, r1 @ calculate the delta offset - @ if delta is zero, we're + @ if delta is zero, we are beq not_relocated @ running at the address we @ were linked at. diff -Nru a/arch/arm/configs/ixp4xx_defconfig b/arch/arm/configs/ixp4xx_defconfig --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/configs/ixp4xx_defconfig Tue May 18 23:38:09 2004 @@ -0,0 +1,1081 @@ +# +# Automatically generated make config: don't edit +# +CONFIG_ARM=y +CONFIG_MMU=y +CONFIG_UID16=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_CLEAN_COMPILE=y +CONFIG_STANDALONE=y +CONFIG_BROKEN_ON_SMP=y + +# +# General setup +# +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_HOTPLUG is not set +# CONFIG_IKCONFIG is not set +CONFIG_EMBEDDED=y +CONFIG_KALLSYMS=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y + +# +# Loadable module support +# +CONFIG_MODULES=y +# CONFIG_MODULE_UNLOAD is not set +CONFIG_OBSOLETE_MODPARM=y +CONFIG_MODVERSIONS=y +CONFIG_KMOD=y + +# +# System Type +# +# CONFIG_ARCH_ADIFCC is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_IOP3XX is not set +CONFIG_ARCH_IXP4XX=y +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_VERSATILE_PB is not set + +# +# CLPS711X/EP721X Implementations +# + +# +# Epxa10db +# + +# +# Footbridge Implementations +# + +# +# IOP3xx Implementation Options +# +# CONFIG_ARCH_IOP310 is not set +# CONFIG_ARCH_IOP321 is not set + +# +# IOP3xx Chipset Features +# +CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y + +# +# Intel IXP4xx Implementation Options +# + +# +# IXP4xx Platforms +# +CONFIG_ARCH_IXDP425=y +CONFIG_ARCH_IXCDP1100=y +CONFIG_ARCH_PRPMC1100=y +CONFIG_ARCH_ADI_COYOTE=y +# CONFIG_ARCH_AVILA is not set +CONFIG_ARCH_IXDP4XX=y + +# +# IXP4xx Options +# +# CONFIG_IXP4XX_INDIRECT_PCI is not set + +# +# Intel PXA250/210 Implementations +# + +# +# SA11x0 Implementations +# + +# +# TI OMAP Implementations +# + +# +# OMAP Core Type +# + +# +# OMAP Board Type +# + +# +# OMAP Feature Selections +# + +# +# S3C2410 Implementations +# + +# +# LH7A40X Implementations +# +CONFIG_DMABOUNCE=y + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_XSCALE=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_MINICACHE=y + +# +# Processor Features +# +# CONFIG_ARM_THUMB is not set +CONFIG_CPU_BIG_ENDIAN=y +CONFIG_XSCALE_PMU=y + +# +# General setup +# +CONFIG_PCI=y +# CONFIG_ZBOOT_ROM is not set +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_PCI_LEGACY_PROC=y +CONFIG_PCI_NAMES=y + +# +# At least one math emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Generic Driver Options +# +# CONFIG_DEBUG_DRIVER is not set +CONFIG_PM=y +# CONFIG_PREEMPT is not set +CONFIG_APM=y +# CONFIG_ARTHUR is not set +CONFIG_CMDLINE="console=ttyS0,115200 ip=bootp root=/dev/nfs" +CONFIG_ALIGNMENT_TRAP=y + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_REDBOOT_PARTS=y +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_CFI_INTELEXT=y +# CONFIG_MTD_CFI_AMDSTD is not set +# CONFIG_MTD_CFI_STAA is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set + +# +# Mapping drivers for chip access +# +CONFIG_MTD_COMPLEX_MAPPINGS=y +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_ARM_INTEGRATOR is not set +CONFIG_MTD_IXP4XX=y +# CONFIG_MTD_EDB7312 is not set +# CONFIG_MTD_PCI is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLKMTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +CONFIG_MTD_NAND=m +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +CONFIG_MTD_NAND_IDS=m + +# +# Plug and Play support +# + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_CARMEL is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_BLK_DEV_INITRD=y + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Networking support +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=m +CONFIG_PACKET_MMAP=y +CONFIG_NETLINK_DEV=m +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_FWMARK=y +CONFIG_IP_ROUTE_NAT=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_TOS=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set + +# +# IP: Virtual Server Configuration +# +CONFIG_IP_VS=m +CONFIG_IP_VS_DEBUG=y +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +# CONFIG_IP_VS_PROTO_TCP is not set +# CONFIG_IP_VS_PROTO_UDP is not set +# CONFIG_IP_VS_PROTO_ESP is not set +# CONFIG_IP_VS_PROTO_AH is not set + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +# CONFIG_IP_VS_SED is not set +# CONFIG_IP_VS_NQ is not set + +# +# IPVS application helper +# +# CONFIG_IPV6 is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_BRIDGE_NETFILTER=y + +# +# IP: Netfilter Configuration +# +CONFIG_IP_NF_CONNTRACK=m +CONFIG_IP_NF_FTP=m +CONFIG_IP_NF_IRC=m +# CONFIG_IP_NF_TFTP is not set +# CONFIG_IP_NF_AMANDA is not set +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_LIMIT=m +# CONFIG_IP_NF_MATCH_IPRANGE is not set +CONFIG_IP_NF_MATCH_MAC=m +# CONFIG_IP_NF_MATCH_PKTTYPE is not set +CONFIG_IP_NF_MATCH_MARK=m +CONFIG_IP_NF_MATCH_MULTIPORT=m +CONFIG_IP_NF_MATCH_TOS=m +# CONFIG_IP_NF_MATCH_RECENT is not set +# CONFIG_IP_NF_MATCH_ECN is not set +# CONFIG_IP_NF_MATCH_DSCP is not set +CONFIG_IP_NF_MATCH_AH_ESP=m +CONFIG_IP_NF_MATCH_LENGTH=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_MATCH_TCPMSS=m +# CONFIG_IP_NF_MATCH_HELPER is not set +CONFIG_IP_NF_MATCH_STATE=m +# CONFIG_IP_NF_MATCH_CONNTRACK is not set +CONFIG_IP_NF_MATCH_OWNER=m +# CONFIG_IP_NF_MATCH_PHYSDEV is not set +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_REDIRECT=m +# CONFIG_IP_NF_TARGET_NETMAP is not set +# CONFIG_IP_NF_TARGET_SAME is not set +CONFIG_IP_NF_NAT_LOCAL=y +CONFIG_IP_NF_NAT_SNMP_BASIC=m +CONFIG_IP_NF_NAT_IRC=m +CONFIG_IP_NF_NAT_FTP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_TOS=m +# CONFIG_IP_NF_TARGET_ECN is not set +# CONFIG_IP_NF_TARGET_DSCP is not set +CONFIG_IP_NF_TARGET_MARK=m +# CONFIG_IP_NF_TARGET_CLASSIFY is not set +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_NF_TARGET_TCPMSS=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +# CONFIG_IP_NF_ARP_MANGLE is not set +CONFIG_IP_NF_COMPAT_IPCHAINS=m +CONFIG_IP_NF_COMPAT_IPFWADM=m +# CONFIG_IP_NF_RAW is not set + +# +# Bridge: Netfilter Configuration +# +# CONFIG_BRIDGE_NF_EBTABLES is not set +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set +CONFIG_ATM=y +CONFIG_ATM_CLIP=y +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_BRIDGE=m +CONFIG_VLAN_8021Q=m +# CONFIG_DECNET is not set +CONFIG_LLC=m +# CONFIG_LLC2 is not set +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=y +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +CONFIG_IPDDP_DECAP=y +CONFIG_X25=m +CONFIG_LAPB=m +# CONFIG_NET_DIVERT is not set +CONFIG_ECONET=m +CONFIG_ECONET_AUNUDP=y +CONFIG_ECONET_NATIVE=y +CONFIG_WAN_ROUTER=m +# CONFIG_NET_FASTROUTE is not set +# CONFIG_NET_HW_FLOWCONTROL is not set + +# +# QoS and/or fair queueing +# +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +# CONFIG_NET_SCH_HFSC is not set +CONFIG_NET_SCH_CSZ=m +# CONFIG_NET_SCH_ATM is not set +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +# CONFIG_NET_SCH_DELAY is not set +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_QOS=y +CONFIG_NET_ESTIMATOR=y +CONFIG_NET_CLS=y +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_POLICE=y + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +CONFIG_NETDEVICES=y +CONFIG_DUMMY=y +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_ETHERTAP is not set + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_NET_VENDOR_3COM is not set + +# +# Tulip family network device support +# +# CONFIG_NET_TULIP is not set +# CONFIG_HP100 is not set +CONFIG_NET_PCI=y +# CONFIG_PCNET32 is not set +# CONFIG_AMD8111_ETH is not set +# CONFIG_ADAPTEC_STARFIRE is not set +# CONFIG_B44 is not set +# CONFIG_FORCEDETH is not set +# CONFIG_DGRS is not set +CONFIG_EEPRO100=y +# CONFIG_EEPRO100_PIO is not set +# CONFIG_E100 is not set +# CONFIG_FEALNX is not set +# CONFIG_NATSEMI is not set +# CONFIG_NE2K_PCI is not set +# CONFIG_8139CP is not set +# CONFIG_8139TOO is not set +# CONFIG_SIS900 is not set +# CONFIG_EPIC100 is not set +# CONFIG_SUNDANCE is not set +# CONFIG_TLAN is not set +# CONFIG_VIA_RHINE is not set + +# +# Ethernet (1000 Mbit) +# +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SK98LIN is not set +# CONFIG_TIGON3 is not set + +# +# Ethernet (10000 Mbit) +# +# CONFIG_IXGB is not set +# CONFIG_S2IO is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +CONFIG_NET_RADIO=y + +# +# Obsolete Wireless cards support (pre-802.11) +# +# CONFIG_STRIP is not set + +# +# Wireless 802.11b ISA/PCI cards support +# +# CONFIG_AIRO is not set +CONFIG_HERMES=y +# CONFIG_PLX_HERMES is not set +# CONFIG_TMD_HERMES is not set +CONFIG_PCI_HERMES=y +# CONFIG_ATMEL is not set + +# +# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support +# +CONFIG_NET_WIRELESS=y + +# +# Wan interfaces +# +CONFIG_WAN=y +# CONFIG_DSCC4 is not set +# CONFIG_LANMEDIA is not set +# CONFIG_SYNCLINK_SYNCPPP is not set +CONFIG_HDLC=m +CONFIG_HDLC_RAW=y +# CONFIG_HDLC_RAW_ETH is not set +CONFIG_HDLC_CISCO=y +CONFIG_HDLC_FR=y +CONFIG_HDLC_PPP=y +CONFIG_HDLC_X25=y +# CONFIG_PCI200SYN is not set +# CONFIG_WANXL is not set +# CONFIG_PC300 is not set +# CONFIG_FARSYNC is not set +CONFIG_DLCI=m +CONFIG_DLCI_COUNT=24 +CONFIG_DLCI_MAX=8 +CONFIG_WAN_ROUTER_DRIVERS=y +# CONFIG_CYCLADES_SYNC is not set +# CONFIG_LAPBETHER is not set +# CONFIG_X25_ASY is not set + +# +# ATM drivers +# +CONFIG_ATM_TCP=m +# CONFIG_ATM_LANAI is not set +# CONFIG_ATM_ENI is not set +# CONFIG_ATM_FIRESTREAM is not set +# CONFIG_ATM_ZATM is not set +# CONFIG_ATM_NICSTAR is not set +# CONFIG_ATM_IDT77252 is not set +# CONFIG_ATM_AMBASSADOR is not set +# CONFIG_ATM_HORIZON is not set +# CONFIG_ATM_IA is not set +# CONFIG_ATM_FORE200E_MAYBE is not set +# CONFIG_ATM_HE is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set + +# +# ATA/ATAPI/MFM/RLL support +# +CONFIG_IDE=y +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +# CONFIG_IDEDISK_STROKE is not set +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_IDE_TASK_IOCTL is not set +# CONFIG_IDE_TASKFILE_IO is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +CONFIG_BLK_DEV_IDEPCI=y +# CONFIG_IDEPCI_SHARE_IRQ is not set +# CONFIG_BLK_DEV_OFFBOARD is not set +# CONFIG_BLK_DEV_GENERIC is not set +# CONFIG_BLK_DEV_OPTI621 is not set +# CONFIG_BLK_DEV_SL82C105 is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +# CONFIG_IDEDMA_PCI_AUTO is not set +CONFIG_BLK_DEV_ADMA=y +# CONFIG_BLK_DEV_AEC62XX is not set +# CONFIG_BLK_DEV_ALI15X3 is not set +# CONFIG_BLK_DEV_AMD74XX is not set +CONFIG_BLK_DEV_CMD64X=y +# CONFIG_BLK_DEV_TRIFLEX is not set +# CONFIG_BLK_DEV_CY82C693 is not set +# CONFIG_BLK_DEV_CS5520 is not set +# CONFIG_BLK_DEV_CS5530 is not set +# CONFIG_BLK_DEV_HPT34X is not set +CONFIG_BLK_DEV_HPT366=y +# CONFIG_BLK_DEV_SC1200 is not set +# CONFIG_BLK_DEV_PIIX is not set +# CONFIG_BLK_DEV_NS87415 is not set +# CONFIG_BLK_DEV_PDC202XX_OLD is not set +CONFIG_BLK_DEV_PDC202XX_NEW=y +# CONFIG_PDC202XX_FORCE is not set +# CONFIG_BLK_DEV_SVWKS is not set +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +# CONFIG_BLK_DEV_TRM290 is not set +# CONFIG_BLK_DEV_VIA82CXXX is not set +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_IDEDMA_IVB is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +# CONFIG_SCSI is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_IEEE1394 is not set + +# +# I2O device support +# +# CONFIG_I2O is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input I/O drivers +# +# CONFIG_GAMEPORT is not set +CONFIG_SOUND_GAMEPORT=y +# CONFIG_SERIO is not set +# CONFIG_SERIO_I8042 is not set + +# +# Input Device Drivers +# +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Character devices +# +# CONFIG_VT is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=2 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_QIC02_TAPE is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +CONFIG_IXP4XX_WATCHDOG=y + +# +# PCI-based Watchdog Cards +# +# CONFIG_PCIPCWATCHDOG is not set +# CONFIG_WDTPCI is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_GEN_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_AGP is not set +# CONFIG_DRM is not set +# CONFIG_RAW_DRIVER is not set + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y + +# +# I2C Algorithms +# +CONFIG_I2C_ALGOBIT=y +# CONFIG_I2C_ALGOPCF is not set + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_I810 is not set +# CONFIG_I2C_ISA is not set +CONFIG_I2C_IXP4XX=y +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_PROSAVAGE is not set +# CONFIG_I2C_SAVAGE4 is not set +# CONFIG_SCx200_ACB is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set +# CONFIG_I2C_VOODOO3 is not set + +# +# Hardware Sensors Chip support +# +CONFIG_I2C_SENSOR=y +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_FSCHER is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_VIA686A is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83627HF is not set + +# +# Other I2C Chip support +# +CONFIG_SENSORS_EEPROM=y +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +# CONFIG_EXT2_FS_SECURITY is not set +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +# CONFIG_EXT3_FS_SECURITY is not set +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# CONFIG_XFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +# CONFIG_FAT_FS is not set +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_SYSFS=y +# CONFIG_DEVFS_FS is not set +# CONFIG_DEVPTS_FS_XATTR is not set +CONFIG_TMPFS=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +# CONFIG_JFFS2_FS_NAND is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +# CONFIG_EXPORTFS is not set +CONFIG_SUNRPC=y +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_INTERMEZZO_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_NEC98_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_EFI_PARTITION is not set + +# +# Native Language Support +# +# CONFIG_NLS is not set + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Graphics support +# +# CONFIG_FB is not set + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# Misc devices +# + +# +# USB support +# +# CONFIG_USB is not set + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set + +# +# Kernel hacking +# +CONFIG_FRAME_POINTER=y +# CONFIG_DEBUG_USER is not set +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SLAB is not set +CONFIG_MAGIC_SYSRQ=y +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_WAITQ is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_ERRORS=y +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set +# CONFIG_DEBUG_BDI2000_XSCALE is not set + +# +# Security options +# +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Library routines +# +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/arm/configs/smdk2410_defconfig b/arch/arm/configs/smdk2410_defconfig --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/configs/smdk2410_defconfig Tue May 18 23:38:09 2004 @@ -0,0 +1,667 @@ +# +# Automatically generated make config: don't edit +# +CONFIG_ARM=y +CONFIG_MMU=y +CONFIG_UID16=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_CLEAN_COMPILE=y +CONFIG_STANDALONE=y +CONFIG_BROKEN_ON_SMP=y + +# +# General setup +# +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_HOTPLUG is not set +# CONFIG_IKCONFIG is not set +# CONFIG_EMBEDDED is not set +CONFIG_KALLSYMS=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y + +# +# Loadable module support +# +# CONFIG_MODULES is not set + +# +# System Type +# +# CONFIG_ARCH_ADIFCC is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_IOP3XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_SHARK is not set +CONFIG_ARCH_S3C2410=y +# CONFIG_ARCH_OMAP is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_VERSATILE_PB is not set + +# +# CLPS711X/EP721X Implementations +# + +# +# Epxa10db +# + +# +# Footbridge Implementations +# + +# +# IOP3xx Implementation Options +# +# CONFIG_ARCH_IOP310 is not set +# CONFIG_ARCH_IOP321 is not set + +# +# IOP3xx Chipset Features +# + +# +# Intel PXA250/210 Implementations +# + +# +# SA11x0 Implementations +# + +# +# TI OMAP Implementations +# + +# +# OMAP Core Type +# + +# +# OMAP Board Type +# + +# +# OMAP Feature Selections +# + +# +# S3C2410 Implementations +# +# CONFIG_ARCH_BAST is not set +# CONFIG_ARCH_H1940 is not set +CONFIG_ARCH_SMDK2410=y +# CONFIG_MACH_VR1000 is not set + +# +# LH7A40X Implementations +# + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_ARM920T=y +CONFIG_CPU_32v4=y +CONFIG_CPU_ABRT_EV4T=y +CONFIG_CPU_CACHE_V4WT=y +CONFIG_CPU_COPY_V4WB=y +CONFIG_CPU_TLB_V4WBI=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set + +# +# General setup +# +# CONFIG_ZBOOT_ROM is not set +CONFIG_ZBOOT_ROM_TEXT=0 +CONFIG_ZBOOT_ROM_BSS=0 + +# +# At least one math emulation must be selected +# +# CONFIG_FPE_NWFPE is not set +# CONFIG_FPE_FASTFPE is not set +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_AOUT=y +# CONFIG_BINFMT_MISC is not set + +# +# Generic Driver Options +# +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_PM is not set +# CONFIG_PREEMPT is not set +# CONFIG_ARTHUR is not set +CONFIG_CMDLINE="root=1f04 mem=32M" +CONFIG_ALIGNMENT_TRAP=y + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_PARTITIONS is not set +# CONFIG_MTD_CONCAT is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_CFI_INTELEXT=y +# CONFIG_MTD_CFI_AMDSTD is not set +# CONFIG_MTD_CFI_STAA is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_ARM_INTEGRATOR is not set +# CONFIG_MTD_EDB7312 is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLKMTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +# CONFIG_MTD_NAND is not set + +# +# Plug and Play support +# + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=4096 +# CONFIG_BLK_DEV_INITRD is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Networking support +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_PACKET is not set +# CONFIG_NETLINK_DEV is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_IPV6 is not set +# CONFIG_NETFILTER is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_FASTROUTE is not set +# CONFIG_NET_HW_FLOWCONTROL is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +# CONFIG_MII is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set + +# +# ATA/ATAPI/MFM/RLL support +# +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_SCSI is not set + +# +# Fusion MPT device support +# + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_IEEE1394 is not set + +# +# I2O device support +# + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input I/O drivers +# +# CONFIG_GAMEPORT is not set +CONFIG_SOUND_GAMEPORT=y +CONFIG_SERIO=y +# CONFIG_SERIO_I8042 is not set +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_CT82C710 is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_S3C2410=y +CONFIG_SERIAL_S3C2410_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_QIC02_TAPE is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_GEN_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_AGP is not set +# CONFIG_DRM is not set +# CONFIG_RAW_DRIVER is not set + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_MINIX_FS is not set +CONFIG_ROMFS_FS=y +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +# CONFIG_FAT_FS is not set +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_SYSFS=y +# CONFIG_DEVFS_FS is not set +# CONFIG_DEVPTS_FS_XATTR is not set +# CONFIG_TMPFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS_FS is not set +# CONFIG_JFFS2_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +# CONFIG_NFS_V3 is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +# CONFIG_EXPORTFS is not set +CONFIG_SUNRPC=y +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_INTERMEZZO_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +# CONFIG_MSDOS_PARTITION is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_NEC98_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_EFI_PARTITION is not set + +# +# Native Language Support +# +# CONFIG_NLS is not set + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Graphics support +# +CONFIG_FB=y +CONFIG_FB_VIRTUAL=y + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +# CONFIG_MDA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_PCI_CONSOLE=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y + +# +# Logo configuration +# +# CONFIG_LOGO is not set + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# Misc devices +# + +# +# USB support +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set + +# +# Kernel hacking +# +CONFIG_FRAME_POINTER=y +CONFIG_DEBUG_USER=y +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SLAB is not set +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_WAITQ is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_DEBUG_ERRORS is not set +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set +CONFIG_DEBUG_LL_PRINTK=y +CONFIG_DEBUG_S3C2410_PORT=y +CONFIG_DEBUG_S3C2410_UART=0 + +# +# Security options +# +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Library routines +# +CONFIG_CRC32=y +CONFIG_LIBCRC32C=y diff -Nru a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c --- a/arch/arm/kernel/armksyms.c Tue May 18 23:38:06 2004 +++ b/arch/arm/kernel/armksyms.c Tue May 18 23:38:06 2004 @@ -7,41 +7,16 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ -#include #include -#include #include -#include -#include -#include -#include #include #include -#include -#include -#include -#include -#include #include -#include -#include +#include #include -#include -#include -#include -#include #include #include -#include -#include - -extern void dump_thread(struct pt_regs *, struct user *); -extern int dump_fpu(struct pt_regs *, struct user_fp_struct *); -extern void inswb(unsigned int port, void *to, int len); -extern void outswb(unsigned int port, const void *to, int len); - -extern void __bad_xchg(volatile void *ptr, int size); /* * libgcc functions - functions that are used internally by the @@ -61,12 +36,9 @@ extern void __udivsi3(void); extern void __umodsi3(void); extern void __do_div64(void); -extern void abort(void); -extern void ret_from_exception(void); extern void fpundefinstr(void); extern void fp_enter(void); -extern void fp_init(union fp_state *); /* * This has a special calling convention; it doesn't @@ -88,32 +60,7 @@ EXPORT_SYMBOL_NOVERS(__backtrace); /* platform dependent support */ -EXPORT_SYMBOL(dump_thread); -EXPORT_SYMBOL(dump_fpu); EXPORT_SYMBOL(udelay); -EXPORT_SYMBOL(__ioremap); -EXPORT_SYMBOL(__iounmap); -EXPORT_SYMBOL(kernel_thread); -EXPORT_SYMBOL(system_rev); -EXPORT_SYMBOL(system_serial_low); -EXPORT_SYMBOL(system_serial_high); -#ifdef CONFIG_DEBUG_BUGVERBOSE -EXPORT_SYMBOL(__bug); -#endif -EXPORT_SYMBOL(__bad_xchg); -EXPORT_SYMBOL(__readwrite_bug); -EXPORT_SYMBOL(enable_irq); -EXPORT_SYMBOL(disable_irq); -EXPORT_SYMBOL(probe_irq_mask); -EXPORT_SYMBOL(set_irq_type); -EXPORT_SYMBOL(enable_irq_wake); -EXPORT_SYMBOL(disable_irq_wake); -EXPORT_SYMBOL(pm_idle); -EXPORT_SYMBOL(pm_power_off); -EXPORT_SYMBOL(fp_init); - - /* processor dependencies */ -EXPORT_SYMBOL(__machine_arch_type); /* networking */ EXPORT_SYMBOL(csum_partial); @@ -140,20 +87,6 @@ EXPORT_SYMBOL_NOVERS(__raw_writesl); #endif - /* address translation */ -#ifndef __virt_to_phys__is_a_macro -EXPORT_SYMBOL(__virt_to_phys); -#endif -#ifndef __phys_to_virt__is_a_macro -EXPORT_SYMBOL(__phys_to_virt); -#endif -#ifndef __virt_to_bus__is_a_macro -EXPORT_SYMBOL(__virt_to_bus); -#endif -#ifndef __bus_to_virt__is_a_macro -EXPORT_SYMBOL(__bus_to_virt); -#endif - /* string / mem functions */ EXPORT_SYMBOL_NOVERS(strcpy); EXPORT_SYMBOL_NOVERS(strncpy); @@ -227,10 +160,6 @@ EXPORT_SYMBOL(_find_next_zero_bit_be); #endif - /* elf */ -EXPORT_SYMBOL(elf_platform); -EXPORT_SYMBOL(elf_hwcap); - /* syscalls */ EXPORT_SYMBOL(sys_write); EXPORT_SYMBOL(sys_read); @@ -238,11 +167,3 @@ EXPORT_SYMBOL(sys_open); EXPORT_SYMBOL(sys_exit); EXPORT_SYMBOL(sys_wait4); - - /* semaphores */ -EXPORT_SYMBOL_NOVERS(__down_failed); -EXPORT_SYMBOL_NOVERS(__down_interruptible_failed); -EXPORT_SYMBOL_NOVERS(__down_trylock_failed); -EXPORT_SYMBOL_NOVERS(__up_wakeup); - -EXPORT_SYMBOL(get_wchan); diff -Nru a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c --- a/arch/arm/kernel/bios32.c Tue May 18 23:38:06 2004 +++ b/arch/arm/kernel/bios32.c Tue May 18 23:38:06 2004 @@ -156,6 +156,30 @@ } /* + * Same as above. The PrPMC800 carrier board for the PrPMC1100 + * card maps the host-bridge @ 00:01:00 for some reason and it + * ends up getting scanned. Note that we only want to do this + * fixup when we find the IXP4xx on a PrPMC system, which is why + * we check the machine type. We could be running on a board + * with an IXP4xx target device and we don't want to kill the + * resources in that case. + */ +static void __devinit pci_fixup_prpmc1100(struct pci_dev *dev) +{ + int i; + + if (machine_is_prpmc1100()) { + dev->class &= 0xff; + dev->class |= PCI_CLASS_BRIDGE_HOST << 8; + for (i = 0; i < PCI_NUM_RESOURCES; i++) { + dev->resource[i].start = 0; + dev->resource[i].end = 0; + dev->resource[i].flags = 0; + } + } +} + +/* * PCI IDE controllers use non-standard I/O port decoding, respect it. */ static void __devinit pci_fixup_ide_bases(struct pci_dev *dev) @@ -273,6 +297,10 @@ PCI_FIXUP_HEADER, PCI_ANY_ID, PCI_ANY_ID, pci_fixup_ide_bases + }, { + PCI_FIXUP_HEADER, + PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IXP4XX, + pci_fixup_prpmc1100 }, { 0 } }; diff -Nru a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S --- a/arch/arm/kernel/debug.S Tue May 18 23:38:06 2004 +++ b/arch/arm/kernel/debug.S Tue May 18 23:38:06 2004 @@ -465,13 +465,53 @@ beq 1001b .endm +#elif defined(CONFIG_ARCH_IXP4XX) + + .macro addruart,rx + mrc p15, 0, \rx, c1, c0 + tst \rx, #1 @ MMU enabled? + moveq \rx, #0xc8000000 + movne \rx, #0xff000000 + add \rx,\rx,#3 @ Uart regs are at off set of 3 if + @ byte writes used - Big Endian. + .endm + + .macro senduart,rd,rx + strb \rd, [\rx] + .endm + + .macro waituart,rd,rx +1002: ldrb \rd, [\rx, #0x14] + and \rd, \rd, #0x60 @ check THRE and TEMT bits + teq \rd, #0x60 + bne 1002b + .endm + + .macro busyuart,rd,rx + .endm + #elif defined(CONFIG_ARCH_OMAP) #include +#ifdef CONFIG_ARCH_OMAP730 +#define OMAP_SERIAL_REG_SHIFT 0 +#else +#define OMAP_SERIAL_REG_SHIFT 2 +#endif + /* See also __create_page_tables in head.S */ .macro addruart,rx - mov \rx, #0xff000000 + mrc p15, 0, \rx, c1, c0 + tst \rx, #1 @ MMU enabled? + moveq \rx, #0xff000000 @ physical base address + movne \rx, #0xfe000000 @ virtual base orr \rx, \rx, #0x00fb0000 +#ifdef CONFIG_OMAP_LL_DEBUG_UART3 + orr \rx, \rx, #0x00009000 @ UART 3 +#endif +#if defined(CONFIG_OMAP_LL_DEBUG_UART2) || defined(CONFIG_OMAP_LL_DEBUG_UART3) + orr \rx, \rx, #0x00000800 @ UART 2 & 3 +#endif .endm .macro senduart,rd,rx @@ -486,9 +526,6 @@ .endm .macro waituart,rd,rx -1001: ldrb \rd, [\rx, #(0x6 << OMAP_SERIAL_REG_SHIFT)] - tst \rd, #0x10 - beq 1001b .endm #elif defined(CONFIG_ARCH_S3C2410) @@ -551,7 +588,7 @@ .endm #elif defined(CONFIG_ARCH_LH7A40X) - @ It isn't known if this will be appropriate for every 40x + @ It is not known if this will be appropriate for every 40x @ board. .macro addruart,rx diff -Nru a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S --- a/arch/arm/kernel/entry-armv.S Tue May 18 23:38:06 2004 +++ b/arch/arm/kernel/entry-armv.S Tue May 18 23:38:06 2004 @@ -623,10 +623,15 @@ .endm .macro get_irqnr_and_base, irqnr, irqstat, base, tmp +#ifdef CONFIG_PXA27x + mrc p6, 0, \irqstat, c0, c0, 0 @ ICIP + mrc p6, 0, \irqnr, c1, c0, 0 @ ICMR +#else mov \base, #io_p2v(0x40000000) @ IIR Ctl = 0x40d00000 add \base, \base, #0x00d00000 ldr \irqstat, [\base, #0] @ ICIP ldr \irqnr, [\base, #4] @ ICMR +#endif ands \irqnr, \irqstat, \irqnr beq 1001f rsb \irqstat, \irqnr, #0 @@ -639,6 +644,34 @@ .macro irq_prio_table .endm +#elif defined (CONFIG_ARCH_IXP4XX) + + .macro disable_fiq + .endm + + .macro get_irqnr_and_base, irqnr, irqstat, base, tmp + ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP_OFFSET) + ldr \irqstat, [\irqstat] @ get interrupts + cmp \irqstat, #0 + beq 1002f + clz \irqnr, \irqstat + mov \base, #31 + subs \irqnr, \base, \irqnr + +/* +1001: tst \irqstat, #1 + addeq \irqnr, \irqnr, #1 + moveq \irqstat, \irqstat, lsr #1 + tsteq \irqnr, #32 + beq 1001b + teq \irqnr, #32 +*/ +1002: + .endm + + .macro irq_prio_table + .endm + #elif defined(CONFIG_ARCH_OMAP) .macro disable_fiq @@ -1219,7 +1252,7 @@ /* * Register switch for ARMv3 and ARMv4 processors - * r0 = previous thread_info, r1 = next thread_info + * r0 = previous task_struct, r1 = previous thread_info, r2 = next thread_info * previous and next are guaranteed not to be the same. */ ENTRY(__switch_to) diff -Nru a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c --- a/arch/arm/kernel/irq.c Tue May 18 23:38:05 2004 +++ b/arch/arm/kernel/irq.c Tue May 18 23:38:05 2004 @@ -47,7 +47,7 @@ #define MAX_IRQ_CNT 100000 static volatile unsigned long irq_err_count; -static spinlock_t irq_controller_lock; +static spinlock_t irq_controller_lock = SPIN_LOCK_UNLOCKED; static LIST_HEAD(irq_pending); struct irqdesc irq_desc[NR_IRQS]; @@ -103,6 +103,7 @@ list_del_init(&desc->pend); spin_unlock_irqrestore(&irq_controller_lock, flags); } +EXPORT_SYMBOL(disable_irq); /** * enable_irq - enable interrupt handling on an irq @@ -142,6 +143,7 @@ } spin_unlock_irqrestore(&irq_controller_lock, flags); } +EXPORT_SYMBOL(enable_irq); /* * Enable wake on selected irq @@ -156,6 +158,7 @@ desc->chip->wake(irq, 1); spin_unlock_irqrestore(&irq_controller_lock, flags); } +EXPORT_SYMBOL(enable_irq_wake); void disable_irq_wake(unsigned int irq) { @@ -167,6 +170,7 @@ desc->chip->wake(irq, 0); spin_unlock_irqrestore(&irq_controller_lock, flags); } +EXPORT_SYMBOL(disable_irq_wake); int show_interrupts(struct seq_file *p, void *v) { @@ -541,6 +545,7 @@ return ret; } +EXPORT_SYMBOL(set_irq_type); void set_irq_flags(unsigned int irq, unsigned int iflags) { @@ -798,6 +803,7 @@ return mask; } +EXPORT_SYMBOL(probe_irq_mask); /* * Possible return values: diff -Nru a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c --- a/arch/arm/kernel/process.c Tue May 18 23:38:09 2004 +++ b/arch/arm/kernel/process.c Tue May 18 23:38:09 2004 @@ -73,7 +73,10 @@ * The following aren't currently used. */ void (*pm_idle)(void); +EXPORT_SYMBOL(pm_idle); + void (*pm_power_off)(void); +EXPORT_SYMBOL(pm_power_off); /* * This is our default idle handler. We need to disable @@ -301,6 +304,7 @@ } void (*fp_init)(union fp_state *) = default_fp_init; +EXPORT_SYMBOL(fp_init); void flush_thread(void) { @@ -350,6 +354,7 @@ return used_math != 0; } +EXPORT_SYMBOL(dump_fpu); /* * fill in the user structure for a core dump.. @@ -378,6 +383,7 @@ dump->regs = *regs; dump->u_fpvalid = dump_fpu (regs, &dump->u_fp); } +EXPORT_SYMBOL(dump_thread); /* * Shuffle the argument into the correct register before calling the @@ -385,13 +391,15 @@ * the thread function, and r3 points to the exit function. */ extern void kernel_thread_helper(void); -asm( ".align\n" +asm( ".section .text\n" +" .align\n" " .type kernel_thread_helper, #function\n" "kernel_thread_helper:\n" " mov r0, r1\n" " mov lr, r3\n" " mov pc, r2\n" -" .size kernel_thread_helper, . - kernel_thread_helper"); +" .size kernel_thread_helper, . - kernel_thread_helper\n" +" .previous"); /* * Create a kernel thread. @@ -410,12 +418,7 @@ return do_fork(flags|CLONE_VM|CLONE_UNTRACED, 0, ®s, 0, NULL, NULL); } - -/* - * These bracket the sleeping functions.. - */ -#define first_sched ((unsigned long) scheduling_functions_start_here) -#define last_sched ((unsigned long) scheduling_functions_end_here) +EXPORT_SYMBOL(kernel_thread); unsigned long get_wchan(struct task_struct *p) { @@ -431,9 +434,10 @@ if (fp < stack_page || fp > 4092+stack_page) return 0; lr = pc_pointer (((unsigned long *)fp)[-1]); - if (lr < first_sched || lr > last_sched) + if (!in_sched_functions(lr)) return lr; fp = *(unsigned long *) (fp - 12); } while (count ++ < 16); return 0; } +EXPORT_SYMBOL(get_wchan); diff -Nru a/arch/arm/kernel/semaphore.c b/arch/arm/kernel/semaphore.c --- a/arch/arm/kernel/semaphore.c Tue May 18 23:38:06 2004 +++ b/arch/arm/kernel/semaphore.c Tue May 18 23:38:06 2004 @@ -11,6 +11,7 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ +#include #include #include #include @@ -213,3 +214,7 @@ ldmfd sp!, {r0 - r3, pc} \n\ "); +EXPORT_SYMBOL_NOVERS(__down_failed); +EXPORT_SYMBOL_NOVERS(__down_interruptible_failed); +EXPORT_SYMBOL_NOVERS(__down_trylock_failed); +EXPORT_SYMBOL_NOVERS(__up_wakeup); diff -Nru a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c --- a/arch/arm/kernel/setup.c Tue May 18 23:38:07 2004 +++ b/arch/arm/kernel/setup.c Tue May 18 23:38:07 2004 @@ -8,6 +8,7 @@ * published by the Free Software Foundation. */ #include +#include #include #include #include @@ -61,10 +62,20 @@ unsigned int processor_id; unsigned int __machine_arch_type; +EXPORT_SYMBOL(__machine_arch_type); + unsigned int system_rev; +EXPORT_SYMBOL(system_rev); + unsigned int system_serial_low; +EXPORT_SYMBOL(system_serial_low); + unsigned int system_serial_high; +EXPORT_SYMBOL(system_serial_high); + unsigned int elf_hwcap; +EXPORT_SYMBOL(elf_hwcap); + #ifdef MULTI_CPU struct processor processor; @@ -80,7 +91,10 @@ #endif unsigned char aux_device_present; + char elf_platform[ELF_PLATFORM_SIZE]; +EXPORT_SYMBOL(elf_platform); + char saved_command_line[COMMAND_LINE_SIZE]; unsigned long phys_initrd_start __initdata = 0; unsigned long phys_initrd_size __initdata = 0; diff -Nru a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c --- a/arch/arm/kernel/sys_arm.c Tue May 18 23:38:06 2004 +++ b/arch/arm/kernel/sys_arm.c Tue May 18 23:38:06 2004 @@ -12,6 +12,7 @@ * have a non-standard calling sequence on the Linux/arm * platform. */ +#include #include #include #include @@ -282,3 +283,43 @@ out: return error; } + +long execve(const char *filename, char **argv, char **envp) +{ + struct pt_regs regs; + int ret; + + memset(®s, 0, sizeof(struct pt_regs)); + ret = do_execve((char *)filename, (char __user * __user *)argv, + (char __user * __user *)envp, ®s); + if (ret < 0) + goto out; + + /* + * Save argc to the register structure for userspace. + */ + regs.ARM_r0 = ret; + + /* + * We were successful. We won't be returning to our caller, but + * instead to user space by manipulating the kernel stack. + */ + asm( "add r0, %0, %1\n\t" + "mov r1, %2\n\t" + "mov r2, %3\n\t" + "bl memmove\n\t" /* copy regs to top of stack */ + "mov r8, #0\n\t" /* not a syscall */ + "mov r9, %0\n\t" /* thread structure */ + "mov sp, r0\n\t" /* reposition stack pointer */ + "b ret_to_user" + : + : "r" (current_thread_info()), + "Ir" (THREAD_SIZE - 8 - sizeof(regs)), + "r" (®s), + "Ir" (sizeof(regs)) + : "r0", "r1", "r2", "r3", "ip", "memory"); + + out: + return ret; +} +EXPORT_SYMBOL(execve); diff -Nru a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c --- a/arch/arm/kernel/traps.c Tue May 18 23:38:06 2004 +++ b/arch/arm/kernel/traps.c Tue May 18 23:38:06 2004 @@ -495,6 +495,7 @@ __builtin_return_address(0), ptr, size); BUG(); } +EXPORT_SYMBOL(__bad_xchg); /* * A data abort trap was taken, but we did not handle the instruction. @@ -532,12 +533,14 @@ printk("\n"); *(int *)0 = 0; } +EXPORT_SYMBOL(__bug); void __readwrite_bug(const char *fn) { printk("%s called, but not implemented", fn); BUG(); } +EXPORT_SYMBOL(__readwrite_bug); void __pte_error(const char *file, int line, unsigned long val) { @@ -559,6 +562,7 @@ printk("Division by zero in kernel.\n"); dump_stack(); } +EXPORT_SYMBOL_NOVERS(__div0); void abort(void) { @@ -567,6 +571,7 @@ /* if that doesn't kill us, halt */ panic("Oops failed to kill thread"); } +EXPORT_SYMBOL(abort); void __init trap_init(void) { diff -Nru a/arch/arm/mach-footbridge/mm.c b/arch/arm/mach-footbridge/mm.c --- a/arch/arm/mach-footbridge/mm.c Tue May 18 23:38:08 2004 +++ b/arch/arm/mach-footbridge/mm.c Tue May 18 23:38:08 2004 @@ -87,6 +87,7 @@ return (res - PAGE_OFFSET) + (*CSR_PCISDRAMBASE & 0xfffffff0); } +EXPORT_SYMBOL(__virt_to_bus); unsigned long __bus_to_virt(unsigned long res) { @@ -97,5 +98,6 @@ return res; } +EXPORT_SYMBOL(__bus_to_virt); #endif diff -Nru a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/mach-ixp4xx/Kconfig Tue May 18 23:38:09 2004 @@ -0,0 +1,89 @@ + +config ARCH_SUPPORTS_BIG_ENDIAN + bool + depends on ARCH_IXP4XX + default y + +menu "Intel IXP4xx Implementation Options" + +comment "IXP4xx Platforms" + +config ARCH_AVILA + bool "Avila" + depends on ARCH_IXP4XX + help + Say 'Y' here if you want your kernel to support the Gateworks + Avila Network Platform. For more information on this platform, + see Documentation/arm/IXP4xx. + +config ARCH_ADI_COYOTE + bool "Coyote" + depends on ARCH_IXP4XX + help + Say 'Y' here if you want your kernel to support the ADI + Engineering Coyote Gateway Reference Platform. For more + information on this platform, see Documentation/arm/IXP4xx. + +config ARCH_IXDP425 + bool "IXDP425" + depends on ARCH_IXP4XX + help + Say 'Y' here if you want your kernel to support Intel's + IXDP425 Development Platform (Also known as Richfield). + For more information on this platform, see Documentation/arm/IXP4xx. + +# +# IXCDP1100 is the exact same HW as IXDP425, but with a different machine +# number from the bootloader due to marketing monkeys, so we just enable it +# by default if IXDP425 is enabled. +# +config ARCH_IXCDP1100 + bool + depends on ARCH_IXDP425 + default y + +config ARCH_PRPMC1100 + bool "PrPMC1100" + depends on ARCH_IXP4XX + help + Say 'Y' here if you want your kernel to support the Motorola + PrPCM1100 Processor Mezanine Module. For more information on + this platform, see Documentation/arm/IXP4xx. + +# +# Avila and IXDP share the same source for now. Will change in future +# +config ARCH_IXDP4XX + bool + depends on ARCH_IXDP425 || ARCH_AVILA + default y + +comment "IXP4xx Options" + +config IXP4XX_INDIRECT_PCI + bool "Use indirect PCI memory access" + depends on ARCH_IXP4XX + help + IXP4xx provides two methods of accessing PCI memory space: + + 1) A direct mapped window from 0x48000000 to 0x4bffffff (64MB). + To access PCI via this space, we simply ioremap() the BAR + into the kernel and we can use the standard read[bwl]/write[bwl] + macros. This is the preffered method due to speed but it + limits the system to just 64MB of PCI memory. This can be + problamatic if using video cards and other memory-heavy devices. + + 2) If > 64MB of memory space is required, the IXP4xx can be + configured to use indirect registers to access PCI This allows + for up to 128MB (0x48000000 to 0x4fffffff) of memory on the bus. + The disadvantadge of this is that every PCI access requires + three local register accesses plus a spinlock, but in some + cases the performance hit is acceptable. In addition, you cannot + mmap() PCI devices in this case due to the indirect nature + of the PCI window. + + By default, the direct method is used. Choose this option if you + need to use the indirect method instead. If you don't know + what you need, leave this option unselected. + +endmenu diff -Nru a/arch/arm/mach-ixp4xx/Makefile b/arch/arm/mach-ixp4xx/Makefile --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/mach-ixp4xx/Makefile Tue May 18 23:38:09 2004 @@ -0,0 +1,10 @@ +# +# Makefile for the linux kernel. +# + +obj-y += common.o common-pci.o + +obj-$(CONFIG_ARCH_IXDP4XX) += ixdp425-pci.o ixdp425-setup.o +obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o +obj-$(CONFIG_ARCH_PRPMC1100) += prpmc1100-pci.o prpmc1100-setup.o + diff -Nru a/arch/arm/mach-ixp4xx/common-pci.c b/arch/arm/mach-ixp4xx/common-pci.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/mach-ixp4xx/common-pci.c Tue May 18 23:38:09 2004 @@ -0,0 +1,543 @@ +/* + * arch/arm/mach-ixp4xx/common-pci.c + * + * IXP4XX PCI routines for all platforms + * + * Maintainer: Deepak Saxena + * + * Copyright (C) 2002 Intel Corporation. + * Copyright (C) 2003 Greg Ungerer + * Copyright (C) 2003-2004 MontaVista Software, Inc. + * + * 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 + * published by the Free Software Foundation. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + + +/* + * IXP4xx PCI read function is dependent on whether we are + * running A0 or B0 (AppleGate) silicon. + */ +int (*ixp4xx_pci_read)(u32 addr, u32 cmd, u32* data); + +/* + * Base address for PCI regsiter region + */ +unsigned long ixp4xx_pci_reg_base = 0; + +/* + * PCI cfg an I/O routines are done by programming a + * command/byte enable register, and then read/writing + * the data from a data regsiter. We need to ensure + * these transactions are atomic or we will end up + * with corrupt data on the bus or in a driver. + */ +static spinlock_t ixp4xx_pci_lock = SPIN_LOCK_UNLOCKED; + +/* + * Read from PCI config space + */ +static void crp_read(u32 ad_cbe, u32 *data) +{ + unsigned long flags; + spin_lock_irqsave(&ixp4xx_pci_lock, flags); + *PCI_CRP_AD_CBE = ad_cbe; + *data = *PCI_CRP_RDATA; + spin_unlock_irqrestore(&ixp4xx_pci_lock, flags); +} + +/* + * Write to PCI config space + */ +static void crp_write(u32 ad_cbe, u32 data) +{ + unsigned long flags; + spin_lock_irqsave(&ixp4xx_pci_lock, flags); + *PCI_CRP_AD_CBE = CRP_AD_CBE_WRITE | ad_cbe; + *PCI_CRP_WDATA = data; + spin_unlock_irqrestore(&ixp4xx_pci_lock, flags); +} + +static inline int check_master_abort(void) +{ + /* check Master Abort bit after access */ + unsigned long isr = *PCI_ISR; + + if (isr & PCI_ISR_PFE) { + /* make sure the Master Abort bit is reset */ + *PCI_ISR = PCI_ISR_PFE; + pr_debug("%s failed\n", __FUNCTION__); + return 1; + } + + return 0; +} + +int ixp4xx_pci_read_errata(u32 addr, u32 cmd, u32* data) +{ + unsigned long flags; + int retval = 0; + int i; + + spin_lock_irqsave(&ixp4xx_pci_lock, flags); + + *PCI_NP_AD = addr; + + /* + * PCI workaround - only works if NP PCI space reads have + * no side effects!!! Read 8 times. last one will be good. + */ + for (i = 0; i < 8; i++) { + *PCI_NP_CBE = cmd; + *data = *PCI_NP_RDATA; + *data = *PCI_NP_RDATA; + } + + if(check_master_abort()) + retval = 1; + + spin_unlock_irqrestore(&ixp4xx_pci_lock, flags); + return retval; +} + +int ixp4xx_pci_read_no_errata(u32 addr, u32 cmd, u32* data) +{ + unsigned long flags; + int retval = 0; + + spin_lock_irqsave(&ixp4xx_pci_lock, flags); + + *PCI_NP_AD = addr; + + /* set up and execute the read */ + *PCI_NP_CBE = cmd; + + /* the result of the read is now in NP_RDATA */ + *data = *PCI_NP_RDATA; + + if(check_master_abort()) + retval = 1; + + spin_unlock_irqrestore(&ixp4xx_pci_lock, flags); + return retval; +} + +int ixp4xx_pci_write(u32 addr, u32 cmd, u32 data) +{ + unsigned long flags; + int retval = 0; + + spin_lock_irqsave(&ixp4xx_pci_lock, flags); + + *PCI_NP_AD = addr; + + /* set up the write */ + *PCI_NP_CBE = cmd; + + /* execute the write by writing to NP_WDATA */ + *PCI_NP_WDATA = data; + + if(check_master_abort()) + retval = 1; + + spin_unlock_irqrestore(&ixp4xx_pci_lock, flags); + return retval; +} + +static u32 ixp4xx_config_addr(u8 bus_num, u16 devfn, int where) +{ + u32 addr; + if (!bus_num) { + /* type 0 */ + addr = BIT(32-PCI_SLOT(devfn)) | ((PCI_FUNC(devfn)) << 8) | + (where & ~3); + } else { + /* type 1 */ + addr = (bus_num << 16) | ((PCI_SLOT(devfn)) << 11) | + ((PCI_FUNC(devfn)) << 8) | (where & ~3) | 1; + } + return addr; +} + +/* + * Mask table, bits to mask for quantity of size 1, 2 or 4 bytes. + * 0 and 3 are not valid indexes... + */ +static u32 bytemask[] = { + /*0*/ 0, + /*1*/ 0xff, + /*2*/ 0xffff, + /*3*/ 0, + /*4*/ 0xffffffff, +}; + +static u32 local_byte_lane_enable_bits(u32 n, int size) +{ + if (size == 1) + return (0xf & ~BIT(n)) << CRP_AD_CBE_BESL; + if (size == 2) + return (0xf & ~(BIT(n) | BIT(n+1))) << CRP_AD_CBE_BESL; + if (size == 4) + return 0; + return 0xffffffff; +} + +static int local_read_config(int where, int size, u32 *value) +{ + u32 n, data; + pr_debug("local_read_config from %d size %d\n", where, size); + n = where % 4; + crp_read(where & ~3, &data); + *value = (data >> (8*n)) & bytemask[size]; + pr_debug("local_read_config read %#x\n", *value); + return PCIBIOS_SUCCESSFUL; +} + +static int local_write_config(int where, int size, u32 value) +{ + u32 n, byte_enables, data; + pr_debug("local_write_config %#x to %d size %d\n", value, where, size); + n = where % 4; + byte_enables = local_byte_lane_enable_bits(n, size); + if (byte_enables == 0xffffffff) + return PCIBIOS_BAD_REGISTER_NUMBER; + data = value << (8*n); + crp_write((where & ~3) | byte_enables, data); + return PCIBIOS_SUCCESSFUL; +} + +static u32 byte_lane_enable_bits(u32 n, int size) +{ + if (size == 1) + return (0xf & ~BIT(n)) << 4; + if (size == 2) + return (0xf & ~(BIT(n) | BIT(n+1))) << 4; + if (size == 4) + return 0; + return 0xffffffff; +} + +static int read_config(u8 bus_num, u16 devfn, int where, int size, u32 *value) +{ + u32 n, byte_enables, addr, data; + + pr_debug("read_config from %d size %d dev %d:%d:%d\n", where, size, + bus_num, PCI_SLOT(devfn), PCI_FUNC(devfn)); + + *value = 0xffffffff; + n = where % 4; + byte_enables = byte_lane_enable_bits(n, size); + if (byte_enables == 0xffffffff) + return PCIBIOS_BAD_REGISTER_NUMBER; + + addr = ixp4xx_config_addr(bus_num, devfn, where); + if (ixp4xx_pci_read(addr, byte_enables | NP_CMD_CONFIGREAD, &data)) + return PCIBIOS_DEVICE_NOT_FOUND; + + *value = (data >> (8*n)) & bytemask[size]; + pr_debug("read_config_byte read %#x\n", *value); + return PCIBIOS_SUCCESSFUL; +} + +static int write_config(u8 bus_num, u16 devfn, int where, int size, u32 value) +{ + u32 n, byte_enables, addr, data; + + pr_debug("write_config_byte %#x to %d size %d dev %d:%d:%d\n", value, where, + size, bus_num, PCI_SLOT(devfn), PCI_FUNC(devfn)); + + n = where % 4; + byte_enables = byte_lane_enable_bits(n, size); + if (byte_enables == 0xffffffff) + return PCIBIOS_BAD_REGISTER_NUMBER; + + addr = ixp4xx_config_addr(bus_num, devfn, where); + data = value << (8*n); + if (ixp4xx_pci_write(addr, byte_enables | NP_CMD_CONFIGWRITE, data)) + return PCIBIOS_DEVICE_NOT_FOUND; + + return PCIBIOS_SUCCESSFUL; +} + +/* + * Generalized PCI config access functions. + */ +static int ixp4xx_read_config(struct pci_bus *bus, unsigned int devfn, + int where, int size, u32 *value) +{ + if (bus->number && !PCI_SLOT(devfn)) + return local_read_config(where, size, value); + return read_config(bus->number, devfn, where, size, value); +} + +static int ixp4xx_write_config(struct pci_bus *bus, unsigned int devfn, + int where, int size, u32 value) +{ + if (bus->number && !PCI_SLOT(devfn)) + return local_write_config(where, size, value); + return write_config(bus->number, devfn, where, size, value); +} + +struct pci_ops ixp4xx_ops = { + .read = ixp4xx_read_config, + .write = ixp4xx_write_config, +}; + + +/* + * PCI abort handler + */ +static int abort_handler(unsigned long addr, unsigned int fsr, struct pt_regs *regs) +{ + u32 isr, status; + + isr = *PCI_ISR; + local_read_config(PCI_STATUS, 2, &status); + pr_debug("PCI: abort_handler addr = %#lx, isr = %#x, " + "status = %#x\n", addr, isr, status); + + /* make sure the Master Abort bit is reset */ + *PCI_ISR = PCI_ISR_PFE; + status |= PCI_STATUS_REC_MASTER_ABORT; + local_write_config(PCI_STATUS, 2, status); + + /* + * If it was an imprecise abort, then we need to correct the + * return address to be _after_ the instruction. + */ + if (fsr & (1 << 10)) + regs->ARM_pc += 4; + + return 0; +} + + +/* + * Setup DMA mask to 64MB on PCI devices. Ignore all other devices. + */ +static int ixp4xx_pci_platform_notify(struct device *dev) +{ + if(dev->bus == &pci_bus_type) { + *dev->dma_mask = SZ_64M - 1; + dev->coherent_dma_mask = SZ_64M - 1; + dmabounce_register_dev(dev, 2048, 4096); + } + return 0; +} + +static int ixp4xx_pci_platform_notify_remove(struct device *dev) +{ + if(dev->bus == &pci_bus_type) { + dmabounce_unregister_dev(dev); + } + return 0; +} + +int dma_needs_bounce(struct device *dev, dma_addr_t dma_addr, size_t size) +{ + return (dev->bus == &pci_bus_type ) && ((dma_addr + size) >= SZ_64M); +} + +void __init ixp4xx_pci_preinit(void) +{ + unsigned long processor_id; + + asm("mrc p15, 0, %0, cr0, cr0, 0;" : "=r"(processor_id) :); + + /* + * Determine which PCI read method to use + */ + if (!(processor_id & 0xf)) { + printk("PCI: IXP4xx A0 silicon detected - " + "PCI Non-Prefetch Workaround Enabled\n"); + ixp4xx_pci_read = ixp4xx_pci_read_errata; + } else + ixp4xx_pci_read = ixp4xx_pci_read_no_errata; + + + /* hook in our fault handler for PCI errors */ + hook_fault_code(16+6, abort_handler, SIGBUS, "imprecise external abort"); + + pr_debug("setup PCI-AHB(inbound) and AHB-PCI(outbound) address mappings\n"); + + /* + * We use identity AHB->PCI address translation + * in the 0x48000000 to 0x4bffffff address space + */ + *PCI_PCIMEMBASE = 0x48494A4B; + + /* + * We also use identity PCI->AHB address translation + * in 4 16MB BARs that begin at the physical memory start + */ + *PCI_AHBMEMBASE = (PHYS_OFFSET & 0xFF000000) + + ((PHYS_OFFSET & 0xFF000000) >> 8) + + ((PHYS_OFFSET & 0xFF000000) >> 16) + + ((PHYS_OFFSET & 0xFF000000) >> 24) + + 0x00010203; + + if (*PCI_CSR & PCI_CSR_HOST) { + printk("PCI: IXP4xx is host\n"); + + pr_debug("setup BARs in controller\n"); + + /* + * We configure the PCI inbound memory windows to be + * 1:1 mapped to SDRAM + */ + local_write_config(PCI_BASE_ADDRESS_0, 4, PHYS_OFFSET + 0x00000000); + local_write_config(PCI_BASE_ADDRESS_1, 4, PHYS_OFFSET + 0x01000000); + local_write_config(PCI_BASE_ADDRESS_2, 4, PHYS_OFFSET + 0x02000000); + local_write_config(PCI_BASE_ADDRESS_3, 4, PHYS_OFFSET + 0x03000000); + + /* + * Enable CSR window at 0xff000000. + */ + local_write_config(PCI_BASE_ADDRESS_4, 4, 0xff000008); + + /* + * Enable the IO window to be way up high, at 0xfffffc00 + */ + local_write_config(PCI_BASE_ADDRESS_5, 4, 0xfffffc01); + } else { + printk("PCI: IXP4xx is target - No bus scan performed\n"); + } + + printk("PCI: IXP4xx Using %s access for memory space\n", +#ifndef CONFIG_IXP4XX_INDIRECT_PCI + "direct" +#else + "indirect" +#endif + ); + + pr_debug("clear error bits in ISR\n"); + *PCI_ISR = PCI_ISR_PSE | PCI_ISR_PFE | PCI_ISR_PPE | PCI_ISR_AHBE; + + /* + * Set Initialize Complete in PCI Control Register: allow IXP4XX to + * respond to PCI configuration cycles. Specify that the AHB bus is + * operating in big endian mode. Set up byte lane swapping between + * little-endian PCI and the big-endian AHB bus + */ +#ifdef __ARMEB__ + *PCI_CSR = PCI_CSR_IC | PCI_CSR_ABE | PCI_CSR_PDS | PCI_CSR_ADS; +#else + *PCI_CSR = PCI_CSR_IC; +#endif + + pr_debug("DONE\n"); +} + +int ixp4xx_setup(int nr, struct pci_sys_data *sys) +{ + struct resource *res; + + if (nr >= 1) + return 0; + + res = kmalloc(sizeof(*res) * 2, GFP_KERNEL); + if (res == NULL) { + /* + * If we're out of memory this early, something is wrong, + * so we might as well catch it here. + */ + panic("PCI: unable to allocate resources?\n"); + } + memset(res, 0, sizeof(*res) * 2); + + local_write_config(PCI_COMMAND, 2, PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY); + + res[0].name = "PCI I/O Space"; + res[0].start = 0x00001000; + res[0].end = 0xffff0000; + res[0].flags = IORESOURCE_IO; + + res[1].name = "PCI Memory Space"; + res[1].start = 0x48000000; +#ifndef CONFIG_IXP4XX_INDIRECT_PCI + res[1].end = 0x4bffffff; +#else + res[1].end = 0x4fffffff; +#endif + res[1].flags = IORESOURCE_MEM; + + request_resource(&ioport_resource, &res[0]); + request_resource(&iomem_resource, &res[1]); + + sys->resource[0] = &res[0]; + sys->resource[1] = &res[1]; + sys->resource[2] = NULL; + + platform_notify = ixp4xx_pci_platform_notify; + platform_notify_remove = ixp4xx_pci_platform_notify_remove; + + return 1; +} + +struct pci_bus *ixp4xx_scan_bus(int nr, struct pci_sys_data *sys) +{ + return pci_scan_bus(sys->busnr, &ixp4xx_ops, sys); +} + +/* + * We override these so we properly do dmabounce otherwise drivers + * are able to set the dma_mask to 0xffffffff and we can no longer + * trap bounces. :( + * + * We just return true on everyhing except for < 64MB in which case + * we will fail miseralby and die since we can't handle that case. + */ +int +pci_set_dma_mask(struct pci_dev *dev, u64 mask) +{ + if (mask >= SZ_64M - 1 ) + return 0; + + return -EIO; +} + +int +pci_dac_set_dma_mask(struct pci_dev *dev, u64 mask) +{ + if (mask >= SZ_64M - 1 ) + return 0; + + return -EIO; +} + +int +pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask) +{ + if (mask >= SZ_64M - 1 ) + return 0; + + return -EIO; +} + +EXPORT_SYMBOL(pci_set_dma_mask); +EXPORT_SYMBOL(pci_dac_set_dma_mask); +EXPORT_SYMBOL(pci_set_consistent_dma_mask); + diff -Nru a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/mach-ixp4xx/common.c Tue May 18 23:38:09 2004 @@ -0,0 +1,264 @@ +/* + * arch/arm/mach-ixp4xx/common.c + * + * Generic code shared across all IXP4XX platforms + * + * Maintainer: Deepak Saxena + * + * Copyright 2002 (c) Intel Corporation + * Copyright 2003-2004 (c) MontaVista, Software, Inc. + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +/************************************************************************* + * GPIO acces functions + *************************************************************************/ + +/* + * Configure GPIO line for input, interrupt, or output operation + * + * TODO: Enable/disable the irq_desc based on interrupt or output mode. + * TODO: Should these be named ixp4xx_gpio_? + */ +void gpio_line_config(u8 line, u32 style) +{ + u32 enable; + volatile u32 *int_reg; + u32 int_style; + + enable = *IXP4XX_GPIO_GPOER; + + if (style & IXP4XX_GPIO_OUT) { + enable &= ~((1) << line); + } else if (style & IXP4XX_GPIO_IN) { + enable |= ((1) << line); + + switch (style & IXP4XX_GPIO_INTSTYLE_MASK) + { + case (IXP4XX_GPIO_ACTIVE_HIGH): + int_style = IXP4XX_GPIO_STYLE_ACTIVE_HIGH; + break; + case (IXP4XX_GPIO_ACTIVE_LOW): + int_style = IXP4XX_GPIO_STYLE_ACTIVE_LOW; + break; + case (IXP4XX_GPIO_RISING_EDGE): + int_style = IXP4XX_GPIO_STYLE_RISING_EDGE; + break; + case (IXP4XX_GPIO_FALLING_EDGE): + int_style = IXP4XX_GPIO_STYLE_FALLING_EDGE; + break; + case (IXP4XX_GPIO_TRANSITIONAL): + int_style = IXP4XX_GPIO_STYLE_TRANSITIONAL; + break; + default: + int_style = IXP4XX_GPIO_STYLE_ACTIVE_HIGH; + break; + } + + if (line >= 8) { /* pins 8-15 */ + line -= 8; + int_reg = IXP4XX_GPIO_GPIT2R; + } + else { /* pins 0-7 */ + int_reg = IXP4XX_GPIO_GPIT1R; + } + + /* Clear the style for the appropriate pin */ + *int_reg &= ~(IXP4XX_GPIO_STYLE_CLEAR << + (line * IXP4XX_GPIO_STYLE_SIZE)); + + /* Set the new style */ + *int_reg |= (int_style << (line * IXP4XX_GPIO_STYLE_SIZE)); + } + + *IXP4XX_GPIO_GPOER = enable; +} + +EXPORT_SYMBOL(gpio_line_config); + +/************************************************************************* + * IXP4xx chipset I/O mapping + *************************************************************************/ +static struct map_desc ixp4xx_io_desc[] __initdata = { + { /* UART, Interrupt ctrl, GPIO, timers, NPEs, MACs, USB .... */ + .virtual = IXP4XX_PERIPHERAL_BASE_VIRT, + .physical = IXP4XX_PERIPHERAL_BASE_PHYS, + .length = IXP4XX_PERIPHERAL_REGION_SIZE, + .type = MT_DEVICE + }, { /* Expansion Bus Config Registers */ + .virtual = IXP4XX_EXP_CFG_BASE_VIRT, + .physical = IXP4XX_EXP_CFG_BASE_PHYS, + .length = IXP4XX_EXP_CFG_REGION_SIZE, + .type = MT_DEVICE + }, { /* PCI Registers */ + .virtual = IXP4XX_PCI_CFG_BASE_VIRT, + .physical = IXP4XX_PCI_CFG_BASE_PHYS, + .length = IXP4XX_PCI_CFG_REGION_SIZE, + .type = MT_DEVICE + } +}; + +void __init ixp4xx_map_io(void) +{ + iotable_init(ixp4xx_io_desc, ARRAY_SIZE(ixp4xx_io_desc)); +} + + +/************************************************************************* + * IXP4xx chipset IRQ handling + * + * TODO: GPIO IRQs should be marked invalid until the user of the IRQ + * (be it PCI or something else) configures that GPIO line + * as an IRQ. Also, we should use a different chip structure for + * level-based GPIO vs edge-based GPIO. Currently nobody needs this as + * all HW that's publically available uses level IRQs, so we'll + * worry about it if/when we have HW to test. + **************************************************************************/ +static void ixp4xx_irq_mask(unsigned int irq) +{ + *IXP4XX_ICMR &= ~(1 << irq); +} + +static void ixp4xx_irq_mask_ack(unsigned int irq) +{ + ixp4xx_irq_mask(irq); +} + +static void ixp4xx_irq_unmask(unsigned int irq) +{ + static int irq2gpio[NR_IRQS] = { + -1, -1, -1, -1, -1, -1, 0, 1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, -1, -1, + }; + int line = irq2gpio[irq]; + + /* + * This only works for LEVEL gpio IRQs as per the IXP4xx developer's + * manual. If edge-triggered, need to move it to the mask_ack. + * Nobody seems to be using the edge-triggered mode on the GPIOs. + */ + if (line >= 0) + gpio_line_isr_clear(line); + + *IXP4XX_ICMR |= (1 << irq); +} + +static struct irqchip ixp4xx_irq_chip = { + .ack = ixp4xx_irq_mask_ack, + .mask = ixp4xx_irq_mask, + .unmask = ixp4xx_irq_unmask, +}; + +void __init ixp4xx_init_irq(void) +{ + int i = 0; + + /* Route all sources to IRQ instead of FIQ */ + *IXP4XX_ICLR = 0x0; + + /* Disable all interrupt */ + *IXP4XX_ICMR = 0x0; + + for(i = 0; i < NR_IRQS; i++) + { + set_irq_chip(i, &ixp4xx_irq_chip); + set_irq_handler(i, do_level_IRQ); + set_irq_flags(i, IRQF_VALID); + } +} + + +/************************************************************************* + * IXP4xx timer tick + * We use OS timer1 on the CPU for the timer tick and the timestamp + * counter as a source of real clock ticks to account for missed jiffies. + *************************************************************************/ + +static unsigned volatile last_jiffy_time; + +#define CLOCK_TICKS_PER_USEC (CLOCK_TICK_RATE / USEC_PER_SEC) + +/* IRQs are disabled before entering here from do_gettimeofday() */ +static unsigned long ixp4xx_gettimeoffset(void) +{ + u32 elapsed; + + elapsed = *IXP4XX_OSTS - last_jiffy_time; + + return elapsed / CLOCK_TICKS_PER_USEC; +} + +static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + /* Clear Pending Interrupt by writing '1' to it */ + *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND; + + /* + * Catch up with the real idea of time + */ + do { + do_timer(regs); + last_jiffy_time += LATCH; + } while((*IXP4XX_OSTS - last_jiffy_time) > LATCH); + + return IRQ_HANDLED; +} + +extern unsigned long (*gettimeoffset)(void); + +static struct irqaction timer_irq = { + .name = "IXP4xx Timer Tick", + .flags = SA_INTERRUPT +}; + +void __init time_init(void) +{ + gettimeoffset = ixp4xx_gettimeoffset; + timer_irq.handler = ixp4xx_timer_interrupt; + + /* Clear Pending Interrupt by writing '1' to it */ + *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND; + + /* Setup the Timer counter value */ + *IXP4XX_OSRT1 = (LATCH & ~IXP4XX_OST_RELOAD_MASK) | IXP4XX_OST_ENABLE; + + /* Reset time-stamp counter */ + *IXP4XX_OSTS = 0; + last_jiffy_time = 0; + + /* Connect the interrupt handler and enable the interrupt */ + setup_irq(IRQ_IXP4XX_TIMER1, &timer_irq); +} + + diff -Nru a/arch/arm/mach-ixp4xx/coyote-pci.c b/arch/arm/mach-ixp4xx/coyote-pci.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/mach-ixp4xx/coyote-pci.c Tue May 18 23:38:09 2004 @@ -0,0 +1,69 @@ +/* + * arch/arch/mach-ixp4xx/coyote-pci.c + * + * PCI setup routines for ADI Engineering Coyote platform + * + * Copyright (C) 2002 Jungo Software Technologies. + * Copyright (C) 2003 MontaVista Softwrae, Inc. + * + * Maintainer: Deepak Saxena + * + * 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 + * published by the Free Software Foundation. + * + */ + +#include +#include + +#include +#include +#include + +#include + +extern void ixp4xx_pci_preinit(void); +extern int ixp4xx_setup(int nr, struct pci_sys_data *sys); +extern struct pci_bus *ixp4xx_scan_bus(int nr, struct pci_sys_data *sys); + +void __init coyote_pci_preinit(void) +{ + gpio_line_config(COYOTE_PCI_SLOT0_PIN, + IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); + + gpio_line_config(COYOTE_PCI_SLOT1_PIN, + IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); + + gpio_line_isr_clear(COYOTE_PCI_SLOT0_PIN); + gpio_line_isr_clear(COYOTE_PCI_SLOT1_PIN); + + ixp4xx_pci_preinit(); +} + +static int __init coyote_map_irq(struct pci_dev *dev, u8 slot, u8 pin) +{ + if (slot == COYOTE_PCI_SLOT0_DEVID) + return IRQ_COYOTE_PCI_SLOT0; + else if (slot == COYOTE_PCI_SLOT1_DEVID) + return IRQ_COYOTE_PCI_SLOT1; + else return -1; +} + +struct hw_pci coyote_pci __initdata = { + .nr_controllers = 1, + .preinit = coyote_pci_preinit, + .swizzle = pci_std_swizzle, + .setup = ixp4xx_setup, + .scan = ixp4xx_scan_bus, + .map_irq = coyote_map_irq, +}; + +int __init coyote_pci_init(void) +{ + if (machine_is_adi_coyote()) + pci_common_init(&coyote_pci); + return 0; +} + +subsys_initcall(coyote_pci_init); diff -Nru a/arch/arm/mach-ixp4xx/coyote-setup.c b/arch/arm/mach-ixp4xx/coyote-setup.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/mach-ixp4xx/coyote-setup.c Tue May 18 23:38:09 2004 @@ -0,0 +1,90 @@ +/* + * arch/arm/mach-ixp4xx/coyote-setup.c + * + * ADI Engineering Coyote board-setup + * + * Copyright (C) 2003-2004 MontaVista Software, Inc. + * + * Author: Deepak Saxena + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __ARMEB__ +#define REG_OFFSET 3 +#else +#define REG_OFFSET 0 +#endif + +/* + * Only one serial port is connected on the Coyote. + */ +static struct uart_port coyote_serial_port = { + .membase = (char*)(IXP4XX_UART2_BASE_VIRT + REG_OFFSET), + .mapbase = (IXP4XX_UART2_BASE_PHYS), + .irq = IRQ_IXP4XX_UART2, + .flags = UPF_SKIP_TEST, + .iotype = UPIO_MEM, + .regshift = 2, + .uartclk = IXP4XX_UART_XTAL, + .line = 0, + .type = PORT_XSCALE, + .fifosize = 32 +}; + +void __init coyote_map_io(void) +{ + early_serial_setup(&coyote_serial_port); + + ixp4xx_map_io(); +} + +static struct flash_platform_data coyote_flash_data = { + .map_name = "cfi_probe", + .width = 2, +}; + +static struct resource coyote_flash_resource = { + .start = COYOTE_FLASH_BASE, + .end = COYOTE_FLASH_BASE + COYOTE_FLASH_SIZE, + .flags = IORESOURCE_MEM, +}; + +static struct platform_device coyote_flash_device = { + .name = "IXP4XX-Flash", + .id = 0, + .dev = { + .platform_data = &coyote_flash_data, + }, + .num_resources = 1, + .resource = &coyote_flash_resource, +}; + +static void __init coyote_init(void) +{ + platform_add_device(&coyote_flash_device); +} + +MACHINE_START(ADI_COYOTE, "ADI Engineering IXP4XX Coyote Development Platform") + MAINTAINER("MontaVista Software, Inc.") + BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS, + IXP4XX_PERIPHERAL_BASE_VIRT) + MAPIO(coyote_map_io) + INITIRQ(ixp4xx_init_irq) + BOOT_PARAMS(0x0100) + INIT_MACHINE(coyote_init) +MACHINE_END + diff -Nru a/arch/arm/mach-ixp4xx/ixdp425-pci.c b/arch/arm/mach-ixp4xx/ixdp425-pci.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/mach-ixp4xx/ixdp425-pci.c Tue May 18 23:38:09 2004 @@ -0,0 +1,84 @@ +/* + * arch/arm/mach-ixp4xx/ixdp425-pci.c + * + * IXDP425 board-level PCI initialization + * + * Copyright (C) 2002 Intel Corporation. + * Copyright (C) 2003-2004 MontaVista Software, Inc. + * + * Maintainer: Deepak Saxena + * + * 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 + * published by the Free Software Foundation. + * + */ + +#include +#include +#include +#include + +#include +#include +#include +#include + +void __init ixdp425_pci_preinit(void) +{ + gpio_line_config(IXDP425_PCI_INTA_PIN, + IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); + gpio_line_config(IXDP425_PCI_INTB_PIN, + IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); + gpio_line_config(IXDP425_PCI_INTC_PIN, + IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); + gpio_line_config(IXDP425_PCI_INTD_PIN, + IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); + + gpio_line_isr_clear(IXDP425_PCI_INTA_PIN); + gpio_line_isr_clear(IXDP425_PCI_INTB_PIN); + gpio_line_isr_clear(IXDP425_PCI_INTC_PIN); + gpio_line_isr_clear(IXDP425_PCI_INTD_PIN); + + ixp4xx_pci_preinit(); +} + +static int __init ixdp425_map_irq(struct pci_dev *dev, u8 slot, u8 pin) +{ + static int pci_irq_table[IXDP425_PCI_IRQ_LINES] = { + IRQ_IXDP425_PCI_INTA, + IRQ_IXDP425_PCI_INTB, + IRQ_IXDP425_PCI_INTC, + IRQ_IXDP425_PCI_INTD + }; + + int irq = -1; + + if (slot >= 1 && slot <= IXDP425_PCI_MAX_DEV && + pin >= 1 && pin <= IXDP425_PCI_IRQ_LINES) { + irq = pci_irq_table[(slot + pin - 2) % 4]; + } + + return irq; +} + +struct hw_pci ixdp425_pci __initdata = { + .nr_controllers = 1, + .preinit = ixdp425_pci_preinit, + .swizzle = pci_std_swizzle, + .setup = ixp4xx_setup, + .scan = ixp4xx_scan_bus, + .map_irq = ixdp425_map_irq, +}; + +int __init ixdp425_pci_init(void) +{ + if (machine_is_ixdp425() || + machine_is_ixcdp1100() || + machine_is_avila()) + pci_common_init(&ixdp425_pci); + return 0; +} + +subsys_initcall(ixdp425_pci_init); + diff -Nru a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c Tue May 18 23:38:09 2004 @@ -0,0 +1,147 @@ +/* + * arch/arm/mach-ixp4xx/ixdp425-setup.c + * + * IXDP425/IXCDP1100 board-setup + * + * Copyright (C) 2003-2004 MontaVista Software, Inc. + * + * Author: Deepak Saxena + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __ARMEB__ +#define REG_OFFSET 3 +#else +#define REG_OFFSET 0 +#endif + +/* + * IXDP425 uses both chipset serial ports + */ +static struct uart_port ixdp425_serial_ports[] = { + { + .membase = (char*)(IXP4XX_UART1_BASE_VIRT + REG_OFFSET), + .mapbase = (IXP4XX_UART1_BASE_PHYS), + .irq = IRQ_IXP4XX_UART1, + .flags = UPF_SKIP_TEST, + .iotype = UPIO_MEM, + .regshift = 2, + .uartclk = IXP4XX_UART_XTAL, + .line = 0, + .type = PORT_XSCALE, + .fifosize = 32 + } , { + .membase = (char*)(IXP4XX_UART2_BASE_VIRT + REG_OFFSET), + .mapbase = (IXP4XX_UART2_BASE_PHYS), + .irq = IRQ_IXP4XX_UART2, + .flags = UPF_SKIP_TEST, + .iotype = UPIO_MEM, + .regshift = 2, + .uartclk = IXP4XX_UART_XTAL, + .line = 1, + .type = PORT_XSCALE, + .fifosize = 32 + } +}; + +void __init ixdp425_map_io(void) +{ + early_serial_setup(&ixdp425_serial_ports[0]); + early_serial_setup(&ixdp425_serial_ports[1]); + + ixp4xx_map_io(); +} + +static struct flash_platform_data ixdp425_flash_data = { + .map_name = "cfi_probe", + .width = 2, +}; + +static struct resource ixdp425_flash_resource = { + .start = IXDP425_FLASH_BASE, + .end = IXDP425_FLASH_BASE + IXDP425_FLASH_SIZE, + .flags = IORESOURCE_MEM, +}; + +static struct platform_device ixdp425_flash_device = { + .name = "IXP4XX-Flash", + .id = 0, + .dev = { + .platform_data = &ixdp425_flash_data, + }, + .num_resources = 1, + .resource = &ixdp425_flash_resource, +}; + +static struct ixp4xx_i2c_pins ixdp425_i2c_gpio_pins = { + .sda_pin = IXDP425_SDA_PIN, + .scl_pin = IXDP425_SCL_PIN, +}; + +static struct platform_device ixdp425_i2c_controller = { + .name = "IXP4XX-I2C", + .id = 0, + .dev = { + .platform_data = &ixdp425_i2c_gpio_pins, + }, + .num_resources = 0 +}; + +static void __init ixdp425_init(void) +{ + platform_add_device(&ixdp425_flash_device); + platform_add_device(&ixdp425_i2c_controller); +} + +MACHINE_START(IXDP425, "Intel IXDP425 Development Platform") + MAINTAINER("MontaVista Software, Inc.") + BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS, + IXP4XX_PERIPHERAL_BASE_VIRT) + MAPIO(ixdp425_map_io) + INITIRQ(ixp4xx_init_irq) + BOOT_PARAMS(0x0100) + INIT_MACHINE(ixdp425_init) +MACHINE_END + +MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform") + MAINTAINER("MontaVista Software, Inc.") + BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS, + IXP4XX_PERIPHERAL_BASE_VIRT) + MAPIO(ixdp425_map_io) + INITIRQ(ixp4xx_init_irq) + BOOT_PARAMS(0x0100) + INIT_MACHINE(ixdp425_init) +MACHINE_END + +/* + * Avila is functionally equivalent to IXDP425 except that it adds + * a CF IDE slot hanging off the expansion bus. When we have a + * driver for IXP4xx CF IDE with driver model support we'll move + * Avila to it's own setup file. + */ +#ifdef CONFIG_ARCH_AVILA +MACHINE_START(AVILA, "Gateworks Avila Network Platform") + MAINTAINER("Deepak Saxena ") + BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS, + IXP4XX_PERIPHERAL_BASE_VIRT) + MAPIO(ixdp425_map_io) + INITIRQ(ixp4xx_init_irq) + BOOT_PARAMS(0x0100) + INIT_MACHINE(ixdp425_init) +MACHINE_END +#endif + diff -Nru a/arch/arm/mach-ixp4xx/prpmc1100-pci.c b/arch/arm/mach-ixp4xx/prpmc1100-pci.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/mach-ixp4xx/prpmc1100-pci.c Tue May 18 23:38:09 2004 @@ -0,0 +1,119 @@ +/* + * arch/arm/mach-ixp4xx/prpmc1100-pci.c + * + * PrPMC1100 PCI initialization + * + * Copyright (C) 2003-2004 MontaVista Sofwtare, Inc. + * Based on IXDP425 code originally (C) Intel Corporation + * + * Author: Deepak Saxena + * + * PrPMC1100 PCI init code. GPIO usage is similar to that on + * IXDP425, but the IRQ routing is completely different and + * depends on what carrier you are using. This code is written + * to work on the Motorola PrPMC800 ATX carrier board. + * + * 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 + * published by the Free Software Foundation. + * + */ + +#include +#include +#include + +#include +#include +#include + +#include + + +void __init prpmc1100_pci_preinit(void) +{ + gpio_line_config(PRPMC1100_PCI_INTA_PIN, + IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); + gpio_line_config(PRPMC1100_PCI_INTB_PIN, + IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); + gpio_line_config(PRPMC1100_PCI_INTC_PIN, + IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); + gpio_line_config(PRPMC1100_PCI_INTD_PIN, + IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); + + gpio_line_isr_clear(PRPMC1100_PCI_INTA_PIN); + gpio_line_isr_clear(PRPMC1100_PCI_INTB_PIN); + gpio_line_isr_clear(PRPMC1100_PCI_INTC_PIN); + gpio_line_isr_clear(PRPMC1100_PCI_INTD_PIN); + + ixp4xx_pci_preinit(); +} + + +static int __init prpmc1100_map_irq(struct pci_dev *dev, u8 slot, u8 pin) +{ + int irq = -1; + + static int pci_irq_table[][4] = { + { /* IDSEL 16 - PMC A1 */ + IRQ_PRPMC1100_PCI_INTD, + IRQ_PRPMC1100_PCI_INTA, + IRQ_PRPMC1100_PCI_INTB, + IRQ_PRPMC1100_PCI_INTC + }, { /* IDSEL 17 - PRPMC-A-B */ + IRQ_PRPMC1100_PCI_INTD, + IRQ_PRPMC1100_PCI_INTA, + IRQ_PRPMC1100_PCI_INTB, + IRQ_PRPMC1100_PCI_INTC + }, { /* IDSEL 18 - PMC A1-B */ + IRQ_PRPMC1100_PCI_INTA, + IRQ_PRPMC1100_PCI_INTB, + IRQ_PRPMC1100_PCI_INTC, + IRQ_PRPMC1100_PCI_INTD + }, { /* IDSEL 19 - Unused */ + 0, 0, 0, 0 + }, { /* IDSEL 20 - P2P Bridge */ + IRQ_PRPMC1100_PCI_INTA, + IRQ_PRPMC1100_PCI_INTB, + IRQ_PRPMC1100_PCI_INTC, + IRQ_PRPMC1100_PCI_INTD + }, { /* IDSEL 21 - PMC A2 */ + IRQ_PRPMC1100_PCI_INTC, + IRQ_PRPMC1100_PCI_INTD, + IRQ_PRPMC1100_PCI_INTA, + IRQ_PRPMC1100_PCI_INTB + }, { /* IDSEL 22 - PMC A2-B */ + IRQ_PRPMC1100_PCI_INTD, + IRQ_PRPMC1100_PCI_INTA, + IRQ_PRPMC1100_PCI_INTB, + IRQ_PRPMC1100_PCI_INTC + }, + }; + + if (slot >= PRPMC1100_PCI_MIN_DEVID && slot <= PRPMC1100_PCI_MAX_DEVID + && pin >= 1 && pin <= PRPMC1100_PCI_IRQ_LINES) { + irq = pci_irq_table[slot - PRPMC1100_PCI_MIN_DEVID][pin - 1]; + } + + return irq; +} + + +struct hw_pci prpmc1100_pci __initdata = { + .nr_controllers = 1, + .preinit = prpmc1100_pci_preinit, + .swizzle = pci_std_swizzle, + .setup = ixp4xx_setup, + .scan = ixp4xx_scan_bus, + .map_irq = prpmc1100_map_irq, +}; + +int __init prpmc1100_pci_init(void) +{ + if (machine_is_prpmc1100()) + pci_common_init(&prpmc1100_pci); + return 0; +} + +subsys_initcall(prpmc1100_pci_init); + diff -Nru a/arch/arm/mach-ixp4xx/prpmc1100-setup.c b/arch/arm/mach-ixp4xx/prpmc1100-setup.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/mach-ixp4xx/prpmc1100-setup.c Tue May 18 23:38:09 2004 @@ -0,0 +1,90 @@ +/* + * arch/arm/mach-ixp4xx/prpmc1100-setup.c + * + * Motorola PrPMC1100 board setup + * + * Copyright (C) 2003-2004 MontaVista Software, Inc. + * + * Author: Deepak Saxena + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __ARMEB__ +#define REG_OFFSET 3 +#else +#define REG_OFFSET 0 +#endif + +/* + * Only one serial port is connected on the PrPMC1100 + */ +static struct uart_port prpmc1100_serial_port = { + .membase = (char*)(IXP4XX_UART1_BASE_VIRT + REG_OFFSET), + .mapbase = (IXP4XX_UART1_BASE_PHYS), + .irq = IRQ_IXP4XX_UART1, + .flags = UPF_SKIP_TEST, + .iotype = UPIO_MEM, + .regshift = 2, + .uartclk = IXP4XX_UART_XTAL, + .line = 0, + .type = PORT_XSCALE, + .fifosize = 32 +}; + +void __init prpmc1100_map_io(void) +{ + early_serial_setup(&prpmc1100_serial_port); + + ixp4xx_map_io(); +} + +static struct flash_platform_data prpmc1100_flash_data = { + .map_name = "cfi_probe", + .width = 2, +}; + +static struct resource prpmc1100_flash_resource = { + .start = PRPMC1100_FLASH_BASE, + .end = PRPMC1100_FLASH_BASE + PRPMC1100_FLASH_SIZE, + .flags = IORESOURCE_MEM, +}; + +static struct platform_device prpmc1100_flash_device = { + .name = "IXP4XX-Flash", + .id = 0, + .dev = { + .platform_data = &prpmc1100_flash_data, + }, + .num_resources = 1, + .resource = &prpmc1100_flash_resource, +}; + +static void __init prpmc1100_init(void) +{ + platform_add_device(&prpmc1100_flash_device); +} + +MACHINE_START(PRPMC1100, "Motorola PrPMC1100") + MAINTAINER("MontaVista Software, Inc.") + BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS, + IXP4XX_PERIPHERAL_BASE_VIRT) + MAPIO(prpmc1100_map_io) + INITIRQ(ixp4xx_init_irq) + BOOT_PARAMS(0x0100) + INIT_MACHINE(prpmc1100_init) +MACHINE_END + diff -Nru a/arch/arm/mach-omap/innovator1510.c b/arch/arm/mach-omap/innovator1510.c --- a/arch/arm/mach-omap/innovator1510.c Tue May 18 23:38:08 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,99 +0,0 @@ -/* - * linux/arch/arm/mach-omap/innovator1510.c - * - * Board specific inits for OMAP-1510 Innovator - * - * Copyright (C) 2001 RidgeRun, Inc. - * Author: Greg Lonnon - * - * Copyright (C) 2002 MontaVista Software, Inc. - * - * Separated FPGA interrupts from innovator1510.c and cleaned up for 2.6 - * Copyright (C) 2004 Nokia Corporation by Tony Lindrgen - * - * 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 - * published by the Free Software Foundation. - */ - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include "common.h" - -extern int omap_gpio_init(void); - -void innovator_init_irq(void) -{ - omap_init_irq(); - omap_gpio_init(); - fpga_init_irq(); -} - -static struct resource smc91x_resources[] = { - [0] = { - .start = OMAP1510P1_FPGA_ETHR_START, /* Physical */ - .end = OMAP1510P1_FPGA_ETHR_START + 16, - .flags = IORESOURCE_MEM, - }, - [1] = { - .start = INT_ETHER, - .end = INT_ETHER, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device smc91x_device = { - .name = "smc91x", - .id = 0, - .num_resources = ARRAY_SIZE(smc91x_resources), - .resource = smc91x_resources, -}; - -static struct platform_device *devices[] __initdata = { - &smc91x_device, -}; - -static void __init innovator_init(void) -{ - if (!machine_is_innovator()) - return; - - (void) platform_add_devices(devices, ARRAY_SIZE(devices)); -} - -/* Only FPGA needs to be mapped here. All others are done with ioremap */ -static struct map_desc innovator_io_desc[] __initdata = { -{ OMAP1510P1_FPGA_BASE, OMAP1510P1_FPGA_START, OMAP1510P1_FPGA_SIZE, - MT_DEVICE }, -}; - -static void __init innovator_map_io(void) -{ - omap_map_io(); - iotable_init(innovator_io_desc, ARRAY_SIZE(innovator_io_desc)); - - /* Dump the Innovator FPGA rev early - useful info for support. */ - printk("Innovator FPGA Rev %d.%d Board Rev %d\n", - fpga_read(OMAP1510P1_FPGA_REV_HIGH), - fpga_read(OMAP1510P1_FPGA_REV_LOW), - fpga_read(OMAP1510P1_FPGA_BOARD_REV)); -} - -MACHINE_START(INNOVATOR, "TI-Innovator/OMAP1510") - MAINTAINER("MontaVista Software, Inc.") - BOOT_MEM(0x10000000, 0xe0000000, 0xe0000000) - BOOT_PARAMS(0x10000100) - MAPIO(innovator_map_io) - INITIRQ(innovator_init_irq) - INIT_MACHINE(innovator_init) -MACHINE_END diff -Nru a/arch/arm/mach-omap/innovator1610.c b/arch/arm/mach-omap/innovator1610.c --- a/arch/arm/mach-omap/innovator1610.c Tue May 18 23:38:07 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,91 +0,0 @@ -/* - * linux/arch/arm/mach-omap/innovator1610.c - * - * This file contains Innovator-specific code. - * - * Copyright (C) 2002 MontaVista Software, Inc. - * - * Copyright (C) 2001 RidgeRun, Inc. - * Author: Greg Lonnon - * - * 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 - * published by the Free Software Foundation. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "common.h" - -void -innovator_init_irq(void) -{ - omap_init_irq(); -} - -static struct resource smc91x_resources[] = { - [0] = { - .start = OMAP1610_ETHR_START, /* Physical */ - .end = OMAP1610_ETHR_START + SZ_4K, - .flags = IORESOURCE_MEM, - }, - [1] = { - .start = 0, /* Really GPIO 0 */ - .end = 0, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device smc91x_device = { - .name = "smc91x", - .id = 0, - .num_resources = ARRAY_SIZE(smc91x_resources), - .resource = smc91x_resources, -}; - -static struct platform_device *devices[] __initdata = { - &smc91x_device, -}; - -static void __init innovator_init(void) -{ - if (!machine_is_innovator()) - return; - - (void) platform_add_devices(devices, ARRAY_SIZE(devices)); -} - -static struct map_desc innovator_io_desc[] __initdata = { -{ OMAP1610_ETHR_BASE, OMAP1610_ETHR_START, OMAP1610_ETHR_SIZE,MT_DEVICE }, -{ OMAP1610_NOR_FLASH_BASE, OMAP1610_NOR_FLASH_START, OMAP1610_NOR_FLASH_SIZE, - MT_DEVICE }, -}; - -static void __init innovator_map_io(void) -{ - omap_map_io(); - iotable_init(innovator_io_desc, ARRAY_SIZE(innovator_io_desc)); -} - -MACHINE_START(INNOVATOR, "TI-Innovator/OMAP1610") - MAINTAINER("MontaVista Software, Inc.") - BOOT_MEM(0x10000000, 0xe0000000, 0xe0000000) - BOOT_PARAMS(0x10000100) - MAPIO(innovator_map_io) - INITIRQ(innovator_init_irq) - INIT_MACHINE(innovator_init) -MACHINE_END - diff -Nru a/arch/arm/mach-omap/omap-generic.c b/arch/arm/mach-omap/omap-generic.c --- a/arch/arm/mach-omap/omap-generic.c Tue May 18 23:38:08 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,77 +0,0 @@ -/* - * linux/arch/arm/mach-omap/generic.c - * - * Modified from innovator.c - * - * Code for generic OMAP board. Should work on many OMAP systems where - * the device drivers take care of all the necessary hardware initialization. - * Do not put any board specific code to this file; create a new machine - * type if you need custom low-level initializations. - * - * 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 - * published by the Free Software Foundation. - */ - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include "common.h" - -static void __init omap_generic_init_irq(void) -{ - omap_init_irq(); -} - -/* - * Muxes the serial ports on - */ -static void __init omap_early_serial_init(void) -{ - omap_cfg_reg(UART1_TX); - omap_cfg_reg(UART1_RTS); - - omap_cfg_reg(UART2_TX); - omap_cfg_reg(UART2_RTS); - - omap_cfg_reg(UART3_TX); - omap_cfg_reg(UART3_RX); -} - -static void __init omap_generic_init(void) -{ - if (!machine_is_omap_generic()) - return; - - /* - * Make sure the serial ports are muxed on at this point. - * You have to mux them off in device drivers later on - * if not needed. - */ - if (cpu_is_omap1510()) { - omap_early_serial_init(); - } -} - -static void __init omap_generic_map_io(void) -{ - omap_map_io(); -} - -MACHINE_START(OMAP_GENERIC, "Generic OMAP-1510/1610") - MAINTAINER("Tony Lindgren ") - BOOT_MEM(0x10000000, 0xe0000000, 0xe0000000) - BOOT_PARAMS(0x10000100) - MAPIO(omap_generic_map_io) - INITIRQ(omap_generic_init_irq) - INIT_MACHINE(omap_generic_init) -MACHINE_END diff -Nru a/arch/arm/mach-omap/omap-perseus2.c b/arch/arm/mach-omap/omap-perseus2.c --- a/arch/arm/mach-omap/omap-perseus2.c Tue May 18 23:38:06 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,116 +0,0 @@ -/* - * linux/arch/arm/mach-omap/omap-perseus2.c - * - * Modified from omap-generic.c - * - * 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 - * published by the Free Software Foundation. - */ - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include - -#include "common.h" - -void omap_perseus2_init_irq(void) -{ - omap_init_irq(); -} - -static struct resource smc91x_resources[] = { - [0] = { - .start = OMAP730_FPGA_ETHR_START, /* Physical */ - .end = OMAP730_FPGA_ETHR_START + SZ_4K, - .flags = IORESOURCE_MEM, - }, - [1] = { - .start = 0, - .end = 0, - .flags = INT_ETHER, - }, -}; - -static struct platform_device smc91x_device = { - .name = "smc91x", - .id = 0, - .num_resources = ARRAY_SIZE(smc91x_resources), - .resource = smc91x_resources, -}; - -static struct platform_device *devices[] __initdata = { - &smc91x_device, -}; - -static void __init omap_perseus2_init(void) -{ - if (!machine_is_omap_perseus2()) - return; - - (void) platform_add_devices(devices, ARRAY_SIZE(devices)); -} - -/* Only FPGA needs to be mapped here. All others are done with ioremap */ -static struct map_desc omap_perseus2_io_desc[] __initdata = { - {OMAP730_FPGA_BASE, OMAP730_FPGA_START, OMAP730_FPGA_SIZE, - MT_DEVICE}, -}; - -static void __init omap_perseus2_map_io(void) -{ - omap_map_io(); - iotable_init(omap_perseus2_io_desc, - ARRAY_SIZE(omap_perseus2_io_desc)); - - /* Early, board-dependent init */ - - /* - * Hold GSM Reset until needed - */ - *DSP_M_CTL &= ~1; - - /* - * UARTs -> done automagically by 8250 driver - */ - - /* - * CSx timings, GPIO Mux ... setup - */ - - /* Flash: CS0 timings setup */ - *((volatile __u32 *) OMAP_FLASH_CFG_0) = 0x0000fff3; - *((volatile __u32 *) OMAP_FLASH_ACFG_0) = 0x00000088; - - /* - * Ethernet support trough the debug board - * CS1 timings setup - */ - *((volatile __u32 *) OMAP_FLASH_CFG_1) = 0x0000fff3; - *((volatile __u32 *) OMAP_FLASH_ACFG_1) = 0x00000000; - - /* - * Configure MPU_EXT_NIRQ IO in IO_CONF9 register, - * It is used as the Ethernet controller interrupt - */ - *((volatile __u32 *) PERSEUS2_IO_CONF_9) &= 0x1FFFFFFF; -} - -MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2") - MAINTAINER("Kevin Hilman ") - BOOT_MEM(0x10000000, 0xe0000000, 0xe0000000) - BOOT_PARAMS(0x10000100) - MAPIO(omap_perseus2_map_io) - INITIRQ(omap_perseus2_init_irq) - INIT_MACHINE(omap_perseus2_init) -MACHINE_END diff -Nru a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig --- a/arch/arm/mach-pxa/Kconfig Tue May 18 23:38:06 2004 +++ b/arch/arm/mach-pxa/Kconfig Tue May 18 23:38:06 2004 @@ -1,13 +1,25 @@ -menu "Intel PXA250/210 Implementations" +menu "Intel PXA2xx Implementations" config ARCH_LUBBOCK bool "Intel DBPXA250 Development Platform" depends on ARCH_PXA + select PXA25x config ARCH_PXA_IDP bool "Accelent Xscale IDP" depends on ARCH_PXA + select PXA25x endmenu + +config PXA25x + bool + help + Select code specific to PXA21x/25x/26x variants + +config PXA27x + bool + help + Select code specific to PXA27x variants diff -Nru a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile --- a/arch/arm/mach-pxa/Makefile Tue May 18 23:38:07 2004 +++ b/arch/arm/mach-pxa/Makefile Tue May 18 23:38:07 2004 @@ -4,6 +4,8 @@ # Common support (must be linked before board specific support) obj-y += generic.o irq.o dma.o +obj-$(CONFIG_PXA25x) += pxa25x.o +obj-$(CONFIG_PXA27x) += pxa27x.o # Specific board support obj-$(CONFIG_ARCH_LUBBOCK) += lubbock.o diff -Nru a/arch/arm/mach-pxa/dma.c b/arch/arm/mach-pxa/dma.c --- a/arch/arm/mach-pxa/dma.c Tue May 18 23:38:09 2004 +++ b/arch/arm/mach-pxa/dma.c Tue May 18 23:38:09 2004 @@ -28,7 +28,7 @@ char *name; void (*irq_handler)(int, void *, struct pt_regs *); void *data; -} dma_channels[16]; +} dma_channels[PXA_DMA_CHANNELS]; int pxa_request_dma (char *name, pxa_dma_prio prio, @@ -45,7 +45,7 @@ local_irq_save(flags); /* try grabbing a DMA channel with the requested priority */ - for (i = prio; i < prio + (prio == DMA_PRIO_LOW) ? 8 : 4; i++) { + for (i = prio; i < prio + PXA_DMA_NBCH(prio); i++) { if (!dma_channels[i].name) { found = 1; break; @@ -97,7 +97,7 @@ { int i, dint = DINT; - for (i = 0; i < 16; i++) { + for (i = 0; i < PXA_DMA_CHANNELS; i++) { if (dint & (1 << i)) { struct dma_channel *channel = &dma_channels[i]; if (channel->name && channel->irq_handler) { diff -Nru a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c --- a/arch/arm/mach-pxa/generic.c Tue May 18 23:38:06 2004 +++ b/arch/arm/mach-pxa/generic.c Tue May 18 23:38:06 2004 @@ -31,77 +31,11 @@ #include #include +#include #include "generic.h" /* - * Various clock factors driven by the CCCR register. - */ - -/* Crystal Frequency to Memory Frequency Multiplier (L) */ -static unsigned char L_clk_mult[32] = { 0, 27, 32, 36, 40, 45, 0, }; - -/* Memory Frequency to Run Mode Frequency Multiplier (M) */ -static unsigned char M_clk_mult[4] = { 0, 1, 2, 4 }; - -/* Run Mode Frequency to Turbo Mode Frequency Multiplier (N) */ -/* Note: we store the value N * 2 here. */ -static unsigned char N2_clk_mult[8] = { 0, 0, 2, 3, 4, 0, 6, 0 }; - -/* Crystal clock */ -#define BASE_CLK 3686400 - -/* - * Get the clock frequency as reflected by CCCR and the turbo flag. - * We assume these values have been applied via a fcs. - * If info is not 0 we also display the current settings. - */ -unsigned int get_clk_frequency_khz(int info) -{ - unsigned long cccr, turbo; - unsigned int l, L, m, M, n2, N; - - cccr = CCCR; - asm( "mrc\tp14, 0, %0, c6, c0, 0" : "=r" (turbo) ); - - l = L_clk_mult[(cccr >> 0) & 0x1f]; - m = M_clk_mult[(cccr >> 5) & 0x03]; - n2 = N2_clk_mult[(cccr >> 7) & 0x07]; - - L = l * BASE_CLK; - M = m * L; - N = n2 * M / 2; - - if(info) - { - L += 5000; - printk( KERN_INFO "Memory clock: %d.%02dMHz (*%d)\n", - L / 1000000, (L % 1000000) / 10000, l ); - M += 5000; - printk( KERN_INFO "Run Mode clock: %d.%02dMHz (*%d)\n", - M / 1000000, (M % 1000000) / 10000, m ); - N += 5000; - printk( KERN_INFO "Turbo Mode clock: %d.%02dMHz (*%d.%d, %sactive)\n", - N / 1000000, (N % 1000000) / 10000, n2 / 2, (n2 % 2) * 5, - (turbo & 1) ? "" : "in" ); - } - - return (turbo & 1) ? (N/1000) : (M/1000); -} - -EXPORT_SYMBOL(get_clk_frequency_khz); - -/* - * Return the current lclk requency in units of 10kHz - */ -unsigned int get_lclk_frequency_10khz(void) -{ - return L_clk_mult[(CCCR >> 0) & 0x1f] * BASE_CLK / 10000; -} - -EXPORT_SYMBOL(get_lclk_frequency_10khz); - -/* * Handy function to set GPIO alternate functions */ @@ -125,16 +59,21 @@ EXPORT_SYMBOL(pxa_gpio_mode); /* - * Note that 0xfffe0000-0xffffffff is reserved for the vector table and - * cache flush area. + * Intel PXA2xx internal register mapping. + * + * Note 1: not all PXA2xx variants implement all those addresses. + * + * Note 2: virtual 0xfffe0000-0xffffffff is reserved for the vector table + * and cache flush area. */ static struct map_desc standard_io_desc[] __initdata = { /* virtual physical length type */ - { 0xf6000000, 0x20000000, 0x01000000, MT_DEVICE }, /* PCMCIA0 IO */ - { 0xf7000000, 0x30000000, 0x01000000, MT_DEVICE }, /* PCMCIA1 IO */ - { 0xf8000000, 0x40000000, 0x01400000, MT_DEVICE }, /* Devs */ - { 0xfa000000, 0x44000000, 0x00100000, MT_DEVICE }, /* LCD */ - { 0xfc000000, 0x48000000, 0x00100000, MT_DEVICE }, /* Mem Ctl */ + { 0xf2000000, 0x40000000, 0x01800000, MT_DEVICE }, /* Devs */ + { 0xf4000000, 0x44000000, 0x00100000, MT_DEVICE }, /* LCD */ + { 0xf6000000, 0x48000000, 0x00100000, MT_DEVICE }, /* Mem Ctl */ + { 0xf8000000, 0x4c000000, 0x00100000, MT_DEVICE }, /* USB host */ + { 0xfa000000, 0x50000000, 0x00100000, MT_DEVICE }, /* Camera */ + { 0xfe000000, 0x58000000, 0x00100000, MT_DEVICE }, /* IMem ctl */ { 0xff000000, 0x00000000, 0x00100000, MT_DEVICE } /* UNCACHED_PHYS_0 */ }; @@ -205,9 +144,45 @@ } }; +static struct pxafb_mach_info pxa_fb_info; + +void __init set_pxa_fb_info(struct pxafb_mach_info *hard_pxa_fb_info) +{ + memcpy(&pxa_fb_info,hard_pxa_fb_info,sizeof(struct pxafb_mach_info)); +} +EXPORT_SYMBOL(set_pxa_fb_info); + +static struct resource pxafb_resources[] = { + [0] = { + .start = 0x44000000, + .end = 0x4400ffff, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = IRQ_LCD, + .end = IRQ_LCD, + .flags = IORESOURCE_IRQ, + }, +}; + +static u64 fb_dma_mask = ~(u64)0; + +static struct platform_device pxafb_device = { + .name = "pxafb", + .id = 0, + .dev = { + .platform_data = &pxa_fb_info, + .dma_mask = &fb_dma_mask, + .coherent_dma_mask = 0xffffffff, + }, + .num_resources = ARRAY_SIZE(pxafb_resources), + .resource = pxafb_resources, +}; + static struct platform_device *devices[] __initdata = { &pxamci_device, &udc_device, + &pxafb_device, }; static int __init pxa_init(void) diff -Nru a/arch/arm/mach-pxa/pm.c b/arch/arm/mach-pxa/pm.c --- a/arch/arm/mach-pxa/pm.c Tue May 18 23:38:08 2004 +++ b/arch/arm/mach-pxa/pm.c Tue May 18 23:38:08 2004 @@ -32,6 +32,11 @@ #define SAVE(x) sleep_save[SLEEP_SAVE_##x] = x #define RESTORE(x) x = sleep_save[SLEEP_SAVE_##x] +#define RESTORE_GPLEVEL(n) do { \ + GPSR##n = sleep_save[SLEEP_SAVE_GPLR##n]; \ + GPCR##n = ~sleep_save[SLEEP_SAVE_GPLR##n]; \ +} while (0) + /* * List of global PXA peripheral registers to preserve. * More ones like CP and general purpose register values are preserved @@ -42,16 +47,13 @@ SLEEP_SAVE_OSCR, SLEEP_SAVE_OIER, SLEEP_SAVE_OSMR0, SLEEP_SAVE_OSMR1, SLEEP_SAVE_OSMR2, SLEEP_SAVE_OSMR3, + SLEEP_SAVE_GPLR0, SLEEP_SAVE_GPLR1, SLEEP_SAVE_GPLR2, SLEEP_SAVE_GPDR0, SLEEP_SAVE_GPDR1, SLEEP_SAVE_GPDR2, SLEEP_SAVE_GRER0, SLEEP_SAVE_GRER1, SLEEP_SAVE_GRER2, SLEEP_SAVE_GFER0, SLEEP_SAVE_GFER1, SLEEP_SAVE_GFER2, SLEEP_SAVE_GAFR0_L, SLEEP_SAVE_GAFR1_L, SLEEP_SAVE_GAFR2_L, SLEEP_SAVE_GAFR0_U, SLEEP_SAVE_GAFR1_U, SLEEP_SAVE_GAFR2_U, - SLEEP_SAVE_FFIER, SLEEP_SAVE_FFLCR, SLEEP_SAVE_FFMCR, - SLEEP_SAVE_FFSPR, SLEEP_SAVE_FFISR, - SLEEP_SAVE_FFDLL, SLEEP_SAVE_FFDLH, - SLEEP_SAVE_ICMR, SLEEP_SAVE_CKEN, @@ -74,21 +76,6 @@ /* preserve current time */ delta = xtime.tv_sec - RCNR; - /* - * Temporary solution. This won't be necessary once - * we move pxa support into the serial driver - * Save the FF UART - */ - SAVE(FFIER); - SAVE(FFLCR); - SAVE(FFMCR); - SAVE(FFSPR); - SAVE(FFISR); - FFLCR |= 0x80; - SAVE(FFDLL); - SAVE(FFDLH); - FFLCR &= 0xef; - /* save vital registers */ SAVE(OSCR); SAVE(OSMR0); @@ -97,6 +84,7 @@ SAVE(OSMR3); SAVE(OIER); + SAVE(GPLR0); SAVE(GPLR1); SAVE(GPLR2); SAVE(GPDR0); SAVE(GPDR1); SAVE(GPDR2); SAVE(GRER0); SAVE(GRER1); SAVE(GRER2); SAVE(GFER0); SAVE(GFER1); SAVE(GFER2); @@ -146,14 +134,15 @@ PSPR = 0; /* restore registers */ - RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2); - RESTORE(GRER0); RESTORE(GRER1); RESTORE(GRER2); - RESTORE(GFER0); RESTORE(GFER1); RESTORE(GFER2); RESTORE(GAFR0_L); RESTORE(GAFR0_U); RESTORE(GAFR1_L); RESTORE(GAFR1_U); RESTORE(GAFR2_L); RESTORE(GAFR2_U); + RESTORE_GPLEVEL(0); RESTORE_GPLEVEL(1); RESTORE_GPLEVEL(2); + RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2); + RESTORE(GRER0); RESTORE(GRER1); RESTORE(GRER2); + RESTORE(GFER0); RESTORE(GFER1); RESTORE(GFER2); - PSSR = PSSR_PH; + PSSR = PSSR_RDH | PSSR_PH; RESTORE(OSMR0); RESTORE(OSMR1); @@ -167,22 +156,6 @@ ICLR = 0; ICCR = 1; RESTORE(ICMR); - - /* - * Temporary solution. This won't be necessary once - * we move pxa support into the serial driver. - * Restore the FF UART. - */ - RESTORE(FFMCR); - RESTORE(FFSPR); - RESTORE(FFLCR); - FFLCR |= 0x80; - RESTORE(FFDLH); - RESTORE(FFDLL); - RESTORE(FFLCR); - RESTORE(FFISR); - FFFCR = 0x07; - RESTORE(FFIER); /* restore current time */ xtime.tv_sec = RCNR + delta; diff -Nru a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/mach-pxa/pxa25x.c Tue May 18 23:38:09 2004 @@ -0,0 +1,94 @@ +/* + * linux/arch/arm/mach-pxa/pxa25x.c + * + * Author: Nicolas Pitre + * Created: Jun 15, 2001 + * Copyright: MontaVista Software Inc. + * + * Code specific to PXA21x/25x/26x variants. + * + * 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 + * published by the Free Software Foundation. + * + * Since this file should be linked before any other machine specific file, + * the __initcall() here will be executed first. This serves as default + * initialization stuff for PXA machines which can be overridden later if + * need be. + */ +#include +#include +#include +#include + +#include + +#include "generic.h" + +/* + * Various clock factors driven by the CCCR register. + */ + +/* Crystal Frequency to Memory Frequency Multiplier (L) */ +static unsigned char L_clk_mult[32] = { 0, 27, 32, 36, 40, 45, 0, }; + +/* Memory Frequency to Run Mode Frequency Multiplier (M) */ +static unsigned char M_clk_mult[4] = { 0, 1, 2, 4 }; + +/* Run Mode Frequency to Turbo Mode Frequency Multiplier (N) */ +/* Note: we store the value N * 2 here. */ +static unsigned char N2_clk_mult[8] = { 0, 0, 2, 3, 4, 0, 6, 0 }; + +/* Crystal clock */ +#define BASE_CLK 3686400 + +/* + * Get the clock frequency as reflected by CCCR and the turbo flag. + * We assume these values have been applied via a fcs. + * If info is not 0 we also display the current settings. + */ +unsigned int get_clk_frequency_khz(int info) +{ + unsigned long cccr, turbo; + unsigned int l, L, m, M, n2, N; + + cccr = CCCR; + asm( "mrc\tp14, 0, %0, c6, c0, 0" : "=r" (turbo) ); + + l = L_clk_mult[(cccr >> 0) & 0x1f]; + m = M_clk_mult[(cccr >> 5) & 0x03]; + n2 = N2_clk_mult[(cccr >> 7) & 0x07]; + + L = l * BASE_CLK; + M = m * L; + N = n2 * M / 2; + + if(info) + { + L += 5000; + printk( KERN_INFO "Memory clock: %d.%02dMHz (*%d)\n", + L / 1000000, (L % 1000000) / 10000, l ); + M += 5000; + printk( KERN_INFO "Run Mode clock: %d.%02dMHz (*%d)\n", + M / 1000000, (M % 1000000) / 10000, m ); + N += 5000; + printk( KERN_INFO "Turbo Mode clock: %d.%02dMHz (*%d.%d, %sactive)\n", + N / 1000000, (N % 1000000) / 10000, n2 / 2, (n2 % 2) * 5, + (turbo & 1) ? "" : "in" ); + } + + return (turbo & 1) ? (N/1000) : (M/1000); +} + +EXPORT_SYMBOL(get_clk_frequency_khz); + +/* + * Return the current lclk requency in units of 10kHz + */ +unsigned int get_lclk_frequency_10khz(void) +{ + return L_clk_mult[(CCCR >> 0) & 0x1f] * BASE_CLK / 10000; +} + +EXPORT_SYMBOL(get_lclk_frequency_10khz); + diff -Nru a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/mach-pxa/pxa27x.c Tue May 18 23:38:09 2004 @@ -0,0 +1,120 @@ +/* + * linux/arch/arm/mach-pxa/pxa27x.c + * + * Author: Nicolas Pitre + * Created: Nov 05, 2002 + * Copyright: MontaVista Software Inc. + * + * Code specific to PXA27x aka Bulverde. + * + * 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 + * published by the Free Software Foundation. + */ +#include +#include +#include +#include +#include + +#include + +#include "generic.h" + +/* Crystal clock : 13-MHZ*/ +#define BASE_CLK 13000000 + +/* + * Get the clock frequency as reflected by CCSR and the turbo flag. + * We assume these values have been applied via a fcs. + * If info is not 0 we also display the current settings. + * + * For more details, refer to Bulverde Manual, section 3.8.2.1 + */ +unsigned int get_clk_frequency_khz( int info) +{ + unsigned long ccsr, turbo, b, ht; + unsigned int l, L, m, M, n2, N, S, cccra; + + ccsr = CCSR; + cccra = CCCR & (0x1 << 25); + + /* Read clkcfg register: it has turbo, b, half-turbo (and f) */ + asm( "mrc\tp14, 0, %0, c6, c0, 0" : "=r" (turbo) ); + b = (turbo & (0x1 << 3)); + ht = (turbo & (0x1 << 2)); + + l = ccsr & 0x1f; + n2 = (ccsr>>7) & 0xf; + if (l == 31) { + /* The calculation from the Yellow Book is incorrect: + it says M=4 for L=21-30 (which is easy to calculate + by subtracting 1 and then dividing by 10, but not + with 31, so we'll do it manually */ + m = 1 << 2; + } else { + m = 1 << ((l-1)/10); + } + + L = l * BASE_CLK; + N = (n2 * L) / 2; + S = (b) ? L : (L/2); + if (cccra == 0) + M = L/m; + else + M = (b) ? L : (L/2); + + if (info) { + printk( KERN_INFO "Run Mode clock: %d.%02dMHz (*%d)\n", + L / 1000000, (L % 1000000) / 10000, l ); + printk( KERN_INFO "Memory clock: %d.%02dMHz (/%d)\n", + M / 1000000, (M % 1000000) / 10000, m ); + printk( KERN_INFO "Turbo Mode clock: %d.%02dMHz (*%d.%d, %sactive)\n", + N / 1000000, (N % 1000000)/10000, n2 / 2, (n2 % 2)*5, + (turbo & 1) ? "" : "in" ); + printk( KERN_INFO "System bus clock: %d.%02dMHz \n", + S / 1000000, (S % 1000000) / 10000 ); + } + + return (turbo & 1) ? (N/1000) : (L/1000); +} + +/* + * Return the current mem clock frequency in units of 10kHz as + * reflected by CCCR[A], B, and L + */ +unsigned int get_lclk_frequency_10khz(void) +{ + unsigned long ccsr, clkcfg, b; + unsigned int l, L, m, M, cccra; + + cccra = CCCR & (0x1 << 25); + + /* Read clkcfg register to obtain b */ + asm( "mrc\tp14, 0, %0, c6, c0, 0" : "=r" (clkcfg) ); + b = (clkcfg & (0x1 << 3)); + + ccsr = CCSR; + l = ccsr & 0x1f; + if (l == 31) { + /* The calculation from the Yellow Book is incorrect: + it says M=4 for L=21-30 (which is easy to calculate + by subtracting 1 and then dividing by 10, but not + with 31, so we'll do it manually */ + m = 1 << 2; + } else { + m = 1 << ((l-1)/10); + } + + L = l * BASE_CLK; + if (cccra == 0) + M = L/m; + else + M = (b) ? L : L/2; + + return (M / 10000); +} + +EXPORT_SYMBOL(get_clk_frequency_khz); +EXPORT_SYMBOL(get_lclk_frequency_10khz); + diff -Nru a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig --- a/arch/arm/mach-s3c2410/Kconfig Tue May 18 23:38:06 2004 +++ b/arch/arm/mach-s3c2410/Kconfig Tue May 18 23:38:06 2004 @@ -16,6 +16,13 @@ Say Y here if you are using the HP IPAQ H1940 . +config ARCH_SMDK2410 + bool "SMDK2410/A9M2410" + depends on ARCH_S3C2410 + help + Say Y here if you are using the SMDK2410 or the derived module A9M2410 + + config MACH_VR1000 bool "Simtec VR1000" depends on ARCH_S3C2410 diff -Nru a/arch/arm/mach-s3c2410/Makefile b/arch/arm/mach-s3c2410/Makefile --- a/arch/arm/mach-s3c2410/Makefile Tue May 18 23:38:05 2004 +++ b/arch/arm/mach-s3c2410/Makefile Tue May 18 23:38:05 2004 @@ -12,6 +12,7 @@ obj-$(CONFIG_ARCH_BAST) += mach-bast.o obj-$(CONFIG_MACH_H1940) += mach-h1940.o obj-$(CONFIG_ARCH_H1940) += mach-h1940.o +obj-$(CONFIG_ARCH_SMDK2410) += mach-smdk2410.o obj-$(CONFIG_MACH_VR1000) += mach-vr1000.o #obj-$(CONFIG_PCI) +=$(pci-y) diff -Nru a/arch/arm/mach-s3c2410/mach-smdk2410.c b/arch/arm/mach-s3c2410/mach-smdk2410.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/arm/mach-s3c2410/mach-smdk2410.c Tue May 18 23:38:09 2004 @@ -0,0 +1,109 @@ +/*********************************************************************** + * + * linux/arch/arm/mach-s3c2410/mach-smdk2410.c + * + * Copyright (C) 2004 by FS Forth-Systeme GmbH + * All rights reserved. + * + * $Id: mach-smdk2410.c,v 1.1 2004/05/11 14:15:38 mpietrek Exp $ + * @Author: Jonas Dietsche + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @History: + * derived from linux/arch/arm/mach-s3c2410/mach-bast.c, written by + * Ben Dooks + ***********************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +#include + +#include "s3c2410.h" + + +static struct map_desc smdk2410_iodesc[] __initdata = { + /* nothing here yet */ +}; + +#define UCON S3C2410_UCON_DEFAULT +#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB +#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE + +/* base baud rate for all our UARTs */ +static unsigned long smdk2410_serial_clock = 24*1000*1000; + +static struct s3c2410_uartcfg smdk2410_uartcfgs[] = { + [0] = { + .hwport = 0, + .flags = 0, + .clock = &smdk2410_serial_clock, + .ucon = UCON, + .ulcon = ULCON, + .ufcon = UFCON, + }, + [1] = { + .hwport = 1, + .flags = 0, + .clock = &smdk2410_serial_clock, + .ucon = UCON, + .ulcon = ULCON, + .ufcon = UFCON, + }, + [2] = { + .hwport = 2, + .flags = 0, + .clock = &smdk2410_serial_clock, + .ucon = UCON, + .ulcon = ULCON, + .ufcon = UFCON, + } +}; + + +void __init smdk2410_map_io(void) +{ + s3c2410_map_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc)); + s3c2410_uartcfgs = smdk2410_uartcfgs; +} + +void __init smdk2410_init_irq(void) +{ + s3c2410_init_irq(); +} + +MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch + * to SMDK2410 */ + MAINTAINER("Jonas Dietsche") + BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, S3C2410_VA_UART) + BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100) + MAPIO(smdk2410_map_io) + INITIRQ(smdk2410_init_irq) +MACHINE_END diff -Nru a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig --- a/arch/arm/mm/Kconfig Tue May 18 23:38:06 2004 +++ b/arch/arm/mm/Kconfig Tue May 18 23:38:06 2004 @@ -220,7 +220,7 @@ # XScale config CPU_XSCALE bool - depends on ARCH_IOP3XX || ARCH_ADIFCC || ARCH_PXA + depends on ARCH_IOP3XX || ARCH_ADIFCC || ARCH_PXA || ARCH_IXP4XX default y select CPU_32v5 select CPU_ABRT_EV5T diff -Nru a/arch/arm/mm/blockops.c b/arch/arm/mm/blockops.c --- a/arch/arm/mm/blockops.c Tue May 18 23:38:09 2004 +++ b/arch/arm/mm/blockops.c Tue May 18 23:38:09 2004 @@ -133,7 +133,7 @@ unsigned int cache_type; int i; - asm("mcr p15, 0, %0, c0, c0, 1" : "=r" (cache_type)); + asm("mrc p15, 0, %0, c0, c0, 1" : "=r" (cache_type)); printk("Checking V6 block cache operations:\n"); register_undef_hook(&blockops_hook); diff -Nru a/arch/arm/mm/cache-v6.S b/arch/arm/mm/cache-v6.S --- a/arch/arm/mm/cache-v6.S Tue May 18 23:38:05 2004 +++ b/arch/arm/mm/cache-v6.S Tue May 18 23:38:05 2004 @@ -151,6 +151,7 @@ add r0, r0, #D_CACHE_LINE_SIZE cmp r0, r1 blo 1b + mov r0, #0 mcr p15, 0, r0, c7, c10, 4 @ drain write buffer mov pc, lr @@ -188,6 +189,7 @@ mcr p15, 0, r0, c7, c15, 1 @ clean & invalidate line #endif add r0, r0, #D_CACHE_LINE_SIZE + cmp r0, r1 blo 1b mov r0, #0 mcr p15, 0, r0, c7, c10, 4 @ drain write buffer diff -Nru a/arch/arm/mm/init.c b/arch/arm/mm/init.c --- a/arch/arm/mm/init.c Tue May 18 23:38:05 2004 +++ b/arch/arm/mm/init.c Tue May 18 23:38:05 2004 @@ -77,7 +77,7 @@ else if (!page_count(page)) free++; else - shared += atomic_read(&page->count) - 1; + shared += page_count(page) - 1; page++; } while (page < end); } diff -Nru a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c --- a/arch/arm/mm/ioremap.c Tue May 18 23:38:08 2004 +++ b/arch/arm/mm/ioremap.c Tue May 18 23:38:08 2004 @@ -20,6 +20,7 @@ * We use MMU protection domains to trap any attempt to access the bank * that is not currently mapped. (This isn't fully implemented yet.) */ +#include #include #include #include @@ -162,8 +163,10 @@ } return (void *) (offset + (char *)addr); } +EXPORT_SYMBOL(__ioremap); void __iounmap(void *addr) { vfree((void *) (PAGE_MASK & (unsigned long) addr)); } +EXPORT_SYMBOL(__iounmap); diff -Nru a/arch/arm/mm/mm-armv.c b/arch/arm/mm/mm-armv.c --- a/arch/arm/mm/mm-armv.c Tue May 18 23:38:08 2004 +++ b/arch/arm/mm/mm-armv.c Tue May 18 23:38:08 2004 @@ -305,27 +305,27 @@ [MT_DEVICE] = { .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | L_PTE_WRITE, - .prot_l1 = PMD_TYPE_TABLE | PMD_BIT4, - .prot_sect = PMD_TYPE_SECT | PMD_BIT4 | PMD_SECT_UNCACHED | + .prot_l1 = PMD_TYPE_TABLE, + .prot_sect = PMD_TYPE_SECT | PMD_SECT_UNCACHED | PMD_SECT_AP_WRITE, .domain = DOMAIN_IO, }, [MT_CACHECLEAN] = { - .prot_sect = PMD_TYPE_SECT | PMD_BIT4, + .prot_sect = PMD_TYPE_SECT, .domain = DOMAIN_KERNEL, }, [MT_MINICLEAN] = { - .prot_sect = PMD_TYPE_SECT | PMD_BIT4 | PMD_SECT_MINICACHE, + .prot_sect = PMD_TYPE_SECT | PMD_SECT_MINICACHE, .domain = DOMAIN_KERNEL, }, [MT_VECTORS] = { .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | L_PTE_EXEC, - .prot_l1 = PMD_TYPE_TABLE | PMD_BIT4, + .prot_l1 = PMD_TYPE_TABLE, .domain = DOMAIN_USER, }, [MT_MEMORY] = { - .prot_sect = PMD_TYPE_SECT | PMD_BIT4 | PMD_SECT_AP_WRITE, + .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE, .domain = DOMAIN_KERNEL, } }; @@ -353,6 +353,15 @@ ecc_mask = 0; } + if (cpu_arch <= CPU_ARCH_ARMv5) { + mem_types[MT_DEVICE].prot_l1 |= PMD_BIT4; + mem_types[MT_DEVICE].prot_sect |= PMD_BIT4; + mem_types[MT_CACHECLEAN].prot_sect |= PMD_BIT4; + mem_types[MT_MINICLEAN].prot_sect |= PMD_BIT4; + mem_types[MT_VECTORS].prot_l1 |= PMD_BIT4; + mem_types[MT_MEMORY].prot_sect |= PMD_BIT4; + } + /* * ARMv6 and above have extended page tables. */ @@ -482,6 +491,7 @@ pgd_t *pgd; pmd_t *pmd; int i; + int cpu_arch = cpu_architecture(); if (current->mm && current->mm->pgd) pgd = current->mm->pgd; @@ -491,7 +501,9 @@ for (i = 0; i < FIRST_USER_PGD_NR + USER_PTRS_PER_PGD; i++) { pmdval = (i << PGDIR_SHIFT) | PMD_SECT_AP_WRITE | PMD_SECT_AP_READ | - PMD_BIT4 | PMD_TYPE_SECT; + PMD_TYPE_SECT; + if (cpu_arch <= CPU_ARCH_ARMv5) + pmdval |= PMD_BIT4; pmd = pmd_offset(pgd + i, i << PGDIR_SHIFT); set_pmd(pmd, __pmd(pmdval)); } diff -Nru a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S --- a/arch/arm/mm/proc-xscale.S Tue May 18 23:38:08 2004 +++ b/arch/arm/mm/proc-xscale.S Tue May 18 23:38:08 2004 @@ -298,7 +298,7 @@ add r0, r0, #CACHELINESIZE cmp r0, r1 blo 1b - mcr p15, 0, r0, c7, c10, 1 @ Drain Write (& Fill) Buffer + mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer mov pc, lr /* @@ -315,7 +315,7 @@ add r0, r0, #CACHELINESIZE cmp r0, r1 blo 1b - mcr p15, 0, r0, c7, c10, 1 @ Drain Write (& Fill) Buffer + mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer mov pc, lr /* @@ -333,7 +333,7 @@ add r0, r0, #CACHELINESIZE cmp r0, r1 blo 1b - mcr p15, 0, r0, c7, c10, 1 @ Drain Write (& Fill) Buffer + mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer mov pc, lr ENTRY(xscale_cache_fns) @@ -647,6 +647,11 @@ .asciz "XScale-PXA210" .size cpu_pxa210_name, . - cpu_pxa210_name + .type cpu_ixp42x_name, #object +cpu_ixp42x_name: + .asciz "XScale-IXP42x Family" + .size cpu_ixp42x_name, . - cpu_ixp42x_name + .type cpu_pxa255_name, #object cpu_pxa255_name: .asciz "XScale-PXA255" @@ -724,6 +729,22 @@ .long xscale_mc_user_fns .long xscale_cache_fns .size __pxa210_proc_info, . - __pxa210_proc_info + + .type __ixp42x_proc_info, #object +__ixp42x_proc_info: + .long 0x690541c0 + .long 0xffffffc0 + .long 0x00000c0e + b __xscale_setup + .long cpu_arch_name + .long cpu_elf_name + .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP + .long cpu_ixp42x_name + .long xscale_processor_functions + .long v4wbi_tlb_fns + .long xscale_mc_user_fns + .long xscale_cache_fns + .size __ixp42x_proc_info, . - __ixp42x_proc_info .type __pxa255_proc_info,#object __pxa255_proc_info: diff -Nru a/arch/arm26/kernel/process.c b/arch/arm26/kernel/process.c --- a/arch/arm26/kernel/process.c Tue May 18 23:38:09 2004 +++ b/arch/arm26/kernel/process.c Tue May 18 23:38:09 2004 @@ -397,12 +397,6 @@ return __ret; } -/* - * These bracket the sleeping functions.. - */ -#define first_sched ((unsigned long) scheduling_functions_start_here) -#define last_sched ((unsigned long) scheduling_functions_end_here) - unsigned long get_wchan(struct task_struct *p) { unsigned long fp, lr; @@ -417,7 +411,7 @@ if (fp < stack_page || fp > 4092+stack_page) return 0; lr = pc_pointer (((unsigned long *)fp)[-1]); - if (lr < first_sched || lr > last_sched) + if (!in_sched_functions(lr)) return lr; fp = *(unsigned long *) (fp - 12); } while (count ++ < 16); diff -Nru a/arch/cris/arch-v10/drivers/pcf8563.c b/arch/cris/arch-v10/drivers/pcf8563.c --- a/arch/cris/arch-v10/drivers/pcf8563.c Tue May 18 23:38:06 2004 +++ b/arch/cris/arch-v10/drivers/pcf8563.c Tue May 18 23:38:06 2004 @@ -53,14 +53,10 @@ { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int pcf8563_ioctl(struct inode *, struct file *, unsigned int, unsigned long); -int pcf8563_open(struct inode *, struct file *); -int pcf8563_release(struct inode *, struct file *); static struct file_operations pcf8563_fops = { .owner = THIS_MODULE, .ioctl = pcf8563_ioctl, - .open = pcf8563_open, - .release = pcf8563_release, }; unsigned char @@ -266,20 +262,6 @@ return -ENOTTY; } - return 0; -} - -int -pcf8563_open(struct inode *inode, struct file *filp) -{ - MOD_INC_USE_COUNT; - return 0; -} - -int -pcf8563_release(struct inode *inode, struct file *filp) -{ - MOD_DEC_USE_COUNT; return 0; } diff -Nru a/arch/cris/arch-v10/kernel/process.c b/arch/cris/arch-v10/kernel/process.c --- a/arch/cris/arch-v10/kernel/process.c Tue May 18 23:38:08 2004 +++ b/arch/cris/arch-v10/kernel/process.c Tue May 18 23:38:08 2004 @@ -217,8 +217,8 @@ * These bracket the sleeping functions.. */ -#define first_sched ((unsigned long) scheduling_functions_start_here) -#define last_sched ((unsigned long) scheduling_functions_end_here) +#define first_sched ((unsigned long)__sched_text_start) +#define last_sched ((unsigned long)__sched_text_end) unsigned long get_wchan(struct task_struct *p) { diff -Nru a/arch/h8300/Kconfig b/arch/h8300/Kconfig --- a/arch/h8300/Kconfig Tue May 18 23:38:08 2004 +++ b/arch/h8300/Kconfig Tue May 18 23:38:08 2004 @@ -43,122 +43,7 @@ source "init/Kconfig" -menu "Processor type and features" - -choice - prompt "H8/300 platform" - default H8300H_GENERIC - -config H8300H_GENERIC - bool "Generic" - help - H8/300H CPU Generic Hardware Support - -config H8300H_AKI3068NET - bool "AE-3068/69" - help - AKI-H8/3068F / AKI-H8/3069F Flashmicom LAN Board Support - More Information. (Japanese Only) - - AE-3068/69 Evaluation Board Support - More Information. - - -config H8300H_H8MAX - bool "H8MAX" - help - H8MAX Evaluation Board Support - More Information. (Japanese Only) - - -config H8300H_SIM - bool "H8/300H Simulator" - help - GDB Simulator Support - More Information. - arch/h8300/Doc/simulator.txt - -config H8S_EDOSK2674 - bool "EDOSK-2674" - help - Renesas EDOSK-2674 Evaluation Board Support - More Information. - - - -config H8S_SIM - bool "H8S Simulator" - help - GDB Simulator Support - More Information. - arch/h8300/Doc/simulator.txt - -endchoice - -choice - prompt "CPU Selection" - -config H83002 - bool "H8/3001,3002,3003" - depends on H8300H_GENERIC - -config H83007 - bool "H8/3006,3007" - depends on (H8300H_GENERIC || H8300H_SIM) - -config H83048 - bool "H8/3044,3045,3046,3047,3048,3052" - depends on H8300H_GENERIC - -config H83068 - bool "H8/3065,3066,3067,3068,3069" - depends on (H8300H_GENERIC || H8300H_AKI3068NET || H8300H_H8MAX) - -config H8S2678 - bool "H8S/2670,2673,2674R,2675,2676" - depends on (H8S_GENERIC || H8S_EDOSK2674 || H8S_SIM) - -endchoice - -config CPU_H8300H - bool - depends on (H8300H_GENERIC || H8300H_AKI3068NET || H8300H_H8MAX || H8300H_SIM) - default y - -config CPU_H8S - bool - depends on (H8S_GENERIC || H8S_EDOSK2674 || H8S_SIM) - default y - -config CPU_CLOCK - int "CPU Clock Frequency (/1KHz)" - default "20000" if H8300H_AKI3068NET - default "25000" if H8300H_H8MAX - default "16000" if H8300H_SIM - default "16000" if H8300H_GENERIC - default "33000" if H8S_GENERIC - default "33000" if H8S_SIM - default "33000" if H8S_EDOSK2674 - help - CPU Clock Frequency divide to 1000 -choice - prompt "Kernel executes from" - ---help--- - Choose the memory type that the kernel will be running in. - -config RAMKERNEL - bool "RAM" - help - The kernel will be resident in RAM when running. - -config ROMKERNEL - bool "ROM" - help - The kernel will be resident in FLASH/ROM when running. - -endchoice - -endmenu +source "arch/h8300/Kconfig.cpu" menu "Executable file formats" diff -Nru a/arch/h8300/Kconfig.cpu b/arch/h8300/Kconfig.cpu --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/h8300/Kconfig.cpu Tue May 18 23:38:09 2004 @@ -0,0 +1,183 @@ +menu "Processor type and features" + +choice + prompt "H8/300 platform" + default H8300H_GENERIC + +config H8300H_GENERIC + bool "H8/300H Generic" + help + H8/300H CPU Generic Hardware Support + +config H8300H_AKI3068NET + bool "AE-3068/69" + help + AKI-H8/3068F / AKI-H8/3069F Flashmicom LAN Board Support + More Information. (Japanese Only) + + AE-3068/69 Evaluation Board Support + More Information. + + +config H8300H_H8MAX + bool "H8MAX" + help + H8MAX Evaluation Board Support + More Information. (Japanese Only) + + +config H8300H_SIM + bool "H8/300H Simulator" + help + GDB Simulator Support + More Information. + arch/h8300/Doc/simulator.txt + +config H8S_GENERIC + bool "H8S Generic" + help + H8S CPU Generic Hardware Support + +config H8S_EDOSK2674 + bool "EDOSK-2674" + help + Renesas EDOSK-2674 Evaluation Board Support + More Information. + + + +config H8S_SIM + bool "H8S Simulator" + help + GDB Simulator Support + More Information. + arch/h8300/Doc/simulator.txt + +endchoice + +if (H8300H_GENERIC || H8S_GENERIC) +menu "Detail Selection" +if (H8300H_GENERIC) +choice + prompt "CPU Selection" + +config H83002 + bool "H8/3001,3002,3003" + +config H83007 + bool "H8/3006,3007" + +config H83048 + bool "H8/3044,3045,3046,3047,3048,3052" + +config H83068 + bool "H8/3065,3066,3067,3068,3069" +endchoice +endif + +if (H8S_GENERIC) +choice + prompt "CPU Selection" + +config H8S2678 + bool "H8S/2670,2673,2674R,2675,2676" +endchoice +endif + +config CPU_CLOCK + int "CPU Clock Frequency (/1KHz)" + default "20000" + help + CPU Clock Frequency divide to 1000 +endmenu +endif + +if (H8300H_GENERIC || H8S_GENERIC || H8300H_SIM || H8S_SIM || H8S_EDOSK2674) +choice + prompt "Kernel executes from" + ---help--- + Choose the memory type that the kernel will be running in. + +config RAMKERNEL + bool "RAM" + help + The kernel will be resident in RAM when running. + +config ROMKERNEL + bool "ROM" + help + The kernel will be resident in FLASH/ROM when running. + +endchoice +endif + +if (H8300H_AKI3068NET) +config H83068 + bool + default y + +config CPU_CLOCK + int + default "20000" + +config RAMKERNEL + bool + default y +endif + +if (H8300H_H8MAX) +config H83068 + bool + default y + +config CPU_CLOCK + int + default 25000 + +config RAMKERNEL + bool + default y +endif + +if (H8300H_SIM) +config H83007 + bool + default y + +config CPU_CLOCK + int + default "16000" +endif + +if (H8S_EDOSK2674) +config H8S2678 + bool + default y +config CPU_CLOCK + int + default 33000 +endif + +if (H8S_SIM) +config H8S2678 + bool + default y +config CPU_CLOCK + int + default 33000 +endif + +config CPU_H8300H + bool + depends on (H8002 || H83007 || H83048 || H83068) + default y + +config CPU_H8S + bool + depends on H8S2678 + default y + +config PREEMPT + bool "Preemptible Kernel" + default n +endmenu diff -Nru a/arch/h8300/Makefile b/arch/h8300/Makefile --- a/arch/h8300/Makefile Tue May 18 23:38:05 2004 +++ b/arch/h8300/Makefile Tue May 18 23:38:05 2004 @@ -62,12 +62,7 @@ archclean: $(Q)$(MAKE) $(clean)=$(boot) -prepare: include/asm-$(ARCH)/machine-depend.h include/asm-$(ARCH)/asm-offsets.h - -include/asm-$(ARCH)/machine-depend.h: include/asm-$(ARCH)/$(BOARD)/machine-depend.h - $(Q)ln -sf $(BOARD)/machine-depend.h \ - include/asm-$(ARCH)/machine-depend.h - @echo ' Create include/asm-$(ARCH)/machine-depend.h' +prepare: include/asm-$(ARCH)/asm-offsets.h include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.s \ include/asm include/linux/version.h @@ -81,4 +76,4 @@ echo 'vmlinux.srec - Create srec binary' endef -CLEAN_FILES += include/asm-$(ARCH)/asm-offsets.h include/asm-$(ARCH)/machine-depend.h +CLEAN_FILES += include/asm-$(ARCH)/asm-offsets.h diff -Nru a/arch/h8300/kernel/process.c b/arch/h8300/kernel/process.c --- a/arch/h8300/kernel/process.c Tue May 18 23:38:05 2004 +++ b/arch/h8300/kernel/process.c Tue May 18 23:38:05 2004 @@ -55,9 +55,9 @@ { while(1) { if (need_resched()) { - sti(); + local_irq_enable(); __asm__("sleep"); - cli(); + local_irq_disable(); } schedule(); } @@ -112,14 +112,13 @@ void show_regs(struct pt_regs * regs) { - printk("\n"); - printk("PC: %08lx Status: %02x\n", + printk("\nPC: %08lx Status: %02x", regs->pc, regs->ccr); - printk("ORIG_ER0: %08lx ER0: %08lx ER1: %08lx\n", + printk("\nORIG_ER0: %08lx ER0: %08lx ER1: %08lx", regs->orig_er0, regs->er0, regs->er1); - printk("ER2: %08lx ER3: %08lx ER4: %08lx ER5: %08lx\n", + printk("\nER2: %08lx ER3: %08lx ER4: %08lx ER5: %08lx", regs->er2, regs->er3, regs->er4, regs->er5); - printk("ER6' %08lx ",regs->er6); + printk("\nER6' %08lx ",regs->er6); if (user_mode(regs)) printk("USP: %08lx\n", rdusp()); else @@ -261,12 +260,6 @@ return error; } -/* - * These bracket the sleeping functions.. - */ -#define first_sched ((unsigned long) scheduling_functions_start_here) -#define last_sched ((unsigned long) scheduling_functions_end_here) - unsigned long thread_saved_pc(struct task_struct *tsk) { return ((struct pt_regs *)tsk->thread.esp0)->pc; @@ -287,7 +280,7 @@ fp >= 8184+stack_page) return 0; pc = ((unsigned long *)fp)[1]; - if (pc < first_sched || pc >= last_sched) + if (!in_sched_functions(pc)) return pc; fp = *(unsigned long *) fp; } while (count++ < 16); diff -Nru a/arch/h8300/kernel/signal.c b/arch/h8300/kernel/signal.c --- a/arch/h8300/kernel/signal.c Tue May 18 23:38:07 2004 +++ b/arch/h8300/kernel/signal.c Tue May 18 23:38:07 2004 @@ -192,6 +192,7 @@ regs->er1 = context.sc_er1; regs->er2 = context.sc_er2; regs->er3 = context.sc_er3; + regs->er5 = context.sc_er5; regs->ccr = (regs->ccr & 0x10)|(context.sc_ccr & 0xef); regs->pc = context.sc_pc; regs->orig_er0 = -1; /* disable syscall checks */ @@ -308,6 +309,7 @@ sc->sc_er1 = regs->er1; sc->sc_er2 = regs->er2; sc->sc_er3 = regs->er3; + sc->sc_er5 = regs->er5; sc->sc_ccr = regs->ccr; sc->sc_pc = regs->pc; } @@ -384,6 +386,7 @@ ? current_thread_info()->exec_domain->signal_invmap[sig] : sig); regs->er1 = (unsigned long)&(frame->sc); + regs->er5 = current->mm->start_data; /* GOT base */ return; @@ -435,6 +438,7 @@ : sig); regs->er1 = (unsigned long)&(frame->info); regs->er2 = (unsigned long)&frame->uc; + regs->er5 = current->mm->start_data; /* GOT base */ return; diff -Nru a/arch/h8300/kernel/syscalls.S b/arch/h8300/kernel/syscalls.S --- a/arch/h8300/kernel/syscalls.S Tue May 18 23:38:06 2004 +++ b/arch/h8300/kernel/syscalls.S Tue May 18 23:38:06 2004 @@ -265,8 +265,8 @@ .long SYMBOL_NAME(sys_io_getevents) .long SYMBOL_NAME(sys_io_submit) .long SYMBOL_NAME(sys_io_cancel) - .long SYMBOL_NAME(sys_ni_syscall) /* 250 */ /* sys_alloc_hugepages */ - .long SYMBOL_NAME(sys_ni_syscall) /* sys_freec_hugepages */ + .long SYMBOL_NAME(sys_fadvise64) /* 250 */ + .long SYMBOL_NAME(sys_ni_syscall) .long SYMBOL_NAME(sys_exit_group) .long SYMBOL_NAME(sys_lookup_dcookie) .long SYMBOL_NAME(sys_epoll_create) @@ -287,36 +287,39 @@ .long SYMBOL_NAME(sys_fstatfs64) .long SYMBOL_NAME(sys_tgkill) /* 270 */ .long SYMBOL_NAME(sys_utimes) + .long SYMBOL_NAME(sys_fadvise64_64) + .long SYMBOL_NAME(sys_ni_syscall) /* sys_vserver */ .rept NR_syscalls-(.-SYMBOL_NAME(sys_call_table))/4 .long SYMBOL_NAME(sys_ni_syscall) .endr + .macro call_sp addr + mov.l #SYMBOL_NAME(\addr),er6 + bra SYMBOL_NAME(syscall_trampoline):8 + .endm + SYMBOL_NAME_LABEL(sys_clone) - mov.l #SYMBOL_NAME(h8300_clone),er0 - jmp @SYMBOL_NAME(syscall_trampoline) + call_sp h8300_clone SYMBOL_NAME_LABEL(sys_sigsuspend) - mov.l #SYMBOL_NAME(do_sigsuspend),er0 - jmp @SYMBOL_NAME(syscall_trampoline) + call_sp do_sigsuspend SYMBOL_NAME_LABEL(sys_rt_sigsuspend) - mov.l #SYMBOL_NAME(do_rt_sigsuspend),er0 - jmp @SYMBOL_NAME(syscall_trampoline) + call_sp do_rt_sigsuspend SYMBOL_NAME_LABEL(sys_sigreturn) - mov.l #SYMBOL_NAME(do_sigreturn),er0 - jmp @SYMBOL_NAME(syscall_trampoline) + call_sp do_sigreturn SYMBOL_NAME_LABEL(sys_rt_sigreturn) - mov.l #SYMBOL_NAME(do_rt_sigreturn),er0 - jmp @SYMBOL_NAME(syscall_trampoline) + call_sp do_rt_sigreturn SYMBOL_NAME_LABEL(sys_fork) - mov.l #SYMBOL_NAME(h8300_fork),er0 - jmp @SYMBOL_NAME(syscall_trampoline) + call_sp h8300_fork SYMBOL_NAME_LABEL(sys_vfork) - mov.l #SYMBOL_NAME(h8300_vfork),er0 - jmp @SYMBOL_NAME(syscall_trampoline) + call_sp h8300_vfork +SYMBOL_NAME_LABEL(syscall_trampoline) + mov.l sp,er0 + jmp @er6 diff -Nru a/arch/h8300/kernel/traps.c b/arch/h8300/kernel/traps.c --- a/arch/h8300/kernel/traps.c Tue May 18 23:38:05 2004 +++ b/arch/h8300/kernel/traps.c Tue May 18 23:38:05 2004 @@ -156,8 +156,14 @@ printk("\n"); } +void show_trace_task(struct task_struct *tsk) +{ + show_stack(tsk,(unsigned long *)tsk->thread.esp0); +} + void dump_stack(void) { show_stack(NULL,NULL); } + EXPORT_SYMBOL(dump_stack); diff -Nru a/arch/h8300/kernel/vmlinux.lds.S b/arch/h8300/kernel/vmlinux.lds.S --- a/arch/h8300/kernel/vmlinux.lds.S Tue May 18 23:38:08 2004 +++ b/arch/h8300/kernel/vmlinux.lds.S Tue May 18 23:38:08 2004 @@ -1,3 +1,6 @@ +#define VMLINUX_SYMBOL(_sym_) _##_sym_ +#include +#include #include #ifdef CONFIG_H8300H_GENERIC diff -Nru a/arch/h8300/mm/init.c b/arch/h8300/mm/init.c --- a/arch/h8300/mm/init.c Tue May 18 23:38:07 2004 +++ b/arch/h8300/mm/init.c Tue May 18 23:38:07 2004 @@ -162,7 +162,7 @@ unsigned long end_mem = memory_end; /* DAVIDM - this must not include kernel stack at top */ #ifdef DEBUG - printk("Mem_init: start=%lx, end=%lx\n", start_mem, end_mem); + printk(KERN_DEBUG "Mem_init: start=%lx, end=%lx\n", start_mem, end_mem); #endif end_mem &= PAGE_MASK; @@ -179,7 +179,7 @@ initk = (&__init_begin - &__init_end) >> 10; tmp = nr_free_pages() << PAGE_SHIFT; - printk("Memory available: %luk/%luk RAM, %luk/%luk ROM (%dk kernel code, %dk data)\n", + printk(KERN_INFO "Memory available: %luk/%luk RAM, %luk/%luk ROM (%dk kernel code, %dk data)\n", tmp >> 10, len >> 10, (rom_length > 0) ? ((rom_length >> 10) - codek) : 0, @@ -223,7 +223,7 @@ free_page(addr); totalram_pages++; } - printk("Freeing unused kernel memory: %ldk freed (0x%x - 0x%x)\n", + printk(KERN_INFO "Freeing unused kernel memory: %ldk freed (0x%x - 0x%x)\n", (addr - PAGE_ALIGN((long) &__init_begin)) >> 10, (int)(PAGE_ALIGN((unsigned long)(&__init_begin))), (int)(addr - PAGE_SIZE)); diff -Nru a/arch/h8300/platform/h8300h/aki3068net/timer.c b/arch/h8300/platform/h8300h/aki3068net/timer.c --- a/arch/h8300/platform/h8300h/aki3068net/timer.c Tue May 18 23:38:05 2004 +++ b/arch/h8300/platform/h8300h/aki3068net/timer.c Tue May 18 23:38:05 2004 @@ -25,12 +25,19 @@ #define CMFA 6 +#define CMIEA 0x40 +#define CCLR_CMA 0x08 +#define CLK_DIV8192 0x03 + +#define H8300_TIMER_FREQ CONFIG_CPU_CLOCK*1000/8192 /* Timer input freq. */ + void __init platform_timer_setup(irqreturn_t (*timer_int)(int, void *, struct pt_regs *)) { - ctrl_outb(H8300_TIMER_COUNT_DATA,TCORA2); - ctrl_outb(0x00,_8TCSR2); - request_irq(40,timer_int,0,"timer",0); - ctrl_outb(0x40|0x08|0x03,_8TCR2); + /* setup 8bit timer ch2 */ + ctrl_outb(H8300_TIMER_FREQ / HZ, TCORA2); /* set interval */ + ctrl_outb(0x00, _8TCSR2); /* no output */ + request_irq(40, timer_int, 0, "timer", 0); + ctrl_outb(CMIEA|CCLR_CMA|CLK_DIV8192, _8TCR2); /* start count */ } void platform_timer_eoi(void) diff -Nru a/arch/h8300/platform/h8300h/entry.S b/arch/h8300/platform/h8300h/entry.S --- a/arch/h8300/platform/h8300h/entry.S Tue May 18 23:38:06 2004 +++ b/arch/h8300/platform/h8300h/entry.S Tue May 18 23:38:06 2004 @@ -109,12 +109,10 @@ .globl SYMBOL_NAME(system_call) .globl SYMBOL_NAME(ret_from_exception) .globl SYMBOL_NAME(ret_from_fork) -.globl SYMBOL_NAME(ret_from_signal) .globl SYMBOL_NAME(ret_from_interrupt) .globl SYMBOL_NAME(interrupt_redirect_table) .globl SYMBOL_NAME(sw_ksp),SYMBOL_NAME(sw_usp) .globl SYMBOL_NAME(resume) -.globl SYMBOL_NAME(syscall_trampoline) .globl SYMBOL_NAME(interrupt_redirect_table) .globl SYMBOL_NAME(interrupt_entry) .globl SYMBOL_NAME(system_call) @@ -173,7 +171,7 @@ beq 1f jsr @SYMBOL_NAME(do_softirq) 1: - jmp @SYMBOL_NAME(ret_from_exception) + jmp @SYMBOL_NAME(ret_from_interrupt) SYMBOL_NAME_LABEL(system_call) subs #4,sp /* dummy LVEC */ @@ -205,11 +203,11 @@ mov.l @(LER2:16,sp),er1 mov.l @(LER3:16,sp),er2 jsr @er4 - mov.l er0,@(LER0,sp) /* save the return value */ + mov.l er0,@(LER0:16,sp) /* save the return value */ #if defined(CONFIG_SYSCALL_PRINT) jsr @SYMBOL_NAME(syscall_print) #endif - jmp @SYMBOL_NAME(ret_from_exception) + bra SYMBOL_NAME(ret_from_exception):8 1: jsr SYMBOL_NAME(syscall_trace) mov.l @(LER1:16,sp),er0 @@ -218,44 +216,66 @@ jsr @er4 mov.l er0,@(LER0:16,sp) /* save the return value */ jsr @SYMBOL_NAME(syscall_trace) + bra SYMBOL_NAME(ret_from_exception):8 + +SYMBOL_NAME_LABEL(ret_from_fork) + mov.l er2,er0 + jsr @SYMBOL_NAME(schedule_tail) + bra SYMBOL_NAME(ret_from_exception):8 -SYMBOL_NAME_LABEL(ret_from_signal) +SYMBOL_NAME_LABEL(reschedule) + /* save top of frame */ + mov.l sp,er0 + jsr @SYMBOL_NAME(set_esp0) + jsr @SYMBOL_NAME(schedule) SYMBOL_NAME_LABEL(ret_from_exception) +#if defined(CONFIG_PREEMPT) + orc #0x80,ccr +#endif +SYMBOL_NAME_LABEL(ret_from_interrupt) mov.b @(LCCR+1:16,sp),r0l btst #4,r0l /* check if returning to kernel */ - bne 3f /* if so, skip resched, signals */ + bne done:8 /* if so, skip resched, signals */ andc #0x7f,ccr - mov.l sp,er2 - and.w #0xe000,r2 - mov.l @(TI_FLAGS:16,er2),er1 + mov.l sp,er4 + and.w #0xe000,r4 + mov.l @(TI_FLAGS:16,er4),er1 and.l #_TIF_WORK_MASK,er1 - beq 3f + beq done:8 1: - mov.l @(TI_FLAGS:16,er2),er1 + mov.l @(TI_FLAGS:16,er4),er1 btst #TIF_NEED_RESCHED,r1l bne SYMBOL_NAME(reschedule):16 mov.l sp,er1 subs #4,er1 /* adjust retpc */ mov.l er2,er0 jsr @SYMBOL_NAME(do_signal) -3: +#if defined(CONFIG_PREEMPT) + bra done:8 /* userspace thoru */ +3: + btst #4,r0l + beq done:8 /* userspace thoru */ +4: + mov.l @(TI_PRE_COUNT:16,er4),er1 + bne done:8 + mov.l @(TI_FLAGS:16,er4),er1 + btst #TIF_NEED_RESCHED,r1l + beq done:8 + mov.b r0l,r0l + bpl done:8 /* interrupt off (exception path?) */ + mov.l #PREEMPT_ACTIVE,er1 + mov.l er1,@(TI_PRE_COUNT:16,er4) + andc #0x7f,ccr + jsr @SYMBOL_NAME(schedule) + sub.l er1,er1 + mov.l er1,@(TI_PRE_COUNT:16,er4) + orc #0x80,ccr + bra 4b:8 +#endif +done: RESTORE_ALL /* Does RTE */ -SYMBOL_NAME_LABEL(reschedule) - /* save top of frame */ - mov.l sp,er0 - jsr @SYMBOL_NAME(set_esp0) - - mov.l #SYMBOL_NAME(ret_from_exception),er0 - mov.l er0,@-sp - jmp @SYMBOL_NAME(schedule) - -SYMBOL_NAME_LABEL(ret_from_fork) - mov.l er2,er0 - jsr @SYMBOL_NAME(schedule_tail) - jmp @SYMBOL_NAME(ret_from_exception) - SYMBOL_NAME_LABEL(resume) /* * Beware - when entering resume, offset of tss is in d1, @@ -305,11 +325,6 @@ mov.l er1,er0 jsr @SYMBOL_NAME(trace_trap) jmp @SYMBOL_NAME(ret_from_exception) - -SYMBOL_NAME_LABEL(syscall_trampoline) - mov.l er0,er6 - mov.l sp,er0 - jmp @er6 .section .bss SYMBOL_NAME_LABEL(sw_ksp) diff -Nru a/arch/h8300/platform/h8300h/generic/timer.c b/arch/h8300/platform/h8300h/generic/timer.c --- a/arch/h8300/platform/h8300h/generic/timer.c Tue May 18 23:38:06 2004 +++ b/arch/h8300/platform/h8300h/generic/timer.c Tue May 18 23:38:06 2004 @@ -22,22 +22,23 @@ #include -extern int request_irq_boot(unsigned int, - irqreturn_t (*handler)(int, void *, struct pt_regs *), - unsigned long, const char *, void *); - - #if defined(CONFIG_H83007) || defined(CONFIG_H83068) #include #define CMFA 6 +#define CMIEA 0x40 +#define CCLR_CMA 0x08 +#define CLK_DIV8192 0x03 + +#define H8300_TIMER_FREQ CONFIG_CPU_CLOCK*1000/8192 /* Timer input freq. */ + int platform_timer_setup(irqreturn_t (*timer_int)(int, void *, struct pt_regs *)) { - ctrl_outb(H8300_TIMER_COUNT_DATA,TCORA2); - ctrl_outb(0x00,_8TCSR2); - request_irq(40,timer_int,0,"timer",0); - ctrl_outb(0x40|0x08|0x03,_8TCR2); - return 0; + /* setup 8bit timer ch2 */ + ctrl_outb(H8300_TIMER_FREQ / HZ, TCORA2); /* set interval */ + ctrl_outb(0x00, _8TCSR2); /* no output */ + request_irq(40, timer_int, 0, "timer", 0); + ctrl_outb(CMIEA|CCLR_CMA|CLK_DIV8192, _8TCR2); /* start count */ } void platform_timer_eoi(void) @@ -46,7 +47,7 @@ } #endif -#if defined(H8_3002) || defined(CONFIG_H83048) +#if defined(CONFIG_H83002) || defined(CONFIG_H83048) /* FIXME! */ #define TSTR 0x00ffff60 #define TSNC 0x00ffff61 @@ -54,6 +55,7 @@ #define TFCR 0x00ffff63 #define TOER 0x00ffff90 #define TOCR 0x00ffff91 +/* ITU0 */ #define TCR 0x00ffff64 #define TIOR 0x00ffff65 #define TIER 0x00ffff66 @@ -62,23 +64,28 @@ #define GRA 0x00ffff6a #define GRB 0x00ffff6c +#define CCLR_CMGRA 0x20 +#define CLK_DIV8 0x03 + +#define H8300_TIMER_FREQ CONFIG_CPU_CLOCK*1000/8 /* Timer input freq. */ + int platform_timer_setup(irqreturn_t (*timer_int)(int, void *, struct pt_regs *)) { - *(unsigned short *)GRA= H8300_TIMER_COUNT_DATA; - *(unsigned short *)TCNT=0; - ctrl_outb(0x23,TCR); - ctrl_outb(0x00,TIOR); - request_timer_irq(26,timer_int,0,"timer",0); - ctrl_outb(inb(TIER) | 0x01,TIER); - ctrl_outb(inb(TSNC) & ~0x01,TSNC); - ctrl_outb(inb(TMDR) & ~0x01,TMDR); - ctrl_outb(inb(TSTR) | 0x01,TSTR); + *(unsigned short *)GRA= H8300_TIMER_FREQ / HZ; /* set interval */ + *(unsigned short *)TCNT=0; /* clear counter */ + ctrl_outb(0x80|CCLR_CMGRA|CLK_DIV8, TCR); /* set ITU0 clock */ + ctrl_outb(0x88, TIOR); /* no output */ + request_irq(26, timer_int, 0, "timer", 0); + ctrl_outb(0xf9, TIER); /* compare match GRA interrupt */ + ctrl_outb(ctrl_inb(TSNC) & ~0x01, TSNC); /* ITU0 async */ + ctrl_outb(ctrl_inb(TMDR) & ~0x01, TMDR); /* ITU0 normal mode */ + ctrl_outb(ctrl_inb(TSTR) | 0x01, TSTR); /* ITU0 Start */ return 0; } void platform_timer_eoi(void) { - ctrl_outb(inb(TSR) & ~0x01,TSR); + ctrl_outb(ctrl_inb(TSR) & ~0x01,TSR); } #endif diff -Nru a/arch/h8300/platform/h8300h/h8max/timer.c b/arch/h8300/platform/h8300h/h8max/timer.c --- a/arch/h8300/platform/h8300h/h8max/timer.c Tue May 18 23:38:05 2004 +++ b/arch/h8300/platform/h8300h/h8max/timer.c Tue May 18 23:38:05 2004 @@ -25,12 +25,19 @@ #define CMFA 6 +#define CMIEA 0x40 +#define CCLR_CMA 0x08 +#define CLK_DIV8192 0x03 + +#define H8300_TIMER_FREQ CONFIG_CPU_CLOCK*1000/8192 /* Timer input freq. */ + void __init platform_timer_setup(irqreturn_t (*timer_int)(int, void *, struct pt_regs *)) { - ctrl_outb(H8300_TIMER_COUNT_DATA,TCORA2); - ctrl_outb(0x00,_8TCSR2); - request_irq(40,timer_int,0,"timer",0); - ctrl_outb(0x40|0x08|0x03,_8TCR2); + /* setup 8bit timer ch2 */ + ctrl_outb(H8300_TIMER_FREQ / HZ, TCORA2); /* set interval */ + ctrl_outb(0x00, _8TCSR2); /* no output */ + request_irq(40, timer_int, 0, "timer", 0); + ctrl_outb(CMIEA|CCLR_CMA|CLK_DIV8192, _8TCR2); /* start count */ } void platform_timer_eoi(void) diff -Nru a/arch/h8300/platform/h8300h/ptrace_h8300h.c b/arch/h8300/platform/h8300h/ptrace_h8300h.c --- a/arch/h8300/platform/h8300h/ptrace_h8300h.c Tue May 18 23:38:06 2004 +++ b/arch/h8300/platform/h8300h/ptrace_h8300h.c Tue May 18 23:38:06 2004 @@ -246,11 +246,13 @@ return (unsigned short *)addr; case relb: if ((inst = 0x55) || isbranch(child,inst & 0x0f)) - (unsigned char *)pc += (signed char)(*fetch_p); + pc = (unsigned short *)((unsigned long)pc + + ((signed char)(*fetch_p))); return pc+1; /* skip myself */ case relw: if ((inst = 0x5c) || isbranch(child,(*fetch_p & 0xf0) >> 4)) - (unsigned char *)pc += (signed short)(*(pc+1)); + pc = (unsigned short *)((unsigned long)pc + + ((signed short)(*(pc+1)))); return pc+2; /* skip myself */ } } diff -Nru a/arch/h8300/platform/h8s/edosk2674/timer.c b/arch/h8300/platform/h8s/edosk2674/timer.c --- a/arch/h8300/platform/h8s/edosk2674/timer.c Tue May 18 23:38:07 2004 +++ b/arch/h8300/platform/h8s/edosk2674/timer.c Tue May 18 23:38:07 2004 @@ -1,5 +1,5 @@ /* - * linux/arch/h8300/platform/h8s/generic/timer.c + * linux/arch/h8300/platform/h8s/edosk2674/timer.c * * Yoshinori Sato * @@ -23,25 +23,28 @@ #include #include -#define REGS(regs) __REGS(regs) -#define __REGS(regs) #regs +#define CMFA 6 -int __init platform_timer_setup(irqreturn_t (*timer_int)(int, void *, struct pt_regs *)) +#define CMIEA 0x40 +#define CCLR_CMA 0x08 +#define CLK_DIV8192 0x03 + +#define H8300_TIMER_FREQ CONFIG_CPU_CLOCK*1000/8192 /* Timer input freq. */ + +void __init platform_timer_setup(irqreturn_t (*timer_int)(int, void *, struct pt_regs *)) { - unsigned char mstpcrl; - mstpcrl = ctrl_inb(MSTPCRL); /* Enable timer */ - mstpcrl &= ~0x01; - ctrl_outb(mstpcrl,MSTPCRL); - ctrl_outb(H8300_TIMER_COUNT_DATA,_8TCORA1); - ctrl_outb(0x00,_8TCSR1); - request_irq(76,timer_int,0,"timer",0); - ctrl_outb(0x40|0x08|0x03,_8TCR1); - return 0; + /* 8bit timer module enabled */ + ctrl_outb(ctrl_inb(MSTPCRL) & ~0x01, MSTPCRL); + /* setup 8bit timer ch1 */ + ctrl_outb(H8300_TIMER_FREQ / HZ, _8TCORA1); /* set interval */ + ctrl_outb(0x00, _8TCSR1); /* no output */ + request_irq(76, timer_int, 0, "timer" ,0); + ctrl_outb(CMIEA|CCLR_CMA|CLK_DIV8192, _8TCR1); /* start count */ } void platform_timer_eoi(void) { - __asm__("bclr #6,@" REGS(_8TCSR1) ":8"); + *(volatile unsigned char *)_8TCSR1 &= ~(1 << CMFA); } void platform_gettod(int *year, int *mon, int *day, int *hour, diff -Nru a/arch/h8300/platform/h8s/entry.S b/arch/h8300/platform/h8s/entry.S --- a/arch/h8300/platform/h8s/entry.S Tue May 18 23:38:08 2004 +++ b/arch/h8300/platform/h8s/entry.S Tue May 18 23:38:08 2004 @@ -109,12 +109,10 @@ .globl SYMBOL_NAME(system_call) .globl SYMBOL_NAME(ret_from_exception) .globl SYMBOL_NAME(ret_from_fork) -.globl SYMBOL_NAME(ret_from_signal) .globl SYMBOL_NAME(ret_from_interrupt) .globl SYMBOL_NAME(interrupt_redirect_table) .globl SYMBOL_NAME(sw_ksp),SYMBOL_NAME(sw_usp) .globl SYMBOL_NAME(resume) -.globl SYMBOL_NAME(syscall_trampoline) .globl SYMBOL_NAME(trace_break) .globl SYMBOL_NAME(interrupt_entry) @@ -201,11 +199,11 @@ mov.l @(LER2:16,sp),er1 mov.l @(LER3:16,sp),er2 jsr @er4 - mov.l er0,@(LER0,sp) /* save the return value */ + mov.l er0,@(LER0:16,sp) /* save the return value */ #if defined(CONFIG_SYSCALL_PRINT) jsr @SYMBOL_NAME(syscall_print) #endif - jmp @SYMBOL_NAME(ret_from_exception) + bra SYMBOL_NAME(ret_from_exception):8 1: jsr SYMBOL_NAME(syscall_trace) mov.l @(LER1:16,sp),er0 @@ -214,45 +212,67 @@ jsr @er4 mov.l er0,@(LER0:16,sp) /* save the return value */ jsr @SYMBOL_NAME(syscall_trace) + bra SYMBOL_NAME(ret_from_exception):8 + -SYMBOL_NAME_LABEL(ret_from_signal) +SYMBOL_NAME_LABEL(ret_from_fork) + mov.l er2,er0 + jsr @SYMBOL_NAME(schedule_tail) + bra SYMBOL_NAME(ret_from_exception):8 + +SYMBOL_NAME_LABEL(reschedule) + /* save top of frame */ + mov.l sp,er0 + jsr @SYMBOL_NAME(set_esp0) + jsr @SYMBOL_NAME(schedule) SYMBOL_NAME_LABEL(ret_from_exception) +#if defined(CONFIG_PREEMPT) + orc #0x80,ccr +#endif +SYMBOL_NAME_LABEL(ret_from_interrupt) mov.b @(LCCR+1:16,sp),r0l btst #4,r0l /* check if returning to kernel */ - bne 3f /* if so, skip resched, signals */ + bne done:8 /* if so, skip resched, signals */ andc #0x7f,ccr - mov.l sp,er2 - and.w #0xe000,r2 - mov.l @(TI_FLAGS:16,er2),er1 + mov.l sp,er4 + and.w #0xe000,r4 + mov.l @(TI_FLAGS:16,er4),er1 and.l #_TIF_WORK_MASK,er1 - beq 3f + beq done:8 1: - mov.l @(TI_FLAGS:16,er2),er1 + mov.l @(TI_FLAGS:16,er4),er1 btst #TIF_NEED_RESCHED,r1l bne SYMBOL_NAME(reschedule):16 mov.l sp,er1 subs #4,er1 /* adjust retpc */ mov.l er2,er0 jsr @SYMBOL_NAME(do_signal) -3: +#if defined(CONFIG_PREEMPT) + bra done:8 /* userspace thoru */ +3: + btst #4,r0l + beq done:8 /* userspace thoru */ +4: + mov.l @(TI_PRE_COUNT:16,er4),er1 + bne done:8 + mov.l @(TI_FLAGS:16,er4),er1 + btst #TIF_NEED_RESCHED,r1l + beq done:8 + mov.b r0l,r0l + bpl done:8 /* interrupt off (exception path?) */ + mov.l #PREEMPT_ACTIVE,er1 + mov.l er1,@(TI_PRE_COUNT:16,er4) + andc #0x7f,ccr + jsr @SYMBOL_NAME(schedule) + sub.l er1,er1 + mov.l er1,@(TI_PRE_COUNT:16,er4) + orc #0x80,ccr + bra 4b:8 +#endif +done: RESTORE_ALL /* Does RTE */ -SYMBOL_NAME_LABEL(reschedule) - /* save top of frame */ - mov.l sp,er0 - jsr @SYMBOL_NAME(set_esp0) - - mov.l #SYMBOL_NAME(ret_from_exception),er0 - mov.l er0,@-sp - jmp @SYMBOL_NAME(schedule) - -SYMBOL_NAME_LABEL(ret_from_fork) - mov.l er2,er0 - jsr @SYMBOL_NAME(schedule_tail) - jmp @SYMBOL_NAME(ret_from_exception) - - SYMBOL_NAME_LABEL(resume) /* * er0 = prev @@ -284,7 +304,7 @@ ldc r3l,ccr ldc r3h,exr - + rts SYMBOL_NAME_LABEL(trace_break) @@ -303,11 +323,6 @@ mov.l er1,er0 jsr @SYMBOL_NAME(trace_trap) jmp @SYMBOL_NAME(ret_from_exception) - -SYMBOL_NAME_LABEL(syscall_trampoline) - mov.l er0,er6 - mov.l sp,er0 - jmp @er6 .section .bss SYMBOL_NAME_LABEL(sw_ksp) diff -Nru a/arch/h8300/platform/h8s/generic/timer.c b/arch/h8300/platform/h8s/generic/timer.c --- a/arch/h8300/platform/h8s/generic/timer.c Tue May 18 23:38:07 2004 +++ b/arch/h8300/platform/h8s/generic/timer.c Tue May 18 23:38:07 2004 @@ -23,18 +23,28 @@ #include #include -int platform_timer_setup(irqreturn_t (*timer_int)(int, void *, struct pt_regs *)) +#define CMFA 6 + +#define CMIEA 0x40 +#define CCLR_CMA 0x08 +#define CLK_DIV8192 0x03 + +#define H8300_TIMER_FREQ CONFIG_CPU_CLOCK*1000/8192 /* Timer input freq. */ + +void __init platform_timer_setup(irqreturn_t (*timer_int)(int, void *, struct pt_regs *)) { - ctrl_outb(H8300_TIMER_COUNT_DATA,_8TCORA1); - ctrl_outb(0x00,_8TCSR1); - request_irq(76,timer_int,0,"timer",0); - ctrl_outb(0x40|0x08|0x03,_8TCR1); - return 0; + /* 8bit timer module enabled */ + ctrl_outb(ctrl_inb(MSTPCRL) & ~0x01, MSTPCRL); + /* setup 8bit timer ch1 */ + ctrl_outb(H8300_TIMER_FREQ / HZ, _8TCORA1); /* set interval */ + ctrl_outb(0x00, _8TCSR1); /* no output */ + request_irq(76, timer_int, 0, "timer" ,0); + ctrl_outb(CMIEA|CCLR_CMA|CLK_DIV8192, _8TCR1); /* start count */ } void platform_timer_eoi(void) { - __asm__("bclr #6,@0xffffb3:8"); + *(volatile unsigned char *)_8TCSR1 &= ~(1 << CMFA); } void platform_gettod(int *year, int *mon, int *day, int *hour, diff -Nru a/arch/i386/Kconfig b/arch/i386/Kconfig --- a/arch/i386/Kconfig Tue May 18 23:38:05 2004 +++ b/arch/i386/Kconfig Tue May 18 23:38:05 2004 @@ -102,10 +102,10 @@ and vice versa. See for details. config X86_GENERICARCH - bool "Generic architecture (Summit, bigsmp, default)" + bool "Generic architecture (Summit, bigsmp, ES7000, default)" depends on SMP help - This option compiles in the Summit, bigsmp, default subarchitectures. + This option compiles in the Summit, bigsmp, ES7000, default subarchitectures. It is intended for a generic binary kernel. config X86_ES7000 @@ -479,6 +479,16 @@ This is purely to save memory - each supported CPU adds approximately eight kilobytes to the kernel image. +config SCHED_SMT + bool "SMT (Hyperthreading) scheduler support" + depends on SMP + default off + help + SMT scheduler support improves the CPU scheduler's decision making + when dealing with Intel Pentium 4 chips with HyperThreading at a + cost of slightly increased overhead in some places. If unsure say + N here. + config PREEMPT bool "Preemptible Kernel" help @@ -709,7 +719,7 @@ # Common NUMA Features config NUMA - bool "Numa Memory Allocation Support" + bool "Numa Memory Allocation and Scheduler Support" depends on SMP && HIGHMEM64G && (X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI)) default n if X86_PC default y if (X86_NUMAQ || X86_SUMMIT) diff -Nru a/arch/i386/Makefile b/arch/i386/Makefile --- a/arch/i386/Makefile Tue May 18 23:38:06 2004 +++ b/arch/i386/Makefile Tue May 18 23:38:06 2004 @@ -19,7 +19,7 @@ OBJCOPYFLAGS := -O binary -R .note -R .comment -S LDFLAGS_vmlinux := -CFLAGS += -pipe +CFLAGS += -pipe -msoft-float # prevent gcc from keeping the stack 16 byte aligned CFLAGS += $(call check_gcc,-mpreferred-stack-boundary=2,) @@ -92,7 +92,8 @@ # ES7000 subarch support mflags-$(CONFIG_X86_ES7000) := -Iinclude/asm-i386/mach-es7000 -mcore-$(CONFIG_X86_ES7000) := mach-es7000 +mcore-$(CONFIG_X86_ES7000) := mach-default +core-$(CONFIG_X86_ES7000) := arch/i386/mach-es7000/ # default subarch .h files mflags-y += -Iinclude/asm-i386/mach-default diff -Nru a/arch/i386/boot/setup.S b/arch/i386/boot/setup.S --- a/arch/i386/boot/setup.S Tue May 18 23:38:07 2004 +++ b/arch/i386/boot/setup.S Tue May 18 23:38:07 2004 @@ -133,7 +133,7 @@ ramdisk_size: .long 0 # its size in bytes bootsect_kludge: - .word bootsect_helper, SETUPSEG + .long 0 # obsolete heap_end_ptr: .word modelist+1024 # (Header version 0x0201 or later) # space from here (exclusive) down to @@ -156,7 +156,8 @@ # can be located anywhere in # low memory 0x10000 or higher. -ramdisk_max: .long MAXMEM-1 # (Header version 0x0203 or later) +ramdisk_max: .long (MAXMEM-1) & 0x7fffffff + # (Header version 0x0203 or later) # The highest safe address for # the contents of an initrd @@ -837,7 +838,7 @@ subw $DELTA_INITSEG, %si shll $4, %esi # Convert to 32-bit pointer -# jump to startup_32 in arch/i386/kernel/head.S +# jump to startup_32 in arch/i386/boot/compressed/head.S # # NOTE: For high loaded big kernels we need a # jmpi 0x100000,__BOOT_CS @@ -871,88 +872,6 @@ # sequence outb %al, $0x70 lret - -# This routine only gets called, if we get loaded by the simple -# bootsect loader _and_ have a bzImage to load. -# Because there is no place left in the 512 bytes of the boot sector, -# we must emigrate to code space here. -bootsect_helper: - cmpw $0, %cs:bootsect_es - jnz bootsect_second - - movb $0x20, %cs:type_of_loader - movw %es, %ax - shrw $4, %ax - movb %ah, %cs:bootsect_src_base+2 - movw %es, %ax - movw %ax, %cs:bootsect_es - subw $SYSSEG, %ax - lret # nothing else to do for now - -bootsect_second: - pushw %cx - pushw %si - pushw %bx - testw %bx, %bx # 64K full? - jne bootsect_ex - - movw $0x8000, %cx # full 64K, INT15 moves words - pushw %cs - popw %es - movw $bootsect_gdt, %si - movw $0x8700, %ax - int $0x15 - jc bootsect_panic # this, if INT15 fails - - movw %cs:bootsect_es, %es # we reset %es to always point - incb %cs:bootsect_dst_base+2 # to 0x10000 -bootsect_ex: - movb %cs:bootsect_dst_base+2, %ah - shlb $4, %ah # we now have the number of - # moved frames in %ax - xorb %al, %al - popw %bx - popw %si - popw %cx - lret - -bootsect_gdt: - .word 0, 0, 0, 0 - .word 0, 0, 0, 0 - -bootsect_src: - .word 0xffff - -bootsect_src_base: - .byte 0x00, 0x00, 0x01 # base = 0x010000 - .byte 0x93 # typbyte - .word 0 # limit16,base24 =0 - -bootsect_dst: - .word 0xffff - -bootsect_dst_base: - .byte 0x00, 0x00, 0x10 # base = 0x100000 - .byte 0x93 # typbyte - .word 0 # limit16,base24 =0 - .word 0, 0, 0, 0 # BIOS CS - .word 0, 0, 0, 0 # BIOS DS - -bootsect_es: - .word 0 - -bootsect_panic: - pushw %cs - popw %ds - cld - leaw bootsect_panic_mess, %si - call prtstr - -bootsect_panic_loop: - jmp bootsect_panic_loop - -bootsect_panic_mess: - .string "INT15 refuses to access high mem, giving up." #ifndef CONFIG_X86_VOYAGER diff -Nru a/arch/i386/boot98/setup.S b/arch/i386/boot98/setup.S --- a/arch/i386/boot98/setup.S Tue May 18 23:38:05 2004 +++ b/arch/i386/boot98/setup.S Tue May 18 23:38:05 2004 @@ -146,7 +146,7 @@ ramdisk_size: .long 0 # its size in bytes bootsect_kludge: - .word bootsect_helper, SETUPSEG + .long 0 # obsolete heap_end_ptr: .word modelist+1024 # (Header version 0x0201 or later) # space from here (exclusive) down to @@ -691,91 +691,6 @@ # sequence lret -# This routine only gets called, if we get loaded by the simple -# bootsect loader _and_ have a bzImage to load. -# Because there is no place left in the 512 bytes of the boot sector, -# we must emigrate to code space here. -bootsect_helper: - cmpw $0, %cs:bootsect_es - jnz bootsect_second - - movb $0x20, %cs:type_of_loader - movw %es, %ax - shrw $4, %ax - movb %ah, %cs:bootsect_src_base+2 - movw %es, %ax - movw %ax, %cs:bootsect_es - subw $SYSSEG, %ax - lret # nothing else to do for now - -bootsect_second: - pushw %bx - pushw %cx - pushw %si - pushw %di - testw %bp, %bp # 64K full ? - jne bootsect_ex - - xorw %cx, %cx # zero means full 64K - pushw %cs - popw %es - movw $bootsect_gdt, %bx - xorw %si, %si # source address - xorw %di, %di # destination address - movb $0x90, %ah - int $0x1f - jc bootsect_panic # this, if INT1F fails - - movw %cs:bootsect_es, %es # we reset %es to always point - incb %cs:bootsect_dst_base+2 # to 0x10000 -bootsect_ex: - movb %cs:bootsect_dst_base+2, %ah - shlb $4, %ah # we now have the number of - # moved frames in %ax - xorb %al, %al - popw %di - popw %si - popw %cx - popw %bx - lret - -bootsect_gdt: - .word 0, 0, 0, 0 - .word 0, 0, 0, 0 - -bootsect_src: - .word 0xffff - -bootsect_src_base: - .byte 0x00, 0x00, 0x01 # base = 0x010000 - .byte 0x93 # typbyte - .word 0 # limit16,base24 =0 - -bootsect_dst: - .word 0xffff - -bootsect_dst_base: - .byte 0x00, 0x00, 0x10 # base = 0x100000 - .byte 0x93 # typbyte - .word 0 # limit16,base24 =0 - .word 0, 0, 0, 0 # BIOS CS - .word 0, 0, 0, 0 # BIOS DS - -bootsect_es: - .word 0 - -bootsect_panic: - pushw %cs - popw %ds - cld - leaw bootsect_panic_mess, %si - call prtstr - -bootsect_panic_loop: - jmp bootsect_panic_loop - -bootsect_panic_mess: - .string "INT1F refuses to access high mem, giving up." # This routine prints one character (in %al) on console. # PC-9800 doesn't have BIOS-function to do it like IBM PC's INT 10h - 0Eh, diff -Nru a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c --- a/arch/i386/kernel/acpi/boot.c Tue May 18 23:38:09 2004 +++ b/arch/i386/kernel/acpi/boot.c Tue May 18 23:38:09 2004 @@ -417,16 +417,6 @@ #endif /* CONFIG_ACPI_BUS */ -#ifdef CONFIG_X86_IO_APIC -/* deprecated in favor of acpi_gsi_to_irq */ -int acpi_irq_to_vector(u32 irq) -{ - if (use_pci_vector() && !platform_legacy_irq(irq)) - irq = IO_APIC_VECTOR(irq); - return irq; -} -#endif - int acpi_gsi_to_irq(u32 gsi, unsigned int *irq) { #ifdef CONFIG_X86_IO_APIC diff -Nru a/arch/i386/kernel/cpu/common.c b/arch/i386/kernel/cpu/common.c --- a/arch/i386/kernel/cpu/common.c Tue May 18 23:38:05 2004 +++ b/arch/i386/kernel/cpu/common.c Tue May 18 23:38:05 2004 @@ -138,8 +138,7 @@ } - -void __init get_cpu_vendor(struct cpuinfo_x86 *c) +void __init get_cpu_vendor(struct cpuinfo_x86 *c, int early) { char *v = c->x86_vendor_id; int i; @@ -150,7 +149,8 @@ (cpu_devs[i]->c_ident[1] && !strcmp(v,cpu_devs[i]->c_ident[1]))) { c->x86_vendor = i; - this_cpu = cpu_devs[i]; + if (!early) + this_cpu = cpu_devs[i]; break; } } @@ -194,6 +194,44 @@ return flag_is_changeable_p(X86_EFLAGS_ID); } +/* Do minimum CPU detection early. + Fields really needed: vendor, cpuid_level, family, model, mask, cache alignment. + The others are not touched to avoid unwanted side effects. */ +void __init early_cpu_detect(void) +{ + struct cpuinfo_x86 *c = &boot_cpu_data; + + if (!have_cpuid_p()) + return; + + /* Get vendor name */ + cpuid(0x00000000, &c->cpuid_level, + (int *)&c->x86_vendor_id[0], + (int *)&c->x86_vendor_id[8], + (int *)&c->x86_vendor_id[4]); + + get_cpu_vendor(c, 1); + + c->x86 = 4; + c->x86_cache_alignment = 32; + + if (c->cpuid_level >= 0x00000001) { + u32 junk, tfms, cap0, misc; + cpuid(0x00000001, &tfms, &misc, &junk, &cap0); + c->x86 = (tfms >> 8) & 15; + c->x86_model = (tfms >> 4) & 15; + if (c->x86 == 0xf) { + c->x86 += (tfms >> 20) & 0xff; + c->x86_model += ((tfms >> 16) & 0xF) << 4; + } + c->x86_mask = tfms & 15; + if (cap0 & (1<<19)) + c->x86_cache_alignment = ((misc >> 8) & 0xff) * 8; + } + + early_intel_workaround(c); +} + void __init generic_identify(struct cpuinfo_x86 * c) { u32 tfms, xlvl; @@ -206,7 +244,7 @@ (int *)&c->x86_vendor_id[8], (int *)&c->x86_vendor_id[4]); - get_cpu_vendor(c); + get_cpu_vendor(c, 0); /* Initialize the standard set of capabilities */ /* Note that the vendor-specific code below might override */ @@ -384,7 +422,6 @@ void __init dodgy_tsc(void) { - get_cpu_vendor(&boot_cpu_data); if (( boot_cpu_data.x86_vendor == X86_VENDOR_CYRIX ) || ( boot_cpu_data.x86_vendor == X86_VENDOR_NSC )) cpu_devs[X86_VENDOR_CYRIX]->c_init(&boot_cpu_data); @@ -432,9 +469,11 @@ extern int rise_init_cpu(void); extern int nexgen_init_cpu(void); extern int umc_init_cpu(void); +void early_cpu_detect(void); void __init early_cpu_init(void) { + early_cpu_detect(); intel_cpu_init(); cyrix_init_cpu(); nsc_init_cpu(); diff -Nru a/arch/i386/kernel/cpu/cpu.h b/arch/i386/kernel/cpu/cpu.h --- a/arch/i386/kernel/cpu/cpu.h Tue May 18 23:38:05 2004 +++ b/arch/i386/kernel/cpu/cpu.h Tue May 18 23:38:05 2004 @@ -26,3 +26,6 @@ extern void generic_identify(struct cpuinfo_x86 * c); extern int have_cpuid_p(void); + +extern void early_intel_workaround(struct cpuinfo_x86 *c); + diff -Nru a/arch/i386/kernel/cpu/cpufreq/p4-clockmod.c b/arch/i386/kernel/cpu/cpufreq/p4-clockmod.c --- a/arch/i386/kernel/cpu/cpufreq/p4-clockmod.c Tue May 18 23:38:09 2004 +++ b/arch/i386/kernel/cpu/cpufreq/p4-clockmod.c Tue May 18 23:38:09 2004 @@ -57,8 +57,7 @@ u32 l, h; cpumask_t cpus_allowed, affected_cpu_map; struct cpufreq_freqs freqs; - int hyperthreading = 0; - int sibling = 0; + int j; if (!cpu_online(cpu) || (newstate > DC_DISABLE) || (newstate == DC_RESV)) @@ -68,13 +67,10 @@ cpus_allowed = current->cpus_allowed; /* only run on CPU to be set, or on its sibling */ - affected_cpu_map = cpumask_of_cpu(cpu); -#ifdef CONFIG_X86_HT - hyperthreading = ((cpu_has_ht) && (smp_num_siblings == 2)); - if (hyperthreading) { - sibling = cpu_sibling_map[cpu]; - cpu_set(sibling, affected_cpu_map); - } +#ifdef CONFIG_SMP + affected_cpu_map = cpu_sibling_map[cpu]; +#else + affected_cpu_map = cpumask_of_cpu(cpu); #endif set_cpus_allowed(current, affected_cpu_map); BUG_ON(!cpu_isset(smp_processor_id(), affected_cpu_map)); @@ -97,11 +93,11 @@ /* notifiers */ freqs.old = stock_freq * l / 8; freqs.new = stock_freq * newstate / 8; - freqs.cpu = cpu; - cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); - if (hyperthreading) { - freqs.cpu = sibling; - cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); + for_each_cpu(j) { + if (cpu_isset(j, affected_cpu_map)) { + freqs.cpu = j; + cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); + } } rdmsr(MSR_IA32_THERM_STATUS, l, h); @@ -132,10 +128,11 @@ set_cpus_allowed(current, cpus_allowed); /* notifiers */ - cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); - if (hyperthreading) { - freqs.cpu = cpu; - cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); + for_each_cpu(j) { + if (cpu_isset(j, affected_cpu_map)) { + freqs.cpu = j; + cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); + } } return 0; diff -Nru a/arch/i386/kernel/cpu/intel.c b/arch/i386/kernel/cpu/intel.c --- a/arch/i386/kernel/cpu/intel.c Tue May 18 23:38:06 2004 +++ b/arch/i386/kernel/cpu/intel.c Tue May 18 23:38:06 2004 @@ -28,6 +28,15 @@ struct movsl_mask movsl_mask; #endif +void __init early_intel_workaround(struct cpuinfo_x86 *c) +{ + if (c->x86_vendor != X86_VENDOR_INTEL) + return; + /* Netburst reports 64 bytes clflush size, but does IO in 128 bytes */ + if (c->x86 == 15 && c->x86_cache_alignment == 64) + c->x86_cache_alignment = 128; +} + /* * Early probe support logic for ppro memory erratum #50 * @@ -36,42 +45,14 @@ int __init ppro_with_ram_bug(void) { - char vendor_id[16]; - int ident; - - /* Must have CPUID */ - if(!have_cpuid_p()) - return 0; - if(cpuid_eax(0)<1) - return 0; - - /* Must be Intel */ - cpuid(0, &ident, - (int *)&vendor_id[0], - (int *)&vendor_id[8], - (int *)&vendor_id[4]); - - if(memcmp(vendor_id, "IntelInside", 12)) - return 0; - - ident = cpuid_eax(1); - - /* Model 6 */ - - if(((ident>>8)&15)!=6) - return 0; - - /* Pentium Pro */ - - if(((ident>>4)&15)!=1) - return 0; - - if((ident&15) < 8) - { + /* Uses data from early_cpu_detect now */ + if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL && + boot_cpu_data.x86 == 6 && + boot_cpu_data.x86_model == 1 && + boot_cpu_data.x86_mask < 8) { printk(KERN_INFO "Pentium Pro with Errata#50 detected. Taking evasive action.\n"); return 1; } - printk(KERN_INFO "Your Pentium Pro seems ok.\n"); return 0; } diff -Nru a/arch/i386/kernel/cpu/mcheck/p4.c b/arch/i386/kernel/cpu/mcheck/p4.c --- a/arch/i386/kernel/cpu/mcheck/p4.c Tue May 18 23:38:08 2004 +++ b/arch/i386/kernel/cpu/mcheck/p4.c Tue May 18 23:38:08 2004 @@ -38,7 +38,8 @@ #ifdef CONFIG_X86_MCE_P4THERMAL static void unexpected_thermal_interrupt(struct pt_regs *regs) { - printk(KERN_ERR "CPU#%d: Unexpected LVT TMR interrupt!\n", smp_processor_id()); + printk(KERN_ERR "CPU%d: Unexpected LVT TMR interrupt!\n", + smp_processor_id()); } /* P4/Xeon Thermal transition interrupt handler */ @@ -46,15 +47,21 @@ { u32 l, h; unsigned int cpu = smp_processor_id(); + static unsigned long next[NR_CPUS]; ack_APIC_irq(); - rdmsr (MSR_IA32_THERM_STATUS, l, h); - if (l & 1) { - printk(KERN_EMERG "CPU#%d: Temperature above threshold\n", cpu); - printk(KERN_EMERG "CPU#%d: Running in modulated clock mode\n", cpu); + if (time_after(next[cpu], jiffies)) + return; + + next[cpu] = jiffies + HZ*5; + rdmsr(MSR_IA32_THERM_STATUS, l, h); + if (l & 0x1) { + printk(KERN_EMERG "CPU%d: Temperature above threshold\n", cpu); + printk(KERN_EMERG "CPU%d: Running in modulated clock mode\n", + cpu); } else { - printk(KERN_INFO "CPU#%d: Temperature/speed normal\n", cpu); + printk(KERN_INFO "CPU%d: Temperature/speed normal\n", cpu); } } @@ -89,13 +96,15 @@ rdmsr (MSR_IA32_MISC_ENABLE, l, h); h = apic_read(APIC_LVTTHMR); if ((l & (1<<3)) && (h & APIC_DM_SMI)) { - printk(KERN_DEBUG "CPU#%d: Thermal monitoring handled by SMI\n", cpu); + printk(KERN_DEBUG "CPU%d: Thermal monitoring handled by SMI\n", + cpu); return; /* -EBUSY */ } /* check whether a vector already exists, temporarily masked? */ if (h & APIC_VECTOR_MASK) { - printk(KERN_DEBUG "CPU#%d: Thermal LVT vector (%#x) already installed\n", + printk(KERN_DEBUG "CPU%d: Thermal LVT vector (%#x) already " + "installed\n", cpu, (h & APIC_VECTOR_MASK)); return; /* -EBUSY */ } @@ -116,7 +125,7 @@ l = apic_read (APIC_LVTTHMR); apic_write_around (APIC_LVTTHMR, l & ~APIC_LVT_MASKED); - printk (KERN_INFO "CPU#%d: Thermal monitoring enabled\n", cpu); + printk (KERN_INFO "CPU%d: Thermal monitoring enabled\n", cpu); return; } #endif /* CONFIG_X86_MCE_P4THERMAL */ @@ -247,7 +256,8 @@ rdmsr (MSR_IA32_MCG_CAP, l, h); if (l & (1<<9)) {/* MCG_EXT_P */ mce_num_extended_msrs = (l >> 16) & 0xff; - printk (KERN_INFO "CPU#%d: Intel P4/Xeon Extended MCE MSRs (%d) available\n", + printk (KERN_INFO "CPU%d: Intel P4/Xeon Extended MCE MSRs (%d)" + " available\n", smp_processor_id(), mce_num_extended_msrs); #ifdef CONFIG_X86_MCE_P4THERMAL diff -Nru a/arch/i386/kernel/cpuid.c b/arch/i386/kernel/cpuid.c --- a/arch/i386/kernel/cpuid.c Tue May 18 23:38:05 2004 +++ b/arch/i386/kernel/cpuid.c Tue May 18 23:38:05 2004 @@ -10,7 +10,6 @@ * * ----------------------------------------------------------------------- */ - /* * cpuid.c * @@ -46,131 +45,132 @@ #ifdef CONFIG_SMP struct cpuid_command { - int cpu; - u32 reg; - u32 *data; + int cpu; + u32 reg; + u32 *data; }; static void cpuid_smp_cpuid(void *cmd_block) { - struct cpuid_command *cmd = (struct cpuid_command *) cmd_block; - - if ( cmd->cpu == smp_processor_id() ) - cpuid(cmd->reg, &cmd->data[0], &cmd->data[1], &cmd->data[2], &cmd->data[3]); + struct cpuid_command *cmd = (struct cpuid_command *)cmd_block; + + if (cmd->cpu == smp_processor_id()) + cpuid(cmd->reg, &cmd->data[0], &cmd->data[1], &cmd->data[2], + &cmd->data[3]); } -static inline void do_cpuid(int cpu, u32 reg, u32 *data) +static inline void do_cpuid(int cpu, u32 reg, u32 * data) { - struct cpuid_command cmd; - - preempt_disable(); - if ( cpu == smp_processor_id() ) { - cpuid(reg, &data[0], &data[1], &data[2], &data[3]); - } else { - cmd.cpu = cpu; - cmd.reg = reg; - cmd.data = data; - - smp_call_function(cpuid_smp_cpuid, &cmd, 1, 1); - } - preempt_enable(); + struct cpuid_command cmd; + + preempt_disable(); + if (cpu == smp_processor_id()) { + cpuid(reg, &data[0], &data[1], &data[2], &data[3]); + } else { + cmd.cpu = cpu; + cmd.reg = reg; + cmd.data = data; + + smp_call_function(cpuid_smp_cpuid, &cmd, 1, 1); + } + preempt_enable(); } -#else /* ! CONFIG_SMP */ +#else /* ! CONFIG_SMP */ -static inline void do_cpuid(int cpu, u32 reg, u32 *data) +static inline void do_cpuid(int cpu, u32 reg, u32 * data) { - cpuid(reg, &data[0], &data[1], &data[2], &data[3]); + cpuid(reg, &data[0], &data[1], &data[2], &data[3]); } -#endif /* ! CONFIG_SMP */ +#endif /* ! CONFIG_SMP */ static loff_t cpuid_seek(struct file *file, loff_t offset, int orig) { - loff_t ret; + loff_t ret; + + lock_kernel(); - lock_kernel(); + switch (orig) { + case 0: + file->f_pos = offset; + ret = file->f_pos; + break; + case 1: + file->f_pos += offset; + ret = file->f_pos; + break; + default: + ret = -EINVAL; + } + + unlock_kernel(); + return ret; +} + +static ssize_t cpuid_read(struct file *file, char *buf, + size_t count, loff_t * ppos) +{ + u32 *tmp = (u32 *) buf; + u32 data[4]; + size_t rv; + u32 reg = *ppos; + int cpu = iminor(file->f_dentry->d_inode); + + if (count % 16) + return -EINVAL; /* Invalid chunk size */ + + for (rv = 0; count; count -= 16) { + do_cpuid(cpu, reg, data); + if (copy_to_user(tmp, &data, 16)) + return -EFAULT; + tmp += 4; + *ppos = reg++; + } - switch (orig) { - case 0: - file->f_pos = offset; - ret = file->f_pos; - break; - case 1: - file->f_pos += offset; - ret = file->f_pos; - break; - default: - ret = -EINVAL; - } - - unlock_kernel(); - return ret; -} - -static ssize_t cpuid_read(struct file * file, char * buf, - size_t count, loff_t *ppos) -{ - u32 *tmp = (u32 *)buf; - u32 data[4]; - size_t rv; - u32 reg = *ppos; - int cpu = iminor(file->f_dentry->d_inode); - - if ( count % 16 ) - return -EINVAL; /* Invalid chunk size */ - - for ( rv = 0 ; count ; count -= 16 ) { - do_cpuid(cpu, reg, data); - if ( copy_to_user(tmp,&data,16) ) - return -EFAULT; - tmp += 4; - *ppos = reg++; - } - - return ((char *)tmp) - buf; + return ((char *)tmp) - buf; } static int cpuid_open(struct inode *inode, struct file *file) { - int cpu = iminor(file->f_dentry->d_inode); - struct cpuinfo_x86 *c = &(cpu_data)[cpu]; + int cpu = iminor(file->f_dentry->d_inode); + struct cpuinfo_x86 *c = &(cpu_data)[cpu]; + + if (!cpu_online(cpu)) + return -ENXIO; /* No such CPU */ + if (c->cpuid_level < 0) + return -EIO; /* CPUID not supported */ - if (!cpu_online(cpu)) - return -ENXIO; /* No such CPU */ - if ( c->cpuid_level < 0 ) - return -EIO; /* CPUID not supported */ - - return 0; + return 0; } /* * File operations we support */ static struct file_operations cpuid_fops = { - .owner = THIS_MODULE, - .llseek = cpuid_seek, - .read = cpuid_read, - .open = cpuid_open, + .owner = THIS_MODULE, + .llseek = cpuid_seek, + .read = cpuid_read, + .open = cpuid_open, }; int __init cpuid_init(void) { - if (register_chrdev(CPUID_MAJOR, "cpu/cpuid", &cpuid_fops)) { - printk(KERN_ERR "cpuid: unable to get major %d for cpuid\n", - CPUID_MAJOR); - return -EBUSY; - } + if (register_chrdev(CPUID_MAJOR, "cpu/cpuid", &cpuid_fops)) { + printk(KERN_ERR "cpuid: unable to get major %d for cpuid\n", + CPUID_MAJOR); + return -EBUSY; + } - return 0; + return 0; } void __exit cpuid_exit(void) { - unregister_chrdev(CPUID_MAJOR, "cpu/cpuid"); + unregister_chrdev(CPUID_MAJOR, "cpu/cpuid"); } module_init(cpuid_init); -module_exit(cpuid_exit) +module_exit(cpuid_exit); MODULE_AUTHOR("H. Peter Anvin "); MODULE_DESCRIPTION("x86 generic CPUID driver"); diff -Nru a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c --- a/arch/i386/kernel/io_apic.c Tue May 18 23:38:06 2004 +++ b/arch/i386/kernel/io_apic.c Tue May 18 23:38:06 2004 @@ -317,8 +317,7 @@ #define IRQ_ALLOWED(cpu, allowed_mask) cpu_isset(cpu, allowed_mask) -#define CPU_TO_PACKAGEINDEX(i) \ - ((physical_balance && i > cpu_sibling_map[i]) ? cpu_sibling_map[i] : i) +#define CPU_TO_PACKAGEINDEX(i) (first_cpu(cpu_sibling_map[i])) #define MAX_BALANCED_IRQ_INTERVAL (5*HZ) #define MIN_BALANCED_IRQ_INTERVAL (HZ/2) @@ -401,6 +400,7 @@ unsigned long max_cpu_irq = 0, min_cpu_irq = (~0); unsigned long move_this_load = 0; int max_loaded = 0, min_loaded = 0; + int load; unsigned long useful_load_threshold = balanced_irq_interval + 10; int selected_irq; int tmp_loaded, first_attempt = 1; @@ -452,7 +452,7 @@ for (i = 0; i < NR_CPUS; i++) { if (!cpu_online(i)) continue; - if (physical_balance && i > cpu_sibling_map[i]) + if (i != CPU_TO_PACKAGEINDEX(i)) continue; if (min_cpu_irq > CPU_IRQ(i)) { min_cpu_irq = CPU_IRQ(i); @@ -471,7 +471,7 @@ for (i = 0; i < NR_CPUS; i++) { if (!cpu_online(i)) continue; - if (physical_balance && i > cpu_sibling_map[i]) + if (i != CPU_TO_PACKAGEINDEX(i)) continue; if (max_cpu_irq <= CPU_IRQ(i)) continue; @@ -551,9 +551,14 @@ * We seek the least loaded sibling by making the comparison * (A+B)/2 vs B */ - if (physical_balance && (CPU_IRQ(min_loaded) >> 1) > - CPU_IRQ(cpu_sibling_map[min_loaded])) - min_loaded = cpu_sibling_map[min_loaded]; + load = CPU_IRQ(min_loaded) >> 1; + for_each_cpu_mask(j, cpu_sibling_map[min_loaded]) { + if (load > CPU_IRQ(j)) { + /* This won't change cpu_sibling_map[min_loaded] */ + load = CPU_IRQ(j); + min_loaded = j; + } + } cpus_and(allowed_mask, cpu_online_map, irq_affinity[selected_irq]); target_cpu_mask = cpumask_of_cpu(min_loaded); diff -Nru a/arch/i386/kernel/nmi.c b/arch/i386/kernel/nmi.c --- a/arch/i386/kernel/nmi.c Tue May 18 23:38:07 2004 +++ b/arch/i386/kernel/nmi.c Tue May 18 23:38:07 2004 @@ -33,7 +33,8 @@ unsigned int nmi_watchdog = NMI_NONE; static unsigned int nmi_hz = HZ; -unsigned int nmi_perfctr_msr; /* the MSR to reset in NMI handler */ +static unsigned int nmi_perfctr_msr; /* the MSR to reset in NMI handler */ +static unsigned int nmi_p4_cccr_val; extern void show_registers(struct pt_regs *regs); /* @@ -80,7 +81,8 @@ #define P4_ESCR_EVENT_SELECT(N) ((N)<<25) #define P4_ESCR_OS (1<<3) #define P4_ESCR_USR (1<<2) -#define P4_CCCR_OVF_PMI (1<<26) +#define P4_CCCR_OVF_PMI0 (1<<26) +#define P4_CCCR_OVF_PMI1 (1<<27) #define P4_CCCR_THRESHOLD(N) ((N)<<20) #define P4_CCCR_COMPLEMENT (1<<19) #define P4_CCCR_COMPARE (1<<18) @@ -93,7 +95,7 @@ #define MSR_P4_IQ_COUNTER0 0x30C #define P4_NMI_CRU_ESCR0 (P4_ESCR_EVENT_SELECT(0x3F)|P4_ESCR_OS|P4_ESCR_USR) #define P4_NMI_IQ_CCCR0 \ - (P4_CCCR_OVF_PMI|P4_CCCR_THRESHOLD(15)|P4_CCCR_COMPLEMENT| \ + (P4_CCCR_OVF_PMI0|P4_CCCR_THRESHOLD(15)|P4_CCCR_COMPLEMENT| \ P4_CCCR_COMPARE|P4_CCCR_REQUIRED|P4_CCCR_ESCR_SELECT(4)|P4_CCCR_ENABLE) int __init check_nmi_watchdog (void) @@ -364,6 +366,11 @@ return 0; nmi_perfctr_msr = MSR_P4_IQ_COUNTER0; + nmi_p4_cccr_val = P4_NMI_IQ_CCCR0; +#ifdef CONFIG_SMP + if (smp_num_siblings == 2) + nmi_p4_cccr_val |= P4_CCCR_OVF_PMI1; +#endif if (!(misc_enable & MSR_P4_MISC_ENABLE_PEBS_UNAVAIL)) clear_msr_range(0x3F1, 2); @@ -381,7 +388,7 @@ Dprintk("setting P4_IQ_COUNTER0 to 0x%08lx\n", -(cpu_khz/nmi_hz*1000)); wrmsr(MSR_P4_IQ_COUNTER0, -(cpu_khz/nmi_hz*1000), -1); apic_write(APIC_LVTPC, APIC_DM_NMI); - wrmsr(MSR_P4_IQ_CCCR0, P4_NMI_IQ_CCCR0, 0); + wrmsr(MSR_P4_IQ_CCCR0, nmi_p4_cccr_val, 0); return 1; } @@ -498,7 +505,7 @@ * - LVTPC is masked on interrupt and must be * unmasked by the LVTPC handler. */ - wrmsr(MSR_P4_IQ_CCCR0, P4_NMI_IQ_CCCR0, 0); + wrmsr(MSR_P4_IQ_CCCR0, nmi_p4_cccr_val, 0); apic_write(APIC_LVTPC, APIC_DM_NMI); } else if (nmi_perfctr_msr == MSR_P6_PERFCTR0) { diff -Nru a/arch/i386/kernel/process.c b/arch/i386/kernel/process.c --- a/arch/i386/kernel/process.c Tue May 18 23:38:05 2004 +++ b/arch/i386/kernel/process.c Tue May 18 23:38:05 2004 @@ -633,11 +633,6 @@ return error; } -/* - * These bracket the sleeping functions.. - */ -#define first_sched ((unsigned long) scheduling_functions_start_here) -#define last_sched ((unsigned long) scheduling_functions_end_here) #define top_esp (THREAD_SIZE - sizeof(unsigned long)) #define top_ebp (THREAD_SIZE - 2*sizeof(unsigned long)) @@ -658,14 +653,12 @@ if (ebp < stack_page || ebp > top_ebp+stack_page) return 0; eip = *(unsigned long *) (ebp+4); - if (eip < first_sched || eip >= last_sched) + if (!in_sched_functions(eip)) return eip; ebp = *(unsigned long *) ebp; } while (count++ < 16); return 0; } -#undef last_sched -#undef first_sched /* * sys_alloc_thread_area: get a yet unused TLS descriptor index. @@ -744,7 +737,7 @@ ((desc)->a & 0x0ffff) | \ ((desc)->b & 0xf0000) ) -#define GET_32BIT(desc) (((desc)->b >> 23) & 1) +#define GET_32BIT(desc) (((desc)->b >> 22) & 1) #define GET_CONTENTS(desc) (((desc)->b >> 10) & 3) #define GET_WRITABLE(desc) (((desc)->b >> 9) & 1) #define GET_LIMIT_PAGES(desc) (((desc)->b >> 23) & 1) diff -Nru a/arch/i386/kernel/ptrace.c b/arch/i386/kernel/ptrace.c --- a/arch/i386/kernel/ptrace.c Tue May 18 23:38:06 2004 +++ b/arch/i386/kernel/ptrace.c Tue May 18 23:38:06 2004 @@ -174,7 +174,7 @@ ((desc)->a & 0x0ffff) | \ ((desc)->b & 0xf0000) ) -#define GET_32BIT(desc) (((desc)->b >> 23) & 1) +#define GET_32BIT(desc) (((desc)->b >> 22) & 1) #define GET_CONTENTS(desc) (((desc)->b >> 10) & 3) #define GET_WRITABLE(desc) (((desc)->b >> 9) & 1) #define GET_LIMIT_PAGES(desc) (((desc)->b >> 23) & 1) diff -Nru a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c --- a/arch/i386/kernel/setup.c Tue May 18 23:38:07 2004 +++ b/arch/i386/kernel/setup.c Tue May 18 23:38:07 2004 @@ -65,6 +65,7 @@ #ifdef CONFIG_EFI int efi_enabled = 0; +EXPORT_SYMBOL(efi_enabled); #endif /* cpu data as detected by the assembly code in head.S */ diff -Nru a/arch/i386/kernel/smp.c b/arch/i386/kernel/smp.c --- a/arch/i386/kernel/smp.c Tue May 18 23:38:05 2004 +++ b/arch/i386/kernel/smp.c Tue May 18 23:38:05 2004 @@ -519,6 +519,9 @@ if (!cpus) return 0; + /* Can deadlock when called with interrupts disabled */ + WARN_ON(irqs_disabled()); + data.func = func; data.info = info; atomic_set(&data.started, 0); diff -Nru a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c --- a/arch/i386/kernel/smpboot.c Tue May 18 23:38:07 2004 +++ b/arch/i386/kernel/smpboot.c Tue May 18 23:38:07 2004 @@ -39,6 +39,7 @@ #include #include +#include #include #include #include @@ -936,7 +937,7 @@ /* Where the IO area was mapped on multiquad, always 0 otherwise */ void *xquad_portio; -int cpu_sibling_map[NR_CPUS] __cacheline_aligned; +cpumask_t cpu_sibling_map[NR_CPUS] __cacheline_aligned; static void __init smp_boot_cpus(unsigned int max_cpus) { @@ -955,6 +956,8 @@ current_thread_info()->cpu = 0; smp_tune_scheduling(); + cpus_clear(cpu_sibling_map[0]); + cpu_set(0, cpu_sibling_map[0]); /* * If we couldn't find an SMP configuration at boot time, @@ -1081,34 +1084,39 @@ Dprintk("Boot done.\n"); /* - * If Hyper-Threading is avaialble, construct cpu_sibling_map[], so - * that we can tell the sibling CPU efficiently. + * construct cpu_sibling_map[], so that we can tell sibling CPUs + * efficiently. */ - if (cpu_has_ht && smp_num_siblings > 1) { - for (cpu = 0; cpu < NR_CPUS; cpu++) - cpu_sibling_map[cpu] = NO_PROC_ID; - - for (cpu = 0; cpu < NR_CPUS; cpu++) { - int i; - if (!cpu_isset(cpu, cpu_callout_map)) - continue; + for (cpu = 0; cpu < NR_CPUS; cpu++) + cpus_clear(cpu_sibling_map[cpu]); + + for (cpu = 0; cpu < NR_CPUS; cpu++) { + int siblings = 0; + int i; + if (!cpu_isset(cpu, cpu_callout_map)) + continue; + if (smp_num_siblings > 1) { for (i = 0; i < NR_CPUS; i++) { - if (i == cpu || !cpu_isset(i, cpu_callout_map)) + if (!cpu_isset(i, cpu_callout_map)) continue; if (phys_proc_id[cpu] == phys_proc_id[i]) { - cpu_sibling_map[cpu] = i; - printk("cpu_sibling_map[%d] = %d\n", cpu, cpu_sibling_map[cpu]); - break; + siblings++; + cpu_set(i, cpu_sibling_map[cpu]); } } - if (cpu_sibling_map[cpu] == NO_PROC_ID) { - smp_num_siblings = 1; - printk(KERN_WARNING "WARNING: No sibling found for CPU %d.\n", cpu); - } + } else { + siblings++; + cpu_set(cpu, cpu_sibling_map[cpu]); } + + if (siblings != smp_num_siblings) + printk(KERN_WARNING "WARNING: %d siblings found for CPU%d, should be %d\n", siblings, cpu, smp_num_siblings); } + if (nmi_watchdog == NMI_LOCAL_APIC) + check_nmi_watchdog(); + smpboot_setup_io_apic(); setup_boot_APIC_clock(); @@ -1119,6 +1127,209 @@ if (cpu_has_tsc && cpucount && cpu_khz) synchronize_tsc_bp(); } + +#ifdef CONFIG_SCHED_SMT +#ifdef CONFIG_NUMA +static struct sched_group sched_group_cpus[NR_CPUS]; +static struct sched_group sched_group_phys[NR_CPUS]; +static struct sched_group sched_group_nodes[MAX_NUMNODES]; +static DEFINE_PER_CPU(struct sched_domain, cpu_domains); +static DEFINE_PER_CPU(struct sched_domain, phys_domains); +static DEFINE_PER_CPU(struct sched_domain, node_domains); +__init void arch_init_sched_domains(void) +{ + int i; + struct sched_group *first = NULL, *last = NULL; + + /* Set up domains */ + for_each_cpu(i) { + struct sched_domain *cpu_domain = &per_cpu(cpu_domains, i); + struct sched_domain *phys_domain = &per_cpu(phys_domains, i); + struct sched_domain *node_domain = &per_cpu(node_domains, i); + int node = cpu_to_node(i); + cpumask_t nodemask = node_to_cpumask(node); + + *cpu_domain = SD_SIBLING_INIT; + cpu_domain->span = cpu_sibling_map[i]; + cpu_domain->parent = phys_domain; + cpu_domain->groups = &sched_group_cpus[i]; + + *phys_domain = SD_CPU_INIT; + phys_domain->span = nodemask; + phys_domain->parent = node_domain; + phys_domain->groups = &sched_group_phys[first_cpu(cpu_domain->span)]; + + *node_domain = SD_NODE_INIT; + node_domain->span = cpu_possible_map; + node_domain->groups = &sched_group_nodes[cpu_to_node(i)]; + } + + /* Set up CPU (sibling) groups */ + for_each_cpu(i) { + struct sched_domain *cpu_domain = &per_cpu(cpu_domains, i); + int j; + first = last = NULL; + + if (i != first_cpu(cpu_domain->span)) + continue; + + for_each_cpu_mask(j, cpu_domain->span) { + struct sched_group *cpu = &sched_group_cpus[j]; + + cpu->cpumask = CPU_MASK_NONE; + cpu_set(j, cpu->cpumask); + cpu->cpu_power = SCHED_LOAD_SCALE; + + if (!first) + first = cpu; + if (last) + last->next = cpu; + last = cpu; + } + last->next = first; + } + + for (i = 0; i < MAX_NUMNODES; i++) { + int j; + cpumask_t nodemask; + struct sched_group *node = &sched_group_nodes[i]; + cpus_and(nodemask, node_to_cpumask(i), cpu_possible_map); + + if (cpus_empty(nodemask)) + continue; + + first = last = NULL; + /* Set up physical groups */ + for_each_cpu_mask(j, nodemask) { + struct sched_domain *cpu_domain = &per_cpu(cpu_domains, j); + struct sched_group *cpu = &sched_group_phys[j]; + + if (j != first_cpu(cpu_domain->span)) + continue; + + cpu->cpumask = cpu_domain->span; + /* + * Make each extra sibling increase power by 10% of + * the basic CPU. This is very arbitrary. + */ + cpu->cpu_power = SCHED_LOAD_SCALE + SCHED_LOAD_SCALE*(cpus_weight(cpu->cpumask)-1) / 10; + node->cpu_power += cpu->cpu_power; + + if (!first) + first = cpu; + if (last) + last->next = cpu; + last = cpu; + } + last->next = first; + } + + /* Set up nodes */ + first = last = NULL; + for (i = 0; i < MAX_NUMNODES; i++) { + struct sched_group *cpu = &sched_group_nodes[i]; + cpumask_t nodemask; + cpus_and(nodemask, node_to_cpumask(i), cpu_possible_map); + + if (cpus_empty(nodemask)) + continue; + + cpu->cpumask = nodemask; + /* ->cpu_power already setup */ + + if (!first) + first = cpu; + if (last) + last->next = cpu; + last = cpu; + } + last->next = first; + + mb(); + for_each_cpu(i) { + struct sched_domain *cpu_domain = &per_cpu(cpu_domains, i); + cpu_attach_domain(cpu_domain, i); + } +} +#else /* !CONFIG_NUMA */ +static struct sched_group sched_group_cpus[NR_CPUS]; +static struct sched_group sched_group_phys[NR_CPUS]; +static DEFINE_PER_CPU(struct sched_domain, cpu_domains); +static DEFINE_PER_CPU(struct sched_domain, phys_domains); +__init void arch_init_sched_domains(void) +{ + int i; + struct sched_group *first = NULL, *last = NULL; + + /* Set up domains */ + for_each_cpu(i) { + struct sched_domain *cpu_domain = &per_cpu(cpu_domains, i); + struct sched_domain *phys_domain = &per_cpu(phys_domains, i); + + *cpu_domain = SD_SIBLING_INIT; + cpu_domain->span = cpu_sibling_map[i]; + cpu_domain->parent = phys_domain; + cpu_domain->groups = &sched_group_cpus[i]; + + *phys_domain = SD_CPU_INIT; + phys_domain->span = cpu_possible_map; + phys_domain->groups = &sched_group_phys[first_cpu(cpu_domain->span)]; + } + + /* Set up CPU (sibling) groups */ + for_each_cpu(i) { + struct sched_domain *cpu_domain = &per_cpu(cpu_domains, i); + int j; + first = last = NULL; + + if (i != first_cpu(cpu_domain->span)) + continue; + + for_each_cpu_mask(j, cpu_domain->span) { + struct sched_group *cpu = &sched_group_cpus[j]; + + cpus_clear(cpu->cpumask); + cpu_set(j, cpu->cpumask); + cpu->cpu_power = SCHED_LOAD_SCALE; + + if (!first) + first = cpu; + if (last) + last->next = cpu; + last = cpu; + } + last->next = first; + } + + first = last = NULL; + /* Set up physical groups */ + for_each_cpu(i) { + struct sched_domain *cpu_domain = &per_cpu(cpu_domains, i); + struct sched_group *cpu = &sched_group_phys[i]; + + if (i != first_cpu(cpu_domain->span)) + continue; + + cpu->cpumask = cpu_domain->span; + /* See SMT+NUMA setup for comment */ + cpu->cpu_power = SCHED_LOAD_SCALE + SCHED_LOAD_SCALE*(cpus_weight(cpu->cpumask)-1) / 10; + + if (!first) + first = cpu; + if (last) + last->next = cpu; + last = cpu; + } + last->next = first; + + mb(); + for_each_cpu(i) { + struct sched_domain *cpu_domain = &per_cpu(cpu_domains, i); + cpu_attach_domain(cpu_domain, i); + } +} +#endif /* CONFIG_NUMA */ +#endif /* CONFIG_SCHED_SMT */ /* These are wrappers to interface to the new boot process. Someone who understands all this stuff should rewrite it properly. --RR 15/Jul/02 */ diff -Nru a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c --- a/arch/i386/kernel/traps.c Tue May 18 23:38:05 2004 +++ b/arch/i386/kernel/traps.c Tue May 18 23:38:05 2004 @@ -94,27 +94,70 @@ static int kstack_depth_to_print = 24; -void show_trace(struct task_struct *task, unsigned long * stack) +static int valid_stack_ptr(struct task_struct *task, void *p) +{ + if (p <= (void *)task->thread_info) + return 0; + if (kstack_end(p)) + return 0; + return 1; +} + +#ifdef CONFIG_FRAME_POINTER +void print_context_stack(struct task_struct *task, unsigned long *stack, + unsigned long ebp) { unsigned long addr; - if (!stack) - stack = (unsigned long*)&stack; + while (valid_stack_ptr(task, (void *)ebp)) { + addr = *(unsigned long *)(ebp + 4); + printk(" [<%08lx>] ", addr); + print_symbol("%s", addr); + printk("\n"); + ebp = *(unsigned long *)ebp; + } +} +#else +void print_context_stack(struct task_struct *task, unsigned long *stack, + unsigned long ebp) +{ + unsigned long addr; - printk("Call Trace:"); -#ifdef CONFIG_KALLSYMS - printk("\n"); + while (!kstack_end(stack)) { + addr = *stack++; + if (kernel_text_address(addr)) { + printk(" [<%08lx>] ", addr); + print_symbol("%s\n", addr); + } + } +} #endif + +void show_trace(struct task_struct *task, unsigned long * stack) +{ + unsigned long ebp; + + if (!task) + task = current; + + if (!valid_stack_ptr(task, stack)) { + printk("Stack pointer is garbage, not printing trace\n"); + return; + } + + if (task == current) { + /* Grab ebp right from our regs */ + asm ("movl %%ebp, %0" : "=r" (ebp) : ); + } else { + /* ebp is the last reg pushed by switch_to */ + ebp = *(unsigned long *) task->thread.esp; + } + while (1) { struct thread_info *context; - context = (struct thread_info*) ((unsigned long)stack & (~(THREAD_SIZE - 1))); - while (!kstack_end(stack)) { - addr = *stack++; - if (kernel_text_address(addr)) { - printk(" [<%08lx>] ", addr); - print_symbol("%s\n", addr); - } - } + context = (struct thread_info *) + ((unsigned long)stack & (~(THREAD_SIZE - 1))); + print_context_stack(task, stack, ebp); stack = (unsigned long*)context->previous_esp; if (!stack) break; @@ -143,7 +186,7 @@ printk("\n "); printk("%08lx ", *stack++); } - printk("\n"); + printk("\nCall Trace:\n"); show_trace(task, esp); } diff -Nru a/arch/i386/mach-es7000/Makefile b/arch/i386/mach-es7000/Makefile --- a/arch/i386/mach-es7000/Makefile Tue May 18 23:38:07 2004 +++ b/arch/i386/mach-es7000/Makefile Tue May 18 23:38:07 2004 @@ -2,4 +2,5 @@ # Makefile for the linux kernel. # -obj-y := setup.o topology.o es7000.o +obj-$(CONFIG_X86_ES7000) := es7000plat.o +obj-$(CONFIG_X86_GENERICARCH) := es7000plat.o diff -Nru a/arch/i386/mach-es7000/es7000.c b/arch/i386/mach-es7000/es7000.c --- a/arch/i386/mach-es7000/es7000.c Tue May 18 23:38:09 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,279 +0,0 @@ -/* - * Written by: Garry Forsgren, Unisys Corporation - * Natalie Protasevich, Unisys Corporation - * This file contains the code to configure and interface - * with Unisys ES7000 series hardware system manager. - * - * Copyright (c) 2003 Unisys Corporation. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Unisys Corporation, Township Line & Union Meeting - * Roads-A, Unisys Way, Blue Bell, Pennsylvania, 19424, or: - * - * http://www.unisys.com - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "es7000.h" - -/* - * ES7000 Globals - */ - -volatile unsigned long *psai = NULL; -struct mip_reg *mip_reg; -struct mip_reg *host_reg; -int mip_port; -unsigned long mip_addr, host_addr; - -/* - * Parse the OEM Table - */ - -void __init -parse_unisys_oem (char *oemptr, int oem_entries) -{ - int i; - int success = 0; - unsigned char type, size; - unsigned long val; - char *tp = NULL; - struct psai *psaip = NULL; - struct mip_reg_info *mi; - struct mip_reg *host, *mip; - - tp = oemptr; - - tp += 8; - - for (i=0; i <= oem_entries; i++) { - type = *tp++; - size = *tp++; - tp -= 2; - switch (type) { - case MIP_REG: - mi = (struct mip_reg_info *)tp; - val = MIP_RD_LO(mi->host_reg); - host_addr = val; - host = (struct mip_reg *)val; - host_reg = __va(host); - val = MIP_RD_LO(mi->mip_reg); - mip_addr = val; - mip = (struct mip_reg *)val; - mip_reg = __va(mip); - Dprintk("es7000_mipcfg: host_reg = 0x%lx \n", - (unsigned long)host_reg); - Dprintk("es7000_mipcfg: mip_reg = 0x%lx \n", - (unsigned long)mip_reg); - success++; - break; - case MIP_PSAI_REG: - psaip = (struct psai *)tp; - if (tp != NULL) { - if (psaip->addr) - psai = __va(psaip->addr); - else - psai = NULL; - success++; - } - break; - default: - break; - } - if (i == 6) break; - tp += size; - } - - if (success < 2) { - printk("\nNo ES7000 found.\n"); - es7000_plat = 0; - } else { - printk("\nEnabling ES7000 specific features...\n"); - es7000_plat = 1; - } - return; -} - -int __init -find_unisys_acpi_oem_table(unsigned long *oem_addr, int *length) -{ - struct acpi_table_rsdp *rsdp = NULL; - unsigned long rsdp_phys = 0; - struct acpi_table_header *header = NULL; - int i; - struct acpi_table_sdt sdt; - - rsdp_phys = acpi_find_rsdp(); - rsdp = __va(rsdp_phys); - if (rsdp->rsdt_address) { - struct acpi_table_rsdt *mapped_rsdt = NULL; - sdt.pa = rsdp->rsdt_address; - - header = (struct acpi_table_header *) - __acpi_map_table(sdt.pa, sizeof(struct acpi_table_header)); - if (!header) - return -ENODEV; - - sdt.count = (header->length - sizeof(struct acpi_table_header)) >> 3; - mapped_rsdt = (struct acpi_table_rsdt *) - __acpi_map_table(sdt.pa, header->length); - if (!mapped_rsdt) - return -ENODEV; - - header = &mapped_rsdt->header; - - for (i = 0; i < sdt.count; i++) - sdt.entry[i].pa = (unsigned long) mapped_rsdt->entry[i]; - }; - for (i = 0; i < sdt.count; i++) { - - header = (struct acpi_table_header *) - __acpi_map_table(sdt.entry[i].pa, - sizeof(struct acpi_table_header)); - if (!header) - continue; - if (!strncmp((char *) &header->signature, "OEM1", 4)) { - if (!strncmp((char *) &header->oem_id, "UNISYS", 6)) { - void *addr; - struct oem_table *t; - acpi_table_print(header, sdt.entry[i].pa); - t = (struct oem_table *) __acpi_map_table(sdt.entry[i].pa, header->length); - addr = (void *) __acpi_map_table(t->OEMTableAddr, t->OEMTableSize); - *length = header->length; - *oem_addr = (unsigned long) addr; - return 0; - } - } - } - printk("ES7000: did not find Unisys ACPI OEM table!\n"); - return -1; -} - -static void -es7000_spin(int n) -{ - int i = 0; - - while (i++ < n) - rep_nop(); -} - -static int __init -es7000_mip_write(struct mip_reg *mip_reg) -{ - int status = 0; - int spin; - - spin = MIP_SPIN; - while (((unsigned long long)host_reg->off_38 & - (unsigned long long)MIP_VALID) != 0) { - if (--spin <= 0) { - printk("es7000_mip_write: Timeout waiting for Host Valid Flag"); - return -1; - } - es7000_spin(MIP_SPIN); - } - - memcpy(host_reg, mip_reg, sizeof(struct mip_reg)); - outb(1, mip_port); - - spin = MIP_SPIN; - - while (((unsigned long long)mip_reg->off_38 & - (unsigned long long)MIP_VALID) == 0) { - if (--spin <= 0) { - printk("es7000_mip_write: Timeout waiting for MIP Valid Flag"); - return -1; - } - es7000_spin(MIP_SPIN); - } - - status = ((unsigned long long)mip_reg->off_0 & - (unsigned long long)0xffff0000000000) >> 48; - mip_reg->off_38 = ((unsigned long long)mip_reg->off_38 & - (unsigned long long)~MIP_VALID); - return status; -} - -int -es7000_start_cpu(int cpu, unsigned long eip) -{ - unsigned long vect = 0, psaival = 0; - - if (psai == NULL) - return -1; - - vect = ((unsigned long)__pa(eip)/0x1000) << 16; - psaival = (0x1000000 | vect | cpu); - - while (*psai & 0x1000000) - ; - - *psai = psaival; - - return 0; - -} - -int -es7000_stop_cpu(int cpu) -{ - int startup; - - if (psai == NULL) - return -1; - - startup= (0x1000000 | cpu); - - while ((*psai & 0xff00ffff) != startup) - ; - - startup = (*psai & 0xff0000) >> 16; - *psai &= 0xffffff; - - return 0; - -} - -void __init -es7000_sw_apic() -{ - if (es7000_plat) { - int mip_status; - struct mip_reg es7000_mip_reg; - - printk("ES7000: Enabling APIC mode.\n"); - memset(&es7000_mip_reg, 0, sizeof(struct mip_reg)); - es7000_mip_reg.off_0 = MIP_SW_APIC; - es7000_mip_reg.off_38 = (MIP_VALID); - while ((mip_status = es7000_mip_write(&es7000_mip_reg)) != 0) - printk("es7000_sw_apic: command failed, status = %x\n", - mip_status); - return; - } -} diff -Nru a/arch/i386/mach-es7000/es7000.h b/arch/i386/mach-es7000/es7000.h --- a/arch/i386/mach-es7000/es7000.h Tue May 18 23:38:05 2004 +++ b/arch/i386/mach-es7000/es7000.h Tue May 18 23:38:05 2004 @@ -30,6 +30,7 @@ #define MIP_BUSY 1 #define MIP_SPIN 0xf0000 #define MIP_VALID 0x0100000000000000 +#define MIP_PORT(VALUE) ((VALUE >> 32) & 0xffff) #define MIP_RD_LO(VALUE) (VALUE & 0xffffffff) @@ -103,7 +104,7 @@ #define MIP_SW_APIC 0x1020b #define MIP_FUNC(VALUE) (VALUE & 0xff) -extern void parse_unisys_oem (char *oemptr, int oem_entries); +extern int parse_unisys_oem (char *oemptr, int oem_entries); extern int find_unisys_acpi_oem_table(unsigned long *oem_addr, int *length); extern int es7000_start_cpu(int cpu, unsigned long eip); extern void es7000_sw_apic(void); diff -Nru a/arch/i386/mach-es7000/es7000plat.c b/arch/i386/mach-es7000/es7000plat.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/i386/mach-es7000/es7000plat.c Tue May 18 23:38:09 2004 @@ -0,0 +1,280 @@ +/* + * Written by: Garry Forsgren, Unisys Corporation + * Natalie Protasevich, Unisys Corporation + * This file contains the code to configure and interface + * with Unisys ES7000 series hardware system manager. + * + * Copyright (c) 2003 Unisys Corporation. All Rights Reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it would be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write the Free Software Foundation, Inc., 59 + * Temple Place - Suite 330, Boston MA 02111-1307, USA. + * + * Contact information: Unisys Corporation, Township Line & Union Meeting + * Roads-A, Unisys Way, Blue Bell, Pennsylvania, 19424, or: + * + * http://www.unisys.com + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "es7000.h" + +/* + * ES7000 Globals + */ + +volatile unsigned long *psai = NULL; +struct mip_reg *mip_reg; +struct mip_reg *host_reg; +int mip_port; +unsigned long mip_addr, host_addr; + +/* + * Parse the OEM Table + */ + +int __init +parse_unisys_oem (char *oemptr, int oem_entries) +{ + int i; + int success = 0; + unsigned char type, size; + unsigned long val; + char *tp = NULL; + struct psai *psaip = NULL; + struct mip_reg_info *mi; + struct mip_reg *host, *mip; + + tp = oemptr; + + tp += 8; + + for (i=0; i <= oem_entries; i++) { + type = *tp++; + size = *tp++; + tp -= 2; + switch (type) { + case MIP_REG: + mi = (struct mip_reg_info *)tp; + val = MIP_RD_LO(mi->host_reg); + host_addr = val; + host = (struct mip_reg *)val; + host_reg = __va(host); + val = MIP_RD_LO(mi->mip_reg); + mip_port = MIP_PORT(mi->mip_info); + mip_addr = val; + mip = (struct mip_reg *)val; + mip_reg = __va(mip); + Dprintk("es7000_mipcfg: host_reg = 0x%lx \n", + (unsigned long)host_reg); + Dprintk("es7000_mipcfg: mip_reg = 0x%lx \n", + (unsigned long)mip_reg); + success++; + break; + case MIP_PSAI_REG: + psaip = (struct psai *)tp; + if (tp != NULL) { + if (psaip->addr) + psai = __va(psaip->addr); + else + psai = NULL; + success++; + } + break; + default: + break; + } + if (i == 6) break; + tp += size; + } + + if (success < 2) { + printk("\nNo ES7000 found.\n"); + es7000_plat = 0; + } else { + printk("\nEnabling ES7000 specific features...\n"); + es7000_plat = 1; + } + return es7000_plat; +} + +int __init +find_unisys_acpi_oem_table(unsigned long *oem_addr, int *length) +{ + struct acpi_table_rsdp *rsdp = NULL; + unsigned long rsdp_phys = 0; + struct acpi_table_header *header = NULL; + int i; + struct acpi_table_sdt sdt; + + rsdp_phys = acpi_find_rsdp(); + rsdp = __va(rsdp_phys); + if (rsdp->rsdt_address) { + struct acpi_table_rsdt *mapped_rsdt = NULL; + sdt.pa = rsdp->rsdt_address; + + header = (struct acpi_table_header *) + __acpi_map_table(sdt.pa, sizeof(struct acpi_table_header)); + if (!header) + return -ENODEV; + + sdt.count = (header->length - sizeof(struct acpi_table_header)) >> 3; + mapped_rsdt = (struct acpi_table_rsdt *) + __acpi_map_table(sdt.pa, header->length); + if (!mapped_rsdt) + return -ENODEV; + + header = &mapped_rsdt->header; + + for (i = 0; i < sdt.count; i++) + sdt.entry[i].pa = (unsigned long) mapped_rsdt->entry[i]; + }; + for (i = 0; i < sdt.count; i++) { + + header = (struct acpi_table_header *) + __acpi_map_table(sdt.entry[i].pa, + sizeof(struct acpi_table_header)); + if (!header) + continue; + if (!strncmp((char *) &header->signature, "OEM1", 4)) { + if (!strncmp((char *) &header->oem_id, "UNISYS", 6)) { + void *addr; + struct oem_table *t; + acpi_table_print(header, sdt.entry[i].pa); + t = (struct oem_table *) __acpi_map_table(sdt.entry[i].pa, header->length); + addr = (void *) __acpi_map_table(t->OEMTableAddr, t->OEMTableSize); + *length = header->length; + *oem_addr = (unsigned long) addr; + return 0; + } + } + } + printk("ES7000: did not find Unisys ACPI OEM table!\n"); + return -1; +} + +static void +es7000_spin(int n) +{ + int i = 0; + + while (i++ < n) + rep_nop(); +} + +static int __init +es7000_mip_write(struct mip_reg *mip_reg) +{ + int status = 0; + int spin; + + spin = MIP_SPIN; + while (((unsigned long long)host_reg->off_38 & + (unsigned long long)MIP_VALID) != 0) { + if (--spin <= 0) { + printk("es7000_mip_write: Timeout waiting for Host Valid Flag"); + return -1; + } + es7000_spin(MIP_SPIN); + } + + memcpy(host_reg, mip_reg, sizeof(struct mip_reg)); + outb(1, mip_port); + + spin = MIP_SPIN; + + while (((unsigned long long)mip_reg->off_38 & + (unsigned long long)MIP_VALID) == 0) { + if (--spin <= 0) { + printk("es7000_mip_write: Timeout waiting for MIP Valid Flag"); + return -1; + } + es7000_spin(MIP_SPIN); + } + + status = ((unsigned long long)mip_reg->off_0 & + (unsigned long long)0xffff0000000000) >> 48; + mip_reg->off_38 = ((unsigned long long)mip_reg->off_38 & + (unsigned long long)~MIP_VALID); + return status; +} + +int +es7000_start_cpu(int cpu, unsigned long eip) +{ + unsigned long vect = 0, psaival = 0; + + if (psai == NULL) + return -1; + + vect = ((unsigned long)__pa(eip)/0x1000) << 16; + psaival = (0x1000000 | vect | cpu); + + while (*psai & 0x1000000) + ; + + *psai = psaival; + + return 0; + +} + +int +es7000_stop_cpu(int cpu) +{ + int startup; + + if (psai == NULL) + return -1; + + startup= (0x1000000 | cpu); + + while ((*psai & 0xff00ffff) != startup) + ; + + startup = (*psai & 0xff0000) >> 16; + *psai &= 0xffffff; + + return 0; + +} + +void __init +es7000_sw_apic() +{ + if (es7000_plat) { + int mip_status; + struct mip_reg es7000_mip_reg; + + printk("ES7000: Enabling APIC mode.\n"); + memset(&es7000_mip_reg, 0, sizeof(struct mip_reg)); + es7000_mip_reg.off_0 = MIP_SW_APIC; + es7000_mip_reg.off_38 = (MIP_VALID); + while ((mip_status = es7000_mip_write(&es7000_mip_reg)) != 0) + printk("es7000_sw_apic: command failed, status = %x\n", + mip_status); + return; + } +} diff -Nru a/arch/i386/mach-es7000/setup.c b/arch/i386/mach-es7000/setup.c --- a/arch/i386/mach-es7000/setup.c Tue May 18 23:38:07 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,106 +0,0 @@ -/* - * Machine specific setup for es7000 - */ - -#include -#include -#include -#include -#include -#include -#include - -/** - * pre_intr_init_hook - initialisation prior to setting up interrupt vectors - * - * Description: - * Perform any necessary interrupt initialisation prior to setting up - * the "ordinary" interrupt call gates. For legacy reasons, the ISA - * interrupts should be initialised here if the machine emulates a PC - * in any way. - **/void __init pre_intr_init_hook(void) -{ - init_ISA_irqs(); -} - -/* - * IRQ2 is cascade interrupt to second interrupt controller - */ -static struct irqaction irq2 = { no_action, 0, 0, "cascade", NULL, NULL}; - -/** - * intr_init_hook - post gate setup interrupt initialisation - * - * Description: - * Fill in any interrupts that may have been left out by the general - * init_IRQ() routine. interrupts having to do with the machine rather - * than the devices on the I/O bus (like APIC interrupts in intel MP - * systems) are started here. - **/ -void __init intr_init_hook(void) -{ -#ifdef CONFIG_X86_LOCAL_APIC - apic_intr_init(); -#endif - - if (!acpi_ioapic) - setup_irq(2, &irq2); -} - -/** - * pre_setup_arch_hook - hook called prior to any setup_arch() execution - * - * Description: - * generally used to activate any machine specific identification - * routines that may be needed before setup_arch() runs. On VISWS - * this is used to get the board revision and type. - **/ -void __init pre_setup_arch_hook(void) -{ -} - -/** - * trap_init_hook - initialise system specific traps - * - * Description: - * Called as the final act of trap_init(). Used in VISWS to initialise - * the various board specific APIC traps. - **/ -void __init trap_init_hook(void) -{ -} - -static struct irqaction irq0 = { timer_interrupt, SA_INTERRUPT, 0, "timer", NULL, NULL}; - -/** - * time_init_hook - do any specific initialisations for the system timer. - * - * Description: - * Must plug the system timer interrupt source at HZ into the IRQ listed - * in irq_vectors.h:TIMER_IRQ - **/ -void __init time_init_hook(void) -{ - setup_irq(0, &irq0); -} - -#ifdef CONFIG_MCA -/** - * mca_nmi_hook - hook into MCA specific NMI chain - * - * Description: - * The MCA (Microchannel Arcitecture) has an NMI chain for NMI sources - * along the MCA bus. Use this to hook into that chain if you will need - * it. - **/ -void __init mca_nmi_hook(void) -{ - /* If I recall correctly, there's a whole bunch of other things that - * we can do to check for NMI problems, but that's all I know about - * at the moment. - */ - - printk("NMI generated from unknown source!\n"); -} - -#endif diff -Nru a/arch/i386/mach-es7000/topology.c b/arch/i386/mach-es7000/topology.c --- a/arch/i386/mach-es7000/topology.c Tue May 18 23:38:09 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,64 +0,0 @@ -/* - * arch/i386/mach-generic/topology.c - Populate driverfs with topology information - * - * Written by: Matthew Dobson, IBM Corporation - * Original Code: Paul Dorwin, IBM Corporation, Patrick Mochel, OSDL - * - * Copyright (C) 2002, IBM Corp. - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or - * NON INFRINGEMENT. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * Send feedback to - */ -#include -#include -#include - -struct i386_cpu cpu_devices[NR_CPUS]; - -#ifdef CONFIG_NUMA -#include -#include - -struct i386_node node_devices[MAX_NUMNODES]; - -static int __init topology_init(void) -{ - int i; - - for (i = 0; i < num_online_nodes(); i++) - arch_register_node(i); - for (i = 0; i < NR_CPUS; i++) - if (cpu_possible(i)) arch_register_cpu(i); - return 0; -} - -#else /* !CONFIG_NUMA */ - -static int __init topology_init(void) -{ - int i; - - for (i = 0; i < NR_CPUS; i++) - if (cpu_possible(i)) arch_register_cpu(i); - return 0; -} - -#endif /* CONFIG_NUMA */ - -subsys_initcall(topology_init); diff -Nru a/arch/i386/mach-generic/Makefile b/arch/i386/mach-generic/Makefile --- a/arch/i386/mach-generic/Makefile Tue May 18 23:38:07 2004 +++ b/arch/i386/mach-generic/Makefile Tue May 18 23:38:07 2004 @@ -4,15 +4,4 @@ EXTRA_CFLAGS += -I../kernel -obj-y := probe.o summit.o bigsmp.o default.o - - -# -# Makefile for the generic architecture -# - -EXTRA_CFLAGS += -I../kernel - -obj-y := probe.o summit.o bigsmp.o default.o - - +obj-y := probe.o summit.o bigsmp.o es7000.o default.o ../mach-es7000/ diff -Nru a/arch/i386/mach-generic/es7000.c b/arch/i386/mach-generic/es7000.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/i386/mach-generic/es7000.c Tue May 18 23:38:09 2004 @@ -0,0 +1,28 @@ +/* + * APIC driver for the Unisys ES7000 chipset. + */ +#define APIC_DEFINITION 1 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static __init int probe_es7000(void) +{ + /* probed later in mptable/ACPI hooks */ + return 0; +} + +struct genapic apic_es7000 = APIC_INIT("es7000", probe_es7000); diff -Nru a/arch/i386/mach-generic/probe.c b/arch/i386/mach-generic/probe.c --- a/arch/i386/mach-generic/probe.c Tue May 18 23:38:05 2004 +++ b/arch/i386/mach-generic/probe.c Tue May 18 23:38:05 2004 @@ -17,6 +17,7 @@ extern struct genapic apic_summit; extern struct genapic apic_bigsmp; +extern struct genapic apic_es7000; extern struct genapic apic_default; struct genapic *genapic = &apic_default; @@ -24,6 +25,7 @@ struct genapic *apic_probe[] __initdata = { &apic_summit, &apic_bigsmp, + &apic_es7000, &apic_default, /* must be last */ NULL, }; diff -Nru a/arch/i386/mach-voyager/voyager_smp.c b/arch/i386/mach-voyager/voyager_smp.c --- a/arch/i386/mach-voyager/voyager_smp.c Tue May 18 23:38:06 2004 +++ b/arch/i386/mach-voyager/voyager_smp.c Tue May 18 23:38:06 2004 @@ -1106,6 +1106,9 @@ if (!mask) return 0; + /* Can deadlock when called with interrupts disabled */ + WARN_ON(irqs_disabled()); + data.func = func; data.info = info; data.started = mask; diff -Nru a/arch/i386/mm/hugetlbpage.c b/arch/i386/mm/hugetlbpage.c --- a/arch/i386/mm/hugetlbpage.c Tue May 18 23:38:09 2004 +++ b/arch/i386/mm/hugetlbpage.c Tue May 18 23:38:09 2004 @@ -264,8 +264,9 @@ goto out; } ret = add_to_page_cache(page, mapping, idx, GFP_ATOMIC); - unlock_page(page); - if (ret) { + if (! ret) { + unlock_page(page); + } else { hugetlb_put_quota(mapping); free_huge_page(page); goto out; diff -Nru a/arch/i386/mm/pageattr.c b/arch/i386/mm/pageattr.c --- a/arch/i386/mm/pageattr.c Tue May 18 23:38:06 2004 +++ b/arch/i386/mm/pageattr.c Tue May 18 23:38:06 2004 @@ -121,20 +121,20 @@ pte_t standard = mk_pte(page, PAGE_KERNEL); set_pte_atomic(kpte, mk_pte(page, prot)); if (pte_same(old,standard)) - atomic_inc(&kpte_page->count); + get_page(kpte_page); } else { struct page *split = split_large_page(address, prot); if (!split) return -ENOMEM; - atomic_inc(&kpte_page->count); + get_page(kpte_page); set_pmd_pte(kpte,address,mk_pte(split, PAGE_KERNEL)); } } else if ((pte_val(*kpte) & _PAGE_PSE) == 0) { set_pte_atomic(kpte, mk_pte(page, PAGE_KERNEL)); - atomic_dec(&kpte_page->count); + __put_page(kpte_page); } - if (cpu_has_pse && (atomic_read(&kpte_page->count) == 1)) { + if (cpu_has_pse && (page_count(kpte_page) == 1)) { list_add(&kpte_page->lru, &df_list); revert_page(kpte_page, address); } diff -Nru a/arch/i386/oprofile/op_model_p4.c b/arch/i386/oprofile/op_model_p4.c --- a/arch/i386/oprofile/op_model_p4.c Tue May 18 23:38:05 2004 +++ b/arch/i386/oprofile/op_model_p4.c Tue May 18 23:38:05 2004 @@ -382,11 +382,8 @@ static unsigned int get_stagger(void) { #ifdef CONFIG_SMP - int cpu; - if (smp_num_siblings > 1) { - cpu = smp_processor_id(); - return (cpu_sibling_map[cpu] > cpu) ? 0 : 1; - } + int cpu = smp_processor_id(); + return (cpu != first_cpu(cpu_sibling_map[cpu])); #endif return 0; } diff -Nru a/arch/i386/pci/fixup.c b/arch/i386/pci/fixup.c --- a/arch/i386/pci/fixup.c Tue May 18 23:38:08 2004 +++ b/arch/i386/pci/fixup.c Tue May 18 23:38:08 2004 @@ -92,6 +92,15 @@ int i; /* + * Runs the fixup only for the first IDE controller + * (Shai Fultheim - shai@ftcon.com) + */ + static int called = 0; + if (called) + return; + called = 1; + + /* * There exist PCI IDE controllers which have utter garbage * in first four base registers. Ignore that. */ diff -Nru a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c --- a/arch/i386/pci/irq.c Tue May 18 23:38:09 2004 +++ b/arch/i386/pci/irq.c Tue May 18 23:38:09 2004 @@ -476,8 +476,9 @@ case PCI_DEVICE_ID_INTEL_82801DB_0: case PCI_DEVICE_ID_INTEL_82801E_0: case PCI_DEVICE_ID_INTEL_82801EB_0: - case PCI_DEVICE_ID_INTEL_ESB_0: + case PCI_DEVICE_ID_INTEL_ESB_1: case PCI_DEVICE_ID_INTEL_ICH6_0: + case PCI_DEVICE_ID_INTEL_ICH6_1: r->name = "PIIX/ICH"; r->get = pirq_piix_get; r->set = pirq_piix_set; @@ -540,8 +541,6 @@ r->name = "SIS"; r->get = pirq_sis_get; r->set = pirq_sis_set; - DBG("PCI: Detecting SiS router at %02x:%02x\n", - rt->rtr_bus, rt->rtr_devfn); return 1; } @@ -898,7 +897,7 @@ { DBG("PCI: IRQ init\n"); - if (pcibios_enable_irq) + if (pcibios_enable_irq || raw_pci_ops == NULL) return 0; pirq_table = pirq_find_routing_table(); diff -Nru a/arch/ia64/Kconfig b/arch/ia64/Kconfig --- a/arch/ia64/Kconfig Tue May 18 23:38:09 2004 +++ b/arch/ia64/Kconfig Tue May 18 23:38:09 2004 @@ -78,6 +78,15 @@ endchoice +config HOTPLUG_CPU + bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" + depends on SMP && HOTPLUG && EXPERIMENTAL + default n + ---help--- + Say Y here to experiment with turning CPUs off and on. CPUs + can be controlled through /sys/devices/system/cpu/cpu#. + Say N if you want to disable cpu hotplug. + choice prompt "Processor type" default ITANIUM diff -Nru a/arch/ia64/dig/Makefile b/arch/ia64/dig/Makefile --- a/arch/ia64/dig/Makefile Tue May 18 23:38:08 2004 +++ b/arch/ia64/dig/Makefile Tue May 18 23:38:08 2004 @@ -6,4 +6,9 @@ # obj-y := setup.o + +ifndef CONFIG_NUMA +obj-$(CONFIG_IA64_DIG) += topology.o +endif + obj-$(CONFIG_IA64_GENERIC) += machvec.o diff -Nru a/arch/ia64/dig/topology.c b/arch/ia64/dig/topology.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/ia64/dig/topology.c Tue May 18 23:38:09 2004 @@ -0,0 +1,43 @@ +/* + * arch/ia64/dig/topology.c + * Popuate driverfs with topology information. + * Derived entirely from i386/mach-default.c + * Intel Corporation - Ashok Raj + */ +#include +#include +#include +#include +#include +#include +#include + +static DEFINE_PER_CPU(struct ia64_cpu, cpu_devices); + +/* + * First Pass: simply borrowed code for now. Later should hook into + * hotplug notification for node/cpu/memory as applicable + */ + +static int arch_register_cpu(int num) +{ + struct node *parent = NULL; + +#ifdef CONFIG_NUMA + //parent = &node_devices[cpu_to_node(num)].node; +#endif + + return register_cpu(&per_cpu(cpu_devices,num).cpu, num, parent); +} + +static int __init topology_init(void) +{ + int i; + + for_each_cpu(i) { + arch_register_cpu(i); + } + return 0; +} + +subsys_initcall(topology_init); diff -Nru a/arch/ia64/ia32/ia32_entry.S b/arch/ia64/ia32/ia32_entry.S --- a/arch/ia64/ia32/ia32_entry.S Tue May 18 23:38:07 2004 +++ b/arch/ia64/ia32/ia32_entry.S Tue May 18 23:38:07 2004 @@ -350,11 +350,11 @@ data8 sys_setfsgid /* 16-bit version */ data8 sys_llseek /* 140 */ data8 sys32_getdents - data8 sys32_select + data8 compat_sys_select data8 sys_flock data8 sys32_msync - data8 sys32_readv /* 145 */ - data8 sys32_writev + data8 compat_sys_readv /* 145 */ + data8 compat_sys_writev data8 sys_getsid data8 sys_fdatasync data8 sys32_sysctl diff -Nru a/arch/ia64/ia32/sys_ia32.c b/arch/ia64/ia32/sys_ia32.c --- a/arch/ia64/ia32/sys_ia32.c Tue May 18 23:38:08 2004 +++ b/arch/ia64/ia32/sys_ia32.c Tue May 18 23:38:08 2004 @@ -90,58 +90,17 @@ /* XXX make per-mm: */ static DECLARE_MUTEX(ia32_mmap_sem); -static int -nargs (unsigned int arg, char **ap) -{ - unsigned int addr; - int n, err; - - if (!arg) - return 0; - - n = 0; - do { - err = get_user(addr, (unsigned int *)A(arg)); - if (err) - return err; - if (ap) - *ap++ = (char *) A(addr); - arg += sizeof(unsigned int); - n++; - } while (addr); - return n - 1; -} - asmlinkage long -sys32_execve (char *filename, unsigned int argv, unsigned int envp, - struct pt_regs *regs) +sys32_execve (char *name, compat_uptr_t __user *argv, compat_uptr_t __user *envp, struct pt_regs *regs) { + long error; + char *filename; unsigned long old_map_base, old_task_size, tssd; - char **av, **ae; - int na, ne, len; - long r; - - na = nargs(argv, NULL); - if (na < 0) - return na; - ne = nargs(envp, NULL); - if (ne < 0) - return ne; - len = (na + ne + 2) * sizeof(*av); - av = kmalloc(len, GFP_KERNEL); - if (!av) - return -ENOMEM; - ae = av + na + 1; - av[na] = NULL; - ae[ne] = NULL; - - r = nargs(argv, av); - if (r < 0) - goto out; - r = nargs(envp, ae); - if (r < 0) - goto out; + filename = getname(name); + error = PTR_ERR(filename); + if (IS_ERR(filename)) + return error; old_map_base = current->thread.map_base; old_task_size = current->thread.task_size; @@ -153,19 +112,18 @@ ia64_set_kr(IA64_KR_IO_BASE, current->thread.old_iob); ia64_set_kr(IA64_KR_TSSD, current->thread.old_k1); - set_fs(KERNEL_DS); - r = sys_execve(filename, av, ae, regs); - if (r < 0) { + error = compat_do_execve(filename, argv, envp, regs); + putname(filename); + + if (error < 0) { /* oops, execve failed, switch back to old values... */ ia64_set_kr(IA64_KR_IO_BASE, IA32_IOBASE); ia64_set_kr(IA64_KR_TSSD, tssd); current->thread.map_base = old_map_base; current->thread.task_size = old_task_size; - set_fs(USER_DS); /* establish new task-size as the address-limit */ } - out: - kfree(av); - return r; + + return error; } int cp_compat_stat(struct kstat *stat, struct compat_stat *ubuf) @@ -818,110 +776,6 @@ return error; } -/* - * We can actually return ERESTARTSYS instead of EINTR, but I'd - * like to be certain this leads to no problems. So I return - * EINTR just for safety. - * - * Update: ERESTARTSYS breaks at least the xview clock binary, so - * I'm trying ERESTARTNOHAND which restart only when you want to. - */ -#define MAX_SELECT_SECONDS \ - ((unsigned long) (MAX_SCHEDULE_TIMEOUT / HZ)-1) -#define ROUND_UP_TIME(x,y) (((x)+(y)-1)/(y)) - -asmlinkage long -sys32_select (int n, fd_set *inp, fd_set *outp, fd_set *exp, struct compat_timeval *tvp32) -{ - fd_set_bits fds; - char *bits; - long timeout; - int ret, size; - - timeout = MAX_SCHEDULE_TIMEOUT; - if (tvp32) { - time_t sec, usec; - - ret = -EFAULT; - if (get_user(sec, &tvp32->tv_sec) || get_user(usec, &tvp32->tv_usec)) - goto out_nofds; - - ret = -EINVAL; - if (sec < 0 || usec < 0) - goto out_nofds; - - if ((unsigned long) sec < MAX_SELECT_SECONDS) { - timeout = ROUND_UP_TIME(usec, 1000000/HZ); - timeout += sec * (unsigned long) HZ; - } - } - - ret = -EINVAL; - if (n < 0) - goto out_nofds; - - if (n > current->files->max_fdset) - n = current->files->max_fdset; - - /* - * We need 6 bitmaps (in/out/ex for both incoming and outgoing), - * since we used fdset we need to allocate memory in units of - * long-words. - */ - ret = -ENOMEM; - size = FDS_BYTES(n); - bits = kmalloc(6 * size, GFP_KERNEL); - if (!bits) - goto out_nofds; - fds.in = (unsigned long *) bits; - fds.out = (unsigned long *) (bits + size); - fds.ex = (unsigned long *) (bits + 2*size); - fds.res_in = (unsigned long *) (bits + 3*size); - fds.res_out = (unsigned long *) (bits + 4*size); - fds.res_ex = (unsigned long *) (bits + 5*size); - - if ((ret = get_fd_set(n, inp, fds.in)) || - (ret = get_fd_set(n, outp, fds.out)) || - (ret = get_fd_set(n, exp, fds.ex))) - goto out; - zero_fd_set(n, fds.res_in); - zero_fd_set(n, fds.res_out); - zero_fd_set(n, fds.res_ex); - - ret = do_select(n, &fds, &timeout); - - if (tvp32 && !(current->personality & STICKY_TIMEOUTS)) { - time_t sec = 0, usec = 0; - if (timeout) { - sec = timeout / HZ; - usec = timeout % HZ; - usec *= (1000000/HZ); - } - if (put_user(sec, &tvp32->tv_sec) || put_user(usec, &tvp32->tv_usec)) { - ret = -EFAULT; - goto out; - } - } - - if (ret < 0) - goto out; - if (!ret) { - ret = -ERESTARTNOHAND; - if (signal_pending(current)) - goto out; - ret = 0; - } - - set_fd_set(n, inp, fds.res_in); - set_fd_set(n, outp, fds.res_out); - set_fd_set(n, exp, fds.res_ex); - -out: - kfree(bits); -out_nofds: - return ret; -} - struct sel_arg_struct { unsigned int n; unsigned int inp; @@ -937,87 +791,8 @@ if (copy_from_user(&a, arg, sizeof(a))) return -EFAULT; - return sys32_select(a.n, (fd_set *) A(a.inp), (fd_set *) A(a.outp), (fd_set *) A(a.exp), - (struct compat_timeval *) A(a.tvp)); -} - -static struct iovec * -get_compat_iovec (struct compat_iovec *iov32, struct iovec *iov_buf, u32 count, int type) -{ - u32 i, buf, len; - struct iovec *ivp, *iov; - - /* Get the "struct iovec" from user memory */ - - if (!count) - return 0; - if (verify_area(VERIFY_READ, iov32, sizeof(struct compat_iovec)*count)) - return NULL; - if (count > UIO_MAXIOV) - return NULL; - if (count > UIO_FASTIOV) { - iov = kmalloc(count*sizeof(struct iovec), GFP_KERNEL); - if (!iov) - return NULL; - } else - iov = iov_buf; - - ivp = iov; - for (i = 0; i < count; i++) { - if (__get_user(len, &iov32->iov_len) || __get_user(buf, &iov32->iov_base)) { - if (iov != iov_buf) - kfree(iov); - return NULL; - } - if (verify_area(type, (void *)A(buf), len)) { - if (iov != iov_buf) - kfree(iov); - return((struct iovec *)0); - } - ivp->iov_base = (void *)A(buf); - ivp->iov_len = (__kernel_size_t) len; - iov32++; - ivp++; - } - return iov; -} - -asmlinkage long -sys32_readv (int fd, struct compat_iovec *vector, u32 count) -{ - struct iovec iovstack[UIO_FASTIOV]; - struct iovec *iov; - long ret; - mm_segment_t old_fs = get_fs(); - - iov = get_compat_iovec(vector, iovstack, count, VERIFY_WRITE); - if (!iov) - return -EFAULT; - set_fs(KERNEL_DS); - ret = sys_readv(fd, iov, count); - set_fs(old_fs); - if (iov != iovstack) - kfree(iov); - return ret; -} - -asmlinkage long -sys32_writev (int fd, struct compat_iovec *vector, u32 count) -{ - struct iovec iovstack[UIO_FASTIOV]; - struct iovec *iov; - long ret; - mm_segment_t old_fs = get_fs(); - - iov = get_compat_iovec(vector, iovstack, count, VERIFY_READ); - if (!iov) - return -EFAULT; - set_fs(KERNEL_DS); - ret = sys_writev(fd, iov, count); - set_fs(old_fs); - if (iov != iovstack) - kfree(iov); - return ret; + return compat_sys_select(a.n, compat_ptr(a.inp), compat_ptr(a.outp), + compat_ptr(a.exp), compat_ptr(a.tvp)); } #define SEMOP 1 @@ -2298,7 +2073,7 @@ ((desc)->a & 0x0ffff) | \ ((desc)->b & 0xf0000) ) -#define GET_32BIT(desc) (((desc)->b >> 23) & 1) +#define GET_32BIT(desc) (((desc)->b >> 22) & 1) #define GET_CONTENTS(desc) (((desc)->b >> 10) & 3) #define GET_WRITABLE(desc) (((desc)->b >> 9) & 1) #define GET_LIMIT_PAGES(desc) (((desc)->b >> 23) & 1) @@ -2423,176 +2198,6 @@ segid = (egid == (compat_gid_t)-1) ? ((gid_t)-1) : ((gid_t)egid); ssgid = (sgid == (compat_gid_t)-1) ? ((gid_t)-1) : ((gid_t)sgid); return sys_setresgid(srgid, segid, ssgid); -} - -/* Stuff for NFS server syscalls... */ -struct nfsctl_svc32 { - u16 svc32_port; - s32 svc32_nthreads; -}; - -struct nfsctl_client32 { - s8 cl32_ident[NFSCLNT_IDMAX+1]; - s32 cl32_naddr; - struct in_addr cl32_addrlist[NFSCLNT_ADDRMAX]; - s32 cl32_fhkeytype; - s32 cl32_fhkeylen; - u8 cl32_fhkey[NFSCLNT_KEYMAX]; -}; - -struct nfsctl_export32 { - s8 ex32_client[NFSCLNT_IDMAX+1]; - s8 ex32_path[NFS_MAXPATHLEN+1]; - compat_dev_t ex32_dev; - compat_ino_t ex32_ino; - s32 ex32_flags; - compat_uid_t ex32_anon_uid; - compat_gid_t ex32_anon_gid; -}; - -struct nfsctl_arg32 { - s32 ca32_version; /* safeguard */ - union { - struct nfsctl_svc32 u32_svc; - struct nfsctl_client32 u32_client; - struct nfsctl_export32 u32_export; - u32 u32_debug; - } u; -#define ca32_svc u.u32_svc -#define ca32_client u.u32_client -#define ca32_export u.u32_export -#define ca32_debug u.u32_debug -}; - -union nfsctl_res32 { - struct knfs_fh cr32_getfh; - u32 cr32_debug; -}; - -static int -nfs_svc32_trans(struct nfsctl_arg *karg, struct nfsctl_arg32 *arg32) -{ - int err; - - err = __get_user(karg->ca_version, &arg32->ca32_version); - err |= __get_user(karg->ca_svc.svc_port, &arg32->ca32_svc.svc32_port); - err |= __get_user(karg->ca_svc.svc_nthreads, - &arg32->ca32_svc.svc32_nthreads); - return err; -} - -static int -nfs_clnt32_trans(struct nfsctl_arg *karg, struct nfsctl_arg32 *arg32) -{ - int err; - - err = __get_user(karg->ca_version, &arg32->ca32_version); - err |= copy_from_user(&karg->ca_client.cl_ident[0], - &arg32->ca32_client.cl32_ident[0], - NFSCLNT_IDMAX); - err |= __get_user(karg->ca_client.cl_naddr, - &arg32->ca32_client.cl32_naddr); - err |= copy_from_user(&karg->ca_client.cl_addrlist[0], - &arg32->ca32_client.cl32_addrlist[0], - (sizeof(struct in_addr) * NFSCLNT_ADDRMAX)); - err |= __get_user(karg->ca_client.cl_fhkeytype, - &arg32->ca32_client.cl32_fhkeytype); - err |= __get_user(karg->ca_client.cl_fhkeylen, - &arg32->ca32_client.cl32_fhkeylen); - err |= copy_from_user(&karg->ca_client.cl_fhkey[0], - &arg32->ca32_client.cl32_fhkey[0], - NFSCLNT_KEYMAX); - return err; -} - -static int -nfs_exp32_trans(struct nfsctl_arg *karg, struct nfsctl_arg32 *arg32) -{ - int err; - - err = __get_user(karg->ca_version, &arg32->ca32_version); - err |= copy_from_user(&karg->ca_export.ex_client[0], - &arg32->ca32_export.ex32_client[0], - NFSCLNT_IDMAX); - err |= copy_from_user(&karg->ca_export.ex_path[0], - &arg32->ca32_export.ex32_path[0], - NFS_MAXPATHLEN); - err |= __get_user(karg->ca_export.ex_dev, - &arg32->ca32_export.ex32_dev); - err |= __get_user(karg->ca_export.ex_ino, - &arg32->ca32_export.ex32_ino); - err |= __get_user(karg->ca_export.ex_flags, - &arg32->ca32_export.ex32_flags); - err |= __get_user(karg->ca_export.ex_anon_uid, - &arg32->ca32_export.ex32_anon_uid); - err |= __get_user(karg->ca_export.ex_anon_gid, - &arg32->ca32_export.ex32_anon_gid); - return err; -} - -static int -nfs_getfh32_res_trans(union nfsctl_res *kres, union nfsctl_res32 *res32) -{ - int err; - - err = copy_to_user(&res32->cr32_getfh, - &kres->cr_getfh, - sizeof(res32->cr32_getfh)); - err |= __put_user(kres->cr_debug, &res32->cr32_debug); - return err; -} - -int asmlinkage -sys32_nfsservctl(int cmd, struct nfsctl_arg32 *arg32, union nfsctl_res32 *res32) -{ - struct nfsctl_arg *karg = NULL; - union nfsctl_res *kres = NULL; - mm_segment_t oldfs; - int err; - - karg = kmalloc(sizeof(*karg), GFP_USER); - if(!karg) - return -ENOMEM; - if(res32) { - kres = kmalloc(sizeof(*kres), GFP_USER); - if(!kres) { - kfree(karg); - return -ENOMEM; - } - } - switch(cmd) { - case NFSCTL_SVC: - err = nfs_svc32_trans(karg, arg32); - break; - case NFSCTL_ADDCLIENT: - err = nfs_clnt32_trans(karg, arg32); - break; - case NFSCTL_DELCLIENT: - err = nfs_clnt32_trans(karg, arg32); - break; - case NFSCTL_EXPORT: - err = nfs_exp32_trans(karg, arg32); - break; - default: - err = -EINVAL; - break; - } - if(err) - goto done; - oldfs = get_fs(); - set_fs(KERNEL_DS); - err = sys_nfsservctl(cmd, karg, kres); - set_fs(oldfs); - - if(!err && cmd == NFSCTL_GETFS) - err = nfs_getfh32_res_trans(kres, res32); - -done: - if(karg) - kfree(karg); - if(kres) - kfree(kres); - return err; } /* Handle adjtimex compatibility. */ diff -Nru a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c --- a/arch/ia64/kernel/acpi.c Tue May 18 23:38:07 2004 +++ b/arch/ia64/kernel/acpi.c Tue May 18 23:38:07 2004 @@ -632,16 +632,6 @@ return 0; } -/* deprecated in favor of acpi_gsi_to_irq */ -int -acpi_irq_to_vector (u32 gsi) -{ - if (has_8259 && gsi < 16) - return isa_irq_to_vector(gsi); - - return gsi_to_vector(gsi); -} - int acpi_gsi_to_irq (u32 gsi, unsigned int *irq) { diff -Nru a/arch/ia64/kernel/head.S b/arch/ia64/kernel/head.S --- a/arch/ia64/kernel/head.S Tue May 18 23:38:08 2004 +++ b/arch/ia64/kernel/head.S Tue May 18 23:38:08 2004 @@ -866,12 +866,14 @@ * Inputs: * ar.pfs - saved CFM of caller * ar.ccv - 0 (and available for use) + * r27 - flags from spin_lock_irqsave or 0. Must be preserved. * r28 - available for use. * r29 - available for use. * r30 - available for use. * r31 - address of lock, available for use. * b6 - return address * p14 - available for use. + * p15 - used to track flag status. * * If you patch this code to use more registers, do not forget to update * the clobber lists for spin_lock() in include/asm-ia64/spinlock.h. @@ -885,22 +887,26 @@ .save rp, r28 .body nop 0 - nop 0 + tbit.nz p15,p0=r27,IA64_PSR_I_BIT .restore sp // pop existing prologue after next insn mov b6 = r28 .prologue .save ar.pfs, r0 .altrp b6 .body + ;; +(p15) ssm psr.i // reenable interrupts if they were on + // DavidM says that srlz.d is slow and is not required in this case .wait: // exponential backoff, kdb, lockmeter etc. go in here hint @pause ld4 r30=[r31] // don't use ld4.bias; if it's contended, we won't write the word nop 0 ;; - cmp4.eq p14,p0=r30,r0 -(p14) br.cond.sptk.few b6 // lock is now free, try to acquire - br.cond.sptk.few .wait + cmp4.ne p14,p0=r30,r0 +(p14) br.cond.sptk.few .wait +(p15) rsm psr.i // disable interrupts if we reenabled them + br.cond.sptk.few b6 // lock is now free, try to acquire END(ia64_spinlock_contention_pre3_4) #else @@ -909,14 +915,20 @@ .prologue .altrp b6 .body + tbit.nz p15,p0=r27,IA64_PSR_I_BIT + ;; .wait: +(p15) ssm psr.i // reenable interrupts if they were on + // DavidM says that srlz.d is slow and is not required in this case +.wait2: // exponential backoff, kdb, lockmeter etc. go in here hint @pause ld4 r30=[r31] // don't use ld4.bias; if it's contended, we won't write the word ;; cmp4.ne p14,p0=r30,r0 mov r30 = 1 -(p14) br.cond.sptk.few .wait +(p14) br.cond.sptk.few .wait2 +(p15) rsm psr.i // disable interrupts if we reenabled them ;; cmpxchg4.acq r30=[r31], r30, ar.ccv ;; diff -Nru a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c --- a/arch/ia64/kernel/iosapic.c Tue May 18 23:38:07 2004 +++ b/arch/ia64/kernel/iosapic.c Tue May 18 23:38:07 2004 @@ -32,6 +32,8 @@ * 03/02/19 B. Helgaas Make pcat_compat system-wide, not per-IOSAPIC. * Remove iosapic_address & gsi_base from external interfaces. * Rationalize __init/__devinit attributes. + * 04/12/04 Ashok Raj Intel Corporation 2004 + * Updated to work with irq migration necessary for CPU Hotplug */ /* * Here is what the interrupt logic between a PCI device and the kernel looks like: @@ -98,6 +100,7 @@ #endif static spinlock_t iosapic_lock = SPIN_LOCK_UNLOCKED; +cpumask_t __cacheline_aligned pending_irq_cpumask[NR_IRQS]; /* These tables map IA-64 vectors to the IOSAPIC pin that generates this vector. */ @@ -188,8 +191,10 @@ pol = iosapic_intr_info[vector].polarity; trigger = iosapic_intr_info[vector].trigger; dmode = iosapic_intr_info[vector].dmode; + vector &= (~IA64_IRQ_REDIRECTED); redir = (dmode == IOSAPIC_LOWEST_PRIORITY) ? 1 : 0; + #ifdef CONFIG_SMP { unsigned int irq; @@ -311,9 +316,8 @@ spin_lock_irqsave(&iosapic_lock, flags); { - /* get current delivery mode by reading the low32 */ - writel(IOSAPIC_RTE_LOW(rte_index), addr + IOSAPIC_REG_SELECT); low32 = iosapic_intr_info[vec].low32 & ~(7 << IOSAPIC_DELIVERY_SHIFT); + if (redir) /* change delivery mode to lowest priority */ low32 |= (IOSAPIC_LOWEST_PRIORITY << IOSAPIC_DELIVERY_SHIFT); @@ -331,6 +335,21 @@ #endif } +static inline void move_irq(int irq) +{ + /* note - we hold desc->lock */ + cpumask_t tmp; + irq_desc_t *desc = irq_descp(irq); + + if (!cpus_empty(pending_irq_cpumask[irq])) { + cpus_and(tmp, pending_irq_cpumask[irq], cpu_online_map); + if (unlikely(!cpus_empty(tmp))) { + desc->handler->set_affinity(irq, pending_irq_cpumask[irq]); + } + cpus_clear(pending_irq_cpumask[irq]); + } +} + /* * Handlers for level-triggered interrupts. */ @@ -347,6 +366,7 @@ { ia64_vector vec = irq_to_vector(irq); + move_irq(irq); writel(vec, iosapic_intr_info[vec].addr + IOSAPIC_EOI); } @@ -386,6 +406,8 @@ iosapic_ack_edge_irq (unsigned int irq) { irq_desc_t *idesc = irq_descp(irq); + + move_irq(irq); /* * Once we have recorded IRQ_PENDING already, we can mask the * interrupt for real. This prevents IRQ storms from unhandled diff -Nru a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c --- a/arch/ia64/kernel/irq.c Tue May 18 23:38:09 2004 +++ b/arch/ia64/kernel/irq.c Tue May 18 23:38:09 2004 @@ -8,6 +8,12 @@ * instead of just grabbing them. Thus setups with different IRQ numbers * shouldn't result in any weird surprises, and installing new handlers * should be easier. + * + * Copyright (C) Ashok Raj, Intel Corporation 2004 + * + * 4/14/2004: Added code to handle cpu migration and do safe irq + * migration without lossing interrupts for iosapic + * architecture. */ /* @@ -27,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -35,18 +42,21 @@ #include #include #include +#include #include +#include #include #include #include #include #include #include +#include #include #include - +extern cpumask_t __cacheline_aligned pending_irq_cpumask[NR_IRQS]; /* * Linux has a controller-independent x86 interrupt architecture. @@ -938,7 +948,9 @@ static int irq_affinity_read_proc (char *page, char **start, off_t off, int count, int *eof, void *data) { - int len = cpumask_scnprintf(page, count, irq_affinity[(long)data]); + int len = sprintf(page, "%s", irq_redir[(long)data] ? "r " : ""); + + len += cpumask_scnprintf(page+len, count, irq_affinity[(long)data]); if (count - len < 2) return -EINVAL; len += sprintf(page + len, "\n"); @@ -956,6 +968,7 @@ int rlen; int prelen; irq_desc_t *desc = irq_descp(irq); + unsigned long flags; if (!desc->handler->set_affinity) return -EIO; @@ -994,11 +1007,107 @@ if (cpus_empty(tmp)) return -EINVAL; - desc->handler->set_affinity(irq, new_value); + spin_lock_irqsave(&desc->lock, flags); + pending_irq_cpumask[irq] = new_value; + spin_unlock_irqrestore(&desc->lock, flags); + return full_count; } #endif /* CONFIG_SMP */ + +#ifdef CONFIG_HOTPLUG_CPU +unsigned int vectors_in_migration[NR_IRQS]; + +/* + * Since cpu_online_map is already updated, we just need to check for + * affinity that has zeros + */ +static void migrate_irqs(void) +{ + cpumask_t mask; + irq_desc_t *desc; + int irq, new_cpu; + + for (irq=0; irq < NR_IRQS; irq++) { + desc = irq_descp(irq); + + /* + * No handling for now. + * TBD: Implement a disable function so we can now + * tell CPU not to respond to these local intr sources. + * such as ITV,CPEI,MCA etc. + */ + if (desc->status == IRQ_PER_CPU) + continue; + + cpus_and(mask, irq_affinity[irq], cpu_online_map); + if (any_online_cpu(mask) == NR_CPUS) { + /* + * Save it for phase 2 processing + */ + vectors_in_migration[irq] = irq; + + new_cpu = any_online_cpu(cpu_online_map); + mask = cpumask_of_cpu(new_cpu); + + /* + * Al three are essential, currently WARN_ON.. maybe panic? + */ + if (desc->handler && desc->handler->disable && + desc->handler->enable && desc->handler->set_affinity) { + desc->handler->disable(irq); + desc->handler->set_affinity(irq, mask); + desc->handler->enable(irq); + } else { + WARN_ON((!(desc->handler) || !(desc->handler->disable) || + !(desc->handler->enable) || + !(desc->handler->set_affinity))); + } + } + } +} + +void fixup_irqs(void) +{ + unsigned int irq; + extern void ia64_process_pending_intr(void); + + ia64_set_itv(1<<16); + /* + * Phase 1: Locate irq's bound to this cpu and + * relocate them for cpu removal. + */ + migrate_irqs(); + + /* + * Phase 2: Perform interrupt processing for all entries reported in + * local APIC. + */ + ia64_process_pending_intr(); + + /* + * Phase 3: Now handle any interrupts not captured in local APIC. + * This is to account for cases that device interrupted during the time the + * rte was being disabled and re-programmed. + */ + for (irq=0; irq < NR_IRQS; irq++) { + if (vectors_in_migration[irq]) { + vectors_in_migration[irq]=0; + do_IRQ(irq, NULL); + } + } + + /* + * Now let processor die. We do irq disable and max_xtp() to + * ensure there is no more interrupts routed to this processor. + * But the local timer interrupt can have 1 pending which we + * take care in timer_interrupt(). + */ + max_xtp(); + local_irq_disable(); +} +#endif static int prof_cpu_mask_read_proc (char *page, char **start, off_t off, int count, int *eof, void *data) diff -Nru a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c --- a/arch/ia64/kernel/irq_ia64.c Tue May 18 23:38:06 2004 +++ b/arch/ia64/kernel/irq_ia64.c Tue May 18 23:38:06 2004 @@ -10,6 +10,8 @@ * * 09/15/00 Goutham Rao Implemented pci_irq_to_vector * PCI to vector allocation routine. + * 04/14/2004 Ashok Raj + * Added CPU Hotplug handling for IPF. */ #include @@ -85,6 +87,11 @@ extern unsigned int do_IRQ(unsigned long irq, struct pt_regs *regs); +#ifdef CONFIG_SMP +# define IS_RESCHEDULE(vec) (vec == IA64_IPI_RESCHEDULE) +#else +# define IS_RESCHEDULE(vec) (0) +#endif /* * That's where the IVT branches when we get an external * interrupt. This branches to the correct hardware IRQ handler via @@ -94,11 +101,6 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs) { unsigned long saved_tpr; -#ifdef CONFIG_SMP -# define IS_RESCHEDULE(vec) (vec == IA64_IPI_RESCHEDULE) -#else -# define IS_RESCHEDULE(vec) (0) -#endif #if IRQ_DEBUG { @@ -161,6 +163,54 @@ */ irq_exit(); } + +#ifdef CONFIG_HOTPLUG_CPU +/* + * This function emulates a interrupt processing when a cpu is about to be + * brought down. + */ +void ia64_process_pending_intr(void) +{ + ia64_vector vector; + unsigned long saved_tpr; + extern unsigned int vectors_in_migration[NR_IRQS]; + + vector = ia64_get_ivr(); + + irq_enter(); + saved_tpr = ia64_getreg(_IA64_REG_CR_TPR); + ia64_srlz_d(); + + /* + * Perform normal interrupt style processing + */ + while (vector != IA64_SPURIOUS_INT_VECTOR) { + if (!IS_RESCHEDULE(vector)) { + ia64_setreg(_IA64_REG_CR_TPR, vector); + ia64_srlz_d(); + + /* + * Now try calling normal ia64_handle_irq as it would have got called + * from a real intr handler. Try passing null for pt_regs, hopefully + * it will work. I hope it works!. + * Probably could shared code. + */ + vectors_in_migration[local_vector_to_irq(vector)]=0; + do_IRQ(local_vector_to_irq(vector), NULL); + + /* + * Disable interrupts and send EOI + */ + local_irq_disable(); + ia64_setreg(_IA64_REG_CR_TPR, saved_tpr); + } + ia64_eoi(); + vector = ia64_get_ivr(); + } + irq_exit(); +} +#endif + #ifdef CONFIG_SMP extern irqreturn_t handle_IPI (int irq, void *dev_id, struct pt_regs *regs); diff -Nru a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c --- a/arch/ia64/kernel/palinfo.c Tue May 18 23:38:05 2004 +++ b/arch/ia64/kernel/palinfo.c Tue May 18 23:38:05 2004 @@ -8,11 +8,14 @@ * * Copyright (C) 2000-2001, 2003 Hewlett-Packard Co * Stephane Eranian + * Copyright (C) 2004 Intel Corporation + * Ashok Raj * * 05/26/2000 S.Eranian initial release * 08/21/2000 S.Eranian updated to July 2000 PAL specs * 02/05/2001 S.Eranian fixed module support * 10/23/2001 S.Eranian updated pal_perf_mon_info bug fixes + * 03/24/2004 Ashok Raj updated to work with CPU Hotplug */ #include #include @@ -22,6 +25,9 @@ #include #include #include +#include +#include +#include #include #include @@ -768,13 +774,12 @@ * does not do recursion of deletion * * Notes: - * - first +1 accounts for the cpuN entry - * - second +1 account for toplevel palinfo - * + * - +1 accounts for the cpuN directory entry in /proc/pal */ -#define NR_PALINFO_PROC_ENTRIES (NR_CPUS*(NR_PALINFO_ENTRIES+1)+1) +#define NR_PALINFO_PROC_ENTRIES (NR_CPUS*(NR_PALINFO_ENTRIES+1)) static struct proc_dir_entry *palinfo_proc_entries[NR_PALINFO_PROC_ENTRIES]; +static struct proc_dir_entry *palinfo_dir; /* * This data structure is used to pass which cpu,function is being requested @@ -888,47 +893,107 @@ return len; } -static int __init -palinfo_init(void) +static void +create_palinfo_proc_entries(unsigned int cpu) { # define CPUSTR "cpu%d" pal_func_cpu_u_t f; - struct proc_dir_entry **pdir = palinfo_proc_entries; - struct proc_dir_entry *palinfo_dir, *cpu_dir; - int i, j; + struct proc_dir_entry **pdir; + struct proc_dir_entry *cpu_dir; + int j; char cpustr[sizeof(CPUSTR)]; - printk(KERN_INFO "PAL Information Facility v%s\n", PALINFO_VERSION); - - palinfo_dir = proc_mkdir("pal", NULL); /* * we keep track of created entries in a depth-first order for * cleanup purposes. Each entry is stored into palinfo_proc_entries */ - for (i=0; i < NR_CPUS; i++) { + sprintf(cpustr,CPUSTR, cpu); - if (!cpu_online(i)) continue; + cpu_dir = proc_mkdir(cpustr, palinfo_dir); - sprintf(cpustr,CPUSTR, i); + f.req_cpu = cpu; - cpu_dir = proc_mkdir(cpustr, palinfo_dir); + /* + * Compute the location to store per cpu entries + * We dont store the top level entry in this list, but + * remove it finally after removing all cpu entries. + */ + pdir = &palinfo_proc_entries[cpu*(NR_PALINFO_ENTRIES+1)]; + *pdir++ = cpu_dir; + for (j=0; j < NR_PALINFO_ENTRIES; j++) { + f.func_id = j; + *pdir = create_proc_read_entry( + palinfo_entries[j].name, 0, cpu_dir, + palinfo_read_entry, (void *)f.value); + if (*pdir) + (*pdir)->owner = THIS_MODULE; + pdir++; + } +} - f.req_cpu = i; +static void +remove_palinfo_proc_entries(unsigned int hcpu) +{ + int j; + struct proc_dir_entry *cpu_dir, **pdir; - for (j=0; j < NR_PALINFO_ENTRIES; j++) { - f.func_id = j; - *pdir = create_proc_read_entry( - palinfo_entries[j].name, 0, cpu_dir, - palinfo_read_entry, (void *)f.value); - if (*pdir) - (*pdir)->owner = THIS_MODULE; - pdir++; + pdir = &palinfo_proc_entries[hcpu*(NR_PALINFO_ENTRIES+1)]; + cpu_dir = *pdir; + *pdir++=NULL; + for (j=0; j < (NR_PALINFO_ENTRIES); j++) { + if ((*pdir)) { + remove_proc_entry ((*pdir)->name, cpu_dir); + *pdir ++= NULL; } - *pdir++ = cpu_dir; } - *pdir = palinfo_dir; + + if (cpu_dir) { + remove_proc_entry(cpu_dir->name, palinfo_dir); + } +} + +static int __devinit palinfo_cpu_callback(struct notifier_block *nfb, + unsigned long action, + void *hcpu) +{ + unsigned int hotcpu = (unsigned long)hcpu; + + switch (action) { + case CPU_ONLINE: + create_palinfo_proc_entries(hotcpu); + break; +#ifdef CONFIG_HOTPLUG_CPU + case CPU_DEAD: + remove_palinfo_proc_entries(hotcpu); + break; +#endif + } + return NOTIFY_OK; +} + +static struct notifier_block palinfo_cpu_notifier = +{ + .notifier_call = palinfo_cpu_callback, + .priority = 0, +}; + +static int __init +palinfo_init(void) +{ + int i = 0; + + printk(KERN_INFO "PAL Information Facility v%s\n", PALINFO_VERSION); + palinfo_dir = proc_mkdir("pal", NULL); + + /* Create palinfo dirs in /proc for all online cpus */ + for_each_online_cpu(i) { + create_palinfo_proc_entries(i); + } + + /* Register for future delivery via notify registration */ + register_cpu_notifier(&palinfo_cpu_notifier); return 0; } @@ -939,10 +1004,19 @@ int i = 0; /* remove all nodes: depth first pass. Could optimize this */ - for (i=0; i< NR_PALINFO_PROC_ENTRIES ; i++) { - if (palinfo_proc_entries[i]) - remove_proc_entry (palinfo_proc_entries[i]->name, NULL); + for_each_online_cpu(i) { + remove_palinfo_proc_entries(i); } + + /* + * Remove the top level entry finally + */ + remove_proc_entry(palinfo_dir->name, NULL); + + /* + * Unregister from cpu notifier callbacks + */ + unregister_cpu_notifier(&palinfo_cpu_notifier); } module_init(palinfo_init); diff -Nru a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c --- a/arch/ia64/kernel/process.c Tue May 18 23:38:07 2004 +++ b/arch/ia64/kernel/process.c Tue May 18 23:38:07 2004 @@ -7,6 +7,7 @@ #define __KERNEL_SYSCALLS__ /* see */ #include +#include #include #include #include @@ -14,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -22,13 +24,17 @@ #include #include #include +#include +#include #include #include #include +#include #include #include #include +#include #include #include #include @@ -180,6 +186,40 @@ safe_halt(); } +#ifdef CONFIG_HOTPLUG_CPU +/* We don't actually take CPU down, just spin without interrupts. */ +static inline void play_dead(void) +{ + extern void ia64_cpu_local_tick (void); + /* Ack it */ + __get_cpu_var(cpu_state) = CPU_DEAD; + + /* We shouldn't have to disable interrupts while dead, but + * some interrupts just don't seem to go away, and this makes + * it "work" for testing purposes. */ + max_xtp(); + local_irq_disable(); + /* Death loop */ + while (__get_cpu_var(cpu_state) != CPU_UP_PREPARE) + cpu_relax(); + + /* + * Enable timer interrupts from now on + * Not required if we put processor in SAL_BOOT_RENDEZ mode. + */ + local_flush_tlb_all(); + cpu_set(smp_processor_id(), cpu_online_map); + wmb(); + ia64_cpu_local_tick (); + local_irq_enable(); +} +#else +static inline void play_dead(void) +{ + BUG(); +} +#endif /* CONFIG_HOTPLUG_CPU */ + void __attribute__((noreturn)) cpu_idle (void *unused) { @@ -195,7 +235,6 @@ if (!need_resched()) min_xtp(); #endif - while (!need_resched()) { if (mark_idle) (*mark_idle)(1); @@ -210,6 +249,8 @@ #endif schedule(); check_pgt_cache(); + if (cpu_is_offline(smp_processor_id())) + play_dead(); } } @@ -657,11 +698,6 @@ struct unw_frame_info info; unsigned long ip; int count = 0; - /* - * These bracket the sleeping functions.. - */ -# define first_sched ((unsigned long) scheduling_functions_start_here) -# define last_sched ((unsigned long) scheduling_functions_end_here) /* * Note: p may not be a blocked task (it could be current or @@ -676,12 +712,10 @@ if (unw_unwind(&info) < 0) return 0; unw_get_ip(&info, &ip); - if (ip < first_sched || ip >= last_sched) + if (!in_sched_functions(ip)) return ip; } while (count++ < 16); return 0; -# undef first_sched -# undef last_sched } void diff -Nru a/arch/ia64/kernel/sal.c b/arch/ia64/kernel/sal.c --- a/arch/ia64/kernel/sal.c Tue May 18 23:38:09 2004 +++ b/arch/ia64/kernel/sal.c Tue May 18 23:38:09 2004 @@ -122,10 +122,23 @@ static void __init set_smp_redirect (int flag) { +#ifndef CONFIG_HOTPLUG_CPU if (no_int_routing) smp_int_redirect &= ~flag; else smp_int_redirect |= flag; +#else + /* + * For CPU Hotplug we dont want to do any chipset supported + * interrupt redirection. The reason is this would require that + * All interrupts be stopped and hard bind the irq to a cpu. + * Later when the interrupt is fired we need to set the redir hint + * on again in the vector. This is combersome for something that the + * user mode irq balancer will solve anyways. + */ + no_int_routing=1; + smp_int_redirect &= ~flag; +#endif } #else #define set_smp_redirect(flag) do { } while (0) diff -Nru a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c --- a/arch/ia64/kernel/setup.c Tue May 18 23:38:05 2004 +++ b/arch/ia64/kernel/setup.c Tue May 18 23:38:05 2004 @@ -575,7 +575,7 @@ void cpu_init (void) { - extern void __init ia64_mmu_init (void *); + extern void __devinit ia64_mmu_init (void *); unsigned long num_phys_stacked; pal_vm_info_2_u_t vmi; unsigned int max_ctx; diff -Nru a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c --- a/arch/ia64/kernel/smp.c Tue May 18 23:38:09 2004 +++ b/arch/ia64/kernel/smp.c Tue May 18 23:38:09 2004 @@ -71,10 +71,23 @@ /* This needs to be cacheline aligned because it is written to by *other* CPUs. */ static DEFINE_PER_CPU(u64, ipi_operation) ____cacheline_aligned; +extern void cpu_halt (void); + +void +lock_ipi_calllock(void) +{ + spin_lock_irq(&call_lock); +} + +void +unlock_ipi_calllock(void) +{ + spin_unlock_irq(&call_lock); +} + static void stop_this_cpu (void) { - extern void cpu_halt (void); /* * Remove this CPU: */ @@ -84,6 +97,17 @@ cpu_halt(); } +void +cpu_die(void) +{ + max_xtp(); + local_irq_disable(); + cpu_halt(); + /* Should never be here */ + BUG(); + for (;;); +} + irqreturn_t handle_IPI (int irq, void *dev_id, struct pt_regs *regs) { @@ -307,6 +331,9 @@ if (!cpus) return 0; + + /* Can deadlock when called with interrupts disabled */ + WARN_ON(irqs_disabled()); data.func = func; data.info = info; diff -Nru a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c --- a/arch/ia64/kernel/smpboot.c Tue May 18 23:38:06 2004 +++ b/arch/ia64/kernel/smpboot.c Tue May 18 23:38:06 2004 @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -22,10 +23,12 @@ #include #include #include +#include #include #include #include #include +#include #include #include @@ -44,6 +47,7 @@ #include #include #include +#include #include #define SMP_DEBUG 0 @@ -69,17 +73,22 @@ #define DEBUG_ITC_SYNC 0 -extern void __init calibrate_delay (void); +extern void __devinit calibrate_delay (void); extern void start_ap (void); extern unsigned long ia64_iobase; task_t *task_for_booting_cpu; -/* Bitmask of currently online CPUs */ +/* + * State for each CPU + */ +DEFINE_PER_CPU(int, cpu_state); + +/* Bitmasks of currently online, and possible CPUs */ cpumask_t cpu_online_map; EXPORT_SYMBOL(cpu_online_map); -cpumask_t phys_cpu_present_map; -EXPORT_SYMBOL(phys_cpu_present_map); +cpumask_t cpu_possible_map; +EXPORT_SYMBOL(cpu_possible_map); /* which logical CPU number maps to which CPU (physical APIC ID) */ volatile int ia64_cpu_to_sapicid[NR_CPUS]; @@ -99,6 +108,7 @@ nointroute (char *str) { no_int_routing = 1; + printk ("no_int_routing on\n"); return 1; } @@ -262,12 +272,12 @@ /* * Ideally sets up per-cpu profiling hooks. Doesn't do much now... */ -static inline void __init +static inline void __devinit smp_setup_percpu_timer (void) { } -static void __init +static void __devinit smp_callin (void) { int cpuid, phys_id; @@ -280,12 +290,16 @@ cpuid = smp_processor_id(); phys_id = hard_smp_processor_id(); - if (cpu_test_and_set(cpuid, cpu_online_map)) { + if (cpu_online(cpuid)) { printk(KERN_ERR "huh, phys CPU#0x%x, CPU#0x%x already present??\n", phys_id, cpuid); BUG(); } + lock_ipi_calllock(); + cpu_set(cpuid, cpu_online_map); + unlock_ipi_calllock(); + smp_setup_percpu_timer(); /* @@ -333,7 +347,7 @@ /* * Activate a secondary processor. head.S calls this. */ -int __init +int __devinit start_secondary (void *unused) { extern int cpu_idle (void); @@ -346,7 +360,7 @@ return cpu_idle(); } -static struct task_struct * __init +static struct task_struct * __devinit fork_by_hand (void) { /* @@ -356,29 +370,51 @@ return copy_process(CLONE_VM|CLONE_IDLETASK, 0, 0, 0, NULL, NULL); } -static int __init +struct create_idle { + struct task_struct *idle; + struct completion done; +}; + +void +do_fork_idle(void *_c_idle) +{ + struct create_idle *c_idle = _c_idle; + + c_idle->idle = fork_by_hand(); + complete(&c_idle->done); +} + +static int __devinit do_boot_cpu (int sapicid, int cpu) { - struct task_struct *idle; int timeout; + struct create_idle c_idle; + DECLARE_WORK(work, do_fork_idle, &c_idle); + init_completion(&c_idle.done); /* * We can't use kernel_thread since we must avoid to reschedule the child. */ - idle = fork_by_hand(); - if (IS_ERR(idle)) + if (!keventd_up() || current_is_keventd()) + work.func(work.data); + else { + schedule_work(&work); + wait_for_completion(&c_idle.done); + } + + if (IS_ERR(c_idle.idle)) panic("failed fork for CPU %d", cpu); - wake_up_forked_process(idle); + wake_up_forked_process(c_idle.idle); /* * We remove it from the pidhash and the runqueue * once we got the process: */ - init_idle(idle, cpu); + init_idle(c_idle.idle, cpu); - unhash_process(idle); + unhash_process(c_idle.idle); - task_for_booting_cpu = idle; + task_for_booting_cpu = c_idle.idle; Dprintk("Sending wakeup vector %lu to AP 0x%x/0x%x.\n", ap_wakeup_vector, cpu, sapicid); @@ -437,18 +473,23 @@ int sapicid, cpu, i; int boot_cpu_id = hard_smp_processor_id(); - for (cpu = 0; cpu < NR_CPUS; cpu++) + for (cpu = 0; cpu < NR_CPUS; cpu++) { ia64_cpu_to_sapicid[cpu] = -1; +#ifdef CONFIG_HOTPLUG_CPU + cpu_set(cpu, cpu_possible_map); +#endif + } ia64_cpu_to_sapicid[0] = boot_cpu_id; - cpus_clear(phys_cpu_present_map); - cpu_set(0, phys_cpu_present_map); - + cpus_clear(cpu_present_map); + cpu_set(0, cpu_present_map); + cpu_set(0, cpu_possible_map); for (cpu = 1, i = 0; i < smp_boot_data.cpu_count; i++) { sapicid = smp_boot_data.cpu_phys_id[i]; if (sapicid == boot_cpu_id) continue; - cpu_set(cpu, phys_cpu_present_map); + cpu_set(cpu, cpu_present_map); + cpu_set(cpu, cpu_possible_map); ia64_cpu_to_sapicid[cpu] = sapicid; cpu++; } @@ -529,9 +570,11 @@ if (!max_cpus) { printk(KERN_INFO "SMP mode deactivated.\n"); cpus_clear(cpu_online_map); - cpus_clear(phys_cpu_present_map); + cpus_clear(cpu_present_map); + cpus_clear(cpu_possible_map); cpu_set(0, cpu_online_map); - cpu_set(0, phys_cpu_present_map); + cpu_set(0, cpu_present_map); + cpu_set(0, cpu_possible_map); return; } } @@ -542,6 +585,74 @@ cpu_set(smp_processor_id(), cpu_callin_map); } +#ifdef CONFIG_HOTPLUG_CPU +extern void fixup_irqs(void); +/* must be called with cpucontrol mutex held */ +static int __devinit cpu_enable(unsigned int cpu) +{ + per_cpu(cpu_state,cpu) = CPU_UP_PREPARE; + wmb(); + + while (!cpu_online(cpu)) + cpu_relax(); + return 0; +} + +int __cpu_disable(void) +{ + int cpu = smp_processor_id(); + + /* + * dont permit boot processor for now + */ + if (cpu == 0) + return -EBUSY; + + fixup_irqs(); + local_flush_tlb_all(); + printk ("Disabled cpu %u\n", smp_processor_id()); + return 0; +} + +void __cpu_die(unsigned int cpu) +{ + unsigned int i; + + for (i = 0; i < 100; i++) { + /* They ack this in play_dead by setting CPU_DEAD */ + if (per_cpu(cpu_state, cpu) == CPU_DEAD) + { + /* + * TBD: Enable this when physical removal + * or when we put the processor is put in + * SAL_BOOT_RENDEZ mode + * cpu_clear(cpu, cpu_callin_map); + */ + return; + } + current->state = TASK_UNINTERRUPTIBLE; + schedule_timeout(HZ/10); + } + printk(KERN_ERR "CPU %u didn't die...\n", cpu); +} +#else /* !CONFIG_HOTPLUG_CPU */ +static int __devinit cpu_enable(unsigned int cpu) +{ + return 0; +} + +int __cpu_disable(void) +{ + return -ENOSYS; +} + +void __cpu_die(unsigned int cpu) +{ + /* We said "no" in __cpu_disable */ + BUG(); +} +#endif /* CONFIG_HOTPLUG_CPU */ + void smp_cpus_done (unsigned int dummy) { @@ -570,6 +681,17 @@ if (sapicid == -1) return -EINVAL; + /* + * Already booted.. just enable and get outa idle lool + */ + if (cpu_isset(cpu, cpu_callin_map)) + { + cpu_enable(cpu); + local_irq_enable(); + while (!cpu_isset(cpu, cpu_online_map)) + mb(); + return 0; + } /* Processor goes to start_secondary(), sets online flag */ ret = do_boot_cpu(sapicid, cpu); if (ret < 0) diff -Nru a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c --- a/arch/ia64/kernel/time.c Tue May 18 23:38:06 2004 +++ b/arch/ia64/kernel/time.c Tue May 18 23:38:06 2004 @@ -10,6 +10,7 @@ */ #include +#include #include #include #include @@ -244,6 +245,10 @@ { unsigned long new_itm; + if (unlikely(cpu_is_offline(smp_processor_id()))) { + return IRQ_HANDLED; + } + platform_timer_interrupt(irq, dev_id, regs); new_itm = local_cpu_data->itm_next; @@ -326,7 +331,7 @@ ia64_set_itm(local_cpu_data->itm_next); } -void __init +void __devinit ia64_init_itm (void) { unsigned long platform_base_freq, itc_freq; diff -Nru a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c --- a/arch/ia64/mm/hugetlbpage.c Tue May 18 23:38:07 2004 +++ b/arch/ia64/mm/hugetlbpage.c Tue May 18 23:38:07 2004 @@ -293,8 +293,9 @@ goto out; } ret = add_to_page_cache(page, mapping, idx, GFP_ATOMIC); - unlock_page(page); - if (ret) { + if (! ret) { + unlock_page(page); + } else { hugetlb_put_quota(mapping); free_huge_page(page); goto out; diff -Nru a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c --- a/arch/ia64/mm/init.c Tue May 18 23:38:06 2004 +++ b/arch/ia64/mm/init.c Tue May 18 23:38:06 2004 @@ -275,11 +275,11 @@ ia64_patch_gate(); } -void __init +void __devinit ia64_mmu_init (void *my_cpu_data) { unsigned long psr, pta, impl_va_bits; - extern void __init tlb_init (void); + extern void __devinit tlb_init (void); int cpu; #ifdef CONFIG_DISABLE_VHPT diff -Nru a/arch/ia64/mm/tlb.c b/arch/ia64/mm/tlb.c --- a/arch/ia64/mm/tlb.c Tue May 18 23:38:08 2004 +++ b/arch/ia64/mm/tlb.c Tue May 18 23:38:08 2004 @@ -166,7 +166,7 @@ } EXPORT_SYMBOL(flush_tlb_range); -void __init +void __devinit ia64_tlb_init (void) { ia64_ptce_info_t ptce_info; diff -Nru a/arch/m68k/Kconfig b/arch/m68k/Kconfig --- a/arch/m68k/Kconfig Tue May 18 23:38:08 2004 +++ b/arch/m68k/Kconfig Tue May 18 23:38:08 2004 @@ -76,9 +76,9 @@ select MMU_SUN3 if MMU help This option enables support for the Sun 3 series of workstations - (3/50, 3/60, 3/1xx, 3/2xx systems). Enabling this option requires - that all other hardware types must be disabled, as Sun 3 kernels - are incompatible with all other m68k targets (including Sun 3x!). + (3/50, 3/60, 3/1xx, 3/2xx systems). Enabling this option requires + that all other hardware types must be disabled, as Sun 3 kernels + are incompatible with all other m68k targets (including Sun 3x!). If you don't want to compile a kernel exclusively for a Sun 3, say N. @@ -687,7 +687,7 @@ debugging info resulting in a larger kernel image. Say Y here only if you plan to use gdb to debug the kernel. If you don't debug the kernel, you can say N. - + endmenu source "security/Kconfig" diff -Nru a/arch/m68k/Makefile b/arch/m68k/Makefile --- a/arch/m68k/Makefile Tue May 18 23:38:09 2004 +++ b/arch/m68k/Makefile Tue May 18 23:38:09 2004 @@ -56,7 +56,7 @@ head-y := arch/m68k/kernel/head.o else head-y := arch/m68k/kernel/sun3-head.o -endif +endif core-y += arch/m68k/kernel/ arch/m68k/mm/ libs-y += arch/m68k/lib/ diff -Nru a/arch/m68k/amiga/amisound.c b/arch/m68k/amiga/amisound.c --- a/arch/m68k/amiga/amisound.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/amiga/amisound.c Tue May 18 23:38:09 2004 @@ -88,7 +88,7 @@ custom.aud[2].audlen = sizeof(sine_data)/2; custom.aud[2].audper = (unsigned short)period; custom.aud[2].audvol = 32; /* 50% of maxvol */ - + if (ticks) { sound_timer.expires = jiffies + ticks; add_timer( &sound_timer ); diff -Nru a/arch/m68k/amiga/chipram.c b/arch/m68k/amiga/chipram.c --- a/arch/m68k/amiga/chipram.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/amiga/chipram.c Tue May 18 23:38:08 2004 @@ -42,7 +42,7 @@ chipavail = amiga_chip_size; } - + void *amiga_chip_alloc(unsigned long size, const char *name) { struct resource *res; diff -Nru a/arch/m68k/amiga/config.c b/arch/m68k/amiga/config.c --- a/arch/m68k/amiga/config.c Tue May 18 23:38:05 2004 +++ b/arch/m68k/amiga/config.c Tue May 18 23:38:05 2004 @@ -332,7 +332,7 @@ case AMI_DRACO: panic("No support for Draco yet"); - + default: panic("Unknown Amiga Model"); } @@ -426,7 +426,7 @@ */ mach_set_clock_mmss = amiga_set_clock_mmss; - mach_get_ss = amiga_get_ss; + mach_get_ss = amiga_get_ss; #ifdef CONFIG_AMIGA_FLOPPY mach_floppy_setup = amiga_floppy_setup; #endif @@ -679,13 +679,13 @@ tod_3000.second2 = real_seconds % 10; tod_3000.minute1 = real_minutes / 10; tod_3000.minute2 = real_minutes % 10; - + tod_3000.cntrl1 = TOD3000_CNTRL1_FREE; } else /* if (AMIGAHW_PRESENT(A2000_CLK)) */ { int cnt = 5; tod_2000.cntrl1 |= TOD2000_CNTRL1_HOLD; - + while ((tod_2000.cntrl1 & TOD2000_CNTRL1_BUSY) && cnt--) { tod_2000.cntrl1 &= ~TOD2000_CNTRL1_HOLD; @@ -715,7 +715,7 @@ tod_3000.cntrl1 = TOD3000_CNTRL1_HOLD; s = tod_3000.second1 * 10 + tod_3000.second2; tod_3000.cntrl1 = TOD3000_CNTRL1_FREE; - } else /* if (AMIGAHW_PRESENT(A2000_CLK)) */ { + } else /* if (AMIGAHW_PRESENT(A2000_CLK)) */ { s = tod_2000.second1 * 10 + tod_2000.second2; } return s; @@ -758,7 +758,7 @@ : "a" (jmp_addr)); jmp_addr_label040: /* disable translation on '040 now */ - __asm__ __volatile__ + __asm__ __volatile__ ("moveq #0,%/d0\n\t" ".chip 68040\n\t" "movec %%d0,%%tc\n\t" /* disable MMU */ @@ -783,7 +783,7 @@ "1:\n\t" "reset\n\t" "jmp %/a0@" : /* Just that gcc scans it for % escapes */ ); - + for (;;); } diff -Nru a/arch/m68k/apollo/config.c b/arch/m68k/apollo/config.c --- a/arch/m68k/apollo/config.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/apollo/config.c Tue May 18 23:38:09 2004 @@ -62,19 +62,19 @@ const unsigned long *data = record->data; switch(record->tag) { - case BI_APOLLO_MODEL: - apollo_model=*data; + case BI_APOLLO_MODEL: + apollo_model=*data; break; default: unknown=1; } - + return unknown; } void dn_setup_model(void) { - + printk("Apollo hardware found: "); printk("[%s]\n", apollo_models[apollo_model - APOLLO_DN3000]); @@ -85,19 +85,19 @@ break; case APOLLO_DN3000: case APOLLO_DN3010: - sio01_physaddr=SAU8_SIO01_PHYSADDR; - rtc_physaddr=SAU8_RTC_PHYSADDR; - pica_physaddr=SAU8_PICA; - picb_physaddr=SAU8_PICB; + sio01_physaddr=SAU8_SIO01_PHYSADDR; + rtc_physaddr=SAU8_RTC_PHYSADDR; + pica_physaddr=SAU8_PICA; + picb_physaddr=SAU8_PICB; cpuctrl_physaddr=SAU8_CPUCTRL; timer_physaddr=SAU8_TIMER; break; case APOLLO_DN4000: - sio01_physaddr=SAU7_SIO01_PHYSADDR; - sio23_physaddr=SAU7_SIO23_PHYSADDR; - rtc_physaddr=SAU7_RTC_PHYSADDR; - pica_physaddr=SAU7_PICA; - picb_physaddr=SAU7_PICB; + sio01_physaddr=SAU7_SIO01_PHYSADDR; + sio23_physaddr=SAU7_SIO23_PHYSADDR; + rtc_physaddr=SAU7_RTC_PHYSADDR; + pica_physaddr=SAU7_PICA; + picb_physaddr=SAU7_PICB; cpuctrl_physaddr=SAU7_CPUCTRL; timer_physaddr=SAU7_TIMER; break; @@ -105,11 +105,11 @@ panic("Apollo model not yet supported"); break; case APOLLO_DN3500: - sio01_physaddr=SAU7_SIO01_PHYSADDR; - sio23_physaddr=SAU7_SIO23_PHYSADDR; - rtc_physaddr=SAU7_RTC_PHYSADDR; - pica_physaddr=SAU7_PICA; - picb_physaddr=SAU7_PICB; + sio01_physaddr=SAU7_SIO01_PHYSADDR; + sio23_physaddr=SAU7_SIO23_PHYSADDR; + rtc_physaddr=SAU7_RTC_PHYSADDR; + pica_physaddr=SAU7_PICA; + picb_physaddr=SAU7_PICB; cpuctrl_physaddr=SAU7_CPUCTRL; timer_physaddr=SAU7_TIMER; break; @@ -131,17 +131,17 @@ void dn_serial_console_write (struct console *co, const char *str,unsigned int count) { while(count--) { - if (*str == '\n') { - sio01.rhrb_thrb = (unsigned char)'\r'; - while (!(sio01.srb_csrb & 0x4)) + if (*str == '\n') { + sio01.rhrb_thrb = (unsigned char)'\r'; + while (!(sio01.srb_csrb & 0x4)) ; - } + } sio01.rhrb_thrb = (unsigned char)*str++; while (!(sio01.srb_csrb & 0x4)) ; - } + } } - + void dn_serial_print (const char *str) { while (*str) { @@ -160,7 +160,7 @@ int i; - dn_setup_model(); + dn_setup_model(); mach_sched_init=dn_sched_init; /* */ mach_init_IRQ=dn_init_IRQ; @@ -180,24 +180,24 @@ conswitchp = &dummy_con; #endif #ifdef CONFIG_HEARTBEAT - mach_heartbeat = dn_heartbeat; + mach_heartbeat = dn_heartbeat; #endif mach_get_model = dn_get_model; cpuctrl=0xaa00; /* clear DMA translation table */ - for(i=0;i<0x400;i++) + for(i=0;i<0x400;i++) addr_xlat_map[i]=0; -} +} irqreturn_t dn_timer_int(int irq, void *dev_id, struct pt_regs *fp) { volatile unsigned char x; sched_timer_handler(irq,dev_id,fp); - + x=*(volatile unsigned char *)(timer+3); x=*(volatile unsigned char *)(timer+5); @@ -206,7 +206,7 @@ void dn_sched_init(irqreturn_t (*timer_routine)(int, void *, struct pt_regs *)) { - /* program timer 1 */ + /* program timer 1 */ *(volatile unsigned char *)(timer+3)=0x01; *(volatile unsigned char *)(timer+1)=0x40; *(volatile unsigned char *)(timer+5)=0x09; @@ -272,7 +272,7 @@ for(;;); } - + void dn_dummy_waitbut(void) { dn_serial_print("waitbut\n"); @@ -291,7 +291,7 @@ static void dn_heartbeat(int on) { - if(on) { + if(on) { dn_cpuctrl&=~0x100; cpuctrl=dn_cpuctrl; } diff -Nru a/arch/m68k/apollo/dma.c b/arch/m68k/apollo/dma.c --- a/arch/m68k/apollo/dma.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/apollo/dma.c Tue May 18 23:38:08 2004 @@ -34,7 +34,7 @@ next_free_xlat_entry+=2; if(next_free_xlat_entry>125) next_free_xlat_entry=0; - + #if 0 printk("next_free_xlat_entry: %d\n",next_free_xlat_entry); #endif diff -Nru a/arch/m68k/apollo/dn_debug.c b/arch/m68k/apollo/dn_debug.c --- a/arch/m68k/apollo/dn_debug.c Tue May 18 23:38:05 2004 +++ b/arch/m68k/apollo/dn_debug.c Tue May 18 23:38:05 2004 @@ -14,9 +14,9 @@ i=vsprintf(current_dbg_ptr,fmt,args); va_end(args); current_dbg_ptr+=i; - + return i; } - else + else return 0; } diff -Nru a/arch/m68k/apollo/dn_ints.c b/arch/m68k/apollo/dn_ints.c --- a/arch/m68k/apollo/dn_ints.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/apollo/dn_ints.c Tue May 18 23:38:08 2004 @@ -40,7 +40,7 @@ dn_irqs[i].dev_id=NULL; dn_irqs[i].devname=NULL; } - + } int dn_request_irq(unsigned int irq, irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long flags, const char *devname, void *dev_id) { @@ -79,7 +79,7 @@ if(irq<8) *(volatile unsigned char *)(pica+1)|=(1<): Autovector interrupts are 1..7, then follow ST-MFP, * TT-MFP, SCC, and finally VME interrupts. Vector numbers for the latter can * be allocated by atari_register_vme_int(). * * Each interrupt can be of three types: - * + * * - SLOW: The handler runs with all interrupts enabled, except the one it * was called by (to avoid reentering). This should be the usual method. * But it is currently possible only for MFP ints, since only the MFP @@ -179,16 +179,16 @@ " movew %%d1,%%sr\n" /* set IPL = previous value */ \ " addql #1,%a0\n" \ " lea %a1,%%a0\n" \ -" pea %%sp@\n" /* push addr of frame */ \ +" pea %%sp@\n" /* push addr of frame */ \ " movel %%a0@(4),%%sp@-\n" /* push handler data */ \ -" pea (%c3+8)\n" /* push int number */ \ +" pea (%c3+8)\n" /* push int number */ \ " movel %%a0@,%%a0\n" \ " jbsr %%a0@\n" /* call the handler */ \ " addql #8,%%sp\n" \ " addql #4,%%sp\n" \ " orw #0x0600,%%sr\n" \ " andw #0xfeff,%%sr\n" /* set IPL = 6 again */ \ -" orb #(1<<(%c3&7)),%a4:w\n" /* now unmask the int again */ \ +" orb #(1<<(%c3&7)),%a4:w\n" /* now unmask the int again */ \ " jbra ret_from_interrupt\n" \ : : "i" (&kstat_cpu(0).irqs[n+8]), "i" (&irq_handler[n+8]), \ "n" (PT_OFF_SR), "n" (n), \ @@ -274,7 +274,7 @@ void atari_fast_prio_irq_dummy (void) { __asm__ (__ALIGN_STR "\n" "atari_fast_irq_handler:\n\t" - "orw #0x700,%%sr\n" /* disable all interrupts */ + "orw #0x700,%%sr\n" /* disable all interrupts */ "atari_prio_irq_handler:\n\t" "addl %3,%2\n\t" /* preempt_count() += HARDIRQ_OFFSET */ SAVE_ALL_INT "\n\t" @@ -282,13 +282,13 @@ /* get vector number from stack frame and convert to source */ "bfextu %%sp@(%c1){#4,#10},%%d0\n\t" "subw #(0x40-8),%%d0\n\t" - "jpl 1f\n\t" + "jpl 1f\n\t" "addw #(0x40-8-0x18),%%d0\n" "1:\tlea %a0,%%a0\n\t" "addql #1,%%a0@(%%d0:l:4)\n\t" "lea irq_handler,%%a0\n\t" "lea %%a0@(%%d0:l:8),%%a0\n\t" - "pea %%sp@\n\t" /* push frame address */ + "pea %%sp@\n\t" /* push frame address */ "movel %%a0@(4),%%sp@-\n\t" /* push handler data */ "movel %%d0,%%sp@-\n\t" /* push int number */ "movel %%a0@,%%a0\n\t" @@ -395,7 +395,7 @@ be in an atasound_init(), that doesn't exist yet. */ atari_microwire_cmd(MW_LM1992_PSG_HIGH); } - + stdma_init(); /* Initialize the PSG: all sounds off, both ports output */ @@ -460,7 +460,7 @@ __FUNCTION__, irq, devname); return -EINVAL; } - + if (vectors[vector] == bad_interrupt) { /* int has no handler yet */ irq_handler[irq].handler = handler; @@ -594,7 +594,7 @@ for(i = 0; i < 32; i++) if((free_vme_vec_bitmap & (1 << i)) == 0) break; - + if(i == 16) return 0; @@ -641,7 +641,7 @@ } if (num_spurious) seq_printf(p, "spurio.: %10u\n", num_spurious); - + return 0; } diff -Nru a/arch/m68k/atari/atasound.c b/arch/m68k/atari/atasound.c --- a/arch/m68k/atari/atasound.c Tue May 18 23:38:05 2004 +++ b/arch/m68k/atari/atasound.c Tue May 18 23:38:05 2004 @@ -70,7 +70,7 @@ if (hz) { /* Convert from frequency value to PSG period value (base frequency 125 kHz). */ - + period = PSG_FREQ / hz; if (period > 0xfff) period = 0xfff; diff -Nru a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c --- a/arch/m68k/atari/config.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/atari/config.c Tue May 18 23:38:08 2004 @@ -7,7 +7,7 @@ * Added setting of time_adj to get a better clock. * * 5/14/94 Roman Hodek: - * gettod() for TT + * gettod() for TT * * 5/15/94 Roman Hodek: * hard_reset_now() for Atari (and others?) @@ -92,7 +92,7 @@ * for posterity. * -- Peter Maydell , 05/1998 */ - + #if 0 static int __init hwreg_present_bywrite(volatile void *regp, unsigned char val) @@ -100,7 +100,7 @@ int ret; long save_sp, save_vbr; static long tmp_vectors[3] = { [2] = (long)&&after_test }; - + __asm__ __volatile__ ( "movec %/vbr,%2\n\t" /* save vbr value */ "movec %4,%/vbr\n\t" /* set up temporary vectors */ @@ -141,14 +141,14 @@ *ctla = 2; MFPDELAY(); *ctla = 0x40; MFPDELAY(); - + *ctla = 2; MFPDELAY(); if (*ctla != 0x40) return( 0 ); MFPDELAY(); *ctla = 2; MFPDELAY(); *ctla = 0x60; MFPDELAY(); - + *ctla = 2; MFPDELAY(); if (*ctla != 0x60) return( 0 ); @@ -199,7 +199,7 @@ p += 3; ovsc_shift = ATARI_SWITCH_OVSC_SHIFT; } - + if (strcmp( p, "ikbd" ) == 0) { /* RTS line of IKBD ACIA */ atari_switches |= ATARI_SWITCH_IKBD << ovsc_shift; @@ -269,8 +269,8 @@ ((atari_switches&ATARI_SWITCH_SND6) ? 0x40 : 0) | ((atari_switches&ATARI_SWITCH_SND7) ? 0x80 : 0); } - - /* ++bjoern: + + /* ++bjoern: * Determine hardware present */ @@ -446,7 +446,7 @@ : /* no outputs */ : /* no inputs */ : "d0"); - + /* allocator for memory that must reside in st-ram */ atari_stram_init (); @@ -507,7 +507,7 @@ if (atari_dont_touch_floppy_select) return; - + local_irq_save(flags); sound_ym.rd_data_reg_sel = 14; /* Select PSG Port A */ tmp = sound_ym.rd_data_reg_sel; @@ -544,7 +544,7 @@ * address of a C label. No hope to compile this with another compiler * than GCC! */ - + /* ++andreas: no need for complicated code, just depend on prefetch */ static void atari_reset (void) @@ -563,7 +563,7 @@ acia.key_ctrl = ACIA_RESET; if (atari_switches & ATARI_SWITCH_OVSC_MIDI) acia.mid_ctrl = ACIA_RESET; - + /* processor independent: turn off interrupts and reset the VBR; * the caches must be left enabled, else prefetching the final jump * instruction doesn't work. */ @@ -572,7 +572,7 @@ ("moveq #0,%/d0\n\t" "movec %/d0,%/vbr" : : : "d0" ); - + if (CPU_IS_040_OR_060) { unsigned long jmp_addr040 = virt_to_phys(&&jmp_addr_label040); if (CPU_IS_060) { @@ -584,7 +584,7 @@ ".chip 68k" : : : "d0" ); } - + __asm__ __volatile__ ("movel %0,%/d0\n\t" "andl #0xff000000,%/d0\n\t" diff -Nru a/arch/m68k/atari/debug.c b/arch/m68k/atari/debug.c --- a/arch/m68k/atari/debug.c Tue May 18 23:38:06 2004 +++ b/arch/m68k/atari/debug.c Tue May 18 23:38:06 2004 @@ -4,7 +4,7 @@ * Atari debugging and serial console stuff * * Assembled of parts of former atari/config.c 97-12-18 by Roman Hodek - * + * * This file is subject to the terms and conditions of the GNU General Public * License. See the file COPYING in the main directory of this archive * for more details. @@ -99,7 +99,7 @@ while( (mfp.par_dt_reg & 1) && --i ) /* wait for BUSY == L */ ; if (!i) return( 0 ); - + sound_ym.rd_data_reg_sel = 15; /* select port B */ sound_ym.wd_data = c; /* put char onto port */ sound_ym.rd_data_reg_sel = 14; /* select port A */ @@ -177,7 +177,7 @@ if (baud < B1200 || baud > B38400+2) baud = B9600; /* use default 9600bps for non-implemented rates */ baud -= B1200; /* baud_table[] starts at 1200bps */ - + mfp.trn_stat &= ~0x01; /* disable TX */ mfp.usart_ctr = parity | csize | 0x88; /* 1:16 clk mode, 1 stop bit */ mfp.tim_ct_cd &= 0x70; /* stop timer D */ @@ -204,7 +204,7 @@ for( i = 100; i > 0; --i ) \ MFPDELAY(); \ } while(0) - + #ifndef CONFIG_SERIAL_CONSOLE static void __init atari_init_scc_port( int cflag ) #else @@ -214,20 +214,20 @@ extern int atari_SCC_reset_done; static int clksrc_table[9] = /* reg 11: 0x50 = BRG, 0x00 = RTxC, 0x28 = TRxC */ - { 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x00, 0x00 }; + { 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x00, 0x00 }; static int brgsrc_table[9] = /* reg 14: 0 = RTxC, 2 = PCLK */ - { 2, 2, 2, 2, 2, 2, 0, 2, 2 }; + { 2, 2, 2, 2, 2, 2, 0, 2, 2 }; static int clkmode_table[9] = /* reg 4: 0x40 = x16, 0x80 = x32, 0xc0 = x64 */ - { 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x80 }; + { 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x80 }; static int div_table[9] = /* reg12 (BRG low) */ - { 208, 138, 103, 50, 24, 11, 1, 0, 0 }; + { 208, 138, 103, 50, 24, 11, 1, 0, 0 }; int baud = cflag & CBAUD; int clksrc, clkmode, div, reg3, reg5; - + if (cflag & CBAUDEX) baud += B38400; if (baud < B1200 || baud > B38400+2) @@ -248,7 +248,7 @@ reg3 = (cflag & CSIZE) == CS8 ? 0xc0 : 0x40; reg5 = (cflag & CSIZE) == CS8 ? 0x60 : 0x20 | 0x82 /* assert DTR/RTS */; - + (void)scc.cha_b_ctrl; /* reset reg pointer */ SCC_WRITE( 9, 0xc0 ); /* reset */ LONG_DELAY(); /* extra delay after WR9 access */ @@ -267,12 +267,12 @@ SCC_WRITE( 14, brgsrc_table[baud] | (div ? 1 : 0) ); SCC_WRITE( 3, reg3 | 1 ); SCC_WRITE( 5, reg5 | 8 ); - + atari_SCC_reset_done = 1; atari_SCC_init_done = 1; } -#ifndef CONFIG_SERIAL_CONSOLE +#ifndef CONFIG_SERIAL_CONSOLE static void __init atari_init_midi_port( int cflag ) #else void atari_init_midi_port( int cflag ) diff -Nru a/arch/m68k/atari/stdma.c b/arch/m68k/atari/stdma.c --- a/arch/m68k/atari/stdma.c Tue May 18 23:38:06 2004 +++ b/arch/m68k/atari/stdma.c Tue May 18 23:38:06 2004 @@ -97,7 +97,7 @@ /* * Function: void stdma_release( void ) * - * Purpose: Releases the lock on the ST-DMA chip. + * Purpose: Releases the lock on the ST-DMA chip. * * Inputs: none * diff -Nru a/arch/m68k/atari/stram.c b/arch/m68k/atari/stram.c --- a/arch/m68k/atari/stram.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/atari/stram.c Tue May 18 23:38:08 2004 @@ -52,7 +52,7 @@ /* Pre-swapping comments: * * ++roman: - * + * * New version of ST-Ram buffer allocation. Instead of using the * 1 MB - 4 KB that remain when the ST-Ram chunk starts at $1000 * (1 MB granularity!), such buffers are reserved like this: @@ -60,14 +60,14 @@ * - If the kernel resides in ST-Ram anyway, we can take the buffer * from behind the current kernel data space the normal way * (incrementing start_mem). - * + * * - If the kernel is in TT-Ram, stram_init() initializes start and * end of the available region. Buffers are allocated from there * and mem_init() later marks the such used pages as reserved. * Since each TT-Ram chunk is at least 4 MB in size, I hope there * won't be an overrun of the ST-Ram region by normal kernel data * space. - * + * * For that, ST-Ram may only be allocated while kernel initialization * is going on, or exactly: before mem_init() is called. There is also * no provision now for freeing ST-Ram buffers. It seems that isn't @@ -105,7 +105,7 @@ * visible on a TT, where the speed difference between ST- and TT-RAM isn't * that dramatic, but it should on machines where TT-RAM is really much faster * (e.g. Afterburner). - * + * * [1]: __get_free_pages() does a fine job if you only want one page, but if * you want more (contiguous) pages, it can give you such a block only if * there's already a free one. The algorithm can't try to free buffers or swap @@ -318,7 +318,7 @@ swap_end = swap_start + max_swap_size; DPRINTK( "atari_stram_reserve_pages: swapping enabled; " "swap=%p-%p\n", swap_start, swap_end); - + /* reserve some amount of memory for maintainance of * swapping itself: one page for each 2048 (PAGE_SIZE/2) * swap pages. (2 bytes for each page) */ @@ -328,7 +328,7 @@ /* correct swap_start if necessary */ if (swap_start + PAGE_SIZE == swap_data) swap_start = start_mem - PAGE_SIZE; - + if (!swap_init( start_mem, swap_data )) { printk( KERN_ERR "ST-RAM swap space initialization failed\n" ); max_swap_size = 0; @@ -368,13 +368,13 @@ /* * This is main public interface: somehow allocate a ST-RAM block * There are three strategies: - * + * * - If we're before mem_init(), we have to make a static allocation. The * region is taken in the kernel data area (if the kernel is in ST-RAM) or * from the start of ST-RAM (if the kernel is in TT-RAM) and added to the * rsvd_stram_* region. The ST-RAM is somewhere in the middle of kernel * address space in the latter case. - * + * * - If mem_init() already has been called and ST-RAM swapping is enabled, * try to get the memory from the (pseudo) swap-space, either free already * or by moving some other pages out of the swap. @@ -383,7 +383,7 @@ * enabled, the only possibility is to try with __get_dma_pages(). This has * the disadvantage that it's very hard to get more than 1 page, and it is * likely to fail :-( - * + * */ void *atari_stram_alloc(long size, const char *owner) { @@ -450,7 +450,7 @@ } DPRINTK( "atari_stram_free: found block (%p): size=%08lx, owner=%s, " "flags=%02x\n", block, block->size, block->owner, block->flags ); - + #ifdef CONFIG_STRAM_SWAP if (!max_swap_size) { #endif @@ -503,14 +503,14 @@ DPRINTK("swap_init(start_mem=%p, swap_data=%p)\n", start_mem, swap_data); - + /* need at least one page for swapping to (and this also isn't very * much... :-) */ if (swap_end - swap_start < 2*PAGE_SIZE) { printk( KERN_WARNING "stram_swap_init: swap space too small\n" ); return( 0 ); } - + /* find free slot in swap_info */ for( p = swap_info, type = 0; type < nr_swapfiles; type++, p++ ) if (!(p->flags & SWP_USED)) @@ -531,7 +531,7 @@ fake_dentry.d_name.name = "stram (internal)"; fake_dentry.d_name.len = 16; fake_vfsmnt.mnt_parent = &fake_vfsmnt; - + p->flags = SWP_USED; p->swap_file = &fake_dentry; p->swap_vfsmnt = &fake_vfsmnt; @@ -706,7 +706,7 @@ } while (start < end); } -static void unswap_process(struct mm_struct * mm, swp_entry_t entry, +static void unswap_process(struct mm_struct * mm, swp_entry_t entry, struct page *page) { struct vm_area_struct* vma; @@ -799,7 +799,7 @@ unsigned long start, total_free, region_free; int err; void *ret = NULL; - + DPRINTK( "get_stram_region(n_pages=%lu)\n", n_pages ); down(&stram_swap_sem); @@ -874,7 +874,7 @@ static int in_some_region(void *addr) { BLOCK *p; - + for( p = alloc_list; p; p = p->next ) { if (p->start <= addr && addr < p->start + p->size) return( 1 ); @@ -920,7 +920,7 @@ /* don't need more free pages... :-) */ goto out; } - + /* now shift the window and look for the area where as much pages as * possible are free */ while( tail < max ) { @@ -1130,7 +1130,7 @@ static BLOCK *find_region( void *addr ) { BLOCK *p; - + for( p = alloc_list; p; p = p->next ) { if (p->start == addr) return( p ); @@ -1145,7 +1145,7 @@ static int remove_region( BLOCK *block ) { BLOCK **p; - + for( p = &alloc_list; *p; p = &((*p)->next) ) if (*p == block) break; if (!*p) diff -Nru a/arch/m68k/atari/time.c b/arch/m68k/atari/time.c --- a/arch/m68k/atari/time.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/atari/time.c Tue May 18 23:38:08 2004 @@ -4,7 +4,7 @@ * Atari time and real time clock stuff * * Assembled of parts of former atari/config.c 97-12-18 by Roman Hodek - * + * * This file is subject to the terms and conditions of the GNU General Public * License. See the file COPYING in the main directory of this archive * for more details. @@ -25,7 +25,7 @@ /* set Timer C data Register */ mfp.tim_dt_c = INT_TICKS; /* start timer C, div = 1:100 */ - mfp.tim_ct_cd = (mfp.tim_ct_cd & 15) | 0x60; + mfp.tim_ct_cd = (mfp.tim_ct_cd & 15) | 0x60; /* install interrupt service routine for MFP Timer C */ request_irq(IRQ_MFP_TIMC, timer_routine, IRQ_TYPE_SLOW, "timer", timer_routine); @@ -34,7 +34,7 @@ /* ++andreas: gettimeoffset fixed to check for pending interrupt */ #define TICK_SIZE 10000 - + /* This is always executed with interrupts disabled. */ unsigned long atari_gettimeoffset (void) { @@ -59,9 +59,9 @@ { #define COPY(v) val->v=(mste_rtc.v & 0xf) do { - COPY(sec_ones) ; COPY(sec_tens) ; COPY(min_ones) ; - COPY(min_tens) ; COPY(hr_ones) ; COPY(hr_tens) ; - COPY(weekday) ; COPY(day_ones) ; COPY(day_tens) ; + COPY(sec_ones) ; COPY(sec_tens) ; COPY(min_ones) ; + COPY(min_tens) ; COPY(hr_ones) ; COPY(hr_tens) ; + COPY(weekday) ; COPY(day_ones) ; COPY(day_tens) ; COPY(mon_ones) ; COPY(mon_tens) ; COPY(year_ones) ; COPY(year_tens) ; /* prevent from reading the clock while it changed */ @@ -73,9 +73,9 @@ { #define COPY(v) mste_rtc.v=val->v do { - COPY(sec_ones) ; COPY(sec_tens) ; COPY(min_ones) ; - COPY(min_tens) ; COPY(hr_ones) ; COPY(hr_tens) ; - COPY(weekday) ; COPY(day_ones) ; COPY(day_tens) ; + COPY(sec_ones) ; COPY(sec_tens) ; COPY(min_ones) ; + COPY(min_tens) ; COPY(hr_ones) ; COPY(hr_tens) ; + COPY(weekday) ; COPY(day_ones) ; COPY(day_tens) ; COPY(mon_ones) ; COPY(mon_tens) ; COPY(year_ones) ; COPY(year_tens) ; /* prevent from writing the clock while it changed */ @@ -104,14 +104,14 @@ int hour, year; int hr24=0; struct MSTE_RTC val; - + mste_rtc.mode=(mste_rtc.mode | 1); hr24=mste_rtc.mon_tens & 1; mste_rtc.mode=(mste_rtc.mode & ~1); if (op) { /* write: prepare values */ - + val.sec_ones = t->tm_sec % 10; val.sec_tens = t->tm_sec / 10; val.min_ones = t->tm_min % 10; @@ -160,8 +160,8 @@ int atari_tt_hwclk( int op, struct rtc_time *t ) { - int sec=0, min=0, hour=0, day=0, mon=0, year=0, wday=0; - unsigned long flags; + int sec=0, min=0, hour=0, day=0, mon=0, year=0, wday=0; + unsigned long flags; unsigned char ctrl; int pm = 0; @@ -170,7 +170,7 @@ if (op) { /* write: prepare values */ - + sec = t->tm_sec; min = t->tm_min; hour = t->tm_hour; @@ -178,7 +178,7 @@ mon = t->tm_mon + 1; year = t->tm_year - atari_rtc_year_offset; wday = t->tm_wday + (t->tm_wday >= 0); - + if (!(ctrl & RTC_24H)) { if (hour > 11) { pm = 0x80; @@ -188,7 +188,7 @@ else if (hour == 0) hour = 12; } - + if (!(ctrl & RTC_DM_BINARY)) { BIN_TO_BCD(sec); BIN_TO_BCD(min); @@ -199,7 +199,7 @@ if (wday >= 0) BIN_TO_BCD(wday); } } - + /* Reading/writing the clock registers is a bit critical due to * the regular update cycle of the RTC. While an update is in * progress, registers 0..9 shouldn't be touched. @@ -242,7 +242,7 @@ if (!op) { /* read: adjust values */ - + if (hour & 0x80) { hour &= ~0x80; pm = 1; @@ -284,7 +284,7 @@ struct MSTE_RTC val; unsigned char rtc_minutes; - mste_read(&val); + mste_read(&val); rtc_minutes= val.min_ones + val.min_tens * 10; if ((rtc_minutes < real_minutes ? real_minutes - rtc_minutes diff -Nru a/arch/m68k/bvme6000/rtc.c b/arch/m68k/bvme6000/rtc.c --- a/arch/m68k/bvme6000/rtc.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/bvme6000/rtc.c Tue May 18 23:38:08 2004 @@ -44,7 +44,7 @@ volatile RtcPtr_t rtc = (RtcPtr_t)BVME_RTC_BASE; unsigned char msr; unsigned long flags; - struct rtc_time wtime; + struct rtc_time wtime; switch (cmd) { case RTC_RD_TIME: /* Read the time/date from RTC */ @@ -105,7 +105,7 @@ if (yrs >= 2070) return -EINVAL; - + local_irq_save(flags); /* Ensure clock and real-time-mode-register are accessible */ msr = rtc->msr & 0xc0; diff -Nru a/arch/m68k/defconfig b/arch/m68k/defconfig --- a/arch/m68k/defconfig Tue May 18 23:38:05 2004 +++ b/arch/m68k/defconfig Tue May 18 23:38:05 2004 @@ -101,7 +101,7 @@ # CONFIG_ATM is not set # -# +# # # CONFIG_IPX is not set # CONFIG_ATALK is not set diff -Nru a/arch/m68k/fpsp040/README b/arch/m68k/fpsp040/README --- a/arch/m68k/fpsp040/README Tue May 18 23:38:06 2004 +++ b/arch/m68k/fpsp040/README Tue May 18 23:38:06 2004 @@ -12,7 +12,7 @@ INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) -and any accompanying written materials. +and any accompanying written materials. To the maximum extent permitted by applicable law, IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER @@ -20,7 +20,7 @@ PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE. Motorola assumes no responsibility for the maintenance -and support of the SOFTWARE. +and support of the SOFTWARE. You are hereby granted a copyright license to use, modify, and distribute the SOFTWARE so long as this entire notice is retained diff -Nru a/arch/m68k/fpsp040/bindec.S b/arch/m68k/fpsp040/bindec.S --- a/arch/m68k/fpsp040/bindec.S Tue May 18 23:38:06 2004 +++ b/arch/m68k/fpsp040/bindec.S Tue May 18 23:38:06 2004 @@ -19,7 +19,7 @@ | | Algorithm: | -| A1. Set RM and size ext; Set SIGMA = sign of input. +| A1. Set RM and size ext; Set SIGMA = sign of input. | The k-factor is saved for use in d7. Clear the | BINDEC_FLG for separating normalized/denormalized | input. If input is unnormalized or denormalized, @@ -29,15 +29,15 @@ | | A3. Compute ILOG. | ILOG is the log base 10 of the input value. It is -| approximated by adding e + 0.f when the original -| value is viewed as 2^^e * 1.f in extended precision. +| approximated by adding e + 0.f when the original +| value is viewed as 2^^e * 1.f in extended precision. | This value is stored in d6. | | A4. Clr INEX bit. -| The operation in A3 above may have set INEX2. +| The operation in A3 above may have set INEX2. | | A5. Set ICTR = 0; -| ICTR is a flag used in A13. It must be set before the +| ICTR is a flag used in A13. It must be set before the | loop entry A6. | | A6. Calculate LEN. @@ -59,9 +59,9 @@ | of ISCALE and X. A table is given in the code. | | A8. Clr INEX; Force RZ. -| The operation in A3 above may have set INEX2. +| The operation in A3 above may have set INEX2. | RZ mode is forced for the scaling operation to insure -| only one rounding error. The grs bits are collected in +| only one rounding error. The grs bits are collected in | the INEX flag for use in A10. | | A9. Scale X -> Y. @@ -90,11 +90,11 @@ | the mantissa by 10. | | A14. Convert the mantissa to bcd. -| The binstr routine is used to convert the LEN digit +| The binstr routine is used to convert the LEN digit | mantissa to bcd in memory. The input to binstr is | to be a fraction; i.e. (mantissa)/10^LEN and adjusted | such that the decimal point is to the left of bit 63. -| The bcd digits are stored in the correct position in +| The bcd digits are stored in the correct position in | the final string area in memory. | | A15. Convert the exponent to bcd. @@ -114,7 +114,7 @@ | d2: upper 32-bits of mantissa for binstr | d3: scratch;lower 32-bits of mantissa for binstr | d4: LEN -| d5: LAMBDA/ICTR +| d5: LAMBDA/ICTR | d6: ILOG | d7: k-factor | a0: ptr for original operand/final result @@ -131,8 +131,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |BINDEC idnt 2,1 | Motorola 040 Floating Point Software Package @@ -142,16 +142,16 @@ |section 8 | Constants in extended precision -LOG2: .long 0x3FFD0000,0x9A209A84,0xFBCFF798,0x00000000 +LOG2: .long 0x3FFD0000,0x9A209A84,0xFBCFF798,0x00000000 LOG2UP1: .long 0x3FFD0000,0x9A209A84,0xFBCFF799,0x00000000 | Constants in single precision -FONE: .long 0x3F800000,0x00000000,0x00000000,0x00000000 +FONE: .long 0x3F800000,0x00000000,0x00000000,0x00000000 FTWO: .long 0x40000000,0x00000000,0x00000000,0x00000000 -FTEN: .long 0x41200000,0x00000000,0x00000000,0x00000000 +FTEN: .long 0x41200000,0x00000000,0x00000000,0x00000000 F4933: .long 0x459A2800,0x00000000,0x00000000,0x00000000 -RBDTBL: .byte 0,0,0,0 +RBDTBL: .byte 0,0,0,0 .byte 3,3,2,2 .byte 3,2,2,3 .byte 2,3,3,2 @@ -171,7 +171,7 @@ | separating normalized/denormalized input. If the input | is a denormalized number, set the BINDEC_FLG memory word | to signal denorm. If the input is unnormalized, normalize -| the input and test for denormalized result. +| the input and test for denormalized result. | fmovel #rm_mode,%FPCR |set RM and ext movel (%a0),L_SCR2(%a6) |save exponent for sign check @@ -251,7 +251,7 @@ subw #0x3fff,%d0 |strip off bias faddw %d0,%fp0 |add in exp fsubs FONE,%fp0 |subtract off 1.0 - fbge pos_res |if pos, branch + fbge pos_res |if pos, branch fmulx LOG2UP1,%fp0 |if neg, mul by LOG2UP1 fmovel %fp0,%d6 |put ILOG in d6 as a lword bras A4_str |go move out ILOG @@ -261,14 +261,14 @@ | A4. Clr INEX bit. -| The operation in A3 above may have set INEX2. +| The operation in A3 above may have set INEX2. -A4_str: +A4_str: fmovel #0,%FPSR |zero all of fpsr - nothing needed | A5. Set ICTR = 0; -| ICTR is a flag used in A13. It must be set before the +| ICTR is a flag used in A13. It must be set before the | loop entry A6. The lower word of d5 is used for ICTR. clrw %d5 |clear ICTR @@ -303,7 +303,7 @@ | L_SCR1:x/x | L_SCR2:first word of X packed/Unchanged -A6_str: +A6_str: tstl %d7 |branch on sign of k bles k_neg |if k <= 0, LEN = ILOG + 1 - k movel %d7,%d4 |if k > 0, LEN = k @@ -375,13 +375,13 @@ | L_SCR1:x/x | L_SCR2:first word of X packed/Unchanged -A7_str: +A7_str: tstl %d7 |test sign of k bgts k_pos |if pos and > 0, skip this cmpl %d6,%d7 |test k - ILOG blts k_pos |if ILOG >= k, skip this movel %d7,%d6 |if ((k<0) & (ILOG < k)) ILOG = k -k_pos: +k_pos: movel %d6,%d0 |calc ILOG + 1 - LEN in d0 addql #1,%d0 |add the 1 subl %d4,%d0 |sub off LEN @@ -395,9 +395,9 @@ bgts no_inf |if false, skip rest addil #24,%d0 |add in 24 to iscale movel #24,%d2 |put 24 in d2 for A9 -no_inf: +no_inf: negl %d0 |and take abs of ISCALE -iscale: +iscale: fmoves FONE,%fp1 |init fp1 to 1 bfextu USER_FPCR(%a6){#26:#2},%d1 |get initial rmode bits lslw #1,%d1 |put them in bits 2:1 @@ -425,33 +425,33 @@ leal PTENRM,%a1 |load a1 with RM table base rmode: clrl %d3 |clr table index -e_loop: +e_loop: lsrl #1,%d0 |shift next bit into carry bccs e_next |if zero, skip the mul fmulx (%a1,%d3),%fp1 |mul by 10**(d3_bit_no) -e_next: +e_next: addl #12,%d3 |inc d3 to next pwrten table entry tstl %d0 |test if ISCALE is zero bnes e_loop |if not, loop | A8. Clr INEX; Force RZ. -| The operation in A3 above may have set INEX2. +| The operation in A3 above may have set INEX2. | RZ mode is forced for the scaling operation to insure -| only one rounding error. The grs bits are collected in +| only one rounding error. The grs bits are collected in | the INEX flag for use in A10. | | Register usage: | Input/Output - fmovel #0,%FPSR |clr INEX + fmovel #0,%FPSR |clr INEX fmovel #rz_mode,%FPCR |set RZ rounding mode | A9. Scale X -> Y. | The mantissa is scaled to the desired number of significant | digits. The excess digits are collected in INEX2. If mul, -| Check d2 for excess 10 exponential value. If not zero, +| Check d2 for excess 10 exponential value. If not zero, | the iscale value would have caused the pwrten calculation | to overflow. Only a negative iscale can cause this, so | multiply by 10^(d2), which is now only allowed to be 24, @@ -480,7 +480,7 @@ | L_SCR1:x/x | L_SCR2:first word of X packed/Unchanged -A9_str: +A9_str: fmovex (%a0),%fp0 |load X from memory fabsx %fp0 |use abs(X) tstw %d5 |LAMBDA is in lower word of d5 @@ -498,9 +498,9 @@ movel #18,%d3 |load count for busy stack A9_loop: clrl -(%a7) |clear lword on stack - dbf %d3,A9_loop + dbf %d3,A9_loop moveb VER_TMP(%a6),(%a7) |write current version number - moveb #BUSY_SIZE-4,1(%a7) |write current busy size + moveb #BUSY_SIZE-4,1(%a7) |write current busy size moveb #0x10,0x44(%a7) |set fcefpte[15] bit movew #0x0023,0x40(%a7) |load cmdreg1b with mul command moveb #0xfe,0x8(%a7) |load all 1s to cu savepc @@ -537,7 +537,7 @@ | fp1: 10^ISCALE/Unchanged | fp2: x/x -A10_st: +A10_st: fmovel %FPSR,%d0 |get FPSR fmovex %fp0,FP_SCR2(%a6) |move Y to memory leal FP_SCR2(%a6),%a2 |load a2 with ptr to FP_SCR2 @@ -553,9 +553,9 @@ | routine expects the FPCR value to be in USER_FPCR for | mode and precision. The original FPCR is saved in L_SCR1. -A11_st: +A11_st: movel USER_FPCR(%a6),L_SCR1(%a6) |save it for later - andil #0x00000030,USER_FPCR(%a6) |set size to ext, + andil #0x00000030,USER_FPCR(%a6) |set size to ext, | ;block exceptions @@ -584,13 +584,13 @@ | L_SCR2:first word of X packed/Unchanged A12_st: - moveml %d0-%d1/%a0-%a1,-(%a7) |save regs used by sintd0 + moveml %d0-%d1/%a0-%a1,-(%a7) |save regs used by sintd0 movel L_SCR1(%a6),-(%a7) movel L_SCR2(%a6),-(%a7) leal FP_SCR2(%a6),%a0 |a0 is ptr to F_SCR2(a6) fmovex %fp0,(%a0) |move Y to memory at FP_SCR2(a6) tstl L_SCR2(%a6) |test sign of original operand - bges do_fint |if pos, use Y + bges do_fint |if pos, use Y orl #0x80000000,(%a0) |if neg, use -Y do_fint: movel USER_FPSR(%a6),-(%a7) @@ -599,7 +599,7 @@ addl #4,%a7 movel (%a7)+,L_SCR2(%a6) movel (%a7)+,L_SCR1(%a6) - moveml (%a7)+,%d0-%d1/%a0-%a1 |restore regs used by sint + moveml (%a7)+,%d0-%d1/%a0-%a1 |restore regs used by sint movel L_SCR2(%a6),FP_SCR2(%a6) |restore original exponent movel L_SCR1(%a6),USER_FPCR(%a6) |restore user's FPCR @@ -635,7 +635,7 @@ | L_SCR1:original USER_FPCR/Unchanged | L_SCR2:first word of X packed/Unchanged -A13_st: +A13_st: swap %d5 |put ICTR in lower word of d5 tstw %d5 |check if ICTR = 0 bne not_zr |if non-zero, go to second test @@ -646,7 +646,7 @@ movel %d4,%d0 |put LEN in d0 subql #1,%d0 |d0 = LEN -1 clrl %d3 |clr table index -l_loop: +l_loop: lsrl #1,%d0 |shift next bit into carry bccs l_next |if zero, skip the mul fmulx (%a1,%d3),%fp2 |mul by 10**(d3_bit_no) @@ -672,7 +672,7 @@ subql #1,%d6 |subtract 1 from ILOG movew #1,%d5 |set ICTR fmovel #rm_mode,%FPCR |set rmode to RM - fmuls FTEN,%fp2 |compute 10^LEN + fmuls FTEN,%fp2 |compute 10^LEN bra A6_str |return to A6 and recompute YINT test_2: fmuls FTEN,%fp2 |compute 10^LEN @@ -688,7 +688,7 @@ fmovel #rm_mode,%FPCR |set rmode to RM bra A6_str |return to A6 and recompute YINT | -| Since ICTR <> 0, we have already been through one adjustment, +| Since ICTR <> 0, we have already been through one adjustment, | and shouldn't have another; this is to check if abs(YINT) = 10^LEN | 10^LEN is again computed using whatever table is in a1 since the | value calculated cannot be inexact. @@ -715,11 +715,11 @@ | A14. Convert the mantissa to bcd. -| The binstr routine is used to convert the LEN digit +| The binstr routine is used to convert the LEN digit | mantissa to bcd in memory. The input to binstr is | to be a fraction; i.e. (mantissa)/10^LEN and adjusted | such that the decimal point is to the left of bit 63. -| The bcd digits are stored in the correct position in +| The bcd digits are stored in the correct position in | the final string area in memory. | | @@ -745,7 +745,7 @@ | L_SCR1:original USER_FPCR/Unchanged | L_SCR2:first word of X packed/Unchanged -A14_st: +A14_st: fmovel #rz_mode,%FPCR |force rz for conversion fdivx %fp2,%fp0 |divide abs(YINT) by 10^LEN leal FP_SCR1(%a6),%a0 @@ -762,7 +762,7 @@ bgts no_sft |if so, don't shift negl %d0 |make exp positive m_loop: - lsrl #1,%d2 |shift d2:d3 right, add 0s + lsrl #1,%d2 |shift d2:d3 right, add 0s roxrl #1,%d3 |the number of places dbf %d0,m_loop |given in d0 no_sft: @@ -787,9 +787,9 @@ | | Digits are stored in L_SCR1(a6) on return from BINDEC as: | -| 32 16 15 0 +| 32 16 15 0 | ----------------------------------------- -| | 0 | e3 | e2 | e1 | e4 | X | X | X | +| | 0 | e3 | e2 | e1 | e4 | X | X | X | | ----------------------------------------- | | And are moved into their proper places in FP_SCR1. If digit e4 @@ -817,7 +817,7 @@ | L_SCR1:original USER_FPCR/Exponent digits on return from binstr | L_SCR2:first word of X packed/Unchanged -A15_st: +A15_st: tstb BINDEC_FLG(%a6) |check for denorm beqs not_denorm ftstx %fp0 |test for zero @@ -839,7 +839,7 @@ fbne not_zero |if zero, force exponent fmoves FONE,%fp0 |force exponent to 1 bras convrt |do it -not_zero: +not_zero: fmovel %d6,%fp0 |float ILOG fabsx %fp0 |get abs of ILOG convrt: @@ -852,7 +852,7 @@ subiw #0x3ffd,%d0 |subtract off bias negw %d0 |make exp positive x_loop: - lsrl #1,%d2 |shift d2:d3 right + lsrl #1,%d2 |shift d2:d3 right roxrl #1,%d3 |the number of places dbf %d0,x_loop |given in d0 x_loop_fin: @@ -863,12 +863,12 @@ movel #4,%d0 |put 4 in d0 for binstr call leal L_SCR1(%a6),%a0 |a0 is ptr to L_SCR1 for exp digits bsr binstr |call binstr to convert exp - movel L_SCR1(%a6),%d0 |load L_SCR1 lword to d0 + movel L_SCR1(%a6),%d0 |load L_SCR1 lword to d0 movel #12,%d1 |use d1 for shift count lsrl %d1,%d0 |shift d0 right by 12 bfins %d0,FP_SCR1(%a6){#4:#12} |put e3:e2:e1 in FP_SCR1 lsrl %d1,%d0 |shift d0 right by 12 - bfins %d0,FP_SCR1(%a6){#16:#4} |put e4 in FP_SCR1 + bfins %d0,FP_SCR1(%a6){#16:#4} |put e4 in FP_SCR1 tstb %d0 |check if e4 is zero beqs A16_st |if zero, skip rest orl #opaop_mask,USER_FPSR(%a6) |set OPERR & AIOP in USER_FPSR @@ -899,14 +899,14 @@ A16_st: clrl %d0 |clr d0 for collection of signs - andib #0x0f,FP_SCR1(%a6) |clear first nibble of FP_SCR1 + andib #0x0f,FP_SCR1(%a6) |clear first nibble of FP_SCR1 tstl L_SCR2(%a6) |check sign of original mantissa bges mant_p |if pos, don't set SM moveql #2,%d0 |move 2 in to d0 for SM mant_p: tstl %d6 |check sign of ILOG bges wr_sgn |if pos, don't set SE - addql #1,%d0 |set bit 0 in d0 for SE + addql #1,%d0 |set bit 0 in d0 for SE wr_sgn: bfins %d0,FP_SCR1(%a6){#0:#2} |insert SM and SE into FP_SCR1 diff -Nru a/arch/m68k/fpsp040/binstr.S b/arch/m68k/fpsp040/binstr.S --- a/arch/m68k/fpsp040/binstr.S Tue May 18 23:38:06 2004 +++ b/arch/m68k/fpsp040/binstr.S Tue May 18 23:38:06 2004 @@ -60,8 +60,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |BINSTR idnt 2,1 | Motorola 040 Floating Point Software Package diff -Nru a/arch/m68k/fpsp040/bugfix.S b/arch/m68k/fpsp040/bugfix.S --- a/arch/m68k/fpsp040/bugfix.S Tue May 18 23:38:07 2004 +++ b/arch/m68k/fpsp040/bugfix.S Tue May 18 23:38:07 2004 @@ -7,7 +7,7 @@ | | Fixes for bugs: 1238 | -| Bug: 1238 +| Bug: 1238 | | | /* The following dirty_bit clear should be left in @@ -152,8 +152,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |BUGFIX idnt 2,1 | Motorola 040 Floating Point Software Package @@ -167,8 +167,8 @@ .global b1238_fix b1238_fix: | -| This code is entered only on completion of the handling of an -| nu-generated ovfl, unfl, or inex exception. If the version +| This code is entered only on completion of the handling of an +| nu-generated ovfl, unfl, or inex exception. If the version | number of the fsave is not $40, this handler is not necessary. | Simply branch to fix_done and exit normally. | @@ -180,11 +180,11 @@ | moveb CU_SAVEPC(%a6),%d0 andib #0xFE,%d0 - beq fix_done |if zero, this is not bug #1238 + beq fix_done |if zero, this is not bug #1238 | | Test the register conflict aspect. If opclass0, check for -| cu src equal to xu dest or equal to nu dest. If so, go to +| cu src equal to xu dest or equal to nu dest. If so, go to | op0. Else, or if opclass2, check for cu dest equal to | xu dest or equal to nu dest. If so, go to tst_opcl. Else, | exit, it is not the bug case. @@ -196,17 +196,17 @@ bne op2sgl |not opclass 0, check op2 | | Check for cu and nu register conflict. If one exists, this takes -| priority over a cu and xu conflict. +| priority over a cu and xu conflict. | - bfextu CMDREG1B(%a6){#3:#3},%d0 |get 1st src + bfextu CMDREG1B(%a6){#3:#3},%d0 |get 1st src bfextu CMDREG3B(%a6){#6:#3},%d1 |get 3rd dest cmpb %d0,%d1 beqs op0 |if equal, continue bugfix | -| Check for cu dest equal to nu dest. If so, go and fix the +| Check for cu dest equal to nu dest. If so, go and fix the | bug condition. Otherwise, exit. | - bfextu CMDREG1B(%a6){#6:#3},%d0 |get 1st dest + bfextu CMDREG1B(%a6){#6:#3},%d0 |get 1st dest cmpb %d0,%d1 |cmp 1st dest with 3rd dest beqs op0 |if equal, continue bugfix | @@ -215,7 +215,7 @@ bfextu CMDREG2B(%a6){#6:#3},%d1 |get 2nd dest cmpb %d0,%d1 |cmp 1st dest with 2nd dest beqs op0_xu |if equal, continue bugfix - bfextu CMDREG1B(%a6){#3:#3},%d0 |get 1st src + bfextu CMDREG1B(%a6){#3:#3},%d0 |get 1st src cmpb %d0,%d1 |cmp 1st src with 2nd dest beq op0_xu bne fix_done |if the reg checks fail, exit @@ -245,7 +245,7 @@ | | We have the case in which a conflict exists between the cu src or -| dest and the dest of the xu. We must clear the instruction in +| dest and the dest of the xu. We must clear the instruction in | the cu and restore the state, allowing the instruction in the | xu to complete. Remember, the instruction in the nu | was exceptional, and was completed by the appropriate handler. @@ -255,7 +255,7 @@ | exceptional, we choose to kill the process. | | Items saved from the stack: -| +| | $3c stag - L_SCR1 | $40 cmdreg1b - L_SCR2 | $44 dtag - L_SCR3 @@ -264,8 +264,8 @@ | fpu. | op0_xu: - movel STAG(%a6),L_SCR1(%a6) - movel CMDREG1B(%a6),L_SCR2(%a6) + movel STAG(%a6),L_SCR1(%a6) + movel CMDREG1B(%a6),L_SCR2(%a6) movel DTAG(%a6),L_SCR3(%a6) andil #0xe0000000,L_SCR3(%a6) moveb #0,CU_SAVEPC(%a6) @@ -274,13 +274,13 @@ fsave -(%a7) | | Check if the instruction which just completed was exceptional. -| +| cmpw #0x4060,(%a7) beq op0_xb -| +| | It is necessary to isolate the result of the instruction in the | xu if it is to fp0 - fp3 and write that value to the USER_FPn -| locations on the stack. The correct destination register is in +| locations on the stack. The correct destination register is in | cmdreg2b. | bfextu CMDREG2B(%a6){#6:#3},%d0 |get dest register no @@ -339,7 +339,7 @@ | | The frame returned is busy. It is not possible to reconstruct -| the code sequence to allow completion. We will jump to +| the code sequence to allow completion. We will jump to | fpsp_fmt_error and allow the kernel to kill the process. | op0_xb: @@ -354,20 +354,20 @@ cmpiw #0x4400,%d0 |test for opclass 2 and size=sgl bne fix_done |if not, it is not bug 1238 | -| Check for cu dest equal to nu dest or equal to xu dest, with +| Check for cu dest equal to nu dest or equal to xu dest, with | a cu and nu conflict taking priority an nu conflict. If either, | go and fix the bug condition. Otherwise, exit. | - bfextu CMDREG1B(%a6){#6:#3},%d0 |get 1st dest + bfextu CMDREG1B(%a6){#6:#3},%d0 |get 1st dest bfextu CMDREG3B(%a6){#6:#3},%d1 |get 3rd dest cmpb %d0,%d1 |cmp 1st dest with 3rd dest beq op2_com |if equal, continue bugfix - bfextu CMDREG2B(%a6){#6:#3},%d1 |get 2nd dest + bfextu CMDREG2B(%a6){#6:#3},%d1 |get 2nd dest cmpb %d0,%d1 |cmp 1st dest with 2nd dest bne fix_done |if the reg checks fail, exit | | We have the case in which a conflict exists between the cu src or -| dest and the dest of the xu. We must clear the instruction in +| dest and the dest of the xu. We must clear the instruction in | the cu and restore the state, allowing the instruction in the | xu to complete. Remember, the instruction in the nu | was exceptional, and was completed by the appropriate handler. @@ -377,7 +377,7 @@ | exceptional, we choose to kill the process. | | Items saved from the stack: -| +| | $3c stag - L_SCR1 | $40 cmdreg1b - L_SCR2 | $44 dtag - L_SCR3 @@ -387,9 +387,9 @@ | fpu. | op2_xu: - movel STAG(%a6),L_SCR1(%a6) - movel CMDREG1B(%a6),L_SCR2(%a6) - movel DTAG(%a6),L_SCR3(%a6) + movel STAG(%a6),L_SCR1(%a6) + movel CMDREG1B(%a6),L_SCR2(%a6) + movel DTAG(%a6),L_SCR3(%a6) andil #0xe0000000,L_SCR3(%a6) moveb #0,CU_SAVEPC(%a6) movel ETEMP(%a6),FP_SCR2(%a6) @@ -400,13 +400,13 @@ fsave -(%a7) | | Check if the instruction which just completed was exceptional. -| +| cmpw #0x4060,(%a7) beq op2_xb -| +| | It is necessary to isolate the result of the instruction in the | xu if it is to fp0 - fp3 and write that value to the USER_FPn -| locations on the stack. The correct destination register is in +| locations on the stack. The correct destination register is in | cmdreg2b. | bfextu CMDREG2B(%a6){#6:#3},%d0 |get dest register no @@ -459,12 +459,12 @@ bnes case2 movew #0x43FF,ETEMP_EX(%a6) |to double +max bra finish -case2: +case2: cmpw #0xC07F,ETEMP_EX(%a6) |single -max bnes case3 movew #0xC3FF,ETEMP_EX(%a6) |to double -max bra finish -case3: +case3: cmpw #0x3F80,ETEMP_EX(%a6) |single +min bnes case4 movew #0x3C00,ETEMP_EX(%a6) |to double +min @@ -480,7 +480,7 @@ | an fline illegal instruction to be executed. | | You should replace the jump to fpsp_fmt_error with a jump -| to the entry point used to kill a process. +| to the entry point used to kill a process. | op2_xb: jmp fpsp_fmt_error diff -Nru a/arch/m68k/fpsp040/decbin.S b/arch/m68k/fpsp040/decbin.S --- a/arch/m68k/fpsp040/decbin.S Tue May 18 23:38:08 2004 +++ b/arch/m68k/fpsp040/decbin.S Tue May 18 23:38:08 2004 @@ -60,17 +60,17 @@ | it is negative. | | Clean up and return. Check if the final mul or div resulted -| in an inex2 exception. If so, set inex1 in the fpsr and +| in an inex2 exception. If so, set inex1 in the fpsr and | check if the inex1 exception is enabled. If so, set d7 upper | word to $0100. This will signal unimp.sa that an enabled inex1 | exception occurred. Unimp will fix the stack. -| +| | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |DECBIN idnt 2,1 | Motorola 040 Floating Point Software Package @@ -107,12 +107,12 @@ .set FSTRT,0 | .set ESTRT,4 - .set EDIGITS,2 | + .set EDIGITS,2 | | | Constants in single precision -FZERO: .long 0x00000000 -FONE: .long 0x3F800000 -FTEN: .long 0x41200000 +FZERO: .long 0x00000000 +FONE: .long 0x3F800000 +FTEN: .long 0x41200000 .set TEN,10 @@ -224,7 +224,7 @@ addql #1,%d1 |inc lw pointer in mantissa cmpl #2,%d1 |test for last lw ble loadlw |if not, get last one - + | | Check the sign of the mant and make the value in fp0 the same sign. | @@ -232,7 +232,7 @@ btst #31,(%a0) |test sign of the mantissa beq ap_st_z |if clear, go to append/strip zeros fnegx %fp0 |if set, negate fp0 - + | | Append/strip zeros: | @@ -407,7 +407,7 @@ | | Pwrten calculates the exponent factor in the selected rounding mode | according to the following table: -| +| | Sign of Mant Sign of Exp Rounding Mode PWRTEN Rounding Mode | | ANY ANY RN RN @@ -495,7 +495,7 @@ | it will be inex2, but will be reported as inex1 by get_op. | end_dec: - fmovel %FPSR,%d0 |get status register + fmovel %FPSR,%d0 |get status register bclrl #inex2_bit+8,%d0 |test for inex2 and clear it fmovel %d0,%FPSR |return status reg w/o inex2 beqs no_exc |skip this if no exc diff -Nru a/arch/m68k/fpsp040/do_func.S b/arch/m68k/fpsp040/do_func.S --- a/arch/m68k/fpsp040/do_func.S Tue May 18 23:38:08 2004 +++ b/arch/m68k/fpsp040/do_func.S Tue May 18 23:38:08 2004 @@ -4,11 +4,11 @@ | Do_func performs the unimplemented operation. The operation | to be performed is determined from the lower 7 bits of the | extension word (except in the case of fmovecr and fsincos). -| The opcode and tag bits form an index into a jump table in -| tbldo.sa. Cases of zero, infinity and NaN are handled in +| The opcode and tag bits form an index into a jump table in +| tbldo.sa. Cases of zero, infinity and NaN are handled in | do_func by forcing the default result. Normalized and | denormalized (there are no unnormalized numbers at this -| point) are passed onto the emulation code. +| point) are passed onto the emulation code. | | CMDREG1B and STAG are extracted from the fsave frame | and combined to form the table index. The function called @@ -22,8 +22,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. DO_FUNC: |idnt 2,1 | Motorola 040 Floating Point Software Package @@ -35,7 +35,7 @@ |xref t_dz2 |xref t_operr |xref t_inx2 - |xref t_resdnrm + |xref t_resdnrm |xref dst_nan |xref src_nan |xref nrm_set @@ -68,7 +68,7 @@ | directly. | bfextu CMDREG1B(%a6){#0:#6},%d0 |get opclass and src fields - cmpil #0x17,%d0 |if op class and size fields are $17, + cmpil #0x17,%d0 |if op class and size fields are $17, | ;it is FMOVECR; if not, continue bnes not_fmovecr jmp smovcr |fmovecr; jmp directly to emulation @@ -76,7 +76,7 @@ not_fmovecr: movew CMDREG1B(%a6),%d0 andl #0x7F,%d0 - cmpil #0x38,%d0 |if the extension is >= $38, + cmpil #0x38,%d0 |if the extension is >= $38, bge serror |it is illegal bfextu STAG(%a6){#0:#3},%d1 lsll #3,%d0 |make room for STAG @@ -111,7 +111,7 @@ bsr ld_mzero |if neg, load neg zero, return here bra t_inx2 |now, set the inx for the next inst | -| Load a signed zero to fp0; do not set inex2/ainex +| Load a signed zero to fp0; do not set inex2/ainex | .global szero szero: @@ -119,7 +119,7 @@ bne ld_mzero |if neg, load neg zero bra ld_pzero |load positive zero | -| Load a signed infinity to fp0; do not set inex2/ainex +| Load a signed infinity to fp0; do not set inex2/ainex | .global sinf sinf: @@ -127,7 +127,7 @@ bne ld_minf |if negative branch bra ld_pinf | -| Load a signed one to fp0; do not set inex2/ainex +| Load a signed one to fp0; do not set inex2/ainex | .global sone sone: @@ -135,7 +135,7 @@ bne ld_mone bra ld_pone | -| Load a signed pi/2 to fp0; do not set inex2/ainex +| Load a signed pi/2 to fp0; do not set inex2/ainex | .global spi_2 spi_2: @@ -160,13 +160,13 @@ bne t_operr bra ld_pinf | -| FLOGNP1 +| FLOGNP1 | .global sslognp1 sslognp1: fmovemx (%a0),%fp0-%fp0 fcmpb #-1,%fp0 - fbgt slognp1 + fbgt slognp1 fbeq t_dz2 |if = -1, divide by zero exception fmovel #0,%FPSR |clr N flag bra t_operr |take care of operands < -1 @@ -186,7 +186,7 @@ | .global sslogn sslogn: - btstb #sign_bit,LOCAL_EX(%a0) + btstb #sign_bit,LOCAL_EX(%a0) bne t_operr |take care of operands < 0 cmpiw #0x3fff,LOCAL_EX(%a0) |test for 1.0 input bne slogn @@ -199,7 +199,7 @@ .global sslognd sslognd: - btstb #sign_bit,LOCAL_EX(%a0) + btstb #sign_bit,LOCAL_EX(%a0) beq slognd bra t_operr |take care of operands < 0 @@ -221,7 +221,7 @@ .global sslog10d sslog10d: - btstb #sign_bit,LOCAL_EX(%a0) + btstb #sign_bit,LOCAL_EX(%a0) beq slog10d bra t_operr |take care of operands < 0 @@ -243,7 +243,7 @@ .global sslog2d sslog2d: - btstb #sign_bit,LOCAL_EX(%a0) + btstb #sign_bit,LOCAL_EX(%a0) beq slog2d bra t_operr |take care of operands < 0 @@ -310,7 +310,7 @@ btstl #7,%d0 |test if + or - beq ld_pzero |if pos then load +0 bra ld_mzero |else neg load -0 - + smod_fpn: moveb ETEMP(%a6),%d1 |get sign of src op moveb FPTEMP(%a6),%d0 |get sign of dst op @@ -327,7 +327,7 @@ fmovel USER_FPCR(%a6),%fpcr |use user's rmode and precision fmovex FPTEMP(%a6),%fp0 |return dest to fp0 rts - + | | FREM | @@ -372,7 +372,7 @@ lea premt,%a1 movel (%a1,%d1.w*4),%a1 jmp (%a1) - + srem_snan: bra src_nan srem_dnan: @@ -390,7 +390,7 @@ btstl #7,%d0 |test if + or - beq ld_pzero |if pos then load +0 bra ld_mzero |else neg load -0 - + srem_fpn: moveb ETEMP(%a6),%d1 |get sign of src op moveb FPTEMP(%a6),%d0 |get sign of dst op @@ -424,10 +424,10 @@ .long scl_inf | 10,00 inf,norm = +-inf .long scl_inf | 10,01 inf,zero = +-inf .long scl_opr | 10,10 inf,inf = nan with operr - .long scl_snan | 10,11 inf,nan = nan - .long scl_dnan | 11,00 nan,norm = nan - .long scl_dnan | 11,01 nan,zero = nan - .long scl_dnan | 11,10 nan,inf = nan + .long scl_snan | 10,11 inf,nan = nan + .long scl_dnan | 11,00 nan,norm = nan + .long scl_dnan | 11,01 nan,zero = nan + .long scl_dnan | 11,10 nan,inf = nan .long scl_dnan | 11,11 nan,nan = nan .global pscale @@ -478,7 +478,7 @@ sincosp: fmovex PZERO,%fp0 sincoscom: - fmovemx PONE,%fp1-%fp1 |do not allow FPSR to be affected + fmovemx PONE,%fp1-%fp1 |do not allow FPSR to be affected bra sto_cos |store cosine result .global ssincosi @@ -498,7 +498,7 @@ bsr sto_cos bra src_nan | -| This code forces default values for the zero, inf, and nan cases +| This code forces default values for the zero, inf, and nan cases | in the transcendentals code. The CC bits must be set in the | stacked FPSR to be correctly reported. | diff -Nru a/arch/m68k/fpsp040/fpsp.h b/arch/m68k/fpsp040/fpsp.h --- a/arch/m68k/fpsp040/fpsp.h Tue May 18 23:38:08 2004 +++ b/arch/m68k/fpsp040/fpsp.h Tue May 18 23:38:08 2004 @@ -5,15 +5,15 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. | fpsp.h --- stack frame offsets during FPSP exception handling | | These equates are used to access the exception frame, the fsave | frame and any local variables needed by the FPSP package. -| +| | All FPSP handlers begin by executing: | | link a6,#-LOCAL_SIZE @@ -90,13 +90,13 @@ .set USER_FP2,LV+40 | saved user FP2 .set USER_FP3,LV+52 | saved user FP3 .set USER_FPCR,LV+64 | saved user FPCR - .set FPCR_ENABLE,USER_FPCR+2 | FPCR exception enable - .set FPCR_MODE,USER_FPCR+3 | FPCR rounding mode control + .set FPCR_ENABLE,USER_FPCR+2 | FPCR exception enable + .set FPCR_MODE,USER_FPCR+3 | FPCR rounding mode control .set USER_FPSR,LV+68 | saved user FPSR - .set FPSR_CC,USER_FPSR+0 | FPSR condition code - .set FPSR_QBYTE,USER_FPSR+1 | FPSR quotient - .set FPSR_EXCEPT,USER_FPSR+2 | FPSR exception - .set FPSR_AEXCEPT,USER_FPSR+3 | FPSR accrued exception + .set FPSR_CC,USER_FPSR+0 | FPSR condition code + .set FPSR_QBYTE,USER_FPSR+1 | FPSR quotient + .set FPSR_EXCEPT,USER_FPSR+2 | FPSR exception + .set FPSR_AEXCEPT,USER_FPSR+3 | FPSR accrued exception .set USER_FPIAR,LV+72 | saved user FPIAR .set FP_SCR1,LV+76 | room for a temporary float value .set FP_SCR2,LV+92 | room for a temporary float value @@ -143,8 +143,8 @@ .set CMDREG3B,LV-48 | cmd reg for E3 exceptions (2 bytes) | .set NMNEXC,LV-44 | NMNEXC (unsup,snan bits only) - .set nmn_unsup_bit,1 | - .set nmn_snan_bit,0 | + .set nmn_unsup_bit,1 | + .set nmn_snan_bit,0 | | .set NMCEXC,LV-43 | NMNEXC & NMCEXC .set nmn_operr_bit,7 @@ -249,7 +249,7 @@ .set inf_mask,0x02000000 .set nan_mask,0x01000000 | - .set bsun_mask,0x00008000 | + .set bsun_mask,0x00008000 | .set snan_mask,0x00004000 .set operr_mask,0x00002000 .set ovfl_mask,0x00001000 @@ -268,7 +268,7 @@ | .set dzinf_mask,inf_mask+dz_mask+adz_mask .set opnan_mask,nan_mask+operr_mask+aiop_mask - .set nzi_mask,0x01ffffff | clears N, Z, and I + .set nzi_mask,0x01ffffff | clears N, Z, and I .set unfinx_mask,unfl_mask+inex2_mask+aunfl_mask+ainex_mask .set unf2inx_mask,unfl_mask+inex2_mask+ainex_mask .set ovfinx_mask,ovfl_mask+inex2_mask+aovfl_mask+ainex_mask diff -Nru a/arch/m68k/fpsp040/gen_except.S b/arch/m68k/fpsp040/gen_except.S --- a/arch/m68k/fpsp040/gen_except.S Tue May 18 23:38:06 2004 +++ b/arch/m68k/fpsp040/gen_except.S Tue May 18 23:38:06 2004 @@ -2,10 +2,10 @@ | gen_except.sa 3.7 1/16/92 | | gen_except --- FPSP routine to detect reportable exceptions -| +| | This routine compares the exception enable byte of the | user_fpcr on the stack with the exception status byte -| of the user_fpsr. +| of the user_fpsr. | | Any routine which may report an exceptions must load | the stack frame in memory with the exceptional operand(s). @@ -23,14 +23,14 @@ | | Note: The IEEE standard specifies that inex2 is to be | reported if ovfl occurs and the ovfl enable bit is not -| set but the inex2 enable bit is. +| set but the inex2 enable bit is. | | | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. GEN_EXCEPT: |idnt 2,1 | Motorola 040 Floating Point Software Package @@ -70,12 +70,12 @@ | movel ETEMP_EX(%a6),ETEMP_EX(%a1) |copy etemp from unimp movel ETEMP_HI(%a6),ETEMP_HI(%a1) |frame to busy frame - movel ETEMP_LO(%a6),ETEMP_LO(%a1) + movel ETEMP_LO(%a6),ETEMP_LO(%a1) movel CMDREG1B(%a6),CMDREG1B(%a1) |set inst in frame to unimp movel CMDREG1B(%a6),%d0 |fix cmd1b to make it andl #0x03c30000,%d0 |work for cmd3b bfextu CMDREG1B(%a6){#13:#1},%d1 |extract bit 2 - lsll #5,%d1 + lsll #5,%d1 swap %d1 orl %d1,%d0 |put it in the right place bfextu CMDREG1B(%a6){#10:#3},%d1 |extract bit 3,4,5 @@ -86,7 +86,7 @@ | | Or in the FPSR from the emulation with the USER_FPSR on the stack. | - fmovel %FPSR,%d0 + fmovel %FPSR,%d0 orl %d0,USER_FPSR(%a6) movel USER_FPSR(%a6),FPSR_SHADOW(%a1) |set exc bits orl #sx_mask,E_BYTE(%a1) @@ -108,7 +108,7 @@ cmpib #UNIMP_41_SIZE-4,1(%a7) |test for rev unimp frame bnel fpsp_fmt_error |if not $28 or $30 leal UNIMP_41_SIZE+LOCAL_SIZE(%a7),%a1 - + unimp_con: | | Fix up the new unimp frame with entries from the old unimp frame @@ -117,23 +117,23 @@ | | Or in the FPSR from the emulation with the USER_FPSR on the stack. | - fmovel %FPSR,%d0 + fmovel %FPSR,%d0 orl %d0,USER_FPSR(%a6) bra do_clean | | Frame is idle, so check for exceptions reported through -| USER_FPSR and set the unimp frame accordingly. +| USER_FPSR and set the unimp frame accordingly. | A7 must be incremented to the point before the | idle fsave vector to the unimp vector. | - + do_check: addl #4,%a7 |point A7 back to unimp frame | | Or in the FPSR from the emulation with the USER_FPSR on the stack. | - fmovel %FPSR,%d0 + fmovel %FPSR,%d0 orl %d0,USER_FPSR(%a6) | | On a busy frame, we must clear the nmnexc bits. @@ -165,10 +165,10 @@ bsun_exc: bra do_clean | -| The typical work to be done to the unimp frame to report an +| The typical work to be done to the unimp frame to report an | exception is to set the E1/E3 byte and clr the U flag. -| commonE1 does this for E1 exceptions, which are snan, -| operr, and dz. commonE3 does this for E3 exceptions, which +| commonE1 does this for E1 exceptions, which are snan, +| operr, and dz. commonE3 does this for E3 exceptions, which | are inex2 and inex1, and also clears the E1 exception bit | left over from the unimp exception. | @@ -186,7 +186,7 @@ unsE3: tstb RES_FLG(%a6) - bnes unsE3_0 + bnes unsE3_0 unsE3_1: bsetb #E3,E_BYTE(%a6) |set E3 flag unsE3_0: @@ -194,7 +194,7 @@ movel CMDREG1B(%a6),%d0 andl #0x03c30000,%d0 |work for cmd3b bfextu CMDREG1B(%a6){#13:#1},%d1 |extract bit 2 - lsll #5,%d1 + lsll #5,%d1 swap %d1 orl %d1,%d0 |put it in the right place bfextu CMDREG1B(%a6){#10:#3},%d1 |extract bit 3,4,5 @@ -218,8 +218,8 @@ beqs no_exc |if clear, exit bras ovfl_unfl |go to unfl_ovfl to determine if | ;it is an unsupp or unimp exc - -| No exceptions are to be reported. If the instruction was + +| No exceptions are to be reported. If the instruction was | unimplemented, no FPU restore is necessary. If it was | unsupported, we must perform the restore. no_exc: @@ -227,7 +227,7 @@ beqs uni_no_exc uns_no_exc: tstb RES_FLG(%a6) |check if frestore is needed - bne do_clean |if clear, no frestore needed + bne do_clean |if clear, no frestore needed uni_no_exc: moveml USER_DA(%a6),%d0-%d1/%a0-%a1 fmovemx USER_FP0(%a6),%fp0-%fp3 @@ -243,13 +243,13 @@ | | Unimplemented Instruction Handler: | Ovfl: -| Only scosh, setox, ssinh, stwotox, and scale can set overflow in +| Only scosh, setox, ssinh, stwotox, and scale can set overflow in | this manner. | Unfl: | Stwotox, setox, and scale can set underflow in this manner. | Any of the other Library Routines such that f(x)=x in which -| x is an extended denorm can report an underflow exception. -| It is the responsibility of the exception-causing exception +| x is an extended denorm can report an underflow exception. +| It is the responsibility of the exception-causing exception | to make sure that WBTEMP is correct. | | The exceptional operand is in FP_SCR1. @@ -306,7 +306,7 @@ movel CMDREG1B(%a6),%d0 |fix cmd1b to make it andl #0x03c30000,%d0 |work for cmd3b bfextu CMDREG1B(%a6){#13:#1},%d1 |extract bit 2 - lsll #5,%d1 + lsll #5,%d1 swap %d1 orl %d1,%d0 |put it in the right place bfextu CMDREG1B(%a6){#10:#3},%d1 |extract bit 3,4,5 @@ -318,10 +318,10 @@ | | Check if the frame to be restored is busy or unimp. |** NOTE *** Bug fix for errata (0d43b #3) -| If the frame is unimp, we must create a busy frame to +| If the frame is unimp, we must create a busy frame to | fix the bug with the nmnexc bits in cases in which they | are set by a previous instruction and not cleared by -| the save. The frame will be unimp only if the final +| the save. The frame will be unimp only if the final | instruction in an emulation routine caused the exception | by doing an fmove ,fp0. The exception operand, in | internal format, is in fptemp. @@ -353,7 +353,7 @@ leal BUSY_SIZE+LOCAL_SIZE(%a7),%a1 |init a1 for new frame moveb VER_TMP(%a6),(%a7) |write busy fmt word moveb #BUSY_SIZE-4,1(%a7) - movel FP_SCR1(%a6),WBTEMP_EX(%a1) |write + movel FP_SCR1(%a6),WBTEMP_EX(%a1) |write movel FP_SCR1+4(%a6),WBTEMP_HI(%a1) |exceptional op to movel FP_SCR1+8(%a6),WBTEMP_LO(%a1) |wbtemp | btst.b #E1,E_BYTE(%a1) @@ -362,7 +362,7 @@ bfins %d0,NMCEXC(%a1){#4:#4} |and insert them in nmcexc movel USER_FPSR(%a6),FPSR_SHADOW(%a1) |set exc bits orl #sx_mask,E_BYTE(%a1) - + do_restore: moveml USER_DA(%a6),%d0-%d1/%a0-%a1 fmovemx USER_FP0(%a6),%fp0-%fp3 @@ -374,10 +374,10 @@ cont: unlk %a6 | -| If trace mode enabled, then go to trace handler. This handler -| cannot have any fp instructions. If there are fp inst's and an -| exception has been restored into the machine then the exception -| will occur upon execution of the fp inst. This is not desirable +| If trace mode enabled, then go to trace handler. This handler +| cannot have any fp instructions. If there are fp inst's and an +| exception has been restored into the machine then the exception +| will occur upon execution of the fp inst. This is not desirable | in the kernel (supervisor mode). See MC68040 manual Section 9.3.8. | finish_up: @@ -436,12 +436,12 @@ movel USER_D1(%a6),%d1 | restore d1 movel #0x40280000,-(%sp) frestore (%sp)+ - unlk %a5 + unlk %a5 rts frame_41: tstb 1(%sp) | check to see if idle - bne notidle + bne notidle idle41: clrl (%sp) | get rid of old fsave frame movel %d1,USER_D1(%a6) | save d1 @@ -451,18 +451,18 @@ movel USER_D1(%a6),%d1 | restore d1 movel #0x41300000,-(%sp) frestore (%sp)+ - unlk %a5 + unlk %a5 rts notidle: - bclrb #etemp15_bit,-40(%a5) + bclrb #etemp15_bit,-40(%a5) frestore (%sp)+ - unlk %a5 + unlk %a5 rts nofix: frestore (%sp)+ - unlk %a5 + unlk %a5 rts |end diff -Nru a/arch/m68k/fpsp040/get_op.S b/arch/m68k/fpsp040/get_op.S --- a/arch/m68k/fpsp040/get_op.S Tue May 18 23:38:06 2004 +++ b/arch/m68k/fpsp040/get_op.S Tue May 18 23:38:06 2004 @@ -16,7 +16,7 @@ | | - For unnormalized numbers (opclass 0, 2, or 3) the | number(s) is normalized and the operand type tag is updated. -| +| | - For a packed number (opclass 2) the number is unpacked and the | operand type tag is updated. | @@ -41,7 +41,7 @@ | the '040. The '040 then re-executes the fadd.x fpm,fpn with | a normalized number in the source and the instruction is | successful. -| +| | Next consider if in the process of normalizing the un- | normalized number it becomes a denormalized number. The | routine which converts the unnorm to a norm (called mk_norm) @@ -54,8 +54,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. GET_OP: |idnt 2,1 | Motorola 040 Floating Point Software Package @@ -194,7 +194,7 @@ uni_getop: bfextu CMDREG1B(%a6){#0:#6},%d0 |get opclass and src fields - cmpil #0x17,%d0 |if op class and size fields are $17, + cmpil #0x17,%d0 |if op class and size fields are $17, | ;it is FMOVECR; if not, continue | | If the instruction is fmovecr, exit get_op. It is handled @@ -226,21 +226,21 @@ movew FPTEMP_EX(%a6),%d0 |get destination exponent andiw #0x7fff,%d0 |mask sign, check if exp = 0000 beqs src_op_ck |if denorm then check source op. -| ;denorms are taken care of in res_func +| ;denorms are taken care of in res_func | ;(unsupp) or do_func (unimp) | ;else unnorm fall through leal FPTEMP(%a6),%a0 |point a0 to dop - used in mk_norm bsr mk_norm |go normalize - mk_norm returns: -| ;L_SCR1{7:5} = operand tag +| ;L_SCR1{7:5} = operand tag | ; (000 = norm, 100 = denorm) -| ;L_SCR1{4} = fpte15 or ete15 +| ;L_SCR1{4} = fpte15 or ete15 | ; 0 = exp > $3fff | ; 1 = exp <= $3fff -| ;and puts the normalized num back +| ;and puts the normalized num back | ;on the fsave stack | - moveb L_SCR1(%a6),DTAG(%a6) |write the new tag & fpte15 -| ;to the fsave stack and fall + moveb L_SCR1(%a6),DTAG(%a6) |write the new tag & fpte15 +| ;to the fsave stack and fall | ;through to check source operand | src_op_ck: @@ -255,19 +255,19 @@ src_ex_dnrm: movew ETEMP_EX(%a6),%d0 |get source exponent andiw #0x7fff,%d0 |mask sign, check if exp = 0000 - beq end_getop |if denorm then exit, denorms are + beq end_getop |if denorm then exit, denorms are | ;handled in do_func leal ETEMP(%a6),%a0 |point a0 to sop - used in mk_norm bsr mk_norm |go normalize - mk_norm returns: -| ;L_SCR1{7:5} = operand tag +| ;L_SCR1{7:5} = operand tag | ; (000 = norm, 100 = denorm) -| ;L_SCR1{4} = fpte15 or ete15 +| ;L_SCR1{4} = fpte15 or ete15 | ; 0 = exp > $3fff | ; 1 = exp <= $3fff -| ;and puts the normalized num back +| ;and puts the normalized num back | ;on the fsave stack | - moveb L_SCR1(%a6),STAG(%a6) |write the new tag & ete15 + moveb L_SCR1(%a6),STAG(%a6) |write the new tag & ete15 rts |end_getop | @@ -285,7 +285,7 @@ movew #0x3c01,%d1 |write the bias for a dbl denorm common: btstb #sign_bit,ETEMP_EX(%a6) |grab sign bit of mantissa - beqs pos + beqs pos bset #15,%d1 |set sign bit because it is negative pos: movew %d1,ETEMP_EX(%a6) @@ -297,7 +297,7 @@ movew %d1,CMDREG1B(%a6) |write back to the command word in stack | ;this is needed to fix unsupp data stack leal ETEMP(%a6),%a0 |point a0 to sop - + bsr mk_norm |convert sgl/dbl denorm to norm moveb L_SCR1(%a6),STAG(%a6) |put tag into source tag reg - d0 rts |end_getop @@ -306,7 +306,7 @@ | instruction is dyadic or monadic is still unknown | pack_source: - movel FPTEMP_LO(%a6),ETEMP(%a6) |write ms part of packed + movel FPTEMP_LO(%a6),ETEMP(%a6) |write ms part of packed | ;number to etemp slot bsr chk_dy_mo |set dyadic/monadic flag bsr unpack @@ -325,7 +325,7 @@ btstb #7,DTAG(%a6) |check dest tag for unnorm or denorm bne dst_ex_dnrm |else, handle the unnorm or ext denorm | -| Dest is not denormalized. Check for norm, and set fpte15 +| Dest is not denormalized. Check for norm, and set fpte15 | accordingly. | moveb DTAG(%a6),%d0 @@ -357,13 +357,13 @@ | unsupported data type exception. Set if dyadic. | chk_dy_mo: - movew CMDREG1B(%a6),%d0 + movew CMDREG1B(%a6),%d0 btstl #5,%d0 |testing extension command word beqs set_mon |if bit 5 = 0 then monadic btstl #4,%d0 |know that bit 5 = 1 beqs set_dya |if bit 4 = 0 then dyadic andiw #0x007f,%d0 |get rid of all but extension bits {6:0} - cmpiw #0x0038,%d0 |if extension = $38 then fcmp (dyadic) + cmpiw #0x0038,%d0 |if extension = $38 then fcmp (dyadic) bnes set_mon set_dya: st DY_MO_FLG(%a6) |set the inst flag type to dyadic @@ -406,7 +406,7 @@ | L_SCR1{7:5} = operand tag (000 = norm, 100 = denorm) | L_SCR1{4} = fpte15 or ete15 (0 = exp > $3fff, 1 = exp <=$3fff) | the normalized operand is placed back on the fsave stack -mk_norm: +mk_norm: clrl L_SCR1(%a6) bclrb #sign_bit,LOCAL_EX(%a0) sne LOCAL_SGN(%a0) |transform into internal extended format @@ -426,11 +426,11 @@ cmpw #0x3fff,LOCAL_EX(%a0) |if exp > $3fff bgts end_mk | fpte15/ete15 already set to 0 bsetb #4,L_SCR1(%a6) |else set fpte15/ete15 to 1 -| ;calling routine actually sets the -| ;value on the stack (along with the -| ;tag), since this routine doesn't +| ;calling routine actually sets the +| ;value on the stack (along with the +| ;tag), since this routine doesn't | ;know if it should set ete15 or fpte15 -| ;ie, it doesn't know if this is the +| ;ie, it doesn't know if this is the | ;src op or dest op. end_mk: bfclr LOCAL_SGN(%a0){#0:#8} @@ -455,7 +455,7 @@ | uns_opx: bsr nrm_zero |normalize the number - btstb #7,LOCAL_HI(%a0) |check if integer bit (j-bit) is set + btstb #7,LOCAL_HI(%a0) |check if integer bit (j-bit) is set beqs uns_den |if clear then now have a denorm uns_nrm: orb #norm_tag,L_SCR1(%a6) |set tag to norm @@ -468,7 +468,7 @@ | uni_inst: bsr nrm_zero - btstb #7,LOCAL_HI(%a0) |check if integer bit (j-bit) is set + btstb #7,LOCAL_HI(%a0) |check if integer bit (j-bit) is set beqs uni_den |if clear then now have a denorm uni_nrm: orb #norm_tag,L_SCR1(%a6) |set tag to norm @@ -480,9 +480,9 @@ | | Decimal to binary conversion | -| Special cases of inf and NaNs are completed outside of decbin. +| Special cases of inf and NaNs are completed outside of decbin. | If the input is an snan, the snan bit is not set. -| +| | input: | ETEMP(a6) - points to packed decimal string in memory | output: @@ -610,16 +610,16 @@ finish: movew CMDREG1B(%a6),%d0 |get the command word - andw #0xfbff,%d0 |change the source specifier field to + andw #0xfbff,%d0 |change the source specifier field to | ;extended (was packed). movew %d0,CMDREG1B(%a6) |write command word back to fsave stack -| ;we need to do this so the 040 will -| ;re-execute the inst. without taking +| ;we need to do this so the 040 will +| ;re-execute the inst. without taking | ;another packed trap. fix_stag: -|Converted result is now in etemp on fsave stack, now set the source -|tag (stag) +|Converted result is now in etemp on fsave stack, now set the source +|tag (stag) | if (ete =$7fff) then INF or NAN | if (etemp = $x.0----0) then | stag = INF @@ -632,12 +632,12 @@ | stag = NORM | | Note also that the etemp_15 bit (just right of the stag) must -| be set accordingly. +| be set accordingly. | movew ETEMP_EX(%a6),%d1 andiw #0x7fff,%d1 |strip sign - cmpw #0x7fff,%d1 - bnes z_or_nrm + cmpw #0x7fff,%d1 + bnes z_or_nrm movel ETEMP_HI(%a6),%d1 bnes is_nan movel ETEMP_LO(%a6),%d1 @@ -651,7 +651,7 @@ movel #0x60,%d0 rts z_or_nrm: - tstw %d1 + tstw %d1 bnes is_nrm is_zro: | For a zero, set etemp_15 @@ -670,7 +670,7 @@ movel #0,%d0 end_fix: rts - + end_get: rts |end diff -Nru a/arch/m68k/fpsp040/kernel_ex.S b/arch/m68k/fpsp040/kernel_ex.S --- a/arch/m68k/fpsp040/kernel_ex.S Tue May 18 23:38:08 2004 +++ b/arch/m68k/fpsp040/kernel_ex.S Tue May 18 23:38:08 2004 @@ -1,19 +1,19 @@ | -| kernel_ex.sa 3.3 12/19/90 +| kernel_ex.sa 3.3 12/19/90 | -| This file contains routines to force exception status in the +| This file contains routines to force exception status in the | fpu for exceptional cases detected or reported within the | transcendental functions. Typically, the t_xx routine will | set the appropriate bits in the USER_FPSR word on the stack. | The bits are tested in gen_except.sa to determine if an exceptional -| situation needs to be created on return from the FPSP. +| situation needs to be created on return from the FPSP. | | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. KERNEL_EX: |idnt 2,1 | Motorola 040 Floating Point Software Package @@ -31,7 +31,7 @@ |xref unf_sub |xref nrm_set - .global t_dz + .global t_dz .global t_dz2 .global t_operr .global t_unfl @@ -49,7 +49,7 @@ | | if dz trap disabled | store properly signed inf (use sign of etemp) into fp0 -| set FPSR exception status dz bit, condition code +| set FPSR exception status dz bit, condition code | inf bit, and accrued dz bit | return | frestore the frame into the machine (done by unimp_hd) @@ -61,7 +61,7 @@ | frestore the frame into the machine (done by unimp_hd) | | t_dz2 is used by monadic functions such as flogn (from do_func). -| t_dz is used by monadic functions such as satanh (from the +| t_dz is used by monadic functions such as satanh (from the | transcendental function). | t_dz2: @@ -104,10 +104,10 @@ | OPERR exception | | if (operr trap disabled) -| set FPSR exception status operr bit, condition code +| set FPSR exception status operr bit, condition code | nan bit; Store default NAN into fp0 | frestore the frame into the machine (done by unimp_hd) -| +| | else (operr trap enabled) | set FPSR exception status operr bit, accrued operr bit | set flag to disable sto_res from corrupting fp register @@ -159,13 +159,13 @@ unfl_dis: bfextu FPCR_MODE(%a6){#0:#2},%d0 |get round precision - + bclrb #sign_bit,LOCAL_EX(%a0) sne LOCAL_SGN(%a0) |convert to internal ext format bsr unf_sub |returns IEEE result at a0 | ;and sets FPSR_CC accordingly - + bfclr LOCAL_SGN(%a0){#0:#8} |convert back to IEEE ext format beqs unfl_fin @@ -175,7 +175,7 @@ unfl_fin: fmovemx (%a0),%fp0-%fp0 |store result in fp0 rts - + | | t_ovfl2 --- OVFL exception (without inex2 returned) @@ -280,7 +280,7 @@ | DST_NAN | | Determine if the destination nan is signalling or non-signalling, -| and set the FPSR bits accordingly. See the MC68040 User's Manual +| and set the FPSR bits accordingly. See the MC68040 User's Manual | section 3.2.2.5 NOT-A-NUMBERS. | dst_nan: @@ -288,7 +288,7 @@ beqs dst_pos |if clr, it was positive bsetb #neg_bit,FPSR_CC(%a6) |set N bit dst_pos: - btstb #signan_bit,FPTEMP_HI(%a6) |check if signalling + btstb #signan_bit,FPTEMP_HI(%a6) |check if signalling beqs dst_snan |branch if signalling fmovel %d1,%fpcr |restore user's rmode/prec @@ -300,14 +300,14 @@ andib #0xe0,%d0 cmpib #0x60,%d0 bnes no_snan - btstb #signan_bit,ETEMP_HI(%a6) |check if signalling + btstb #signan_bit,ETEMP_HI(%a6) |check if signalling bnes no_snan orl #snaniop_mask,USER_FPSR(%a6) |set NAN, SNAN, AIOP no_snan: - rts + rts dst_snan: - btstb #snan_bit,FPCR_ENABLE(%a6) |check if trap enabled + btstb #snan_bit,FPCR_ENABLE(%a6) |check if trap enabled beqs dst_dis |branch if disabled orb #nan_tag,DTAG(%a6) |set up dtag for nan @@ -316,9 +316,9 @@ rts dst_dis: - bsetb #signan_bit,FPTEMP_HI(%a6) |set SNAN bit in sop + bsetb #signan_bit,FPTEMP_HI(%a6) |set SNAN bit in sop fmovel %d1,%fpcr |restore user's rmode/prec - fmovex FPTEMP(%a6),%fp0 |load non-sign. nan + fmovex FPTEMP(%a6),%fp0 |load non-sign. nan orl #snaniop_mask,USER_FPSR(%a6) |set NAN, SNAN, AIOP rts @@ -326,7 +326,7 @@ | SRC_NAN | | Determine if the source nan is signalling or non-signalling, -| and set the FPSR bits accordingly. See the MC68040 User's Manual +| and set the FPSR bits accordingly. See the MC68040 User's Manual | section 3.2.2.5 NOT-A-NUMBERS. | src_nan: @@ -334,16 +334,16 @@ beqs src_pos |if clr, it was positive bsetb #neg_bit,FPSR_CC(%a6) |set N bit src_pos: - btstb #signan_bit,ETEMP_HI(%a6) |check if signalling + btstb #signan_bit,ETEMP_HI(%a6) |check if signalling beqs src_snan |branch if signalling fmovel %d1,%fpcr |restore user's rmode/prec fmovex ETEMP(%a6),%fp0 |return the non-signalling nan - rts + rts src_snan: - btstb #snan_bit,FPCR_ENABLE(%a6) |check if trap enabled + btstb #snan_bit,FPCR_ENABLE(%a6) |check if trap enabled beqs src_dis |branch if disabled - bsetb #signan_bit,ETEMP_HI(%a6) |set SNAN bit in sop + bsetb #signan_bit,ETEMP_HI(%a6) |set SNAN bit in sop orb #norm_tag,DTAG(%a6) |set up dtag for norm orb #nan_tag,STAG(%a6) |set up stag for nan st STORE_FLG(%a6) |do not store a result @@ -351,9 +351,9 @@ rts src_dis: - bsetb #signan_bit,ETEMP_HI(%a6) |set SNAN bit in sop + bsetb #signan_bit,ETEMP_HI(%a6) |set SNAN bit in sop fmovel %d1,%fpcr |restore user's rmode/prec - fmovex ETEMP(%a6),%fp0 |load non-sign. nan + fmovex ETEMP(%a6),%fp0 |load non-sign. nan orl #snaniop_mask,USER_FPSR(%a6) |set NAN, SNAN, AIOP rts @@ -367,7 +367,7 @@ bras xdnrm_con | | Entry point for scale with extended denorm. The function does -| not set inex2, aunfl, or ainex. +| not set inex2, aunfl, or ainex. | t_resdnrm: orl #unfl_mask,USER_FPSR(%a6) @@ -402,7 +402,7 @@ bfclr LOCAL_SGN(%a0){#0:#8} |change back to IEEE ext format beqs xdep bsetb #sign_bit,LOCAL_EX(%a0) -xdep: +xdep: bfclr STAG(%a6){#5:#3} |clear wbtm66,wbtm1,wbtm0 bsetb #wbtemp15_bit,WB_BYTE(%a6) |set wbtemp15 bclrb #sticky_bit,STICKY(%a6) |clear sticky bit @@ -439,7 +439,7 @@ | .global t_avoid_unsupp t_avoid_unsupp: - link %a2,#-LOCAL_SIZE |so that a2 fpsp.h negative + link %a2,#-LOCAL_SIZE |so that a2 fpsp.h negative | ;offsets may be used fsave -(%a7) tstb 1(%a7) |check if idle, exit if so diff -Nru a/arch/m68k/fpsp040/res_func.S b/arch/m68k/fpsp040/res_func.S --- a/arch/m68k/fpsp040/res_func.S Tue May 18 23:38:05 2004 +++ b/arch/m68k/fpsp040/res_func.S Tue May 18 23:38:05 2004 @@ -8,7 +8,7 @@ | (Exception vector 55). | | For packed move out (fmove.p fpm,) the operation is -| completed here; data is packed and moved to user memory. +| completed here; data is packed and moved to user memory. | The stack is restored to the 040 only in the case of a | reportable exception in the conversion. | @@ -16,8 +16,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. RES_FUNC: |idnt 2,1 | Motorola 040 Floating Point Software Package @@ -48,7 +48,7 @@ |xref t_unfl .global res_func - .global p_move + .global p_move res_func: clrb DNRM_FLG(%a6) @@ -100,7 +100,7 @@ movew CMDREG1B(%a6),%d0 |get command register andil #0x7f,%d0 |strip to only command word | -| At this point, fabs, fneg, fsmove, fdmove, ftst, fsqrt, fssqrt, and +| At this point, fabs, fneg, fsmove, fdmove, ftst, fsqrt, fssqrt, and | fdsqrt are possible. | For cases fabs, fneg, fsmove, and fdmove goto spos (do not normalize) | For cases fsqrt, fssqrt, and fdsqrt goto nrm_src (do normalize) @@ -143,7 +143,7 @@ rts cu_ntn: orl #nan_mask,USER_FPSR(%a6) - movel ETEMP_EX(%a6),FPTEMP_EX(%a6) |set up fptemp sign for + movel ETEMP_EX(%a6),FPTEMP_EX(%a6) |set up fptemp sign for | ;snan handler rts @@ -206,7 +206,7 @@ cu_nmrd: movel #2,%d0 |set up the size for denorm movew LOCAL_EX(%a0),%d1 |compare exponent to double threshold - andw #0x7fff,%d1 + andw #0x7fff,%d1 cmpw #0x3c01,%d1 bls cu_nunfl bfextu FPCR_MODE(%a6){#2:#2},%d1 |get rmode @@ -359,7 +359,7 @@ | ;write the new tag & ete15 to the fstack mon_dnrm: | -| At this point, check for the cases in which normalizing the +| At this point, check for the cases in which normalizing the | denorm produces incorrect results. | tstb DY_MO_FLG(%a6) |all cases of dyadic instructions would @@ -374,7 +374,7 @@ movew CMDREG1B(%a6),%d0 |get command register andil #0x7f,%d0 |strip to only command word | -| At this point, fabs, fneg, fsmove, fdmove, ftst, fsqrt, fssqrt, and +| At this point, fabs, fneg, fsmove, fdmove, ftst, fsqrt, fssqrt, and | fdsqrt are possible. | For cases fabs, fneg, fsmove, and fdmove goto spos (do not normalize) | For cases fsqrt, fssqrt, and fdsqrt goto nrm_src (do normalize) @@ -382,12 +382,12 @@ btstl #0,%d0 bnes nrm_src |weed out fsqrt instructions st CU_ONLY(%a6) |set cu-only inst flag - bra cu_dnrm |fmove, fabs, fneg, ftst + bra cu_dnrm |fmove, fabs, fneg, ftst | ;cases go to cu_dnrm nrm_src: bclrb #sign_bit,LOCAL_EX(%a0) sne LOCAL_SGN(%a0) - bsr nrm_set |normalize number (exponent will go + bsr nrm_set |normalize number (exponent will go | ; negative) bclrb #sign_bit,LOCAL_EX(%a0) |get rid of false sign @@ -413,7 +413,7 @@ | | cu_dnrm handles all cu-only instructions (fmove, fabs, fneg, and -| ftst) completely in software without an frestore to the 040. +| ftst) completely in software without an frestore to the 040. | cu_dnrm: st CU_ONLY(%a6) @@ -446,7 +446,7 @@ rts cu_dtn: orl #nan_mask,USER_FPSR(%a6) - movel ETEMP_EX(%a6),FPTEMP_EX(%a6) |set up fptemp sign for + movel ETEMP_EX(%a6),FPTEMP_EX(%a6) |set up fptemp sign for | ;snan handler rts cu_dtcz: @@ -525,7 +525,7 @@ bra cu_sndr |load single neg zero w/lsb | | The precision is extended, so the result in etemp is correct. -| Simply set unfl (not inex2 or aunfl) and write the result to +| Simply set unfl (not inex2 or aunfl) and write the result to | the correct fp register. cu_wrexd: orl #unfl_mask,USER_FPSR(%a6) @@ -597,7 +597,7 @@ orl #neg_mask,USER_FPSR(%a6) orl #unfinx_mask,USER_FPSR(%a6) bra wr_etemp - + | | This code checks for 16-bit overflow conditions on dyadic | operations which are not restorable into the floating-point @@ -613,7 +613,7 @@ | $ff for both ops denormalized | | The wrap-around condition occurs for add, sub, div, and cmp -| when +| when | | abs(dest_exp - src_exp) >= $8000 | @@ -627,7 +627,7 @@ | for this condition. The restore flag (RES_FLG) is left clear. | No frestore is done unless an exception is to be reported. | -| For fadd: +| For fadd: | if(sign_of(dest) != sign_of(src)) | replace exponent of src with $3fff (keep sign) | use fpu to perform dest+new_src (user's rmode and X) @@ -689,10 +689,10 @@ cmpiw #cmpcode,%d0 beq wrap_cmp | -| Inst is fdiv. +| Inst is fdiv. | wrap_div: - cmpb #0xff,DNRM_FLG(%a6) |if both ops denorm, + cmpb #0xff,DNRM_FLG(%a6) |if both ops denorm, beq fix_stk |restore to fpu | | One of the ops is denormalized. Test for wrap condition @@ -722,7 +722,7 @@ bra ck_in_com ckinf_nd: moveb DTAG(%a6),%d0 |check destination tag for inf or nan -ck_in_com: +ck_in_com: andib #0x60,%d0 |isolate tag bits cmpb #0x40,%d0 |is it inf? beq nan_or_inf |not wrap case @@ -755,7 +755,7 @@ beqs force_ovf st WBTEMP_SGN(%a6) | -| This code handles the case of the instruction resulting in +| This code handles the case of the instruction resulting in | an overflow condition. | force_ovf: @@ -777,7 +777,7 @@ bfextu FPCR_MODE(%a6){#0:#2},%d0 |inst not forced - use fpcr prec frcovf_rnd: -| The 881/882 does not set inex2 for the following case, so the +| The 881/882 does not set inex2 for the following case, so the | line is commented out to be compatible with 881/882 | tst.b %d0 | beq.b frcovf_x @@ -785,7 +785,7 @@ |frcovf_x: bsrl ovf_res |get correct result based on -| ;round precision/mode. This +| ;round precision/mode. This | ;sets FPSR_CC correctly | ;returns in external format bfclr WBTEMP_SGN(%a6){#0:#8} @@ -796,7 +796,7 @@ | Inst is fadd. | wrap_add: - cmpb #0xff,DNRM_FLG(%a6) |if both ops denorm, + cmpb #0xff,DNRM_FLG(%a6) |if both ops denorm, beq fix_stk |restore to fpu | | One of the ops is denormalized. Test for wrap condition @@ -964,14 +964,14 @@ | and aovfl, and clr the mantissa (incorrectly set by the | round routine.) | - orl #inf_mask+ovfl_inx_mask,USER_FPSR(%a6) + orl #inf_mask+ovfl_inx_mask,USER_FPSR(%a6) clrl 4(%a0) bra frcfpnr | | Inst is fsub. | wrap_sub: - cmpb #0xff,DNRM_FLG(%a6) |if both ops denorm, + cmpb #0xff,DNRM_FLG(%a6) |if both ops denorm, beq fix_stk |restore to fpu | | One of the ops is denormalized. Test for wrap condition @@ -1145,14 +1145,14 @@ | and aovfl, and clr the mantissa (incorrectly set by the | round routine.) | - orl #inf_mask+ovfl_inx_mask,USER_FPSR(%a6) + orl #inf_mask+ovfl_inx_mask,USER_FPSR(%a6) clrl 4(%a0) bra frcfpnr | | Inst is fcmp. | wrap_cmp: - cmpb #0xff,DNRM_FLG(%a6) |if both ops denorm, + cmpb #0xff,DNRM_FLG(%a6) |if both ops denorm, beq fix_stk |restore to fpu | | One of the ops is denormalized. Test for wrap condition @@ -1190,7 +1190,7 @@ | Inst is fmul. | wrap_mul: - cmpb #0xff,DNRM_FLG(%a6) |if both ops denorm, + cmpb #0xff,DNRM_FLG(%a6) |if both ops denorm, beq force_unf |force an underflow (really!) | | One of the ops is denormalized. Test for wrap condition @@ -1213,9 +1213,9 @@ bfexts ETEMP_EX(%a6){#1:#15},%d1 |get src exp (always neg) addl %d1,%d0 |subtract src from dest bgt fix_stk - + | -| This code handles the case of the instruction resulting in +| This code handles the case of the instruction resulting in | an underflow condition. | force_unf: @@ -1245,7 +1245,7 @@ bfextu FPCR_MODE(%a6){#0:#2},%d0 |inst not forced - use fpcr prec frcunf_rnd: bsrl unf_sub |get correct result based on -| ;round precision/mode. This +| ;round precision/mode. This | ;sets FPSR_CC correctly bfclr WBTEMP_SGN(%a6){#0:#8} |convert back to IEEE ext format beqs frcfpn @@ -1277,14 +1277,14 @@ bclrb #sign_bit,WBTEMP_EX(%a6) sne WBTEMP_SGN(%a6) bsrl ovf_res |get correct result based on -| ;round precision/mode. This +| ;round precision/mode. This | ;sets FPSR_CC correctly bfclr WBTEMP_SGN(%a6){#0:#8} |convert back to IEEE ext format beqs frcfpn_clr bsetb #sign_bit,WBTEMP_EX(%a6) frcfpn_clr: orl #ovfinx_mask,USER_FPSR(%a6) -| +| | Perform the write. | frcfpn: @@ -1301,9 +1301,9 @@ cmpib #0,%d0 beqs frc0_dst cmpib #1,%d0 - beqs frc1_dst + beqs frc1_dst cmpib #2,%d0 - beqs frc2_dst + beqs frc2_dst frc3_dst: movel WBTEMP_EX(%a6),USER_FP3(%a6) movel WBTEMP_HI(%a6),USER_FP3+4(%a6) @@ -1337,7 +1337,7 @@ beqs fmoveinc |enabled, force restore btstb #snan_bit,FPCR_ENABLE(%a6) |and don't overwrite beqs fmoveinc |the dest - movel ETEMP_EX(%a6),FPTEMP_EX(%a6) |set up fptemp sign for + movel ETEMP_EX(%a6),FPTEMP_EX(%a6) |set up fptemp sign for | ;snan handler tstb ETEMP(%a6) |check for negative blts snan_neg @@ -1361,7 +1361,7 @@ cmpib #0x60,%d0 |check if stag is NaN bnes fminc_czero orl #nan_mask,USER_FPSR(%a6) |if nan, nothing yet has set NaN - movel ETEMP_EX(%a6),FPTEMP_EX(%a6) |set up fptemp sign for + movel ETEMP_EX(%a6),FPTEMP_EX(%a6) |set up fptemp sign for | ;snan handler tstw LOCAL_EX(%a0) |check sign bges fminc_con @@ -1389,9 +1389,9 @@ cmpib #0,%d0 beqs fp0_dst cmpib #1,%d0 - beqs fp1_dst + beqs fp1_dst cmpib #2,%d0 - beqs fp2_dst + beqs fp2_dst fp3_dst: movel ETEMP_EX(%a6),USER_FP3(%a6) movel ETEMP_HI(%a6),USER_FP3+4(%a6) @@ -1421,20 +1421,20 @@ beq pack_out |else it is norm or denorm bra mv_out - + | | MOVE OUT | mv_tbl: .long li - .long sgp - .long xp - .long mvout_end |should never be taken - .long wi - .long dp - .long bi - .long mvout_end |should never be taken + .long sgp + .long xp + .long mvout_end |should never be taken + .long wi + .long dp + .long bi + .long mvout_end |should never be taken mv_out: bfextu CMDREG1B(%a6){#3:#3},%d1 |put source specifier in d1 leal mv_tbl,%a0 @@ -1442,7 +1442,7 @@ jmp (%a0) | -| This exit is for move-out to memory. The aunfl bit is +| This exit is for move-out to memory. The aunfl bit is | set if the result is inex and unfl is signalled. | mvout_end: @@ -1466,7 +1466,7 @@ mvout_con: rts | -| This exit is for move-out to int register. The aunfl bit is +| This exit is for move-out to int register. The aunfl bit is | not set in any case for this move. | mvouti_end: @@ -1496,7 +1496,7 @@ fmovemx ETEMP(%a6),%fp0-%fp0 fcmpd #0x41dfffffffc00000,%fp0 | 41dfffffffc00000 in dbl prec = 401d0000fffffffe00000000 in ext prec - fbge lo_plrg + fbge lo_plrg fcmpd #0xc1e0000000000000,%fp0 | c1e0000000000000 in dbl prec = c01e00008000000000000000 in ext prec fble lo_nlrg @@ -1541,7 +1541,7 @@ fmovemx ETEMP(%a6),%fp0-%fp0 fcmps #0x46fffe00,%fp0 | 46fffe00 in sgl prec = 400d0000fffe000000000000 in ext prec - fbge wo_plrg + fbge wo_plrg fcmps #0xc7000000,%fp0 | c7000000 in sgl prec = c00e00008000000000000000 in ext prec fble wo_nlrg @@ -1586,7 +1586,7 @@ fmovemx ETEMP(%a6),%fp0-%fp0 fcmps #0x42fe0000,%fp0 | 42fe0000 in sgl prec = 40050000fe00000000000000 in ext prec - fbge by_plrg + fbge by_plrg fcmps #0xc3000000,%fp0 | c3000000 in sgl prec = c00600008000000000000000 in ext prec fble by_nlrg @@ -1629,7 +1629,7 @@ int_dnrm: movel #0,L_SCR1(%a6) | initialize result to 0 bfextu FPCR_MODE(%a6){#2:#2},%d1 | d1 is the rounding mode - cmpb #2,%d1 + cmpb #2,%d1 bmis int_inx | if RN or RZ, done bnes int_rp | if RP, continue below tstw ETEMP(%a6) | RM: store -1 in L_SCR1 if src is negative @@ -1642,7 +1642,7 @@ bmis int_inx | otherwise, result is 0 lea L_SCR1(%a6),%a1 | a1 is address of L_SCR1 addal %d0,%a1 | offset by destination width -1 - subal #1,%a1 + subal #1,%a1 bsetb #0,(%a1) | set low bit at a1 address int_inx: oril #inx2a_mask,USER_FPSR(%a6) @@ -1656,10 +1656,10 @@ oril #opaop_mask,USER_FPSR(%a6) | ;fall through to perform int_wrt -int_wrt: +int_wrt: movel EXC_EA(%a6),%a1 |load destination address tstl %a1 |check to see if it is a dest register - beqs wrt_dn |write data register + beqs wrt_dn |write data register lea L_SCR1(%a6),%a0 |point to supervisor source address bsrl mem_write bra mvouti_end @@ -1680,7 +1680,7 @@ sz_con: movel %d0,%d1 |reg_dest expects size:reg in d1 bsrl reg_dest |load proper data register - bra mvouti_end + bra mvouti_end xp: lea ETEMP(%a6),%a0 bclrb #sign_bit,LOCAL_EX(%a0) @@ -1718,7 +1718,7 @@ blt dp_under cmpw 2(%a1),%d0 bgt dp_over - + movel #2,%d0 |set destination format to double | ;fall through to do_fp | @@ -1726,10 +1726,10 @@ bfextu FPCR_MODE(%a6){#2:#2},%d1 |rnd mode in d1 swap %d0 |rnd prec in upper word addl %d0,%d1 |d1 has PREC/MODE info - - clrl %d0 |clear g,r,s - bsrl round |round + clrl %d0 |clear g,r,s + + bsrl round |round movel %a0,%a1 movel EXC_EA(%a6),%a0 @@ -1764,12 +1764,12 @@ bsrl dest_ext |store to memory bsetb #unfl_bit,FPSR_EXCEPT(%a6) bra mvout_end - + sp_under: bsetb #etemp15_bit,STAG(%a6) cmpw 4(%a1),%d0 - blts sp_catas |catastrophic underflow case + blts sp_catas |catastrophic underflow case movel #1,%d0 |load in round precision movel #sgl_thresh,%d1 |load in single denorm threshold @@ -1784,9 +1784,9 @@ cmpw 4(%a1),%d0 blts dp_catas |catastrophic underflow case - + movel #dbl_thresh,%d1 |load in double precision threshold - movel #2,%d0 + movel #2,%d0 bsrl dpspdnrm |expects d1 to have proper | ;denorm threshold | ;expects d0 to have round precision @@ -1813,11 +1813,11 @@ movel %a0,%a1 |a1 has the operand input movel EXC_EA(%a6),%a0 |a0 has the destination pointer - + bsrl dest_sgl |store the result oril #unfinx_mask,USER_FPSR(%a6) bra mvout_end - + dp_catas: | Temp fix for z bit set in unf_sub movel USER_FPSR(%a6),-(%a7) @@ -1828,12 +1828,12 @@ movel (%a7)+,USER_FPSR(%a6) movel #1,%d0 - subw %d0,LOCAL_EX(%a0) |account for difference between + subw %d0,LOCAL_EX(%a0) |account for difference between | ;denorm/norm bias movel %a0,%a1 |a1 has the operand input movel EXC_EA(%a6),%a0 |a0 has the destination pointer - + bsrl dest_dbl |store the result oril #unfinx_mask,USER_FPSR(%a6) bra mvout_end @@ -1880,7 +1880,7 @@ bra mvout_end | -| DPSPDNRM +| DPSPDNRM | | This subroutine takes an extended normalized number and denormalizes | it to the given round precision. This subroutine also decrements @@ -1894,7 +1894,7 @@ | | Output: (In the format for dest_sgl or dest_dbl) | a0 points to the destination -| a1 points to the operand +| a1 points to the operand | | Exceptions: Reports inexact 2 exception by setting USER_FPSR bits | @@ -1905,7 +1905,7 @@ bfextu FPCR_MODE(%a6){#2:#2},%d1 |get rounding mode swap %d1 - movew 2(%a7),%d1 |set rounding precision + movew 2(%a7),%d1 |set rounding precision swap %d1 |at this point d1 has PREC/MODE info bsrl round |round result, sets the inex bit in | ;USER_FPSR if needed @@ -1952,20 +1952,20 @@ .long p_dyd7 pack_out: - leal p_movet,%a0 |load jmp table address + leal p_movet,%a0 |load jmp table address movew STAG(%a6),%d0 |get source tag bfextu %d0{#16:#3},%d0 |isolate source bits movel (%a0,%d0.w*4),%a0 |load a0 with routine label for tag jmp (%a0) |go to the routine p_write: - movel #0x0c,%d0 |get byte count + movel #0x0c,%d0 |get byte count movel EXC_EA(%a6),%a1 |get the destination address - bsr mem_write |write the user's destination + bsr mem_write |write the user's destination moveb #0,CU_SAVEPC(%a6) |set the cu save pc to all 0's | -| Also note that the dtag must be set to norm here - this is because +| Also note that the dtag must be set to norm here - this is because | the 040 uses the dtag to execute the correct microcode. | bfclr DTAG(%a6){#0:#3} |set dtag to norm diff -Nru a/arch/m68k/fpsp040/round.S b/arch/m68k/fpsp040/round.S --- a/arch/m68k/fpsp040/round.S Tue May 18 23:38:08 2004 +++ b/arch/m68k/fpsp040/round.S Tue May 18 23:38:08 2004 @@ -8,8 +8,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |ROUND idnt 2,1 | Motorola 040 Floating Point Software Package @@ -21,7 +21,7 @@ | | round --- round result according to precision/mode | -| a0 points to the input operand in the internal extended format +| a0 points to the input operand in the internal extended format | d1(high word) contains rounding precision: | ext = $0000xxxx | sgl = $0001xxxx @@ -44,15 +44,15 @@ .global round round: -| If g=r=s=0 then result is exact and round is done, else set -| the inex flag in status reg and continue. +| If g=r=s=0 then result is exact and round is done, else set +| the inex flag in status reg and continue. | - bsrs ext_grs |this subroutine looks at the -| :rounding precision and sets + bsrs ext_grs |this subroutine looks at the +| :rounding precision and sets | ;the appropriate g-r-s bits. tstl %d0 |if grs are zero, go force bne rnd_cont |lower bits to zero for size - + swap %d1 |set up d1.w for round prec. bra truncate @@ -79,7 +79,7 @@ | If sign of fp number = 0 (positive), then add 1 to l. | rnd_plus: - swap %d1 |set up d1 for round prec. + swap %d1 |set up d1 for round prec. tstb LOCAL_SGN(%a0) |check for sign bmi truncate |if positive then truncate movel #0xffffffff,%d0 |force g,r,s to be all f's @@ -92,8 +92,8 @@ | If sign of fp number = 1 (negative), then add 1 to l. | rnd_mnus: - swap %d1 |set up d1 for round prec. - tstb LOCAL_SGN(%a0) |check for sign + swap %d1 |set up d1 for round prec. + tstb LOCAL_SGN(%a0) |check for sign bpl truncate |if negative then truncate movel #0xffffffff,%d0 |force g,r,s to be all f's lea add_to_l,%a1 @@ -104,7 +104,7 @@ | | Always truncate. rnd_zero: - swap %d1 |set up d1 for round prec. + swap %d1 |set up d1 for round prec. bra truncate | | @@ -114,7 +114,7 @@ | Note that this will round to even in case of a tie. | rnd_near: - swap %d1 |set up d1 for round prec. + swap %d1 |set up d1 for round prec. asll #1,%d0 |shift g-bit to c-bit bcc truncate |if (g=1) then lea add_to_l,%a1 @@ -125,11 +125,11 @@ | ext_grs --- extract guard, round and sticky bits | | Input: d1 = PREC:ROUND -| Output: d0{31:29}= guard, round, sticky +| Output: d0{31:29}= guard, round, sticky | | The ext_grs extract the guard/round/sticky bits according to the | selected rounding precision. It is called by the round subroutine -| only. All registers except d0 are kept intact. d0 becomes an +| only. All registers except d0 are kept intact. d0 becomes an | updated guard,round,sticky in d0{31:29} | | Notes: the ext_grs uses the round PREC, and therefore has to swap d1 @@ -140,7 +140,7 @@ cmpiw #0,%d1 bnes sgl_or_dbl bras end_ext_grs - + sgl_or_dbl: moveml %d2/%d3,-(%a7) |make some temp registers cmpiw #1,%d1 @@ -150,19 +150,19 @@ movel #30,%d2 |of the sgl prec. limits lsll %d2,%d3 |shift g-r bits to MSB of d3 movel LOCAL_HI(%a0),%d2 |get word 2 for s-bit test - andil #0x0000003f,%d2 |s bit is the or of all other + andil #0x0000003f,%d2 |s bit is the or of all other bnes st_stky |bits to the right of g-r tstl LOCAL_LO(%a0) |test lower mantissa bnes st_stky |if any are set, set sticky tstl %d0 |test original g,r,s bnes st_stky |if any are set, set sticky bras end_sd |if words 3 and 4 are clr, exit -grs_dbl: +grs_dbl: bfextu LOCAL_LO(%a0){#21:#2},%d3 |dbl-prec. g-r are 2 bits right movel #30,%d2 |of the dbl prec. limits lsll %d2,%d3 |shift g-r bits to the MSB of d3 movel LOCAL_LO(%a0),%d2 |get lower mantissa for s-bit test - andil #0x000001ff,%d2 |s bit is the or-ing of all + andil #0x000001ff,%d2 |s bit is the or-ing of all bnes st_stky |other bits to the right of g-r tstl %d0 |test word original g,r,s bnes st_stky |if any are set, set sticky @@ -269,20 +269,20 @@ | | NORMALIZE | -| These routines (nrm_zero & nrm_set) normalize the unnorm. This -| is done by shifting the mantissa left while decrementing the +| These routines (nrm_zero & nrm_set) normalize the unnorm. This +| is done by shifting the mantissa left while decrementing the | exponent. | -| NRM_SET shifts and decrements until there is a 1 set in the integer +| NRM_SET shifts and decrements until there is a 1 set in the integer | bit of the mantissa (msb in d1). | -| NRM_ZERO shifts and decrements until there is a 1 set in the integer -| bit of the mantissa (msb in d1) unless this would mean the exponent -| would go less than 0. In that case the number becomes a denorm - the -| exponent (d0) is set to 0 and the mantissa (d1 & d2) is not +| NRM_ZERO shifts and decrements until there is a 1 set in the integer +| bit of the mantissa (msb in d1) unless this would mean the exponent +| would go less than 0. In that case the number becomes a denorm - the +| exponent (d0) is set to 0 and the mantissa (d1 & d2) is not | normalized. | -| Note that both routines have been optimized (for the worst case) and +| Note that both routines have been optimized (for the worst case) and | therefore do not have the easy to follow decrement/shift loop. | | NRM_ZERO @@ -304,34 +304,34 @@ .global nrm_zero nrm_zero: movew LOCAL_EX(%a0),%d0 - cmpw #64,%d0 |see if exp > 64 + cmpw #64,%d0 |see if exp > 64 bmis d0_less - bsr nrm_set |exp > 64 so exp won't exceed 0 + bsr nrm_set |exp > 64 so exp won't exceed 0 rts d0_less: moveml %d2/%d3/%d5/%d6,-(%a7) movel LOCAL_HI(%a0),%d1 movel LOCAL_LO(%a0),%d2 - bfffo %d1{#0:#32},%d3 |get the distance to the first 1 + bfffo %d1{#0:#32},%d3 |get the distance to the first 1 | ;in ms mant beqs ms_clr |branch if no bits were set cmpw %d3,%d0 |of X>Y - bmis greater |then exp will go past 0 (neg) if + bmis greater |then exp will go past 0 (neg) if | ;it is just shifted bsr nrm_set |else exp won't go past 0 moveml (%a7)+,%d2/%d3/%d5/%d6 - rts + rts greater: movel %d2,%d6 |save ls mant in d6 lsll %d0,%d2 |shift ls mant by count lsll %d0,%d1 |shift ms mant by count movel #32,%d5 - subl %d0,%d5 |make op a denorm by shifting bits - lsrl %d5,%d6 |by the number in the exp, then + subl %d0,%d5 |make op a denorm by shifting bits + lsrl %d5,%d6 |by the number in the exp, then | ;set exp = 0. orl %d6,%d1 |shift the ls mant bits into the ms mant - movel #0,%d0 |same as if decremented exp to 0 + movel #0,%d0 |same as if decremented exp to 0 | ;while shifting movew %d0,LOCAL_EX(%a0) movel %d1,LOCAL_HI(%a0) @@ -380,7 +380,7 @@ rts | -| We get here if ms mant was = 0, and we assume ls mant has bits +| We get here if ms mant was = 0, and we assume ls mant has bits | set (otherwise this would have been tagged a zero not a denorm). | lower: @@ -400,26 +400,26 @@ | | Used by underflow. | -| Input: +| Input: | a0 points to the operand to be denormalized | (in the internal extended format) -| -| d0: rounding precision +| +| d0: rounding precision | Output: | a0 points to the denormalized result | (in the internal extended format) | -| d0 is guard,round,sticky +| d0 is guard,round,sticky | -| d0 comes into this routine with the rounding precision. It -| is then loaded with the denormalized exponent threshold for the +| d0 comes into this routine with the rounding precision. It +| is then loaded with the denormalized exponent threshold for the | rounding precision. | .global denorm denorm: btstb #6,LOCAL_EX(%a0) |check for exponents between $7fff-$4000 - beqs no_sgn_ext + beqs no_sgn_ext bsetb #7,LOCAL_EX(%a0) |sign extend if it is so no_sgn_ext: @@ -442,7 +442,7 @@ movel %d1,%d0 |copy d1 into d0 subw LOCAL_EX(%a0),%d0 |diff = threshold - exp cmpw #67,%d0 |if diff > 67 (mant + grs bits) - bpls chk_stky |then branch (all bits would be + bpls chk_stky |then branch (all bits would be | ; shifted off in denorm routine) clrl %d0 |else clear the sticky flag bsr dnrm_lp |denormalize the number @@ -455,7 +455,7 @@ movel %d1,%d0 |copy d1 into d0 subw LOCAL_EX(%a0),%d0 |diff = threshold - exp cmpw #67,%d0 |if diff > 67 (mant + grs bits) - bpls chk_stky |then branch (all bits would be + bpls chk_stky |then branch (all bits would be | ; shifted off in denorm routine) clrl %d0 |else clear the sticky flag bsr dnrm_lp |denormalize the number @@ -474,7 +474,7 @@ movel #0x20000000,%d0 |set sticky bit in return value clr_mant: movew %d1,LOCAL_EX(%a0) |load exp with threshold - movel #0,LOCAL_HI(%a0) |set d1 = 0 (ms mantissa) + movel #0,LOCAL_HI(%a0) |set d1 = 0 (ms mantissa) movel #0,LOCAL_LO(%a0) |set d2 = 0 (ms mantissa) rts dnrm_inex: @@ -487,7 +487,7 @@ | | Input: | a0 points to the operand to be denormalized -| d0{31:29} initial guard,round,sticky +| d0{31:29} initial guard,round,sticky | d1{15:0} denormalization threshold | Output: | a0 points to the denormalized operand @@ -496,7 +496,7 @@ | | The LOCAL_LO and LOCAL_GRS parts of the value are copied to FP_SCR2 | so that bfext can be used to extract the new low part of the mantissa. -| Dnrm_lp can be called with a0 pointing to ETEMP or WBTEMP and there +| Dnrm_lp can be called with a0 pointing to ETEMP or WBTEMP and there | is no LOCAL_GRS scratch word following it on the fsave frame. | .global dnrm_lp @@ -515,8 +515,8 @@ movel %d1,%d0 |copy the denorm threshold subw LOCAL_EX(%a0),%d1 |d1 = threshold - uns exponent bles no_lp |d1 <= 0 - cmpw #32,%d1 - blts case_1 |0 = d1 < 32 + cmpw #32,%d1 + blts case_1 |0 = d1 < 32 cmpw #64,%d1 blts case_2 |32 <= d1 < 64 bra case_3 |d1 >= 64 @@ -542,7 +542,7 @@ movel %d2,LOCAL_HI(%a0) |store new LOCAL_HI movel %d1,LOCAL_LO(%a0) |store new LOCAL_LO clrb %d1 - bftst %d0{#2:#30} + bftst %d0{#2:#30} beqs c1nstky bsetl #rnd_stky_bit,%d0 st %d1 @@ -585,7 +585,7 @@ movel FP_SCR2+LOCAL_GRS(%a6),%d2 |restore original g,r,s andil #0xe0000000,%d2 |clear all but G,R,S tstl %d2 |test if original G,R,S are clear - beqs clear_grs + beqs clear_grs orl #0x20000000,%d0 |set sticky bit in d0 clear_grs: andil #0xe0000000,%d0 |get rid of all but G,R,S @@ -621,7 +621,7 @@ bfextu %d0{#2:#30},%d1 andil #0xc0000000,%d0 bras c3com - + sixty_five: movel LOCAL_HI(%a0),%d0 bfextu %d0{#1:#31},%d1 diff -Nru a/arch/m68k/fpsp040/sacos.S b/arch/m68k/fpsp040/sacos.S --- a/arch/m68k/fpsp040/sacos.S Tue May 18 23:38:07 2004 +++ b/arch/m68k/fpsp040/sacos.S Tue May 18 23:38:07 2004 @@ -12,7 +12,7 @@ | | Accuracy and Monotonicity: The returned result is within 3 ulps in | 64 significant bit, i.e. within 0.5001 ulp to 53 bits if the -| result is subsequently rounded to double precision. The +| result is subsequently rounded to double precision. The | result is provably monotonic in double precision. | | Speed: The program sCOS takes approximately 310 cycles. @@ -38,8 +38,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |SACOS idnt 2,1 | Motorola 040 Floating Point Software Package @@ -74,17 +74,17 @@ |--ACOS(X) = 2 * ATAN( SQRT( (1-X)/(1+X) ) ) fmoves #0x3F800000,%fp1 - faddx %fp0,%fp1 | ...1+X - fnegx %fp0 | ... -X + faddx %fp0,%fp1 | ...1+X + fnegx %fp0 | ... -X fadds #0x3F800000,%fp0 | ...1-X - fdivx %fp1,%fp0 | ...(1-X)/(1+X) + fdivx %fp1,%fp0 | ...(1-X)/(1+X) fsqrtx %fp0 | ...SQRT((1-X)/(1+X)) fmovemx %fp0-%fp0,(%a0) | ...overwrite input movel %d1,-(%sp) |save original users fpcr clrl %d1 bsr satan | ...ATAN(SQRT([1-X]/[1+X])) fmovel (%sp)+,%fpcr |restore users exceptions - faddx %fp0,%fp0 | ...2 * ATAN( STUFF ) + faddx %fp0,%fp0 | ...2 * ATAN( STUFF ) bra t_frcinx ACOSBIG: @@ -110,6 +110,6 @@ ACOSP1: fmovel %d1,%FPCR fmoves #0x00000000,%fp0 - rts |Facos ; of +1 is exact + rts |Facos ; of +1 is exact |end diff -Nru a/arch/m68k/fpsp040/sasin.S b/arch/m68k/fpsp040/sasin.S --- a/arch/m68k/fpsp040/sasin.S Tue May 18 23:38:07 2004 +++ b/arch/m68k/fpsp040/sasin.S Tue May 18 23:38:07 2004 @@ -12,7 +12,7 @@ | | Accuracy and Monotonicity: The returned result is within 3 ulps in | 64 significant bit, i.e. within 0.5001 ulp to 53 bits if the -| result is subsequently rounded to double precision. The +| result is subsequently rounded to double precision. The | result is provably monotonic in double precision. | | Speed: The program sASIN takes approximately 310 cycles. @@ -38,8 +38,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |SASIN idnt 2,1 | Motorola 040 Floating Point Software Package @@ -80,7 +80,7 @@ fmulx %fp2,%fp1 | ...(1+X)(1-X) fmovemx (%a7)+,%fp2-%fp2 fsqrtx %fp1 | ...SQRT([1-X][1+X]) - fdivx %fp1,%fp0 | ...X/SQRT([1-X][1+X]) + fdivx %fp1,%fp0 | ...X/SQRT([1-X][1+X]) fmovemx %fp0-%fp0,(%a0) bsr satan bra t_frcinx @@ -97,7 +97,7 @@ andil #0x80000000,%d0 | ...SIGN BIT OF X oril #0x3F800000,%d0 | ...+-1 IN SGL FORMAT movel %d0,-(%sp) | ...push SIGN(X) IN SGL-FMT - fmovel %d1,%FPCR + fmovel %d1,%FPCR fmuls (%sp)+,%fp0 bra t_frcinx diff -Nru a/arch/m68k/fpsp040/satan.S b/arch/m68k/fpsp040/satan.S --- a/arch/m68k/fpsp040/satan.S Tue May 18 23:38:07 2004 +++ b/arch/m68k/fpsp040/satan.S Tue May 18 23:38:07 2004 @@ -43,8 +43,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |satan idnt 2,1 | Motorola 040 Floating Point Software Package @@ -52,7 +52,7 @@ |section 8 #include "fpsp.h" - + BOUNDS1: .long 0x3FFB8000,0x4002FFFF ONE: .long 0x3F800000 @@ -322,7 +322,7 @@ |--THE REASON FOR THIS REARRANGEMENT IS TO MAKE THE INDEPENDENT |--PARTS A1*U*V AND (A2 + ... STUFF) MORE LOAD-BALANCED - + fmovex %fp0,%fp1 fmulx %fp1,%fp1 fmoved ATANA3,%fp2 @@ -332,7 +332,7 @@ faddd ATANA2,%fp2 | ...A2+V*(A3+V) fmuld ATANA1,%fp1 | ...A1*U*V fmulx %fp2,%fp1 | ...A1*U*V*(A2+V*(A3+V)) - + faddx %fp1,%fp0 | ...ATAN(U), FP1 RELEASED fmovel %d1,%FPCR |restore users exceptions faddx ATANF(%a6),%fp0 | ...ATAN(X) @@ -356,7 +356,7 @@ |--COMPUTE POLYNOMIAL fmulx %fp0,%fp0 | ...FP0 IS Y = X*X - + movew #0x0000,XDCARE(%a6) fmovex %fp0,%fp1 @@ -381,7 +381,7 @@ fmulx X(%a6),%fp0 | ...X*Y faddx %fp2,%fp1 | ...[B1+Z*(B3+Z*B5)]+[Y*(B2+Z*(B4+Z*B6))] - + fmulx %fp1,%fp0 | ...X*Y*([B1+Z*(B3+Z*B5)]+[Y*(B2+Z*(B4+Z*B6))]) @@ -413,7 +413,7 @@ fmoves #0xBF800000,%fp1 | ...LOAD -1 fdivx %fp0,%fp1 | ...FP1 IS -1/X - + |--DIVIDE IS STILL CRANKING fmovex %fp1,%fp0 | ...FP0 IS X' @@ -439,14 +439,14 @@ fmulx X(%a6),%fp0 | ...X'*Y faddx %fp2,%fp1 | ...[Y*(C2+Z*C4)]+[C1+Z*(C3+Z*C5)] - + fmulx %fp1,%fp0 | ...X'*Y*([B1+Z*(B3+Z*B5)] | ... +[Y*(B2+Z*(B4+Z*B6))]) faddx X(%a6),%fp0 fmovel %d1,%FPCR |restore users exceptions - + btstb #7,(%a0) beqs pos_big @@ -474,5 +474,5 @@ fmovel %d1,%fpcr fsubx PTINY,%fp0 bra t_frcinx - + |end diff -Nru a/arch/m68k/fpsp040/satanh.S b/arch/m68k/fpsp040/satanh.S --- a/arch/m68k/fpsp040/satanh.S Tue May 18 23:38:05 2004 +++ b/arch/m68k/fpsp040/satanh.S Tue May 18 23:38:05 2004 @@ -13,7 +13,7 @@ | | Accuracy and Monotonicity: The returned result is within 3 ulps in | 64 significant bit, i.e. within 0.5001 ulp to 53 bits if the -| result is subsequently rounded to double precision. The +| result is subsequently rounded to double precision. The | result is provably monotonic in double precision. | | Speed: The program satanh takes approximately 270 cycles. @@ -33,7 +33,7 @@ | 3. If |X| > 1, go to 5. | | 4. (|X| = 1) Generate infinity with an appropriate sign and -| divide-by-zero by +| divide-by-zero by | sgn := sign(X) | atan(X) := sgn / (+0). | Exit. @@ -45,8 +45,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |satanh idnt 2,1 | Motorola 040 Floating Point Software Package diff -Nru a/arch/m68k/fpsp040/scale.S b/arch/m68k/fpsp040/scale.S --- a/arch/m68k/fpsp040/scale.S Tue May 18 23:38:09 2004 +++ b/arch/m68k/fpsp040/scale.S Tue May 18 23:38:09 2004 @@ -9,7 +9,7 @@ | The entry point sscale is called from do_func to emulate | the fscale unimplemented instruction. | -| Input: Double-extended destination operand in FPTEMP, +| Input: Double-extended destination operand in FPTEMP, | double-extended source operand in ETEMP. | | Output: The function returns scale(X,Y) to fp0. @@ -17,12 +17,12 @@ | Modifies: fp0. | | Algorithm: -| +| | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |SCALE idnt 2,1 | Motorola 040 Floating Point Software Package @@ -147,7 +147,7 @@ src_neg: addl %d0,%d1 |add src to dest beqs denorm |if zero, result is denorm - blts fix_dnrm |if negative, result is + blts fix_dnrm |if negative, result is | ;needing denormalization tstb L_SCR1(%a6) beqs sneg_pos @@ -161,7 +161,7 @@ | | The result exponent is below denorm value. Test for catastrophic -| underflow and force zero if true. If not, try to shift the +| underflow and force zero if true. If not, try to shift the | mantissa right until a zero exponent exists. | fix_dnrm: @@ -229,7 +229,7 @@ rts | -| The rounding mode changed the zero to a smallest denorm. Call +| The rounding mode changed the zero to a smallest denorm. Call | t_resdnrm with exceptional operand in ETEMP. | sm_dnrm: @@ -250,7 +250,7 @@ fix_exit: bras sm_dnrm - + | | The result has underflowed to zero. Return zero and set | unfl, aunfl, and ainex. @@ -284,7 +284,7 @@ clrl FP_SCR1(%a6) |clear the exceptional operand clrl FP_SCR1+4(%a6) |for gen_except. clrl FP_SCR1+8(%a6) - fmoves #0x80000000,%fp0 + fmoves #0x80000000,%fp0 rts pos_zero: clrl FP_SCR1(%a6) |clear the exceptional operand @@ -299,7 +299,7 @@ | then adding the remainder of the source to the exponent. | dst_dnrm: - moveml %d2/%d3,-(%a7) + moveml %d2/%d3,-(%a7) movew FPTEMP_EX(%a6),%d1 movel FPTEMP_HI(%a6),%d2 movel FPTEMP_LO(%a6),%d3 @@ -313,7 +313,7 @@ roxll #1,%d2 bras dst_loop | -| Destination became normalized. Simply add the remaining +| Destination became normalized. Simply add the remaining | portion of the src to the exponent. | dst_norm: diff -Nru a/arch/m68k/fpsp040/scosh.S b/arch/m68k/fpsp040/scosh.S --- a/arch/m68k/fpsp040/scosh.S Tue May 18 23:38:05 2004 +++ b/arch/m68k/fpsp040/scosh.S Tue May 18 23:38:05 2004 @@ -49,8 +49,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |SCOSH idnt 2,1 | Motorola 040 Floating Point Software Package @@ -99,7 +99,7 @@ movel (%sp)+,%d1 fmoves #0x3E800000,%fp1 | ...(1/4) - fdivx %fp0,%fp1 | ...1/(2 EXP(|X|)) + fdivx %fp0,%fp1 | ...1/(2 EXP(|X|)) fmovel %d1,%FPCR faddx %fp1,%fp0 diff -Nru a/arch/m68k/fpsp040/setox.S b/arch/m68k/fpsp040/setox.S --- a/arch/m68k/fpsp040/setox.S Tue May 18 23:38:06 2004 +++ b/arch/m68k/fpsp040/setox.S Tue May 18 23:38:06 2004 @@ -331,8 +331,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |setox idnt 2,1 | Motorola 040 Floating Point Software Package @@ -505,7 +505,7 @@ fmovex %fp0,%fp2 fmuls #0xBC317218,%fp0 | ...N * L1, L1 = lead(-log2/64) fmulx L2,%fp2 | ...N * L2, L1+L2 = -log2/64 - faddx %fp1,%fp0 | ...X + N*L1 + faddx %fp1,%fp0 | ...X + N*L1 faddx %fp2,%fp0 | ...fp0 is R, reduced arg. | MOVE.W #$3FA5,EXPA3 ...load EXPA3 in cache @@ -516,46 +516,46 @@ |--[R+R*S*(A2+S*A4)] + [S*(A1+S*(A3+S*A5))] fmovex %fp0,%fp1 - fmulx %fp1,%fp1 | ...fp1 IS S = R*R + fmulx %fp1,%fp1 | ...fp1 IS S = R*R fmoves #0x3AB60B70,%fp2 | ...fp2 IS A5 | MOVE.W #0,2(%a1) ...load 2^(J/64) in cache - fmulx %fp1,%fp2 | ...fp2 IS S*A5 + fmulx %fp1,%fp2 | ...fp2 IS S*A5 fmovex %fp1,%fp3 fmuls #0x3C088895,%fp3 | ...fp3 IS S*A4 faddd EXPA3,%fp2 | ...fp2 IS A3+S*A5 faddd EXPA2,%fp3 | ...fp3 IS A2+S*A4 - fmulx %fp1,%fp2 | ...fp2 IS S*(A3+S*A5) + fmulx %fp1,%fp2 | ...fp2 IS S*(A3+S*A5) movew %d0,SCALE(%a6) | ...SCALE is 2^(M) in extended clrw SCALE+2(%a6) movel #0x80000000,SCALE+4(%a6) clrl SCALE+8(%a6) - fmulx %fp1,%fp3 | ...fp3 IS S*(A2+S*A4) + fmulx %fp1,%fp3 | ...fp3 IS S*(A2+S*A4) fadds #0x3F000000,%fp2 | ...fp2 IS A1+S*(A3+S*A5) - fmulx %fp0,%fp3 | ...fp3 IS R*S*(A2+S*A4) + fmulx %fp0,%fp3 | ...fp3 IS R*S*(A2+S*A4) - fmulx %fp1,%fp2 | ...fp2 IS S*(A1+S*(A3+S*A5)) - faddx %fp3,%fp0 | ...fp0 IS R+R*S*(A2+S*A4), + fmulx %fp1,%fp2 | ...fp2 IS S*(A1+S*(A3+S*A5)) + faddx %fp3,%fp0 | ...fp0 IS R+R*S*(A2+S*A4), | ...fp3 released fmovex (%a1)+,%fp1 | ...fp1 is lead. pt. of 2^(J/64) - faddx %fp2,%fp0 | ...fp0 is EXP(R) - 1 + faddx %fp2,%fp0 | ...fp0 is EXP(R) - 1 | ...fp2 released |--Step 5 |--final reconstruction process |--EXP(X) = 2^M * ( 2^(J/64) + 2^(J/64)*(EXP(R)-1) ) - fmulx %fp1,%fp0 | ...2^(J/64)*(Exp(R)-1) + fmulx %fp1,%fp0 | ...2^(J/64)*(Exp(R)-1) fmovemx (%a7)+,%fp2-%fp2/%fp3 | ...fp2 restored fadds (%a1),%fp0 | ...accurate 2^(J/64) - faddx %fp1,%fp0 | ...2^(J/64) + 2^(J/64)*... + faddx %fp1,%fp0 | ...2^(J/64) + 2^(J/64)*... movel ADJFLAG(%a6),%d0 |--Step 6 @@ -564,7 +564,7 @@ ADJUST: fmulx ADJSCALE(%a6),%fp0 NORMAL: - fmovel %d1,%FPCR | ...restore user FPCR + fmovel %d1,%FPCR | ...restore user FPCR fmulx SCALE(%a6),%fp0 | ...multiply 2^(M) bra t_frcinx diff -Nru a/arch/m68k/fpsp040/sgetem.S b/arch/m68k/fpsp040/sgetem.S --- a/arch/m68k/fpsp040/sgetem.S Tue May 18 23:38:07 2004 +++ b/arch/m68k/fpsp040/sgetem.S Tue May 18 23:38:07 2004 @@ -1,14 +1,14 @@ | | sgetem.sa 3.1 12/10/90 | -| The entry point sGETEXP returns the exponent portion +| The entry point sGETEXP returns the exponent portion | of the input argument. The exponent bias is removed -| and the exponent value is returned as an extended +| and the exponent value is returned as an extended | precision number in fp0. sGETEXPD handles denormalized | numbers. | -| The entry point sGETMAN extracts the mantissa of the -| input argument. The mantissa is converted to an +| The entry point sGETMAN extracts the mantissa of the +| input argument. The mantissa is converted to an | extended precision number and returned in fp0. The | range of the result is [1.0 - 2.0). | @@ -24,8 +24,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |SGETEM idnt 2,1 | Motorola 040 Floating Point Software Package @@ -81,7 +81,7 @@ fmovel %d0,%fpcr |this fpcr setting is used by the 882 movew LOCAL_EX(%a0),%d0 |get the exp (really just want sign bit) orw #0x7fff,%d0 |clear old exp - bclrl #14,%d0 |make it the new exp +-3fff + bclrl #14,%d0 |make it the new exp +-3fff movew %d0,LOCAL_EX(%a0) |move the sign & exp back to fsave stack fmovex (%a0),%fp0 |put new value back in fp0 rts diff -Nru a/arch/m68k/fpsp040/sint.S b/arch/m68k/fpsp040/sint.S --- a/arch/m68k/fpsp040/sint.S Tue May 18 23:38:09 2004 +++ b/arch/m68k/fpsp040/sint.S Tue May 18 23:38:09 2004 @@ -1,8 +1,8 @@ | | sint.sa 3.1 12/10/90 | -| The entry point sINT computes the rounded integer -| equivalent of the input argument, sINTRZ computes +| The entry point sINT computes the rounded integer +| equivalent of the input argument, sINTRZ computes | the integer rounded to zero of the input argument. | | Entry points sint and sintrz are called from do_func @@ -24,10 +24,10 @@ | | Algorithm: (sint and sintrz) | -| 1. If exp(X) >= 63, return X. +| 1. If exp(X) >= 63, return X. | If exp(X) < 0, return +/- 0 or +/- 1, according to | the rounding mode. -| +| | 2. (X is in range) set rsc = 63 - exp(X). Unnormalize the | result to the exponent $403e. | @@ -51,8 +51,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |SINT idnt 2,1 | Motorola 040 Floating Point Software Package @@ -78,9 +78,9 @@ sint: bfextu FPCR_MODE(%a6){#2:#2},%d1 |use user's mode for rounding | ;implicitly has extend precision -| ;in upper word. +| ;in upper word. movel %d1,L_SCR1(%a6) |save mode bits - bras sintexc + bras sintexc | | FINT with extended denorm inputs. @@ -115,13 +115,13 @@ sintrz: movel #1,L_SCR1(%a6) |use rz mode for rounding | ;implicitly has extend precision -| ;in upper word. - bras sintexc +| ;in upper word. + bras sintexc | | SINTDO | | Input: a0 points to an IEEE extended format operand -| Output: fp0 has the result +| Output: fp0 has the result | | Exceptions: | @@ -133,7 +133,7 @@ sintdo: bfextu FPCR_MODE(%a6){#2:#2},%d1 |use user's mode for rounding | ;implicitly has ext precision -| ;in upper word. +| ;in upper word. movel %d1,L_SCR1(%a6) |save mode bits | | Real work of sint is in sintexc @@ -141,7 +141,7 @@ sintexc: bclrb #sign_bit,LOCAL_EX(%a0) |convert to internal extended | ;format - sne LOCAL_SGN(%a0) + sne LOCAL_SGN(%a0) cmpw #0x403e,LOCAL_EX(%a0) |check if (unbiased) exp > 63 bgts out_rnge |branch if exp < 63 cmpw #0x3ffd,LOCAL_EX(%a0) |check if (unbiased) exp < 0 @@ -187,7 +187,7 @@ un_rnrz_neg: bsr ld_mzero bra t_inx2 - + | | Input is greater than 2^63. All bits are significant. Return | the input. @@ -206,7 +206,7 @@ rts in_rnge: -| ;shift off fraction bits +| ;shift off fraction bits clrl %d0 |clear d0 - initial g,r,s for | ;dnrm_lp movel #0x403e,%d1 |set threshold for dnrm_lp diff -Nru a/arch/m68k/fpsp040/skeleton.S b/arch/m68k/fpsp040/skeleton.S --- a/arch/m68k/fpsp040/skeleton.S Tue May 18 23:38:08 2004 +++ b/arch/m68k/fpsp040/skeleton.S Tue May 18 23:38:08 2004 @@ -18,20 +18,20 @@ | to handle the exception. | | If the exception was completely handled by the package, then -| the return will be via a 'jmp fpsp_done'. Unless there is +| the return will be via a 'jmp fpsp_done'. Unless there is | OS specific work to be done (such as handling a context switch or | interrupt) the user program can be resumed via 'rte'. | | In the following skeleton code, some typical 'real_xxxx' handling | code is shown. This code may need to be moved to an appropriate | place in the target system, or rewritten. -| +| | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. | @@ -50,7 +50,7 @@ | |section 8 - + #include "fpsp.h" |xref b1238_fix @@ -72,7 +72,7 @@ SAVE_ALL_INT GET_CURRENT(%d0) - movel %sp,%sp@- | stack frame pointer argument + movel %sp,%sp@- | stack frame pointer argument bsrl trap_c addql #4,%sp bral ret_from_exception @@ -82,7 +82,7 @@ | | All inexact exceptions are real, but the 'real' handler | will probably want to clear the pending exception. -| The provided code will clear the E3 exception (if pending), +| The provided code will clear the E3 exception (if pending), | otherwise clear the E1 exception. The frestore is not really | necessary for E1 exceptions. | @@ -96,7 +96,7 @@ | to the appropriate handler for the exception in the fpsr. Note | that this fix is only for d43b parts, and is skipped if the | version number is not $40. -| +| | .global real_inex .global inex @@ -116,7 +116,7 @@ bra snan inex_ckofl: btstb #ovfl_bit,2(%sp) |test for ovfl - beq inex_ckufl + beq inex_ckufl addl #4,%sp frestore (%sp)+ unlk %a6 @@ -163,11 +163,11 @@ SAVE_ALL_INT GET_CURRENT(%d0) - movel %sp,%sp@- | stack frame pointer argument + movel %sp,%sp@- | stack frame pointer argument bsrl trap_c addql #4,%sp bral ret_from_exception - + | | Overflow exception | @@ -189,11 +189,11 @@ SAVE_ALL_INT GET_CURRENT(%d0) - movel %sp,%sp@- | stack frame pointer argument + movel %sp,%sp@- | stack frame pointer argument bsrl trap_c addql #4,%sp bral ret_from_exception - + | | Underflow exception | @@ -215,11 +215,11 @@ SAVE_ALL_INT GET_CURRENT(%d0) - movel %sp,%sp@- | stack frame pointer argument + movel %sp,%sp@- | stack frame pointer argument bsrl trap_c addql #4,%sp bral ret_from_exception - + | | Signalling NAN exception | @@ -237,11 +237,11 @@ SAVE_ALL_INT GET_CURRENT(%d0) - movel %sp,%sp@- | stack frame pointer argument + movel %sp,%sp@- | stack frame pointer argument bsrl trap_c addql #4,%sp bral ret_from_exception - + | | Operand Error exception | @@ -259,12 +259,12 @@ SAVE_ALL_INT GET_CURRENT(%d0) - movel %sp,%sp@- | stack frame pointer argument + movel %sp,%sp@- | stack frame pointer argument bsrl trap_c addql #4,%sp bral ret_from_exception - + | | BSUN exception | @@ -287,7 +287,7 @@ SAVE_ALL_INT GET_CURRENT(%d0) - movel %sp,%sp@- | stack frame pointer argument + movel %sp,%sp@- | stack frame pointer argument bsrl trap_c addql #4,%sp bral ret_from_exception @@ -295,7 +295,7 @@ | | F-line exception | -| A 'real' F-line exception is one that the FPSP isn't supposed to +| A 'real' F-line exception is one that the FPSP isn't supposed to | handle. E.g. an instruction with a co-processor ID that is not 1. | | @@ -308,7 +308,7 @@ SAVE_ALL_INT GET_CURRENT(%d0) - movel %sp,%sp@- | stack frame pointer argument + movel %sp,%sp@- | stack frame pointer argument bsrl trap_c addql #4,%sp bral ret_from_exception @@ -330,7 +330,7 @@ SAVE_ALL_INT GET_CURRENT(%d0) - movel %sp,%sp@- | stack frame pointer argument + movel %sp,%sp@- | stack frame pointer argument bsrl trap_c addql #4,%sp bral ret_from_exception @@ -355,14 +355,14 @@ | {4028, 4130} - unimp frame | {4000, 4100} - idle frame | -| This entry point simply holds an f-line illegal value. +| This entry point simply holds an f-line illegal value. | Replace this with a call to your kernel panic code or | code to handle future revisions of the fpu. | .global fpsp_fmt_error fpsp_fmt_error: - .long 0xf27f0000 |f-line illegal + .long 0xf27f0000 |f-line illegal | | fpsp_done --- FPSP exit point @@ -442,7 +442,7 @@ | a1 - supervisor destination address | d0 - number of bytes to read (maximum count is 12) | -| Like mem_write, mem_read always reads with a supervisor +| Like mem_write, mem_read always reads with a supervisor | destination address on the supervisor stack. Also like mem_write, | the EXC_SR is checked and a simple memory copy is done if reading | from supervisor space is indicated. diff -Nru a/arch/m68k/fpsp040/slog2.S b/arch/m68k/fpsp040/slog2.S --- a/arch/m68k/fpsp040/slog2.S Tue May 18 23:38:09 2004 +++ b/arch/m68k/fpsp040/slog2.S Tue May 18 23:38:09 2004 @@ -1,28 +1,28 @@ | | slog2.sa 3.1 12/10/90 | -| The entry point slog10 computes the base-10 +| The entry point slog10 computes the base-10 | logarithm of an input argument X. -| slog10d does the same except the input value is a -| denormalized number. +| slog10d does the same except the input value is a +| denormalized number. | sLog2 and sLog2d are the base-2 analogues. | -| INPUT: Double-extended value in memory location pointed to +| INPUT: Double-extended value in memory location pointed to | by address register a0. | -| OUTPUT: log_10(X) or log_2(X) returned in floating-point +| OUTPUT: log_10(X) or log_2(X) returned in floating-point | register fp0. | -| ACCURACY and MONOTONICITY: The returned result is within 1.7 -| ulps in 64 significant bit, i.e. within 0.5003 ulp -| to 53 bits if the result is subsequently rounded -| to double precision. The result is provably monotonic +| ACCURACY and MONOTONICITY: The returned result is within 1.7 +| ulps in 64 significant bit, i.e. within 0.5003 ulp +| to 53 bits if the result is subsequently rounded +| to double precision. The result is provably monotonic | in double precision. | -| SPEED: Two timings are measured, both in the copy-back mode. -| The first one is measured when the function is invoked -| the first time (so the instructions and data are not -| in cache), and the second one is measured when the +| SPEED: Two timings are measured, both in the copy-back mode. +| The first one is measured when the function is invoked +| the first time (so the instructions and data are not +| in cache), and the second one is measured when the | function is reinvoked at the same input argument. | | ALGORITHM and IMPLEMENTATION NOTES: @@ -42,7 +42,7 @@ | 2.2 Return ans := Y * INV_L10. | | -| slog10: +| slog10: | | Step 0. If X < 0, create a NaN and raise the invalid operation | flag. Otherwise, save FPCR in D1; set FpCR to default. @@ -96,15 +96,15 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |SLOG2 idnt 2,1 | Motorola 040 Floating Point Software Package |section 8 - |xref t_frcinx + |xref t_frcinx |xref t_operr |xref slogn |xref slognd diff -Nru a/arch/m68k/fpsp040/slogn.S b/arch/m68k/fpsp040/slogn.S --- a/arch/m68k/fpsp040/slogn.S Tue May 18 23:38:07 2004 +++ b/arch/m68k/fpsp040/slogn.S Tue May 18 23:38:07 2004 @@ -13,11 +13,11 @@ | | Accuracy and Monotonicity: The returned result is within 2 ulps in | 64 significant bit, i.e. within 0.5001 ulp to 53 bits if the -| result is subsequently rounded to double precision. The +| result is subsequently rounded to double precision. The | result is provably monotonic in double precision. | -| Speed: The program slogn takes approximately 190 cycles for input -| argument X such that |X-1| >= 1/16, which is the usual +| Speed: The program slogn takes approximately 190 cycles for input +| argument X such that |X-1| >= 1/16, which is the usual | situation. For those arguments, slognp1 takes approximately | 210 cycles. For the less common arguments, the program will | run no worse than 10% slower. @@ -45,26 +45,26 @@ | Step 2: Let 1+X = 2**k * Y, where 1 <= Y < 2. Define F as done in Step 2 | of the algorithm for LOGN and compute log(1+X) as | k*log(2) + log(F) + poly where poly approximates log(1+u), -| u = (Y-F)/F. +| u = (Y-F)/F. | | Implementation Notes: | Note 1. There are 64 different possible values for F, thus 64 log(F)'s -| need to be tabulated. Moreover, the values of 1/F are also +| need to be tabulated. Moreover, the values of 1/F are also | tabulated so that the division in (Y-F)/F can be performed by a | multiplication. | | Note 2. In Step 2 of lognp1, in order to preserved accuracy, the value -| Y-F has to be calculated carefully when 1/2 <= X < 3/2. +| Y-F has to be calculated carefully when 1/2 <= X < 3/2. | | Note 3. To fully exploit the pipeline, polynomials are usually separated | into two parts evaluated independently before being added up. -| +| | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |slogn idnt 2,1 | Motorola 040 Floating Point Software Package @@ -262,7 +262,7 @@ |----the value TWOTO100 is no longer needed. |----Note that this code assumes the denormalized input is NON-ZERO. - moveml %d2-%d7,-(%a7) | ...save some registers + moveml %d2-%d7,-(%a7) | ...save some registers movel #0x00000000,%d3 | ...D3 is exponent of smallest norm. # movel 4(%a0),%d4 movel 8(%a0),%d5 | ...(D4,D5) is (Hi_X,Lo_X) @@ -347,14 +347,14 @@ |--NOTE THAT U = (Y-F)/F IS VERY SMALL AND THUS APPROXIMATING |--LOG(1+U) CAN BE VERY EFFICIENT. |--ALSO NOTE THAT THE VALUE 1/F IS STORED IN A TABLE SO THAT NO -|--DIVISION IS NEEDED TO CALCULATE (Y-F)/F. +|--DIVISION IS NEEDED TO CALCULATE (Y-F)/F. |--GET K, Y, F, AND ADDRESS OF 1/F. asrl #8,%d0 asrl #8,%d0 | ...SHIFTED 16 BITS, BIASED EXPO. OF X - subil #0x3FFF,%d0 | ...THIS IS K + subil #0x3FFF,%d0 | ...THIS IS K addl ADJK(%a6),%d0 | ...ADJUST K, ORIGINAL INPUT MAY BE DENORM. - lea LOGTBL,%a0 | ...BASE ADDRESS OF 1/F AND LOG(F) + lea LOGTBL,%a0 | ...BASE ADDRESS OF 1/F AND LOG(F) fmovel %d0,%fp1 | ...CONVERT K TO FLOATING-POINT FORMAT |--WHILE THE CONVERSION IS GOING ON, WE GET F AND ADDRESS OF 1/F @@ -363,7 +363,7 @@ andil #0xFE000000,FFRAC(%a6) | ...FIRST 7 BITS OF Y oril #0x01000000,FFRAC(%a6) | ...GET F: ATTACH A 1 AT THE EIGHTH BIT movel FFRAC(%a6),%d0 | ...READY TO GET ADDRESS OF 1/F - andil #0x7E000000,%d0 + andil #0x7E000000,%d0 asrl #8,%d0 asrl #8,%d0 asrl #4,%d0 | ...SHIFTED 20, D0 IS THE DISPLACEMENT @@ -390,7 +390,7 @@ |--[U + V*(A1+V*(A3+V*A5))] + [U*V*(A2+V*(A4+V*A6))] fmovex %fp2,%fp3 - fmovex %fp2,%fp1 + fmovex %fp2,%fp1 fmuld LOGA6,%fp1 | ...V*A6 fmuld LOGA5,%fp2 | ...V*A5 @@ -440,7 +440,7 @@ fmovex %fp1,%fp0 fmulx %fp0,%fp0 | ...FP0 IS V fmovex %fp1,SAVEU(%a6) | ...STORE U IN MEMORY, FREE FP1 - fmovex %fp0,%fp1 + fmovex %fp0,%fp1 fmulx %fp1,%fp1 | ...FP1 IS W fmoved LOGB5,%fp3 @@ -465,7 +465,7 @@ fmulx %fp1,%fp0 | ...U*V*( [B1+W*(B3+W*B5)] + [V*(B2+W*B4)] ) fmovel %d1,%fpcr - faddx SAVEU(%a6),%fp0 + faddx SAVEU(%a6),%fp0 bra t_frcinx rts @@ -549,7 +549,7 @@ asrl #8,%d0 asrl #4,%d0 | ...D0 CONTAINS DISPLACEMENT FOR 1/F faddx %fp1,%fp1 | ...GET 2Z - fmovemx %fp2-%fp2/%fp3,-(%sp) | ...SAVE FP2 + fmovemx %fp2-%fp2/%fp3,-(%sp) | ...SAVE FP2 faddx %fp1,%fp0 | ...FP0 IS Y-F = (2-F)+2Z lea LOGTBL,%a0 | ...A0 IS ADDRESS OF 1/F addal %d0,%a0 @@ -569,7 +569,7 @@ faddx %fp1,%fp0 | ...FP0 IS Y-F fmovemx %fp2-%fp2/%fp3,-(%sp) | ...FP2 SAVED lea LOGTBL,%a0 - addal %d0,%a0 | ...A0 IS ADDRESS OF 1/F + addal %d0,%a0 | ...A0 IS ADDRESS OF 1/F fmoves zero,%fp1 | ...FP1 IS K = 0 bra LP1CONT1 diff -Nru a/arch/m68k/fpsp040/smovecr.S b/arch/m68k/fpsp040/smovecr.S --- a/arch/m68k/fpsp040/smovecr.S Tue May 18 23:38:09 2004 +++ b/arch/m68k/fpsp040/smovecr.S Tue May 18 23:38:09 2004 @@ -15,8 +15,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |SMOVECR idnt 2,1 | Motorola 040 Floating Point Software Package @@ -39,7 +39,7 @@ FZERO: .long 00000000 | -| FMOVECR +| FMOVECR | .global smovcr smovcr: @@ -55,9 +55,9 @@ cmpib #0x0e,%d0 |check range $0b - $0e bles SM_TBL |valid constants in this range cmpib #0x2f,%d0 |check range $10 - $2f - bles Z_VAL |if in this range, return zero + bles Z_VAL |if in this range, return zero cmpib #0x3f,%d0 |check range $30 - $3f - ble BG_TBL |valid constants in this range + ble BG_TBL |valid constants in this range Z_VAL: fmoves FZERO,%fp0 rts @@ -149,7 +149,7 @@ lea FP_SCR1(%a6),%a0 btstb #sign_bit,LOCAL_EX(%a0) sne LOCAL_SGN(%a0) |convert to internal ext. format - + bsr round |go round the mantissa bfclr LOCAL_SGN(%a0){#0:#8} |convert back to IEEE ext format diff -Nru a/arch/m68k/fpsp040/srem_mod.S b/arch/m68k/fpsp040/srem_mod.S --- a/arch/m68k/fpsp040/srem_mod.S Tue May 18 23:38:05 2004 +++ b/arch/m68k/fpsp040/srem_mod.S Tue May 18 23:38:05 2004 @@ -21,7 +21,7 @@ | --------- | | Step 1. Save and strip signs of X and Y: signX := sign(X), -| signY := sign(Y), X := |X|, Y := |Y|, +| signY := sign(Y), X := |X|, Y := |Y|, | signQ := signX EOR signY. Record whether MOD or REM | is requested. | @@ -41,7 +41,7 @@ | | Step 4. At this point, R = X - QY = MOD(X,Y). Set | Last_Subtract := false (used in Step 7 below). If -| MOD is requested, go to Step 6. +| MOD is requested, go to Step 6. | | Step 5. R = MOD(X,Y), but REM(X,Y) is requested. | 5.1 If R < Y/2, then R = MOD(X,Y) = REM(X,Y). Go to @@ -61,13 +61,13 @@ | X = 2^(j)*(Q+1)Y. set Q := 2^(j)*(Q+1), | R := 0. Return signQ, last 7 bits of Q, and R. | -| - +| + | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. SREM_MOD: |idnt 2,1 | Motorola 040 Floating Point Software Package @@ -362,10 +362,10 @@ |..Get Q | Get_Q: - clrl %d6 + clrl %d6 movew SignQ(%a6),%d6 | ...D6 is sign(Q) movel #8,%d7 - lsrl %d7,%d6 + lsrl %d7,%d6 andil #0x0000007F,%d3 | ...7 bits of Q orl %d6,%d3 | ...sign and bits of Q swap %d3 @@ -391,7 +391,7 @@ Rem_is_0: |..R = 2^(-j)X - Q Y = Y, thus R = 0 and quotient = 2^j (Q+1) addql #1,%d3 - cmpil #8,%d0 | ...D0 is j + cmpil #8,%d0 | ...D0 is j bges Q_Big lsll %d0,%d3 diff -Nru a/arch/m68k/fpsp040/ssin.S b/arch/m68k/fpsp040/ssin.S --- a/arch/m68k/fpsp040/ssin.S Tue May 18 23:38:07 2004 +++ b/arch/m68k/fpsp040/ssin.S Tue May 18 23:38:07 2004 @@ -83,8 +83,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |SSIN idnt 2,1 | Motorola 040 Floating Point Software Package @@ -204,7 +204,7 @@ |--HIDE THE NEXT THREE INSTRUCTIONS lea PITBL+0x200,%a1 | ...TABLE OF N*PI/2, N = -32,...,32 - + |--FP1 IS NOW READY fmovel %fp1,N(%a6) | ...CONVERT TO INTEGER @@ -273,7 +273,7 @@ faddx %fp2,%fp1 | ...[A1+T(A3+T(A5+TA7))]+[S(A2+T(A4+TA6))] |--FP3 RELEASED, RESTORE NOW AND TAKE SOME ADVANTAGE OF HIDING |--FP2 RELEASED, RESTORE NOW AND TAKE FULL ADVANTAGE OF HIDING - + fmulx %fp1,%fp0 | ...SIN(R')-R' |--FP1 RELEASED. @@ -335,7 +335,7 @@ fmulx %fp2,%fp0 | ...S(B2+T(B4+T(B6+TB8))) |--FP3 RELEASED, RESTORE NOW AND TAKE SOME ADVANTAGE OF HIDING |--FP2 RELEASED. - + faddx %fp1,%fp0 |--FP1 RELEASED @@ -352,7 +352,7 @@ |--IF |X| < 2**(-40), RETURN X OR 1. cmpil #0x3FFF8000,%d0 bgts REDUCEX - + SINSM: movel ADJN(%a6),%d0 @@ -466,7 +466,7 @@ movew %d2,FP_SCR2(%a6) clrw FP_SCR2+2(%a6) movel #0xC90FDAA2,FP_SCR2+4(%a6) - clrl FP_SCR2+8(%a6) | ...FP_SCR2 is 2**(L) * Piby2_1 + clrl FP_SCR2+8(%a6) | ...FP_SCR2 is 2**(L) * Piby2_1 |--FP2 IS READY fsubs TWOTO63(%a6),%fp2 | ...FP2 is N @@ -514,7 +514,7 @@ movel (%a7)+,%d2 fmovemx (%a7)+,%fp2-%fp5 - + movel ADJN(%a6),%d0 cmpil #4,%d0 @@ -559,7 +559,7 @@ |--HIDE THE NEXT THREE INSTRUCTIONS lea PITBL+0x200,%a1 | ...TABLE OF N*PI/2, N = -32,...,32 - + |--FP1 IS NOW READY fmovel %fp1,N(%a6) | ...CONVERT TO INTEGER @@ -577,7 +577,7 @@ |--HIDE THE NEXT TWO movel N(%a6),%d0 rorl #1,%d0 - + cmpil #0,%d0 | ...D0 < 0 IFF N IS ODD bge NEVEN @@ -641,7 +641,7 @@ fmulx %fp0,%fp1 | ...S(A1+...) fmulx %fp2,%fp0 | ...S(B2+...) - + fmulx RPRIME(%a6),%fp1 | ...R'S(A1+...) fadds COSB1,%fp0 | ...B1+S(B2...) @@ -709,7 +709,7 @@ fmulx %fp0,%fp1 | ...S(B2+...) fmulx %fp2,%fp0 | ...s(a1+...) - + fadds COSB1,%fp1 | ...B1+S(B2...) fmulx RPRIME(%a6),%fp0 | ...R'S(A1+...) @@ -728,7 +728,7 @@ SCBORS: cmpil #0x3FFF8000,%d0 bgt REDUCEX - + SCSM: movew #0x0000,XDCARE(%a6) diff -Nru a/arch/m68k/fpsp040/ssinh.S b/arch/m68k/fpsp040/ssinh.S --- a/arch/m68k/fpsp040/ssinh.S Tue May 18 23:38:08 2004 +++ b/arch/m68k/fpsp040/ssinh.S Tue May 18 23:38:08 2004 @@ -5,7 +5,7 @@ | an input argument; sSinhd does the same except for denormalized | input. | -| Input: Double-extended number X in location pointed to +| Input: Double-extended number X in location pointed to | by address register a0. | | Output: The value sinh(X) returned in floating-point register Fp0. @@ -49,8 +49,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |SSINH idnt 2,1 | Motorola 040 Floating Point Software Package @@ -91,7 +91,7 @@ moveml %a1/%d1,-(%sp) fmovemx %fp0-%fp0,(%a0) clrl %d1 - bsr setoxm1 | ...FP0 IS Z = EXPM1(Y) + bsr setoxm1 | ...FP0 IS Z = EXPM1(Y) fmovel #0,%fpcr moveml (%sp)+,%a1/%d1 diff -Nru a/arch/m68k/fpsp040/stan.S b/arch/m68k/fpsp040/stan.S --- a/arch/m68k/fpsp040/stan.S Tue May 18 23:38:05 2004 +++ b/arch/m68k/fpsp040/stan.S Tue May 18 23:38:05 2004 @@ -50,8 +50,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |STAN idnt 2,1 | Motorola 040 Floating Point Software Package @@ -213,34 +213,34 @@ blt NODD fmovex %fp0,%fp1 - fmulx %fp1,%fp1 | ...S = R*R + fmulx %fp1,%fp1 | ...S = R*R fmoved TANQ4,%fp3 fmoved TANP3,%fp2 - fmulx %fp1,%fp3 | ...SQ4 - fmulx %fp1,%fp2 | ...SP3 + fmulx %fp1,%fp3 | ...SQ4 + fmulx %fp1,%fp2 | ...SP3 faddd TANQ3,%fp3 | ...Q3+SQ4 faddx TANP2,%fp2 | ...P2+SP3 - fmulx %fp1,%fp3 | ...S(Q3+SQ4) - fmulx %fp1,%fp2 | ...S(P2+SP3) + fmulx %fp1,%fp3 | ...S(Q3+SQ4) + fmulx %fp1,%fp2 | ...S(P2+SP3) faddx TANQ2,%fp3 | ...Q2+S(Q3+SQ4) faddx TANP1,%fp2 | ...P1+S(P2+SP3) - fmulx %fp1,%fp3 | ...S(Q2+S(Q3+SQ4)) - fmulx %fp1,%fp2 | ...S(P1+S(P2+SP3)) + fmulx %fp1,%fp3 | ...S(Q2+S(Q3+SQ4)) + fmulx %fp1,%fp2 | ...S(P1+S(P2+SP3)) faddx TANQ1,%fp3 | ...Q1+S(Q2+S(Q3+SQ4)) - fmulx %fp0,%fp2 | ...RS(P1+S(P2+SP3)) + fmulx %fp0,%fp2 | ...RS(P1+S(P2+SP3)) - fmulx %fp3,%fp1 | ...S(Q1+S(Q2+S(Q3+SQ4))) - + fmulx %fp3,%fp1 | ...S(Q1+S(Q2+S(Q3+SQ4))) + + + faddx %fp2,%fp0 | ...R+RS(P1+S(P2+SP3)) - faddx %fp2,%fp0 | ...R+RS(P1+S(P2+SP3)) - fadds #0x3F800000,%fp1 | ...1+S(Q1+...) @@ -251,40 +251,40 @@ NODD: fmovex %fp0,%fp1 - fmulx %fp0,%fp0 | ...S = R*R + fmulx %fp0,%fp0 | ...S = R*R fmoved TANQ4,%fp3 fmoved TANP3,%fp2 - fmulx %fp0,%fp3 | ...SQ4 - fmulx %fp0,%fp2 | ...SP3 + fmulx %fp0,%fp3 | ...SQ4 + fmulx %fp0,%fp2 | ...SP3 faddd TANQ3,%fp3 | ...Q3+SQ4 faddx TANP2,%fp2 | ...P2+SP3 - fmulx %fp0,%fp3 | ...S(Q3+SQ4) - fmulx %fp0,%fp2 | ...S(P2+SP3) + fmulx %fp0,%fp3 | ...S(Q3+SQ4) + fmulx %fp0,%fp2 | ...S(P2+SP3) faddx TANQ2,%fp3 | ...Q2+S(Q3+SQ4) faddx TANP1,%fp2 | ...P1+S(P2+SP3) - fmulx %fp0,%fp3 | ...S(Q2+S(Q3+SQ4)) - fmulx %fp0,%fp2 | ...S(P1+S(P2+SP3)) + fmulx %fp0,%fp3 | ...S(Q2+S(Q3+SQ4)) + fmulx %fp0,%fp2 | ...S(P1+S(P2+SP3)) faddx TANQ1,%fp3 | ...Q1+S(Q2+S(Q3+SQ4)) - fmulx %fp1,%fp2 | ...RS(P1+S(P2+SP3)) + fmulx %fp1,%fp2 | ...RS(P1+S(P2+SP3)) + + fmulx %fp3,%fp0 | ...S(Q1+S(Q2+S(Q3+SQ4))) - fmulx %fp3,%fp0 | ...S(Q1+S(Q2+S(Q3+SQ4))) - - faddx %fp2,%fp1 | ...R+RS(P1+S(P2+SP3)) + faddx %fp2,%fp1 | ...R+RS(P1+S(P2+SP3)) fadds #0x3F800000,%fp0 | ...1+S(Q1+...) - + fmovex %fp1,-(%sp) eoril #0x80000000,(%sp) - fmovel %d1,%fpcr |restore users exceptions + fmovel %d1,%fpcr |restore users exceptions fdivx (%sp)+,%fp0 |last inst - possible exception set bra t_frcinx @@ -397,7 +397,7 @@ movew %d2,FP_SCR2(%a6) clrw FP_SCR2+2(%a6) movel #0xC90FDAA2,FP_SCR2+4(%a6) - clrl FP_SCR2+8(%a6) | ...FP_SCR2 is 2**(L) * Piby2_1 + clrl FP_SCR2+8(%a6) | ...FP_SCR2 is 2**(L) * Piby2_1 |--FP2 IS READY fsubs TWOTO63(%a6),%fp2 | ...FP2 is N @@ -445,7 +445,7 @@ movel (%a7)+,%d2 fmovemx (%a7)+,%fp2-%fp5 - + movel N(%a6),%d0 rorl #1,%d0 diff -Nru a/arch/m68k/fpsp040/stanh.S b/arch/m68k/fpsp040/stanh.S --- a/arch/m68k/fpsp040/stanh.S Tue May 18 23:38:06 2004 +++ b/arch/m68k/fpsp040/stanh.S Tue May 18 23:38:06 2004 @@ -49,14 +49,14 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |STANH idnt 2,1 | Motorola 040 Floating Point Software Package |section 8 - + #include "fpsp.h" .set X,FP_SCR5 @@ -106,7 +106,7 @@ movel %d1,-(%a7) clrl %d1 fmovemx %fp0-%fp0,(%a0) - bsr setoxm1 | ...FP0 IS Z = EXPM1(Y) + bsr setoxm1 | ...FP0 IS Z = EXPM1(Y) movel (%a7)+,%d1 fmovex %fp0,%fp1 @@ -149,7 +149,7 @@ eorl #0xC0000000,%d0 | ...-SIGN(X)*2 fmoves %d0,%fp1 | ...-SIGN(X)*2 IN SGL FMT - fdivx %fp0,%fp1 | ...-SIGN(X)2 / [EXP(Y)+1 ] + fdivx %fp0,%fp1 | ...-SIGN(X)2 / [EXP(Y)+1 ] movel SGN(%a6),%d0 orl #0x3F800000,%d0 | ...SGN diff -Nru a/arch/m68k/fpsp040/sto_res.S b/arch/m68k/fpsp040/sto_res.S --- a/arch/m68k/fpsp040/sto_res.S Tue May 18 23:38:08 2004 +++ b/arch/m68k/fpsp040/sto_res.S Tue May 18 23:38:08 2004 @@ -5,9 +5,9 @@ | Library functions return result in fp0. If fp0 is not the | users destination register then fp0 is moved to the | correct floating-point destination register. fp0 and fp1 -| are then restored to the original contents. +| are then restored to the original contents. | -| Input: result in fp0,fp1 +| Input: result in fp0,fp1 | | d2 & a0 should be kept unmodified | @@ -19,8 +19,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. STO_RES: |idnt 2,1 | Motorola 040 Floating Point Software Package diff -Nru a/arch/m68k/fpsp040/stwotox.S b/arch/m68k/fpsp040/stwotox.S --- a/arch/m68k/fpsp040/stwotox.S Tue May 18 23:38:06 2004 +++ b/arch/m68k/fpsp040/stwotox.S Tue May 18 23:38:06 2004 @@ -76,8 +76,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |STWOTOX idnt 2,1 | Motorola 040 Floating Point Software Package @@ -222,17 +222,17 @@ cmpil #0x400D80C0,%d0 | ...|X| > 16480? bles TWOMAIN bra EXPBORS - + TWOMAIN: |--USUAL CASE, 2^(-70) <= |X| <= 16480 fmovex %fp0,%fp1 fmuls #0x42800000,%fp1 | ...64 * X - + fmovel %fp1,N(%a6) | ...N = ROUND-TO-INT(64 X) movel %d2,-(%sp) - lea EXPTBL,%a1 | ...LOAD ADDRESS OF TABLE OF 2^(J/64) + lea EXPTBL,%a1 | ...LOAD ADDRESS OF TABLE OF 2^(J/64) fmovel N(%a6),%fp1 | ...N --> FLOATING FMT movel N(%a6),%d0 movel %d0,%d2 @@ -244,7 +244,7 @@ asrl #1,%d0 | ...D0 IS M subl %d0,%d2 | ...d2 IS M', N = 64(M+M') + J addil #0x3FFF,%d2 - movew %d2,ADJFACT(%a6) | ...ADJFACT IS 2^(M') + movew %d2,ADJFACT(%a6) | ...ADJFACT IS 2^(M') movel (%sp)+,%d2 |--SUMMARY: a1 IS ADDRESS FOR THE LEADING PORTION OF 2^(J/64), |--D0 IS M WHERE N = 64(M+M') + J. NOTE THAT |M| <= 16140 BY DESIGN. @@ -258,13 +258,13 @@ movew (%a1)+,FACT2(%a6) clrw FACT2+2(%a6) - fsubx %fp1,%fp0 | ...X - (1/64)*INT(64 X) + fsubx %fp1,%fp0 | ...X - (1/64)*INT(64 X) movew (%a1)+,FACT2HI(%a6) clrw FACT2HI+2(%a6) clrl FACT2LOW(%a6) addw %d0,FACT1(%a6) - + fmulx LOG2,%fp0 | ...FP0 IS R addw %d0,FACT2(%a6) @@ -332,10 +332,10 @@ fmovex %fp0,%fp1 fmuld L2TEN64,%fp1 | ...X*64*LOG10/LOG2 - + fmovel %fp1,N(%a6) | ...N=INT(X*64*LOG10/LOG2) movel %d2,-(%sp) - lea EXPTBL,%a1 | ...LOAD ADDRESS OF TABLE OF 2^(J/64) + lea EXPTBL,%a1 | ...LOAD ADDRESS OF TABLE OF 2^(J/64) fmovel N(%a6),%fp1 | ...N --> FLOATING FMT movel N(%a6),%d0 movel %d0,%d2 @@ -347,7 +347,7 @@ asrl #1,%d0 | ...D0 IS M subl %d0,%d2 | ...d2 IS M', N = 64(M+M') + J addil #0x3FFF,%d2 - movew %d2,ADJFACT(%a6) | ...ADJFACT IS 2^(M') + movew %d2,ADJFACT(%a6) | ...ADJFACT IS 2^(M') movel (%sp)+,%d2 |--SUMMARY: a1 IS ADDRESS FOR THE LEADING PORTION OF 2^(J/64), @@ -375,7 +375,7 @@ clrl FACT2LOW(%a6) fmulx LOG10,%fp0 | ...FP0 IS R - + addw %d0,FACT1(%a6) addw %d0,FACT2(%a6) @@ -405,9 +405,9 @@ fmulx %fp1,%fp2 | ...FP2 IS S*(A1+S*(A3+S*A5)) faddx %fp3,%fp0 | ...FP0 IS R+R*S*(A2+S*A4) - + faddx %fp2,%fp0 | ...FP0 IS EXP(R) - 1 - + |--FINAL RECONSTRUCTION PROCESS |--EXP(X) = 2^M*2^(J/64) + 2^M*2^(J/64)*(EXP(R)-1) - (1 OR 0) diff -Nru a/arch/m68k/fpsp040/tbldo.S b/arch/m68k/fpsp040/tbldo.S --- a/arch/m68k/fpsp040/tbldo.S Tue May 18 23:38:08 2004 +++ b/arch/m68k/fpsp040/tbldo.S Tue May 18 23:38:08 2004 @@ -6,19 +6,19 @@ | of indirection in do_func for monadic | functions. Dyadic functions require two | levels, and the tables are still contained -| in do_func. The table is arranged for +| in do_func. The table is arranged for | index with a 10-bit index, with the first | 7 bits the opcode, and the remaining 3 | the stag. For dyadic functions, all | valid addresses are to the generic entry -| point. +| point. | | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |TBLDO idnt 2,1 | Motorola 040 Floating Point Software Package @@ -57,7 +57,7 @@ .long smovcr |$00-7 fmovecr all .long sint |$01-0 fint norm - .long szero |$01-1 fint zero + .long szero |$01-1 fint zero .long sinf |$01-2 fint inf .long src_nan |$01-3 fint nan .long sintd |$01-4 fint denorm inx diff -Nru a/arch/m68k/fpsp040/util.S b/arch/m68k/fpsp040/util.S --- a/arch/m68k/fpsp040/util.S Tue May 18 23:38:08 2004 +++ b/arch/m68k/fpsp040/util.S Tue May 18 23:38:08 2004 @@ -4,20 +4,20 @@ | This file contains routines used by other programs. | | ovf_res: used by overflow to force the correct -| result. ovf_r_k, ovf_r_x2, ovf_r_x3 are +| result. ovf_r_k, ovf_r_x2, ovf_r_x3 are | derivatives of this routine. | get_fline: get user's opcode word | g_dfmtou: returns the destination format. | g_opcls: returns the opclass of the float instruction. -| g_rndpr: returns the rounding precision. +| g_rndpr: returns the rounding precision. | reg_dest: write byte, word, or long data to Dn | | | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. |UTIL idnt 2,1 | Motorola 040 Floating Point Software Package @@ -39,13 +39,13 @@ | are unnecessary as ovf_res always returns the sign separately from | the exponent. | ;+inf -EXT_PINF: .long 0x7fff0000,0x00000000,0x00000000,0x00000000 +EXT_PINF: .long 0x7fff0000,0x00000000,0x00000000,0x00000000 | ;largest +ext -EXT_PLRG: .long 0x7ffe0000,0xffffffff,0xffffffff,0x00000000 +EXT_PLRG: .long 0x7ffe0000,0xffffffff,0xffffffff,0x00000000 | ;largest magnitude +sgl in ext -SGL_PLRG: .long 0x407e0000,0xffffff00,0x00000000,0x00000000 +SGL_PLRG: .long 0x407e0000,0xffffff00,0x00000000,0x00000000 | ;largest magnitude +dbl in ext -DBL_PLRG: .long 0x43fe0000,0xffffffff,0xfffff800,0x00000000 +DBL_PLRG: .long 0x43fe0000,0xffffffff,0xfffff800,0x00000000 | ;largest -ext tblovfl: @@ -70,7 +70,7 @@ | | ovf_r_k --- overflow result calculation | -| This entry point is used by kernel_ex. +| This entry point is used by kernel_ex. | | This forces the destination precision to be extended | @@ -79,7 +79,7 @@ | .global ovf_r_k ovf_r_k: - lea ETEMP(%a6),%a0 |a0 points to source operand + lea ETEMP(%a6),%a0 |a0 points to source operand bclrb #sign_bit,ETEMP_EX(%a6) sne ETEMP_SGN(%a6) |convert to internal IEEE format @@ -112,10 +112,10 @@ beql ovff_dbl |force precision is double movew CMDREG3B(%a6),%d0 |get the command word again andil #0x7f,%d0 |clear all except operation - cmpil #0x33,%d0 + cmpil #0x33,%d0 beql ovf_fsgl |fsglmul or fsgldiv cmpil #0x30,%d0 - beql ovf_fsgl + beql ovf_fsgl bra ovf_fpcr |instruction is none of the above | ;use FPCR ovf_e1_exc: @@ -129,10 +129,10 @@ andil #0x0000007f,%d0 |clear all except the op code cmpil #0x00000027,%d0 beql ovf_fsgl |fsglmul - cmpil #0x00000024,%d0 + cmpil #0x00000024,%d0 beql ovf_fsgl |fsgldiv bra ovf_fpcr |none of the above, use FPCR -| +| | | Inst is either fsgldiv or fsglmul. Force extended precision. | @@ -152,7 +152,7 @@ ovf_fpcr: bfextu FPCR_MODE(%a6){#0:#2},%d0 |set round precision bra ovf_res - + | | | ovf_r_x3 --- overflow result calculation @@ -174,9 +174,9 @@ | ovf_res --- overflow result calculation | | Input: -| a0 points to operand in internal extended format +| a0 points to operand in internal extended format | Output: -| a0 points to result in internal extended format +| a0 points to result in internal extended format | .global ovf_res ovf_res: @@ -192,7 +192,7 @@ EXT_RN: leal EXT_PINF,%a1 |answer is +/- infinity bsetb #inf_bit,FPSR_CC(%a6) - bra set_sign |now go set the sign + bra set_sign |now go set the sign EXT_RZ: leal EXT_PLRG,%a1 |answer is +/- large number bra set_sign |now go set the sign @@ -312,10 +312,10 @@ movel (%a7)+,%d0 rts | -| g_rndpr --- put rounding precision in d0{1:0} -| +| g_rndpr --- put rounding precision in d0{1:0} +| | valid return codes are: -| 00 - extended +| 00 - extended | 01 - single | 10 - double | @@ -350,7 +350,7 @@ | For move out instructions (opclass 011) the destination format | is the same as the rounding precision. Pass results from g_dfmtou. | - bsr g_dfmtou + bsr g_dfmtou rts op_0x0: btstb #E3,E_BYTE(%a6) @@ -364,7 +364,7 @@ beql unff_dbl movew CMDREG3B(%a6),%d0 |get the command word again andil #0x7f,%d0 |clear all except operation - cmpil #0x33,%d0 + cmpil #0x33,%d0 beql unf_fsgl |fsglmul or fsgldiv cmpil #0x30,%d0 beql unf_fsgl |fsgldiv or fsglmul @@ -408,7 +408,7 @@ | Force extended | unf_fsgl: - movel #0,%d0 + movel #0,%d0 rts | | Get rounding precision set in FPCR{7:6}. @@ -436,7 +436,7 @@ | If E1, the format is from cmdreg1b{12:10} | If E3, the format is extended. | -| Dest. Fmt. +| Dest. Fmt. | extended 010 -> 00 | single 001 -> 01 | double 101 -> 10 @@ -468,26 +468,26 @@ | are unnecessary as unf_sub always returns the sign separately from | the exponent. | ;+zero -EXT_PZRO: .long 0x00000000,0x00000000,0x00000000,0x00000000 +EXT_PZRO: .long 0x00000000,0x00000000,0x00000000,0x00000000 | ;+zero -SGL_PZRO: .long 0x3f810000,0x00000000,0x00000000,0x00000000 +SGL_PZRO: .long 0x3f810000,0x00000000,0x00000000,0x00000000 | ;+zero -DBL_PZRO: .long 0x3c010000,0x00000000,0x00000000,0x00000000 +DBL_PZRO: .long 0x3c010000,0x00000000,0x00000000,0x00000000 | ;smallest +ext denorm -EXT_PSML: .long 0x00000000,0x00000000,0x00000001,0x00000000 +EXT_PSML: .long 0x00000000,0x00000000,0x00000001,0x00000000 | ;smallest +sgl denorm -SGL_PSML: .long 0x3f810000,0x00000100,0x00000000,0x00000000 +SGL_PSML: .long 0x3f810000,0x00000100,0x00000000,0x00000000 | ;smallest +dbl denorm -DBL_PSML: .long 0x3c010000,0x00000000,0x00000800,0x00000000 +DBL_PSML: .long 0x3c010000,0x00000000,0x00000800,0x00000000 | | UNF_SUB --- underflow result calculation | | Input: -| d0 contains round precision +| d0 contains round precision | a0 points to input operand in the internal extended format | | Output: -| a0 points to correct internal extended precision result. +| a0 points to correct internal extended precision result. | tblunf: @@ -522,7 +522,7 @@ uEXT_RN: leal EXT_PZRO,%a1 |answer is +/- zero bsetb #z_bit,FPSR_CC(%a6) - bra uset_sign |now go set the sign + bra uset_sign |now go set the sign uEXT_RZ: leal EXT_PZRO,%a1 |answer is +/- zero bsetb #z_bit,FPSR_CC(%a6) @@ -629,7 +629,7 @@ | | | Input: -| L_SCR1: Data +| L_SCR1: Data | d1: data size and dest register number formatted as: | | 32 5 4 3 2 1 0 diff -Nru a/arch/m68k/fpsp040/x_bsun.S b/arch/m68k/fpsp040/x_bsun.S --- a/arch/m68k/fpsp040/x_bsun.S Tue May 18 23:38:08 2004 +++ b/arch/m68k/fpsp040/x_bsun.S Tue May 18 23:38:08 2004 @@ -13,8 +13,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. X_BSUN: |idnt 2,1 | Motorola 040 Floating Point Software Package diff -Nru a/arch/m68k/fpsp040/x_fline.S b/arch/m68k/fpsp040/x_fline.S --- a/arch/m68k/fpsp040/x_fline.S Tue May 18 23:38:05 2004 +++ b/arch/m68k/fpsp040/x_fline.S Tue May 18 23:38:05 2004 @@ -13,8 +13,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. X_FLINE: |idnt 2,1 | Motorola 040 Floating Point Software Package @@ -52,7 +52,7 @@ leal L_SCR1(%a6),%a1 |use L_SCR1 as scratch movel #4,%d0 addl #4,%a6 |to offset the sub.l #4,a7 above so that -| ;a6 can point correctly to the stack frame +| ;a6 can point correctly to the stack frame | ;before branching to mem_read bsrl mem_read subl #4,%a6 @@ -62,7 +62,7 @@ bne not_mvcr |exit if not bfextu %d0{#16:#6},%d1 cmpib #0x17,%d1 |check if it is an FMOVECR encoding - bne not_mvcr + bne not_mvcr | ;if an FMOVECR instruction, fix stack | ;and go to FPSP_UNIMP fix_stack: diff -Nru a/arch/m68k/fpsp040/x_operr.S b/arch/m68k/fpsp040/x_operr.S --- a/arch/m68k/fpsp040/x_operr.S Tue May 18 23:38:08 2004 +++ b/arch/m68k/fpsp040/x_operr.S Tue May 18 23:38:08 2004 @@ -13,8 +13,8 @@ | the dest format is integer (b, w, l) and the operr is caused by | integer overflow, or the source op is inf, then the result stored is | garbage. -| There are three cases in which operr is incorrectly signaled on the -| 040. This occurs for move_out of format b, w, or l for the largest +| There are three cases in which operr is incorrectly signaled on the +| 040. This occurs for move_out of format b, w, or l for the largest | negative integer (-2^7 for b, -2^15 for w, -2^31 for l). | | On opclass = 011 fmove.(b,w,l) that causes a conversion @@ -36,15 +36,15 @@ | Note 2: For trap enabled 040 does the following: | If the inst is move_out, then same as Note 1. | If the inst is not move_out, the dest is not modified. -| The exceptional operand is not defined for integer overflow +| The exceptional operand is not defined for integer overflow | during a move_out. | | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. X_OPERR: |idnt 2,1 | Motorola 040 Floating Point Software Package @@ -77,7 +77,7 @@ beqs operr_end | -| If the destination size is B,W,or L, the operr must be +| If the destination size is B,W,or L, the operr must be | handled here. | movel CMDREG1B(%a6),%d0 @@ -90,9 +90,9 @@ beq operr_byte | -| The size is not B,W,or L, so the operr is handled by the +| The size is not B,W,or L, so the operr is handled by the | kernel handler. Set the operr bits and clean up, leaving -| only the integer exception frame on the stack, and the +| only the integer exception frame on the stack, and the | fpu in the original exceptional state. | operr_end: @@ -111,7 +111,7 @@ moveb STAG(%a6),%d0 |test stag for nan andib #0xe0,%d0 |clr all but tag cmpib #0x60,%d0 |check for nan - beq operr_nan + beq operr_nan cmpil #0x80000000,FPTEMP_LO(%a6) |test if ls lword is special bnes chklerr |if not equal, check for incorrect operr bsr check_upper |check if exp and ms mant are special @@ -158,7 +158,7 @@ moveb STAG(%a6),%d0 |test stag for nan andib #0xe0,%d0 |clr all but tag cmpib #0x60,%d0 |check for nan - beq operr_nan + beq operr_nan cmpil #0xffff8000,FPTEMP_LO(%a6) |test if ls lword is special bnes chkwerr |if not equal, check for incorrect operr bsr check_upper |check if exp and ms mant are special @@ -185,7 +185,7 @@ moveb STAG(%a6),%d0 |test stag for nan andib #0xe0,%d0 |clr all but tag cmpib #0x60,%d0 |check for nan - beqs operr_nan + beqs operr_nan cmpil #0xffffff80,FPTEMP_LO(%a6) |test if ls lword is special bnes chkberr |if not equal, check for incorrect operr bsr check_upper |check if exp and ms mant are special @@ -229,7 +229,7 @@ bclrb #inex2_bit,FPSR_EXCEPT(%a6) bclrb #ainex_bit,FPSR_AEXCEPT(%a6) fmovel #0,%FPSR - + tstw FPTEMP_EX(%a6) |check sign blts load_neg movel #0x7fffffff,%d0 @@ -280,7 +280,7 @@ bsrl mem_write rts | -| Check the exponent for $c000 and the upper 32 bits of the +| Check the exponent for $c000 and the upper 32 bits of the | mantissa for $ffffffff. If both are true, return d0 clr | and store the lower n bits of the least lword of FPTEMP | to d0 for write out. If not, it is a real operr, and set d0. diff -Nru a/arch/m68k/fpsp040/x_ovfl.S b/arch/m68k/fpsp040/x_ovfl.S --- a/arch/m68k/fpsp040/x_ovfl.S Tue May 18 23:38:06 2004 +++ b/arch/m68k/fpsp040/x_ovfl.S Tue May 18 23:38:06 2004 @@ -8,7 +8,7 @@ | or when storing to memory, the contents of a floating-point | data register are too large to be represented in the | destination format. -| +| | Trap disabled results | | If the instruction is move_out, then garbage is stored in the @@ -35,8 +35,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. X_OVFL: |idnt 2,1 | Motorola 040 Floating Point Software Package @@ -73,7 +73,7 @@ | if overflow traps not enabled check for inexact exception | btstb #ovfl_bit,FPCR_ENABLE(%a6) - beqs ck_inex + beqs ck_inex | btstb #E3,E_BYTE(%a6) beqs no_e3_1 @@ -120,7 +120,7 @@ frestore (%a7)+ unlk %a6 bral real_inex - + ovfl_exit: bclrb #E3,E_BYTE(%a6) |test and clear E3 bit beqs e1_set @@ -152,7 +152,7 @@ | ovf_adj: | -| Have a0 point to the correct operand. +| Have a0 point to the correct operand. | btstb #E3,E_BYTE(%a6) |test E3 bit beqs ovf_e1 @@ -175,10 +175,10 @@ | CCs are defined to be 'not affected' for the opclass3 instruction. | moveb FPSR_CC(%a6),L_SCR1(%a6) - bsrl ovf_r_x3 |returns a0 pointing to result + bsrl ovf_r_x3 |returns a0 pointing to result moveb L_SCR1(%a6),FPSR_CC(%a6) bral store |stores to memory or register - + not_opc011: bsrl ovf_r_x2 |returns a0 pointing to result bral store |stores to memory or register diff -Nru a/arch/m68k/fpsp040/x_snan.S b/arch/m68k/fpsp040/x_snan.S --- a/arch/m68k/fpsp040/x_snan.S Tue May 18 23:38:09 2004 +++ b/arch/m68k/fpsp040/x_snan.S Tue May 18 23:38:09 2004 @@ -14,7 +14,7 @@ | of the mantissa are sent to the integer unit). | | For trap enabled the 040 does the following: -| If the inst is move_out, then the results are the same as for trap +| If the inst is move_out, then the results are the same as for trap | disabled with the exception posted. If the instruction is not move_ | out, the dest. is not modified, and the exception is posted. | @@ -22,8 +22,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. X_SNAN: |idnt 2,1 | Motorola 040 Floating Point Software Package @@ -139,7 +139,7 @@ bral fpsp_done | -| Move_out +| Move_out | move_out: movel EXC_EA(%a6),%a0 |get from exc frame @@ -147,18 +147,18 @@ bfextu CMDREG1B(%a6){#3:#3},%d0 |move rx field to d0{2:0} cmpil #0,%d0 |check for long beqs sto_long |branch if move_out long - + cmpil #4,%d0 |check for word beqs sto_word |branch if move_out word - + cmpil #6,%d0 |check for byte beqs sto_byte |branch if move_out byte - + | | Not byte, word or long | rts -| +| | Get the 32 most significant bits of etemp mantissa | sto_long: @@ -167,13 +167,13 @@ | | Set signalling nan bit | - bsetl #30,%d1 + bsetl #30,%d1 | | Store to the users destination address | tstl %a0 |check if is 0 beqs wrt_dn |destination is a data register - + movel %d1,-(%a7) |move the snan onto the stack movel %a0,%a1 |load dest addr into a1 movel %a7,%a0 |load src addr of snan into a0 @@ -189,7 +189,7 @@ | | Set signalling nan bit | - bsetl #30,%d1 + bsetl #30,%d1 | | Store to the users destination address | @@ -211,7 +211,7 @@ | | Set signalling nan bit | - bsetl #30,%d1 + bsetl #30,%d1 | | Store to the users destination address | @@ -253,7 +253,7 @@ | Check if it is a src nan or dst nan | not_out: - movel DTAG(%a6),%d0 + movel DTAG(%a6),%d0 bfextu %d0{#0:#3},%d0 |isolate dtag in lsbs cmpib #3,%d0 |check for nan in destination diff -Nru a/arch/m68k/fpsp040/x_store.S b/arch/m68k/fpsp040/x_store.S --- a/arch/m68k/fpsp040/x_store.S Tue May 18 23:38:09 2004 +++ b/arch/m68k/fpsp040/x_store.S Tue May 18 23:38:09 2004 @@ -11,8 +11,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. X_STORE: |idnt 2,1 | Motorola 040 Floating Point Software Package @@ -54,7 +54,7 @@ | in the USER_FPn variable on the stack because all exception | handlers restore fp0-fp3 from there. | - cmpb #0x80,%d0 + cmpb #0x80,%d0 bnes not_fp0 fmovemx %fp0-%fp0,USER_FP0(%a6) rts @@ -115,18 +115,18 @@ | get rid of ext integer bit | dbl_mant = ext_mant{62:12} | -| --------------- --------------- --------------- +| --------------- --------------- --------------- | extended -> |s| exp | |1| ms mant | | ls mant | -| --------------- --------------- --------------- -| 95 64 63 62 32 31 11 0 +| --------------- --------------- --------------- +| 95 64 63 62 32 31 11 0 | | | | | | | | | -| v v -| --------------- --------------- -| double -> |s|exp| mant | | mant | -| --------------- --------------- -| 63 51 32 31 0 +| v v +| --------------- --------------- +| double -> |s|exp| mant | | mant | +| --------------- --------------- +| 63 51 32 31 0 | dest_dbl: clrl %d0 |clear d0 @@ -137,7 +137,7 @@ addw #0x3ff,%d0 |add double precision bias swap %d0 |d0 now in upper word lsll #4,%d0 |d0 now in proper place for dbl prec exp - tstb LOCAL_SGN(%a1) + tstb LOCAL_SGN(%a1) beqs get_mant |if positive, go process mantissa bsetl #31,%d0 |if negative, put in sign information | ; before continuing @@ -186,18 +186,18 @@ | get rid of ext integer bit | sgl_mant = ext_mant{62:12} | -| --------------- --------------- --------------- +| --------------- --------------- --------------- | extended -> |s| exp | |1| ms mant | | ls mant | -| --------------- --------------- --------------- -| 95 64 63 62 40 32 31 12 0 +| --------------- --------------- --------------- +| 95 64 63 62 40 32 31 12 0 | | | | | | | | | -| v v -| --------------- -| single -> |s|exp| mant | -| --------------- -| 31 22 0 +| v v +| --------------- +| single -> |s|exp| mant | +| --------------- +| 31 22 0 | dest_sgl: clrl %d0 @@ -208,7 +208,7 @@ addw #0x7f,%d0 |add single precision bias swap %d0 |put exp in upper word of d0 lsll #7,%d0 |shift it into single exp bits - tstb LOCAL_SGN(%a1) + tstb LOCAL_SGN(%a1) beqs get_sman |if positive, continue bsetl #31,%d0 |if negative, put in sign first bras get_sman |get mantissa @@ -240,7 +240,7 @@ orl #0x10,%d1 |reg_dest wants size added to reg# bral reg_dest |size is X, rts in reg_dest will | ;return to caller of dest_sgl - + dest_ext: tstb LOCAL_SGN(%a1) |put back sign into exponent word beqs dstx_cont diff -Nru a/arch/m68k/fpsp040/x_unfl.S b/arch/m68k/fpsp040/x_unfl.S --- a/arch/m68k/fpsp040/x_unfl.S Tue May 18 23:38:05 2004 +++ b/arch/m68k/fpsp040/x_unfl.S Tue May 18 23:38:05 2004 @@ -4,25 +4,25 @@ | fpsp_unfl --- FPSP handler for underflow exception | | Trap disabled results -| For 881/2 compatibility, sw must denormalize the intermediate -| result, then store the result. Denormalization is accomplished -| by taking the intermediate result (which is always normalized) and -| shifting the mantissa right while incrementing the exponent until -| it is equal to the denormalized exponent for the destination -| format. After denormalization, the result is rounded to the +| For 881/2 compatibility, sw must denormalize the intermediate +| result, then store the result. Denormalization is accomplished +| by taking the intermediate result (which is always normalized) and +| shifting the mantissa right while incrementing the exponent until +| it is equal to the denormalized exponent for the destination +| format. After denormalization, the result is rounded to the | destination format. -| +| | Trap enabled results -| All trap disabled code applies. In addition the exceptional -| operand needs to made available to the user with a bias of $6000 +| All trap disabled code applies. In addition the exceptional +| operand needs to made available to the user with a bias of $6000 | added to the exponent. | | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. X_UNFL: |idnt 2,1 | Motorola 040 Floating Point Software Package @@ -91,7 +91,7 @@ | | Inexact enabled and reported, and we must take an inexact exception -| +| take_inex: btstb #E3,E_BYTE(%a6) beqs no_e3_2 @@ -145,7 +145,7 @@ | ;1=sgl, 2=dbl | ;we need the RND_PREC in the | ;upper word for round - movew #0,-(%a7) + movew #0,-(%a7) movew %d0,-(%a7) |copy RND_PREC to stack | | @@ -199,7 +199,7 @@ | must not corrupt a0 and d0. | | -| Perform Round +| Perform Round | Input: a0 points to input operand | d0{31:29} has guard, round, sticky | d1{01:00} has rounding mode @@ -222,7 +222,7 @@ bsrl g_dfmtou tstb %d0 beqs ext_opc011 |If extended, do not subtract -| ;If destination format is sgl/dbl, +| ;If destination format is sgl/dbl, tstb LOCAL_HI(%a0) |If rounded result is normal,don't | ;subtract bmis ext_opc011 @@ -252,12 +252,12 @@ bnes ck_sgn bsetb #z_bit,FPSR_CC(%a6) |set condition codes if zero ck_sgn: - btstb #sign_bit,LOCAL_EX(%a0) |check the sign bit + btstb #sign_bit,LOCAL_EX(%a0) |check the sign bit beqs unf_done bsetb #neg_bit,FPSR_CC(%a6) | -| Finish. +| Finish. | unf_done: btstb #inex2_bit,FPSR_EXCEPT(%a6) diff -Nru a/arch/m68k/fpsp040/x_unimp.S b/arch/m68k/fpsp040/x_unimp.S --- a/arch/m68k/fpsp040/x_unimp.S Tue May 18 23:38:08 2004 +++ b/arch/m68k/fpsp040/x_unimp.S Tue May 18 23:38:08 2004 @@ -1,14 +1,14 @@ | | x_unimp.sa 3.3 7/1/91 | -| fpsp_unimp --- FPSP handler for unimplemented instruction +| fpsp_unimp --- FPSP handler for unimplemented instruction | exception. | | Invoked when the user program encounters a floating-point | op-code that hardware does not support. Trap vector# 11 | (See table 8-1 MC68030 User's Manual). | -| +| | Note: An fsave for an unimplemented inst. will create a short | fsave stack. | @@ -22,8 +22,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. X_UNIMP: |idnt 2,1 | Motorola 040 Floating Point Software Package diff -Nru a/arch/m68k/fpsp040/x_unsupp.S b/arch/m68k/fpsp040/x_unsupp.S --- a/arch/m68k/fpsp040/x_unsupp.S Tue May 18 23:38:09 2004 +++ b/arch/m68k/fpsp040/x_unsupp.S Tue May 18 23:38:09 2004 @@ -3,18 +3,18 @@ | | fpsp_unsupp --- FPSP handler for unsupported data type exception | -| Trap vector #55 (See table 8-1 Mc68030 User's manual). +| Trap vector #55 (See table 8-1 Mc68030 User's manual). | Invoked when the user program encounters a data format (packed) that | hardware does not support or a data type (denormalized numbers or un- | normalized numbers). -| Normalizes denorms and unnorms, unpacks packed numbers then stores -| them back into the machine to let the 040 finish the operation. +| Normalizes denorms and unnorms, unpacks packed numbers then stores +| them back into the machine to let the 040 finish the operation. | | Unsupp calls two routines: -| 1. get_op - gets the operand(s) -| 2. res_func - restore the function back into the 040 or -| if fmove.p fpm, then pack source (fpm) -| and store in users memory . +| 1. get_op - gets the operand(s) +| 2. res_func - restore the function back into the 040 or +| if fmove.p fpm, then pack source (fpm) +| and store in users memory . | | Input: Long fsave stack frame | @@ -23,8 +23,8 @@ | Copyright (C) Motorola, Inc. 1990 | All Rights Reserved | -| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -| The copyright notice above does not evidence any +| THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +| The copyright notice above does not evidence any | actual or intended publication of such source code. X_UNSUPP: |idnt 2,1 | Motorola 040 Floating Point Software Package diff -Nru a/arch/m68k/hp300/hp300map.map b/arch/m68k/hp300/hp300map.map --- a/arch/m68k/hp300/hp300map.map Tue May 18 23:38:09 2004 +++ b/arch/m68k/hp300/hp300map.map Tue May 18 23:38:09 2004 @@ -3,29 +3,29 @@ # Change the above line into # keymaps 0-2,4-6,8,12 # in case you want the entries -# altgr control keycode 83 = Boot -# altgr control keycode 111 = Boot +# altgr control keycode 83 = Boot +# altgr control keycode 111 = Boot # below. # # In fact AltGr is used very little, and one more keymap can # be saved by mapping AltGr to Alt (and adapting a few entries): # keycode 100 = Alt # -keycode 1 = +keycode 1 = keycode 2 = Alt keycode 3 = Alt keycode 4 = Shift keycode 5 = Shift keycode 6 = Control -keycode 7 = -keycode 8 = -keycode 9 = -keycode 10 = -keycode 11 = -keycode 12 = -keycode 13 = +keycode 7 = +keycode 8 = +keycode 9 = +keycode 10 = +keycode 11 = +keycode 12 = +keycode 13 = keycode 14 = -keycode 15 = +keycode 15 = keycode 16 = keycode 17 = keycode 18 = @@ -34,12 +34,12 @@ keycode 21 = keycode 22 = keycode 23 = -keycode 24 = b -keycode 25 = v +keycode 24 = b +keycode 25 = v keycode 26 = c keycode 27 = x keycode 28 = z -keycode 29 = +keycode 29 = keycode 30 = keycode 31 = Escape Delete keycode 32 = @@ -55,7 +55,7 @@ keycode 42 = f keycode 43 = d keycode 44 = s -keycode 45 = a +keycode 45 = a keycode 46 = keycode 47 = Caps_Lock keycode 48 = u @@ -65,8 +65,8 @@ keycode 52 = e keycode 53 = w keycode 54 = q -keycode 55 = Tab Tab - alt keycode 55 = Meta_Tab +keycode 55 = Tab Tab + alt keycode 55 = Meta_Tab keycode 56 = seven ampersand keycode 57 = six asciicircum keycode 58 = five percent @@ -74,19 +74,19 @@ keycode 60 = three numbersign keycode 61 = two at at keycode 62 = one exclam exclam -keycode 63 = grave asciitilde - control keycode 63 = nul - alt keycode 63 = Meta_grave -keycode 64 = -keycode 65 = -keycode 66 = -keycode 67 = -keycode 68 = -keycode 69 = -keycode 70 = -keycode 71 = +keycode 63 = grave asciitilde + control keycode 63 = nul + alt keycode 63 = Meta_grave +keycode 64 = +keycode 65 = +keycode 66 = +keycode 67 = +keycode 68 = +keycode 69 = +keycode 70 = +keycode 71 = keycode 72 = -keycode 73 = F4 +keycode 73 = F4 control keycode 73 = Console_4 keycode 74 = F3 control keycode 74 = Console_3 @@ -107,8 +107,8 @@ keycode 84 = F8 control keycode 84 = Console_8 keycode 85 = -keycode 86 = -keycode 87 = +keycode 86 = +keycode 87 = keycode 88 = eight asterisk asterisk keycode 89 = nine parenleft bracketleft keycode 90 = zero parenright bracketright @@ -122,30 +122,30 @@ keycode 98 = p keycode 99 = bracketleft braceleft keycode 100 = bracketright braceright -keycode 101 = backslash bar +keycode 101 = backslash bar control keycode 101 = Control_backslash - alt keycode 101 = Meta_backslash -keycode 102 = -keycode 103 = + alt keycode 101 = Meta_backslash +keycode 102 = +keycode 103 = keycode 104 = j keycode 105 = k keycode 106 = l keycode 107 = semicolon colon - alt keycode 107 = Meta_semicolon -keycode 108 = apostrophe quotedbl - control keycode 108 = Control_g - alt keycode 108 = Meta_apostrophe + alt keycode 107 = Meta_semicolon +keycode 108 = apostrophe quotedbl + control keycode 108 = Control_g + alt keycode 108 = Meta_apostrophe keycode 109 = Return -keycode 110 = -keycode 111 = +keycode 110 = +keycode 111 = keycode 112 = m keycode 113 = comma less keycode 114 = period greater keycode 115 = slash question -keycode 116 = -keycode 117 = -keycode 118 = -keycode 119 = +keycode 116 = +keycode 117 = +keycode 118 = +keycode 119 = keycode 120 = n keycode 121 = space space keycode 122 = diff -Nru a/arch/m68k/hp300/ints.c b/arch/m68k/hp300/ints.c --- a/arch/m68k/hp300/ints.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/hp300/ints.c Tue May 18 23:38:08 2004 @@ -29,7 +29,7 @@ * Service routines are added via hp300_request_irq() and removed * via hp300_free_irq(). The device driver should set IRQ_FLG_FAST * if it needs to be serviced early (eg FIFOless UARTs); this will - * cause it to be added at the front of the queue rather than + * cause it to be added at the front of the queue rather than * the back. * Currently IRQ_FLG_SLOW and flags=0 are treated identically; if * we needed three levels of priority we could distinguish them @@ -52,7 +52,7 @@ t->handler(irq, t->dev_id, fp); /* We could put in some accounting routines, checks for stray interrupts, * etc, in here. Note that currently we can't tell whether or not - * a handler handles the interrupt, though. + * a handler handles the interrupt, though. */ return IRQ_HANDLED; } @@ -80,7 +80,7 @@ unsigned long flags, const char *devname, void *dev_id) { irq_node_t *t, *n = new_irq_node(); - + if (!n) /* oops, no free nodes */ return -ENOMEM; @@ -117,7 +117,7 @@ unsigned long flags; spin_lock_irqsave(&irqlist_lock, flags); - + t = hp300_irq_list[irq]; if (!t) /* no handlers at all for that IRQ */ { @@ -125,7 +125,7 @@ spin_unlock_irqrestore(&irqlist_lock, flags); return; } - + if (t->dev_id == dev_id) { /* removing first handler on chain */ t->flags = IRQ_FLG_STD; /* we probably don't really need these */ @@ -136,9 +136,9 @@ spin_unlock_irqrestore(&irqlist_lock, flags); return; } - + /* OK, must be removing from middle of the chain */ - + for (t = hp300_irq_list[irq]; t->next && t->next->dev_id != dev_id; t = t->next) /* do nothing */; if (!t->next) @@ -153,7 +153,7 @@ t->next->devname = NULL; t->next->handler = NULL; t->next = t->next->next; - + spin_unlock_irqrestore(&irqlist_lock, flags); } diff -Nru a/arch/m68k/ifpsp060/CHANGES b/arch/m68k/ifpsp060/CHANGES --- a/arch/m68k/ifpsp060/CHANGES Tue May 18 23:38:09 2004 +++ b/arch/m68k/ifpsp060/CHANGES Tue May 18 23:38:09 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -31,7 +31,7 @@ --------------------------- 1) "movep" emulation where data was being read from memory -was reading the intermediate bytes. Emulation now only +was reading the intermediate bytes. Emulation now only reads the required bytes. 2) "flogn", "flog2", and "flog10" of "1" was setting the @@ -57,7 +57,7 @@ For example, if a user executed "fsin.x ADDR,fp0" where ADDR should cause a "segmentation violation", the memory read requested by the package should return a failing value - to the package. Since the package currently ignores this + to the package. Since the package currently ignores this return value, the user program will continue to the next instruction, and the result created in fp0 will be undefined. @@ -76,16 +76,16 @@ as described in the MC68060 User's Manual. For instruction read access errors, the info stacked is: - SR = SR at time of exception - PC = PC of instruction being emulated + SR = SR at time of exception + PC = PC of instruction being emulated VOFF = $4008 (stack frame format type) ADDRESS = PC of instruction being emulated FSLW = FAULT STATUS LONGWORD The valid FSLW bits are: - bit 27 = 1 (misaligned bit) - bit 24 = 1 (read) - bit 23 = 0 (write) + bit 27 = 1 (misaligned bit) + bit 24 = 1 (read) + bit 23 = 0 (write) bit 22:21 = 10 (SIZE = word) bit 20:19 = 00 (TT) bit 18:16 = x10 (TM; x = 1 for supervisor mode) @@ -98,15 +98,15 @@ other bits. For data read/write access errors, the info stacked is: - SR = SR at time of exception - PC = PC of instruction being emulated + SR = SR at time of exception + PC = PC of instruction being emulated VOFF = $4008 (stack frame format type) ADDRESS = Address of source or destination operand FSLW = FAULT STATUS LONGWORD The valid FSLW bits are: - bit 27 = 0 (misaligned bit) - bit 24 = x (read; 1 if read, 0 if write) + bit 27 = 0 (misaligned bit) + bit 24 = x (read; 1 if read, 0 if write) bit 23 = x (write; 1 if write, 0 if read) bit 22:21 = xx (SIZE; see MC68060 User's Manual) bit 20:19 = 00 (TT) diff -Nru a/arch/m68k/ifpsp060/MISC b/arch/m68k/ifpsp060/MISC --- a/arch/m68k/ifpsp060/MISC Tue May 18 23:38:06 2004 +++ b/arch/m68k/ifpsp060/MISC Tue May 18 23:38:06 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -176,7 +176,7 @@ imovep.s : 2.8 ichk2cmp2.s : 2.6 idiv64.s : 2.10 -imul64.s : +imul64.s : icas2.s : 2.11 icas.s : 2.12 icas2_core.s: 2.6 diff -Nru a/arch/m68k/ifpsp060/README b/arch/m68k/ifpsp060/README --- a/arch/m68k/ifpsp060/README Tue May 18 23:38:07 2004 +++ b/arch/m68k/ifpsp060/README Tue May 18 23:38:07 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. diff -Nru a/arch/m68k/ifpsp060/TEST.DOC b/arch/m68k/ifpsp060/TEST.DOC --- a/arch/m68k/ifpsp060/TEST.DOC Tue May 18 23:38:09 2004 +++ b/arch/m68k/ifpsp060/TEST.DOC Tue May 18 23:38:09 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -56,7 +56,7 @@ ----------------------- (top of module) - ----------------- + ----------------- | | - 128 byte-sized section (1) | Call-Out | - 4 bytes per entry (user fills these in) | | @@ -74,8 +74,8 @@ The first section of this module is the "Call-out" section. This section is NOT INCLUDED in {i,f}test.sa (an example "Call-out" section is provided at the end of this file). The purpose of this section is to allow the test -routines to reference external printing functions that must be provided -by the host operating system. This section MUST be exactly 128 bytes in +routines to reference external printing functions that must be provided +by the host operating system. This section MUST be exactly 128 bytes in size. There are 32 fields, each 4 bytes in size. Each field corresponds to a function required by the test packages (these functions and their location are listed in "68060{ISP,FPSP}-TEST call-outs" below). Each field @@ -152,7 +152,7 @@ (2) unsupported data type exceptions (3) non-maskable overflow/underflow exceptions -FP unimplemented: tests FP unimplemented exception. this one is +FP unimplemented: tests FP unimplemented exception. this one is separate from the previous tests for systems that don't want FP unimplemented instructions. @@ -194,7 +194,7 @@ # beginning of "Call-out" section; provided by integrator. # MUST be 128 bytes long. _060FPSP_TEST: - long _print_str - _060FPSP_TEST + long _print_str - _060FPSP_TEST long _print_num - _060FPSP_TEST space 120 diff -Nru a/arch/m68k/ifpsp060/fplsp.doc b/arch/m68k/ifpsp060/fplsp.doc --- a/arch/m68k/ifpsp060/fplsp.doc Tue May 18 23:38:05 2004 +++ b/arch/m68k/ifpsp060/fplsp.doc Tue May 18 23:38:05 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -34,7 +34,7 @@ 68060SP Floating-Point Software Package. The routines included in this module can be used to emulate the FP instructions not implemented in 68060 hardware. These -instructions normally take exception vector #11 +instructions normally take exception vector #11 "FP Unimplemented Instruction". By re-compiling a program that uses these instructions, and diff -Nru a/arch/m68k/ifpsp060/fpsp.doc b/arch/m68k/ifpsp060/fpsp.doc --- a/arch/m68k/ifpsp060/fpsp.doc Tue May 18 23:38:06 2004 +++ b/arch/m68k/ifpsp060/fpsp.doc Tue May 18 23:38:06 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -31,7 +31,7 @@ The file fpsp.sa contains the 68060 Floating-Point Software Package. This package is essentially a set of exception handlers -that can be integrated into an operating system. +that can be integrated into an operating system. These exception handlers emulate Unimplemented FP instructions, instructions using unimplemented data types, and instructions using unimplemented addressing modes. In addition, this package @@ -62,14 +62,14 @@ ----------------------- (top of module) - ----------------- + ----------------- | | - 128 byte-sized section (1) | Call-Out | - 4 bytes per entry (user fills these in) | | - example routines in fskeleton.s ----------------- | | - 8 bytes per entry (2) | Entry Point | - user does "bra" or "jmp" to this address - | | + | | ----------------- | | - code section (3) ~ ~ @@ -79,14 +79,14 @@ The first section of this module is the "Call-out" section. This section is NOT INCLUDED in fpsp.sa (an example "Call-out" section is provided at -the end of the file fskeleton.s). The purpose of this section is to allow -the FPSP routines to reference external functions that must be provided -by the host operating system. This section MUST be exactly 128 bytes in +the end of the file fskeleton.s). The purpose of this section is to allow +the FPSP routines to reference external functions that must be provided +by the host operating system. This section MUST be exactly 128 bytes in size. There are 32 fields, each 4 bytes in size. Each field corresponds to a function required by the FPSP (these functions and their location are listed in "68060FPSP call-outs" below). Each field entry should contain the address of the corresponding function RELATIVE to the starting address -of the "call-out" section. The "Call-out" section must sit adjacent to the +of the "call-out" section. The "Call-out" section must sit adjacent to the fpsp.sa image in memory. The second section, the "Entry-point" section, is used by external routines @@ -97,7 +97,7 @@ would simply execute a "bra" or "jmp" that jumped to the selected function entry-point. -For example, if the 68060 hardware took a "Line-F Emulator" exception +For example, if the 68060 hardware took a "Line-F Emulator" exception (vector #11), the operating system should execute something similar to: bra _060FPSP_TOP+128+48 diff -Nru a/arch/m68k/ifpsp060/fskeleton.S b/arch/m68k/ifpsp060/fskeleton.S --- a/arch/m68k/ifpsp060/fskeleton.S Tue May 18 23:38:06 2004 +++ b/arch/m68k/ifpsp060/fskeleton.S Tue May 18 23:38:06 2004 @@ -5,10 +5,10 @@ |Production Release P1.00 -- October 10, 1994 | |M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. -| +| |THE SOFTWARE is provided on an "AS IS" basis and without warranty. |To the maximum extent permitted by applicable law, -|MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +|MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, |INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE |and any warranty against infringement with regard to the SOFTWARE |(INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -68,7 +68,7 @@ | _060_real_ovfl(): | | This is the exit point for the 060FPSP when an enabled overflow exception -| is present. The routine below should point to the operating system handler +| is present. The routine below should point to the operating system handler | for enabled overflow conditions. The exception stack frame is an overflow | stack frame. The FP state frame holds the EXCEPTIONAL OPERAND. | @@ -87,7 +87,7 @@ | _060_real_unfl(): | | This is the exit point for the 060FPSP when an enabled underflow exception -| is present. The routine below should point to the operating system handler +| is present. The routine below should point to the operating system handler | for enabled underflow conditions. The exception stack frame is an underflow | stack frame. The FP state frame holds the EXCEPTIONAL OPERAND. | @@ -105,7 +105,7 @@ | _060_real_operr(): | | This is the exit point for the 060FPSP when an enabled operand error exception -| is present. The routine below should point to the operating system handler +| is present. The routine below should point to the operating system handler | for enabled operand error exceptions. The exception stack frame is an operand error | stack frame. The FP state frame holds the source operand of the faulting | instruction. @@ -124,7 +124,7 @@ | _060_real_snan(): | | This is the exit point for the 060FPSP when an enabled signalling NaN exception -| is present. The routine below should point to the operating system handler +| is present. The routine below should point to the operating system handler | for enabled signalling NaN exceptions. The exception stack frame is a signalling NaN | stack frame. The FP state frame holds the source operand of the faulting | instruction. @@ -143,7 +143,7 @@ | _060_real_dz(): | | This is the exit point for the 060FPSP when an enabled divide-by-zero exception -| is present. The routine below should point to the operating system handler +| is present. The routine below should point to the operating system handler | for enabled divide-by-zero exceptions. The exception stack frame is a divide-by-zero | stack frame. The FP state frame holds the source operand of the faulting | instruction. @@ -162,7 +162,7 @@ | _060_real_inex(): | | This is the exit point for the 060FPSP when an enabled inexact exception -| is present. The routine below should point to the operating system handler +| is present. The routine below should point to the operating system handler | for enabled inexact exceptions. The exception stack frame is an inexact | stack frame. The FP state frame holds the source operand of the faulting | instruction. @@ -181,12 +181,12 @@ | _060_real_bsun(): | | This is the exit point for the 060FPSP when an enabled bsun exception -| is present. The routine below should point to the operating system handler +| is present. The routine below should point to the operating system handler | for enabled bsun exceptions. The exception stack frame is a bsun | stack frame. | | The sample routine below clears the exception status bit, clears the NaN -| bit in the FPSR, and does an "rte". The instruction that caused the +| bit in the FPSR, and does an "rte". The instruction that caused the | bsun will now be re-executed but with the NaN FPSR bit cleared. | .global _060_real_bsun @@ -202,13 +202,13 @@ | | _060_real_fline(): | -| This is the exit point for the 060FPSP when an F-Line Illegal exception is +| This is the exit point for the 060FPSP when an F-Line Illegal exception is | encountered. Three different types of exceptions can enter the F-Line exception | vector number 11: FP Unimplemented Instructions, FP implemented instructions when | the FPU is disabled, and F-Line Illegal instructions. The 060FPSP module | _fpsp_fline() distinguishes between the three and acts appropriately. F-Line | Illegals branch here. -| +| .global _060_real_fline _060_real_fline: bral trap | jump to trap handler @@ -216,7 +216,7 @@ | | _060_real_fpu_disabled(): | -| This is the exit point for the 060FPSP when an FPU disabled exception is +| This is the exit point for the 060FPSP when an FPU disabled exception is | encountered. Three different types of exceptions can enter the F-Line exception | vector number 11: FP Unimplemented Instructions, FP implemented instructions when | the FPU is disabled, and F-Line Illegal instructions. The 060FPSP module diff -Nru a/arch/m68k/ifpsp060/ilsp.doc b/arch/m68k/ifpsp060/ilsp.doc --- a/arch/m68k/ifpsp060/ilsp.doc Tue May 18 23:38:05 2004 +++ b/arch/m68k/ifpsp060/ilsp.doc Tue May 18 23:38:05 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -32,11 +32,11 @@ The file ilsp.s contains the "Library version" of the 68060 Integer Software Package. Routines included in this module can be used to emulate 64-bit divide and multiply, -and the "cmp2" instruction. These instructions are not -implemented in hardware on the 68060 and normally take +and the "cmp2" instruction. These instructions are not +implemented in hardware on the 68060 and normally take exception vector #61 "Unimplemented Integer Instruction". -By re-compiling a program that uses these instructions, and +By re-compiling a program that uses these instructions, and making subroutine calls in place of the unimplemented instructions, a program can avoid the overhead associated with taking the exception. @@ -63,7 +63,7 @@ Release file structure: ----------------------- -The file ilsp.sa contains an "Entry-Point" section and a +The file ilsp.sa contains an "Entry-Point" section and a code section. The ILSP has no "Call-Out" section. The first section is the "Entry-Point" section. In order to access a function in the package, a program must "bsr" or "jsr" to the location listed @@ -77,7 +77,7 @@ For example, to use a 64-bit multiply instruction, do a "bsr" or "jsr" to the entry point defined by -the 060ILSP entry table. A compiler generated code sequence +the 060ILSP entry table. A compiler generated code sequence for unsigned multiply could look like: # mulu.l ,Dh:Dl @@ -107,7 +107,7 @@ mov.l (%sp)+,%d1 # load remainder mov.l (%sp)+,%d0 # load quotient -The library routines also return the correct condition code +The library routines also return the correct condition code register value. If this is important, then the caller of the library routine must make sure that the value isn't lost while popping other items off of the stack. diff -Nru a/arch/m68k/ifpsp060/iskeleton.S b/arch/m68k/ifpsp060/iskeleton.S --- a/arch/m68k/ifpsp060/iskeleton.S Tue May 18 23:38:05 2004 +++ b/arch/m68k/ifpsp060/iskeleton.S Tue May 18 23:38:05 2004 @@ -5,10 +5,10 @@ |Production Release P1.00 -- October 10, 1994 | |M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. -| +| |THE SOFTWARE is provided on an "AS IS" basis and without warranty. |To the maximum extent permitted by applicable law, -|MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +|MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, |INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE |and any warranty against infringement with regard to the SOFTWARE |(INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -40,7 +40,7 @@ |################################ -| (1) EXAMPLE CALL-OUTS # +| (1) EXAMPLE CALL-OUTS # | # | _060_isp_done() # | _060_real_chk() # @@ -56,7 +56,7 @@ | _060_isp_done(): | | This is and example main exit point for the Unimplemented Integer -| Instruction exception handler. For a normal exit, the +| Instruction exception handler. For a normal exit, the | _isp_unimp() branches to here so that the operating system | can do any clean-up desired. The stack frame is the | Unimplemented Integer Instruction stack frame with @@ -118,9 +118,9 @@ | | _060_real_divbyzero: | -| This is an alternate exit point for the Unimplemented Integer +| This is an alternate exit point for the Unimplemented Integer | Instruction exception handler isp_unimp(). If the instruction is a 64-bit -| integer divide where the source operand is a zero, then the _isp_unimp() +| integer divide where the source operand is a zero, then the _isp_unimp() | creates a Divide-by-zero exception stack frame from the Unimplemented | Integer Instruction stack frame and branches to this routine. | @@ -128,7 +128,7 @@ | no action associated with the "chk" exception. If tracing is enabled, | then it create a Trace exception stack frame from the "chk" exception | stack frame and branches to the _real_trace() entry point. -| +| | Linux/68k: commented out test for tracing .global _060_real_divbyzero @@ -185,7 +185,7 @@ | Entry point for the operating system`s routine to "lock" a page | from being paged out. This routine is needed by the cas/cas2 | algorithms so that no page faults occur within the "core" code -| region. Note: the routine must lock two pages if the operand +| region. Note: the routine must lock two pages if the operand | spans two pages. | NOTE: THE ROUTINE SHOULD RETURN AN FSLW VALUE IN D0 ON FAILURE | SO THAT THE 060SP CAN CREATE A PROPER ACCESS ERROR FRAME. @@ -212,7 +212,7 @@ | Note: the routine must unlock two pages if the operand spans | two pages. | Arguments: -| a0 = operand address +| a0 = operand address | d0 = `xxxxxxff -> supervisor; `xxxxxx00 -> user | d1 = `xxxxxxff -> longword; `xxxxxx00 -> word | diff -Nru a/arch/m68k/ifpsp060/isp.doc b/arch/m68k/ifpsp060/isp.doc --- a/arch/m68k/ifpsp060/isp.doc Tue May 18 23:38:08 2004 +++ b/arch/m68k/ifpsp060/isp.doc Tue May 18 23:38:08 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -77,7 +77,7 @@ ----------------- | | - 8 bytes per entry (2) | Entry Point | - user does a "bra" or "jmp" to this address - | | + | | ----------------- | | - code section (3) ~ ~ @@ -87,14 +87,14 @@ The first section of this module is the "Call-out" section. This section is NOT INCLUDED in isp.sa (an example "Call-out" section is provided at -the end of the file iskeleton.s). The purpose of this section is to allow -the ISP routines to reference external functions that must be provided -by the host operating system. This section MUST be exactly 128 bytes in +the end of the file iskeleton.s). The purpose of this section is to allow +the ISP routines to reference external functions that must be provided +by the host operating system. This section MUST be exactly 128 bytes in size. There are 32 fields, each 4 bytes in size. Each field corresponds to a function required by the ISP (these functions and their location are listed in "68060ISP call-outs" below). Each field entry should contain the address of the corresponding function RELATIVE to the starting address -of the "call-out" section. The "Call-out" section must sit adjacent to the +of the "call-out" section. The "Call-out" section must sit adjacent to the isp.sa image in memory. The second section, the "Entry-point" section, is used by external routines @@ -112,7 +112,7 @@ bra _060ISP_TOP+128+0 (_060ISP_TOP is the starting address of the "Call-out" section; the "Call-out" -section is 128 bytes long; and the Unimplemented Integer ISP handler entry +section is 128 bytes long; and the Unimplemented Integer ISP handler entry point is located 0 bytes from the top of the "Entry-point" section.) The third section is the code section. After entering through an "Entry-point", @@ -177,7 +177,7 @@ _060_isp_unimp() entry point of the ISP. After the 060ISP decodes the instruction type and fetches the appropriate -data registers, and BEFORE the actual emulated transfers occur, the +data registers, and BEFORE the actual emulated transfers occur, the package calls either the "Call-out" _060_real_cas() or _060_real_cas2(). If the emulation code provided by the 060ISP is sufficient for the host system (see isp.s source code), then these "Call-out"s should be diff -Nru a/arch/m68k/ifpsp060/os.S b/arch/m68k/ifpsp060/os.S --- a/arch/m68k/ifpsp060/os.S Tue May 18 23:38:07 2004 +++ b/arch/m68k/ifpsp060/os.S Tue May 18 23:38:07 2004 @@ -5,10 +5,10 @@ |Production Release P1.00 -- October 10, 1994 | |M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. -| +| |THE SOFTWARE is provided on an "AS IS" basis and without warranty. |To the maximum extent permitted by applicable law, -|MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +|MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, |INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE |and any warranty against infringement with regard to the SOFTWARE |(INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -35,8 +35,8 @@ #include |################################ -| EXAMPLE CALL-OUTS # -| # +| EXAMPLE CALL-OUTS # +| # | _060_dmem_write() # | _060_dmem_read() # | _060_imem_read() # @@ -53,12 +53,12 @@ | _060_real_access() # |################################ -| +| | Each IO routine checks to see if the memory write/read is to/from user | or supervisor application space. The examples below use simple "move" | instructions for supervisor mode applications and call _copyin()/_copyout() | for user mode applications. -| When installing the 060SP, the _copyin()/_copyout() equivalents for a +| When installing the 060SP, the _copyin()/_copyout() equivalents for a | given operating system should be substituted. | | The addresses within the 060SP are guaranteed to be on the stack. @@ -76,10 +76,10 @@ | Writes to data memory while in supervisor mode. | | INPUTS: -| a0 - supervisor source address +| a0 - supervisor source address | a1 - user destination address -| d0 - number of bytes to write -| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode +| d0 - number of bytes to write +| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode | OUTPUTS: | d1 - 0 = success, !0 = failure | @@ -110,11 +110,11 @@ | a0 - user source address | a1 - supervisor destination address | d0 - number of bytes to read -| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode +| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode | OUTPUTS: | d1 - 0 = success, !0 = failure | - .global _060_imem_read + .global _060_imem_read .global _060_dmem_read _060_imem_read: _060_dmem_read: @@ -136,17 +136,17 @@ | | _060_dmem_read_byte(): -| +| | Read a data byte from user memory. | | INPUTS: | a0 - user source address -| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode +| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode | OUTPUTS: | d0 - data byte in d0 | d1 - 0 = success, !0 = failure | - .global _060_dmem_read_byte + .global _060_dmem_read_byte _060_dmem_read_byte: clr.l %d0 | clear whole longword clr.l %d1 | assume success @@ -159,29 +159,29 @@ | | _060_dmem_read_word(): -| +| | Read a data word from user memory. | | INPUTS: | a0 - user source address -| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode +| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode | OUTPUTS: | d0 - data word in d0 | d1 - 0 = success, !0 = failure | | _060_imem_read_word(): -| +| | Read an instruction word from user memory. | | INPUTS: | a0 - user source address -| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode +| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode | OUTPUTS: | d0 - instruction word in d0 | d1 - 0 = success, !0 = failure | - .global _060_dmem_read_word - .global _060_imem_read_word + .global _060_dmem_read_word + .global _060_imem_read_word _060_dmem_read_word: _060_imem_read_word: clr.l %d1 | assume success @@ -195,29 +195,29 @@ | | _060_dmem_read_long(): -| +| | | INPUTS: | a0 - user source address -| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode +| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode | OUTPUTS: | d0 - data longword in d0 | d1 - 0 = success, !0 = failure | | _060_imem_read_long(): -| +| | Read an instruction longword from user memory. | | INPUTS: | a0 - user source address -| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode +| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode | OUTPUTS: | d0 - instruction longword in d0 | d1 - 0 = success, !0 = failure | - .global _060_dmem_read_long - .global _060_imem_read_long + .global _060_dmem_read_long + .global _060_imem_read_long _060_dmem_read_long: _060_imem_read_long: clr.l %d1 | assume success @@ -235,12 +235,12 @@ | | INPUTS: | a0 - user destination address -| d0 - data byte in d0 -| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode +| d0 - data byte in d0 +| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode | OUTPUTS: | d1 - 0 = success, !0 = failure | - .global _060_dmem_write_byte + .global _060_dmem_write_byte _060_dmem_write_byte: clr.l %d1 | assume success btst #0x5,0x4(%a6) | check for supervisor state @@ -257,12 +257,12 @@ | | INPUTS: | a0 - user destination address -| d0 - data word in d0 -| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode +| d0 - data word in d0 +| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode | OUTPUTS: | d1 - 0 = success, !0 = failure | - .global _060_dmem_write_word + .global _060_dmem_write_word _060_dmem_write_word: clr.l %d1 | assume success btst #0x5,0x4(%a6) | check for supervisor state @@ -281,12 +281,12 @@ | | INPUTS: | a0 - user destination address -| d0 - data longword in d0 -| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode +| d0 - data longword in d0 +| 0x4(%a6),bit5 - 1 = supervisor mode, 0 = user mode | OUTPUTS: | d1 - 0 = success, !0 = failure | - .global _060_dmem_write_long + .global _060_dmem_write_long _060_dmem_write_long: clr.l %d1 | assume success btst #0x5,0x4(%a6) | check for supervisor state @@ -313,7 +313,7 @@ | | int _copyout(supervisor_addr, user_addr, nbytes) | - .global _copyout + .global _copyout _copyout: move.l 4(%sp),%a0 | source move.l 8(%sp),%a1 | destination @@ -330,14 +330,14 @@ | | int _copyin(user_addr, supervisor_addr, nbytes) | - .global _copyin + .global _copyin _copyin: move.l 4(%sp),%a0 | source move.l 8(%sp),%a1 | destination move.l 12(%sp),%d0 | count subq.l #1,%d0 morein: -copyinae: +copyinae: movs.b (%a0)+,%d1 | fetch user byte move.b %d1,(%a1)+ | write supervisor byte dbra %d0,morein | are we through yet? @@ -378,7 +378,7 @@ -| Execption handling for movs access to illegal memory +| Execption handling for movs access to illegal memory .section .fixup,#alloc,#execinstr .even 1: moveq #-1,%d1 diff -Nru a/arch/m68k/ifpsp060/src/fplsp.S b/arch/m68k/ifpsp060/src/fplsp.S --- a/arch/m68k/ifpsp060/src/fplsp.S Tue May 18 23:38:08 2004 +++ b/arch/m68k/ifpsp060/src/fplsp.S Tue May 18 23:38:08 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -304,33 +304,33 @@ set EXC_D1, EXC_DREGS+(1*4) set EXC_D0, EXC_DREGS+(0*4) -set EXC_FP0, EXC_FPREGS+(0*12) # offset of saved fp0 -set EXC_FP1, EXC_FPREGS+(1*12) # offset of saved fp1 -set EXC_FP2, EXC_FPREGS+(2*12) # offset of saved fp2 (not used) +set EXC_FP0, EXC_FPREGS+(0*12) # offset of saved fp0 +set EXC_FP1, EXC_FPREGS+(1*12) # offset of saved fp1 +set EXC_FP2, EXC_FPREGS+(2*12) # offset of saved fp2 (not used) -set FP_SCR1, LV+80 # fp scratch 1 -set FP_SCR1_EX, FP_SCR1+0 +set FP_SCR1, LV+80 # fp scratch 1 +set FP_SCR1_EX, FP_SCR1+0 set FP_SCR1_SGN, FP_SCR1+2 -set FP_SCR1_HI, FP_SCR1+4 -set FP_SCR1_LO, FP_SCR1+8 +set FP_SCR1_HI, FP_SCR1+4 +set FP_SCR1_LO, FP_SCR1+8 -set FP_SCR0, LV+68 # fp scratch 0 -set FP_SCR0_EX, FP_SCR0+0 +set FP_SCR0, LV+68 # fp scratch 0 +set FP_SCR0_EX, FP_SCR0+0 set FP_SCR0_SGN, FP_SCR0+2 -set FP_SCR0_HI, FP_SCR0+4 -set FP_SCR0_LO, FP_SCR0+8 +set FP_SCR0_HI, FP_SCR0+4 +set FP_SCR0_LO, FP_SCR0+8 -set FP_DST, LV+56 # fp destination operand -set FP_DST_EX, FP_DST+0 +set FP_DST, LV+56 # fp destination operand +set FP_DST_EX, FP_DST+0 set FP_DST_SGN, FP_DST+2 -set FP_DST_HI, FP_DST+4 -set FP_DST_LO, FP_DST+8 +set FP_DST_HI, FP_DST+4 +set FP_DST_LO, FP_DST+8 -set FP_SRC, LV+44 # fp source operand -set FP_SRC_EX, FP_SRC+0 +set FP_SRC, LV+44 # fp source operand +set FP_SRC_EX, FP_SRC+0 set FP_SRC_SGN, FP_SRC+2 -set FP_SRC_HI, FP_SRC+4 -set FP_SRC_LO, FP_SRC+8 +set FP_SRC_HI, FP_SRC+4 +set FP_SRC_LO, FP_SRC+8 set USER_FPIAR, LV+40 # FP instr address register @@ -354,7 +354,7 @@ set EXC_TEMP, LV+16 # temporary space set DTAG, LV+15 # destination operand type -set STAG, LV+14 # source operand type +set STAG, LV+14 # source operand type set SPCOND_FLG, LV+10 # flag: special case (see below) @@ -369,17 +369,17 @@ # Helpful macros set FTEMP, 0 # offsets within an -set FTEMP_EX, 0 # extended precision +set FTEMP_EX, 0 # extended precision set FTEMP_SGN, 2 # value saved in memory. -set FTEMP_HI, 4 -set FTEMP_LO, 8 +set FTEMP_HI, 4 +set FTEMP_LO, 8 set FTEMP_GRS, 12 set LOCAL, 0 # offsets within an -set LOCAL_EX, 0 # extended precision +set LOCAL_EX, 0 # extended precision set LOCAL_SGN, 2 # value saved in memory. -set LOCAL_HI, 4 -set LOCAL_LO, 8 +set LOCAL_HI, 4 +set LOCAL_LO, 8 set LOCAL_GRS, 12 set DST, 0 # offsets within an @@ -469,17 +469,17 @@ ###################################### set dzinf_mask, inf_mask+dz_mask+adz_mask set opnan_mask, nan_mask+operr_mask+aiop_mask -set nzi_mask, 0x01ffffff #clears N, Z, and I +set nzi_mask, 0x01ffffff #clears N, Z, and I set unfinx_mask, unfl_mask+inex2_mask+aunfl_mask+ainex_mask set unf2inx_mask, unfl_mask+inex2_mask+ainex_mask set ovfinx_mask, ovfl_mask+inex2_mask+aovfl_mask+ainex_mask set inx1a_mask, inex1_mask+ainex_mask set inx2a_mask, inex2_mask+ainex_mask -set snaniop_mask, nan_mask+snan_mask+aiop_mask +set snaniop_mask, nan_mask+snan_mask+aiop_mask set snaniop2_mask, snan_mask+aiop_mask set naniop_mask, nan_mask+aiop_mask set neginf_mask, neg_mask+inf_mask -set infaiop_mask, inf_mask+aiop_mask +set infaiop_mask, inf_mask+aiop_mask set negz_mask, neg_mask+z_mask set opaop_mask, operr_mask+aiop_mask set unfl_inx_mask, unfl_mask+aunfl_mask+ainex_mask @@ -508,8 +508,8 @@ set mantissalen, 64 # length of mantissa in bits set BYTE, 1 # len(byte) == 1 byte -set WORD, 2 # len(word) == 2 bytes -set LONG, 4 # len(longword) == 2 bytes +set WORD, 2 # len(word) == 2 bytes +set LONG, 4 # len(longword) == 2 bytes set BSUN_VEC, 0xc0 # bsun vector offset set INEX_VEC, 0xc4 # inexact vector offset @@ -4903,7 +4903,7 @@ # d0 = round precision,mode # # # # OUTPUT ************************************************************** # -# fp0 = sin(X) or cos(X) # +# fp0 = sin(X) or cos(X) # # # # For ssincos(X): # # fp0 = sin(X) # @@ -4911,7 +4911,7 @@ # # # ACCURACY and MONOTONICITY ******************************************* # # The returned result is within 1 ulp in 64 significant bit, i.e. # -# within 0.5001 ulp to 53 bits if the result is subsequently # +# within 0.5001 ulp to 53 bits if the result is subsequently # # rounded to double precision. The result is provably monotonic # # in double precision. # # # @@ -4928,8 +4928,8 @@ # # # 4. If k is even, go to 6. # # # -# 5. (k is odd) Set j := (k-1)/2, sgn := (-1)**j. # -# Return sgn*cos(r) where cos(r) is approximated by an # +# 5. (k is odd) Set j := (k-1)/2, sgn := (-1)**j. # +# Return sgn*cos(r) where cos(r) is approximated by an # # even polynomial in r, 1 + r*r*(B1+s*(B2+ ... + s*B8)), # # s = r*r. # # Exit. # @@ -4941,10 +4941,10 @@ # # # 7. If |X| > 1, go to 9. # # # -# 8. (|X|<2**(-40)) If SIN is invoked, return X; # +# 8. (|X|<2**(-40)) If SIN is invoked, return X; # # otherwise return 1. # # # -# 9. Overwrite X by X := X rem 2Pi. Now that |X| <= Pi, # +# 9. Overwrite X by X := X rem 2Pi. Now that |X| <= Pi, # # go back to 3. # # # # SINCOS: # @@ -4959,19 +4959,19 @@ # j1 exclusive or with the l.s.b. of k. # # sgn1 := (-1)**j1, sgn2 := (-1)**j2. # # SIN(X) = sgn1 * cos(r) and COS(X) = sgn2*sin(r) where # -# sin(r) and cos(r) are computed as odd and even # +# sin(r) and cos(r) are computed as odd and even # # polynomials in r, respectively. Exit # # # # 5. (k is even) Set j1 := k/2, sgn1 := (-1)**j1. # # SIN(X) = sgn1 * sin(r) and COS(X) = sgn1*cos(r) where # -# sin(r) and cos(r) are computed as odd and even # +# sin(r) and cos(r) are computed as odd and even # # polynomials in r, respectively. Exit # # # # 6. If |X| > 1, go to 8. # # # # 7. (|X|<2**(-40)) SIN(X) = X and COS(X) = 1. Exit. # # # -# 8. Overwrite X by X := X rem 2Pi. Now that |X| <= Pi, # +# 8. Overwrite X by X := X rem 2Pi. Now that |X| <= Pi, # # go back to 2. # # # ######################################################################### @@ -5046,9 +5046,9 @@ #--THE ARGUMENT REDUCTION IS DONE BY TABLE LOOK UP. SINMAIN: fmov.x %fp0,%fp1 - fmul.d TWOBYPI(%pc),%fp1 # X*2/PI + fmul.d TWOBYPI(%pc),%fp1 # X*2/PI - lea PITBL+0x200(%pc),%a1 # TABLE OF N*PI/2, N = -32,...,32 + lea PITBL+0x200(%pc),%a1 # TABLE OF N*PI/2, N = -32,...,32 fmov.l %fp1,INT(%a6) # CONVERT TO INTEGER @@ -5058,8 +5058,8 @@ # A1 IS THE ADDRESS OF N*PIBY2 # ...WHICH IS IN TWO PIECES Y1 & Y2 - fsub.x (%a1)+,%fp0 # X-Y1 - fsub.s (%a1),%fp0 # fp0 = R = (X-Y1)-Y2 + fsub.x (%a1)+,%fp0 # X-Y1 + fsub.s (%a1),%fp0 # fp0 = R = (X-Y1)-Y2 SINCONT: #--continuation from REDUCEX @@ -5213,7 +5213,7 @@ COSTINY: fmov.s &0x3F800000,%fp0 # fp0 = 1.0 fmov.l %d0,%fpcr # restore users round mode,prec - fadd.s &0x80800000,%fp0 # last inst - possible exception set + fadd.s &0x80800000,%fp0 # last inst - possible exception set bra t_pinx2 ################################################ @@ -5645,7 +5645,7 @@ # # # 7. (|X|<2**(-40)) Tan(X) = X. Exit. # # # -# 8. Overwrite X by X := X rem 2Pi. Now that |X| <= Pi, go back # +# 8. Overwrite X by X := X rem 2Pi. Now that |X| <= Pi, go back # # to 2. # # # ######################################################################### @@ -6048,27 +6048,27 @@ # The returned result is within 2 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # # rounded to double precision. The result is provably monotonic # -# in double precision. # +# in double precision. # # # # ALGORITHM *********************************************************** # # Step 1. If |X| >= 16 or |X| < 1/16, go to Step 5. # # # -# Step 2. Let X = sgn * 2**k * 1.xxxxxxxx...x. # +# Step 2. Let X = sgn * 2**k * 1.xxxxxxxx...x. # # Note that k = -4, -3,..., or 3. # -# Define F = sgn * 2**k * 1.xxxx1, i.e. the first 5 # +# Define F = sgn * 2**k * 1.xxxx1, i.e. the first 5 # # significant bits of X with a bit-1 attached at the 6-th # # bit position. Define u to be u = (X-F) / (1 + X*F). # # # # Step 3. Approximate arctan(u) by a polynomial poly. # # # -# Step 4. Return arctan(F) + poly, arctan(F) is fetched from a # +# Step 4. Return arctan(F) + poly, arctan(F) is fetched from a # # table of values calculated beforehand. Exit. # # # # Step 5. If |X| >= 16, go to Step 7. # # # # Step 6. Approximate arctan(X) by an odd polynomial in X. Exit. # # # -# Step 7. Define X' = -1/X. Approximate arctan(X') by an odd # +# Step 7. Define X' = -1/X. Approximate arctan(X') by an odd # # polynomial in X'. # # Arctan(X) = sign(X)*Pi/2 + arctan(X'). Exit. # # # @@ -6334,7 +6334,7 @@ fmul.x %fp2,%fp1 # A1*U*V*(A2+V*(A3+V)) fadd.x %fp1,%fp0 # ATAN(U), FP1 RELEASED - fmovm.x (%sp)+,&0x20 # restore fp2 + fmovm.x (%sp)+,&0x20 # restore fp2 fmov.l %d0,%fpcr # restore users rnd mode,prec fadd.x ATANF(%a6),%fp0 # ATAN(X) @@ -6491,7 +6491,7 @@ # a0 = pointer to extended precision input # # d0 = round precision,mode # # # -# OUTPUT ************************************************************** # +# OUTPUT ************************************************************** # # fp0 = arcsin(X) # # # # ACCURACY and MONOTONICITY ******************************************* # @@ -6531,7 +6531,7 @@ # This catch is added here for the '060 QSP. Originally, the call to # satan() would handle this case by causing the exception which would -# not be caught until gen_except(). Now, with the exceptions being +# not be caught until gen_except(). Now, with the exceptions being # detected inside of satan(), the exception would have been handled there # instead of inside sasin() as expected. cmp.l %d1,&0x3FD78000 @@ -6680,7 +6680,7 @@ ######################################################################### # setox(): computes the exponential for a normalized input # -# setoxd(): computes the exponential for a denormalized input # +# setoxd(): computes the exponential for a denormalized input # # setoxm1(): computes the exponential minus 1 for a normalized input # # setoxm1d(): computes the exponential minus 1 for a denormalized input # # # @@ -6692,9 +6692,9 @@ # fp0 = exp(X) or exp(X)-1 # # # # ACCURACY and MONOTONICITY ******************************************* # -# The returned result is within 0.85 ulps in 64 significant bit, # +# The returned result is within 0.85 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # -# rounded to double precision. The result is provably monotonic # +# rounded to double precision. The result is provably monotonic # # in double precision. # # # # ALGORITHM and IMPLEMENTATION **************************************** # @@ -6718,14 +6718,14 @@ # Notes: The usual case should take the branches 1.1 -> 1.3 -> 2.# # To avoid the use of floating-point comparisons, a # # compact representation of |X| is used. This format is a # -# 32-bit integer, the upper (more significant) 16 bits # -# are the sign and biased exponent field of |X|; the # +# 32-bit integer, the upper (more significant) 16 bits # +# are the sign and biased exponent field of |X|; the # # lower 16 bits are the 16 most significant fraction # # (including the explicit bit) bits of |X|. Consequently, # # the comparisons in Steps 1.1 and 1.3 can be performed # # by integer comparison. Note also that the constant # # 16380 log(2) used in Step 1.3 is also in the compact # -# form. Thus taking the branch to Step 2 guarantees # +# form. Thus taking the branch to Step 2 guarantees # # |X| < 16380 log(2). There is no harm to have a small # # number of cases where |X| is less than, but close to, # # 16380 log(2) and the branch to Step 9 is taken. # @@ -6737,7 +6737,7 @@ # 2.3 Calculate J = N mod 64; so J = 0,1,2,..., # # or 63. # # 2.4 Calculate M = (N - J)/64; so N = 64M + J. # -# 2.5 Calculate the address of the stored value of # +# 2.5 Calculate the address of the stored value of # # 2^(J/64). # # 2.6 Create the value Scale = 2^M. # # Notes: The calculation in 2.2 is really performed by # @@ -6746,26 +6746,26 @@ # where # # constant := single-precision( 64/log 2 ). # # # -# Using a single-precision constant avoids memory # +# Using a single-precision constant avoids memory # # access. Another effect of using a single-precision # -# "constant" is that the calculated value Z is # +# "constant" is that the calculated value Z is # # # # Z = X*(64/log2)*(1+eps), |eps| <= 2^(-24). # # # # This error has to be considered later in Steps 3 and 4. # # # # Step 3. Calculate X - N*log2/64. # -# 3.1 R := X + N*L1, # +# 3.1 R := X + N*L1, # # where L1 := single-precision(-log2/64). # -# 3.2 R := R + N*L2, # +# 3.2 R := R + N*L2, # # L2 := extended-precision(-log2/64 - L1).# -# Notes: a) The way L1 and L2 are chosen ensures L1+L2 # +# Notes: a) The way L1 and L2 are chosen ensures L1+L2 # # approximate the value -log2/64 to 88 bits of accuracy. # # b) N*L1 is exact because N is no longer than 22 bits # # and L1 is no longer than 24 bits. # -# c) The calculation X+N*L1 is also exact due to # +# c) The calculation X+N*L1 is also exact due to # # cancellation. Thus, R is practically X+N(L1+L2) to full # -# 64 bits. # +# 64 bits. # # d) It is important to estimate how large can |R| be # # after Step 3.2. # # # @@ -6783,11 +6783,11 @@ # # # Step 4. Approximate exp(R)-1 by a polynomial # # p = R + R*R*(A1 + R*(A2 + R*(A3 + R*(A4 + R*A5)))) # -# Notes: a) In order to reduce memory access, the coefficients # +# Notes: a) In order to reduce memory access, the coefficients # # are made as "short" as possible: A1 (which is 1/2), A4 # # and A5 are single precision; A2 and A3 are double # -# precision. # -# b) Even with the restrictions above, # +# precision. # +# b) Even with the restrictions above, # # |p - (exp(R)-1)| < 2^(-68.8) for all |R| <= 0.0062. # # Note that 0.0062 is slightly bigger than 0.57 log2/64. # # c) To fully utilize the pipeline, p is separated into # @@ -6801,11 +6801,11 @@ # where T and t are the stored values for 2^(J/64). # # Notes: 2^(J/64) is stored as T and t where T+t approximates # # 2^(J/64) to roughly 85 bits; T is in extended precision # -# and t is in single precision. Note also that T is # -# rounded to 62 bits so that the last two bits of T are # -# zero. The reason for such a special form is that T-1, # +# and t is in single precision. Note also that T is # +# rounded to 62 bits so that the last two bits of T are # +# zero. The reason for such a special form is that T-1, # # T-2, and T-8 will all be exact --- a property that will # -# give much more accurate computation of the function # +# give much more accurate computation of the function # # EXPM1. # # # # Step 6. Reconstruction of exp(X) # @@ -6821,11 +6821,11 @@ # X = (M1+M)log2 + Jlog2/64 + R, |M1+M| >= 16380. # # Hence, exp(X) may overflow or underflow or neither. # # When that is the case, AdjScale = 2^(M1) where M1 is # -# approximately M. Thus 6.2 will never cause # +# approximately M. Thus 6.2 will never cause # # over/underflow. Possible exception in 6.4 is overflow # # or underflow. The inexact exception is not generated in # # 6.4. Although one can argue that the inexact flag # -# should always be raised, to simulate that exception # +# should always be raised, to simulate that exception # # cost to much than the flag is worth in practical uses. # # # # Step 7. Return 1 + X. # @@ -6838,7 +6838,7 @@ # in Step 7.1 to avoid unnecessary trapping. (Although # # the FMOVEM may not seem relevant since X is normalized, # # the precaution will be useful in the library version of # -# this code where the separate entry for denormalized # +# this code where the separate entry for denormalized # # inputs will be done away with.) # # # # Step 8. Handle exp(X) where |X| >= 16380log2. # @@ -6846,9 +6846,9 @@ # (mimic 2.2 - 2.6) # # 8.2 N := round-to-integer( X * 64/log2 ) # # 8.3 Calculate J = N mod 64, J = 0,1,...,63 # -# 8.4 K := (N-J)/64, M1 := truncate(K/2), M = K-M1, # +# 8.4 K := (N-J)/64, M1 := truncate(K/2), M = K-M1, # # AdjFlag := 1. # -# 8.5 Calculate the address of the stored value # +# 8.5 Calculate the address of the stored value # # 2^(J/64). # # 8.6 Create the values Scale = 2^M, AdjScale = 2^M1. # # 8.7 Go to Step 3. # @@ -6885,8 +6885,8 @@ # 1.4 Go to Step 10. # # Notes: The usual case should take the branches 1.1 -> 1.3 -> 2.# # However, it is conceivable |X| can be small very often # -# because EXPM1 is intended to evaluate exp(X)-1 # -# accurately when |X| is small. For further details on # +# because EXPM1 is intended to evaluate exp(X)-1 # +# accurately when |X| is small. For further details on # # the comparisons, see the notes on Step 1 of setox. # # # # Step 2. Calculate N = round-to-nearest-int( X * 64/log2 ). # @@ -6894,16 +6894,16 @@ # 2.2 Calculate J = N mod 64; so J = 0,1,2,..., # # or 63. # # 2.3 Calculate M = (N - J)/64; so N = 64M + J. # -# 2.4 Calculate the address of the stored value of # +# 2.4 Calculate the address of the stored value of # # 2^(J/64). # -# 2.5 Create the values Sc = 2^M and # +# 2.5 Create the values Sc = 2^M and # # OnebySc := -2^(-M). # # Notes: See the notes on Step 2 of setox. # # # # Step 3. Calculate X - N*log2/64. # -# 3.1 R := X + N*L1, # +# 3.1 R := X + N*L1, # # where L1 := single-precision(-log2/64). # -# 3.2 R := R + N*L2, # +# 3.2 R := R + N*L2, # # L2 := extended-precision(-log2/64 - L1).# # Notes: Applying the analysis of Step 3 of setox in this case # # shows that |R| <= 0.0055 (note that |X| <= 70 log2 in # @@ -6911,10 +6911,10 @@ # # # Step 4. Approximate exp(R)-1 by a polynomial # # p = R+R*R*(A1+R*(A2+R*(A3+R*(A4+R*(A5+R*A6))))) # -# Notes: a) In order to reduce memory access, the coefficients # -# are made as "short" as possible: A1 (which is 1/2), A5 # -# and A6 are single precision; A2, A3 and A4 are double # -# precision. # +# Notes: a) In order to reduce memory access, the coefficients # +# are made as "short" as possible: A1 (which is 1/2), A5 # +# and A6 are single precision; A2, A3 and A4 are double # +# precision. # # b) Even with the restriction above, # # |p - (exp(R)-1)| < |R| * 2^(-72.7) # # for all |R| <= 0.0055. # @@ -6929,9 +6929,9 @@ # where T and t are the stored values for 2^(J/64). # # Notes: 2^(J/64) is stored as T and t where T+t approximates # # 2^(J/64) to roughly 85 bits; T is in extended precision # -# and t is in single precision. Note also that T is # -# rounded to 62 bits so that the last two bits of T are # -# zero. The reason for such a special form is that T-1, # +# and t is in single precision. Note also that T is # +# rounded to 62 bits so that the last two bits of T are # +# zero. The reason for such a special form is that T-1, # # T-2, and T-8 will all be exact --- a property that will # # be exploited in Step 6 below. The total relative error # # in p is no bigger than 2^(-67.7) compared to the final # @@ -6946,7 +6946,7 @@ # 6.5 ans := (T + OnebySc) + (p + t). # # 6.6 Restore user FPCR. # # 6.7 Return ans := Sc * ans. Exit. # -# Notes: The various arrangements of the expressions give # +# Notes: The various arrangements of the expressions give # # accurate evaluations. # # # # Step 7. exp(X)-1 for |X| < 1/4. # @@ -6962,8 +6962,8 @@ # Return ans := ans*2^(140). Exit # # Notes: The idea is to return "X - tiny" under the user # # precision and rounding modes. To avoid unnecessary # -# inefficiency, we stay away from denormalized numbers # -# the best we can. For |X| >= 2^(-16312), the # +# inefficiency, we stay away from denormalized numbers # +# the best we can. For |X| >= 2^(-16312), the # # straightforward 8.2 generates the inexact exception as # # the case warrants. # # # @@ -6971,13 +6971,13 @@ # p = X + X*X*(B1 + X*(B2 + ... + X*B12)) # # Notes: a) In order to reduce memory access, the coefficients # # are made as "short" as possible: B1 (which is 1/2), B9 # -# to B12 are single precision; B3 to B8 are double # +# to B12 are single precision; B3 to B8 are double # # precision; and B2 is double extended. # # b) Even with the restriction above, # # |p - (exp(X)-1)| < |X| 2^(-70.6) # # for all |X| <= 0.251. # # Note that 0.251 is slightly bigger than 1/4. # -# c) To fully preserve accuracy, the polynomial is # +# c) To fully preserve accuracy, the polynomial is # # computed as # # X + ( S*B1 + Q ) where S = X*X and # # Q = X*S*(B2 + X*(B3 + ... + X*B12)) # @@ -6987,11 +6987,11 @@ # [ S*S*(B3 + S*(B5 + ... + S*B11)) ] # # # # Step 10. Calculate exp(X)-1 for |X| >= 70 log 2. # -# 10.1 If X >= 70log2 , exp(X) - 1 = exp(X) for all # +# 10.1 If X >= 70log2 , exp(X) - 1 = exp(X) for all # # practical purposes. Therefore, go to Step 1 of setox. # # 10.2 If X <= -70log2, exp(X) - 1 = -1 for all practical # -# purposes. # -# ans := -1 # +# purposes. # +# ans := -1 # # Restore user FPCR # # Return ans := ans + 2^(-126). Exit. # # Notes: 10.2 will always create an inexact and return -1 + tiny # @@ -7496,10 +7496,10 @@ # sgetexp(): returns the exponent portion of the input argument. # # The exponent bias is removed and the exponent value is # # returned as an extended precision number in fp0. # -# sgetexpd(): handles denormalized numbers. # +# sgetexpd(): handles denormalized numbers. # # # -# sgetman(): extracts the mantissa of the input argument. The # -# mantissa is converted to an extended precision number w/ # +# sgetman(): extracts the mantissa of the input argument. The # +# mantissa is converted to an extended precision number w/ # # an exponent of $3fff and is returned in fp0. The range of # # the result is [1.0 - 2.0). # # sgetmand(): handles denormalized numbers. # @@ -7573,9 +7573,9 @@ # fp0 = cosh(X) # # # # ACCURACY and MONOTONICITY ******************************************* # -# The returned result is within 3 ulps in 64 significant bit, # +# The returned result is within 3 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # -# rounded to double precision. The result is provably monotonic # +# rounded to double precision. The result is provably monotonic # # in double precision. # # # # ALGORITHM *********************************************************** # @@ -7592,7 +7592,7 @@ # # # 4. (16380 log2 < |X| <= 16480 log2) # # cosh(X) = sign(X) * exp(|X|)/2. # -# However, invoking exp(|X|) may cause premature # +# However, invoking exp(|X|) may cause premature # # overflow. Thus, we calculate sinh(X) as follows: # # Y := |X| # # Fact := 2**(16380) # @@ -7687,7 +7687,7 @@ # fp0 = sinh(X) # # # # ACCURACY and MONOTONICITY ******************************************* # -# The returned result is within 3 ulps in 64 significant bit, # +# The returned result is within 3 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # # rounded to double precision. The result is provably monotonic # # in double precision. # @@ -7805,7 +7805,7 @@ # fp0 = tanh(X) # # # # ACCURACY and MONOTONICITY ******************************************* # -# The returned result is within 3 ulps in 64 significant bit, # +# The returned result is within 3 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # # rounded to double precision. The result is provably monotonic # # in double precision. # @@ -7971,51 +7971,51 @@ # fp0 = log(X) or log(1+X) # # # # ACCURACY and MONOTONICITY ******************************************* # -# The returned result is within 2 ulps in 64 significant bit, # +# The returned result is within 2 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # # rounded to double precision. The result is provably monotonic # # in double precision. # # # # ALGORITHM *********************************************************** # # LOGN: # -# Step 1. If |X-1| < 1/16, approximate log(X) by an odd # -# polynomial in u, where u = 2(X-1)/(X+1). Otherwise, # +# Step 1. If |X-1| < 1/16, approximate log(X) by an odd # +# polynomial in u, where u = 2(X-1)/(X+1). Otherwise, # # move on to Step 2. # # # # Step 2. X = 2**k * Y where 1 <= Y < 2. Define F to be the first # -# seven significant bits of Y plus 2**(-7), i.e. # -# F = 1.xxxxxx1 in base 2 where the six "x" match those # +# seven significant bits of Y plus 2**(-7), i.e. # +# F = 1.xxxxxx1 in base 2 where the six "x" match those # # of Y. Note that |Y-F| <= 2**(-7). # # # -# Step 3. Define u = (Y-F)/F. Approximate log(1+u) by a # +# Step 3. Define u = (Y-F)/F. Approximate log(1+u) by a # # polynomial in u, log(1+u) = poly. # # # -# Step 4. Reconstruct # +# Step 4. Reconstruct # # log(X) = log( 2**k * Y ) = k*log(2) + log(F) + log(1+u) # # by k*log(2) + (log(F) + poly). The values of log(F) are # # calculated beforehand and stored in the program. # # # # lognp1: # -# Step 1: If |X| < 1/16, approximate log(1+X) by an odd # +# Step 1: If |X| < 1/16, approximate log(1+X) by an odd # # polynomial in u where u = 2X/(2+X). Otherwise, move on # # to Step 2. # # # # Step 2: Let 1+X = 2**k * Y, where 1 <= Y < 2. Define F as done # -# in Step 2 of the algorithm for LOGN and compute # -# log(1+X) as k*log(2) + log(F) + poly where poly # -# approximates log(1+u), u = (Y-F)/F. # +# in Step 2 of the algorithm for LOGN and compute # +# log(1+X) as k*log(2) + log(F) + poly where poly # +# approximates log(1+u), u = (Y-F)/F. # # # # Implementation Notes: # -# Note 1. There are 64 different possible values for F, thus 64 # +# Note 1. There are 64 different possible values for F, thus 64 # # log(F)'s need to be tabulated. Moreover, the values of # # 1/F are also tabulated so that the division in (Y-F)/F # # can be performed by a multiplication. # # # -# Note 2. In Step 2 of lognp1, in order to preserved accuracy, # -# the value Y-F has to be calculated carefully when # -# 1/2 <= X < 3/2. # +# Note 2. In Step 2 of lognp1, in order to preserved accuracy, # +# the value Y-F has to be calculated carefully when # +# 1/2 <= X < 3/2. # # # -# Note 3. To fully exploit the pipeline, polynomials are usually # +# Note 3. To fully exploit the pipeline, polynomials are usually # # separated into two parts evaluated independently before # # being added up. # # # @@ -8228,9 +8228,9 @@ cmp.l %d1,&0 # CHECK IF X IS NEGATIVE blt.w LOGNEG # LOG OF NEGATIVE ARGUMENT IS INVALID # X IS POSITIVE, CHECK IF X IS NEAR 1 - cmp.l %d1,&0x3ffef07d # IS X < 15/16? + cmp.l %d1,&0x3ffef07d # IS X < 15/16? blt.b LOGMAIN # YES - cmp.l %d1,&0x3fff8841 # IS X > 17/16? + cmp.l %d1,&0x3fff8841 # IS X > 17/16? ble.w LOGNEAR1 # NO LOGMAIN: @@ -8243,7 +8243,7 @@ #--NOTE THAT U = (Y-F)/F IS VERY SMALL AND THUS APPROXIMATING #--LOG(1+U) CAN BE VERY EFFICIENT. #--ALSO NOTE THAT THE VALUE 1/F IS STORED IN A TABLE SO THAT NO -#--DIVISION IS NEEDED TO CALCULATE (Y-F)/F. +#--DIVISION IS NEEDED TO CALCULATE (Y-F)/F. #--GET K, Y, F, AND ADDRESS OF 1/F. asr.l &8,%d1 @@ -8458,10 +8458,10 @@ mov.l X(%a6),%d1 cmp.l %d1,&0 ble.w LP1NEG0 # LOG OF ZERO OR -VE - cmp.l %d1,&0x3ffe8000 # IS BOUNDS [1/2,3/2]? + cmp.l %d1,&0x3ffe8000 # IS BOUNDS [1/2,3/2]? blt.w LOGMAIN cmp.l %d1,&0x3fffc000 - bgt.w LOGMAIN + bgt.w LOGMAIN #--IF 1+Z > 3/2 OR 1+Z < 1/2, THEN X, WHICH IS ROUNDING 1+Z, #--CONTAINS AT LEAST 63 BITS OF INFORMATION OF Z. IN THAT CASE, #--SIMPLY INVOKE LOG(X) FOR LOG(1+Z). @@ -8562,7 +8562,7 @@ # a0 = pointer to extended precision input # # d0 = round precision,mode # # # -# OUTPUT ************************************************************** # +# OUTPUT ************************************************************** # # fp0 = arctanh(X) # # # # ACCURACY and MONOTONICITY ******************************************* # @@ -8677,7 +8677,7 @@ # 2.1 Restore the user FPCR # # 2.2 Return ans := Y * INV_L10. # # # -# slog10: # +# slog10: # # # # Step 0. If X < 0, create a NaN and raise the invalid operation # # flag. Otherwise, save FPCR in D1; set FpCR to default. # @@ -8820,7 +8820,7 @@ # fp0 = 2**X or 10**X # # # # ACCURACY and MONOTONICITY ******************************************* # -# The returned result is within 2 ulps in 64 significant bit, # +# The returned result is within 2 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # # rounded to double precision. The result is provably monotonic # # in double precision. # @@ -8851,7 +8851,7 @@ # # # 4. Define r as # # r := ((X - N*L1)-N*L2) * L10 # -# where L1, L2 are the leading and trailing parts of # +# where L1, L2 are the leading and trailing parts of # # log_10(2)/64 and L10 is the natural log of 10. Then # # 10**X = 2**(M') * 2**(M) * 2**(j/64) * exp(r). # # Go to expr to compute that expression. # @@ -8872,7 +8872,7 @@ # Exit. # # # # ExpBig # -# 1. Generate overflow by Huge * Huge if X > 0; otherwise, # +# 1. Generate overflow by Huge * Huge if X > 0; otherwise, # # generate underflow by Tiny * Tiny. # # # # ExpSm # @@ -9203,7 +9203,7 @@ ######################################################################### # sscale(): computes the destination operand scaled by the source # -# operand. If the absoulute value of the source operand is # +# operand. If the absoulute value of the source operand is # # >= 2^14, an overflow or underflow is returned. # # # # INPUT *************************************************************** # @@ -9265,7 +9265,7 @@ bge.b sok_norm2 # thank goodness no # the multiply factor that we're trying to create should be a denorm -# for the multiply to work. therefore, we're going to actually do a +# for the multiply to work. therefore, we're going to actually do a # multiply with a denorm which will cause an unimplemented data type # exception to be put into the machine which will be caught and corrected # later. we don't do this with the DENORMs above because this method @@ -9280,7 +9280,7 @@ clr.l -(%sp) # insert zero low mantissa mov.l %d1,-(%sp) # insert new high mantissa clr.l -(%sp) # make zero exponent - bra.b sok_norm_cont + bra.b sok_norm_cont sok_dnrm_32: subi.b &0x20,%d0 # get shift count lsr.l %d0,%d1 # make low mantissa longword @@ -9288,7 +9288,7 @@ clr.l -(%sp) # insert zero high mantissa clr.l -(%sp) # make zero exponent bra.b sok_norm_cont - + # the src will force the dst to a DENORM value or worse. so, let's # create an fp multiply that will create the result. sok_norm: @@ -9346,7 +9346,7 @@ # a1 = pointer to extended precision input Y # # d0 = round precision,mode # # # -# The input operands X and Y can be either normalized or # +# The input operands X and Y can be either normalized or # # denormalized. # # # # OUTPUT ************************************************************** # @@ -9355,7 +9355,7 @@ # ALGORITHM *********************************************************** # # # # Step 1. Save and strip signs of X and Y: signX := sign(X), # -# signY := sign(Y), X := |X|, Y := |Y|, # +# signY := sign(Y), X := |X|, Y := |Y|, # # signQ := signX EOR signY. Record whether MOD or REM # # is requested. # # # @@ -9375,7 +9375,7 @@ # # # Step 4. At this point, R = X - QY = MOD(X,Y). Set # # Last_Subtract := false (used in Step 7 below). If # -# MOD is requested, go to Step 6. # +# MOD is requested, go to Step 6. # # # # Step 5. R = MOD(X,Y), but REM(X,Y) is requested. # # 5.1 If R < Y/2, then R = MOD(X,Y) = REM(X,Y). Go to # @@ -9701,8 +9701,8 @@ mov.b &FMUL_OP,%d1 # last inst is MUL fmul.x Scale(%pc),%fp0 # may cause underflow bra t_catch2 -# the '040 package did this apparently to see if the dst operand for the -# preceding fmul was a denorm. but, it better not have been since the +# the '040 package did this apparently to see if the dst operand for the +# preceding fmul was a denorm. but, it better not have been since the # algorithm just got done playing with fp0 and expected no exceptions # as a result. trust me... # bra t_avoid_unsupp # check for denorm as a @@ -9716,7 +9716,7 @@ Rem_is_0: #..R = 2^(-j)X - Q Y = Y, thus R = 0 and quotient = 2^j (Q+1) addq.l &1,%d3 - cmp.l %d0,&8 # D0 is j + cmp.l %d0,&8 # D0 is j bge.b Q_Big lsl.l %d0,%d3 @@ -9746,7 +9746,7 @@ ######################################################################### # XDEF **************************************************************** # -# tag(): return the optype of the input ext fp number # +# tag(): return the optype of the input ext fp number # # # # This routine is used by the 060FPLSP. # # # @@ -9755,13 +9755,13 @@ # # # INPUT *************************************************************** # # a0 = pointer to extended precision operand # -# # +# # # OUTPUT ************************************************************** # # d0 = value of type tag # -# one of: NORM, INF, QNAN, SNAN, DENORM, ZERO # +# one of: NORM, INF, QNAN, SNAN, DENORM, ZERO # # # # ALGORITHM *********************************************************** # -# Simply test the exponent, j-bit, and mantissa values to # +# Simply test the exponent, j-bit, and mantissa values to # # determine the type of operand. # # If it's an unnormalized zero, alter the operand and force it # # to be a normal zero. # @@ -9829,15 +9829,15 @@ # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand. # -# # +# # # OUTPUT ************************************************************** # # fp0 = default DZ result. # # # # ALGORITHM *********************************************************** # -# Transcendental emulation for the 060FPLSP has detected that # +# Transcendental emulation for the 060FPLSP has detected that # # a DZ exception should occur for the instruction. If DZ is disabled, # # return the default result. # -# If DZ is enabled, the dst operand should be returned unscathed # +# If DZ is enabled, the dst operand should be returned unscathed # # in fp0 while fp1 is used to create a DZ exception so that the # # operating system can log that such an event occurred. # # # @@ -9898,7 +9898,7 @@ # # # INPUT *************************************************************** # # fp1 = source operand # -# # +# # # OUTPUT ************************************************************** # # fp0 = default result # # fp1 = unchanged # @@ -9927,7 +9927,7 @@ # but use fp2 instead. return the dst operand unscathed in fp0. operr_ena: fmovm.x EXC_FP0(%a6),&0x80 # return fp0 unscathed - fmov.l USER_FPCR(%a6),%fpcr + fmov.l USER_FPCR(%a6),%fpcr fmovm.x &0x04,-(%sp) # save fp2 fmov.s &0x7f800000,%fp2 # load +INF fmul.s &0x00000000,%fp2 # +INF x 0 @@ -9956,7 +9956,7 @@ # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # -# # +# # # OUTPUT ************************************************************** # # fp0 = default underflow result # # # @@ -10003,8 +10003,8 @@ # (monadic) # # t_ovfl2(): Handle 060FPLSP overflow exception during # # emulation. result always positive. (dyadic) # -# t_ovfl_sc(): Handle 060FPLSP overflow exception during # -# emulation for "fscale". # +# t_ovfl_sc(): Handle 060FPLSP overflow exception during # +# emulation for "fscale". # # # # This routine is used by the 060FPLSP package. # # # @@ -10013,7 +10013,7 @@ # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # -# # +# # # OUTPUT ************************************************************** # # fp0 = default underflow result # # # @@ -10113,12 +10113,12 @@ # # # INPUT *************************************************************** # # fp0 = default underflow or overflow result # -# # +# # # OUTPUT ************************************************************** # # fp0 = default result # # # # ALGORITHM *********************************************************** # -# If an overflow or underflow occurred during the last # +# If an overflow or underflow occurred during the last # # instruction of transcendental 060FPLSP emulation, then it has already # # occurred and has been logged. Now we need to see if an inexact # # exception should occur. # @@ -10147,16 +10147,16 @@ # # # INPUT *************************************************************** # # fp0 = default result # -# # +# # # OUTPUT ************************************************************** # # fp0 = default result # # # # ALGORITHM *********************************************************** # -# The last instruction of transcendental emulation for the # +# The last instruction of transcendental emulation for the # # 060FPLSP should be inexact. So, if inexact is enabled, then we create # # the event here by adding a large and very small number together # # so that the operating system can log the event. # -# Must check, too, if the result was zero, in which case we just # +# Must check, too, if the result was zero, in which case we just # # set the FPSR bits and return. # # # ######################################################################### @@ -10178,7 +10178,7 @@ inx2_work: btst &inex2_bit,FPCR_ENABLE(%a6) # is inexact enabled? bne.b inx2_work_ena # yes - rts + rts inx2_work_ena: fmov.l USER_FPCR(%a6),%fpcr # insert user's exceptions fmov.s &0x3f800000,%fp1 # load +1 @@ -10202,7 +10202,7 @@ # # # INPUT *************************************************************** # # a0 = pointer to extended precision input operand # -# # +# # # OUTPUT ************************************************************** # # fp0 = default result # # # @@ -10235,7 +10235,7 @@ # # sto_cos: -# This is used by fsincos library emulation. The correct +# This is used by fsincos library emulation. The correct # values are already in fp0 and fp1 so we do nothing here. # global sto_cos @@ -10485,7 +10485,7 @@ ######################################################################### global dst_zero dst_zero: - tst.b DST_EX(%a1) # get sign of dst operand + tst.b DST_EX(%a1) # get sign of dst operand bmi.b ld_mzero # if neg, load neg zero bra.b ld_pzero # load positive zero @@ -10494,7 +10494,7 @@ ######################################################################### global src_inf src_inf: - tst.b SRC_EX(%a0) # get sign of src operand + tst.b SRC_EX(%a0) # get sign of src operand bmi.b ld_minf # if negative branch # @@ -10520,7 +10520,7 @@ ######################################################################### global dst_inf dst_inf: - tst.b DST_EX(%a1) # get sign of dst operand + tst.b DST_EX(%a1) # get sign of dst operand bmi.b ld_minf # if negative branch bra.b ld_pinf @@ -10562,7 +10562,7 @@ ######################################################################### global src_one src_one: - tst.b SRC_EX(%a0) # check sign of source + tst.b SRC_EX(%a0) # check sign of source bmi.b ld_mone # @@ -10591,7 +10591,7 @@ ################################################################# global spi_2 spi_2: - tst.b SRC_EX(%a0) # check sign of source + tst.b SRC_EX(%a0) # check sign of source bmi.b ld_mpi2 # @@ -10618,7 +10618,7 @@ # # ssincosz(): When the src operand is ZERO, store a one in the -# cosine register and return a ZERO in fp0 w/ the same sign +# cosine register and return a ZERO in fp0 w/ the same sign # as the src operand. # global ssincosz @@ -10646,7 +10646,7 @@ # # ssincosqnan(): When the src operand is a QNAN, store the QNAN in the cosine -# register and branch to the src QNAN routine. +# register and branch to the src QNAN routine. # global ssincosqnan ssincosqnan: @@ -10827,7 +10827,7 @@ # a0 = pointer fp extended precision operand to normalize # # # # OUTPUT ************************************************************** # -# d0 = number of bit positions the mantissa was shifted # +# d0 = number of bit positions the mantissa was shifted # # a0 = the input operand's mantissa is normalized; the exponent # # is unchanged. # # # @@ -10854,7 +10854,7 @@ mov.l %d1, FTEMP_LO(%a0) # store new lo(man) mov.l %d2, %d0 # return shift amount - + mov.l (%sp)+, %d3 # restore temp regs mov.l (%sp)+, %d2 @@ -10869,7 +10869,7 @@ clr.l FTEMP_LO(%a0) # lo(man) is now zero mov.l %d2, %d0 # return shift amount - + mov.l (%sp)+, %d3 # restore temp regs mov.l (%sp)+, %d2 @@ -10974,7 +10974,7 @@ # whole mantissa is zero so this UNNORM is actually a zero # unnorm_zero: - and.w &0x8000, FTEMP_EX(%a0) # force exponent to zero + and.w &0x8000, FTEMP_EX(%a0) # force exponent to zero mov.b &ZERO, %d0 # fix optype tag rts diff -Nru a/arch/m68k/ifpsp060/src/fpsp.S b/arch/m68k/ifpsp060/src/fpsp.S --- a/arch/m68k/ifpsp060/src/fpsp.S Tue May 18 23:38:09 2004 +++ b/arch/m68k/ifpsp060/src/fpsp.S Tue May 18 23:38:09 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -90,7 +90,7 @@ bra.l _fpsp_effadd short 0x0000 - space 56 + space 56 ############################################################### global _fpsp_done @@ -324,33 +324,33 @@ set EXC_D1, EXC_DREGS+(1*4) set EXC_D0, EXC_DREGS+(0*4) -set EXC_FP0, EXC_FPREGS+(0*12) # offset of saved fp0 -set EXC_FP1, EXC_FPREGS+(1*12) # offset of saved fp1 -set EXC_FP2, EXC_FPREGS+(2*12) # offset of saved fp2 (not used) +set EXC_FP0, EXC_FPREGS+(0*12) # offset of saved fp0 +set EXC_FP1, EXC_FPREGS+(1*12) # offset of saved fp1 +set EXC_FP2, EXC_FPREGS+(2*12) # offset of saved fp2 (not used) -set FP_SCR1, LV+80 # fp scratch 1 -set FP_SCR1_EX, FP_SCR1+0 +set FP_SCR1, LV+80 # fp scratch 1 +set FP_SCR1_EX, FP_SCR1+0 set FP_SCR1_SGN, FP_SCR1+2 -set FP_SCR1_HI, FP_SCR1+4 -set FP_SCR1_LO, FP_SCR1+8 +set FP_SCR1_HI, FP_SCR1+4 +set FP_SCR1_LO, FP_SCR1+8 -set FP_SCR0, LV+68 # fp scratch 0 -set FP_SCR0_EX, FP_SCR0+0 +set FP_SCR0, LV+68 # fp scratch 0 +set FP_SCR0_EX, FP_SCR0+0 set FP_SCR0_SGN, FP_SCR0+2 -set FP_SCR0_HI, FP_SCR0+4 -set FP_SCR0_LO, FP_SCR0+8 +set FP_SCR0_HI, FP_SCR0+4 +set FP_SCR0_LO, FP_SCR0+8 -set FP_DST, LV+56 # fp destination operand -set FP_DST_EX, FP_DST+0 +set FP_DST, LV+56 # fp destination operand +set FP_DST_EX, FP_DST+0 set FP_DST_SGN, FP_DST+2 -set FP_DST_HI, FP_DST+4 -set FP_DST_LO, FP_DST+8 +set FP_DST_HI, FP_DST+4 +set FP_DST_LO, FP_DST+8 -set FP_SRC, LV+44 # fp source operand -set FP_SRC_EX, FP_SRC+0 +set FP_SRC, LV+44 # fp source operand +set FP_SRC_EX, FP_SRC+0 set FP_SRC_SGN, FP_SRC+2 -set FP_SRC_HI, FP_SRC+4 -set FP_SRC_LO, FP_SRC+8 +set FP_SRC_HI, FP_SRC+4 +set FP_SRC_LO, FP_SRC+8 set USER_FPIAR, LV+40 # FP instr address register @@ -374,7 +374,7 @@ set EXC_TEMP, LV+16 # temporary space set DTAG, LV+15 # destination operand type -set STAG, LV+14 # source operand type +set STAG, LV+14 # source operand type set SPCOND_FLG, LV+10 # flag: special case (see below) @@ -389,17 +389,17 @@ # Helpful macros set FTEMP, 0 # offsets within an -set FTEMP_EX, 0 # extended precision +set FTEMP_EX, 0 # extended precision set FTEMP_SGN, 2 # value saved in memory. -set FTEMP_HI, 4 -set FTEMP_LO, 8 +set FTEMP_HI, 4 +set FTEMP_LO, 8 set FTEMP_GRS, 12 set LOCAL, 0 # offsets within an -set LOCAL_EX, 0 # extended precision +set LOCAL_EX, 0 # extended precision set LOCAL_SGN, 2 # value saved in memory. -set LOCAL_HI, 4 -set LOCAL_LO, 8 +set LOCAL_HI, 4 +set LOCAL_LO, 8 set LOCAL_GRS, 12 set DST, 0 # offsets within an @@ -489,17 +489,17 @@ ###################################### set dzinf_mask, inf_mask+dz_mask+adz_mask set opnan_mask, nan_mask+operr_mask+aiop_mask -set nzi_mask, 0x01ffffff #clears N, Z, and I +set nzi_mask, 0x01ffffff #clears N, Z, and I set unfinx_mask, unfl_mask+inex2_mask+aunfl_mask+ainex_mask set unf2inx_mask, unfl_mask+inex2_mask+ainex_mask set ovfinx_mask, ovfl_mask+inex2_mask+aovfl_mask+ainex_mask set inx1a_mask, inex1_mask+ainex_mask set inx2a_mask, inex2_mask+ainex_mask -set snaniop_mask, nan_mask+snan_mask+aiop_mask +set snaniop_mask, nan_mask+snan_mask+aiop_mask set snaniop2_mask, snan_mask+aiop_mask set naniop_mask, nan_mask+aiop_mask set neginf_mask, neg_mask+inf_mask -set infaiop_mask, inf_mask+aiop_mask +set infaiop_mask, inf_mask+aiop_mask set negz_mask, neg_mask+z_mask set opaop_mask, operr_mask+aiop_mask set unfl_inx_mask, unfl_mask+aunfl_mask+ainex_mask @@ -528,8 +528,8 @@ set mantissalen, 64 # length of mantissa in bits set BYTE, 1 # len(byte) == 1 byte -set WORD, 2 # len(word) == 2 bytes -set LONG, 4 # len(longword) == 2 bytes +set WORD, 2 # len(word) == 2 bytes +set LONG, 4 # len(longword) == 2 bytes set BSUN_VEC, 0xc0 # bsun vector offset set INEX_VEC, 0xc4 # inexact vector offset @@ -599,7 +599,7 @@ # INPUT *************************************************************** # # - The system stack contains the FP Ovfl exception stack frame # # - The fsave frame contains the source operand # -# # +# # # OUTPUT ************************************************************** # # Overflow Exception enabled: # # - The system stack is unchanged # @@ -610,24 +610,24 @@ # # # ALGORITHM *********************************************************** # # On the 060, if an FP overflow is present as the result of any # -# instruction, the 060 will take an overflow exception whether the # -# exception is enabled or disabled in the FPCR. For the disabled case, # +# instruction, the 060 will take an overflow exception whether the # +# exception is enabled or disabled in the FPCR. For the disabled case, # # This handler emulates the instruction to determine what the correct # # default result should be for the operation. This default result is # -# then stored in either the FP regfile, data regfile, or memory. # -# Finally, the handler exits through the "callout" _fpsp_done() # +# then stored in either the FP regfile, data regfile, or memory. # +# Finally, the handler exits through the "callout" _fpsp_done() # # denoting that no exceptional conditions exist within the machine. # -# If the exception is enabled, then this handler must create the # +# If the exception is enabled, then this handler must create the # # exceptional operand and plave it in the fsave state frame, and store # -# the default result (only if the instruction is opclass 3). For # -# exceptions enabled, this handler must exit through the "callout" # +# the default result (only if the instruction is opclass 3). For # +# exceptions enabled, this handler must exit through the "callout" # # _real_ovfl() so that the operating system enabled overflow handler # # can handle this case. # -# Two other conditions exist. First, if overflow was disabled # -# but the inexact exception was enabled, this handler must exit # +# Two other conditions exist. First, if overflow was disabled # +# but the inexact exception was enabled, this handler must exit # # through the "callout" _real_inex() regardless of whether the result # # was inexact. # -# Also, in the case of an opclass three instruction where # +# Also, in the case of an opclass three instruction where # # overflow was disabled and the trace exception was enabled, this # # handler must exit through the "callout" _real_trace(). # # # @@ -642,9 +642,9 @@ fsave FP_SRC(%a6) # grab the "busy" frame - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack # the FPIAR holds the "current PC" of the faulting instruction mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) @@ -668,7 +668,7 @@ bsr.l set_tag_x # tag the operand type mov.b %d0,STAG(%a6) # maybe NORM,DENORM -# bit five of the fp extension word separates the monadic and dyadic operations +# bit five of the fp extension word separates the monadic and dyadic operations # that can pass through fpsp_ovfl(). remember that fcmp, ftst, and fsincos # will never take this exception. btst &0x5,1+EXC_CMDREG(%a6) # is operation monadic or dyadic? @@ -741,7 +741,7 @@ fovfl_ovfl_on: fmovm.x &0x40,FP_SRC(%a6) # save EXOP (fp1) to stack - mov.w &0xe005,2+FP_SRC(%a6) # save exc status + mov.w &0xe005,2+FP_SRC(%a6) # save exc status fmovm.x EXC_FPREGS(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs @@ -757,10 +757,10 @@ # we must jump to real_inex(). fovfl_inex_on: - fmovm.x &0x40,FP_SRC(%a6) # save EXOP (fp1) to stack + fmovm.x &0x40,FP_SRC(%a6) # save EXOP (fp1) to stack mov.b &0xc4,1+EXC_VOFF(%a6) # vector offset = 0xc4 - mov.w &0xe001,2+FP_SRC(%a6) # save exc status + mov.w &0xe001,2+FP_SRC(%a6) # save exc status fmovm.x EXC_FPREGS(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs @@ -811,7 +811,7 @@ btst &0x7,(%sp) # is trace on? beq.l _fpsp_done # no - fmov.l %fpiar,0x8(%sp) # "Current PC" is in FPIAR + fmov.l %fpiar,0x8(%sp) # "Current PC" is in FPIAR mov.w &0x2024,0x6(%sp) # stk fmt = 0x2; voff = 0x024 bra.l _real_trace @@ -839,7 +839,7 @@ # INPUT *************************************************************** # # - The system stack contains the FP Unfl exception stack frame # # - The fsave frame contains the source operand # -# # +# # # OUTPUT ************************************************************** # # Underflow Exception enabled: # # - The system stack is unchanged # @@ -850,24 +850,24 @@ # # # ALGORITHM *********************************************************** # # On the 060, if an FP underflow is present as the result of any # -# instruction, the 060 will take an underflow exception whether the # -# exception is enabled or disabled in the FPCR. For the disabled case, # +# instruction, the 060 will take an underflow exception whether the # +# exception is enabled or disabled in the FPCR. For the disabled case, # # This handler emulates the instruction to determine what the correct # # default result should be for the operation. This default result is # -# then stored in either the FP regfile, data regfile, or memory. # -# Finally, the handler exits through the "callout" _fpsp_done() # +# then stored in either the FP regfile, data regfile, or memory. # +# Finally, the handler exits through the "callout" _fpsp_done() # # denoting that no exceptional conditions exist within the machine. # -# If the exception is enabled, then this handler must create the # +# If the exception is enabled, then this handler must create the # # exceptional operand and plave it in the fsave state frame, and store # -# the default result (only if the instruction is opclass 3). For # -# exceptions enabled, this handler must exit through the "callout" # +# the default result (only if the instruction is opclass 3). For # +# exceptions enabled, this handler must exit through the "callout" # # _real_unfl() so that the operating system enabled overflow handler # # can handle this case. # -# Two other conditions exist. First, if underflow was disabled # -# but the inexact exception was enabled and the result was inexact, # +# Two other conditions exist. First, if underflow was disabled # +# but the inexact exception was enabled and the result was inexact, # # this handler must exit through the "callout" _real_inex(). # # was inexact. # -# Also, in the case of an opclass three instruction where # +# Also, in the case of an opclass three instruction where # # underflow was disabled and the trace exception was enabled, this # # handler must exit through the "callout" _real_trace(). # # # @@ -882,12 +882,12 @@ fsave FP_SRC(%a6) # grab the "busy" frame - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack # the FPIAR holds the "current PC" of the faulting instruction - mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) + mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long # fetch the instruction words @@ -906,13 +906,13 @@ bsr.l set_tag_x # tag the operand type mov.b %d0,STAG(%a6) # maybe NORM,DENORM -# bit five of the fp ext word separates the monadic and dyadic operations +# bit five of the fp ext word separates the monadic and dyadic operations # that can pass through fpsp_unfl(). remember that fcmp, and ftst # will never take this exception. btst &0x5,1+EXC_CMDREG(%a6) # is op monadic or dyadic? beq.b funfl_extract # monadic -# now, what's left that's not dyadic is fsincos. we can distinguish it +# now, what's left that's not dyadic is fsincos. we can distinguish it # from all dyadics by the '0110xxx pattern btst &0x4,1+EXC_CMDREG(%a6) # is op an fsincos? bne.b funfl_extract # yes @@ -963,7 +963,7 @@ # (0x00000000_80000000_00000000), then the machine will take an # underflow exception. Since this is incorrect, we need to check # if our emulation, after re-doing the operation, decided that -# no underflow was called for. We do these checks only in +# no underflow was called for. We do these checks only in # funfl_{unfl,inex}_on() because w/ both exceptions disabled, this # special case will simply exit gracefully with the correct result. @@ -1003,7 +1003,7 @@ funfl_unfl_on2: fmovm.x &0x40,FP_SRC(%a6) # save EXOP (fp1) to stack - mov.w &0xe003,2+FP_SRC(%a6) # save exc status + mov.w &0xe003,2+FP_SRC(%a6) # save exc status fmovm.x EXC_FPREGS(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs @@ -1022,7 +1022,7 @@ # The `060 FPU multiplier hardware is such that if the result of a # multiply operation is the smallest possible normalized number # (0x00000000_80000000_00000000), then the machine will take an -# underflow exception. +# underflow exception. # But, whether bogus or not, if inexact is enabled AND it occurred, # then we have to branch to real_inex. @@ -1031,10 +1031,10 @@ funfl_inex_on2: - fmovm.x &0x40,FP_SRC(%a6) # save EXOP to stack + fmovm.x &0x40,FP_SRC(%a6) # save EXOP to stack mov.b &0xc4,1+EXC_VOFF(%a6) # vector offset = 0xc4 - mov.w &0xe001,2+FP_SRC(%a6) # save exc status + mov.w &0xe001,2+FP_SRC(%a6) # save exc status fmovm.x EXC_FPREGS(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs @@ -1120,7 +1120,7 @@ # INPUT *************************************************************** # # - The system stack contains the "Unimp Data Type" stk frame # # - The fsave frame contains the ssrc op (for UNNORM/DENORM) # -# # +# # # OUTPUT ************************************************************** # # If Inexact exception (opclass 3): # # - The system stack is changed to an Inexact exception stk frame # @@ -1139,12 +1139,12 @@ # # # ALGORITHM *********************************************************** # # Two main instruction types can enter here: (1) DENORM or UNNORM # -# unimplemented data types. These can be either opclass 0,2 or 3 # +# unimplemented data types. These can be either opclass 0,2 or 3 # # instructions, and (2) PACKED unimplemented data format instructions # # also of opclasses 0,2, or 3. # # For UNNORM/DENORM opclass 0 and 2, the handler fetches the src # # operand from the fsave state frame and the dst operand (if dyadic) # -# from the FP register file. The instruction is then emulated by # +# from the FP register file. The instruction is then emulated by # # choosing an emulation routine from a table of routines indexed by # # instruction type. Once the instruction has been emulated and result # # saved, then we check to see if any enabled exceptions resulted from # @@ -1166,7 +1166,7 @@ # (a Trace stack frame must be created here, too). If an FP exception # # should occur, then we must create an exception stack frame of that # # type and jump to either _real_snan(), _real_operr(), _real_inex(), # -# _real_unfl(), or _real_ovfl() as appropriate. PACKED opclass 3 # +# _real_unfl(), or _real_ovfl() as appropriate. PACKED opclass 3 # # emulation is performed in a similar manner. # # # ######################################################################### @@ -1178,7 +1178,7 @@ # ***************** # * EA * # pre-instruction * * -# ***************** ***************** +# ***************** ***************** # * 0x0 * 0x0dc * * 0x3 * 0x0dc * # ***************** ***************** # * Next * * Next * @@ -1207,9 +1207,9 @@ fsave FP_SRC(%a6) # save fp state - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack btst &0x5,EXC_SR(%a6) # user or supervisor mode? bne.b fu_s @@ -1258,7 +1258,7 @@ fmov.l &0x0,%fpsr # Opclass two w/ memory-to-fpn operation will have an incorrect extended -# precision format if the src format was single or double and the +# precision format if the src format was single or double and the # source data type was an INF, NAN, DENORM, or UNNORM lea FP_SRC(%a6),%a0 # pass ptr to input bsr.l fix_skewed_ops @@ -1277,7 +1277,7 @@ bfextu EXC_CMDREG(%a6){&6:&3},%d0 # dyadic; load dst reg -# bit five of the fp extension word separates the monadic and dyadic operations +# bit five of the fp extension word separates the monadic and dyadic operations # at this point btst &0x5,1+EXC_CMDREG(%a6) # is operation monadic or dyadic? beq.b fu_extract # monadic @@ -1308,13 +1308,13 @@ # # Exceptions in order of precedence: -# BSUN : none +# BSUN : none # SNAN : all dyadic ops # OPERR : fsqrt(-NORM) # OVFL : all except ftst,fcmp # UNFL : all except ftst,fcmp # DZ : fdiv -# INEX2 : all except ftst,fcmp +# INEX2 : all except ftst,fcmp # INEX1 : none (packed doesn't go through here) # @@ -1351,16 +1351,16 @@ # # No exceptions occurred that were also enabled. Now: # -# if (OVFL && ovfl_disabled && inexact_enabled) { +# if (OVFL && ovfl_disabled && inexact_enabled) { # branch to _real_inex() (even if the result was exact!); -# } else { +# } else { # save the result in the proper fp reg (unless the op is fcmp or ftst); # return; -# } +# } # btst &ovfl_bit,FPSR_EXCEPT(%a6) # was overflow set? beq.b fu_in_cont # no - + fu_in_ovflchk: btst &inex2_bit,FPCR_ENABLE(%a6) # was inexact enabled? beq.b fu_in_cont # no @@ -1380,7 +1380,7 @@ # } else { # restore exc state (SNAN||OPERR||OVFL||UNFL||DZ||INEX) into the FPU; # } -# +# fu_in_exc: subi.l &24,%d0 # fix offset to be 0-8 cmpi.b %d0,&0x6 # is exception INEX? (6) @@ -1393,7 +1393,7 @@ bne.w fu_in_exc_ovfl # yes # here, we insert the correct fsave status value into the fsave frame for the -# corresponding exception. the operand in the fsave frame should be the original +# corresponding exception. the operand in the fsave frame should be the original # src operand. fu_in_exc_exit: mov.l %d0,-(%sp) # save d0 @@ -1424,8 +1424,8 @@ bra.b fu_in_exc_exit # If the input operand to this operation was opclass two and a single -# or double precision denorm, inf, or nan, the operand needs to be -# "corrected" in order to have the proper equivalent extended precision +# or double precision denorm, inf, or nan, the operand needs to be +# "corrected" in order to have the proper equivalent extended precision # number. global fix_skewed_ops fix_skewed_ops: @@ -1453,7 +1453,7 @@ bsr.l norm # normalize mantissa neg.w %d0 # -shft amt addi.w &0x3f81,%d0 # adjust new exponent - andi.w &0x8000,LOCAL_EX(%a0) # clear old exponent + andi.w &0x8000,LOCAL_EX(%a0) # clear old exponent or.w %d0,LOCAL_EX(%a0) # insert new exponent rts @@ -1462,7 +1462,7 @@ rts fso_infnan: - andi.b &0x7f,LOCAL_HI(%a0) # clear j-bit + andi.b &0x7f,LOCAL_HI(%a0) # clear j-bit ori.w &0x7fff,LOCAL_EX(%a0) # make exponent = $7fff rts @@ -1485,7 +1485,7 @@ bsr.l norm # normalize mantissa neg.w %d0 # -shft amt addi.w &0x3c01,%d0 # adjust new exponent - andi.w &0x8000,LOCAL_EX(%a0) # clear old exponent + andi.w &0x8000,LOCAL_EX(%a0) # clear old exponent or.w %d0,LOCAL_EX(%a0) # insert new exponent rts @@ -1537,13 +1537,13 @@ bsr.l fout # call fmove out routine # Exceptions in order of precedence: -# BSUN : none +# BSUN : none # SNAN : none # OPERR : fmove.{b,w,l} out of large UNNORM # OVFL : fmove.{s,d} # UNFL : fmove.{s,d,x} # DZ : none -# INEX2 : all +# INEX2 : all # INEX1 : none (packed doesn't travel through here) # determine the highest priority exception(if any) set by the @@ -1555,7 +1555,7 @@ mov.l EXC_A6(%a6),(%a6) # in case a6 changed -# on extended precision opclass three instructions using pre-decrement or +# on extended precision opclass three instructions using pre-decrement or # post-increment addressing mode, the address register is not updated. is the # address register was the stack pointer used from user mode, then let's update # it here. if it was used from supervisor mode, then we have to handle this @@ -1579,7 +1579,7 @@ bra.l _fpsp_done # is the ea mode pre-decrement of the stack pointer from supervisor mode? -# ("fmov.x fpm,-(a7)") if so, +# ("fmov.x fpm,-(a7)") if so, fu_out_done_s: cmpi.b SPCOND_FLG(%a6),&mda7_flg bne.b fu_out_done_cont @@ -1617,7 +1617,7 @@ bfffo %d0{&24:&8},%d0 # find highest priority exception bne.b fu_out_exc # there is at least one set -# no exceptions were set. +# no exceptions were set. # if a disabled overflow occurred and inexact was enabled but the result # was exact, then a branch to _real_inex() is made. btst &ovfl_bit,FPSR_EXCEPT(%a6) # was overflow set? @@ -1634,7 +1634,7 @@ # from FPIAR and put it in the trace stack frame then jump to _real_trace(). # # UNSUPP FRAME TRACE FRAME -# ***************** ***************** +# ***************** ***************** # * EA * * Current * # * * * PC * # ***************** ***************** @@ -1651,7 +1651,7 @@ fmov.l %fpiar,0x8(%sp) bra.l _real_trace -# an exception occurred and that exception was enabled. +# an exception occurred and that exception was enabled. fu_out_exc: subi.l &24,%d0 # fix offset to be 0-8 @@ -1663,15 +1663,15 @@ swbeg &0x8 tbl_fu_out: short tbl_fu_out - tbl_fu_out # BSUN can't happen - short tbl_fu_out - tbl_fu_out # SNAN can't happen + short tbl_fu_out - tbl_fu_out # SNAN can't happen short fu_operr - tbl_fu_out # OPERR - short fu_ovfl - tbl_fu_out # OVFL - short fu_unfl - tbl_fu_out # UNFL + short fu_ovfl - tbl_fu_out # OVFL + short fu_unfl - tbl_fu_out # UNFL short tbl_fu_out - tbl_fu_out # DZ can't happen - short fu_inex - tbl_fu_out # INEX2 + short fu_inex - tbl_fu_out # INEX2 short tbl_fu_out - tbl_fu_out # INEX1 won't make it here -# for snan,operr,ovfl,unfl, src op is still in FP_SRC so just +# for snan,operr,ovfl,unfl, src op is still in FP_SRC so just # frestore it. fu_snan: fmovm.x EXC_FPREGS(%a6),&0xc0 # restore fp0/fp1 @@ -1722,7 +1722,7 @@ # underflow can happen for extended precision. extended precision opclass # three instruction exceptions don't update the stack pointer. so, if the # exception occurred from user mode, then simply update a7 and exit normally. -# if the exception occurred from supervisor mode, check if +# if the exception occurred from supervisor mode, check if fu_unfl: mov.l EXC_A6(%a6),(%a6) # restore a6 @@ -1731,7 +1731,7 @@ mov.l EXC_A7(%a6),%a0 # restore a7 whether we need mov.l %a0,%usp # to or not... - + fu_unfl_cont: fmovm.x &0x40,FP_SRC(%a6) # save EXOP to the stack @@ -1822,7 +1822,7 @@ bfextu EXC_CMDREG(%a6){&6:&3},%d0 # dyadic; load dst reg -# bit five of the fp extension word separates the monadic and dyadic operations +# bit five of the fp extension word separates the monadic and dyadic operations # at this point btst &0x5,1+EXC_CMDREG(%a6) # is operation monadic or dyadic? beq.b fu_extract_p # monadic @@ -1853,13 +1853,13 @@ # # Exceptions in order of precedence: -# BSUN : none +# BSUN : none # SNAN : all dyadic ops # OPERR : fsqrt(-NORM) # OVFL : all except ftst,fcmp # UNFL : all except ftst,fcmp # DZ : fdiv -# INEX2 : all except ftst,fcmp +# INEX2 : all except ftst,fcmp # INEX1 : all # @@ -1929,16 +1929,16 @@ # # No exceptions occurred that were also enabled. Now: # -# if (OVFL && ovfl_disabled && inexact_enabled) { +# if (OVFL && ovfl_disabled && inexact_enabled) { # branch to _real_inex() (even if the result was exact!); -# } else { +# } else { # save the result in the proper fp reg (unless the op is fcmp or ftst); # return; -# } +# } # btst &ovfl_bit,FPSR_EXCEPT(%a6) # was overflow set? beq.w fu_in_cont_p # no - + fu_in_ovflchk_p: btst &inex2_bit,FPCR_ENABLE(%a6) # was inexact enabled? beq.w fu_in_cont_p # no @@ -1958,7 +1958,7 @@ # } else { # restore exc state (SNAN||OPERR||OVFL||UNFL||DZ||INEX) into the FPU; # } -# +# fu_in_exc_p: subi.l &24,%d0 # fix offset to be 0-8 cmpi.b %d0,&0x6 # is exception INEX? (6 or 7) @@ -1971,7 +1971,7 @@ bne.w fu_in_exc_ovfl_p # yes # here, we insert the correct fsave status value into the fsave frame for the -# corresponding exception. the operand in the fsave frame should be the original +# corresponding exception. the operand in the fsave frame should be the original # src operand. # as a reminder for future predicted pain and agony, we are passing in fsave the # "non-skewed" operand for cases of sgl and dbl src INFs,NANs, and DENORMs. @@ -2034,21 +2034,21 @@ bne.b fu_trace_p # yes bra.l _fpsp_done # exit to os - + # -# The opclass two PACKED instruction that took an "Unimplemented Data Type" -# exception was being traced. Make the "current" PC the FPIAR and put it in the +# The opclass two PACKED instruction that took an "Unimplemented Data Type" +# exception was being traced. Make the "current" PC the FPIAR and put it in the # trace stack frame then jump to _real_trace(). -# +# # UNSUPP FRAME TRACE FRAME # ***************** ***************** # * EA * * Current * # * * * PC * # ***************** ***************** -# * 0x2 * 0x0dc * * 0x2 * 0x024 * +# * 0x2 * 0x0dc * * 0x2 * 0x024 * # ***************** ***************** # * Next * * Next * -# * PC * * PC * +# * PC * * PC * # ***************** ***************** # * SR * * SR * # ***************** ***************** @@ -2094,13 +2094,13 @@ bsr.l fout # call fmove out routine # Exceptions in order of precedence: -# BSUN : no +# BSUN : no # SNAN : yes # OPERR : if ((k_factor > +17) || (dec. exp exceeds 3 digits)) # OVFL : no # UNFL : no # DZ : no -# INEX2 : yes +# INEX2 : yes # INEX1 : no # determine the highest priority exception(if any) set by the @@ -2164,7 +2164,7 @@ mov.l EXC_A6(%a6),(%a6) # restore a6 -# an exception occurred and that exception was enabled. +# an exception occurred and that exception was enabled. # the only exception possible on packed move out are INEX, OPERR, and SNAN. fu_out_exc_p: cmpi.b %d0,&0x1a @@ -2191,7 +2191,7 @@ movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 mov.w &0x30d8,EXC_VOFF(%a6) # vector offset = 0xd0 - mov.w &0xe006,2+FP_SRC(%a6) # set fsave status + mov.w &0xe006,2+FP_SRC(%a6) # set fsave status frestore FP_SRC(%a6) # restore src operand @@ -2231,7 +2231,7 @@ movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 mov.w &0x30d0,EXC_VOFF(%a6) # vector offset = 0xd0 - mov.w &0xe004,2+FP_SRC(%a6) # set fsave status + mov.w &0xe004,2+FP_SRC(%a6) # set fsave status frestore FP_SRC(%a6) # restore src operand @@ -2270,8 +2270,8 @@ fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 - mov.w &0x30c4,EXC_VOFF(%a6) # vector offset = 0xc4 - mov.w &0xe001,2+FP_SRC(%a6) # set fsave status + mov.w &0x30c4,EXC_VOFF(%a6) # vector offset = 0xc4 + mov.w &0xe001,2+FP_SRC(%a6) # set fsave status frestore FP_SRC(%a6) # restore src operand @@ -2312,7 +2312,7 @@ andi.w &0x7fff,%d0 # strip sign beq.b funimp_skew_sgl_not cmpi.w %d0,&0x3f80 - bgt.b funimp_skew_sgl_not + bgt.b funimp_skew_sgl_not neg.w %d0 # make exponent negative addi.w &0x3f81,%d0 # find amt to shift mov.l FP_SRC_HI(%a6),%d1 # fetch DENORM hi(man) @@ -2329,7 +2329,7 @@ andi.w &0x7fff,%d0 # strip sign beq.b funimp_skew_dbl_not cmpi.w %d0,&0x3c00 - bgt.b funimp_skew_dbl_not + bgt.b funimp_skew_dbl_not tst.b FP_SRC_EX(%a6) # make "internal format" smi.b 0x2+FP_SRC(%a6) @@ -2362,7 +2362,7 @@ ######################################################################### # XDEF **************************************************************** # # _fpsp_effadd(): 060FPSP entry point for FP "Unimplemented # -# effective address" exception. # +# effective address" exception. # # # # This handler should be the first code executed upon taking the # # FP Unimplemented Effective Address exception in an operating # @@ -2387,7 +2387,7 @@ # # # INPUT *************************************************************** # # - The system stack contains the "Unimplemented " stk frame # -# # +# # # OUTPUT ************************************************************** # # If access error: # # - The system stack is changed to an access error stack frame # @@ -2408,17 +2408,17 @@ # For immediate data operations, the data is read in w/ a # # _mem_read() "callout", converted to FP binary (if packed), and used # # as the source operand to the instruction specified by the instruction # -# word. If no FP exception should be reported ads a result of the # +# word. If no FP exception should be reported ads a result of the # # emulation, then the result is stored to the destination register and # # the handler exits through _fpsp_done(). If an enabled exc has been # # signalled as a result of emulation, then an fsave state frame # # corresponding to the FP exception type must be entered into the 060 # -# FPU before exiting. In either the enabled or disabled cases, we # +# FPU before exiting. In either the enabled or disabled cases, we # # must also check if a Trace exception is pending, in which case, we # # must create a Trace exception stack frame from the current exception # # stack frame. If no Trace is pending, we simply exit through # # _fpsp_done(). # -# For "fmovm.x", call the routine fmovm_dynamic() which will # +# For "fmovm.x", call the routine fmovm_dynamic() which will # # decode and emulate the instruction. No FP exceptions can be pending # # as a result of this operation emulation. A Trace exception can be # # pending, though, which means the current stack frame must be changed # @@ -2437,11 +2437,11 @@ # before the "FPU disabled" exception, but the "FPU disabled" exception # # has higher priority, we check the disabled bit in the PCR. If set, # # then we must create an 8 word "FPU disabled" exception stack frame # -# from the current 4 word exception stack frame. This includes # -# reproducing the effective address of the instruction to put on the # +# from the current 4 word exception stack frame. This includes # +# reproducing the effective address of the instruction to put on the # # new stack frame. # # # -# In the process of all emulation work, if a _mem_read() # +# In the process of all emulation work, if a _mem_read() # # "callout" returns a failing result indicating an access error, then # # we must create an access error stack frame from the current stack # # frame. This information includes a faulting address and a fault- # @@ -2482,18 +2482,18 @@ # # here, we will have: -# fabs fdabs fsabs facos fmod +# fabs fdabs fsabs facos fmod # fadd fdadd fsadd fasin frem -# fcmp fatan fscale +# fcmp fatan fscale # fdiv fddiv fsdiv fatanh fsin # fint fcos fsincos # fintrz fcosh fsinh # fmove fdmove fsmove fetox ftan -# fmul fdmul fsmul fetoxm1 ftanh +# fmul fdmul fsmul fetoxm1 ftanh # fneg fdneg fsneg fgetexp ftentox # fsgldiv fgetman ftwotox -# fsglmul flog10 -# fsqrt flog2 +# fsglmul flog10 +# fsqrt flog2 # fsub fdsub fssub flogn # ftst flognp1 # which can all use f.{x,p} @@ -2585,8 +2585,8 @@ # store a result. then, only fcmp will branch back and pick up a dst operand. st STORE_FLG(%a6) # don't store a final result btst &0x1,1+EXC_CMDREG(%a6) # is operation fcmp? - beq.b iea_op_loaddst # yes - + beq.b iea_op_loaddst # yes + iea_op_extract: clr.l %d0 mov.b FPCR_MODE(%a6),%d0 # pass: rnd mode,prec @@ -2659,7 +2659,7 @@ btst &inex2_bit,FPCR_ENABLE(%a6) # is inexact enabled? beq.b iea_op_store # no bra.b iea_op_exc_ovfl # yes - + # an enabled exception occurred. we have to insert the exception type back into # the machine. iea_op_exc: @@ -2698,7 +2698,7 @@ fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 - frestore FP_SRC(%a6) # restore exceptional state + frestore FP_SRC(%a6) # restore exceptional state unlk %a6 # unravel the frame @@ -2706,12 +2706,12 @@ bne.b iea_op_trace # yes bra.l _fpsp_done # exit to os - + # # The opclass two instruction that took an "Unimplemented Effective Address" # exception was being traced. Make the "current" PC the FPIAR and put it in # the trace stack frame then jump to _real_trace(). -# +# # UNIMP EA FRAME TRACE FRAME # ***************** ***************** # * 0x0 * 0x0f0 * * Current * @@ -2744,7 +2744,7 @@ iea_fmovm_data_u: mov.l %usp,%a0 - mov.l %a0,EXC_A7(%a6) # store current a7 + mov.l %a0,EXC_A7(%a6) # store current a7 bsr.l fmovm_dynamic # do dynamic fmovm mov.l EXC_A7(%a6),%a0 # load possibly new a7 mov.l %a0,%usp # update usp @@ -2775,10 +2775,10 @@ lea (EXC_SR,%a6,%d0),%a0 mov.l %a0,EXC_SR(%a6) - + fmovm.x EXC_FP0(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs - movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 + movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 unlk %a6 mov.l (%sp)+,%sp @@ -2792,15 +2792,15 @@ lea (EXC_SR-0x4,%a6,%d0),%a0 mov.l %a0,EXC_SR(%a6) - + fmovm.x EXC_FP0(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs - movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 + movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 unlk %a6 mov.l (%sp)+,%sp bra.l _real_trace - + # right now, d1 = size and d0 = the strg. iea_fmovm_data_predec: mov.b %d1,EXC_VOFF(%a6) # store strg @@ -2808,7 +2808,7 @@ fmovm.x EXC_FP0(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs - movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 + movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 mov.l (%a6),-(%sp) # make a copy of a6 mov.l %d0,-(%sp) # save d0 @@ -2910,10 +2910,10 @@ # # The control reg instruction that took an "Unimplemented Effective Address" -# exception was being traced. The "Current PC" for the trace frame is the +# exception was being traced. The "Current PC" for the trace frame is the # PC stacked for Unimp EA. The "Next PC" is in EXC_EXTWPTR. # After fixing the stack frame, jump to _real_trace(). -# +# # UNIMP EA FRAME TRACE FRAME # ***************** ***************** # * 0x0 * 0x0f0 * * Current * @@ -3066,7 +3066,7 @@ # _fpsp_operr(): 060FPSP entry point for FP Operr exception. # # # # This handler should be the first code executed upon taking the # -# FP Operand Error exception in an operating system. # +# FP Operand Error exception in an operating system. # # # # XREF **************************************************************** # # _imem_read_long() - read instruction longword # @@ -3079,7 +3079,7 @@ # INPUT *************************************************************** # # - The system stack contains the FP Operr exception frame # # - The fsave frame contains the source operand # -# # +# # # OUTPUT ************************************************************** # # No access error: # # - The system stack is unchanged # @@ -3088,16 +3088,16 @@ # ALGORITHM *********************************************************** # # In a system where the FP Operr exception is enabled, the goal # # is to get to the handler specified at _real_operr(). But, on the 060, # -# for opclass zero and two instruction taking this exception, the # +# for opclass zero and two instruction taking this exception, the # # input operand in the fsave frame may be incorrect for some cases # # and needs to be corrected. This handler calls fix_skewed_ops() to # # do just this and then exits through _real_operr(). # # For opclass 3 instructions, the 060 doesn't store the default # # operr result out to memory or data register file as it should. # # This code must emulate the move out before finally exiting through # -# _real_inex(). The move out, if to memory, is performed using # +# _real_inex(). The move out, if to memory, is performed using # # _mem_write() "callout" routines that may return a failing result. # -# In this special case, the handler must exit through facc_out() # +# In this special case, the handler must exit through facc_out() # # which creates an access error stack frame from the current operr # # stack frame. # # # @@ -3110,13 +3110,13 @@ fsave FP_SRC(%a6) # grab the "busy" frame - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack # the FPIAR holds the "current PC" of the faulting instruction mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) - + mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long # fetch the instruction words @@ -3130,7 +3130,7 @@ # here, we simply see if the operand in the fsave frame needs to be "unskewed". # this would be the case for opclass two operations with a source infinity or -# denorm operand in the sgl or dbl format. NANs also become skewed, but can't +# denorm operand in the sgl or dbl format. NANs also become skewed, but can't # cause an operr so we don't need to check for them here. lea FP_SRC(%a6),%a0 # pass: ptr to src op bsr.l fix_skewed_ops # fix src op @@ -3201,7 +3201,7 @@ short tbl_operr - tbl_operr # dbl prec shouldn't happen short foperr_out_b - tbl_operr # byte integer short tbl_operr - tbl_operr # packed won't enter here - + foperr_out_b: mov.b L_SCR1(%a6),%d0 # load positive default result cmpi.b %d1,&0x7 # is mode a data reg? @@ -3255,7 +3255,7 @@ # _fpsp_snan(): 060FPSP entry point for FP SNAN exception. # # # # This handler should be the first code executed upon taking the # -# FP Signalling NAN exception in an operating system. # +# FP Signalling NAN exception in an operating system. # # # # XREF **************************************************************** # # _imem_read_long() - read instruction longword # @@ -3269,7 +3269,7 @@ # INPUT *************************************************************** # # - The system stack contains the FP SNAN exception frame # # - The fsave frame contains the source operand # -# # +# # # OUTPUT ************************************************************** # # No access error: # # - The system stack is unchanged # @@ -3278,16 +3278,16 @@ # ALGORITHM *********************************************************** # # In a system where the FP SNAN exception is enabled, the goal # # is to get to the handler specified at _real_snan(). But, on the 060, # -# for opclass zero and two instructions taking this exception, the # +# for opclass zero and two instructions taking this exception, the # # input operand in the fsave frame may be incorrect for some cases # # and needs to be corrected. This handler calls fix_skewed_ops() to # # do just this and then exits through _real_snan(). # # For opclass 3 instructions, the 060 doesn't store the default # # SNAN result out to memory or data register file as it should. # # This code must emulate the move out before finally exiting through # -# _real_snan(). The move out, if to memory, is performed using # +# _real_snan(). The move out, if to memory, is performed using # # _mem_write() "callout" routines that may return a failing result. # -# In this special case, the handler must exit through facc_out() # +# In this special case, the handler must exit through facc_out() # # which creates an access error stack frame from the current SNAN # # stack frame. # # For the case of an extended precision opclass 3 instruction, # @@ -3306,13 +3306,13 @@ fsave FP_SRC(%a6) # grab the "busy" frame - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack # the FPIAR holds the "current PC" of the faulting instruction mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) - + mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long # fetch the instruction words @@ -3340,7 +3340,7 @@ unlk %a6 bra.l _real_snan - + ######################################################################## # @@ -3350,7 +3350,7 @@ # # byte, word, long, and packed destination format operations can pass # through here. since packed format operations already were handled by -# fpsp_unsupp(), then we need to do nothing else for them here. +# fpsp_unsupp(), then we need to do nothing else for them here. # for byte, word, and long, we simply need to test the sign of the src # operand and save the appropriate minimum or maximum integer value # to the effective address as pointed to by the stacked effective address. @@ -3371,7 +3371,7 @@ short fsnan_out_d - tbl_snan # dbl prec shouldn't happen short fsnan_out_b - tbl_snan # byte integer short tbl_snan - tbl_snan # packed needs no help - + fsnan_out_b: mov.b FP_SRC_HI(%a6),%d0 # load upper byte of SNAN bset &6,%d0 # set SNAN bit @@ -3497,7 +3497,7 @@ mov.l %usp,%a0 # fetch user stack pointer mov.l %a0,EXC_A7(%a6) # save on stack for calc_ea() mov.l (%a6),EXC_A6(%a6) - + bsr.l _calc_ea_fout # find the correct ea,update An mov.l %a0,%a1 mov.l %a0,EXC_EA(%a6) # stack correct @@ -3546,7 +3546,7 @@ mov.l LOCAL_SIZE+FP_SCR0_LO(%sp),LOCAL_SIZE+EXC_EA(%sp) add.l &LOCAL_SIZE-0x8,%sp - + bra.l _real_snan ######################################################################### @@ -3554,7 +3554,7 @@ # _fpsp_inex(): 060FPSP entry point for FP Inexact exception. # # # # This handler should be the first code executed upon taking the # -# FP Inexact exception in an operating system. # +# FP Inexact exception in an operating system. # # # # XREF **************************************************************** # # _imem_read_long() - read instruction longword # @@ -3571,7 +3571,7 @@ # INPUT *************************************************************** # # - The system stack contains the FP Inexact exception frame # # - The fsave frame contains the source operand # -# # +# # # OUTPUT ************************************************************** # # - The system stack is unchanged # # - The fsave frame contains the adjusted src op for opclass 0,2 # @@ -3579,10 +3579,10 @@ # ALGORITHM *********************************************************** # # In a system where the FP Inexact exception is enabled, the goal # # is to get to the handler specified at _real_inex(). But, on the 060, # -# for opclass zero and two instruction taking this exception, the # +# for opclass zero and two instruction taking this exception, the # # hardware doesn't store the correct result to the destination FP # -# register as did the '040 and '881/2. This handler must emulate the # -# instruction in order to get this value and then store it to the # +# register as did the '040 and '881/2. This handler must emulate the # +# instruction in order to get this value and then store it to the # # correct register before calling _real_inex(). # # For opclass 3 instructions, the 060 doesn't store the default # # inexact result out to memory or data register file as it should. # @@ -3598,13 +3598,13 @@ fsave FP_SRC(%a6) # grab the "busy" frame - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack # the FPIAR holds the "current PC" of the faulting instruction mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) - + mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long # fetch the instruction words @@ -3616,7 +3616,7 @@ bne.w finex_out # fmove out -# the hardware, for "fabs" and "fneg" w/ a long source format, puts the +# the hardware, for "fabs" and "fneg" w/ a long source format, puts the # longword integer directly into the upper longword of the mantissa along # w/ an exponent value of 0x401e. we convert this to extended precision here. bfextu %d0{&19:&3},%d0 # fetch instr size @@ -3750,7 +3750,7 @@ # INPUT *************************************************************** # # - The system stack contains the FP DZ exception stack. # # - The fsave frame contains the source operand. # -# # +# # # OUTPUT ************************************************************** # # - The system stack contains the FP DZ exception stack. # # - The fsave frame contains the adjusted source operand. # @@ -3761,7 +3761,7 @@ # exception is taken, the input operand in the fsave state frame may # # be incorrect for some cases and need to be adjusted. So, this package # # adjusts the operand using fix_skewed_ops() and then branches to # -# _real_dz(). # +# _real_dz(). # # # ######################################################################### @@ -3772,13 +3772,13 @@ fsave FP_SRC(%a6) # grab the "busy" frame - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack # the FPIAR holds the "current PC" of the faulting instruction mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) - + mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long # fetch the instruction words @@ -3819,7 +3819,7 @@ # INPUT *************************************************************** # # - The system stack contains a "Line F Emulator" exception # # stack frame. # -# # +# # # OUTPUT ************************************************************** # # - The system stack is unchanged # # # @@ -3830,7 +3830,7 @@ # (2) FPU disabled (8 word stack frame) # # (3) Line F (4 word stack frame) # # # -# This module determines which and forks the flow off to the # +# This module determines which and forks the flow off to the # # appropriate "callout" (for "disabled" and "Line F") or to the # # correct emulation code (for "FPU unimplemented"). # # This code also must check for "fmovecr" instructions w/ a # @@ -3943,11 +3943,11 @@ # _fdbcc() - emulate an "fdbcc" instruction # # _fscc() - emulate an "fscc" instruction # # _real_trap() - "callout" for Trap exception # -# _real_bsun() - "callout" for enabled Bsun exception # +# _real_bsun() - "callout" for enabled Bsun exception # # # # INPUT *************************************************************** # # - The system stack contains the "Unimplemented Instr" stk frame # -# # +# # # OUTPUT ************************************************************** # # If access error: # # - The system stack is changed to an access error stack frame # @@ -3962,21 +3962,21 @@ # unimplemented on the 040, and (2) "ftrapcc", "fscc", and "fdbcc". # # For the first set, this handler calls the routine load_fop() # # to load the source and destination (for dyadic) operands to be used # -# for instruction emulation. The correct emulation routine is then # -# chosen by decoding the instruction type and indexing into an # -# emulation subroutine index table. After emulation returns, this # +# for instruction emulation. The correct emulation routine is then # +# chosen by decoding the instruction type and indexing into an # +# emulation subroutine index table. After emulation returns, this # # handler checks to see if an exception should occur as a result of the # # FP instruction emulation. If so, then an FP exception of the correct # # type is inserted into the FPU state frame using the "frestore" # -# instruction before exiting through _fpsp_done(). In either the # +# instruction before exiting through _fpsp_done(). In either the # # exceptional or non-exceptional cases, we must check to see if the # # Trace exception is enabled. If so, then we must create a Trace # # exception frame from the current exception frame and exit through # # _real_trace(). # -# For "fdbcc", "ftrapcc", and "fscc", the emulation subroutines # +# For "fdbcc", "ftrapcc", and "fscc", the emulation subroutines # # _fdbcc(), _ftrapcc(), and _fscc() respectively are used. All three # -# may flag that a BSUN exception should be taken. If so, then the # -# current exception stack frame is converted into a BSUN exception # +# may flag that a BSUN exception should be taken. If so, then the # +# current exception stack frame is converted into a BSUN exception # # stack frame and an exit is made through _real_bsun(). If the # # instruction was "ftrapcc" and a Trap exception should result, a Trap # # exception stack frame is created from the current frame and an exit # @@ -3985,7 +3985,7 @@ # is made to _real_trace(). Finally, if none of these conditions exist, # # then the handler exits though the callout _fpsp_done(). # # # -# In any of the above scenarios, if a _mem_read() or _mem_write() # +# In any of the above scenarios, if a _mem_read() or _mem_write() # # "callout" returns a failing value, then an access error stack frame # # is created from the current stack frame and an exit is made through # # _real_access(). # @@ -4077,7 +4077,7 @@ beq.w funimp_fmovcr # yes funimp_gen_op: - bsr.l _load_fop # load + bsr.l _load_fop # load clr.l %d0 mov.b FPCR_MODE(%a6),%d0 # fetch rnd mode @@ -4104,7 +4104,7 @@ funimp_gen_exit: fmovm.x EXC_FP0(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs - movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 + movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 funimp_gen_exit_cmp: cmpi.b SPCOND_FLG(%a6),&mia7_flg # was the ea mode (sp)+ ? @@ -4129,7 +4129,7 @@ frestore (%sp)+ mov.w &0x2024,0x6(%sp) # stk fmt = 0x2; voff = 0x24 bra.l _real_trace - + funimp_gen_exit_a7: btst &0x5,EXC_SR(%a6) # supervisor or user mode? bne.b funimp_gen_exit_a7_s # supervisor @@ -4156,7 +4156,7 @@ unlk %a6 add.w (%sp),%sp # stack frame shifted - bra.b funimp_gen_exit_cont2 + bra.b funimp_gen_exit_cont2 ###################### # fmovecr.x #ccc,fpn # @@ -4212,7 +4212,7 @@ btst &unfl_bit,FPSR_EXCEPT(%a6) # did underflow occur? bne.b funimp_exc_unfl # yes -# force the fsave exception status bits to signal an exception of the +# force the fsave exception status bits to signal an exception of the # appropriate type. don't forget to "skew" the source operand in case we # "unskewed" the one the hardware initially gave us. funimp_exc_force: @@ -4242,7 +4242,7 @@ funimp_gen_exit2: fmovm.x EXC_FP0(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs - movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 + movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 frestore FP_SRC(%a6) # insert exceptional status @@ -4262,7 +4262,7 @@ beq.w funimp_fdbcc # yes cmpi.b %d1,&0x7 # is it an fs? bne.w funimp_fscc # yes - bfextu %d0{&13:&3},%d1 + bfextu %d0{&13:&3},%d1 cmpi.b %d1,&0x2 # is it an fs? blt.w funimp_fscc # yes @@ -4302,7 +4302,7 @@ fmovm.x EXC_FP0(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs - movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 + movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 unlk %a6 bra.l _real_trap @@ -4346,7 +4346,7 @@ funimp_fscc_u: mov.l EXC_A7(%a6),%a0 # yes; set new USP mov.l %a0,%usp - bra.w funimp_done # branch to finish + bra.w funimp_done # branch to finish # remember, I'm assuming that post-increment is bogus...(it IS!!!) # so, the least significant WORD of the stacked effective address got @@ -4361,7 +4361,7 @@ fmovm.x EXC_FP0(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs - movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 + movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 unlk %a6 @@ -4381,7 +4381,7 @@ fmov.l %fpiar,0x8(%sp) # insert "current PC" bra.l _real_trace - + # # The ftrap, fs, or fdb is to take an enabled bsun. we must convert # the fp unimplemented instruction exception stack frame into a bsun stack frame, @@ -4409,7 +4409,7 @@ fmovm.x EXC_FP0(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs - movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 + movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 frestore FP_SRC(%a6) # restore bsun exception @@ -4424,13 +4424,13 @@ # and return. # # as usual, we have to check for trace mode being on here. since instructions -# modifying the supervisor stack frame don't pass through here, this is a +# modifying the supervisor stack frame don't pass through here, this is a # relatively easy task. # funimp_done: fmovm.x EXC_FP0(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs - movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 + movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 unlk %a6 @@ -4465,16 +4465,16 @@ global tbl_trans swbeg &0x1c0 tbl_trans: - short tbl_trans - tbl_trans # $00-0 fmovecr all - short tbl_trans - tbl_trans # $00-1 fmovecr all - short tbl_trans - tbl_trans # $00-2 fmovecr all - short tbl_trans - tbl_trans # $00-3 fmovecr all - short tbl_trans - tbl_trans # $00-4 fmovecr all - short tbl_trans - tbl_trans # $00-5 fmovecr all - short tbl_trans - tbl_trans # $00-6 fmovecr all - short tbl_trans - tbl_trans # $00-7 fmovecr all + short tbl_trans - tbl_trans # $00-0 fmovecr all + short tbl_trans - tbl_trans # $00-1 fmovecr all + short tbl_trans - tbl_trans # $00-2 fmovecr all + short tbl_trans - tbl_trans # $00-3 fmovecr all + short tbl_trans - tbl_trans # $00-4 fmovecr all + short tbl_trans - tbl_trans # $00-5 fmovecr all + short tbl_trans - tbl_trans # $00-6 fmovecr all + short tbl_trans - tbl_trans # $00-7 fmovecr all - short tbl_trans - tbl_trans # $01-0 fint norm + short tbl_trans - tbl_trans # $01-0 fint norm short tbl_trans - tbl_trans # $01-1 fint zero short tbl_trans - tbl_trans # $01-2 fint inf short tbl_trans - tbl_trans # $01-3 fint qnan @@ -4599,7 +4599,7 @@ short src_snan - tbl_trans # $0e-4 fsin snan short tbl_trans - tbl_trans # $0e-6 fsin unnorm short tbl_trans - tbl_trans # $0e-7 ERROR - + short stan - tbl_trans # $0f-0 ftan norm short src_zero - tbl_trans # $0f-1 ftan zero short t_operr - tbl_trans # $0f-2 ftan inf @@ -5009,7 +5009,7 @@ # d0 = round precision,mode # # # # OUTPUT ************************************************************** # -# fp0 = sin(X) or cos(X) # +# fp0 = sin(X) or cos(X) # # # # For ssincos(X): # # fp0 = sin(X) # @@ -5017,7 +5017,7 @@ # # # ACCURACY and MONOTONICITY ******************************************* # # The returned result is within 1 ulp in 64 significant bit, i.e. # -# within 0.5001 ulp to 53 bits if the result is subsequently # +# within 0.5001 ulp to 53 bits if the result is subsequently # # rounded to double precision. The result is provably monotonic # # in double precision. # # # @@ -5034,8 +5034,8 @@ # # # 4. If k is even, go to 6. # # # -# 5. (k is odd) Set j := (k-1)/2, sgn := (-1)**j. # -# Return sgn*cos(r) where cos(r) is approximated by an # +# 5. (k is odd) Set j := (k-1)/2, sgn := (-1)**j. # +# Return sgn*cos(r) where cos(r) is approximated by an # # even polynomial in r, 1 + r*r*(B1+s*(B2+ ... + s*B8)), # # s = r*r. # # Exit. # @@ -5047,10 +5047,10 @@ # # # 7. If |X| > 1, go to 9. # # # -# 8. (|X|<2**(-40)) If SIN is invoked, return X; # +# 8. (|X|<2**(-40)) If SIN is invoked, return X; # # otherwise return 1. # # # -# 9. Overwrite X by X := X rem 2Pi. Now that |X| <= Pi, # +# 9. Overwrite X by X := X rem 2Pi. Now that |X| <= Pi, # # go back to 3. # # # # SINCOS: # @@ -5065,19 +5065,19 @@ # j1 exclusive or with the l.s.b. of k. # # sgn1 := (-1)**j1, sgn2 := (-1)**j2. # # SIN(X) = sgn1 * cos(r) and COS(X) = sgn2*sin(r) where # -# sin(r) and cos(r) are computed as odd and even # +# sin(r) and cos(r) are computed as odd and even # # polynomials in r, respectively. Exit # # # # 5. (k is even) Set j1 := k/2, sgn1 := (-1)**j1. # # SIN(X) = sgn1 * sin(r) and COS(X) = sgn1*cos(r) where # -# sin(r) and cos(r) are computed as odd and even # +# sin(r) and cos(r) are computed as odd and even # # polynomials in r, respectively. Exit # # # # 6. If |X| > 1, go to 8. # # # # 7. (|X|<2**(-40)) SIN(X) = X and COS(X) = 1. Exit. # # # -# 8. Overwrite X by X := X rem 2Pi. Now that |X| <= Pi, # +# 8. Overwrite X by X := X rem 2Pi. Now that |X| <= Pi, # # go back to 2. # # # ######################################################################### @@ -5152,9 +5152,9 @@ #--THE ARGUMENT REDUCTION IS DONE BY TABLE LOOK UP. SINMAIN: fmov.x %fp0,%fp1 - fmul.d TWOBYPI(%pc),%fp1 # X*2/PI + fmul.d TWOBYPI(%pc),%fp1 # X*2/PI - lea PITBL+0x200(%pc),%a1 # TABLE OF N*PI/2, N = -32,...,32 + lea PITBL+0x200(%pc),%a1 # TABLE OF N*PI/2, N = -32,...,32 fmov.l %fp1,INT(%a6) # CONVERT TO INTEGER @@ -5164,8 +5164,8 @@ # A1 IS THE ADDRESS OF N*PIBY2 # ...WHICH IS IN TWO PIECES Y1 & Y2 - fsub.x (%a1)+,%fp0 # X-Y1 - fsub.s (%a1),%fp0 # fp0 = R = (X-Y1)-Y2 + fsub.x (%a1)+,%fp0 # X-Y1 + fsub.s (%a1),%fp0 # fp0 = R = (X-Y1)-Y2 SINCONT: #--continuation from REDUCEX @@ -5319,7 +5319,7 @@ COSTINY: fmov.s &0x3F800000,%fp0 # fp0 = 1.0 fmov.l %d0,%fpcr # restore users round mode,prec - fadd.s &0x80800000,%fp0 # last inst - possible exception set + fadd.s &0x80800000,%fp0 # last inst - possible exception set bra t_pinx2 ################################################ @@ -5751,7 +5751,7 @@ # # # 7. (|X|<2**(-40)) Tan(X) = X. Exit. # # # -# 8. Overwrite X by X := X rem 2Pi. Now that |X| <= Pi, go back # +# 8. Overwrite X by X := X rem 2Pi. Now that |X| <= Pi, go back # # to 2. # # # ######################################################################### @@ -6154,27 +6154,27 @@ # The returned result is within 2 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # # rounded to double precision. The result is provably monotonic # -# in double precision. # +# in double precision. # # # # ALGORITHM *********************************************************** # # Step 1. If |X| >= 16 or |X| < 1/16, go to Step 5. # # # -# Step 2. Let X = sgn * 2**k * 1.xxxxxxxx...x. # +# Step 2. Let X = sgn * 2**k * 1.xxxxxxxx...x. # # Note that k = -4, -3,..., or 3. # -# Define F = sgn * 2**k * 1.xxxx1, i.e. the first 5 # +# Define F = sgn * 2**k * 1.xxxx1, i.e. the first 5 # # significant bits of X with a bit-1 attached at the 6-th # # bit position. Define u to be u = (X-F) / (1 + X*F). # # # # Step 3. Approximate arctan(u) by a polynomial poly. # # # -# Step 4. Return arctan(F) + poly, arctan(F) is fetched from a # +# Step 4. Return arctan(F) + poly, arctan(F) is fetched from a # # table of values calculated beforehand. Exit. # # # # Step 5. If |X| >= 16, go to Step 7. # # # # Step 6. Approximate arctan(X) by an odd polynomial in X. Exit. # # # -# Step 7. Define X' = -1/X. Approximate arctan(X') by an odd # +# Step 7. Define X' = -1/X. Approximate arctan(X') by an odd # # polynomial in X'. # # Arctan(X) = sign(X)*Pi/2 + arctan(X'). Exit. # # # @@ -6440,7 +6440,7 @@ fmul.x %fp2,%fp1 # A1*U*V*(A2+V*(A3+V)) fadd.x %fp1,%fp0 # ATAN(U), FP1 RELEASED - fmovm.x (%sp)+,&0x20 # restore fp2 + fmovm.x (%sp)+,&0x20 # restore fp2 fmov.l %d0,%fpcr # restore users rnd mode,prec fadd.x ATANF(%a6),%fp0 # ATAN(X) @@ -6597,7 +6597,7 @@ # a0 = pointer to extended precision input # # d0 = round precision,mode # # # -# OUTPUT ************************************************************** # +# OUTPUT ************************************************************** # # fp0 = arcsin(X) # # # # ACCURACY and MONOTONICITY ******************************************* # @@ -6637,7 +6637,7 @@ # This catch is added here for the '060 QSP. Originally, the call to # satan() would handle this case by causing the exception which would -# not be caught until gen_except(). Now, with the exceptions being +# not be caught until gen_except(). Now, with the exceptions being # detected inside of satan(), the exception would have been handled there # instead of inside sasin() as expected. cmp.l %d1,&0x3FD78000 @@ -6786,7 +6786,7 @@ ######################################################################### # setox(): computes the exponential for a normalized input # -# setoxd(): computes the exponential for a denormalized input # +# setoxd(): computes the exponential for a denormalized input # # setoxm1(): computes the exponential minus 1 for a normalized input # # setoxm1d(): computes the exponential minus 1 for a denormalized input # # # @@ -6798,9 +6798,9 @@ # fp0 = exp(X) or exp(X)-1 # # # # ACCURACY and MONOTONICITY ******************************************* # -# The returned result is within 0.85 ulps in 64 significant bit, # +# The returned result is within 0.85 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # -# rounded to double precision. The result is provably monotonic # +# rounded to double precision. The result is provably monotonic # # in double precision. # # # # ALGORITHM and IMPLEMENTATION **************************************** # @@ -6824,14 +6824,14 @@ # Notes: The usual case should take the branches 1.1 -> 1.3 -> 2.# # To avoid the use of floating-point comparisons, a # # compact representation of |X| is used. This format is a # -# 32-bit integer, the upper (more significant) 16 bits # -# are the sign and biased exponent field of |X|; the # +# 32-bit integer, the upper (more significant) 16 bits # +# are the sign and biased exponent field of |X|; the # # lower 16 bits are the 16 most significant fraction # # (including the explicit bit) bits of |X|. Consequently, # # the comparisons in Steps 1.1 and 1.3 can be performed # # by integer comparison. Note also that the constant # # 16380 log(2) used in Step 1.3 is also in the compact # -# form. Thus taking the branch to Step 2 guarantees # +# form. Thus taking the branch to Step 2 guarantees # # |X| < 16380 log(2). There is no harm to have a small # # number of cases where |X| is less than, but close to, # # 16380 log(2) and the branch to Step 9 is taken. # @@ -6843,7 +6843,7 @@ # 2.3 Calculate J = N mod 64; so J = 0,1,2,..., # # or 63. # # 2.4 Calculate M = (N - J)/64; so N = 64M + J. # -# 2.5 Calculate the address of the stored value of # +# 2.5 Calculate the address of the stored value of # # 2^(J/64). # # 2.6 Create the value Scale = 2^M. # # Notes: The calculation in 2.2 is really performed by # @@ -6852,26 +6852,26 @@ # where # # constant := single-precision( 64/log 2 ). # # # -# Using a single-precision constant avoids memory # +# Using a single-precision constant avoids memory # # access. Another effect of using a single-precision # -# "constant" is that the calculated value Z is # +# "constant" is that the calculated value Z is # # # # Z = X*(64/log2)*(1+eps), |eps| <= 2^(-24). # # # # This error has to be considered later in Steps 3 and 4. # # # # Step 3. Calculate X - N*log2/64. # -# 3.1 R := X + N*L1, # +# 3.1 R := X + N*L1, # # where L1 := single-precision(-log2/64). # -# 3.2 R := R + N*L2, # +# 3.2 R := R + N*L2, # # L2 := extended-precision(-log2/64 - L1).# -# Notes: a) The way L1 and L2 are chosen ensures L1+L2 # +# Notes: a) The way L1 and L2 are chosen ensures L1+L2 # # approximate the value -log2/64 to 88 bits of accuracy. # # b) N*L1 is exact because N is no longer than 22 bits # # and L1 is no longer than 24 bits. # -# c) The calculation X+N*L1 is also exact due to # +# c) The calculation X+N*L1 is also exact due to # # cancellation. Thus, R is practically X+N(L1+L2) to full # -# 64 bits. # +# 64 bits. # # d) It is important to estimate how large can |R| be # # after Step 3.2. # # # @@ -6889,11 +6889,11 @@ # # # Step 4. Approximate exp(R)-1 by a polynomial # # p = R + R*R*(A1 + R*(A2 + R*(A3 + R*(A4 + R*A5)))) # -# Notes: a) In order to reduce memory access, the coefficients # +# Notes: a) In order to reduce memory access, the coefficients # # are made as "short" as possible: A1 (which is 1/2), A4 # # and A5 are single precision; A2 and A3 are double # -# precision. # -# b) Even with the restrictions above, # +# precision. # +# b) Even with the restrictions above, # # |p - (exp(R)-1)| < 2^(-68.8) for all |R| <= 0.0062. # # Note that 0.0062 is slightly bigger than 0.57 log2/64. # # c) To fully utilize the pipeline, p is separated into # @@ -6907,11 +6907,11 @@ # where T and t are the stored values for 2^(J/64). # # Notes: 2^(J/64) is stored as T and t where T+t approximates # # 2^(J/64) to roughly 85 bits; T is in extended precision # -# and t is in single precision. Note also that T is # -# rounded to 62 bits so that the last two bits of T are # -# zero. The reason for such a special form is that T-1, # +# and t is in single precision. Note also that T is # +# rounded to 62 bits so that the last two bits of T are # +# zero. The reason for such a special form is that T-1, # # T-2, and T-8 will all be exact --- a property that will # -# give much more accurate computation of the function # +# give much more accurate computation of the function # # EXPM1. # # # # Step 6. Reconstruction of exp(X) # @@ -6927,11 +6927,11 @@ # X = (M1+M)log2 + Jlog2/64 + R, |M1+M| >= 16380. # # Hence, exp(X) may overflow or underflow or neither. # # When that is the case, AdjScale = 2^(M1) where M1 is # -# approximately M. Thus 6.2 will never cause # +# approximately M. Thus 6.2 will never cause # # over/underflow. Possible exception in 6.4 is overflow # # or underflow. The inexact exception is not generated in # # 6.4. Although one can argue that the inexact flag # -# should always be raised, to simulate that exception # +# should always be raised, to simulate that exception # # cost to much than the flag is worth in practical uses. # # # # Step 7. Return 1 + X. # @@ -6944,7 +6944,7 @@ # in Step 7.1 to avoid unnecessary trapping. (Although # # the FMOVEM may not seem relevant since X is normalized, # # the precaution will be useful in the library version of # -# this code where the separate entry for denormalized # +# this code where the separate entry for denormalized # # inputs will be done away with.) # # # # Step 8. Handle exp(X) where |X| >= 16380log2. # @@ -6952,9 +6952,9 @@ # (mimic 2.2 - 2.6) # # 8.2 N := round-to-integer( X * 64/log2 ) # # 8.3 Calculate J = N mod 64, J = 0,1,...,63 # -# 8.4 K := (N-J)/64, M1 := truncate(K/2), M = K-M1, # +# 8.4 K := (N-J)/64, M1 := truncate(K/2), M = K-M1, # # AdjFlag := 1. # -# 8.5 Calculate the address of the stored value # +# 8.5 Calculate the address of the stored value # # 2^(J/64). # # 8.6 Create the values Scale = 2^M, AdjScale = 2^M1. # # 8.7 Go to Step 3. # @@ -6991,8 +6991,8 @@ # 1.4 Go to Step 10. # # Notes: The usual case should take the branches 1.1 -> 1.3 -> 2.# # However, it is conceivable |X| can be small very often # -# because EXPM1 is intended to evaluate exp(X)-1 # -# accurately when |X| is small. For further details on # +# because EXPM1 is intended to evaluate exp(X)-1 # +# accurately when |X| is small. For further details on # # the comparisons, see the notes on Step 1 of setox. # # # # Step 2. Calculate N = round-to-nearest-int( X * 64/log2 ). # @@ -7000,16 +7000,16 @@ # 2.2 Calculate J = N mod 64; so J = 0,1,2,..., # # or 63. # # 2.3 Calculate M = (N - J)/64; so N = 64M + J. # -# 2.4 Calculate the address of the stored value of # +# 2.4 Calculate the address of the stored value of # # 2^(J/64). # -# 2.5 Create the values Sc = 2^M and # +# 2.5 Create the values Sc = 2^M and # # OnebySc := -2^(-M). # # Notes: See the notes on Step 2 of setox. # # # # Step 3. Calculate X - N*log2/64. # -# 3.1 R := X + N*L1, # +# 3.1 R := X + N*L1, # # where L1 := single-precision(-log2/64). # -# 3.2 R := R + N*L2, # +# 3.2 R := R + N*L2, # # L2 := extended-precision(-log2/64 - L1).# # Notes: Applying the analysis of Step 3 of setox in this case # # shows that |R| <= 0.0055 (note that |X| <= 70 log2 in # @@ -7017,10 +7017,10 @@ # # # Step 4. Approximate exp(R)-1 by a polynomial # # p = R+R*R*(A1+R*(A2+R*(A3+R*(A4+R*(A5+R*A6))))) # -# Notes: a) In order to reduce memory access, the coefficients # -# are made as "short" as possible: A1 (which is 1/2), A5 # -# and A6 are single precision; A2, A3 and A4 are double # -# precision. # +# Notes: a) In order to reduce memory access, the coefficients # +# are made as "short" as possible: A1 (which is 1/2), A5 # +# and A6 are single precision; A2, A3 and A4 are double # +# precision. # # b) Even with the restriction above, # # |p - (exp(R)-1)| < |R| * 2^(-72.7) # # for all |R| <= 0.0055. # @@ -7035,9 +7035,9 @@ # where T and t are the stored values for 2^(J/64). # # Notes: 2^(J/64) is stored as T and t where T+t approximates # # 2^(J/64) to roughly 85 bits; T is in extended precision # -# and t is in single precision. Note also that T is # -# rounded to 62 bits so that the last two bits of T are # -# zero. The reason for such a special form is that T-1, # +# and t is in single precision. Note also that T is # +# rounded to 62 bits so that the last two bits of T are # +# zero. The reason for such a special form is that T-1, # # T-2, and T-8 will all be exact --- a property that will # # be exploited in Step 6 below. The total relative error # # in p is no bigger than 2^(-67.7) compared to the final # @@ -7052,7 +7052,7 @@ # 6.5 ans := (T + OnebySc) + (p + t). # # 6.6 Restore user FPCR. # # 6.7 Return ans := Sc * ans. Exit. # -# Notes: The various arrangements of the expressions give # +# Notes: The various arrangements of the expressions give # # accurate evaluations. # # # # Step 7. exp(X)-1 for |X| < 1/4. # @@ -7068,8 +7068,8 @@ # Return ans := ans*2^(140). Exit # # Notes: The idea is to return "X - tiny" under the user # # precision and rounding modes. To avoid unnecessary # -# inefficiency, we stay away from denormalized numbers # -# the best we can. For |X| >= 2^(-16312), the # +# inefficiency, we stay away from denormalized numbers # +# the best we can. For |X| >= 2^(-16312), the # # straightforward 8.2 generates the inexact exception as # # the case warrants. # # # @@ -7077,13 +7077,13 @@ # p = X + X*X*(B1 + X*(B2 + ... + X*B12)) # # Notes: a) In order to reduce memory access, the coefficients # # are made as "short" as possible: B1 (which is 1/2), B9 # -# to B12 are single precision; B3 to B8 are double # +# to B12 are single precision; B3 to B8 are double # # precision; and B2 is double extended. # # b) Even with the restriction above, # # |p - (exp(X)-1)| < |X| 2^(-70.6) # # for all |X| <= 0.251. # # Note that 0.251 is slightly bigger than 1/4. # -# c) To fully preserve accuracy, the polynomial is # +# c) To fully preserve accuracy, the polynomial is # # computed as # # X + ( S*B1 + Q ) where S = X*X and # # Q = X*S*(B2 + X*(B3 + ... + X*B12)) # @@ -7093,11 +7093,11 @@ # [ S*S*(B3 + S*(B5 + ... + S*B11)) ] # # # # Step 10. Calculate exp(X)-1 for |X| >= 70 log 2. # -# 10.1 If X >= 70log2 , exp(X) - 1 = exp(X) for all # +# 10.1 If X >= 70log2 , exp(X) - 1 = exp(X) for all # # practical purposes. Therefore, go to Step 1 of setox. # # 10.2 If X <= -70log2, exp(X) - 1 = -1 for all practical # -# purposes. # -# ans := -1 # +# purposes. # +# ans := -1 # # Restore user FPCR # # Return ans := ans + 2^(-126). Exit. # # Notes: 10.2 will always create an inexact and return -1 + tiny # @@ -7602,10 +7602,10 @@ # sgetexp(): returns the exponent portion of the input argument. # # The exponent bias is removed and the exponent value is # # returned as an extended precision number in fp0. # -# sgetexpd(): handles denormalized numbers. # +# sgetexpd(): handles denormalized numbers. # # # -# sgetman(): extracts the mantissa of the input argument. The # -# mantissa is converted to an extended precision number w/ # +# sgetman(): extracts the mantissa of the input argument. The # +# mantissa is converted to an extended precision number w/ # # an exponent of $3fff and is returned in fp0. The range of # # the result is [1.0 - 2.0). # # sgetmand(): handles denormalized numbers. # @@ -7679,9 +7679,9 @@ # fp0 = cosh(X) # # # # ACCURACY and MONOTONICITY ******************************************* # -# The returned result is within 3 ulps in 64 significant bit, # +# The returned result is within 3 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # -# rounded to double precision. The result is provably monotonic # +# rounded to double precision. The result is provably monotonic # # in double precision. # # # # ALGORITHM *********************************************************** # @@ -7698,7 +7698,7 @@ # # # 4. (16380 log2 < |X| <= 16480 log2) # # cosh(X) = sign(X) * exp(|X|)/2. # -# However, invoking exp(|X|) may cause premature # +# However, invoking exp(|X|) may cause premature # # overflow. Thus, we calculate sinh(X) as follows: # # Y := |X| # # Fact := 2**(16380) # @@ -7793,7 +7793,7 @@ # fp0 = sinh(X) # # # # ACCURACY and MONOTONICITY ******************************************* # -# The returned result is within 3 ulps in 64 significant bit, # +# The returned result is within 3 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # # rounded to double precision. The result is provably monotonic # # in double precision. # @@ -7911,7 +7911,7 @@ # fp0 = tanh(X) # # # # ACCURACY and MONOTONICITY ******************************************* # -# The returned result is within 3 ulps in 64 significant bit, # +# The returned result is within 3 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # # rounded to double precision. The result is provably monotonic # # in double precision. # @@ -8077,51 +8077,51 @@ # fp0 = log(X) or log(1+X) # # # # ACCURACY and MONOTONICITY ******************************************* # -# The returned result is within 2 ulps in 64 significant bit, # +# The returned result is within 2 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # # rounded to double precision. The result is provably monotonic # # in double precision. # # # # ALGORITHM *********************************************************** # # LOGN: # -# Step 1. If |X-1| < 1/16, approximate log(X) by an odd # -# polynomial in u, where u = 2(X-1)/(X+1). Otherwise, # +# Step 1. If |X-1| < 1/16, approximate log(X) by an odd # +# polynomial in u, where u = 2(X-1)/(X+1). Otherwise, # # move on to Step 2. # # # # Step 2. X = 2**k * Y where 1 <= Y < 2. Define F to be the first # -# seven significant bits of Y plus 2**(-7), i.e. # -# F = 1.xxxxxx1 in base 2 where the six "x" match those # +# seven significant bits of Y plus 2**(-7), i.e. # +# F = 1.xxxxxx1 in base 2 where the six "x" match those # # of Y. Note that |Y-F| <= 2**(-7). # # # -# Step 3. Define u = (Y-F)/F. Approximate log(1+u) by a # +# Step 3. Define u = (Y-F)/F. Approximate log(1+u) by a # # polynomial in u, log(1+u) = poly. # # # -# Step 4. Reconstruct # +# Step 4. Reconstruct # # log(X) = log( 2**k * Y ) = k*log(2) + log(F) + log(1+u) # # by k*log(2) + (log(F) + poly). The values of log(F) are # # calculated beforehand and stored in the program. # # # # lognp1: # -# Step 1: If |X| < 1/16, approximate log(1+X) by an odd # +# Step 1: If |X| < 1/16, approximate log(1+X) by an odd # # polynomial in u where u = 2X/(2+X). Otherwise, move on # # to Step 2. # # # # Step 2: Let 1+X = 2**k * Y, where 1 <= Y < 2. Define F as done # -# in Step 2 of the algorithm for LOGN and compute # -# log(1+X) as k*log(2) + log(F) + poly where poly # -# approximates log(1+u), u = (Y-F)/F. # +# in Step 2 of the algorithm for LOGN and compute # +# log(1+X) as k*log(2) + log(F) + poly where poly # +# approximates log(1+u), u = (Y-F)/F. # # # # Implementation Notes: # -# Note 1. There are 64 different possible values for F, thus 64 # +# Note 1. There are 64 different possible values for F, thus 64 # # log(F)'s need to be tabulated. Moreover, the values of # # 1/F are also tabulated so that the division in (Y-F)/F # # can be performed by a multiplication. # # # -# Note 2. In Step 2 of lognp1, in order to preserved accuracy, # -# the value Y-F has to be calculated carefully when # -# 1/2 <= X < 3/2. # +# Note 2. In Step 2 of lognp1, in order to preserved accuracy, # +# the value Y-F has to be calculated carefully when # +# 1/2 <= X < 3/2. # # # -# Note 3. To fully exploit the pipeline, polynomials are usually # +# Note 3. To fully exploit the pipeline, polynomials are usually # # separated into two parts evaluated independently before # # being added up. # # # @@ -8334,9 +8334,9 @@ cmp.l %d1,&0 # CHECK IF X IS NEGATIVE blt.w LOGNEG # LOG OF NEGATIVE ARGUMENT IS INVALID # X IS POSITIVE, CHECK IF X IS NEAR 1 - cmp.l %d1,&0x3ffef07d # IS X < 15/16? + cmp.l %d1,&0x3ffef07d # IS X < 15/16? blt.b LOGMAIN # YES - cmp.l %d1,&0x3fff8841 # IS X > 17/16? + cmp.l %d1,&0x3fff8841 # IS X > 17/16? ble.w LOGNEAR1 # NO LOGMAIN: @@ -8349,7 +8349,7 @@ #--NOTE THAT U = (Y-F)/F IS VERY SMALL AND THUS APPROXIMATING #--LOG(1+U) CAN BE VERY EFFICIENT. #--ALSO NOTE THAT THE VALUE 1/F IS STORED IN A TABLE SO THAT NO -#--DIVISION IS NEEDED TO CALCULATE (Y-F)/F. +#--DIVISION IS NEEDED TO CALCULATE (Y-F)/F. #--GET K, Y, F, AND ADDRESS OF 1/F. asr.l &8,%d1 @@ -8564,10 +8564,10 @@ mov.l X(%a6),%d1 cmp.l %d1,&0 ble.w LP1NEG0 # LOG OF ZERO OR -VE - cmp.l %d1,&0x3ffe8000 # IS BOUNDS [1/2,3/2]? + cmp.l %d1,&0x3ffe8000 # IS BOUNDS [1/2,3/2]? blt.w LOGMAIN cmp.l %d1,&0x3fffc000 - bgt.w LOGMAIN + bgt.w LOGMAIN #--IF 1+Z > 3/2 OR 1+Z < 1/2, THEN X, WHICH IS ROUNDING 1+Z, #--CONTAINS AT LEAST 63 BITS OF INFORMATION OF Z. IN THAT CASE, #--SIMPLY INVOKE LOG(X) FOR LOG(1+Z). @@ -8668,7 +8668,7 @@ # a0 = pointer to extended precision input # # d0 = round precision,mode # # # -# OUTPUT ************************************************************** # +# OUTPUT ************************************************************** # # fp0 = arctanh(X) # # # # ACCURACY and MONOTONICITY ******************************************* # @@ -8783,7 +8783,7 @@ # 2.1 Restore the user FPCR # # 2.2 Return ans := Y * INV_L10. # # # -# slog10: # +# slog10: # # # # Step 0. If X < 0, create a NaN and raise the invalid operation # # flag. Otherwise, save FPCR in D1; set FpCR to default. # @@ -8926,7 +8926,7 @@ # fp0 = 2**X or 10**X # # # # ACCURACY and MONOTONICITY ******************************************* # -# The returned result is within 2 ulps in 64 significant bit, # +# The returned result is within 2 ulps in 64 significant bit, # # i.e. within 0.5001 ulp to 53 bits if the result is subsequently # # rounded to double precision. The result is provably monotonic # # in double precision. # @@ -8957,7 +8957,7 @@ # # # 4. Define r as # # r := ((X - N*L1)-N*L2) * L10 # -# where L1, L2 are the leading and trailing parts of # +# where L1, L2 are the leading and trailing parts of # # log_10(2)/64 and L10 is the natural log of 10. Then # # 10**X = 2**(M') * 2**(M) * 2**(j/64) * exp(r). # # Go to expr to compute that expression. # @@ -8978,7 +8978,7 @@ # Exit. # # # # ExpBig # -# 1. Generate overflow by Huge * Huge if X > 0; otherwise, # +# 1. Generate overflow by Huge * Huge if X > 0; otherwise, # # generate underflow by Tiny * Tiny. # # # # ExpSm # @@ -9309,10 +9309,10 @@ ######################################################################### # smovcr(): returns the ROM constant at the offset specified in d1 # -# rounded to the mode and precision specified in d0. # +# rounded to the mode and precision specified in d0. # # # # INPUT *************************************************************** # -# d0 = rnd prec,mode # +# d0 = rnd prec,mode # # d1 = ROM offset # # # # OUTPUT ************************************************************** # @@ -9325,7 +9325,7 @@ mov.l %d1,-(%sp) # save rom offset for a sec lsr.b &0x4,%d0 # shift ctrl bits to lo - mov.l %d0,%d1 # make a copy + mov.l %d0,%d1 # make a copy andi.w &0x3,%d1 # extract rnd mode andi.w &0xc,%d0 # extract rnd prec swap %d0 # put rnd prec in hi @@ -9343,7 +9343,7 @@ cmpi.b %d1,&0x0e # check range $0b - $0e ble.b sm_tbl # valid constants in this range cmpi.b %d1,&0x2f # check range $10 - $2f - ble.b z_val # if in this range, return zero + ble.b z_val # if in this range, return zero cmpi.b %d1,&0x3f # check range $30 - $3f ble.b bg_tbl # valid constants in this range @@ -9378,7 +9378,7 @@ # $0C e (inexact) # $0D log2(e) (inexact) # $0E log10(e) (exact) -# +# # fetch a pointer to the answer table relating to the proper rounding # precision. # @@ -9465,7 +9465,7 @@ swap %d0 # rnd prec in upper word # call round() to round the answer to the proper precision. -# exponents out of range for single or double DO NOT cause underflow +# exponents out of range for single or double DO NOT cause underflow # or overflow. mov.w 0x0(%a0,%d1.w),FP_SCR1_EX(%a6) # load first word mov.l 0x4(%a0,%d1.w),FP_SCR1_HI(%a6) # load second word @@ -9562,7 +9562,7 @@ ######################################################################### # sscale(): computes the destination operand scaled by the source # -# operand. If the absoulute value of the source operand is # +# operand. If the absoulute value of the source operand is # # >= 2^14, an overflow or underflow is returned. # # # # INPUT *************************************************************** # @@ -9624,7 +9624,7 @@ bge.b sok_norm2 # thank goodness no # the multiply factor that we're trying to create should be a denorm -# for the multiply to work. therefore, we're going to actually do a +# for the multiply to work. therefore, we're going to actually do a # multiply with a denorm which will cause an unimplemented data type # exception to be put into the machine which will be caught and corrected # later. we don't do this with the DENORMs above because this method @@ -9639,7 +9639,7 @@ clr.l -(%sp) # insert zero low mantissa mov.l %d1,-(%sp) # insert new high mantissa clr.l -(%sp) # make zero exponent - bra.b sok_norm_cont + bra.b sok_norm_cont sok_dnrm_32: subi.b &0x20,%d0 # get shift count lsr.l %d0,%d1 # make low mantissa longword @@ -9647,7 +9647,7 @@ clr.l -(%sp) # insert zero high mantissa clr.l -(%sp) # make zero exponent bra.b sok_norm_cont - + # the src will force the dst to a DENORM value or worse. so, let's # create an fp multiply that will create the result. sok_norm: @@ -9705,7 +9705,7 @@ # a1 = pointer to extended precision input Y # # d0 = round precision,mode # # # -# The input operands X and Y can be either normalized or # +# The input operands X and Y can be either normalized or # # denormalized. # # # # OUTPUT ************************************************************** # @@ -9714,7 +9714,7 @@ # ALGORITHM *********************************************************** # # # # Step 1. Save and strip signs of X and Y: signX := sign(X), # -# signY := sign(Y), X := |X|, Y := |Y|, # +# signY := sign(Y), X := |X|, Y := |Y|, # # signQ := signX EOR signY. Record whether MOD or REM # # is requested. # # # @@ -9734,7 +9734,7 @@ # # # Step 4. At this point, R = X - QY = MOD(X,Y). Set # # Last_Subtract := false (used in Step 7 below). If # -# MOD is requested, go to Step 6. # +# MOD is requested, go to Step 6. # # # # Step 5. R = MOD(X,Y), but REM(X,Y) is requested. # # 5.1 If R < Y/2, then R = MOD(X,Y) = REM(X,Y). Go to # @@ -10060,8 +10060,8 @@ mov.b &FMUL_OP,%d1 # last inst is MUL fmul.x Scale(%pc),%fp0 # may cause underflow bra t_catch2 -# the '040 package did this apparently to see if the dst operand for the -# preceding fmul was a denorm. but, it better not have been since the +# the '040 package did this apparently to see if the dst operand for the +# preceding fmul was a denorm. but, it better not have been since the # algorithm just got done playing with fp0 and expected no exceptions # as a result. trust me... # bra t_avoid_unsupp # check for denorm as a @@ -10075,7 +10075,7 @@ Rem_is_0: #..R = 2^(-j)X - Q Y = Y, thus R = 0 and quotient = 2^j (Q+1) addq.l &1,%d3 - cmp.l %d0,&8 # D0 is j + cmp.l %d0,&8 # D0 is j bge.b Q_Big lsl.l %d0,%d3 @@ -10117,20 +10117,20 @@ # # # INPUT *************************************************************** # # a0 = pointer to source operand # -# # +# # # OUTPUT ************************************************************** # # fp0 = default result # # # # ALGORITHM *********************************************************** # # - Store properly signed INF into fp0. # -# - Set FPSR exception status dz bit, ccode inf bit, and # +# - Set FPSR exception status dz bit, ccode inf bit, and # # accrued dz bit. # # # ######################################################################### global t_dz t_dz: - tst.b SRC_EX(%a0) # no; is src negative? + tst.b SRC_EX(%a0) # no; is src negative? bmi.b t_dz2 # yes dz_pinf: @@ -10146,7 +10146,7 @@ ################################################################# # OPERR exception: # -# - set FPSR exception status operr bit, condition code # +# - set FPSR exception status operr bit, condition code # # nan bit; Store default NAN into fp0 # ################################################################# global t_operr @@ -10157,7 +10157,7 @@ ################################################################# # Extended DENORM: # -# - For all functions that have a denormalized input and # +# - For all functions that have a denormalized input and # # that f(x)=x, this is the entry point. # # - we only return the EXOP here if either underflow or # # inexact is enabled. # @@ -10224,13 +10224,13 @@ ################################################################# # UNFL exception: # -# - This routine is for cases where even an EXOP isn't # -# large enough to hold the range of this result. # +# - This routine is for cases where even an EXOP isn't # +# large enough to hold the range of this result. # # In such a case, the EXOP equals zero. # -# - Return the default result to the proper precision # +# - Return the default result to the proper precision # # with the sign of this result being the same as that # # of the src operand. # -# - t_unfl2() is provided to force the result sign to # +# - t_unfl2() is provided to force the result sign to # # positive which is the desired result for fetox(). # ################################################################# global t_unfl @@ -10259,15 +10259,15 @@ ################################################################# # OVFL exception: # -# - This routine is for cases where even an EXOP isn't # -# large enough to hold the range of this result. # -# - Return the default result to the proper precision # -# with the sign of this result being the same as that # +# - This routine is for cases where even an EXOP isn't # +# large enough to hold the range of this result. # +# - Return the default result to the proper precision # +# with the sign of this result being the same as that # # of the src operand. # -# - t_ovfl2() is provided to force the result sign to # +# - t_ovfl2() is provided to force the result sign to # # positive which is the desired result for fcosh(). # -# - t_ovfl_sc() is provided for scale() which only sets # -# the inexact bits if the number is inexact for the # +# - t_ovfl_sc() is provided for scale() which only sets # +# the inexact bits if the number is inexact for the # # precision indicated. # ################################################################# @@ -10338,10 +10338,10 @@ rts ################################################################# -# t_catch(): # +# t_catch(): # # - the last operation of a transcendental emulation # -# routine may have caused an underflow or overflow. # -# we find out if this occurred by doing an fsave and # +# routine may have caused an underflow or overflow. # +# we find out if this occurred by doing an fsave and # # checking the exception bit. if one did occur, then we # # jump to fgen_except() which creates the default # # result and EXOP for us. # @@ -10407,8 +10407,8 @@ # unf_res(): underflow default result calculation for transcendentals # # # # INPUT: # -# d0 : rnd mode,precision # -# d1.b : sign bit of result ('11111111 = (-) ; '00000000 = (+)) # +# d0 : rnd mode,precision # +# d1.b : sign bit of result ('11111111 = (-) ; '00000000 = (+)) # # OUTPUT: # # a0 : points to result (in instruction memory) # ######################################################################### @@ -10457,7 +10457,7 @@ long 0x0,0x0,0x0,0x0 long 0x0,0x0,0x0,0x0 long 0x0,0x0,0x0,0x0 - + long 0x80000000, 0x00000000, 0x00000000, 0x0 # ZERO;ext long 0x80000000, 0x00000000, 0x00000000, 0x0 # ZERO;ext long 0x80000000, 0x00000000, 0x00000001, 0x0 # MIN; ext @@ -10504,7 +10504,7 @@ ######################################################################### global dst_zero dst_zero: - tst.b DST_EX(%a1) # get sign of dst operand + tst.b DST_EX(%a1) # get sign of dst operand bmi.b ld_mzero # if neg, load neg zero bra.b ld_pzero # load positive zero @@ -10513,7 +10513,7 @@ ######################################################################### global src_inf src_inf: - tst.b SRC_EX(%a0) # get sign of src operand + tst.b SRC_EX(%a0) # get sign of src operand bmi.b ld_minf # if negative branch # @@ -10539,7 +10539,7 @@ ######################################################################### global dst_inf dst_inf: - tst.b DST_EX(%a1) # get sign of dst operand + tst.b DST_EX(%a1) # get sign of dst operand bmi.b ld_minf # if negative branch bra.b ld_pinf @@ -10581,7 +10581,7 @@ ######################################################################### global src_one src_one: - tst.b SRC_EX(%a0) # check sign of source + tst.b SRC_EX(%a0) # check sign of source bmi.b ld_mone # @@ -10610,7 +10610,7 @@ ################################################################# global spi_2 spi_2: - tst.b SRC_EX(%a0) # check sign of source + tst.b SRC_EX(%a0) # check sign of source bmi.b ld_mpi2 # @@ -10637,7 +10637,7 @@ # # ssincosz(): When the src operand is ZERO, store a one in the -# cosine register and return a ZERO in fp0 w/ the same sign +# cosine register and return a ZERO in fp0 w/ the same sign # as the src operand. # global ssincosz @@ -10666,7 +10666,7 @@ # # ssincosqnan(): When the src operand is a QNAN, store the QNAN in the cosine -# register and branch to the src QNAN routine. +# register and branch to the src QNAN routine. # global ssincosqnan ssincosqnan: @@ -10719,7 +10719,7 @@ fmovm.x &0x40,EXC_FP1(%a6) rts sto_cos_2: - fmov.x %fp1,%fp2 + fmov.x %fp1,%fp2 rts sto_cos_3: fmov.x %fp1,%fp3 @@ -10988,8 +10988,8 @@ # fkern2.s: # These entry points are used by the exception handler # routines where an instruction is selected by an index into -# a large jump table corresponding to a given instruction which -# has been decoded. Flow continues here where we now decode +# a large jump table corresponding to a given instruction which +# has been decoded. Flow continues here where we now decode # further accoding to the source operand type. # @@ -11331,11 +11331,11 @@ ######################################################################### # XDEF **************************************************************** # -# fgen_except(): catch an exception during transcendental # +# fgen_except(): catch an exception during transcendental # # emulation # # # # XREF **************************************************************** # -# fmul() - emulate a multiply instruction # +# fmul() - emulate a multiply instruction # # fadd() - emulate an add instruction # # fin() - emulate an fmove instruction # # # @@ -11343,16 +11343,16 @@ # fp0 = destination operand # # d0 = type of instruction that took exception # # fsave frame = source operand # -# # +# # # OUTPUT ************************************************************** # # fp0 = result # # fp1 = EXOP # # # # ALGORITHM *********************************************************** # -# An exception occurred on the last instruction of the # -# transcendental emulation. hopefully, this won't be happening much # +# An exception occurred on the last instruction of the # +# transcendental emulation. hopefully, this won't be happening much # # because it will be VERY slow. # -# The only exceptions capable of passing through here are # +# The only exceptions capable of passing through here are # # Overflow, Underflow, and Unsupported Data Type. # # # ######################################################################### @@ -11408,11 +11408,11 @@ swbeg &109 tbl_unsupp: - long fin - tbl_unsupp # 00: fmove - long fint - tbl_unsupp # 01: fint - long fsinh - tbl_unsupp # 02: fsinh - long fintrz - tbl_unsupp # 03: fintrz - long fsqrt - tbl_unsupp # 04: fsqrt + long fin - tbl_unsupp # 00: fmove + long fint - tbl_unsupp # 01: fint + long fsinh - tbl_unsupp # 02: fsinh + long fintrz - tbl_unsupp # 03: fintrz + long fsqrt - tbl_unsupp # 04: fsqrt long tbl_unsupp - tbl_unsupp long flognp1 - tbl_unsupp # 06: flognp1 long tbl_unsupp - tbl_unsupp @@ -11432,23 +11432,23 @@ long flog10 - tbl_unsupp # 15: flog10 long flog2 - tbl_unsupp # 16: flog2 long tbl_unsupp - tbl_unsupp - long fabs - tbl_unsupp # 18: fabs + long fabs - tbl_unsupp # 18: fabs long fcosh - tbl_unsupp # 19: fcosh - long fneg - tbl_unsupp # 1a: fneg + long fneg - tbl_unsupp # 1a: fneg long tbl_unsupp - tbl_unsupp long facos - tbl_unsupp # 1c: facos long fcos - tbl_unsupp # 1d: fcos long fgetexp - tbl_unsupp # 1e: fgetexp long fgetman - tbl_unsupp # 1f: fgetman - long fdiv - tbl_unsupp # 20: fdiv + long fdiv - tbl_unsupp # 20: fdiv long fmod - tbl_unsupp # 21: fmod - long fadd - tbl_unsupp # 22: fadd - long fmul - tbl_unsupp # 23: fmul - long fsgldiv - tbl_unsupp # 24: fsgldiv + long fadd - tbl_unsupp # 22: fadd + long fmul - tbl_unsupp # 23: fmul + long fsgldiv - tbl_unsupp # 24: fsgldiv long frem - tbl_unsupp # 25: frem long fscale - tbl_unsupp # 26: fscale - long fsglmul - tbl_unsupp # 27: fsglmul - long fsub - tbl_unsupp # 28: fsub + long fsglmul - tbl_unsupp # 27: fsglmul + long fsub - tbl_unsupp # 28: fsub long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp @@ -11464,20 +11464,20 @@ long fsincos - tbl_unsupp # 35: fsincos long fsincos - tbl_unsupp # 36: fsincos long fsincos - tbl_unsupp # 37: fsincos - long fcmp - tbl_unsupp # 38: fcmp + long fcmp - tbl_unsupp # 38: fcmp long tbl_unsupp - tbl_unsupp - long ftst - tbl_unsupp # 3a: ftst + long ftst - tbl_unsupp # 3a: ftst long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp - long fsin - tbl_unsupp # 40: fsmove - long fssqrt - tbl_unsupp # 41: fssqrt + long fsin - tbl_unsupp # 40: fsmove + long fssqrt - tbl_unsupp # 41: fssqrt long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long fdin - tbl_unsupp # 44: fdmove - long fdsqrt - tbl_unsupp # 45: fdsqrt + long fdsqrt - tbl_unsupp # 45: fdsqrt long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp @@ -11496,31 +11496,31 @@ long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp - long fsabs - tbl_unsupp # 58: fsabs + long fsabs - tbl_unsupp # 58: fsabs long tbl_unsupp - tbl_unsupp - long fsneg - tbl_unsupp # 5a: fsneg + long fsneg - tbl_unsupp # 5a: fsneg long tbl_unsupp - tbl_unsupp long fdabs - tbl_unsupp # 5c: fdabs long tbl_unsupp - tbl_unsupp - long fdneg - tbl_unsupp # 5e: fdneg + long fdneg - tbl_unsupp # 5e: fdneg long tbl_unsupp - tbl_unsupp long fsdiv - tbl_unsupp # 60: fsdiv long tbl_unsupp - tbl_unsupp long fsadd - tbl_unsupp # 62: fsadd long fsmul - tbl_unsupp # 63: fsmul - long fddiv - tbl_unsupp # 64: fddiv + long fddiv - tbl_unsupp # 64: fddiv long tbl_unsupp - tbl_unsupp long fdadd - tbl_unsupp # 66: fdadd - long fdmul - tbl_unsupp # 67: fdmul + long fdmul - tbl_unsupp # 67: fdmul long fssub - tbl_unsupp # 68: fssub long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp - long fdsub - tbl_unsupp # 6c: fdsub + long fdsub - tbl_unsupp # 6c: fdsub ######################################################################### # XDEF **************************************************************** # -# fmul(): emulates the fmul instruction # +# fmul(): emulates the fmul instruction # # fsmul(): emulates the fsmul instruction # # fdmul(): emulates the fdmul instruction # # # @@ -11529,8 +11529,8 @@ # scale_to_zero_dst() - scale dst exponent to zero # # unf_res() - return default underflow result # # ovf_res() - return default overflow result # -# res_qnan() - return QNAN result # -# res_snan() - return SNAN result # +# res_qnan() - return QNAN result # +# res_snan() - return SNAN result # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # @@ -11548,12 +11548,12 @@ # instruction won't cause an exception. Use the regular fmul to # # compute a result. Check if the regular operands would have taken # # an exception. If so, return the default overflow/underflow result # -# and return the EXOP if exceptions are enabled. Else, scale the # +# and return the EXOP if exceptions are enabled. Else, scale the # # result operand to the proper exponent. # # # ######################################################################### - align 0x10 + align 0x10 tbl_fmul_ovfl: long 0x3fff - 0x7ffe # ext_max long 0x3fff - 0x407e # sgl_max @@ -11614,7 +11614,7 @@ # # NORMAL: # - the result of the multiply operation will neither overflow nor underflow. -# - do the multiply to the proper precision and rounding mode. +# - do the multiply to the proper precision and rounding mode. # - scale the result exponent using the scale factor. if both operands were # normalized then we really don't need to go through this scaling. but for now, # this will do. @@ -11625,7 +11625,7 @@ fmov.l L_SCR3(%a6),%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fmul.x FP_SCR0(%a6),%fp0 # execute multiply + fmul.x FP_SCR0(%a6),%fp0 # execute multiply fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -11665,7 +11665,7 @@ fmov.l L_SCR3(%a6),%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fmul.x FP_SCR0(%a6),%fp0 # execute multiply + fmul.x FP_SCR0(%a6),%fp0 # execute multiply fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -11744,7 +11744,7 @@ fmov.l &0x0,%fpsr # clear FPSR fmul.x FP_SCR0(%a6),%fp0 # execute multiply - + fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -11753,7 +11753,7 @@ fabs.x %fp0,%fp1 # make a copy of result fcmp.b %fp1,&0x2 # is |result| >= 2.b? fbge.w fmul_ovfl_tst # yes; overflow has occurred - + # no, it didn't overflow; we have correct result bra.w fmul_normal_exit @@ -11770,7 +11770,7 @@ # of this operation then has its exponent scaled by -0x6000 to create the # exceptional operand. # -fmul_unfl: +fmul_unfl: bset &unfl_bit,FPSR_EXCEPT(%a6) # set unfl exc bit # for fun, let's use only extended precision, round to zero. then, let @@ -11803,7 +11803,7 @@ rts # -# UNFL is enabled. +# UNFL is enabled. # fmul_unfl_ena: fmovm.x FP_SCR1(%a6),&0x40 # load dst op @@ -11819,7 +11819,7 @@ fmul_unfl_ena_cont: fmov.l &0x0,%fpsr # clear FPSR - fmul.x FP_SCR0(%a6),%fp1 # execute multiply + fmul.x FP_SCR0(%a6),%fp1 # execute multiply fmov.l &0x0,%fpcr # clear FPCR @@ -11854,7 +11854,7 @@ fmov.l L_SCR3(%a6),%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fmul.x FP_SCR0(%a6),%fp0 # execute multiply + fmul.x FP_SCR0(%a6),%fp0 # execute multiply fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -11878,11 +11878,11 @@ mov.l L_SCR3(%a6),%d1 andi.b &0xc0,%d1 # keep rnd prec ori.b &rz_mode*0x10,%d1 # insert RZ - + fmov.l %d1,%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fmul.x FP_SCR0(%a6),%fp1 # execute multiply + fmul.x FP_SCR0(%a6),%fp1 # execute multiply fmov.l &0x0,%fpcr # clear FPCR fabs.x %fp1 # make absolute value @@ -12024,22 +12024,22 @@ # norm() - normalize mantissa for EXOP on denorm # # scale_to_zero_src() - scale src exponent to zero # # ovf_res() - return default overflow result # -# unf_res() - return default underflow result # +# unf_res() - return default underflow result # # res_qnan_1op() - return QNAN result # # res_snan_1op() - return SNAN result # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # # d0 = round prec/mode # -# # +# # # OUTPUT ************************************************************** # # fp0 = result # # fp1 = EXOP (if exception occurred) # # # # ALGORITHM *********************************************************** # -# Handle NANs, infinities, and zeroes as special cases. Divide # +# Handle NANs, infinities, and zeroes as special cases. Divide # # norms into extended, single, and double precision. # -# Norms can be emulated w/ a regular fmove instruction. For # +# Norms can be emulated w/ a regular fmove instruction. For # # sgl/dbl, must scale exponent and perform an "fmove". Check to see # # if the result would have overflowed/underflowed. If so, use unf_res() # # or ovf_res() to return the default result. Also return EXOP if # @@ -12065,7 +12065,7 @@ mov.b STAG(%a6),%d1 # fetch src optype tag bne.w fin_not_norm # optimize on non-norm input - + # # FP MOVE IN: NORMs and DENORMs ONLY! # @@ -12126,9 +12126,9 @@ # # operand is to be rounded to single or double precision -# +# fin_not_ext: - cmpi.b %d0,&s_mode*0x10 # separate sgl/dbl prec + cmpi.b %d0,&s_mode*0x10 # separate sgl/dbl prec bne.b fin_dbl # @@ -12212,10 +12212,10 @@ bsr.l unf_res # calculate default result or.b %d0,FPSR_CC(%a6) # unf_res may have set 'Z' fmovm.x FP_SCR0(%a6),&0x80 # return default result in fp0 - rts + rts # -# operand will underflow AND underflow or inexact is enabled. +# operand will underflow AND underflow or inexact is enabled. # therefore, we must return the result rounded to extended precision. # fin_sd_unfl_ena: @@ -12337,7 +12337,7 @@ ######################################################################### # XDEF **************************************************************** # -# fdiv(): emulates the fdiv instruction # +# fdiv(): emulates the fdiv instruction # # fsdiv(): emulates the fsdiv instruction # # fddiv(): emulates the fddiv instruction # # # @@ -12346,8 +12346,8 @@ # scale_to_zero_dst() - scale dst exponent to zero # # unf_res() - return default underflow result # # ovf_res() - return default overflow result # -# res_qnan() - return QNAN result # -# res_snan() - return SNAN result # +# res_qnan() - return QNAN result # +# res_snan() - return SNAN result # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # @@ -12365,7 +12365,7 @@ # instruction won't cause an exception. Use the regular fdiv to # # compute a result. Check if the regular operands would have taken # # an exception. If so, return the default overflow/underflow result # -# and return the EXOP if exceptions are enabled. Else, scale the # +# and return the EXOP if exceptions are enabled. Else, scale the # # result operand to the proper exponent. # # # ######################################################################### @@ -12402,7 +12402,7 @@ or.b STAG(%a6),%d1 # combine src tags bne.w fdiv_not_norm # optimize on non-norm input - + # # DIVIDE: NORMs and DENORMs ONLY! # @@ -12468,7 +12468,7 @@ fdiv_no_ovfl: mov.l (%sp)+,%d0 # restore scale factor bra.b fdiv_normal_exit - + fdiv_may_ovfl: mov.l %d0,-(%sp) # save scale factor @@ -12501,7 +12501,7 @@ bne.b fdiv_ovfl_ena # yes fdiv_ovfl_dis: - btst &neg_bit,FPSR_CC(%a6) # is result negative? + btst &neg_bit,FPSR_CC(%a6) # is result negative? sne %d1 # set sign param accordingly mov.l L_SCR3(%a6),%d0 # pass prec:rnd bsr.l ovf_res # calculate default result @@ -12573,7 +12573,7 @@ rts # -# UNFL is enabled. +# UNFL is enabled. # fdiv_unfl_ena: fmovm.x FP_SCR1(%a6),&0x40 # load dst op @@ -12637,8 +12637,8 @@ # # we still don't know if underflow occurred. result is ~ equal to 1. but, # we don't know if the result was an underflow that rounded up to a 1 -# or a normalized number that rounded down to a 1. so, redo the entire -# operation using RZ as the rounding mode to see what the pre-rounded +# or a normalized number that rounded down to a 1. so, redo the entire +# operation using RZ as the rounding mode to see what the pre-rounded # result is. this case should be relatively rare. # fmovm.x FP_SCR1(%a6),&0x40 # load dst op into fp1 @@ -12765,8 +12765,8 @@ rts # -# The destination was an INF w/ an In Range or ZERO source, the result is -# an INF w/ the proper sign. +# The destination was an INF w/ an In Range or ZERO source, the result is +# an INF w/ the proper sign. # The 68881/882 returns the destination INF w/ the new sign(if the j-bit of the # dst INF is set, then then j-bit of the result INF is also set). # @@ -12796,11 +12796,11 @@ # fdneg(): emulates the fdneg instruction # # # # XREF **************************************************************** # -# norm() - normalize a denorm to provide EXOP # +# norm() - normalize a denorm to provide EXOP # # scale_to_zero_src() - scale sgl/dbl source exponent # # ovf_res() - return default overflow result # # unf_res() - return default underflow result # -# res_qnan_1op() - return QNAN result # +# res_qnan_1op() - return QNAN result # # res_snan_1op() - return SNAN result # # # # INPUT *************************************************************** # @@ -12838,7 +12838,7 @@ mov.l %d0,L_SCR3(%a6) # store rnd info mov.b STAG(%a6),%d1 bne.w fneg_not_norm # optimize on non-norm input - + # # NEGATE SIGN : norms and denorms ONLY! # @@ -12897,7 +12897,7 @@ neg.w %d0 # new exponent = -(shft val) addi.w &0x6000,%d0 # add new bias to exponent mov.w FP_SCR0_EX(%a6),%d1 # fetch old sign,exp - andi.w &0x8000,%d1 # keep old sign + andi.w &0x8000,%d1 # keep old sign andi.w &0x7fff,%d0 # clear sign position or.w %d1,%d0 # concat old sign, new exponent mov.w %d0,FP_SCR0_EX(%a6) # insert new exponent @@ -12976,7 +12976,7 @@ fneg_sd_unfl: bset &unfl_bit,FPSR_EXCEPT(%a6) # set unfl exc bit - eori.b &0x80,FP_SCR0_EX(%a6) # negate sign + eori.b &0x80,FP_SCR0_EX(%a6) # negate sign bpl.b fneg_sd_unfl_tst bset &neg_bit,FPSR_CC(%a6) # set 'N' ccode bit @@ -12992,10 +12992,10 @@ bsr.l unf_res # calculate default result or.b %d0,FPSR_CC(%a6) # unf_res may have set 'Z' fmovm.x FP_SCR0(%a6),&0x80 # return default result in fp0 - rts + rts # -# operand will underflow AND underflow is enabled. +# operand will underflow AND underflow is enabled. # therefore, we must return the result rounded to extended precision. # fneg_sd_unfl_ena: @@ -13117,19 +13117,19 @@ ######################################################################### # XDEF **************************************************************** # -# ftst(): emulates the ftest instruction # +# ftst(): emulates the ftest instruction # # # # XREF **************************************************************** # -# res{s,q}nan_1op() - set NAN result for monadic instruction # +# res{s,q}nan_1op() - set NAN result for monadic instruction # # # # INPUT *************************************************************** # -# a0 = pointer to extended precision source operand # +# a0 = pointer to extended precision source operand # # # # OUTPUT ************************************************************** # # none # # # # ALGORITHM *********************************************************** # -# Check the source operand tag (STAG) and set the FPCR according # +# Check the source operand tag (STAG) and set the FPCR according # # to the operand type and sign. # # # ######################################################################### @@ -13138,7 +13138,7 @@ ftst: mov.b STAG(%a6),%d1 bne.b ftst_not_norm # optimize on non-norm input - + # # Norm: # @@ -13186,7 +13186,7 @@ ftst_inf_m: mov.b &inf_bmask+neg_bmask,FPSR_CC(%a6) # set 'I','N' ccode bits rts - + # # Zero: # @@ -13215,13 +13215,13 @@ # fp0 = result # # # # ALGORITHM *********************************************************** # -# Separate according to operand type. Unnorms don't pass through # -# here. For norms, load the rounding mode/prec, execute a "fint", then # +# Separate according to operand type. Unnorms don't pass through # +# here. For norms, load the rounding mode/prec, execute a "fint", then # # store the resulting FPSR bits. # -# For denorms, force the j-bit to a one and do the same as for # -# norms. Denorms are so low that the answer will either be a zero or a # +# For denorms, force the j-bit to a one and do the same as for # +# norms. Denorms are so low that the answer will either be a zero or a # # one. # -# For zeroes/infs/NANs, return the same while setting the FPSR # +# For zeroes/infs/NANs, return the same while setting the FPSR # # as appropriate. # # # ######################################################################### @@ -13230,7 +13230,7 @@ fint: mov.b STAG(%a6),%d1 bne.b fint_not_norm # optimize on non-norm input - + # # Norm: # @@ -13240,7 +13240,7 @@ fmov.l %d0,%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fint.x SRC(%a0),%fp0 # execute fint + fint.x SRC(%a0),%fp0 # execute fint fmov.l &0x0,%fpcr # clear FPCR fmov.l %fpsr,%d0 # save FPSR @@ -13318,16 +13318,16 @@ # d0 = round precision/mode # # # # OUTPUT ************************************************************** # -# fp0 = result # +# fp0 = result # # # # ALGORITHM *********************************************************** # # Separate according to operand type. Unnorms don't pass through # -# here. For norms, load the rounding mode/prec, execute a "fintrz", # +# here. For norms, load the rounding mode/prec, execute a "fintrz", # # then store the resulting FPSR bits. # -# For denorms, force the j-bit to a one and do the same as for # +# For denorms, force the j-bit to a one and do the same as for # # norms. Denorms are so low that the answer will either be a zero or a # # one. # -# For zeroes/infs/NANs, return the same while setting the FPSR # +# For zeroes/infs/NANs, return the same while setting the FPSR # # as appropriate. # # # ######################################################################### @@ -13336,7 +13336,7 @@ fintrz: mov.b STAG(%a6),%d1 bne.b fintrz_not_norm # optimize on non-norm input - + # # Norm: # @@ -13431,17 +13431,17 @@ # # # ALGORITHM *********************************************************** # # Handle NANs, infinities, and zeroes as special cases. Divide # -# norms into extended, single, and double precision. # -# Simply clear sign for extended precision norm. Ext prec denorm # +# norms into extended, single, and double precision. # +# Simply clear sign for extended precision norm. Ext prec denorm # # gets an EXOP created for it since it's an underflow. # # Double and single precision can overflow and underflow. First, # # scale the operand such that the exponent is zero. Perform an "fabs" # -# using the correct rnd mode/prec. Check to see if the original # +# using the correct rnd mode/prec. Check to see if the original # # exponent would take an exception. If so, use unf_res() or ovf_res() # # to calculate the default result. Also, create the EXOP for the # -# exceptional case. If no exception should occur, insert the correct # +# exceptional case. If no exception should occur, insert the correct # # result exponent and return. # -# Unnorms don't pass through here. # +# Unnorms don't pass through here. # # # ######################################################################### @@ -13461,7 +13461,7 @@ mov.l %d0,L_SCR3(%a6) # store rnd info mov.b STAG(%a6),%d1 bne.w fabs_not_norm # optimize on non-norm input - + # # ABSOLUTE VALUE: norms and denorms ONLY! # @@ -13607,10 +13607,10 @@ bsr.l unf_res # calculate default result or.b %d0,FPSR_CC(%a6) # set possible 'Z' ccode fmovm.x FP_SCR0(%a6),&0x80 # return default result in fp0 - rts + rts # -# operand will underflow AND underflow is enabled. +# operand will underflow AND underflow is enabled. # therefore, we must return the result rounded to extended precision. # fabs_sd_unfl_ena: @@ -13732,10 +13732,10 @@ ######################################################################### # XDEF **************************************************************** # -# fcmp(): fp compare op routine # +# fcmp(): fp compare op routine # # # # XREF **************************************************************** # -# res_qnan() - return QNAN result # +# res_qnan() - return QNAN result # # res_snan() - return SNAN result # # # # INPUT *************************************************************** # @@ -13747,7 +13747,7 @@ # None # # # # ALGORITHM *********************************************************** # -# Handle NANs and denorms as special cases. For everything else, # +# Handle NANs and denorms as special cases. For everything else, # # just use the actual fcmp instruction to produce the correct condition # # codes. # # # @@ -13760,14 +13760,14 @@ lsl.b &0x3,%d1 or.b STAG(%a6),%d1 bne.b fcmp_not_norm # optimize on non-norm input - + # # COMPARE FP OPs : NORMs, ZEROs, INFs, and "corrected" DENORMs # fcmp_norm: fmovm.x DST(%a1),&0x80 # load dst op - fcmp.x %fp0,SRC(%a0) # do compare + fcmp.x %fp0,SRC(%a0) # do compare fmov.l %fpsr,%d0 # save FPSR rol.l &0x8,%d0 # extract ccode bits @@ -13788,7 +13788,7 @@ short fcmp_norm - tbl_fcmp_op # NORM - ZERO short fcmp_norm - tbl_fcmp_op # NORM - INF short fcmp_res_qnan - tbl_fcmp_op # NORM - QNAN - short fcmp_nrm_dnrm - tbl_fcmp_op # NORM - DENORM + short fcmp_nrm_dnrm - tbl_fcmp_op # NORM - DENORM short fcmp_res_snan - tbl_fcmp_op # NORM - SNAN short tbl_fcmp_op - tbl_fcmp_op # short tbl_fcmp_op - tbl_fcmp_op # @@ -13850,8 +13850,8 @@ rts # -# DENORMs are a little more difficult. -# If you have a 2 DENORMs, then you can just force the j-bit to a one +# DENORMs are a little more difficult. +# If you have a 2 DENORMs, then you can just force the j-bit to a one # and use the fcmp_norm routine. # If you have a DENORM and an INF or ZERO, just force the DENORM's j-bit to a one # and use the fcmp_norm routine. @@ -13892,7 +13892,7 @@ mov.l SRC_LO(%a0),FP_SCR0_LO(%a6) lea FP_SCR1(%a6),%a1 lea FP_SCR0(%a6),%a0 - bra.w fcmp_norm + bra.w fcmp_norm fcmp_nrm_dnrm: mov.b SRC_EX(%a0),%d0 # determine if like signs @@ -13924,15 +13924,15 @@ ######################################################################### # XDEF **************************************************************** # -# fsglmul(): emulates the fsglmul instruction # +# fsglmul(): emulates the fsglmul instruction # # # # XREF **************************************************************** # # scale_to_zero_src() - scale src exponent to zero # # scale_to_zero_dst() - scale dst exponent to zero # # unf_res4() - return default underflow result for sglop # # ovf_res() - return default overflow result # -# res_qnan() - return QNAN result # -# res_snan() - return SNAN result # +# res_qnan() - return QNAN result # +# res_snan() - return SNAN result # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # @@ -13950,7 +13950,7 @@ # instruction won't cause an exception. Use the regular fsglmul to # # compute a result. Check if the regular operands would have taken # # an exception. If so, return the default overflow/underflow result # -# and return the EXOP if exceptions are enabled. Else, scale the # +# and return the EXOP if exceptions are enabled. Else, scale the # # result operand to the proper exponent. # # # ######################################################################### @@ -13982,11 +13982,11 @@ add.l (%sp)+,%d0 # SCALE_FACTOR = scale1 + scale2 - cmpi.l %d0,&0x3fff-0x7ffe # would result ovfl? + cmpi.l %d0,&0x3fff-0x7ffe # would result ovfl? beq.w fsglmul_may_ovfl # result may rnd to overflow blt.w fsglmul_ovfl # result will overflow - cmpi.l %d0,&0x3fff+0x0001 # would result unfl? + cmpi.l %d0,&0x3fff+0x0001 # would result unfl? beq.w fsglmul_may_unfl # result may rnd to no unfl bgt.w fsglmul_unfl # result will underflow @@ -14073,7 +14073,7 @@ fmov.l &0x0,%fpsr # clear FPSR fsglmul.x FP_SCR0(%a6),%fp0 # execute sgl multiply - + fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -14082,7 +14082,7 @@ fabs.x %fp0,%fp1 # make a copy of result fcmp.b %fp1,&0x2 # is |result| >= 2.b? fbge.w fsglmul_ovfl_tst # yes; overflow has occurred - + # no, it didn't overflow; we have correct result bra.w fsglmul_normal_exit @@ -14116,7 +14116,7 @@ rts # -# UNFL is enabled. +# UNFL is enabled. # fsglmul_unfl_ena: fmovm.x FP_SCR1(%a6),&0x40 # load dst op @@ -14124,7 +14124,7 @@ fmov.l L_SCR3(%a6),%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fsglmul.x FP_SCR0(%a6),%fp1 # execute sgl multiply + fsglmul.x FP_SCR0(%a6),%fp1 # execute sgl multiply fmov.l &0x0,%fpcr # clear FPCR @@ -14149,7 +14149,7 @@ fmov.l L_SCR3(%a6),%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fsglmul.x FP_SCR0(%a6),%fp0 # execute sgl multiply + fsglmul.x FP_SCR0(%a6),%fp0 # execute sgl multiply fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -14173,11 +14173,11 @@ mov.l L_SCR3(%a6),%d1 andi.b &0xc0,%d1 # keep rnd prec ori.b &rz_mode*0x10,%d1 # insert RZ - + fmov.l %d1,%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fsglmul.x FP_SCR0(%a6),%fp1 # execute sgl multiply + fsglmul.x FP_SCR0(%a6),%fp1 # execute sgl multiply fmov.l &0x0,%fpcr # clear FPCR fabs.x %fp1 # make absolute value @@ -14265,15 +14265,15 @@ ######################################################################### # XDEF **************************************************************** # -# fsgldiv(): emulates the fsgldiv instruction # +# fsgldiv(): emulates the fsgldiv instruction # # # # XREF **************************************************************** # # scale_to_zero_src() - scale src exponent to zero # # scale_to_zero_dst() - scale dst exponent to zero # # unf_res4() - return default underflow result for sglop # # ovf_res() - return default overflow result # -# res_qnan() - return QNAN result # -# res_snan() - return SNAN result # +# res_qnan() - return QNAN result # +# res_snan() - return SNAN result # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # @@ -14291,7 +14291,7 @@ # instruction won't cause an exception. Use the regular fsgldiv to # # compute a result. Check if the regular operands would have taken # # an exception. If so, return the default overflow/underflow result # -# and return the EXOP if exceptions are enabled. Else, scale the # +# and return the EXOP if exceptions are enabled. Else, scale the # # result operand to the proper exponent. # # # ######################################################################### @@ -14306,7 +14306,7 @@ or.b STAG(%a6),%d1 # combine src tags bne.w fsgldiv_not_norm # optimize on non-norm input - + # # DIVIDE: NORMs and DENORMs ONLY! # @@ -14333,7 +14333,7 @@ cmpi.l %d0,&0x3fff-0x7ffe ble.w fsgldiv_may_ovfl - cmpi.l %d0,&0x3fff-0x0000 # will result underflow? + cmpi.l %d0,&0x3fff-0x0000 # will result underflow? beq.w fsgldiv_may_unfl # maybe bgt.w fsgldiv_unfl # yes; go handle underflow @@ -14393,7 +14393,7 @@ bne.b fsgldiv_ovfl_ena # yes fsgldiv_ovfl_dis: - btst &neg_bit,FPSR_CC(%a6) # is result negative + btst &neg_bit,FPSR_CC(%a6) # is result negative sne %d1 # set sign param accordingly mov.l L_SCR3(%a6),%d0 # pass prec:rnd andi.b &0x30,%d0 # kill precision @@ -14449,7 +14449,7 @@ rts # -# UNFL is enabled. +# UNFL is enabled. # fsgldiv_unfl_ena: fmovm.x FP_SCR1(%a6),&0x40 # load dst op @@ -14500,8 +14500,8 @@ # # we still don't know if underflow occurred. result is ~ equal to 1. but, # we don't know if the result was an underflow that rounded up to a 1 -# or a normalized number that rounded down to a 1. so, redo the entire -# operation using RZ as the rounding mode to see what the pre-rounded +# or a normalized number that rounded down to a 1. so, redo the entire +# operation using RZ as the rounding mode to see what the pre-rounded # result is. this case should be relatively rare. # fmovm.x FP_SCR1(%a6),&0x40 # load dst op into %fp1 @@ -14605,25 +14605,25 @@ # fdadd(): emulates the fdadd instruction # # # # XREF **************************************************************** # -# addsub_scaler2() - scale the operands so they won't take exc # +# addsub_scaler2() - scale the operands so they won't take exc # # ovf_res() - return default overflow result # # unf_res() - return default underflow result # # res_qnan() - set QNAN result # -# res_snan() - set SNAN result # +# res_snan() - set SNAN result # # res_operr() - set OPERR result # # scale_to_zero_src() - set src operand exponent equal to zero # # scale_to_zero_dst() - set dst operand exponent equal to zero # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # -# a1 = pointer to extended precision destination operand # +# a1 = pointer to extended precision destination operand # # # # OUTPUT ************************************************************** # # fp0 = result # # fp1 = EXOP (if exception occurred) # # # # ALGORITHM *********************************************************** # -# Handle NANs, infinities, and zeroes as special cases. Divide # +# Handle NANs, infinities, and zeroes as special cases. Divide # # norms into extended, single, and double precision. # # Do addition after scaling exponents such that exception won't # # occur. Then, check result exponent to see if exception would have # @@ -14837,7 +14837,7 @@ # # result is equal to the smallest normalized number in the selected precision -# if the precision is extended, this result could not have come from an +# if the precision is extended, this result could not have come from an # underflow that rounded up. # fadd_may_unfl: @@ -14859,7 +14859,7 @@ # ok, so now the result has a exponent equal to the smallest normalized # exponent for the selected precision. also, the mantissa is equal to # 0x8000000000000000 and this mantissa is the result of rounding non-zero -# g,r,s. +# g,r,s. # now, we must determine whether the pre-rounded result was an underflow # rounded "up" or a normalized number rounded "down". # so, we do this be re-executing the add using RZ as the rounding mode and @@ -14970,7 +14970,7 @@ fmov.s &0x00000000,%fp0 # return +ZERO mov.b &z_bmask,FPSR_CC(%a6) # set Z rts - + # # the ZEROes have opposite signs: # - therefore, we return +ZERO if the rounding modes are RN,RZ, or RP. @@ -15024,7 +15024,7 @@ eor.b %d1,%d0 bmi.l res_operr # weed out (-INF)+(+INF) -# ok, so it's not an OPERR. but, we do have to remember to return the +# ok, so it's not an OPERR. but, we do have to remember to return the # src INF since that's where the 881/882 gets the j-bit from... # @@ -15058,25 +15058,25 @@ # fdsub(): emulates the fdsub instruction # # # # XREF **************************************************************** # -# addsub_scaler2() - scale the operands so they won't take exc # +# addsub_scaler2() - scale the operands so they won't take exc # # ovf_res() - return default overflow result # # unf_res() - return default underflow result # # res_qnan() - set QNAN result # -# res_snan() - set SNAN result # +# res_snan() - set SNAN result # # res_operr() - set OPERR result # # scale_to_zero_src() - set src operand exponent equal to zero # # scale_to_zero_dst() - set dst operand exponent equal to zero # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # -# a1 = pointer to extended precision destination operand # +# a1 = pointer to extended precision destination operand # # # # OUTPUT ************************************************************** # # fp0 = result # # fp1 = EXOP (if exception occurred) # # # # ALGORITHM *********************************************************** # -# Handle NANs, infinities, and zeroes as special cases. Divide # +# Handle NANs, infinities, and zeroes as special cases. Divide # # norms into extended, single, and double precision. # # Do subtraction after scaling exponents such that exception won't# # occur. Then, check result exponent to see if exception would have # @@ -15226,7 +15226,7 @@ add.l &0xc,%sp fmovm.x FP_SCR1(%a6),&0x80 # load dst op - + fmov.l &rz_mode*0x10,%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR @@ -15290,7 +15290,7 @@ # # result is equal to the smallest normalized number in the selected precision -# if the precision is extended, this result could not have come from an +# if the precision is extended, this result could not have come from an # underflow that rounded up. # fsub_may_unfl: @@ -15312,7 +15312,7 @@ # ok, so now the result has a exponent equal to the smallest normalized # exponent for the selected precision. also, the mantissa is equal to # 0x8000000000000000 and this mantissa is the result of rounding non-zero -# g,r,s. +# g,r,s. # now, we must determine whether the pre-rounded result was an underflow # rounded "up" or a normalized number rounded "down". # so, we do this be re-executing the add using RZ as the rounding mode and @@ -15468,7 +15468,7 @@ # # both operands are INFs. an OPERR will result if the INFs have the -# same signs. else, +# same signs. else, # fsub_inf_2: mov.b SRC_EX(%a0),%d0 # exclusive or the signs @@ -15483,7 +15483,7 @@ fmovm.x SRC(%a0),&0x80 # return src INF fneg.x %fp0 # invert sign fbge.w fsub_inf_done # sign is now positive - mov.b &neg_bmask+inf_bmask,FPSR_CC(%a6) # set INF/NEG + mov.b &neg_bmask+inf_bmask,FPSR_CC(%a6) # set INF/NEG rts fsub_inf_dst: @@ -15499,7 +15499,7 @@ ######################################################################### # XDEF **************************************************************** # -# fsqrt(): emulates the fsqrt instruction # +# fsqrt(): emulates the fsqrt instruction # # fssqrt(): emulates the fssqrt instruction # # fdsqrt(): emulates the fdsqrt instruction # # # @@ -15507,8 +15507,8 @@ # scale_sqrt() - scale the source operand # # unf_res() - return default underflow result # # ovf_res() - return default overflow result # -# res_qnan_1op() - return QNAN result # -# res_snan_1op() - return SNAN result # +# res_qnan_1op() - return QNAN result # +# res_snan_1op() - return SNAN result # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # @@ -15525,7 +15525,7 @@ # instruction won't cause an exception. Use the regular fsqrt to # # compute a result. Check if the regular operands would have taken # # an exception. If so, return the default overflow/underflow result # -# and return the EXOP if exceptions are enabled. Else, scale the # +# and return the EXOP if exceptions are enabled. Else, scale the # # result operand to the proper exponent. # # # ######################################################################### @@ -15547,7 +15547,7 @@ clr.w %d1 mov.b STAG(%a6),%d1 bne.w fsqrt_not_norm # optimize on non-norm input - + # # SQUARE ROOT: norms and denorms ONLY! # @@ -15669,7 +15669,7 @@ fmov.l &rz_mode*0x10,%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fsqrt.x FP_SCR0(%a6),%fp0 # execute square root + fsqrt.x FP_SCR0(%a6),%fp0 # execute square root fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -15689,10 +15689,10 @@ bsr.l unf_res # calculate default result or.b %d0,FPSR_CC(%a6) # set possible 'Z' ccode fmovm.x FP_SCR0(%a6),&0x80 # return default result in fp0 - rts + rts # -# operand will underflow AND underflow is enabled. +# operand will underflow AND underflow is enabled. # therefore, we must return the result rounded to extended precision. # fsqrt_sd_unfl_ena: @@ -15808,15 +15808,15 @@ bra.l res_qnan_1op # -# fsqrt(+0) = +0 -# fsqrt(-0) = -0 +# fsqrt(+0) = +0 +# fsqrt(-0) = -0 # fsqrt(+INF) = +INF -# fsqrt(-INF) = OPERR +# fsqrt(-INF) = OPERR # fsqrt_zero: tst.b SRC_EX(%a0) # is ZERO positive or negative? bmi.b fsqrt_zero_m # negative -fsqrt_zero_p: +fsqrt_zero_p: fmov.s &0x00000000,%fp0 # return +ZERO mov.b &z_bmask,FPSR_CC(%a6) # set 'Z' ccode bit rts @@ -15846,14 +15846,14 @@ # INPUT *************************************************************** # # FP_SRC(a6) = fp op1(src) # # FP_DST(a6) = fp op2(dst) # -# # +# # # OUTPUT ************************************************************** # # FP_SRC(a6) = fp op1 scaled(src) # # FP_DST(a6) = fp op2 scaled(dst) # # d0 = scale amount # # # # ALGORITHM *********************************************************** # -# If the DST exponent is > the SRC exponent, set the DST exponent # +# If the DST exponent is > the SRC exponent, set the DST exponent # # equal to 0x3fff and scale the SRC exponent by the value that the # # DST exponent was scaled by. If the SRC exponent is greater or equal, # # do the opposite. Return this scale factor in d0. # @@ -15916,7 +15916,7 @@ andi.w &0x8000,FP_SCR0_EX(%a6) # zero src exponent bset &0x0,1+FP_SCR0_EX(%a6) # set exp = 1 - mov.l (%sp)+,%d0 # return SCALE factor + mov.l (%sp)+,%d0 # return SCALE factor rts # src exp is >= dst exp; scale src to exp = 0x3fff @@ -15952,7 +15952,7 @@ andi.w &0x8000,FP_SCR1_EX(%a6) # zero dst exponent bset &0x0,1+FP_SCR1_EX(%a6) # set exp = 1 - mov.l (%sp)+,%d0 # return SCALE factor + mov.l (%sp)+,%d0 # return SCALE factor rts ########################################################################## @@ -15967,14 +15967,14 @@ # # # INPUT *************************************************************** # # FP_SCR0(a6) = extended precision operand to be scaled # -# # +# # # OUTPUT ************************************************************** # # FP_SCR0(a6) = scaled extended precision operand # # d0 = scale value # # # # ALGORITHM *********************************************************** # -# Set the exponent of the input operand to 0x3fff. Save the value # -# of the difference between the original and new exponent. Then, # +# Set the exponent of the input operand to 0x3fff. Save the value # +# of the difference between the original and new exponent. Then, # # normalize the operand if it was a DENORM. Add this normalization # # value to the previous value. Return the result. # # # @@ -16020,17 +16020,17 @@ # # # INPUT *************************************************************** # # FP_SCR0(a6) = extended precision operand to be scaled # -# # +# # # OUTPUT ************************************************************** # # FP_SCR0(a6) = scaled extended precision operand # # d0 = scale value # # # # ALGORITHM *********************************************************** # # If the input operand is a DENORM, normalize it. # -# If the exponent of the input operand is even, set the exponent # -# to 0x3ffe and return a scale factor of "(exp-0x3ffe)/2". If the # +# If the exponent of the input operand is even, set the exponent # +# to 0x3ffe and return a scale factor of "(exp-0x3ffe)/2". If the # # exponent of the input operand is off, set the exponent to ox3fff and # -# return a scale factor of "(exp-0x3fff)/2". # +# return a scale factor of "(exp-0x3fff)/2". # # # ######################################################################### @@ -16094,14 +16094,14 @@ # # # INPUT *************************************************************** # # FP_SCR1(a6) = extended precision operand to be scaled # -# # +# # # OUTPUT ************************************************************** # # FP_SCR1(a6) = scaled extended precision operand # # d0 = scale value # # # # ALGORITHM *********************************************************** # -# Set the exponent of the input operand to 0x3fff. Save the value # -# of the difference between the original and new exponent. Then, # +# Set the exponent of the input operand to 0x3fff. Save the value # +# of the difference between the original and new exponent. Then, # # normalize the operand if it was a DENORM. Add this normalization # # value to the previous value. Return the result. # # # @@ -16149,21 +16149,21 @@ # INPUT *************************************************************** # # FP_SRC(a6) = pointer to extended precision src operand # # FP_DST(a6) = pointer to extended precision dst operand # -# # +# # # OUTPUT ************************************************************** # # fp0 = default result # # # # ALGORITHM *********************************************************** # -# If either operand (but not both operands) of an operation is a # +# If either operand (but not both operands) of an operation is a # # nonsignalling NAN, then that NAN is returned as the result. If both # -# operands are nonsignalling NANs, then the destination operand # +# operands are nonsignalling NANs, then the destination operand # # nonsignalling NAN is returned as the result. # -# If either operand to an operation is a signalling NAN (SNAN), # +# If either operand to an operation is a signalling NAN (SNAN), # # then, the SNAN bit is set in the FPSR EXC byte. If the SNAN trap # -# enable bit is set in the FPCR, then the trap is taken and the # +# enable bit is set in the FPCR, then the trap is taken and the # # destination is not modified. If the SNAN trap enable bit is not set, # -# then the SNAN is converted to a nonsignalling NAN (by setting the # -# SNAN bit in the operand to one), and the operation continues as # +# then the SNAN is converted to a nonsignalling NAN (by setting the # +# SNAN bit in the operand to one), and the operation continues as # # described in the preceding paragraph, for nonsignalling NANs. # # Make sure the appropriate FPSR bits are set before exiting. # # # @@ -16202,7 +16202,7 @@ lea FP_DST(%a6), %a0 cmp.b STAG(%a6), &SNAN bne nan_done - or.l &aiop_mask+snan_mask, USER_FPSR(%a6) + or.l &aiop_mask+snan_mask, USER_FPSR(%a6) nan_done: or.l &nan_mask, USER_FPSR(%a6) nan_comp: @@ -16215,14 +16215,14 @@ ######################################################################### # XDEF **************************************************************** # -# res_operr(): return default result during operand error # +# res_operr(): return default result during operand error # # # # XREF **************************************************************** # # None # # # # INPUT *************************************************************** # # None # -# # +# # # OUTPUT ************************************************************** # # fp0 = default operand error result # # # @@ -16230,8 +16230,8 @@ # An nonsignalling NAN is returned as the default result when # # an operand error occurs for the following cases: # # # -# Multiply: (Infinity x Zero) # -# Divide : (Zero / Zero) || (Infinity / Infinity) # +# Multiply: (Infinity x Zero) # +# Divide : (Zero / Zero) || (Infinity / Infinity) # # # ######################################################################### @@ -16241,7 +16241,7 @@ fmovm.x nan_return(%pc), &0x80 rts -nan_return: +nan_return: long 0x7fff0000, 0xffffffff, 0xffffffff ######################################################################### @@ -16268,7 +16268,7 @@ # or false. # # If a BSUN exception should be indicated, the BSUN and ABSUN # # bits are set in the stacked FPSR. If the BSUN exception is enabled, # -# the fbsun_flg is set in the SPCOND_FLG location on the stack. If an # +# the fbsun_flg is set in the SPCOND_FLG location on the stack. If an # # enabled BSUN should not be flagged and the predicate is true, then # # Dn is fetched and decremented by one. If Dn is not equal to -1, add # # the displacement value to the stacked PC so that when an "rte" is # @@ -16286,7 +16286,7 @@ ror.l &0x8,%d1 # rotate to top byte fmov.l %d1,%fpsr # insert into FPSR - mov.w (tbl_fdbcc.b,%pc,%d0.w*2),%d1 # load table + mov.w (tbl_fdbcc.b,%pc,%d0.w*2),%d1 # load table jmp (tbl_fdbcc.b,%pc,%d1.w) # jump to fdbcc routine tbl_fdbcc: @@ -16327,7 +16327,7 @@ # # # IEEE Nonaware tests # # # -# For the IEEE nonaware tests, only the false branch changes the # +# For the IEEE nonaware tests, only the false branch changes the # # counter. However, the true branch may set bsun so we check to see # # if the NAN bit is set, in which case BSUN and AIOP will be set. # # # @@ -16376,7 +16376,7 @@ beq.w fdbcc_false # no;go handle counter ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? - bne.w fdbcc_bsun # yes; we have an exception + bne.w fdbcc_bsun # yes; we have an exception bra.w fdbcc_false # no; go handle counter fdbcc_gt_yes: rts # do nothing @@ -16384,7 +16384,7 @@ # # not greater than: # -# NANvZvN +# NANvZvN # fdbcc_ngt: fbngt.w fdbcc_ngt_yes # not greater than? @@ -16395,7 +16395,7 @@ beq.b fdbcc_ngt_done # no;go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? - bne.w fdbcc_bsun # yes; we have an exception + bne.w fdbcc_bsun # yes; we have an exception fdbcc_ngt_done: rts # no; do nothing @@ -16411,14 +16411,14 @@ beq.w fdbcc_false # no;go handle counter ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? - bne.w fdbcc_bsun # yes; we have an exception + bne.w fdbcc_bsun # yes; we have an exception bra.w fdbcc_false # no; go handle counter fdbcc_ge_yes: btst &nan_bit, FPSR_CC(%a6) # is NAN set in cc? beq.b fdbcc_ge_yes_done # no;go do nothing ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? - bne.w fdbcc_bsun # yes; we have an exception + bne.w fdbcc_bsun # yes; we have an exception fdbcc_ge_yes_done: rts # do nothing @@ -16436,7 +16436,7 @@ beq.b fdbcc_nge_done # no;go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? - bne.w fdbcc_bsun # yes; we have an exception + bne.w fdbcc_bsun # yes; we have an exception fdbcc_nge_done: rts # no; do nothing @@ -16452,7 +16452,7 @@ beq.w fdbcc_false # no; go handle counter ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? - bne.w fdbcc_bsun # yes; we have an exception + bne.w fdbcc_bsun # yes; we have an exception bra.w fdbcc_false # no; go handle counter fdbcc_lt_yes: rts # do nothing @@ -16471,7 +16471,7 @@ beq.b fdbcc_nlt_done # no;go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? - bne.w fdbcc_bsun # yes; we have an exception + bne.w fdbcc_bsun # yes; we have an exception fdbcc_nlt_done: rts # no; do nothing @@ -16487,14 +16487,14 @@ beq.w fdbcc_false # no; go handle counter ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? - bne.w fdbcc_bsun # yes; we have an exception + bne.w fdbcc_bsun # yes; we have an exception bra.w fdbcc_false # no; go handle counter fdbcc_le_yes: btst &nan_bit, FPSR_CC(%a6) # is NAN set in cc? beq.b fdbcc_le_yes_done # no; go do nothing ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? - bne.w fdbcc_bsun # yes; we have an exception + bne.w fdbcc_bsun # yes; we have an exception fdbcc_le_yes_done: rts # do nothing @@ -16611,7 +16611,7 @@ # False # fdbcc_sf: - btst &nan_bit, FPSR_CC(%a6) # is NAN set? + btst &nan_bit, FPSR_CC(%a6) # is NAN set? beq.w fdbcc_false # no;go handle counter ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? @@ -16624,7 +16624,7 @@ # True # fdbcc_st: - btst &nan_bit, FPSR_CC(%a6) # is NAN set? + btst &nan_bit, FPSR_CC(%a6) # is NAN set? beq.b fdbcc_st_done # no;go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? @@ -16640,14 +16640,14 @@ fdbcc_seq: fbseq.w fdbcc_seq_yes # signalling equal? fdbcc_seq_no: - btst &nan_bit, FPSR_CC(%a6) # is NAN set? + btst &nan_bit, FPSR_CC(%a6) # is NAN set? beq.w fdbcc_false # no;go handle counter ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? bne.w fdbcc_bsun # yes; we have an exception bra.w fdbcc_false # go handle counter fdbcc_seq_yes: - btst &nan_bit, FPSR_CC(%a6) # is NAN set? + btst &nan_bit, FPSR_CC(%a6) # is NAN set? beq.b fdbcc_seq_yes_done # no;go do nothing ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? @@ -16663,14 +16663,14 @@ fdbcc_sneq: fbsneq.w fdbcc_sneq_yes # signalling not equal? fdbcc_sneq_no: - btst &nan_bit, FPSR_CC(%a6) # is NAN set? + btst &nan_bit, FPSR_CC(%a6) # is NAN set? beq.w fdbcc_false # no;go handle counter ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? bne.w fdbcc_bsun # yes; we have an exception bra.w fdbcc_false # go handle counter fdbcc_sneq_yes: - btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit + btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit beq.w fdbcc_sneq_done # no;go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # is BSUN enabled? @@ -16684,7 +16684,7 @@ # # # For the IEEE aware tests, action is only taken if the result is false.# # Therefore, the opposite branch type is used to jump to the decrement # -# routine. # +# routine. # # The BSUN exception will not be set for any of these tests. # # # ######################################################################### @@ -16845,7 +16845,7 @@ # pc += sign_ext(16-bit displacement) # fdbcc_false: - mov.b 1+EXC_OPWORD(%a6), %d1 # fetch lo opword + mov.b 1+EXC_OPWORD(%a6), %d1 # fetch lo opword andi.w &0x7, %d1 # extract count register bsr.l fetch_dreg # fetch count value @@ -16856,7 +16856,7 @@ bsr.l store_dreg_l # store new count value cmpi.w %d0, &-0x1 # is (Dn == -1)? - bne.b fdbcc_false_cont # no; + bne.b fdbcc_false_cont # no; rts fdbcc_false_cont: @@ -16897,7 +16897,7 @@ # or false. # # If a BSUN exception should be indicated, the BSUN and ABSUN # # bits are set in the stacked FPSR. If the BSUN exception is enabled, # -# the fbsun_flg is set in the SPCOND_FLG location on the stack. If an # +# the fbsun_flg is set in the SPCOND_FLG location on the stack. If an # # enabled BSUN should not be flagged and the predicate is true, then # # the ftrapcc_flg is set in the SPCOND_FLG location. These special # # flags indicate to the calling routine to emulate the exceptional # @@ -16914,7 +16914,7 @@ ror.l &0x8,%d1 # rotate to top byte fmov.l %d1,%fpsr # insert into FPSR - mov.w (tbl_ftrapcc.b,%pc,%d0.w*2), %d1 # load table + mov.w (tbl_ftrapcc.b,%pc,%d0.w*2), %d1 # load table jmp (tbl_ftrapcc.b,%pc,%d1.w) # jump to ftrapcc routine tbl_ftrapcc: @@ -17006,7 +17006,7 @@ # # not greater than: # -# NANvZvN +# NANvZvN # ftrapcc_ngt: fbngt.w ftrapcc_ngt_yes # not greater than? @@ -17226,7 +17226,7 @@ # False # ftrapcc_sf: - btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit + btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit beq.b ftrapcc_sf_done # no; go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # was BSUN set? @@ -17240,7 +17240,7 @@ # True # ftrapcc_st: - btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit + btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit beq.w ftrapcc_trap # no; go take trap ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # was BSUN set? @@ -17255,7 +17255,7 @@ ftrapcc_seq: fbseq.w ftrapcc_seq_yes # signalling equal? ftrapcc_seq_no: - btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit + btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit beq.w ftrapcc_seq_done # no; go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # was BSUN set? @@ -17263,7 +17263,7 @@ ftrapcc_seq_done: rts # no; do nothing ftrapcc_seq_yes: - btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit + btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit beq.w ftrapcc_trap # no; go take trap ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # was BSUN set? @@ -17278,7 +17278,7 @@ ftrapcc_sneq: fbsneq.w ftrapcc_sneq_yes # signalling equal? ftrapcc_sneq_no: - btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit + btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit beq.w ftrapcc_sneq_no_done # no; go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # was BSUN set? @@ -17286,7 +17286,7 @@ ftrapcc_sneq_no_done: rts # do nothing ftrapcc_sneq_yes: - btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit + btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit beq.w ftrapcc_trap # no; go take trap ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit btst &bsun_bit, FPCR_ENABLE(%a6) # was BSUN set? @@ -17469,7 +17469,7 @@ # or false. # # If a BSUN exception should be indicated, the BSUN and ABSUN # # bits are set in the stacked FPSR. If the BSUN exception is enabled, # -# the fbsun_flg is set in the SPCOND_FLG location on the stack. If an # +# the fbsun_flg is set in the SPCOND_FLG location on the stack. If an # # enabled BSUN should not be flagged and the predicate is true, then # # the result is stored to the data register file or memory # # # @@ -17484,8 +17484,8 @@ ror.l &0x8,%d1 # rotate to top byte fmov.l %d1,%fpsr # insert into FPSR - mov.w (tbl_fscc.b,%pc,%d0.w*2),%d1 # load table - jmp (tbl_fscc.b,%pc,%d1.w) # jump to fscc routine + mov.w (tbl_fscc.b,%pc,%d0.w*2),%d1 # load table + jmp (tbl_fscc.b,%pc,%d1.w) # jump to fscc routine tbl_fscc: short fscc_f - tbl_fscc # 00 @@ -17585,7 +17585,7 @@ # # not greater than: # -# NANvZvN +# NANvZvN # fscc_ngt: fbngt.w fscc_ngt_yes # not greater than? @@ -17613,7 +17613,7 @@ ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit bra.w fscc_chk_bsun # go finish fscc_ge_yes: - st %d0 # set true + st %d0 # set true btst &nan_bit, FPSR_CC(%a6) # is NAN set in cc? beq.w fscc_done # no;go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit @@ -17806,7 +17806,7 @@ # fscc_sf: clr.b %d0 # set false - btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit + btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit beq.w fscc_done # no;go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit bra.w fscc_chk_bsun # go finish @@ -17818,7 +17818,7 @@ # fscc_st: st %d0 # set false - btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit + btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit beq.w fscc_done # no;go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit bra.w fscc_chk_bsun # go finish @@ -17832,13 +17832,13 @@ fbseq.w fscc_seq_yes # signalling equal? fscc_seq_no: clr.b %d0 # set false - btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit + btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit beq.w fscc_done # no;go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit bra.w fscc_chk_bsun # go finish fscc_seq_yes: st %d0 # set true - btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit + btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit beq.w fscc_done # no;go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit bra.w fscc_chk_bsun # go finish @@ -17852,13 +17852,13 @@ fbsneq.w fscc_sneq_yes # signalling equal? fscc_sneq_no: clr.b %d0 # set false - btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit + btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit beq.w fscc_done # no;go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit bra.w fscc_chk_bsun # go finish fscc_sneq_yes: st %d0 # set true - btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit + btst &nan_bit, FPSR_CC(%a6) # set BSUN exc bit beq.w fscc_done # no;go finish ori.l &bsun_mask+aiop_mask, USER_FPSR(%a6) # set BSUN exc bit bra.w fscc_chk_bsun # go finish @@ -18044,7 +18044,7 @@ ####################################################################### # -# the bsun exception bit was set. now, check to see is BSUN +# the bsun exception bit was set. now, check to see is BSUN # is enabled. if so, don't store result and correct stack frame # for a bsun exception. # @@ -18061,7 +18061,7 @@ fscc_done: mov.l %d0,%a0 # save result for a moment - mov.b 1+EXC_OPWORD(%a6),%d1 # fetch lo opword + mov.b 1+EXC_OPWORD(%a6),%d1 # fetch lo opword mov.l %d1,%d0 # make a copy andi.b &0x38,%d1 # extract src mode @@ -18075,7 +18075,7 @@ # # the stacked is correct with the exception of: -# -> Dn : is garbage +# -> Dn : is garbage # # if the addressing mode is post-increment or pre-decrement, # then the address registers have not been updated. @@ -18088,7 +18088,7 @@ mov.l %a0,%d0 # pass result in d0 mov.l EXC_EA(%a6),%a0 # fetch - bsr.l _dmem_write_byte # write result byte + bsr.l _dmem_write_byte # write result byte tst.l %d1 # did dstore fail? bne.w fscc_err # yes @@ -18159,7 +18159,7 @@ # # # INPUT *************************************************************** # # None # -# # +# # # OUTPUT ************************************************************** # # If instr is "fmovm Dn,-(A7)" from supervisor mode, # # d0 = size of dump # @@ -18181,25 +18181,25 @@ # The data register is determined and its value loaded to get the # # string of FP registers affected. This value is used as an index into # # a lookup table such that we can determine the number of bytes # -# involved. # +# involved. # # If the instruction is "fmovm.x ,Dn", a _mem_read() is used # # to read in all FP values. Again, _mem_read() may fail and require a # -# special exit. # +# special exit. # # If the instruction is "fmovm.x DN,", a _mem_write() is used # # to write all FP values. _mem_write() may also fail. # -# If the instruction is "fmovm.x DN,-(a7)" from supervisor mode, # +# If the instruction is "fmovm.x DN,-(a7)" from supervisor mode, # # then we return the size of the dump and the string to the caller # # so that the move can occur outside of this routine. This special # # case is required so that moves to the system stack are handled # # correctly. # # # # DYNAMIC: # -# fmovm.x dn, # -# fmovm.x , dn # +# fmovm.x dn, # +# fmovm.x , dn # # # # # # 1111 0010 00 || 11@& 1000 0$$$ 0000 # -# # +# # # & = (0): predecrement addressing mode # # (1): postincrement or control addressing mode # # @ = (0): move listed regs from memory to the FPU # @@ -18468,12 +18468,12 @@ byte 0x24,0x30,0x30,0x3c,0x30,0x3c,0x3c,0x48 byte 0x30,0x3c,0x3c,0x48,0x3c,0x48,0x48,0x54 byte 0x30,0x3c,0x3c,0x48,0x3c,0x48,0x48,0x54 - byte 0x3c,0x48,0x48,0x54,0x48,0x54,0x54,0x60 + byte 0x3c,0x48,0x48,0x54,0x48,0x54,0x54,0x60 # # table to convert a pre-decrement bit string into a post-increment # or control bit string. -# ex: 0x00 ==> 0x00 +# ex: 0x00 ==> 0x00 # 0x01 ==> 0x80 # 0x02 ==> 0x40 # . @@ -18555,59 +18555,59 @@ short tbl_fea_mode - tbl_fea_mode short tbl_fea_mode - tbl_fea_mode - short faddr_ind_a0 - tbl_fea_mode - short faddr_ind_a1 - tbl_fea_mode - short faddr_ind_a2 - tbl_fea_mode - short faddr_ind_a3 - tbl_fea_mode - short faddr_ind_a4 - tbl_fea_mode - short faddr_ind_a5 - tbl_fea_mode - short faddr_ind_a6 - tbl_fea_mode - short faddr_ind_a7 - tbl_fea_mode - - short faddr_ind_p_a0 - tbl_fea_mode - short faddr_ind_p_a1 - tbl_fea_mode - short faddr_ind_p_a2 - tbl_fea_mode - short faddr_ind_p_a3 - tbl_fea_mode - short faddr_ind_p_a4 - tbl_fea_mode - short faddr_ind_p_a5 - tbl_fea_mode - short faddr_ind_p_a6 - tbl_fea_mode - short faddr_ind_p_a7 - tbl_fea_mode - - short faddr_ind_m_a0 - tbl_fea_mode - short faddr_ind_m_a1 - tbl_fea_mode - short faddr_ind_m_a2 - tbl_fea_mode - short faddr_ind_m_a3 - tbl_fea_mode - short faddr_ind_m_a4 - tbl_fea_mode - short faddr_ind_m_a5 - tbl_fea_mode - short faddr_ind_m_a6 - tbl_fea_mode - short faddr_ind_m_a7 - tbl_fea_mode - - short faddr_ind_disp_a0 - tbl_fea_mode - short faddr_ind_disp_a1 - tbl_fea_mode - short faddr_ind_disp_a2 - tbl_fea_mode - short faddr_ind_disp_a3 - tbl_fea_mode - short faddr_ind_disp_a4 - tbl_fea_mode - short faddr_ind_disp_a5 - tbl_fea_mode - short faddr_ind_disp_a6 - tbl_fea_mode + short faddr_ind_a0 - tbl_fea_mode + short faddr_ind_a1 - tbl_fea_mode + short faddr_ind_a2 - tbl_fea_mode + short faddr_ind_a3 - tbl_fea_mode + short faddr_ind_a4 - tbl_fea_mode + short faddr_ind_a5 - tbl_fea_mode + short faddr_ind_a6 - tbl_fea_mode + short faddr_ind_a7 - tbl_fea_mode + + short faddr_ind_p_a0 - tbl_fea_mode + short faddr_ind_p_a1 - tbl_fea_mode + short faddr_ind_p_a2 - tbl_fea_mode + short faddr_ind_p_a3 - tbl_fea_mode + short faddr_ind_p_a4 - tbl_fea_mode + short faddr_ind_p_a5 - tbl_fea_mode + short faddr_ind_p_a6 - tbl_fea_mode + short faddr_ind_p_a7 - tbl_fea_mode + + short faddr_ind_m_a0 - tbl_fea_mode + short faddr_ind_m_a1 - tbl_fea_mode + short faddr_ind_m_a2 - tbl_fea_mode + short faddr_ind_m_a3 - tbl_fea_mode + short faddr_ind_m_a4 - tbl_fea_mode + short faddr_ind_m_a5 - tbl_fea_mode + short faddr_ind_m_a6 - tbl_fea_mode + short faddr_ind_m_a7 - tbl_fea_mode + + short faddr_ind_disp_a0 - tbl_fea_mode + short faddr_ind_disp_a1 - tbl_fea_mode + short faddr_ind_disp_a2 - tbl_fea_mode + short faddr_ind_disp_a3 - tbl_fea_mode + short faddr_ind_disp_a4 - tbl_fea_mode + short faddr_ind_disp_a5 - tbl_fea_mode + short faddr_ind_disp_a6 - tbl_fea_mode short faddr_ind_disp_a7 - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - - short fabs_short - tbl_fea_mode - short fabs_long - tbl_fea_mode - short fpc_ind - tbl_fea_mode - short fpc_ind_ext - tbl_fea_mode - short tbl_fea_mode - tbl_fea_mode - short tbl_fea_mode - tbl_fea_mode - short tbl_fea_mode - tbl_fea_mode - short tbl_fea_mode - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + + short fabs_short - tbl_fea_mode + short fabs_long - tbl_fea_mode + short fpc_ind - tbl_fea_mode + short fpc_ind_ext - tbl_fea_mode + short tbl_fea_mode - tbl_fea_mode + short tbl_fea_mode - tbl_fea_mode + short tbl_fea_mode - tbl_fea_mode + short tbl_fea_mode - tbl_fea_mode ################################### # Address register indirect: (An) # @@ -18903,7 +18903,7 @@ btst &0x8,%d0 bne.w fcalc_mem_ind - + mov.l %d0,L_SCR1(%a6) # hold opword mov.l %d0,%d1 @@ -18999,7 +18999,7 @@ btst &0x8,%d0 # is disp only 8 bits? bne.w fcalc_mem_ind # calc memory indirect - + mov.l %d0,L_SCR1(%a6) # store opword mov.l %d0,%d1 # make extword copy @@ -19076,7 +19076,7 @@ bfextu %d5{&26:&2},%d0 # get bd size # beq.l fmovm_error # if (size == 0) it's reserved - cmpi.b %d0,&0x2 + cmpi.b %d0,&0x2 blt.b fno_bd beq.b fget_word_bd @@ -19098,7 +19098,7 @@ bne.l fcea_iacc # yes ext.l %d0 # sign extend bd - + fchk_ind: add.l %d0,%d3 # base += bd @@ -19107,10 +19107,10 @@ bfextu %d5{&30:&2},%d0 # is od suppressed? beq.w faii_bd - cmpi.b %d0,&0x2 + cmpi.b %d0,&0x2 blt.b fnull_od beq.b fword_od - + mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long @@ -19118,7 +19118,7 @@ tst.l %d1 # did ifetch fail? bne.l fcea_iacc # yes - bra.b fadd_them + bra.b fadd_them fword_od: mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr @@ -19171,7 +19171,7 @@ rts ######################################################### -fcea_err: +fcea_err: mov.l %d3,%a0 movm.l (%sp)+,&0x003c # restore d2-d5 @@ -19181,7 +19181,7 @@ fcea_iacc: movm.l (%sp)+,&0x003c # restore d2-d5 bra.l iea_iacc - + fmovm_out_err: bsr.l restore mov.w &0x00e1,%d0 @@ -19197,7 +19197,7 @@ ######################################################################### # XDEF **************************************************************** # -# fmovm_ctrl(): emulate fmovm.l of control registers instr # +# fmovm_ctrl(): emulate fmovm.l of control registers instr # # # # XREF **************************************************************** # # _imem_read_long() - read longword from memory # @@ -19205,7 +19205,7 @@ # # # INPUT *************************************************************** # # None # -# # +# # # OUTPUT ************************************************************** # # If _imem_read_long() doesn't fail: # # USER_FPCR(a6) = new FPCR value # @@ -19213,14 +19213,14 @@ # USER_FPIAR(a6) = new FPIAR value # # # # ALGORITHM *********************************************************** # -# Decode the instruction type by looking at the extension word # +# Decode the instruction type by looking at the extension word # # in order to see how many control registers to fetch from memory. # # Fetch them using _imem_read_long(). If this fetch fails, exit through # # the special access error exit handler iea_iacc(). # # # # Instruction word decoding: # # # -# fmovem.l #, {FPIAR&|FPCR&|FPSR} # +# fmovem.l #, {FPIAR&|FPCR&|FPSR} # # # # WORD1 WORD2 # # 1111 0010 00 111100 100$ $$00 0000 0000 # @@ -19241,7 +19241,7 @@ beq.w fctrl_in_6 # yes cmpi.b %d0,&0x94 # fpcr & fpiar ? beq.b fctrl_in_5 # yes - + # fmovem.l #, fpsr/fpiar fctrl_in_3: mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr @@ -19340,21 +19340,21 @@ # # # INPUT *************************************************************** # # d0 = number of bytes to adjust by # -# # +# # # OUTPUT ************************************************************** # # None # # # # ALGORITHM *********************************************************** # # "Dummy" CALCulate Effective Address: # -# The stacked for FP unimplemented instructions and opclass # +# The stacked for FP unimplemented instructions and opclass # # two packed instructions is correct with the exception of... # # # # 1) -(An) : The register is not updated regardless of size. # -# Also, for extended precision and packed, the # +# Also, for extended precision and packed, the # # stacked value is 8 bytes too big # # 2) (An)+ : The register is not updated. # -# 3) # : The upper longword of the immediate operand is # -# stacked b,w,l and s sizes are completely stacked. # +# 3) # : The upper longword of the immediate operand is # +# stacked b,w,l and s sizes are completely stacked. # # d,x, and p are not. # # # ######################################################################### @@ -19390,8 +19390,8 @@ lea ([USER_FPIAR,%a6],0x4),%a0 # no; return rts -# here, the is stacked correctly. however, we must update the -# address register... +# here, the is stacked correctly. however, we must update the +# address register... dcea_pi: mov.l %a0,%d0 # pass amt to inc by bsr.l inc_areg # inc addr register @@ -19399,7 +19399,7 @@ mov.l EXC_EA(%a6),%a0 # stacked is correct rts -# the is stacked correctly for all but extended and packed which +# the is stacked correctly for all but extended and packed which # the s are 8 bytes too large. # it would make no sense to have a pre-decrement to a7 in supervisor # mode so we don't even worry about this tricky case here : ) @@ -19419,7 +19419,7 @@ ######################################################################### # XDEF **************************************************************** # -# _calc_ea_fout(): calculate correct stacked for extended # +# _calc_ea_fout(): calculate correct stacked for extended # # and packed data opclass 3 operations. # # # # XREF **************************************************************** # @@ -19427,22 +19427,22 @@ # # # INPUT *************************************************************** # # None # -# # +# # # OUTPUT ************************************************************** # # a0 = return correct effective address # # # # ALGORITHM *********************************************************** # # For opclass 3 extended and packed data operations, the # # stacked for the exception is incorrect for -(an) and (an)+ addressing # -# modes. Also, while we're at it, the index register itself must get # +# modes. Also, while we're at it, the index register itself must get # # updated. # -# So, for -(an), we must subtract 8 off of the stacked value # +# So, for -(an), we must subtract 8 off of the stacked value # # and return that value as the correct and store that value in An. # # For (an)+, the stacked is correct but we must adjust An by +12. # # # ######################################################################### -# This calc_ea is currently used to retrieve the correct +# This calc_ea is currently used to retrieve the correct # for fmove outs of type extended and packed. global _calc_ea_fout _calc_ea_fout: @@ -19463,7 +19463,7 @@ # (An)+ : extended and packed fmove out # : stacked is correct -# : "An" not updated +# : "An" not updated ceaf_pi: mov.w (tbl_ceaf_pi.b,%pc,%d1.w*2),%d1 mov.l EXC_EA(%a6),%a0 @@ -19574,31 +19574,31 @@ # # # INPUT *************************************************************** # # None # -# # +# # # OUTPUT ************************************************************** # # If memory access doesn't fail: # # FP_SRC(a6) = source operand in extended precision # -# FP_DST(a6) = destination operand in extended precision # +# FP_DST(a6) = destination operand in extended precision # # # # ALGORITHM *********************************************************** # -# This is called from the Unimplemented FP exception handler in # +# This is called from the Unimplemented FP exception handler in # # order to load the source and maybe destination operand into # # FP_SRC(a6) and FP_DST(a6). If the instruction was opclass zero, load # # the source and destination from the FP register file. Set the optype # # tags for both if dyadic, one for monadic. If a number is an UNNORM, # # convert it to a DENORM or a ZERO. # -# If the instruction is opclass two (memory->reg), then fetch # -# the destination from the register file and the source operand from # +# If the instruction is opclass two (memory->reg), then fetch # +# the destination from the register file and the source operand from # # memory. Tag and fix both as above w/ opclass zero instructions. # -# If the source operand is byte,word,long, or single, it may be # +# If the source operand is byte,word,long, or single, it may be # # in the data register file. If it's actually out in memory, use one of # # the mem_read() routines to fetch it. If the mem_read() access returns # # a failing value, exit through the special facc_in() routine which # # will create an access error exception frame from the current exception # # frame. # -# Immediate data and regular data accesses are separated because # +# Immediate data and regular data accesses are separated because # # if an immediate data access fails, the resulting fault status # -# longword stacked for the access error exception must have the # +# longword stacked for the access error exception must have the # # instruction bit set. # # # ######################################################################### @@ -19644,7 +19644,7 @@ cmpi.b %d0, &UNNORM # is dst fpreg an UNNORM? beq.b op000_dst_unnorm # yes op000_dst_cont: - mov.b %d0, DTAG(%a6) # store the dst optype tag + mov.b %d0, DTAG(%a6) # store the dst optype tag op000_src: bfextu EXC_CMDREG(%a6){&3:&3}, %d0 # extract src field @@ -19709,7 +19709,7 @@ swbeg &0x8 tbl_op010_dreg: short opd_long - tbl_op010_dreg - short opd_sgl - tbl_op010_dreg + short opd_sgl - tbl_op010_dreg short tbl_op010_dreg - tbl_op010_dreg short tbl_op010_dreg - tbl_op010_dreg short opd_word - tbl_op010_dreg @@ -19722,7 +19722,7 @@ # opd_long: bsr.l fetch_dreg # fetch long in d0 - fmov.l %d0, %fp0 # load a long + fmov.l %d0, %fp0 # load a long fmovm.x &0x80, FP_SRC(%a6) # return src op in FP_SRC fbeq.w opd_long_zero # long is a ZERO rts @@ -19735,7 +19735,7 @@ # opd_word: bsr.l fetch_dreg # fetch word in d0 - fmov.w %d0, %fp0 # load a word + fmov.w %d0, %fp0 # load a word fmovm.x &0x80, FP_SRC(%a6) # return src op in FP_SRC fbeq.w opd_word_zero # WORD is a ZERO rts @@ -19748,7 +19748,7 @@ # opd_byte: bsr.l fetch_dreg # fetch word in d0 - fmov.b %d0, %fp0 # load a byte + fmov.b %d0, %fp0 # load a byte fmovm.x &0x80, FP_SRC(%a6) # return src op in FP_SRC fbeq.w opd_byte_zero # byte is a ZERO rts @@ -19766,7 +19766,7 @@ bsr.l fetch_dreg # fetch sgl in d0 mov.l %d0,L_SCR1(%a6) - lea L_SCR1(%a6), %a0 # pass: ptr to the sgl + lea L_SCR1(%a6), %a0 # pass: ptr to the sgl bsr.l set_tag_s # determine sgl type mov.b %d0, STAG(%a6) # save the src tag @@ -19813,7 +19813,7 @@ ######################################### # load a LONG into %fp0: # -# -number can't fault # +# -number can't fault # # (1) calc ea # # (2) read 4 bytes into L_SCR1 # # (3) fmov.l into %fp0 # @@ -19849,7 +19849,7 @@ ######################################### # load a WORD into %fp0: # -# -number can't fault # +# -number can't fault # # (1) calc ea # # (2) read 2 bytes into L_SCR1 # # (3) fmov.w into %fp0 # @@ -19885,7 +19885,7 @@ ######################################### # load a BYTE into %fp0: # -# -number can't fault # +# -number can't fault # # (1) calc ea # # (2) read 1 byte into L_SCR1 # # (3) fmov.b into %fp0 # @@ -19921,7 +19921,7 @@ ######################################### # load a SGL into %fp0: # -# -number can't fault # +# -number can't fault # # (1) calc ea # # (2) read 4 bytes into L_SCR1 # # (3) fmov.s into %fp0 # @@ -19961,7 +19961,7 @@ bne.l funimp_iacc # yes bra.b load_sgl_cont -# must convert sgl denorm format to an Xprec denorm fmt suitable for +# must convert sgl denorm format to an Xprec denorm fmt suitable for # normalization... # %a0 : points to sgl denorm get_sgl_denorm: @@ -20003,7 +20003,7 @@ ######################################### # load a DBL into %fp0: # -# -number can't fault # +# -number can't fault # # (1) calc ea # # (2) read 8 bytes into L_SCR(1,2)# # (3) fmov.d into %fp0 # @@ -20046,7 +20046,7 @@ bne.l funimp_iacc # yes bra.b load_dbl_cont -# must convert dbl denorm format to an Xprec denorm fmt suitable for +# must convert dbl denorm format to an Xprec denorm fmt suitable for # normalization... # %a0 : loc. of dbl denorm get_dbl_denorm: @@ -20092,7 +20092,7 @@ ################################################# # load a Xprec into %fp0: # -# -number can't fault # +# -number can't fault # # (1) calc ea # # (2) read 12 bytes into L_SCR(1,2) # # (3) fmov.x into %fp0 # @@ -20124,7 +20124,7 @@ ################################################# # load a packed into %fp0: # -# -number can't fault # +# -number can't fault # # (1) calc ea # # (2) read 12 bytes into L_SCR(1,2,3) # # (3) fmov.x into %fp0 # @@ -20143,11 +20143,11 @@ load_packed_unnorm: bsr.l unnorm_fix # fix the UNNORM ZERO mov.b %d0,STAG(%a6) # store the src optype tag - rts + rts ######################################################################### # XDEF **************************************************************** # -# fout(): move from fp register to memory or data register # +# fout(): move from fp register to memory or data register # # # # XREF **************************************************************** # # _round() - needed to create EXOP for sgl/dbl precision # @@ -20167,7 +20167,7 @@ # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # # d0 = round prec,mode # -# # +# # # OUTPUT ************************************************************** # # fp0 : intermediate underflow or overflow result if # # OVFL/UNFL occurred for a sgl or dbl operand # @@ -20186,9 +20186,9 @@ # w/ the address index register as appropriate w/ _calc_ea_fout(). If # # the source is a denorm and if underflow is enabled, an EXOP must be # # created. # -# For packed, the k-factor must be fetched from the instruction # -# word or a data register. The must be fixed as w/ extended # -# precision. Then, bindec() is called to create the appropriate # +# For packed, the k-factor must be fetched from the instruction # +# word or a data register. The must be fixed as w/ extended # +# precision. Then, bindec() is called to create the appropriate # # packed result. # # If at any time an access error is flagged by one of the move- # # to-memory routines, then a special exit must be made so that the # @@ -20304,7 +20304,7 @@ ori.l &0x00800000,%d1 # make smallest sgl fmov.s %d1,%fp0 bra.b fout_word_norm - + ################################################################# # fmove.l out ################################################### ################################################################# @@ -20378,7 +20378,7 @@ mov.l &0xc,%d0 # pass: opsize is 12 bytes # we must not yet write the extended precision data to the stack -# in the pre-decrement case from supervisor mode or else we'll corrupt +# in the pre-decrement case from supervisor mode or else we'll corrupt # the stack frame. so, leave it in FP_SRC for now and deal with it later... cmpi.b SPCOND_FLG(%a6),&mda7_flg beq.b fout_ext_a7 @@ -20465,7 +20465,7 @@ fmov.l &0x0,%fpcr # clear FPCR fmov.l %fpsr,%d1 # save FPSR - or.w %d1,2+USER_FPSR(%a6) # set possible inex2/ainex + or.w %d1,2+USER_FPSR(%a6) # set possible inex2/ainex fout_sgl_exg_write: mov.b 1+EXC_OPWORD(%a6),%d1 # extract dst mode @@ -20506,7 +20506,7 @@ lea FP_SCR0(%a6),%a0 bsr.l norm # normalize the DENORM - + fout_sgl_unfl_cont: lea FP_SCR0(%a6),%a0 # pass: ptr to operand mov.l L_SCR3(%a6),%d1 # pass: rnd prec,mode @@ -20557,7 +20557,7 @@ # call ovf_res() w/ sgl prec and the correct rnd mode to create the default # overflow result. DON'T save the returned ccodes from ovf_res() since -# fmove out doesn't alter them. +# fmove out doesn't alter them. tst.b SRC_EX(%a0) # is operand negative? smi %d1 # set if so mov.l L_SCR3(%a6),%d0 # pass: sgl prec,rnd mode @@ -20612,7 +20612,7 @@ fabs.x %fp0 # need absolute value fcmp.b %fp0,&0x2 # did exponent increase? - fblt.w fout_sgl_exg # no; go finish NORM + fblt.w fout_sgl_exg # no; go finish NORM bra.w fout_sgl_ovfl # yes; go handle overflow ################ @@ -20703,7 +20703,7 @@ fmov.l &0x0,%fpcr # clear FPCR fmov.l %fpsr,%d0 # save FPSR - or.w %d0,2+USER_FPSR(%a6) # set possible inex2/ainex + or.w %d0,2+USER_FPSR(%a6) # set possible inex2/ainex mov.l EXC_EA(%a6),%a1 # pass: dst addr lea L_SCR1(%a6),%a0 # pass: src addr @@ -20713,7 +20713,7 @@ tst.l %d1 # did dstore fail? bne.l facc_out_d # yes - rts # no; so we're finished + rts # no; so we're finished # # here, we know that the operand would UNFL if moved out to double prec, @@ -20735,7 +20735,7 @@ lea FP_SCR0(%a6),%a0 bsr.l norm # normalize the DENORM - + fout_dbl_unfl_cont: lea FP_SCR0(%a6),%a0 # pass: ptr to operand mov.l L_SCR3(%a6),%d1 # pass: rnd prec,mode @@ -20778,7 +20778,7 @@ # call ovf_res() w/ dbl prec and the correct rnd mode to create the default # overflow result. DON'T save the returned ccodes from ovf_res() since -# fmove out doesn't alter them. +# fmove out doesn't alter them. tst.b SRC_EX(%a0) # is operand negative? smi %d1 # set if so mov.l L_SCR3(%a6),%d0 # pass: dbl prec,rnd mode @@ -20823,19 +20823,19 @@ fabs.x %fp0 # need absolute value fcmp.b %fp0,&0x2 # did exponent increase? - fblt.w fout_dbl_exg # no; go finish NORM + fblt.w fout_dbl_exg # no; go finish NORM bra.w fout_dbl_ovfl # yes; go handle overflow ######################################################################### # XDEF **************************************************************** # -# dst_dbl(): create double precision value from extended prec. # +# dst_dbl(): create double precision value from extended prec. # # # # XREF **************************************************************** # # None # # # # INPUT *************************************************************** # # a0 = pointer to source operand in extended precision # -# # +# # # OUTPUT ************************************************************** # # d0 = hi(double precision result) # # d1 = lo(double precision result) # @@ -20849,18 +20849,18 @@ # get rid of ext integer bit # # dbl_mant = ext_mant{62:12} # # # -# --------------- --------------- --------------- # +# --------------- --------------- --------------- # # extended -> |s| exp | |1| ms mant | | ls mant | # -# --------------- --------------- --------------- # -# 95 64 63 62 32 31 11 0 # +# --------------- --------------- --------------- # +# 95 64 63 62 32 31 11 0 # # | | # # | | # # | | # -# v v # -# --------------- --------------- # -# double -> |s|exp| mant | | mant | # -# --------------- --------------- # -# 63 51 32 31 0 # +# v v # +# --------------- --------------- # +# double -> |s|exp| mant | | mant | # +# --------------- --------------- # +# 63 51 32 31 0 # # # ######################################################################### @@ -20896,13 +20896,13 @@ ######################################################################### # XDEF **************************************************************** # -# dst_sgl(): create single precision value from extended prec # +# dst_sgl(): create single precision value from extended prec # # # # XREF **************************************************************** # # # # INPUT *************************************************************** # # a0 = pointer to source operand in extended precision # -# # +# # # OUTPUT ************************************************************** # # d0 = single precision result # # # @@ -20914,18 +20914,18 @@ # get rid of ext integer bit # # sgl_mant = ext_mant{62:12} # # # -# --------------- --------------- --------------- # +# --------------- --------------- --------------- # # extended -> |s| exp | |1| ms mant | | ls mant | # -# --------------- --------------- --------------- # -# 95 64 63 62 40 32 31 12 0 # +# --------------- --------------- --------------- # +# 95 64 63 62 40 32 31 12 0 # # | | # # | | # # | | # -# v v # -# --------------- # -# single -> |s|exp| mant | # -# --------------- # -# 31 22 0 # +# v v # +# --------------- # +# single -> |s|exp| mant | # +# --------------- # +# 31 22 0 # # # ######################################################################### @@ -20998,7 +20998,7 @@ # add the extra condition that only if the k-factor was zero, too, should # we zero the exponent tst.l %d0 - bne.b fout_pack_set + bne.b fout_pack_set # "mantissa" is all zero which means that the answer is zero. but, the '040 # algorithm allows the exponent to be non-zero. the 881/2 do not. therefore, # if the mantissa is zero, I will zero the exponent, too. @@ -21057,13 +21057,13 @@ # # # INPUT *************************************************************** # # d1 = index of register to fetch from # -# # +# # # OUTPUT ************************************************************** # # d0 = value of register fetched # # # # ALGORITHM *********************************************************** # -# According to the index value in d1 which can range from zero # -# to fifteen, load the corresponding register file value (where # +# According to the index value in d1 which can range from zero # +# to fifteen, load the corresponding register file value (where # # address register indexes start at 8). D0/D1/A0/A1/A6/A7 are on the # # stack. The rest should still be in their original places. # # # @@ -21152,7 +21152,7 @@ # INPUT *************************************************************** # # d0 = longowrd value to store # # d1 = index of register to fetch from # -# # +# # # OUTPUT ************************************************************** # # (data register is updated) # # # @@ -21213,7 +21213,7 @@ # INPUT *************************************************************** # # d0 = word value to store # # d1 = index of register to fetch from # -# # +# # # OUTPUT ************************************************************** # # (data register is updated) # # # @@ -21274,7 +21274,7 @@ # INPUT *************************************************************** # # d0 = byte value to store # # d1 = index of register to fetch from # -# # +# # # OUTPUT ************************************************************** # # (data register is updated) # # # @@ -21335,16 +21335,16 @@ # INPUT *************************************************************** # # d0 = amount to increment by # # d1 = index of address register to increment # -# # +# # # OUTPUT ************************************************************** # # (address register is updated) # # # # ALGORITHM *********************************************************** # -# Typically used for an instruction w/ a post-increment , # +# Typically used for an instruction w/ a post-increment , # # this routine adds the increment value in d0 to the address register # # specified by d1. A0/A1/A6/A7 reside on the stack. The rest reside # # in their original places. # -# For a7, if the increment amount is one, then we have to # +# For a7, if the increment amount is one, then we have to # # increment by two. For any a7 update, set the mia7_flag so that if # # an access error exception occurs later in emulation, this address # # register update can be undone. # @@ -21399,16 +21399,16 @@ # INPUT *************************************************************** # # d0 = amount to decrement by # # d1 = index of address register to decrement # -# # +# # # OUTPUT ************************************************************** # # (address register is updated) # # # # ALGORITHM *********************************************************** # -# Typically used for an instruction w/ a pre-decrement , # +# Typically used for an instruction w/ a pre-decrement , # # this routine adds the decrement value in d0 to the address register # # specified by d1. A0/A1/A6/A7 reside on the stack. The rest reside # # in their original places. # -# For a7, if the decrement amount is one, then we have to # +# For a7, if the decrement amount is one, then we have to # # decrement by two. For any a7 update, set the mda7_flag so that if # # an access error exception occurs later in emulation, this address # # register update can be undone. # @@ -21464,17 +21464,17 @@ # # # INPUT *************************************************************** # # d0 = index of FP register to load # -# # +# # # OUTPUT ************************************************************** # # FP_SRC(a6) = value loaded from FP register file # # # # ALGORITHM *********************************************************** # -# Using the index in d0, load FP_SRC(a6) with a number from the # +# Using the index in d0, load FP_SRC(a6) with a number from the # # FP register file. # # # ######################################################################### - global load_fpn1 + global load_fpn1 load_fpn1: mov.w (tbl_load_fpn1.b,%pc,%d0.w*2), %d0 jmp (tbl_load_fpn1.b,%pc,%d0.w*1) @@ -21537,12 +21537,12 @@ # # # INPUT *************************************************************** # # d0 = index of FP register to load # -# # +# # # OUTPUT ************************************************************** # # FP_DST(a6) = value loaded from FP register file # # # # ALGORITHM *********************************************************** # -# Using the index in d0, load FP_DST(a6) with a number from the # +# Using the index in d0, load FP_DST(a6) with a number from the # # FP register file. # # # ######################################################################### @@ -21603,7 +21603,7 @@ ######################################################################### # XDEF **************************************************************** # -# store_fpreg(): store an fp value to the fpreg designated d0. # +# store_fpreg(): store an fp value to the fpreg designated d0. # # # # XREF **************************************************************** # # None # @@ -21611,7 +21611,7 @@ # INPUT *************************************************************** # # fp0 = extended precision value to store # # d0 = index of floating-point register # -# # +# # # OUTPUT ************************************************************** # # None # # # @@ -21644,33 +21644,33 @@ fmovm.x &0x80, EXC_FP1(%a6) rts store_fpreg_2: - fmovm.x &0x01, -(%sp) + fmovm.x &0x01, -(%sp) fmovm.x (%sp)+, &0x20 rts store_fpreg_3: - fmovm.x &0x01, -(%sp) + fmovm.x &0x01, -(%sp) fmovm.x (%sp)+, &0x10 rts store_fpreg_4: - fmovm.x &0x01, -(%sp) + fmovm.x &0x01, -(%sp) fmovm.x (%sp)+, &0x08 rts store_fpreg_5: - fmovm.x &0x01, -(%sp) + fmovm.x &0x01, -(%sp) fmovm.x (%sp)+, &0x04 rts store_fpreg_6: - fmovm.x &0x01, -(%sp) + fmovm.x &0x01, -(%sp) fmovm.x (%sp)+, &0x02 rts store_fpreg_7: - fmovm.x &0x01, -(%sp) + fmovm.x &0x01, -(%sp) fmovm.x (%sp)+, &0x01 rts ######################################################################### # XDEF **************************************************************** # -# _denorm(): denormalize an intermediate result # +# _denorm(): denormalize an intermediate result # # # # XREF **************************************************************** # # None # @@ -21678,7 +21678,7 @@ # INPUT *************************************************************** # # a0 = points to the operand to be denormalized # # (in the internal extended format) # -# # +# # # d0 = rounding precision # # # # OUTPUT ************************************************************** # @@ -21688,10 +21688,10 @@ # d0 = guard,round,sticky # # # # ALGORITHM *********************************************************** # -# According to the exponent underflow threshold for the given # +# According to the exponent underflow threshold for the given # # precision, shift the mantissa bits to the right in order raise the # -# exponent of the operand to the threshold value. While shifting the # -# mantissa bits right, maintain the value of the guard, round, and # +# exponent of the operand to the threshold value. While shifting the # +# mantissa bits right, maintain the value of the guard, round, and # # sticky bits. # # other notes: # # (1) _denorm() is called by the underflow routines # @@ -21711,7 +21711,7 @@ _denorm: # # Load the exponent threshold for the precision selected and check -# to see if (threshold - exponent) is > 65 in which case we can +# to see if (threshold - exponent) is > 65 in which case we can # simply calculate the sticky bit and zero the mantissa. otherwise # we have to call the denormalization routine. # @@ -21750,7 +21750,7 @@ # %d0{31:29} : initial guard,round,sticky # # %d1{15:0} : denormalization threshold # # OUTPUT: # -# %a0 : points to the denormalized operand # +# %a0 : points to the denormalized operand # # %d0{31:29} : final guard,round,sticky # # # @@ -21770,7 +21770,7 @@ # # check to see how much less than the underflow threshold the operand -# exponent is. +# exponent is. # mov.l %d1, %d0 # copy the denorm threshold sub.w FTEMP_EX(%a0), %d1 # d1 = threshold - uns exponent @@ -21785,7 +21785,7 @@ # No normalization necessary # dnrm_no_lp: - mov.l GRS(%a6), %d0 # restore original g,r,s + mov.l GRS(%a6), %d0 # restore original g,r,s rts # @@ -21795,7 +21795,7 @@ # %d1 = "n" = amt to shift # # --------------------------------------------------------- -# | FTEMP_HI | FTEMP_LO |grs000.........000| +# | FTEMP_HI | FTEMP_LO |grs000.........000| # --------------------------------------------------------- # <-(32 - n)-><-(n)-><-(32 - n)-><-(n)-><-(32 - n)-><-(n)-> # \ \ \ \ @@ -21806,7 +21806,7 @@ # \ \ \ \ # \ \ \ \ # \ \ \ \ -# <-(n)-><-(32 - n)-><------(32)-------><------(32)-------> +# <-(n)-><-(32 - n)-><------(32)-------><------(32)-------> # --------------------------------------------------------- # |0.....0| NEW_HI | NEW_FTEMP_LO |grs | # --------------------------------------------------------- @@ -21847,17 +21847,17 @@ # %d1 = "n" = amt to shift # # --------------------------------------------------------- -# | FTEMP_HI | FTEMP_LO |grs000.........000| +# | FTEMP_HI | FTEMP_LO |grs000.........000| # --------------------------------------------------------- # <-(32 - n)-><-(n)-><-(32 - n)-><-(n)-><-(32 - n)-><-(n)-> # \ \ \ # \ \ \ # \ \ ------------------- # \ -------------------- \ -# ------------------- \ \ -# \ \ \ -# \ \ \ -# \ \ \ +# ------------------- \ \ +# \ \ \ +# \ \ \ +# \ \ \ # <-------(32)------><-(n)-><-(32 - n)-><------(32)-------> # --------------------------------------------------------- # |0...............0|0....0| NEW_LO |grs | @@ -21928,17 +21928,17 @@ # case (d1 == 64) # # --------------------------------------------------------- -# | FTEMP_HI | FTEMP_LO |grs000.........000| +# | FTEMP_HI | FTEMP_LO |grs000.........000| # --------------------------------------------------------- # <-------(32)------> -# \ \ -# \ \ -# \ \ -# \ ------------------------------ +# \ \ +# \ \ +# \ \ +# \ ------------------------------ # ------------------------------- \ -# \ \ -# \ \ -# \ \ +# \ \ +# \ \ +# \ \ # <-------(32)------> # --------------------------------------------------------- # |0...............0|0................0|grs | @@ -21956,17 +21956,17 @@ # case (d1 == 65) # # --------------------------------------------------------- -# | FTEMP_HI | FTEMP_LO |grs000.........000| +# | FTEMP_HI | FTEMP_LO |grs000.........000| # --------------------------------------------------------- # <-------(32)------> -# \ \ -# \ \ -# \ \ -# \ ------------------------------ +# \ \ +# \ \ +# \ \ +# \ ------------------------------ # -------------------------------- \ -# \ \ -# \ \ -# \ \ +# \ \ +# \ \ +# \ \ # <-------(31)-----> # --------------------------------------------------------- # |0...............0|0................0|0rs | @@ -22014,7 +22014,7 @@ # None # # # # INPUT *************************************************************** # -# a0 = ptr to input operand in internal extended format # +# a0 = ptr to input operand in internal extended format # # d1(hi) = contains rounding precision: # # ext = $0000xxxx # # sgl = $0004xxxx # @@ -22045,7 +22045,7 @@ # # ext_grs() looks at the rounding precision and sets the appropriate # G,R,S bits. -# If (G,R,S == 0) then result is exact and round is done, else set +# If (G,R,S == 0) then result is exact and round is done, else set # the inex flag in status reg and continue. # bsr.l ext_grs # extract G,R,S @@ -22091,7 +22091,7 @@ # If sign of fp number = 1 (negative), then add 1 to l. # ################################################################# rnd_mnus: - tst.b FTEMP_SGN(%a0) # check for sign + tst.b FTEMP_SGN(%a0) # check for sign bpl.w truncate # if negative then truncate mov.l &0xffffffff, %d0 # force g,r,s to be all f's @@ -22202,7 +22202,7 @@ # # INPUT # d0 = extended precision g,r,s (in d0{31:29}) -# d1 = {PREC,ROUND} +# d1 = {PREC,ROUND} # OUTPUT # d0{31:29} = guard, round, sticky # @@ -22253,7 +22253,7 @@ mov.l &30, %d2 # of the sgl prec. limits lsl.l %d2, %d3 # shift g-r bits to MSB of d3 mov.l FTEMP_HI(%a0), %d2 # get word 2 for s-bit test - and.l &0x0000003f, %d2 # s bit is the or of all other + and.l &0x0000003f, %d2 # s bit is the or of all other bne.b ext_grs_st_stky # bits to the right of g-r tst.l FTEMP_LO(%a0) # test lower mantissa bne.b ext_grs_st_stky # if any are set, set sticky @@ -22263,9 +22263,9 @@ # # dbl: -# 96 64 32 11 0 +# 96 64 32 11 0 # ----------------------------------------------------- -# | EXP |XXXXXXX| | |xx |grs| +# | EXP |XXXXXXX| | |xx |grs| # ----------------------------------------------------- # nn\ / # ee ------- @@ -22278,7 +22278,7 @@ mov.l &30, %d2 # of the dbl prec. limits lsl.l %d2, %d3 # shift g-r bits to the MSB of d3 mov.l FTEMP_LO(%a0), %d2 # get lower mantissa for s-bit test - and.l &0x000001ff, %d2 # s bit is the or-ing of all + and.l &0x000001ff, %d2 # s bit is the or-ing of all bne.b ext_grs_st_stky # other bits to the right of g-r tst.l %d0 # test word original g,r,s bne.b ext_grs_st_stky # if any are set, set sticky @@ -22308,7 +22308,7 @@ # a0 = pointer fp extended precision operand to normalize # # # # OUTPUT ************************************************************** # -# d0 = number of bit positions the mantissa was shifted # +# d0 = number of bit positions the mantissa was shifted # # a0 = the input operand's mantissa is normalized; the exponent # # is unchanged. # # # @@ -22335,7 +22335,7 @@ mov.l %d1, FTEMP_LO(%a0) # store new lo(man) mov.l %d2, %d0 # return shift amount - + mov.l (%sp)+, %d3 # restore temp regs mov.l (%sp)+, %d2 @@ -22350,7 +22350,7 @@ clr.l FTEMP_LO(%a0) # lo(man) is now zero mov.l %d2, %d0 # return shift amount - + mov.l (%sp)+, %d3 # restore temp regs mov.l (%sp)+, %d2 @@ -22455,27 +22455,27 @@ # whole mantissa is zero so this UNNORM is actually a zero # unnorm_zero: - and.w &0x8000, FTEMP_EX(%a0) # force exponent to zero + and.w &0x8000, FTEMP_EX(%a0) # force exponent to zero mov.b &ZERO, %d0 # fix optype tag rts ######################################################################### # XDEF **************************************************************** # -# set_tag_x(): return the optype of the input ext fp number # +# set_tag_x(): return the optype of the input ext fp number # # # # XREF **************************************************************** # # None # # # # INPUT *************************************************************** # # a0 = pointer to extended precision operand # -# # +# # # OUTPUT ************************************************************** # # d0 = value of type tag # -# one of: NORM, INF, QNAN, SNAN, DENORM, UNNORM, ZERO # +# one of: NORM, INF, QNAN, SNAN, DENORM, UNNORM, ZERO # # # # ALGORITHM *********************************************************** # -# Simply test the exponent, j-bit, and mantissa values to # +# Simply test the exponent, j-bit, and mantissa values to # # determine the type of operand. # # If it's an unnormalized zero, alter the operand and force it # # to be a normal zero. # @@ -22542,20 +22542,20 @@ ######################################################################### # XDEF **************************************************************** # -# set_tag_d(): return the optype of the input dbl fp number # +# set_tag_d(): return the optype of the input dbl fp number # # # # XREF **************************************************************** # # None # # # # INPUT *************************************************************** # # a0 = points to double precision operand # -# # +# # # OUTPUT ************************************************************** # # d0 = value of type tag # -# one of: NORM, INF, QNAN, SNAN, DENORM, ZERO # +# one of: NORM, INF, QNAN, SNAN, DENORM, ZERO # # # # ALGORITHM *********************************************************** # -# Simply test the exponent, j-bit, and mantissa values to # +# Simply test the exponent, j-bit, and mantissa values to # # determine the type of operand. # # # ######################################################################### @@ -22605,20 +22605,20 @@ ######################################################################### # XDEF **************************************************************** # -# set_tag_s(): return the optype of the input sgl fp number # +# set_tag_s(): return the optype of the input sgl fp number # # # # XREF **************************************************************** # # None # # # # INPUT *************************************************************** # # a0 = pointer to single precision operand # -# # +# # # OUTPUT ************************************************************** # # d0 = value of type tag # -# one of: NORM, INF, QNAN, SNAN, DENORM, ZERO # +# one of: NORM, INF, QNAN, SNAN, DENORM, ZERO # # # # ALGORITHM *********************************************************** # -# Simply test the exponent, j-bit, and mantissa values to # +# Simply test the exponent, j-bit, and mantissa values to # # determine the type of operand. # # # ######################################################################### @@ -22664,15 +22664,15 @@ ######################################################################### # XDEF **************************************************************** # -# unf_res(): routine to produce default underflow result of a # -# scaled extended precision number; this is used by # +# unf_res(): routine to produce default underflow result of a # +# scaled extended precision number; this is used by # # fadd/fdiv/fmul/etc. emulation routines. # -# unf_res4(): same as above but for fsglmul/fsgldiv which use # +# unf_res4(): same as above but for fsglmul/fsgldiv which use # # single round prec and extended prec mode. # # # # XREF **************************************************************** # # _denorm() - denormalize according to scale factor # -# _round() - round denormalized number according to rnd prec # +# _round() - round denormalized number according to rnd prec # # # # INPUT *************************************************************** # # a0 = pointer to extended precison operand # @@ -22684,15 +22684,15 @@ # d0.b = result FPSR_cc which caller may or may not want to save # # # # ALGORITHM *********************************************************** # -# Convert the input operand to "internal format" which means the # +# Convert the input operand to "internal format" which means the # # exponent is extended to 16 bits and the sign is stored in the unused # # portion of the extended precison operand. Denormalize the number # -# according to the scale factor passed in d0. Then, round the # +# according to the scale factor passed in d0. Then, round the # # denormalized result. # -# Set the FPSR_exc bits as appropriate but return the cc bits in # +# Set the FPSR_exc bits as appropriate but return the cc bits in # # d0 in case the caller doesn't want to save them (as is the case for # # fmove out). # -# unf_res4() for fsglmul/fsgldiv forces the denorm to extended # +# unf_res4() for fsglmul/fsgldiv forces the denorm to extended # # precision and the rounding mode to single. # # # ######################################################################### @@ -22830,23 +22830,23 @@ # none # # # # INPUT *************************************************************** # -# d1.b = '-1' => (-); '0' => (+) # +# d1.b = '-1' => (-); '0' => (+) # # ovf_res(): # -# d0 = rnd mode/prec # +# d0 = rnd mode/prec # # ovf_res2(): # -# hi(d0) = rnd prec # +# hi(d0) = rnd prec # # lo(d0) = rnd mode # # # # OUTPUT ************************************************************** # -# a0 = points to extended precision result # -# d0.b = condition code bits # +# a0 = points to extended precision result # +# d0.b = condition code bits # # # # ALGORITHM *********************************************************** # # The default overflow result can be determined by the sign of # # the result and the rounding mode/prec in effect. These bits are # -# concatenated together to create an index into the default result # +# concatenated together to create an index into the default result # # table. A pointer to the correct result is returned in a0. The # -# resulting condition codes are returned in d0 in case the caller # +# resulting condition codes are returned in d0 in case the caller # # doesn't want FPSR_cc altered (as is the case for fmove out). # # # ######################################################################### @@ -22876,7 +22876,7 @@ ovf_res_load: mov.b (tbl_ovfl_cc.b,%pc,%d0.w*1), %d0 # fetch result ccodes lea (tbl_ovfl_result.b,%pc,%d1.w*8), %a0 # return result ptr - + rts tbl_ovfl_cc: @@ -22937,18 +22937,18 @@ # # # INPUT *************************************************************** # # None # -# # +# # # OUTPUT ************************************************************** # # If no failure on _mem_read(): # -# FP_SRC(a6) = packed operand now as a binary FP number # +# FP_SRC(a6) = packed operand now as a binary FP number # # # # ALGORITHM *********************************************************** # -# Get the correct whihc is the value on the exception stack # +# Get the correct whihc is the value on the exception stack # # frame w/ maybe a correction factor if the is -(an) or (an)+. # # Then, fetch the operand from memory. If the fetch fails, exit # # through facc_in_x(). # # If the packed operand is a ZERO,NAN, or INF, convert it to # -# its binary representation here. Else, call decbin() which will # +# its binary representation here. Else, call decbin() which will # # convert the packed value to an extended precision binary value. # # # ######################################################################### @@ -23005,7 +23005,7 @@ # and NaN operands are dispatched without entering this routine) # # value in 68881/882 format at location (a0). # # # -# A1. Convert the bcd exponent to binary by successive adds and # +# A1. Convert the bcd exponent to binary by successive adds and # # muls. Set the sign according to SE. Subtract 16 to compensate # # for the mantissa which is to be interpreted as 17 integer # # digits, rather than 1 integer and 16 fraction digits. # @@ -23069,7 +23069,7 @@ global decbin decbin: - mov.l 0x0(%a0),FP_SCR0_EX(%a6) # make a copy of input + mov.l 0x0(%a0),FP_SCR0_EX(%a6) # make a copy of input mov.l 0x4(%a0),FP_SCR0_HI(%a6) # so we don't alter it mov.l 0x8(%a0),FP_SCR0_LO(%a6) @@ -23358,7 +23358,7 @@ # # Pwrten calculates the exponent factor in the selected rounding mode # according to the following table: -# +# # Sign of Mant Sign of Exp Rounding Mode PWRTEN Rounding Mode # # ANY ANY RN RN @@ -23446,7 +23446,7 @@ # it will be inex2, but will be reported as inex1 by get_op. # end_dec: - fmov.l %fpsr,%d0 # get status register + fmov.l %fpsr,%d0 # get status register bclr &inex2_bit+8,%d0 # test for inex2 and clear it beq.b no_exc # skip this if no exc ori.w &inx1a_mask,2+USER_FPSR(%a6) # set INEX1/AINEX @@ -23463,16 +23463,16 @@ # # # INPUT *************************************************************** # # a0 = pointer to the input extended precision value in memory. # -# the input may be either normalized, unnormalized, or # +# the input may be either normalized, unnormalized, or # # denormalized. # -# d0 = contains the k-factor sign-extended to 32-bits. # +# d0 = contains the k-factor sign-extended to 32-bits. # # # # OUTPUT ************************************************************** # # FP_SCR0(a6) = bcd format result on the stack. # # # # ALGORITHM *********************************************************** # # # -# A1. Set RM and size ext; Set SIGMA = sign of input. # +# A1. Set RM and size ext; Set SIGMA = sign of input. # # The k-factor is saved for use in d7. Clear the # # BINDEC_FLG for separating normalized/denormalized # # input. If input is unnormalized or denormalized, # @@ -23482,15 +23482,15 @@ # # # A3. Compute ILOG. # # ILOG is the log base 10 of the input value. It is # -# approximated by adding e + 0.f when the original # -# value is viewed as 2^^e * 1.f in extended precision. # +# approximated by adding e + 0.f when the original # +# value is viewed as 2^^e * 1.f in extended precision. # # This value is stored in d6. # # # # A4. Clr INEX bit. # -# The operation in A3 above may have set INEX2. # +# The operation in A3 above may have set INEX2. # # # # A5. Set ICTR = 0; # -# ICTR is a flag used in A13. It must be set before the # +# ICTR is a flag used in A13. It must be set before the # # loop entry A6. # # # # A6. Calculate LEN. # @@ -23512,7 +23512,7 @@ # of ISCALE and X. A table is given in the code. # # # # A8. Clr INEX; Force RZ. # -# The operation in A3 above may have set INEX2. # +# The operation in A3 above may have set INEX2. # # RZ mode is forced for the scaling operation to insure # # only one rounding error. The grs bits are collected in # # the INEX flag for use in A10. # @@ -23543,11 +23543,11 @@ # the mantissa by 10. # # # # A14. Convert the mantissa to bcd. # -# The binstr routine is used to convert the LEN digit # +# The binstr routine is used to convert the LEN digit # # mantissa to bcd in memory. The input to binstr is # # to be a fraction; i.e. (mantissa)/10^LEN and adjusted # # such that the decimal point is to the left of bit 63. # -# The bcd digits are stored in the correct position in # +# The bcd digits are stored in the correct position in # # the final string area in memory. # # # # A15. Convert the exponent to bcd. # @@ -23593,7 +23593,7 @@ # d2: upper 32-bits of mantissa for binstr # d3: scratch;lower 32-bits of mantissa for binstr # d4: LEN -# d5: LAMBDA/ICTR +# d5: LAMBDA/ICTR # d6: ILOG # d7: k-factor # a0: ptr for original operand/final result @@ -23617,7 +23617,7 @@ # separating normalized/denormalized input. If the input # is a denormalized number, set the BINDEC_FLG memory word # to signal denorm. If the input is unnormalized, normalize -# the input and test for denormalized result. +# the input and test for denormalized result. # fmov.l &rm_mode*0x10,%fpcr # set RM and ext mov.l (%a0),L_SCR2(%a6) # save exponent for sign check @@ -23698,7 +23698,7 @@ sub.w &0x3fff,%d0 # strip off bias fadd.w %d0,%fp0 # add in exp fsub.s FONE(%pc),%fp0 # subtract off 1.0 - fbge.w pos_res # if pos, branch + fbge.w pos_res # if pos, branch fmul.x PLOG2UP1(%pc),%fp0 # if neg, mul by LOG2UP1 fmov.l %fp0,%d6 # put ILOG in d6 as a lword bra.b A4_str # go move out ILOG @@ -23708,14 +23708,14 @@ # A4. Clr INEX bit. -# The operation in A3 above may have set INEX2. +# The operation in A3 above may have set INEX2. A4_str: fmov.l &0,%fpsr # zero all of fpsr - nothing needed # A5. Set ICTR = 0; -# ICTR is a flag used in A13. It must be set before the +# ICTR is a flag used in A13. It must be set before the # loop entry A6. The lower word of d5 is used for ICTR. clr.w %d5 # clear ICTR @@ -23881,21 +23881,21 @@ bne.b e_loop2 # if not, loop # A8. Clr INEX; Force RZ. -# The operation in A3 above may have set INEX2. +# The operation in A3 above may have set INEX2. # RZ mode is forced for the scaling operation to insure -# only one rounding error. The grs bits are collected in +# only one rounding error. The grs bits are collected in # the INEX flag for use in A10. # # Register usage: # Input/Output - fmov.l &0,%fpsr # clr INEX + fmov.l &0,%fpsr # clr INEX fmov.l &rz_mode*0x10,%fpcr # set RZ rounding mode # A9. Scale X -> Y. # The mantissa is scaled to the desired number of significant # digits. The excess digits are collected in INEX2. If mul, -# Check d2 for excess 10 exponential value. If not zero, +# Check d2 for excess 10 exponential value. If not zero, # the iscale value would have caused the pwrten calculation # to overflow. Only a negative iscale can cause this, so # multiply by 10^(d2), which is now only allowed to be 24, @@ -24026,7 +24026,7 @@ A11_st: mov.l USER_FPCR(%a6),L_SCR1(%a6) # save it for later - and.l &0x00000030,USER_FPCR(%a6) # set size to ext, + and.l &0x00000030,USER_FPCR(%a6) # set size to ext, # ;block exceptions @@ -24062,7 +24062,7 @@ lea.l FP_SCR1(%a6),%a0 # a0 is ptr to FP_SCR1(a6) fmov.x %fp0,(%a0) # move Y to memory at FP_SCR1(a6) tst.l L_SCR2(%a6) # test sign of original operand - bge.b do_fint12 # if pos, use Y + bge.b do_fint12 # if pos, use Y or.l &0x80000000,(%a0) # if neg, use -Y do_fint12: mov.l USER_FPSR(%a6),-(%sp) @@ -24158,7 +24158,7 @@ subq.l &1,%d6 # subtract 1 from ILOG mov.w &1,%d5 # set ICTR fmov.l &rm_mode*0x10,%fpcr # set rmode to RM - fmul.s FTEN(%pc),%fp2 # compute 10^LEN + fmul.s FTEN(%pc),%fp2 # compute 10^LEN bra.w A6_str # return to A6 and recompute YINT test_2: fmul.s FTEN(%pc),%fp2 # compute 10^LEN @@ -24174,7 +24174,7 @@ fmov.l &rm_mode*0x10,%fpcr # set rmode to RM bra.w A6_str # return to A6 and recompute YINT # -# Since ICTR <> 0, we have already been through one adjustment, +# Since ICTR <> 0, we have already been through one adjustment, # and shouldn't have another; this is to check if abs(YINT) = 10^LEN # 10^LEN is again computed using whatever table is in a1 since the # value calculated cannot be inexact. @@ -24200,11 +24200,11 @@ fmul.s FTEN(%pc),%fp2 # if LEN++, the get 10^^LEN # A14. Convert the mantissa to bcd. -# The binstr routine is used to convert the LEN digit +# The binstr routine is used to convert the LEN digit # mantissa to bcd in memory. The input to binstr is # to be a fraction; i.e. (mantissa)/10^LEN and adjusted # such that the decimal point is to the left of bit 63. -# The bcd digits are stored in the correct position in +# The bcd digits are stored in the correct position in # the final string area in memory. # # @@ -24247,7 +24247,7 @@ bgt.b no_sft # if so, don't shift neg.l %d0 # make exp positive m_loop: - lsr.l &1,%d2 # shift d2:d3 right, add 0s + lsr.l &1,%d2 # shift d2:d3 right, add 0s roxr.l &1,%d3 # the number of places dbf.w %d0,m_loop # given in d0 no_sft: @@ -24272,9 +24272,9 @@ # # Digits are stored in L_SCR1(a6) on return from BINDEC as: # -# 32 16 15 0 +# 32 16 15 0 # ----------------------------------------- -# | 0 | e3 | e2 | e1 | e4 | X | X | X | +# | 0 | e3 | e2 | e1 | e4 | X | X | X | # ----------------------------------------- # # And are moved into their proper places in FP_SCR0. If digit e4 @@ -24337,7 +24337,7 @@ sub.w &0x3ffd,%d0 # subtract off bias neg.w %d0 # make exp positive x_loop: - lsr.l &1,%d2 # shift d2:d3 right + lsr.l &1,%d2 # shift d2:d3 right roxr.l &1,%d3 # the number of places dbf.w %d0,x_loop # given in d0 x_loop_fin: @@ -24348,12 +24348,12 @@ mov.l &4,%d0 # put 4 in d0 for binstr call lea.l L_SCR1(%a6),%a0 # a0 is ptr to L_SCR1 for exp digits bsr binstr # call binstr to convert exp - mov.l L_SCR1(%a6),%d0 # load L_SCR1 lword to d0 + mov.l L_SCR1(%a6),%d0 # load L_SCR1 lword to d0 mov.l &12,%d1 # use d1 for shift count lsr.l %d1,%d0 # shift d0 right by 12 bfins %d0,FP_SCR0(%a6){&4:&12} # put e3:e2:e1 in FP_SCR0 lsr.l %d1,%d0 # shift d0 right by 12 - bfins %d0,FP_SCR0(%a6){&16:&4} # put e4 in FP_SCR0 + bfins %d0,FP_SCR0(%a6){&16:&4} # put e4 in FP_SCR0 tst.b %d0 # check if e4 is zero beq.b A16_st # if zero, skip rest or.l &opaop_mask,USER_FPSR(%a6) # set OPERR & AIOP in USER_FPSR @@ -24384,14 +24384,14 @@ A16_st: clr.l %d0 # clr d0 for collection of signs - and.b &0x0f,FP_SCR0(%a6) # clear first nibble of FP_SCR0 + and.b &0x0f,FP_SCR0(%a6) # clear first nibble of FP_SCR0 tst.l L_SCR2(%a6) # check sign of original mantissa bge.b mant_p # if pos, don't set SM mov.l &2,%d0 # move 2 in to d0 for SM mant_p: tst.l %d6 # check sign of ILOG bge.b wr_sgn # if pos, don't set SE - addq.l &1,%d0 # set bit 0 in d0 for SE + addq.l &1,%d0 # set bit 0 in d0 for SE wr_sgn: bfins %d0,FP_SCR0(%a6){&0:&2} # insert SM and SE into FP_SCR0 @@ -24457,8 +24457,8 @@ # d2:d3 = 64-bit binary integer # # d0 = desired length (LEN) # # a0 = pointer to start in memory for bcd characters # -# (This pointer must point to byte 4 of the first # -# lword of the packed decimal memory string.) # +# (This pointer must point to byte 4 of the first # +# lword of the packed decimal memory string.) # # # # OUTPUT ************************************************************** # # a0 = pointer to LEN bcd digits representing the 64-bit integer. # @@ -24598,14 +24598,14 @@ # # # INPUT *************************************************************** # # None # -# # +# # # OUTPUT ************************************************************** # # None # # # # ALGORITHM *********************************************************** # -# Flow jumps here when an FP data fetch call gets an error # +# Flow jumps here when an FP data fetch call gets an error # # result. This means the operating system wants an access error frame # -# made out of the current exception stack frame. # +# made out of the current exception stack frame. # # So, we first call restore() which makes sure that any updated # # -(an)+ register gets returned to its pre-exception value and then # # we change the stack to an access error stack frame. # @@ -24775,7 +24775,7 @@ bne.b ri_a7_done # supervisor movc %usp,%a0 # restore USP sub.l %d0,%a0 - movc %a0,%usp + movc %a0,%usp ri_a7_done: rts diff -Nru a/arch/m68k/ifpsp060/src/ftest.S b/arch/m68k/ifpsp060/src/ftest.S --- a/arch/m68k/ifpsp060/src/ftest.S Tue May 18 23:38:06 2004 +++ b/arch/m68k/ifpsp060/src/ftest.S Tue May 18 23:38:06 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -86,7 +86,7 @@ ############################################# _060TESTS_: link %a6,&-384 - + movm.l &0x3f3c,-(%sp) fmovm.x &0xff,-(%sp) @@ -138,7 +138,7 @@ _060TESTS_unimp: link %a6,&-384 - + movm.l &0x3f3c,-(%sp) fmovm.x &0xff,-(%sp) @@ -164,7 +164,7 @@ _060TESTS_enable: link %a6,&-384 - + movm.l &0x3f3c,-(%sp) fmovm.x &0xff,-(%sp) @@ -687,7 +687,7 @@ fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) fmovm.x &0xff,IFPREGS(%a6) - + mov.w &0x0000,%cc fmovm.x %d0,-(%sp) @@ -753,7 +753,7 @@ movm.l &0xffff,IREGS(%a6) fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) - + mov.w &0x0000,%cc fmovm.x (%sp)+,%d0 @@ -797,7 +797,7 @@ fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) fmovm.x &0xff,IFPREGS(%a6) - + mov.w &0x0000,%cc fmovm.x %d0,-(%sp) diff -Nru a/arch/m68k/ifpsp060/src/ilsp.S b/arch/m68k/ifpsp060/src/ilsp.S --- a/arch/m68k/ifpsp060/src/ilsp.S Tue May 18 23:38:05 2004 +++ b/arch/m68k/ifpsp060/src/ilsp.S Tue May 18 23:38:05 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -27,7 +27,7 @@ or trademarks of Motorola, Inc. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # litop.s: -# This file is appended to the top of the 060FPLSP package +# This file is appended to the top of the 060FPLSP package # and contains the entry points into the package. The user, in # effect, branches to one of the branch table entries located here. # @@ -64,7 +64,7 @@ # _060LSP__idivs64_(): Emulate 64-bit signed div instruction. # # # # This is the library version which is accessed as a subroutine # -# and therefore does not work exactly like the 680X0 div{s,u}.l # +# and therefore does not work exactly like the 680X0 div{s,u}.l # # 64-bit divide instruction. # # # # XREF **************************************************************** # @@ -75,17 +75,17 @@ # 0x8(sp) = hi(dividend) # # 0xc(sp) = lo(dividend) # # 0x10(sp) = pointer to location to place quotient/remainder # -# # +# # # OUTPUT ************************************************************** # # 0x10(sp) = points to location of remainder/quotient. # # remainder is in first longword, quotient is in 2nd. # # # # ALGORITHM *********************************************************** # -# If the operands are signed, make them unsigned and save the # +# If the operands are signed, make them unsigned and save the # # sign info for later. Separate out special cases like divide-by-zero # # or 32-bit divides if possible. Else, use a special math algorithm # # to calculate the result. # -# Restore sign info if signed instruction. Set the condition # +# Restore sign info if signed instruction. Set the condition # # codes before performing the final "rts". If the divisor was equal to # # zero, then perform a divide-by-zero using a 16-bit implemented # # divide instruction. This way, the operating system can record that # @@ -135,8 +135,8 @@ beq.w ldiv64eq0 # divisor is = 0!!! - mov.l 0xc(%a6), %d5 # get dividend hi - mov.l 0x10(%a6), %d6 # get dividend lo + mov.l 0xc(%a6), %d5 # get dividend hi + mov.l 0x10(%a6), %d6 # get dividend lo # separate signed and unsigned divide tst.b POSNEG(%a6) # signed or unsigned? @@ -161,7 +161,7 @@ negx.l %d5 # extract some special cases: -# - is (dividend == 0) ? +# - is (dividend == 0) ? # - is (hi(dividend) == 0 && (divisor <= lo(dividend))) ? (32-bit div) ldspecialcases: tst.l %d5 # is (hi(dividend) == 0) @@ -170,7 +170,7 @@ tst.l %d6 # is (lo(dividend) == 0), too beq.w lddone # yes, so (dividend == 0) - cmp.l %d7,%d6 # is (divisor <= lo(dividend)) + cmp.l %d7,%d6 # is (divisor <= lo(dividend)) bls.b ld32bitdivide # yes, so use 32 bit divide exg %d5,%d6 # q = 0, r = dividend @@ -183,7 +183,7 @@ ldnormaldivide: # last special case: -# - is hi(dividend) >= divisor ? if yes, then overflow +# - is hi(dividend) >= divisor ? if yes, then overflow cmp.l %d7,%d5 bls.b lddovf # answer won't fit in 32 bits @@ -196,7 +196,7 @@ beq.b lddone # divu has no processing!!! # it was a divs.l, so ccode setting is a little more complicated... - tst.b NDIVIDEND(%a6) # remainder has same sign + tst.b NDIVIDEND(%a6) # remainder has same sign beq.b ldcc # as dividend. neg.l %d5 # sgn(rem) = sgn(dividend) ldcc: @@ -240,8 +240,8 @@ # the result should be the unchanged dividend lddovf: - mov.l 0xc(%a6), %d5 # get dividend hi - mov.l 0x10(%a6), %d6 # get dividend lo + mov.l 0xc(%a6), %d5 # get dividend hi + mov.l 0x10(%a6), %d6 # get dividend lo andi.w &0x1c,DIV64_CC(%a6) ori.w &0x02,DIV64_CC(%a6) # set 'V' ccode bit @@ -271,8 +271,8 @@ # For this implementation b=2**16, and the target is U1U2U3U4/V1V2, # # where U,V are words of the quadword dividend and longword divisor, # # and U1, V1 are the most significant words. # -# # -# The most sig. longword of the 64 bit dividend must be in %d5, least # +# # +# The most sig. longword of the 64 bit dividend must be in %d5, least # # in %d6. The divisor must be in the variable ddivisor, and the # # signed/unsigned flag ddusign must be set (0=unsigned,1=signed). # # The quotient is returned in %d6, remainder in %d5, unless the # @@ -292,7 +292,7 @@ # dividing the divisor word into each dividend word. In this case, # the first two quotient words must be zero, or overflow would occur. # Since we already checked this case above, we can treat the most significant -# longword of the dividend as (0) remainder (see Knuth) and merely complete +# longword of the dividend as (0) remainder (see Knuth) and merely complete # the last two divisions to get a quotient longword and word remainder: clr.l %d1 @@ -328,12 +328,12 @@ clr.b DDSECOND(%a6) # clear flag for quotient digits clr.l %d1 # %d1 will hold trial quotient lddnchk: - btst &31, %d7 # must we normalize? first word of + btst &31, %d7 # must we normalize? first word of bne.b lddnormalized # divisor (V1) must be >= 65536/2 addq.l &0x1, DDNORMAL(%a6) # count normalization shifts lsl.l &0x1, %d7 # shift the divisor lsl.l &0x1, %d6 # shift u4,u3 with overflow to u2 - roxl.l &0x1, %d5 # shift u1,u2 + roxl.l &0x1, %d5 # shift u1,u2 bra.w lddnchk lddnormalized: @@ -343,12 +343,12 @@ mov.l %d5, %d2 # dividend mslw swap %d2 swap %d3 - cmp.w %d2, %d3 # V1 = U1 ? + cmp.w %d2, %d3 # V1 = U1 ? bne.b lddqcalc1 mov.w &0xffff, %d1 # use max trial quotient word bra.b lddadj0 lddqcalc1: - mov.l %d5, %d1 + mov.l %d5, %d1 divu.w %d3, %d1 # use quotient of mslw/msw @@ -379,7 +379,7 @@ # add.l %d6, %d4 # (U1U2 - V1q) + U3 - cmp.l %d2, %d4 + cmp.l %d2, %d4 bls.b lddadjd1 # is V2q > (U1U2-V1q) + U3 ? subq.l &0x1, %d1 # yes, decrement and recheck bra.b lddadj1 @@ -416,7 +416,7 @@ tst.b DDSECOND(%a6) # both q words done? bne.b lddremain # first quotient digit now correct. store digit and shift the -# (subtracted) dividend +# (subtracted) dividend mov.w %d1, DDQUOTIENT(%a6) clr.l %d1 swap %d5 @@ -427,7 +427,7 @@ bra.w lddnormalized lddremain: # add 2nd word to quotient, get the remainder. - mov.w %d1, DDQUOTIENT+2(%a6) + mov.w %d1, DDQUOTIENT+2(%a6) # shift down one word/digit to renormalize remainder. mov.w %d5, %d6 swap %d6 @@ -441,7 +441,7 @@ dbf %d7, lddnlp lddrn: mov.l %d6, %d5 # remainder - mov.l DDQUOTIENT(%a6), %d6 # quotient + mov.l DDQUOTIENT(%a6), %d6 # quotient rts ldmm2: @@ -471,7 +471,7 @@ clr.w %d2 # lsw of two mixed products used, swap %d5 # now use msws of longwords swap %d2 - add.l %d2, %d5 + add.l %d2, %d5 add.l %d3, %d5 # %d5 now ms 32 bits of final product rts @@ -491,7 +491,7 @@ # 0x4(sp) = multiplier # # 0x8(sp) = multiplicand # # 0xc(sp) = pointer to location to place 64-bit result # -# # +# # # OUTPUT ************************************************************** # # 0xc(sp) = points to location of 64-bit result # # # @@ -524,9 +524,9 @@ ######################################################################### # 63 32 0 # -# ---------------------------- # -# | hi(mplier) * hi(mplicand)| # -# ---------------------------- # +# ---------------------------- # +# | hi(mplier) * hi(mplicand)| # +# ---------------------------- # # ----------------------------- # # | hi(mplier) * lo(mplicand) | # # ----------------------------- # @@ -589,7 +589,7 @@ # the values at the location pointed to by a0. # use movm here to not disturb the condition codes. mulu64_end: - exg %d1,%d0 + exg %d1,%d0 movm.l &0x0003,([0x10,%a6]) # save result # EPILOGUE BEGIN ######################################################## @@ -643,16 +643,16 @@ # the result sign is the exclusive or of the operand sign bits. muls64_chk_md_sgn: tst.l %d1 # is multiplicand negative? - bge.b muls64_alg # no + bge.b muls64_alg # no neg.l %d1 # make multiplicand positive eori.b &0x1,%d5 # calculate correct sign ######################################################################### # 63 32 0 # -# ---------------------------- # -# | hi(mplier) * hi(mplicand)| # -# ---------------------------- # +# ---------------------------- # +# | hi(mplier) * hi(mplicand)| # +# ---------------------------- # # ----------------------------- # # | hi(mplier) * lo(mplicand) | # # ----------------------------- # @@ -726,7 +726,7 @@ # the values at the location pointed to by a0. # use movm here to not disturb the condition codes. muls64_end: - exg %d1,%d0 + exg %d1,%d0 movm.l &0x0003,([0x10,%a6]) # save result at (a0) # EPILOGUE BEGIN ######################################################## @@ -769,12 +769,12 @@ # INPUT *************************************************************** # # 0x4(sp) = Rn # # 0x8(sp) = pointer to boundary pair # -# # +# # # OUTPUT ************************************************************** # # cc = condition codes are set correctly # # # # ALGORITHM *********************************************************** # -# In the interest of simplicity, all operands are converted to # +# In the interest of simplicity, all operands are converted to # # longword size whether the operation is byte, word, or long. The # # bounds are sign extended accordingly. If Rn is a data regsiter, Rn is # # also sign extended. If Rn is an address register, it need not be sign # @@ -785,7 +785,7 @@ set CMP2_CC, -4 - global _060LSP__cmp2_Ab_ + global _060LSP__cmp2_Ab_ _060LSP__cmp2_Ab_: # PROLOGUE BEGIN ######################################################## @@ -795,7 +795,7 @@ # PROLOGUE END ########################################################## mov.w %cc,CMP2_CC(%a6) - mov.l 0x8(%a6), %d2 # get regval + mov.l 0x8(%a6), %d2 # get regval mov.b ([0xc,%a6],0x0),%d0 mov.b ([0xc,%a6],0x1),%d1 @@ -804,7 +804,7 @@ extb.l %d1 # sign extend hi bnd bra.w l_cmp2_cmp # go do the compare emulation - global _060LSP__cmp2_Aw_ + global _060LSP__cmp2_Aw_ _060LSP__cmp2_Aw_: # PROLOGUE BEGIN ######################################################## @@ -814,7 +814,7 @@ # PROLOGUE END ########################################################## mov.w %cc,CMP2_CC(%a6) - mov.l 0x8(%a6), %d2 # get regval + mov.l 0x8(%a6), %d2 # get regval mov.w ([0xc,%a6],0x0),%d0 mov.w ([0xc,%a6],0x2),%d1 @@ -823,7 +823,7 @@ ext.l %d1 # sign extend hi bnd bra.w l_cmp2_cmp # go do the compare emulation - global _060LSP__cmp2_Al_ + global _060LSP__cmp2_Al_ _060LSP__cmp2_Al_: # PROLOGUE BEGIN ######################################################## @@ -833,13 +833,13 @@ # PROLOGUE END ########################################################## mov.w %cc,CMP2_CC(%a6) - mov.l 0x8(%a6), %d2 # get regval + mov.l 0x8(%a6), %d2 # get regval mov.l ([0xc,%a6],0x0),%d0 mov.l ([0xc,%a6],0x4),%d1 bra.w l_cmp2_cmp # go do the compare emulation - global _060LSP__cmp2_Db_ + global _060LSP__cmp2_Db_ _060LSP__cmp2_Db_: # PROLOGUE BEGIN ######################################################## @@ -849,7 +849,7 @@ # PROLOGUE END ########################################################## mov.w %cc,CMP2_CC(%a6) - mov.l 0x8(%a6), %d2 # get regval + mov.l 0x8(%a6), %d2 # get regval mov.b ([0xc,%a6],0x0),%d0 mov.b ([0xc,%a6],0x1),%d1 @@ -862,7 +862,7 @@ extb.l %d2 # sign extend data byte bra.w l_cmp2_cmp # go do the compare emulation - global _060LSP__cmp2_Dw_ + global _060LSP__cmp2_Dw_ _060LSP__cmp2_Dw_: # PROLOGUE BEGIN ######################################################## @@ -872,7 +872,7 @@ # PROLOGUE END ########################################################## mov.w %cc,CMP2_CC(%a6) - mov.l 0x8(%a6), %d2 # get regval + mov.l 0x8(%a6), %d2 # get regval mov.w ([0xc,%a6],0x0),%d0 mov.w ([0xc,%a6],0x2),%d1 @@ -885,7 +885,7 @@ ext.l %d2 # sign extend data word bra.w l_cmp2_cmp # go emulate compare - global _060LSP__cmp2_Dl_ + global _060LSP__cmp2_Dl_ _060LSP__cmp2_Dl_: # PROLOGUE BEGIN ######################################################## @@ -895,14 +895,14 @@ # PROLOGUE END ########################################################## mov.w %cc,CMP2_CC(%a6) - mov.l 0x8(%a6), %d2 # get regval + mov.l 0x8(%a6), %d2 # get regval mov.l ([0xc,%a6],0x0),%d0 mov.l ([0xc,%a6],0x4),%d1 # # To set the ccodes correctly: -# (1) save 'Z' bit from (Rn - lo) +# (1) save 'Z' bit from (Rn - lo) # (2) save 'Z' and 'N' bits from ((hi - lo) - (Rn - hi)) # (3) keep 'X', 'N', and 'V' from before instruction # (4) combine ccodes @@ -912,7 +912,7 @@ mov.w %cc, %d3 # fetch resulting ccodes andi.b &0x4, %d3 # keep 'Z' bit sub.l %d0, %d1 # (hi - lo) - cmp.l %d1,%d2 # ((hi - lo) - (Rn - hi)) + cmp.l %d1,%d2 # ((hi - lo) - (Rn - hi)) mov.w %cc, %d4 # fetch resulting ccodes or.b %d4, %d3 # combine w/ earlier ccodes diff -Nru a/arch/m68k/ifpsp060/src/isp.S b/arch/m68k/ifpsp060/src/isp.S --- a/arch/m68k/ifpsp060/src/isp.S Tue May 18 23:38:06 2004 +++ b/arch/m68k/ifpsp060/src/isp.S Tue May 18 23:38:06 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -322,21 +322,21 @@ # Misc. # ######### set BYTE, 1 # len(byte) == 1 byte -set WORD, 2 # len(word) == 2 bytes -set LONG, 4 # len(longword) == 4 bytes +set WORD, 2 # len(word) == 2 bytes +set LONG, 4 # len(longword) == 4 bytes ######################################################################### # XDEF **************************************************************** # # _isp_unimp(): 060ISP entry point for Unimplemented Instruction # # # -# This handler should be the first code executed upon taking the # -# "Unimplemented Integer Instruction" exception in an operating # +# This handler should be the first code executed upon taking the # +# "Unimplemented Integer Instruction" exception in an operating # # system. # # # # XREF **************************************************************** # # _imem_read_{word,long}() - read instruction word/longword # # _mul64() - emulate 64-bit multiply # -# _div64() - emulate 64-bit divide # +# _div64() - emulate 64-bit divide # # _moveperipheral() - emulate "movep" # # _compandset() - emulate misaligned "cas" # # _compandset2() - emulate "cas2" # @@ -349,7 +349,7 @@ # # # INPUT *************************************************************** # # - The system stack contains the Unimp Int Instr stack frame # -# # +# # # OUTPUT ************************************************************** # # If Trace exception: # # - The system stack changed to contain Trace exc stack frame # @@ -366,8 +366,8 @@ # This handler fetches the first instruction longword from # # memory and decodes it to determine which of the unimplemented # # integer instructions caused this exception. This handler then calls # -# one of _mul64(), _div64(), _moveperipheral(), _compandset(), # -# _compandset2(), or _chk2_cmp2() as appropriate. # +# one of _mul64(), _div64(), _moveperipheral(), _compandset(), # +# _compandset2(), or _chk2_cmp2() as appropriate. # # Some of these instructions, by their nature, may produce other # # types of exceptions. "div" can produce a divide-by-zero exception, # # and "chk2" can cause a "Chk" exception. In both cases, the current # @@ -375,7 +375,7 @@ # of the correct exception type and an exit must be made through # # _real_divbyzero() or _real_chk() as appropriate. In addition, all # # instructions may be executing while Trace is enabled. If so, then # -# a Trace exception stack frame must be created and an exit made # +# a Trace exception stack frame must be created and an exit made # # through _real_trace(). # # Meanwhile, if any read or write to memory using the # # _mem_{read,write}() "callout"s returns a failing value, then an # @@ -384,19 +384,19 @@ # If none of these occur, then a normal exit is made through # # _isp_done(). # # # -# This handler, upon entry, saves almost all user-visible # +# This handler, upon entry, saves almost all user-visible # # address and data registers to the stack. Although this may seem to # # cause excess memory traffic, it was found that due to having to # # access these register files for things like data retrieval and # # calculations, it was more efficient to have them on the stack where # -# they could be accessed by indexing rather than to make subroutine # -# calls to retrieve a register of a particular index. # +# they could be accessed by indexing rather than to make subroutine # +# calls to retrieve a register of a particular index. # # # ######################################################################### global _isp_unimp _isp_unimp: - link.w %a6,&-LOCAL_SIZE # create room for stack frame + link.w %a6,&-LOCAL_SIZE # create room for stack frame movm.l &0x3fff,EXC_DREGS(%a6) # store d0-d7/a0-a5 mov.l (%a6),EXC_A6(%a6) # store a6 @@ -428,9 +428,9 @@ bsr.l _imem_read_long # fetch opword & extword mov.l %d0,EXC_OPWORD(%a6) # store extword on stack - + ######################################################################### -# muls.l 0100 1100 00 || 0*** 1100 0000 0*** # +# muls.l 0100 1100 00 || 0*** 1100 0000 0*** # # mulu.l 0100 1100 00 || 0*** 0100 0000 0*** # # # # divs.l 0100 1100 01 || 0*** 1100 0000 0*** # @@ -514,7 +514,7 @@ tst.b EXC_ISR(%a6) # no; is trace enabled? bmi.w uieh_trace_a7 # yes bra.w uieh_a7 # no - + # # now, w/ group2, make movep's decode the fastest since it will # most likely be used the most. @@ -532,7 +532,7 @@ beq.b uieh_chk2cmp2 # go handle chk2,cmp2 swap %d0 # put opword in lo word - cmpi.b %d0,&0xfc # test for cas2 + cmpi.b %d0,&0xfc # test for cas2 beq.b uieh_cas2 # go handle cas2 uieh_cas: @@ -585,7 +585,7 @@ mov.l %a0,%usp # restore it uieh_finish: - movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 + movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 btst &0x7,EXC_ISR(%a6) # is trace mode on? bne.b uieh_trace # yes;go handle trace mode @@ -596,7 +596,7 @@ bra.l _isp_done # -# The instruction that was just emulated was also being traced. The trace +# The instruction that was just emulated was also being traced. The trace # trap for this instruction will be lost unless we jump to the trace handler. # So, here we create a Trace Exception format number two exception stack # frame from the Unimplemented Integer Intruction Exception stack frame @@ -607,11 +607,11 @@ # * 0x0 * 0x0f4 * * Current * # ***************** * PC * # * Current * ***************** -# * PC * * 0x2 * 0x024 * +# * PC * * 0x2 * 0x024 * # ***************** ***************** # * SR * * Next * # ***************** * PC * -# ->* Old * ***************** +# ->* Old * ***************** # from link -->* A6 * * SR * # ***************** ***************** # /* A7 * * New * <-- for final unlink @@ -651,7 +651,7 @@ # uieh_chk_trap: mov.b EXC_CC+1(%a6),EXC_ISR+1(%a6) # insert new ccodes - movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 + movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 mov.w EXC_ISR(%a6),(%a6) # put new SR on stack mov.l EXC_IPC(%a6),0x8(%a6) # put "Current PC" on stack @@ -678,14 +678,14 @@ # ***************** # (6 words) # -# the divide instruction should take an integer divide by zero trap. so, here -# we must create a divbyzero stack frame from an unimplemented integer -# instruction exception frame and jump to the user supplied entry point +# the divide instruction should take an integer divide by zero trap. so, here +# we must create a divbyzero stack frame from an unimplemented integer +# instruction exception frame and jump to the user supplied entry point # "_real_divbyzero()". # uieh_divbyzero: mov.b EXC_CC+1(%a6),EXC_ISR+1(%a6) # insert new ccodes - movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 + movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 mov.w EXC_ISR(%a6),(%a6) # put new SR on stack mov.l EXC_IPC(%a6),0x8(%a6) # put "Current PC" on stack @@ -712,9 +712,9 @@ # ***************** ***************** # (4 words) (6 words) # -# the divide instruction should take an integer divide by zero trap. so, here -# we must create a divbyzero stack frame from an unimplemented integer -# instruction exception frame and jump to the user supplied entry point +# the divide instruction should take an integer divide by zero trap. so, here +# we must create a divbyzero stack frame from an unimplemented integer +# instruction exception frame and jump to the user supplied entry point # "_real_divbyzero()". # # However, we must also deal with the fact that (a7)+ was used from supervisor @@ -722,7 +722,7 @@ # uieh_divbyzero_a7: mov.b EXC_CC+1(%a6),EXC_ISR+1(%a6) # insert new ccodes - movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 + movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 mov.l EXC_IPC(%a6),0xc(%a6) # put "Current PC" on stack mov.w &0x2014,0xa(%a6) # put Vector Offset on stack @@ -748,8 +748,8 @@ # ***************** ***************** # (4 words) (6 words) # -# -# The instruction that was just emulated was also being traced. The trace +# +# The instruction that was just emulated was also being traced. The trace # trap for this instruction will be lost unless we jump to the trace handler. # So, here we create a Trace Exception format number two exception stack # frame from the Unimplemented Integer Intruction Exception stack frame @@ -760,7 +760,7 @@ # uieh_trace_a7: mov.b EXC_CC+1(%a6),EXC_ISR+1(%a6) # insert new ccodes - movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 + movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 mov.l EXC_IPC(%a6),0xc(%a6) # put "Current PC" on stack mov.w &0x2024,0xa(%a6) # put Vector Offset on stack @@ -772,12 +772,12 @@ bra.l _real_trace # -# UIEH FRAME +# UIEH FRAME # ***************** # * 0x0 * 0x0f4 * # UIEH FRAME ***************** # ***************** * Next * -# * 0x0 * 0x0f4 * * PC * +# * 0x0 * 0x0f4 * * PC * # ***************** ***************** # * Current * * SR * # * PC * ***************** @@ -787,7 +787,7 @@ # (4 words) uieh_a7: mov.b EXC_CC+1(%a6),EXC_ISR+1(%a6) # insert new ccodes - movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 + movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 mov.w &0x00f4,0xe(%a6) # put Vector Offset on stack mov.l EXC_EXTWPTR(%a6),0xa(%a6) # put "Next PC" on stack @@ -803,11 +803,11 @@ # a0 = failing address # d0 = fslw isp_dacc: - mov.l %a0,(%a6) # save address + mov.l %a0,(%a6) # save address mov.l %d0,-0x4(%a6) # save partial fslw lea -64(%a6),%sp - movm.l (%sp)+,&0x7fff # restore d0-d7/a0-a6 + movm.l (%sp)+,&0x7fff # restore d0-d7/a0-a6 mov.l 0xc(%sp),-(%sp) # move voff,hi(pc) mov.l 0x4(%sp),0x10(%sp) # store fslw @@ -822,11 +822,11 @@ # FSLW: # misaligned = true # read = true -# size = word -# instruction = true -# software emulation error = true +# size = word +# instruction = true +# software emulation error = true isp_iacc: - movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 + movm.l EXC_DREGS(%a6),&0x3fff # restore d0-d7/a0-a5 unlk %a6 # unlink frame sub.w &0x8,%sp # make room for acc frame mov.l 0x8(%sp),(%sp) # store sr,lo(pc) @@ -840,7 +840,7 @@ beq.b isp_acc_exit2 # user bset &0x2,0xd(%sp) # set supervisor TM bit isp_acc_exit2: - bra.l _real_access + bra.l _real_access # if the addressing mode was (an)+ or -(an), the address register must # be restored to its pre-exception value before entering _real_access. @@ -858,14 +858,14 @@ # _calc_ea(): routine to calculate effective address # # # # XREF **************************************************************** # -# _imem_read_word() - read instruction word # -# _imem_read_long() - read instruction longword # -# _dmem_read_long() - read data longword (for memory indirect) # -# isp_iacc() - handle instruction access error exception # +# _imem_read_word() - read instruction word # +# _imem_read_long() - read instruction longword # +# _dmem_read_long() - read data longword (for memory indirect) # +# isp_iacc() - handle instruction access error exception # # isp_dacc() - handle data access error exception # # # # INPUT *************************************************************** # -# d0 = number of bytes related to effective address (w,l) # +# d0 = number of bytes related to effective address (w,l) # # # # OUTPUT ************************************************************** # # If exiting through isp_dacc... # @@ -877,22 +877,22 @@ # a0 = effective address # # # # ALGORITHM *********************************************************** # -# The effective address type is decoded from the opword residing # -# on the stack. A jump table is used to vector to a routine for the # +# The effective address type is decoded from the opword residing # +# on the stack. A jump table is used to vector to a routine for the # # appropriate mode. Since none of the emulated integer instructions # # uses byte-sized operands, only handle word and long operations. # # # -# Dn,An - shouldn't enter here # +# Dn,An - shouldn't enter here # # (An) - fetch An value from stack # -# -(An) - fetch An value from stack; return decr value; # +# -(An) - fetch An value from stack; return decr value; # # place decr value on stack; store old value in case of # -# future access error; if -(a7), set mda7_flg in # +# future access error; if -(a7), set mda7_flg in # # SPCOND_FLG # # (An)+ - fetch An value from stack; return value; # # place incr value on stack; store old value in case of # # future access error; if (a7)+, set mia7_flg in # # SPCOND_FLG # -# (d16,An) - fetch An value from stack; read d16 using # +# (d16,An) - fetch An value from stack; read d16 using # # _imem_read_word(); fetch may fail -> branch to # # isp_iacc() # # (xxx).w,(xxx).l - use _imem_read_{word,long}() to fetch # @@ -904,7 +904,7 @@ # isp_iacc() # # everything else - read needed displacements as appropriate w/ # # _imem_read_{word,long}(); read may fail; if memory # -# indirect, read indirect address using # +# indirect, read indirect address using # # _dmem_read_long() which may also fail # # # ######################################################################### @@ -944,59 +944,59 @@ short tbl_ea_mode - tbl_ea_mode short tbl_ea_mode - tbl_ea_mode - short addr_ind_a0 - tbl_ea_mode - short addr_ind_a1 - tbl_ea_mode - short addr_ind_a2 - tbl_ea_mode - short addr_ind_a3 - tbl_ea_mode - short addr_ind_a4 - tbl_ea_mode - short addr_ind_a5 - tbl_ea_mode - short addr_ind_a6 - tbl_ea_mode - short addr_ind_a7 - tbl_ea_mode - - short addr_ind_p_a0 - tbl_ea_mode - short addr_ind_p_a1 - tbl_ea_mode - short addr_ind_p_a2 - tbl_ea_mode - short addr_ind_p_a3 - tbl_ea_mode - short addr_ind_p_a4 - tbl_ea_mode - short addr_ind_p_a5 - tbl_ea_mode - short addr_ind_p_a6 - tbl_ea_mode - short addr_ind_p_a7 - tbl_ea_mode - - short addr_ind_m_a0 - tbl_ea_mode - short addr_ind_m_a1 - tbl_ea_mode - short addr_ind_m_a2 - tbl_ea_mode - short addr_ind_m_a3 - tbl_ea_mode - short addr_ind_m_a4 - tbl_ea_mode - short addr_ind_m_a5 - tbl_ea_mode - short addr_ind_m_a6 - tbl_ea_mode - short addr_ind_m_a7 - tbl_ea_mode - - short addr_ind_disp_a0 - tbl_ea_mode - short addr_ind_disp_a1 - tbl_ea_mode - short addr_ind_disp_a2 - tbl_ea_mode - short addr_ind_disp_a3 - tbl_ea_mode - short addr_ind_disp_a4 - tbl_ea_mode - short addr_ind_disp_a5 - tbl_ea_mode - short addr_ind_disp_a6 - tbl_ea_mode + short addr_ind_a0 - tbl_ea_mode + short addr_ind_a1 - tbl_ea_mode + short addr_ind_a2 - tbl_ea_mode + short addr_ind_a3 - tbl_ea_mode + short addr_ind_a4 - tbl_ea_mode + short addr_ind_a5 - tbl_ea_mode + short addr_ind_a6 - tbl_ea_mode + short addr_ind_a7 - tbl_ea_mode + + short addr_ind_p_a0 - tbl_ea_mode + short addr_ind_p_a1 - tbl_ea_mode + short addr_ind_p_a2 - tbl_ea_mode + short addr_ind_p_a3 - tbl_ea_mode + short addr_ind_p_a4 - tbl_ea_mode + short addr_ind_p_a5 - tbl_ea_mode + short addr_ind_p_a6 - tbl_ea_mode + short addr_ind_p_a7 - tbl_ea_mode + + short addr_ind_m_a0 - tbl_ea_mode + short addr_ind_m_a1 - tbl_ea_mode + short addr_ind_m_a2 - tbl_ea_mode + short addr_ind_m_a3 - tbl_ea_mode + short addr_ind_m_a4 - tbl_ea_mode + short addr_ind_m_a5 - tbl_ea_mode + short addr_ind_m_a6 - tbl_ea_mode + short addr_ind_m_a7 - tbl_ea_mode + + short addr_ind_disp_a0 - tbl_ea_mode + short addr_ind_disp_a1 - tbl_ea_mode + short addr_ind_disp_a2 - tbl_ea_mode + short addr_ind_disp_a3 - tbl_ea_mode + short addr_ind_disp_a4 - tbl_ea_mode + short addr_ind_disp_a5 - tbl_ea_mode + short addr_ind_disp_a6 - tbl_ea_mode short addr_ind_disp_a7 - tbl_ea_mode - short _addr_ind_ext - tbl_ea_mode - short _addr_ind_ext - tbl_ea_mode - short _addr_ind_ext - tbl_ea_mode - short _addr_ind_ext - tbl_ea_mode - short _addr_ind_ext - tbl_ea_mode - short _addr_ind_ext - tbl_ea_mode - short _addr_ind_ext - tbl_ea_mode - short _addr_ind_ext - tbl_ea_mode - - short abs_short - tbl_ea_mode - short abs_long - tbl_ea_mode - short pc_ind - tbl_ea_mode - short pc_ind_ext - tbl_ea_mode - short immediate - tbl_ea_mode - short tbl_ea_mode - tbl_ea_mode - short tbl_ea_mode - tbl_ea_mode - short tbl_ea_mode - tbl_ea_mode + short _addr_ind_ext - tbl_ea_mode + short _addr_ind_ext - tbl_ea_mode + short _addr_ind_ext - tbl_ea_mode + short _addr_ind_ext - tbl_ea_mode + short _addr_ind_ext - tbl_ea_mode + short _addr_ind_ext - tbl_ea_mode + short _addr_ind_ext - tbl_ea_mode + short _addr_ind_ext - tbl_ea_mode + + short abs_short - tbl_ea_mode + short abs_long - tbl_ea_mode + short pc_ind - tbl_ea_mode + short pc_ind_ext - tbl_ea_mode + short immediate - tbl_ea_mode + short tbl_ea_mode - tbl_ea_mode + short tbl_ea_mode - tbl_ea_mode + short tbl_ea_mode - tbl_ea_mode ################################### # Address register indirect: (An) # @@ -1041,7 +1041,7 @@ mov.l EXC_A0(%a6),%a0 # load current value add.l %a0,%d0 # increment mov.l %d0,EXC_A0(%a6) # save incremented value - + mov.l %a0,EXC_SAVVAL(%a6) # save in case of access error mov.b &0x0,EXC_SAVREG(%a6) # save regno, too mov.b &restore_flg,SPCOND_FLG(%a6) # set flag @@ -1339,7 +1339,7 @@ mov.l %a0,%d3 # put base in d3 bra.l calc_mem_ind # calc memory indirect - + addr_ind_index_8bit: mov.l %d2,-(%sp) # save old d2 @@ -1370,8 +1370,8 @@ # Immediate: # # ######################################################################### # word, long: of the data is the current extension word # -# pointer value. new extension word pointer is simply the old # -# plus the number of bytes in the data type(2 or 4). # +# pointer value. new extension word pointer is simply the old # +# plus the number of bytes in the data type(2 or 4). # ######################################################################### immediate: mov.b &immed_flg,SPCOND_FLG(%a6) # set immediate flag @@ -1455,9 +1455,9 @@ mov.l %a0,%d3 # put base in d3 bra.l calc_mem_ind # calc memory indirect - + pc_ind_index_8bit: - mov.l %d2,-(%sp) # create a temp register + mov.l %d2,-(%sp) # create a temp register mov.l %d0,%d1 # make extword copy rol.w &0x4,%d1 # rotate reg num into place @@ -1512,14 +1512,14 @@ no_base_sup: bfextu %d5{&26:&2},%d0 # get bd size # beq.l _error # if (size == 0) it's reserved - cmpi.b %d0,&2 + cmpi.b %d0,&2 blt.b no_bd beq.b get_word_bd mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long - + tst.l %d1 # ifetch error? bne.l isp_iacc # yes @@ -1533,16 +1533,16 @@ bne.l isp_iacc # yes ext.l %d0 # sign extend bd - + chk_ind: add.l %d0,%d3 # base += bd no_bd: bfextu %d5{&30:&2},%d0 # is od suppressed? beq.w aii_bd - cmpi.b %d0,&0x2 + cmpi.b %d0,&0x2 blt.b null_od beq.b word_od - + mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long @@ -1550,7 +1550,7 @@ tst.l %d1 # ifetch error? bne.l isp_iacc # yes - bra.b add_them + bra.b add_them word_od: mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr @@ -1604,10 +1604,10 @@ # must create an access error frame. here, we pass a skeleton fslw # and the failing address to the routine that creates the new frame. # FSLW: -# read = true -# size = longword +# read = true +# size = longword # TM = data -# software emulation error = true +# software emulation error = true calc_ea_err: mov.l %d3,%a0 # pass failing address mov.l &0x01010001,%d0 # pass fslw @@ -1615,7 +1615,7 @@ ######################################################################### # XDEF **************************************************************** # -# _moveperipheral(): routine to emulate movep instruction # +# _moveperipheral(): routine to emulate movep instruction # # # # XREF **************************************************************** # # _dmem_read_byte() - read byte from memory # @@ -1647,7 +1647,7 @@ # movep.(w,l) Dx,(d,Ay) # # movep.(w,l) (d,Ay),Dx # ########################### - global _moveperipheral + global _moveperipheral _moveperipheral: mov.w EXC_OPWORD(%a6),%d1 # fetch the opcode word @@ -1793,11 +1793,11 @@ mov.b EXC_OPWORD(%a6),%d1 lsr.b &0x1,%d1 and.w &0x7,%d1 # extract Dx from opcode word - + mov.l %d2,(EXC_DREGS,%a6,%d1.w*4) # store dx rts - + # a0 = dst addr m2rwtrans: mov.l %a0,%a2 # store addr @@ -1823,7 +1823,7 @@ mov.b EXC_OPWORD(%a6),%d1 lsr.b &0x1,%d1 and.w &0x7,%d1 # extract Dx from opcode word - + mov.w %d2,(EXC_DREGS+2,%a6,%d1.w*4) # store dx rts @@ -1832,7 +1832,7 @@ # must create an access error frame. here, we pass a skeleton fslw # and the failing address to the routine that creates the new frame. # FSLW: -# write = true +# write = true # size = byte # TM = data # software emulation error = true @@ -1842,7 +1842,7 @@ bra.l isp_dacc # FSLW: -# read = true +# read = true # size = byte # TM = data # software emulation error = true @@ -1853,12 +1853,12 @@ ######################################################################### # XDEF **************************************************************** # -# _chk2_cmp2(): routine to emulate chk2/cmp2 instructions # +# _chk2_cmp2(): routine to emulate chk2/cmp2 instructions # # # # XREF **************************************************************** # # _calc_ea(): calculate effective address # # _dmem_read_long(): read operands # -# _dmem_read_word(): read operands # +# _dmem_read_word(): read operands # # isp_dacc(): handle data access error exception # # # # INPUT *************************************************************** # @@ -1869,25 +1869,25 @@ # a0 = failing address # # d0 = FSLW # # else # -# none # +# none # # # # ALGORITHM *********************************************************** # # First, calculate the effective address, then fetch the byte, # -# word, or longword sized operands. Then, in the interest of # -# simplicity, all operands are converted to longword size whether the # -# operation is byte, word, or long. The bounds are sign extended # -# accordingly. If Rn is a data regsiter, Rn is also sign extended. If # -# Rn is an address register, it need not be sign extended since the # +# word, or longword sized operands. Then, in the interest of # +# simplicity, all operands are converted to longword size whether the # +# operation is byte, word, or long. The bounds are sign extended # +# accordingly. If Rn is a data regsiter, Rn is also sign extended. If # +# Rn is an address register, it need not be sign extended since the # # full register is always used. # # The comparisons are made and the condition codes calculated. # # If the instruction is chk2 and the Rn value is out-of-bounds, set # # the ichk_flg in SPCOND_FLG. # -# If the memory fetch returns a failing value, pass the failing # +# If the memory fetch returns a failing value, pass the failing # # address and FSLW to the isp_dacc() routine. # # # ######################################################################### - global _chk2_cmp2 + global _chk2_cmp2 _chk2_cmp2: # passing size parameter doesn't matter since chk2 & cmp2 can't do @@ -1974,7 +1974,7 @@ # # To set the ccodes correctly: -# (1) save 'Z' bit from (Rn - lo) +# (1) save 'Z' bit from (Rn - lo) # (2) save 'Z' and 'N' bits from ((hi - lo) - (Rn - hi)) # (3) keep 'X', 'N', and 'V' from before instruction # (4) combine ccodes @@ -1984,7 +1984,7 @@ mov.w %cc, %d3 # fetch resulting ccodes andi.b &0x4, %d3 # keep 'Z' bit sub.l %d0, %d1 # (hi - lo) - cmp.l %d1,%d2 # ((hi - lo) - (Rn - hi)) + cmp.l %d1,%d2 # ((hi - lo) - (Rn - hi)) mov.w %cc, %d4 # fetch resulting ccodes or.b %d4, %d3 # combine w/ earlier ccodes @@ -2003,7 +2003,7 @@ # this code handles the only difference between chk2 and cmp2. chk2 would # have trapped out if the value was out of bounds. we check this by seeing # if the 'N' bit was set by the operation. -chk2_finish: +chk2_finish: btst &0x0, %d4 # is 'N' bit set? bne.b chk2_trap # yes;chk2 should trap rts @@ -2018,7 +2018,7 @@ # read = true # size = longword # TM = data -# software emulation error = true +# software emulation error = true chk2_cmp2_err_l: mov.l %a2,%a0 # pass failing address mov.l &0x01010001,%d0 # pass fslw @@ -2028,7 +2028,7 @@ # read = true # size = word # TM = data -# software emulation error = true +# software emulation error = true chk2_cmp2_err_w: mov.l %a2,%a0 # pass failing address mov.l &0x01410001,%d0 # pass fslw @@ -2036,12 +2036,12 @@ ######################################################################### # XDEF **************************************************************** # -# _div64(): routine to emulate div{u,s}.l ,Dr:Dq # +# _div64(): routine to emulate div{u,s}.l ,Dr:Dq # # 64/32->32r:32q # # # # XREF **************************************************************** # # _calc_ea() - calculate effective address # -# isp_iacc() - handle instruction access error exception # +# isp_iacc() - handle instruction access error exception # # isp_dacc() - handle data access error exception # # isp_restore() - restore An on access error w/ -() or ()+ # # # @@ -2049,24 +2049,24 @@ # none # # # # OUTPUT ************************************************************** # -# If exiting through isp_dacc... # +# If exiting through isp_dacc... # # a0 = failing address # -# d0 = FSLW # +# d0 = FSLW # # else # # none # # # # ALGORITHM *********************************************************** # -# First, decode the operand location. If it's in Dn, fetch from # -# the stack. If it's in memory, use _calc_ea() to calculate the # +# First, decode the operand location. If it's in Dn, fetch from # +# the stack. If it's in memory, use _calc_ea() to calculate the # # effective address. Use _dmem_read_long() to fetch at that address. # # Unless the operand is immediate data. Then use _imem_read_long(). # # Send failures to isp_dacc() or isp_iacc() as appropriate. # -# If the operands are signed, make them unsigned and save the # +# If the operands are signed, make them unsigned and save the # # sign info for later. Separate out special cases like divide-by-zero # # or 32-bit divides if possible. Else, use a special math algorithm # -# to calculate the result. # -# Restore sign info if signed instruction. Set the condition # -# codes. Set idbyz_flg in SPCOND_FLG if divisor was zero. Store the # +# to calculate the result. # +# Restore sign info if signed instruction. Set the condition # +# codes. Set idbyz_flg in SPCOND_FLG if divisor was zero. Store the # # quotient and remainder in the appropriate data registers on the stack.# # # ######################################################################### @@ -2131,7 +2131,7 @@ negx.l %d5 # extract some special cases: -# - is (dividend == 0) ? +# - is (dividend == 0) ? # - is (hi(dividend) == 0 && (divisor <= lo(dividend))) ? (32-bit div) dspecialcases: tst.l %d5 # is (hi(dividend) == 0) @@ -2140,7 +2140,7 @@ tst.l %d6 # is (lo(dividend) == 0), too beq.w ddone # yes, so (dividend == 0) - cmp.l %d7,%d6 # is (divisor <= lo(dividend)) + cmp.l %d7,%d6 # is (divisor <= lo(dividend)) bls.b d32bitdivide # yes, so use 32 bit divide exg %d5,%d6 # q = 0, r = dividend @@ -2153,7 +2153,7 @@ dnormaldivide: # last special case: -# - is hi(dividend) >= divisor ? if yes, then overflow +# - is hi(dividend) >= divisor ? if yes, then overflow cmp.l %d7,%d5 bls.b ddovf # answer won't fit in 32 bits @@ -2166,7 +2166,7 @@ beq.b ddone # divu has no processing!!! # it was a divs.l, so ccode setting is a little more complicated... - tst.b NDIVIDEND(%a6) # remainder has same sign + tst.b NDIVIDEND(%a6) # remainder has same sign beq.b dcc # as dividend. neg.l %d5 # sgn(rem) = sgn(dividend) dcc: @@ -2194,7 +2194,7 @@ mov.w %cc, EXC_CC(%a6) mov.w NDRSAVE(%a6), %d0 # get Dr off stack - mov.w NDQSAVE(%a6), %d1 # get Dq off stack + mov.w NDQSAVE(%a6), %d1 # get Dq off stack # if the register numbers are the same, only the quotient gets saved. # so, if we always save the quotient second, we save ourselves a cmp&beq @@ -2221,8 +2221,8 @@ # For this implementation b=2**16, and the target is U1U2U3U4/V1V2, # # where U,V are words of the quadword dividend and longword divisor, # # and U1, V1 are the most significant words. # -# # -# The most sig. longword of the 64 bit dividend must be in %d5, least # +# # +# The most sig. longword of the 64 bit dividend must be in %d5, least # # in %d6. The divisor must be in the variable ddivisor, and the # # signed/unsigned flag ddusign must be set (0=unsigned,1=signed). # # The quotient is returned in %d6, remainder in %d5, unless the # @@ -2242,7 +2242,7 @@ # dividing the divisor word into each dividend word. In this case, # the first two quotient words must be zero, or overflow would occur. # Since we already checked this case above, we can treat the most significant -# longword of the dividend as (0) remainder (see Knuth) and merely complete +# longword of the dividend as (0) remainder (see Knuth) and merely complete # the last two divisions to get a quotient longword and word remainder: clr.l %d1 @@ -2278,12 +2278,12 @@ clr.b DDSECOND(%a6) # clear flag for quotient digits clr.l %d1 # %d1 will hold trial quotient ddnchk: - btst &31, %d7 # must we normalize? first word of + btst &31, %d7 # must we normalize? first word of bne.b ddnormalized # divisor (V1) must be >= 65536/2 addq.l &0x1, DDNORMAL(%a6) # count normalization shifts lsl.l &0x1, %d7 # shift the divisor lsl.l &0x1, %d6 # shift u4,u3 with overflow to u2 - roxl.l &0x1, %d5 # shift u1,u2 + roxl.l &0x1, %d5 # shift u1,u2 bra.w ddnchk ddnormalized: @@ -2293,12 +2293,12 @@ mov.l %d5, %d2 # dividend mslw swap %d2 swap %d3 - cmp.w %d2, %d3 # V1 = U1 ? + cmp.w %d2, %d3 # V1 = U1 ? bne.b ddqcalc1 mov.w &0xffff, %d1 # use max trial quotient word bra.b ddadj0 ddqcalc1: - mov.l %d5, %d1 + mov.l %d5, %d1 divu.w %d3, %d1 # use quotient of mslw/msw @@ -2329,7 +2329,7 @@ # add.l %d6, %d4 # (U1U2 - V1q) + U3 - cmp.l %d2, %d4 + cmp.l %d2, %d4 bls.b ddadjd1 # is V2q > (U1U2-V1q) + U3 ? subq.l &0x1, %d1 # yes, decrement and recheck bra.b ddadj1 @@ -2366,7 +2366,7 @@ tst.b DDSECOND(%a6) # both q words done? bne.b ddremain # first quotient digit now correct. store digit and shift the -# (subtracted) dividend +# (subtracted) dividend mov.w %d1, DDQUOTIENT(%a6) clr.l %d1 swap %d5 @@ -2377,7 +2377,7 @@ bra.w ddnormalized ddremain: # add 2nd word to quotient, get the remainder. - mov.w %d1, DDQUOTIENT+2(%a6) + mov.w %d1, DDQUOTIENT+2(%a6) # shift down one word/digit to renormalize remainder. mov.w %d5, %d6 swap %d6 @@ -2391,7 +2391,7 @@ dbf %d7, ddnlp ddrn: mov.l %d6, %d5 # remainder - mov.l DDQUOTIENT(%a6), %d6 # quotient + mov.l DDQUOTIENT(%a6), %d6 # quotient rts dmm2: @@ -2421,7 +2421,7 @@ clr.w %d2 # lsw of two mixed products used, swap %d5 # now use msws of longwords swap %d2 - add.l %d2, %d5 + add.l %d2, %d5 add.l %d3, %d5 # %d5 now ms 32 bits of final product rts @@ -2463,10 +2463,10 @@ # also, we call isp_restore in case the effective addressing mode was # (an)+ or -(an) in which case the previous "an" value must be restored. # FSLW: -# read = true -# size = longword +# read = true +# size = longword # TM = data -# software emulation error = true +# software emulation error = true div64_err: bsr.l isp_restore # restore addr reg mov.l %a2,%a0 # pass failing address @@ -2480,17 +2480,17 @@ # XREF **************************************************************** # # _calc_ea() - calculate effective address # # isp_iacc() - handle instruction access error exception # -# isp_dacc() - handle data access error exception # +# isp_dacc() - handle data access error exception # # isp_restore() - restore An on access error w/ -() or ()+ # # # # INPUT *************************************************************** # # none # # # # OUTPUT ************************************************************** # -# If exiting through isp_dacc... # +# If exiting through isp_dacc... # # a0 = failing address # # d0 = FSLW # -# else # +# else # # none # # # # ALGORITHM *********************************************************** # @@ -2499,9 +2499,9 @@ # effective address. Use _dmem_read_long() to fetch at that address. # # Unless the operand is immediate data. Then use _imem_read_long(). # # Send failures to isp_dacc() or isp_iacc() as appropriate. # -# If the operands are signed, make them unsigned and save the # +# If the operands are signed, make them unsigned and save the # # sign info for later. Perform the multiplication using 16x16->32 # -# unsigned multiplies and "add" instructions. Store the high and low # +# unsigned multiplies and "add" instructions. Store the high and low # # portions of the result in the appropriate data registers on the # # stack. Calculate the condition codes, also. # # # @@ -2554,15 +2554,15 @@ # the result sign is the exclusive or of the operand sign bits. mul64_chk_md_sgn: tst.l %d4 # is multiplicand negative? - bge.b mul64_alg # no + bge.b mul64_alg # no neg.l %d4 # make multiplicand positive eori.b &0x1, EXC_TEMP(%a6) # calculate correct sign ######################################################################### # 63 32 0 # -# ---------------------------- # -# | hi(mplier) * hi(mplicand)| # -# ---------------------------- # +# ---------------------------- # +# | hi(mplier) * hi(mplicand)| # +# ---------------------------- # # ----------------------------- # # | hi(mplier) * lo(mplicand) | # # ----------------------------- # @@ -2639,7 +2639,7 @@ andi.b &0x8, %d7 # extract 'N' bit mul64_ccode_set: - mov.b EXC_CC+1(%a6), %d6 # fetch previous %ccr + mov.b EXC_CC+1(%a6), %d6 # fetch previous %ccr andi.b &0x10, %d6 # all but 'X' bit changes or.b %d7, %d6 # group 'X' and 'N' @@ -2698,10 +2698,10 @@ # also, we call isp_restore in case the effective addressing mode was # (an)+ or -(an) in which case the previous "an" value must be restored. # FSLW: -# read = true -# size = longword +# read = true +# size = longword # TM = data -# software emulation error = true +# software emulation error = true mul64_err: bsr.l isp_restore # restore addr reg mov.l %a2,%a0 # pass failing address @@ -2728,7 +2728,7 @@ # # # _isp_cas2_finish(): # # see cas2 core emulation code # -# # +# # # OUTPUT ************************************************************** # # _compandset2(): # # see cas2 core emulation code # @@ -2744,7 +2744,7 @@ # pages from being paged out. If either _real_lock_page() fails, exit # # through _cas_terminate2(). Don't forget to unlock the 1st locked page # # using _real_unlock_paged() if the 2nd lock-page fails. # -# Finally, branch to the core cas2 emulation code by calling the # +# Finally, branch to the core cas2 emulation code by calling the # # "callout" _real_cas2(). # # # # _isp_cas2_finish(): # @@ -2793,7 +2793,7 @@ lsr.w &0x6,%d1 andi.w &0x7,%d1 # extract Du1 mov.l (EXC_DREGS,%a6,%d1.w*4),%d4 # fetch Update1 Op - + andi.w &0x7,%d0 # extract Dc1 mov.l (EXC_DREGS,%a6,%d0.w*4),%d2 # fetch Compare1 Op mov.w %d0,DC1(%a6) @@ -2827,7 +2827,7 @@ bra.l _real_cas2 -# if the 2nd lock attempt fails, then we must still unlock the +# if the 2nd lock attempt fails, then we must still unlock the # first page(s). cas_preterm: mov.l %d0,-(%sp) # save FSLW @@ -2869,7 +2869,7 @@ sf %d1 # pass size mov.l ADDR1(%a6),%a0 # pass ADDR1 bsr.l _real_unlock_page # unlock page - + mov.l %d2,%d0 # pass mode sf %d1 # pass size mov.l ADDR2(%a6),%a0 # pass ADDR2 @@ -2900,7 +2900,7 @@ st %d1 # pass size mov.l ADDR1(%a6),%a0 # pass ADDR1 bsr.l _real_unlock_page # unlock page - + mov.l %d2,%d0 # pass mode st %d1 # pass size mov.l ADDR2(%a6),%a0 # pass ADDR2 @@ -2928,11 +2928,11 @@ # (external to package) # # # # XREF **************************************************************** # -# _calc_ea(): calculate effective address # +# _calc_ea(): calculate effective address # # # # INPUT *************************************************************** # # compandset(): # -# none # +# none # # _isp_cas_restart(): # # d6 = previous sfc/dfc # # _isp_cas_finish(): # @@ -2959,10 +2959,10 @@ # ALGORITHM *********************************************************** # # # # compandset(): # -# First, calculate the effective address. Then, decode the # +# First, calculate the effective address. Then, decode the # # instruction word and fetch the "compare" (DC) and "update" (Du) # # operands. # -# Next, call the external routine _real_lock_page() so that the # +# Next, call the external routine _real_lock_page() so that the # # operating system can keep this page from being paged out while we're # # in this routine. If this call fails, jump to _cas_terminate2(). # # The routine then branches to _real_cas(). This external routine # @@ -2971,7 +2971,7 @@ # this purpose. # # # # _isp_cas_finish(): # -# Either way, after emulation, the package is re-entered at # +# Either way, after emulation, the package is re-entered at # # _isp_cas_finish(). This routine re-compares the operands in order to # # set the condition codes. Finally, these routines will call # # _real_unlock_page() in order to unlock the pages that were previously # @@ -2984,13 +2984,13 @@ # _isp_cas_terminate(): # # This routine can be entered from an access error handler where # # an emulation operand access failed and the operating system would # -# like an access error stack frame created instead of the current # +# like an access error stack frame created instead of the current # # unimplemented integer instruction frame. # -# Also, the package enters here if a call to _real_lock_page() # +# Also, the package enters here if a call to _real_lock_page() # # fails. # # # # _isp_cas_inrange(): # -# Checks to see whether the instruction address passed to it in # +# Checks to see whether the instruction address passed to it in # # a0 is within the software package cas/cas2 emulation routines. This # # can be helpful for an operating system to determine whether an access # # error during emulation was due to a cas/cas2 emulation access. # @@ -3003,18 +3003,18 @@ global _compandset _compandset: btst &0x1,EXC_OPWORD(%a6) # word or long operation? - bne.b compandsetl # long + bne.b compandsetl # long compandsetw: movq.l &0x2,%d0 # size = 2 bytes - bsr.l _calc_ea # a0 = calculated + bsr.l _calc_ea # a0 = calculated mov.l %a0,ADDR(%a6) # save for possible restart sf %d7 # clear d7 for word size bra.b compandsetfetch compandsetl: movq.l &0x4,%d0 # size = 4 bytes - bsr.l _calc_ea # a0 = calculated + bsr.l _calc_ea # a0 = calculated mov.l %a0,ADDR(%a6) # save for possible restart st %d7 # set d7 for longword size @@ -3040,7 +3040,7 @@ tst.l %d0 # did error occur? bne.w _cas_terminate2 # yes, clean up the mess mov.l %a2,%a0 # pass addr in a0 - + bra.l _real_cas ######## @@ -3053,7 +3053,7 @@ # from the locked routine... cas_finish_w: mov.w EXC_CC(%a6),%cc # restore cc - cmp.w %d0,%d4 # do word compare + cmp.w %d0,%d4 # do word compare mov.w %cc,EXC_CC(%a6) # save cc tst.b %d1 # update compare reg? @@ -3074,7 +3074,7 @@ # from the locked routine... cas_finish_l: mov.w EXC_CC(%a6),%cc # restore cc - cmp.l %d0,%d4 # do longword compare + cmp.l %d0,%d4 # do longword compare mov.w %cc,EXC_CC(%a6) # save cc tst.b %d1 # update compare reg? @@ -3092,7 +3092,7 @@ rts ######## - + global _isp_cas_restart _isp_cas_restart: mov.l %d6,%sfc # restore previous sfc @@ -3104,7 +3104,7 @@ mov.l ADDR(%a6),%a0 # load btst &0x1,EXC_OPWORD(%a6) # word or long operation? sne %d7 # set d7 accordingly - bra.w compandsetfetch + bra.w compandsetfetch ######## @@ -3151,7 +3151,7 @@ cmp.l %a0,%a1 # is PC in range? blt.b cin_no # no rts # yes; return d0 = 0 -cin_no: +cin_no: mov.l &-0x1,%d0 # out of range; return d0 = -1 rts @@ -3179,28 +3179,28 @@ # # # XREF **************************************************************** # # _isp_cas2_finish() - only exit point for this emulation code; # -# do clean-up; calculate ccodes; store # +# do clean-up; calculate ccodes; store # # Compare Ops if appropriate. # # # # INPUT *************************************************************** # # *see chart below* # -# # +# # # OUTPUT ************************************************************** # # *see chart below* # # # # ALGORITHM *********************************************************** # # (1) Make several copies of the effective address. # # (2) Save current SR; Then mask off all maskable interrupts. # -# (3) Save current SFC/DFC (ASSUMED TO BE EQUAL!!!); Then set # -# according to whether exception occurred in user or # +# (3) Save current SFC/DFC (ASSUMED TO BE EQUAL!!!); Then set # +# according to whether exception occurred in user or # # supervisor mode. # # (4) Use "plpaw" instruction to pre-load ATC with effective # # address pages(s). THIS SHOULD NOT FAULT!!! The relevant # # page(s) should have already been made resident prior to # -# entering this routine. # -# (5) Push the operand lines from the cache w/ "cpushl". # +# entering this routine. # +# (5) Push the operand lines from the cache w/ "cpushl". # # In the 68040, this was done within the locked region. In # -# the 68060, it is done outside of the locked region. # +# the 68060, it is done outside of the locked region. # # (6) Use "plpar" instruction to do a re-load of ATC entries for # # ADDR1 since ADDR2 entries may have pushed ADDR1 out of the # # ATC. # @@ -3214,19 +3214,19 @@ # back to itself (as w/ the '040) so we can gracefully unlock # # the bus (and assert LOCKE*) using BUSCR and the final move. # # (12)Exit. # -# (13)Write update operand to the DST locations. Use BUSCR to # +# (13)Write update operand to the DST locations. Use BUSCR to # # assert LOCKE* for the final write operation. # # (14)Exit. # # # -# The algorithm is actually implemented slightly differently # -# depending on the size of the operation and the misalignment of the # +# The algorithm is actually implemented slightly differently # +# depending on the size of the operation and the misalignment of the # # operands. A misaligned operand must be written in aligned chunks or # # else the BUSCR register control gets confused. # # # ######################################################################### ################################################################# -# THIS IS THE STATE OF THE INTEGER REGISTER FILE UPON # +# THIS IS THE STATE OF THE INTEGER REGISTER FILE UPON # # ENTERING _isp_cas2(). # # # # D0 = xxxxxxxx # @@ -3236,7 +3236,7 @@ # D4 = update oper 1 # # D5 = update oper 2 # # D6 = 'xxxxxxff if supervisor mode; 'xxxxxx00 if user mode # -# D7 = 'xxxxxxff if longword operation; 'xxxxxx00 if word # +# D7 = 'xxxxxxff if longword operation; 'xxxxxx00 if word # # A0 = ADDR1 # # A1 = ADDR2 # # A2 = xxxxxxxx # @@ -3339,22 +3339,22 @@ # A4 = bus unlock value # A5 = xxxxxxxx # - align 0x10 + align 0x10 CAS2L_START: movc %a2,%buscr # assert LOCK* movs.l (%a1),%d1 # fetch Dest2[31:0] movs.l (%a0),%d0 # fetch Dest1[31:0] - bra.b CAS2L_CONT + bra.b CAS2L_CONT CAS2L_ENTER: bra.b ~+16 CAS2L_CONT: - cmp.l %d0,%d2 # Dest1 - Compare1 + cmp.l %d0,%d2 # Dest1 - Compare1 bne.b CAS2L_NOUPDATE - cmp.l %d1,%d3 # Dest2 - Compare2 + cmp.l %d1,%d3 # Dest2 - Compare2 bne.b CAS2L_NOUPDATE movs.l %d5,(%a1) # Update2[31:0] -> DEST2 - bra.b CAS2L_UPDATE + bra.b CAS2L_UPDATE bra.b ~+16 CAS2L_UPDATE: @@ -3384,7 +3384,7 @@ #### ################################################################# -# THIS MUST BE THE STATE OF THE INTEGER REGISTER FILE UPON # +# THIS MUST BE THE STATE OF THE INTEGER REGISTER FILE UPON # # ENTERING _isp_cas2(). # # # # D0 = destination[31:0] operand 1 # @@ -3430,22 +3430,22 @@ bra.l _isp_cas2_finish #### - align 0x10 + align 0x10 CAS2L2_START: movc %a2,%buscr # assert LOCK* movs.l (%a1),%d1 # fetch Dest2[31:0] movs.l (%a0),%d0 # fetch Dest1[31:0] - bra.b CAS2L2_CONT + bra.b CAS2L2_CONT CAS2L2_ENTER: bra.b ~+16 CAS2L2_CONT: - cmp.l %d0,%d2 # Dest1 - Compare1 + cmp.l %d0,%d2 # Dest1 - Compare1 bne.b CAS2L2_NOUPDATE - cmp.l %d1,%d3 # Dest2 - Compare2 + cmp.l %d1,%d3 # Dest2 - Compare2 bne.b CAS2L2_NOUPDATE movs.l %d5,(%a1) # Update2[31:0] -> Dest2 - bra.b CAS2L2_UPDATE + bra.b CAS2L2_UPDATE bra.b ~+16 CAS2L2_UPDATE: @@ -3490,22 +3490,22 @@ ################################# - align 0x10 + align 0x10 CAS2L3_START: movc %a2,%buscr # assert LOCK* movs.l (%a1),%d1 # fetch Dest2[31:0] movs.l (%a0),%d0 # fetch Dest1[31:0] - bra.b CAS2L3_CONT + bra.b CAS2L3_CONT CAS2L3_ENTER: bra.b ~+16 CAS2L3_CONT: - cmp.l %d0,%d2 # Dest1 - Compare1 + cmp.l %d0,%d2 # Dest1 - Compare1 bne.b CAS2L3_NOUPDATE - cmp.l %d1,%d3 # Dest2 - Compare2 + cmp.l %d1,%d3 # Dest2 - Compare2 bne.b CAS2L3_NOUPDATE movs.l %d5,(%a1) # Update2[31:0] -> DEST2 - bra.b CAS2L3_UPDATE + bra.b CAS2L3_UPDATE bra.b ~+16 CAS2L3_UPDATE: @@ -3531,7 +3531,7 @@ nop nop bra.b ~+16 - + CAS2L3_NOUPDATE: rol.l &0x8,%d0 # get Dest1[31:24] movs.b %d0,(%a0)+ # Dest1[31:24] -> DEST1 @@ -3639,22 +3639,22 @@ # A4 = bus unlock value # A5 = xxxxxxxx # - align 0x10 + align 0x10 CAS2W_START: movc %a2,%buscr # assert LOCK* movs.w (%a1),%d1 # fetch Dest2[15:0] movs.w (%a0),%d0 # fetch Dest1[15:0] - bra.b CAS2W_CONT2 + bra.b CAS2W_CONT2 CAS2W_ENTER: bra.b ~+16 CAS2W_CONT2: - cmp.w %d0,%d2 # Dest1 - Compare1 + cmp.w %d0,%d2 # Dest1 - Compare1 bne.b CAS2W_NOUPDATE - cmp.w %d1,%d3 # Dest2 - Compare2 + cmp.w %d1,%d3 # Dest2 - Compare2 bne.b CAS2W_NOUPDATE movs.w %d5,(%a1) # Update2[15:0] -> DEST2 - bra.b CAS2W_UPDATE + bra.b CAS2W_UPDATE bra.b ~+16 CAS2W_UPDATE: @@ -3684,7 +3684,7 @@ #### ################################################################# -# THIS MUST BE THE STATE OF THE INTEGER REGISTER FILE UPON # +# THIS MUST BE THE STATE OF THE INTEGER REGISTER FILE UPON # # ENTERING _isp_cas2(). # # # # D0 = destination[15:0] operand 1 # @@ -3730,22 +3730,22 @@ bra.l _isp_cas2_finish #### - align 0x10 + align 0x10 CAS2W2_START: movc %a2,%buscr # assert LOCK* movs.w (%a1),%d1 # fetch Dest2[15:0] movs.w (%a0),%d0 # fetch Dest1[15:0] - bra.b CAS2W2_CONT2 + bra.b CAS2W2_CONT2 CAS2W2_ENTER: bra.b ~+16 CAS2W2_CONT2: - cmp.w %d0,%d2 # Dest1 - Compare1 + cmp.w %d0,%d2 # Dest1 - Compare1 bne.b CAS2W2_NOUPDATE - cmp.w %d1,%d3 # Dest2 - Compare2 + cmp.w %d1,%d3 # Dest2 - Compare2 bne.b CAS2W2_NOUPDATE movs.w %d5,(%a1) # Update2[15:0] -> DEST2 - bra.b CAS2W2_UPDATE + bra.b CAS2W2_UPDATE bra.b ~+16 CAS2W2_UPDATE: @@ -3789,34 +3789,34 @@ bra.b CAS2W2_START # ###### ## ###### -# # # # # +# # # # # # # ###### ###### # # # # # # ###### # # ###### ######################################################################### # XDEF **************************************************************** # -# _isp_cas(): "core" emulation code for the cas instruction # +# _isp_cas(): "core" emulation code for the cas instruction # # # # XREF **************************************************************** # # _isp_cas_finish() - only exit point for this emulation code; # # do clean-up # # # # INPUT *************************************************************** # -# *see entry chart below* # +# *see entry chart below* # # # # OUTPUT ************************************************************** # # *see exit chart below* # # # # ALGORITHM *********************************************************** # -# (1) Make several copies of the effective address. # -# (2) Save current SR; Then mask off all maskable interrupts. # +# (1) Make several copies of the effective address. # +# (2) Save current SR; Then mask off all maskable interrupts. # # (3) Save current DFC/SFC (ASSUMED TO BE EQUAL!!!); Then set # # SFC/DFC according to whether exception occurred in user or # # supervisor mode. # # (4) Use "plpaw" instruction to pre-load ATC with efective # # address page(s). THIS SHOULD NOT FAULT!!! The relevant # -# page(s) should have been made resident prior to entering # +# page(s) should have been made resident prior to entering # # this routine. # # (5) Push the operand lines from the cache w/ "cpushl". # # In the 68040, this was done within the locked region. In # @@ -3834,8 +3834,8 @@ # (12)Write update operand to the DST location. Use BUSCR to # # assert LOCKE* for the final write operation. # # (13)Exit. # -# # -# The algorithm is actually implemented slightly differently # +# # +# The algorithm is actually implemented slightly differently # # depending on the size of the operation and the misalignment of the # # operand. A misaligned operand must be written in aligned chunks or # # else the BUSCR register control gets confused. # @@ -3934,9 +3934,9 @@ CASW_START: movc %a1,%buscr # assert LOCK* movs.w (%a0),%d0 # fetch Dest[15:0] - cmp.w %d0,%d4 # Dest - Compare + cmp.w %d0,%d4 # Dest - Compare bne.b CASW_NOUPDATE - bra.b CASW_UPDATE + bra.b CASW_UPDATE CASW_ENTER: bra.b ~+16 @@ -3961,7 +3961,7 @@ movs.b %d0,(%a0)+ # Dest[15:8] -> DEST movc %a2,%buscr # assert LOCKE* rol.l &0x8,%d0 # get Dest[7:0] - bra.b CASW_NOUPDATE2 + bra.b CASW_NOUPDATE2 bra.b ~+16 CASW_NOUPDATE2: @@ -4090,9 +4090,9 @@ CASL_START: movc %a1,%buscr # assert LOCK* movs.l (%a0),%d0 # fetch Dest[31:0] - cmp.l %d0,%d4 # Dest - Compare + cmp.l %d0,%d4 # Dest - Compare bne.b CASL_NOUPDATE - bra.b CASL_UPDATE + bra.b CASL_UPDATE CASL_ENTER: bra.b ~+16 @@ -4117,7 +4117,7 @@ movs.w %d0,(%a0)+ # Dest[31:16] -> DEST swap %d0 # get Dest[15:0] movc %a2,%buscr # assert LOCKE* - bra.b CASL_NOUPDATE2 + bra.b CASL_NOUPDATE2 bra.b ~+16 CASL_NOUPDATE2: @@ -4214,7 +4214,7 @@ mov.l &0xa0000000,%a2 # assert LOCKE* buscr value mov.l &0x00000000,%a3 # buscr unlock value -# pre-load the instruction cache for the following algorithm. +# pre-load the instruction cache for the following algorithm. # this will minimize the number of cycles that LOCK* will be asserted. bra.b CASL2_ENTER # start pre-loading icache @@ -4238,9 +4238,9 @@ CASL2_START: movc %a1,%buscr # assert LOCK* movs.l (%a0),%d0 # fetch Dest[31:0] - cmp.l %d0,%d4 # Dest - Compare + cmp.l %d0,%d4 # Dest - Compare bne.b CASL2_NOUPDATE - bra.b CASL2_UPDATE + bra.b CASL2_UPDATE CASL2_ENTER: bra.b ~+16 @@ -4263,14 +4263,14 @@ movs.b %d0,(%a0)+ # Dest[31:24] -> DEST swap %d0 # get Dest[23:8] movs.w %d0,(%a0)+ # Dest[23:8] -> DEST+0x1 - bra.b CASL2_NOUPDATE2 + bra.b CASL2_NOUPDATE2 bra.b ~+16 CASL2_NOUPDATE2: rol.l &0x8,%d0 # get Dest[7:0] movc %a2,%buscr # assert LOCKE* movs.b %d0,(%a0) # Dest[7:0] -> DEST+0x3 - bra.b CASL2_NOUPDATE3 + bra.b CASL2_NOUPDATE3 nop bra.b ~+16 diff -Nru a/arch/m68k/ifpsp060/src/itest.S b/arch/m68k/ifpsp060/src/itest.S --- a/arch/m68k/ifpsp060/src/itest.S Tue May 18 23:38:05 2004 +++ b/arch/m68k/ifpsp060/src/itest.S Tue May 18 23:38:05 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -453,8 +453,8 @@ bne.l error ##################################################### -# movep.w %d0,(0x0,%a0) # -# - this test has %cc initially equal to zero # +# movep.w %d0,(0x0,%a0) # +# - this test has %cc initially equal to zero # ##################################################### movp_2: addq.l &0x1,TESTCTR(%a6) diff -Nru a/arch/m68k/ifpsp060/src/pfpsp.S b/arch/m68k/ifpsp060/src/pfpsp.S --- a/arch/m68k/ifpsp060/src/pfpsp.S Tue May 18 23:38:05 2004 +++ b/arch/m68k/ifpsp060/src/pfpsp.S Tue May 18 23:38:05 2004 @@ -5,10 +5,10 @@ Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. - + THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, -MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. @@ -89,7 +89,7 @@ bra.l _fpsp_effadd short 0x0000 - space 56 + space 56 ############################################################### global _fpsp_done @@ -323,33 +323,33 @@ set EXC_D1, EXC_DREGS+(1*4) set EXC_D0, EXC_DREGS+(0*4) -set EXC_FP0, EXC_FPREGS+(0*12) # offset of saved fp0 -set EXC_FP1, EXC_FPREGS+(1*12) # offset of saved fp1 -set EXC_FP2, EXC_FPREGS+(2*12) # offset of saved fp2 (not used) +set EXC_FP0, EXC_FPREGS+(0*12) # offset of saved fp0 +set EXC_FP1, EXC_FPREGS+(1*12) # offset of saved fp1 +set EXC_FP2, EXC_FPREGS+(2*12) # offset of saved fp2 (not used) -set FP_SCR1, LV+80 # fp scratch 1 -set FP_SCR1_EX, FP_SCR1+0 +set FP_SCR1, LV+80 # fp scratch 1 +set FP_SCR1_EX, FP_SCR1+0 set FP_SCR1_SGN, FP_SCR1+2 -set FP_SCR1_HI, FP_SCR1+4 -set FP_SCR1_LO, FP_SCR1+8 +set FP_SCR1_HI, FP_SCR1+4 +set FP_SCR1_LO, FP_SCR1+8 -set FP_SCR0, LV+68 # fp scratch 0 -set FP_SCR0_EX, FP_SCR0+0 +set FP_SCR0, LV+68 # fp scratch 0 +set FP_SCR0_EX, FP_SCR0+0 set FP_SCR0_SGN, FP_SCR0+2 -set FP_SCR0_HI, FP_SCR0+4 -set FP_SCR0_LO, FP_SCR0+8 +set FP_SCR0_HI, FP_SCR0+4 +set FP_SCR0_LO, FP_SCR0+8 -set FP_DST, LV+56 # fp destination operand -set FP_DST_EX, FP_DST+0 +set FP_DST, LV+56 # fp destination operand +set FP_DST_EX, FP_DST+0 set FP_DST_SGN, FP_DST+2 -set FP_DST_HI, FP_DST+4 -set FP_DST_LO, FP_DST+8 +set FP_DST_HI, FP_DST+4 +set FP_DST_LO, FP_DST+8 -set FP_SRC, LV+44 # fp source operand -set FP_SRC_EX, FP_SRC+0 +set FP_SRC, LV+44 # fp source operand +set FP_SRC_EX, FP_SRC+0 set FP_SRC_SGN, FP_SRC+2 -set FP_SRC_HI, FP_SRC+4 -set FP_SRC_LO, FP_SRC+8 +set FP_SRC_HI, FP_SRC+4 +set FP_SRC_LO, FP_SRC+8 set USER_FPIAR, LV+40 # FP instr address register @@ -373,7 +373,7 @@ set EXC_TEMP, LV+16 # temporary space set DTAG, LV+15 # destination operand type -set STAG, LV+14 # source operand type +set STAG, LV+14 # source operand type set SPCOND_FLG, LV+10 # flag: special case (see below) @@ -388,17 +388,17 @@ # Helpful macros set FTEMP, 0 # offsets within an -set FTEMP_EX, 0 # extended precision +set FTEMP_EX, 0 # extended precision set FTEMP_SGN, 2 # value saved in memory. -set FTEMP_HI, 4 -set FTEMP_LO, 8 +set FTEMP_HI, 4 +set FTEMP_LO, 8 set FTEMP_GRS, 12 set LOCAL, 0 # offsets within an -set LOCAL_EX, 0 # extended precision +set LOCAL_EX, 0 # extended precision set LOCAL_SGN, 2 # value saved in memory. -set LOCAL_HI, 4 -set LOCAL_LO, 8 +set LOCAL_HI, 4 +set LOCAL_LO, 8 set LOCAL_GRS, 12 set DST, 0 # offsets within an @@ -488,17 +488,17 @@ ###################################### set dzinf_mask, inf_mask+dz_mask+adz_mask set opnan_mask, nan_mask+operr_mask+aiop_mask -set nzi_mask, 0x01ffffff #clears N, Z, and I +set nzi_mask, 0x01ffffff #clears N, Z, and I set unfinx_mask, unfl_mask+inex2_mask+aunfl_mask+ainex_mask set unf2inx_mask, unfl_mask+inex2_mask+ainex_mask set ovfinx_mask, ovfl_mask+inex2_mask+aovfl_mask+ainex_mask set inx1a_mask, inex1_mask+ainex_mask set inx2a_mask, inex2_mask+ainex_mask -set snaniop_mask, nan_mask+snan_mask+aiop_mask +set snaniop_mask, nan_mask+snan_mask+aiop_mask set snaniop2_mask, snan_mask+aiop_mask set naniop_mask, nan_mask+aiop_mask set neginf_mask, neg_mask+inf_mask -set infaiop_mask, inf_mask+aiop_mask +set infaiop_mask, inf_mask+aiop_mask set negz_mask, neg_mask+z_mask set opaop_mask, operr_mask+aiop_mask set unfl_inx_mask, unfl_mask+aunfl_mask+ainex_mask @@ -527,8 +527,8 @@ set mantissalen, 64 # length of mantissa in bits set BYTE, 1 # len(byte) == 1 byte -set WORD, 2 # len(word) == 2 bytes -set LONG, 4 # len(longword) == 2 bytes +set WORD, 2 # len(word) == 2 bytes +set LONG, 4 # len(longword) == 2 bytes set BSUN_VEC, 0xc0 # bsun vector offset set INEX_VEC, 0xc4 # inexact vector offset @@ -598,7 +598,7 @@ # INPUT *************************************************************** # # - The system stack contains the FP Ovfl exception stack frame # # - The fsave frame contains the source operand # -# # +# # # OUTPUT ************************************************************** # # Overflow Exception enabled: # # - The system stack is unchanged # @@ -609,24 +609,24 @@ # # # ALGORITHM *********************************************************** # # On the 060, if an FP overflow is present as the result of any # -# instruction, the 060 will take an overflow exception whether the # -# exception is enabled or disabled in the FPCR. For the disabled case, # +# instruction, the 060 will take an overflow exception whether the # +# exception is enabled or disabled in the FPCR. For the disabled case, # # This handler emulates the instruction to determine what the correct # # default result should be for the operation. This default result is # -# then stored in either the FP regfile, data regfile, or memory. # -# Finally, the handler exits through the "callout" _fpsp_done() # +# then stored in either the FP regfile, data regfile, or memory. # +# Finally, the handler exits through the "callout" _fpsp_done() # # denoting that no exceptional conditions exist within the machine. # -# If the exception is enabled, then this handler must create the # +# If the exception is enabled, then this handler must create the # # exceptional operand and plave it in the fsave state frame, and store # -# the default result (only if the instruction is opclass 3). For # -# exceptions enabled, this handler must exit through the "callout" # +# the default result (only if the instruction is opclass 3). For # +# exceptions enabled, this handler must exit through the "callout" # # _real_ovfl() so that the operating system enabled overflow handler # # can handle this case. # -# Two other conditions exist. First, if overflow was disabled # -# but the inexact exception was enabled, this handler must exit # +# Two other conditions exist. First, if overflow was disabled # +# but the inexact exception was enabled, this handler must exit # # through the "callout" _real_inex() regardless of whether the result # # was inexact. # -# Also, in the case of an opclass three instruction where # +# Also, in the case of an opclass three instruction where # # overflow was disabled and the trace exception was enabled, this # # handler must exit through the "callout" _real_trace(). # # # @@ -641,9 +641,9 @@ fsave FP_SRC(%a6) # grab the "busy" frame - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack # the FPIAR holds the "current PC" of the faulting instruction mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) @@ -667,7 +667,7 @@ bsr.l set_tag_x # tag the operand type mov.b %d0,STAG(%a6) # maybe NORM,DENORM -# bit five of the fp extension word separates the monadic and dyadic operations +# bit five of the fp extension word separates the monadic and dyadic operations # that can pass through fpsp_ovfl(). remember that fcmp, ftst, and fsincos # will never take this exception. btst &0x5,1+EXC_CMDREG(%a6) # is operation monadic or dyadic? @@ -740,7 +740,7 @@ fovfl_ovfl_on: fmovm.x &0x40,FP_SRC(%a6) # save EXOP (fp1) to stack - mov.w &0xe005,2+FP_SRC(%a6) # save exc status + mov.w &0xe005,2+FP_SRC(%a6) # save exc status fmovm.x EXC_FPREGS(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs @@ -756,10 +756,10 @@ # we must jump to real_inex(). fovfl_inex_on: - fmovm.x &0x40,FP_SRC(%a6) # save EXOP (fp1) to stack + fmovm.x &0x40,FP_SRC(%a6) # save EXOP (fp1) to stack mov.b &0xc4,1+EXC_VOFF(%a6) # vector offset = 0xc4 - mov.w &0xe001,2+FP_SRC(%a6) # save exc status + mov.w &0xe001,2+FP_SRC(%a6) # save exc status fmovm.x EXC_FPREGS(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs @@ -810,7 +810,7 @@ btst &0x7,(%sp) # is trace on? beq.l _fpsp_done # no - fmov.l %fpiar,0x8(%sp) # "Current PC" is in FPIAR + fmov.l %fpiar,0x8(%sp) # "Current PC" is in FPIAR mov.w &0x2024,0x6(%sp) # stk fmt = 0x2; voff = 0x024 bra.l _real_trace @@ -838,7 +838,7 @@ # INPUT *************************************************************** # # - The system stack contains the FP Unfl exception stack frame # # - The fsave frame contains the source operand # -# # +# # # OUTPUT ************************************************************** # # Underflow Exception enabled: # # - The system stack is unchanged # @@ -849,24 +849,24 @@ # # # ALGORITHM *********************************************************** # # On the 060, if an FP underflow is present as the result of any # -# instruction, the 060 will take an underflow exception whether the # -# exception is enabled or disabled in the FPCR. For the disabled case, # +# instruction, the 060 will take an underflow exception whether the # +# exception is enabled or disabled in the FPCR. For the disabled case, # # This handler emulates the instruction to determine what the correct # # default result should be for the operation. This default result is # -# then stored in either the FP regfile, data regfile, or memory. # -# Finally, the handler exits through the "callout" _fpsp_done() # +# then stored in either the FP regfile, data regfile, or memory. # +# Finally, the handler exits through the "callout" _fpsp_done() # # denoting that no exceptional conditions exist within the machine. # -# If the exception is enabled, then this handler must create the # +# If the exception is enabled, then this handler must create the # # exceptional operand and plave it in the fsave state frame, and store # -# the default result (only if the instruction is opclass 3). For # -# exceptions enabled, this handler must exit through the "callout" # +# the default result (only if the instruction is opclass 3). For # +# exceptions enabled, this handler must exit through the "callout" # # _real_unfl() so that the operating system enabled overflow handler # # can handle this case. # -# Two other conditions exist. First, if underflow was disabled # -# but the inexact exception was enabled and the result was inexact, # +# Two other conditions exist. First, if underflow was disabled # +# but the inexact exception was enabled and the result was inexact, # # this handler must exit through the "callout" _real_inex(). # # was inexact. # -# Also, in the case of an opclass three instruction where # +# Also, in the case of an opclass three instruction where # # underflow was disabled and the trace exception was enabled, this # # handler must exit through the "callout" _real_trace(). # # # @@ -881,12 +881,12 @@ fsave FP_SRC(%a6) # grab the "busy" frame - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack # the FPIAR holds the "current PC" of the faulting instruction - mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) + mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long # fetch the instruction words @@ -905,13 +905,13 @@ bsr.l set_tag_x # tag the operand type mov.b %d0,STAG(%a6) # maybe NORM,DENORM -# bit five of the fp ext word separates the monadic and dyadic operations +# bit five of the fp ext word separates the monadic and dyadic operations # that can pass through fpsp_unfl(). remember that fcmp, and ftst # will never take this exception. btst &0x5,1+EXC_CMDREG(%a6) # is op monadic or dyadic? beq.b funfl_extract # monadic -# now, what's left that's not dyadic is fsincos. we can distinguish it +# now, what's left that's not dyadic is fsincos. we can distinguish it # from all dyadics by the '0110xxx pattern btst &0x4,1+EXC_CMDREG(%a6) # is op an fsincos? bne.b funfl_extract # yes @@ -962,7 +962,7 @@ # (0x00000000_80000000_00000000), then the machine will take an # underflow exception. Since this is incorrect, we need to check # if our emulation, after re-doing the operation, decided that -# no underflow was called for. We do these checks only in +# no underflow was called for. We do these checks only in # funfl_{unfl,inex}_on() because w/ both exceptions disabled, this # special case will simply exit gracefully with the correct result. @@ -1002,7 +1002,7 @@ funfl_unfl_on2: fmovm.x &0x40,FP_SRC(%a6) # save EXOP (fp1) to stack - mov.w &0xe003,2+FP_SRC(%a6) # save exc status + mov.w &0xe003,2+FP_SRC(%a6) # save exc status fmovm.x EXC_FPREGS(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs @@ -1021,7 +1021,7 @@ # The `060 FPU multiplier hardware is such that if the result of a # multiply operation is the smallest possible normalized number # (0x00000000_80000000_00000000), then the machine will take an -# underflow exception. +# underflow exception. # But, whether bogus or not, if inexact is enabled AND it occurred, # then we have to branch to real_inex. @@ -1030,10 +1030,10 @@ funfl_inex_on2: - fmovm.x &0x40,FP_SRC(%a6) # save EXOP to stack + fmovm.x &0x40,FP_SRC(%a6) # save EXOP to stack mov.b &0xc4,1+EXC_VOFF(%a6) # vector offset = 0xc4 - mov.w &0xe001,2+FP_SRC(%a6) # save exc status + mov.w &0xe001,2+FP_SRC(%a6) # save exc status fmovm.x EXC_FPREGS(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs @@ -1119,7 +1119,7 @@ # INPUT *************************************************************** # # - The system stack contains the "Unimp Data Type" stk frame # # - The fsave frame contains the ssrc op (for UNNORM/DENORM) # -# # +# # # OUTPUT ************************************************************** # # If Inexact exception (opclass 3): # # - The system stack is changed to an Inexact exception stk frame # @@ -1138,12 +1138,12 @@ # # # ALGORITHM *********************************************************** # # Two main instruction types can enter here: (1) DENORM or UNNORM # -# unimplemented data types. These can be either opclass 0,2 or 3 # +# unimplemented data types. These can be either opclass 0,2 or 3 # # instructions, and (2) PACKED unimplemented data format instructions # # also of opclasses 0,2, or 3. # # For UNNORM/DENORM opclass 0 and 2, the handler fetches the src # # operand from the fsave state frame and the dst operand (if dyadic) # -# from the FP register file. The instruction is then emulated by # +# from the FP register file. The instruction is then emulated by # # choosing an emulation routine from a table of routines indexed by # # instruction type. Once the instruction has been emulated and result # # saved, then we check to see if any enabled exceptions resulted from # @@ -1165,7 +1165,7 @@ # (a Trace stack frame must be created here, too). If an FP exception # # should occur, then we must create an exception stack frame of that # # type and jump to either _real_snan(), _real_operr(), _real_inex(), # -# _real_unfl(), or _real_ovfl() as appropriate. PACKED opclass 3 # +# _real_unfl(), or _real_ovfl() as appropriate. PACKED opclass 3 # # emulation is performed in a similar manner. # # # ######################################################################### @@ -1177,7 +1177,7 @@ # ***************** # * EA * # pre-instruction * * -# ***************** ***************** +# ***************** ***************** # * 0x0 * 0x0dc * * 0x3 * 0x0dc * # ***************** ***************** # * Next * * Next * @@ -1206,9 +1206,9 @@ fsave FP_SRC(%a6) # save fp state - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack btst &0x5,EXC_SR(%a6) # user or supervisor mode? bne.b fu_s @@ -1257,7 +1257,7 @@ fmov.l &0x0,%fpsr # Opclass two w/ memory-to-fpn operation will have an incorrect extended -# precision format if the src format was single or double and the +# precision format if the src format was single or double and the # source data type was an INF, NAN, DENORM, or UNNORM lea FP_SRC(%a6),%a0 # pass ptr to input bsr.l fix_skewed_ops @@ -1276,7 +1276,7 @@ bfextu EXC_CMDREG(%a6){&6:&3},%d0 # dyadic; load dst reg -# bit five of the fp extension word separates the monadic and dyadic operations +# bit five of the fp extension word separates the monadic and dyadic operations # at this point btst &0x5,1+EXC_CMDREG(%a6) # is operation monadic or dyadic? beq.b fu_extract # monadic @@ -1307,13 +1307,13 @@ # # Exceptions in order of precedence: -# BSUN : none +# BSUN : none # SNAN : all dyadic ops # OPERR : fsqrt(-NORM) # OVFL : all except ftst,fcmp # UNFL : all except ftst,fcmp # DZ : fdiv -# INEX2 : all except ftst,fcmp +# INEX2 : all except ftst,fcmp # INEX1 : none (packed doesn't go through here) # @@ -1350,16 +1350,16 @@ # # No exceptions occurred that were also enabled. Now: # -# if (OVFL && ovfl_disabled && inexact_enabled) { +# if (OVFL && ovfl_disabled && inexact_enabled) { # branch to _real_inex() (even if the result was exact!); -# } else { +# } else { # save the result in the proper fp reg (unless the op is fcmp or ftst); # return; -# } +# } # btst &ovfl_bit,FPSR_EXCEPT(%a6) # was overflow set? beq.b fu_in_cont # no - + fu_in_ovflchk: btst &inex2_bit,FPCR_ENABLE(%a6) # was inexact enabled? beq.b fu_in_cont # no @@ -1379,7 +1379,7 @@ # } else { # restore exc state (SNAN||OPERR||OVFL||UNFL||DZ||INEX) into the FPU; # } -# +# fu_in_exc: subi.l &24,%d0 # fix offset to be 0-8 cmpi.b %d0,&0x6 # is exception INEX? (6) @@ -1392,7 +1392,7 @@ bne.w fu_in_exc_ovfl # yes # here, we insert the correct fsave status value into the fsave frame for the -# corresponding exception. the operand in the fsave frame should be the original +# corresponding exception. the operand in the fsave frame should be the original # src operand. fu_in_exc_exit: mov.l %d0,-(%sp) # save d0 @@ -1423,8 +1423,8 @@ bra.b fu_in_exc_exit # If the input operand to this operation was opclass two and a single -# or double precision denorm, inf, or nan, the operand needs to be -# "corrected" in order to have the proper equivalent extended precision +# or double precision denorm, inf, or nan, the operand needs to be +# "corrected" in order to have the proper equivalent extended precision # number. global fix_skewed_ops fix_skewed_ops: @@ -1452,7 +1452,7 @@ bsr.l norm # normalize mantissa neg.w %d0 # -shft amt addi.w &0x3f81,%d0 # adjust new exponent - andi.w &0x8000,LOCAL_EX(%a0) # clear old exponent + andi.w &0x8000,LOCAL_EX(%a0) # clear old exponent or.w %d0,LOCAL_EX(%a0) # insert new exponent rts @@ -1461,7 +1461,7 @@ rts fso_infnan: - andi.b &0x7f,LOCAL_HI(%a0) # clear j-bit + andi.b &0x7f,LOCAL_HI(%a0) # clear j-bit ori.w &0x7fff,LOCAL_EX(%a0) # make exponent = $7fff rts @@ -1484,7 +1484,7 @@ bsr.l norm # normalize mantissa neg.w %d0 # -shft amt addi.w &0x3c01,%d0 # adjust new exponent - andi.w &0x8000,LOCAL_EX(%a0) # clear old exponent + andi.w &0x8000,LOCAL_EX(%a0) # clear old exponent or.w %d0,LOCAL_EX(%a0) # insert new exponent rts @@ -1536,13 +1536,13 @@ bsr.l fout # call fmove out routine # Exceptions in order of precedence: -# BSUN : none +# BSUN : none # SNAN : none # OPERR : fmove.{b,w,l} out of large UNNORM # OVFL : fmove.{s,d} # UNFL : fmove.{s,d,x} # DZ : none -# INEX2 : all +# INEX2 : all # INEX1 : none (packed doesn't travel through here) # determine the highest priority exception(if any) set by the @@ -1554,7 +1554,7 @@ mov.l EXC_A6(%a6),(%a6) # in case a6 changed -# on extended precision opclass three instructions using pre-decrement or +# on extended precision opclass three instructions using pre-decrement or # post-increment addressing mode, the address register is not updated. is the # address register was the stack pointer used from user mode, then let's update # it here. if it was used from supervisor mode, then we have to handle this @@ -1578,7 +1578,7 @@ bra.l _fpsp_done # is the ea mode pre-decrement of the stack pointer from supervisor mode? -# ("fmov.x fpm,-(a7)") if so, +# ("fmov.x fpm,-(a7)") if so, fu_out_done_s: cmpi.b SPCOND_FLG(%a6),&mda7_flg bne.b fu_out_done_cont @@ -1616,7 +1616,7 @@ bfffo %d0{&24:&8},%d0 # find highest priority exception bne.b fu_out_exc # there is at least one set -# no exceptions were set. +# no exceptions were set. # if a disabled overflow occurred and inexact was enabled but the result # was exact, then a branch to _real_inex() is made. btst &ovfl_bit,FPSR_EXCEPT(%a6) # was overflow set? @@ -1633,7 +1633,7 @@ # from FPIAR and put it in the trace stack frame then jump to _real_trace(). # # UNSUPP FRAME TRACE FRAME -# ***************** ***************** +# ***************** ***************** # * EA * * Current * # * * * PC * # ***************** ***************** @@ -1650,7 +1650,7 @@ fmov.l %fpiar,0x8(%sp) bra.l _real_trace -# an exception occurred and that exception was enabled. +# an exception occurred and that exception was enabled. fu_out_exc: subi.l &24,%d0 # fix offset to be 0-8 @@ -1662,15 +1662,15 @@ swbeg &0x8 tbl_fu_out: short tbl_fu_out - tbl_fu_out # BSUN can't happen - short tbl_fu_out - tbl_fu_out # SNAN can't happen + short tbl_fu_out - tbl_fu_out # SNAN can't happen short fu_operr - tbl_fu_out # OPERR - short fu_ovfl - tbl_fu_out # OVFL - short fu_unfl - tbl_fu_out # UNFL + short fu_ovfl - tbl_fu_out # OVFL + short fu_unfl - tbl_fu_out # UNFL short tbl_fu_out - tbl_fu_out # DZ can't happen - short fu_inex - tbl_fu_out # INEX2 + short fu_inex - tbl_fu_out # INEX2 short tbl_fu_out - tbl_fu_out # INEX1 won't make it here -# for snan,operr,ovfl,unfl, src op is still in FP_SRC so just +# for snan,operr,ovfl,unfl, src op is still in FP_SRC so just # frestore it. fu_snan: fmovm.x EXC_FPREGS(%a6),&0xc0 # restore fp0/fp1 @@ -1721,7 +1721,7 @@ # underflow can happen for extended precision. extended precision opclass # three instruction exceptions don't update the stack pointer. so, if the # exception occurred from user mode, then simply update a7 and exit normally. -# if the exception occurred from supervisor mode, check if +# if the exception occurred from supervisor mode, check if fu_unfl: mov.l EXC_A6(%a6),(%a6) # restore a6 @@ -1730,7 +1730,7 @@ mov.l EXC_A7(%a6),%a0 # restore a7 whether we need mov.l %a0,%usp # to or not... - + fu_unfl_cont: fmovm.x &0x40,FP_SRC(%a6) # save EXOP to the stack @@ -1821,7 +1821,7 @@ bfextu EXC_CMDREG(%a6){&6:&3},%d0 # dyadic; load dst reg -# bit five of the fp extension word separates the monadic and dyadic operations +# bit five of the fp extension word separates the monadic and dyadic operations # at this point btst &0x5,1+EXC_CMDREG(%a6) # is operation monadic or dyadic? beq.b fu_extract_p # monadic @@ -1852,13 +1852,13 @@ # # Exceptions in order of precedence: -# BSUN : none +# BSUN : none # SNAN : all dyadic ops # OPERR : fsqrt(-NORM) # OVFL : all except ftst,fcmp # UNFL : all except ftst,fcmp # DZ : fdiv -# INEX2 : all except ftst,fcmp +# INEX2 : all except ftst,fcmp # INEX1 : all # @@ -1928,16 +1928,16 @@ # # No exceptions occurred that were also enabled. Now: # -# if (OVFL && ovfl_disabled && inexact_enabled) { +# if (OVFL && ovfl_disabled && inexact_enabled) { # branch to _real_inex() (even if the result was exact!); -# } else { +# } else { # save the result in the proper fp reg (unless the op is fcmp or ftst); # return; -# } +# } # btst &ovfl_bit,FPSR_EXCEPT(%a6) # was overflow set? beq.w fu_in_cont_p # no - + fu_in_ovflchk_p: btst &inex2_bit,FPCR_ENABLE(%a6) # was inexact enabled? beq.w fu_in_cont_p # no @@ -1957,7 +1957,7 @@ # } else { # restore exc state (SNAN||OPERR||OVFL||UNFL||DZ||INEX) into the FPU; # } -# +# fu_in_exc_p: subi.l &24,%d0 # fix offset to be 0-8 cmpi.b %d0,&0x6 # is exception INEX? (6 or 7) @@ -1970,7 +1970,7 @@ bne.w fu_in_exc_ovfl_p # yes # here, we insert the correct fsave status value into the fsave frame for the -# corresponding exception. the operand in the fsave frame should be the original +# corresponding exception. the operand in the fsave frame should be the original # src operand. # as a reminder for future predicted pain and agony, we are passing in fsave the # "non-skewed" operand for cases of sgl and dbl src INFs,NANs, and DENORMs. @@ -2033,21 +2033,21 @@ bne.b fu_trace_p # yes bra.l _fpsp_done # exit to os - + # -# The opclass two PACKED instruction that took an "Unimplemented Data Type" -# exception was being traced. Make the "current" PC the FPIAR and put it in the +# The opclass two PACKED instruction that took an "Unimplemented Data Type" +# exception was being traced. Make the "current" PC the FPIAR and put it in the # trace stack frame then jump to _real_trace(). -# +# # UNSUPP FRAME TRACE FRAME # ***************** ***************** # * EA * * Current * # * * * PC * # ***************** ***************** -# * 0x2 * 0x0dc * * 0x2 * 0x024 * +# * 0x2 * 0x0dc * * 0x2 * 0x024 * # ***************** ***************** # * Next * * Next * -# * PC * * PC * +# * PC * * PC * # ***************** ***************** # * SR * * SR * # ***************** ***************** @@ -2093,13 +2093,13 @@ bsr.l fout # call fmove out routine # Exceptions in order of precedence: -# BSUN : no +# BSUN : no # SNAN : yes # OPERR : if ((k_factor > +17) || (dec. exp exceeds 3 digits)) # OVFL : no # UNFL : no # DZ : no -# INEX2 : yes +# INEX2 : yes # INEX1 : no # determine the highest priority exception(if any) set by the @@ -2163,7 +2163,7 @@ mov.l EXC_A6(%a6),(%a6) # restore a6 -# an exception occurred and that exception was enabled. +# an exception occurred and that exception was enabled. # the only exception possible on packed move out are INEX, OPERR, and SNAN. fu_out_exc_p: cmpi.b %d0,&0x1a @@ -2190,7 +2190,7 @@ movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 mov.w &0x30d8,EXC_VOFF(%a6) # vector offset = 0xd0 - mov.w &0xe006,2+FP_SRC(%a6) # set fsave status + mov.w &0xe006,2+FP_SRC(%a6) # set fsave status frestore FP_SRC(%a6) # restore src operand @@ -2230,7 +2230,7 @@ movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 mov.w &0x30d0,EXC_VOFF(%a6) # vector offset = 0xd0 - mov.w &0xe004,2+FP_SRC(%a6) # set fsave status + mov.w &0xe004,2+FP_SRC(%a6) # set fsave status frestore FP_SRC(%a6) # restore src operand @@ -2269,8 +2269,8 @@ fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 - mov.w &0x30c4,EXC_VOFF(%a6) # vector offset = 0xc4 - mov.w &0xe001,2+FP_SRC(%a6) # set fsave status + mov.w &0x30c4,EXC_VOFF(%a6) # vector offset = 0xc4 + mov.w &0xe001,2+FP_SRC(%a6) # set fsave status frestore FP_SRC(%a6) # restore src operand @@ -2311,7 +2311,7 @@ andi.w &0x7fff,%d0 # strip sign beq.b funimp_skew_sgl_not cmpi.w %d0,&0x3f80 - bgt.b funimp_skew_sgl_not + bgt.b funimp_skew_sgl_not neg.w %d0 # make exponent negative addi.w &0x3f81,%d0 # find amt to shift mov.l FP_SRC_HI(%a6),%d1 # fetch DENORM hi(man) @@ -2328,7 +2328,7 @@ andi.w &0x7fff,%d0 # strip sign beq.b funimp_skew_dbl_not cmpi.w %d0,&0x3c00 - bgt.b funimp_skew_dbl_not + bgt.b funimp_skew_dbl_not tst.b FP_SRC_EX(%a6) # make "internal format" smi.b 0x2+FP_SRC(%a6) @@ -2361,7 +2361,7 @@ ######################################################################### # XDEF **************************************************************** # # _fpsp_effadd(): 060FPSP entry point for FP "Unimplemented # -# effective address" exception. # +# effective address" exception. # # # # This handler should be the first code executed upon taking the # # FP Unimplemented Effective Address exception in an operating # @@ -2386,7 +2386,7 @@ # # # INPUT *************************************************************** # # - The system stack contains the "Unimplemented " stk frame # -# # +# # # OUTPUT ************************************************************** # # If access error: # # - The system stack is changed to an access error stack frame # @@ -2407,17 +2407,17 @@ # For immediate data operations, the data is read in w/ a # # _mem_read() "callout", converted to FP binary (if packed), and used # # as the source operand to the instruction specified by the instruction # -# word. If no FP exception should be reported ads a result of the # +# word. If no FP exception should be reported ads a result of the # # emulation, then the result is stored to the destination register and # # the handler exits through _fpsp_done(). If an enabled exc has been # # signalled as a result of emulation, then an fsave state frame # # corresponding to the FP exception type must be entered into the 060 # -# FPU before exiting. In either the enabled or disabled cases, we # +# FPU before exiting. In either the enabled or disabled cases, we # # must also check if a Trace exception is pending, in which case, we # # must create a Trace exception stack frame from the current exception # # stack frame. If no Trace is pending, we simply exit through # # _fpsp_done(). # -# For "fmovm.x", call the routine fmovm_dynamic() which will # +# For "fmovm.x", call the routine fmovm_dynamic() which will # # decode and emulate the instruction. No FP exceptions can be pending # # as a result of this operation emulation. A Trace exception can be # # pending, though, which means the current stack frame must be changed # @@ -2436,11 +2436,11 @@ # before the "FPU disabled" exception, but the "FPU disabled" exception # # has higher priority, we check the disabled bit in the PCR. If set, # # then we must create an 8 word "FPU disabled" exception stack frame # -# from the current 4 word exception stack frame. This includes # -# reproducing the effective address of the instruction to put on the # +# from the current 4 word exception stack frame. This includes # +# reproducing the effective address of the instruction to put on the # # new stack frame. # # # -# In the process of all emulation work, if a _mem_read() # +# In the process of all emulation work, if a _mem_read() # # "callout" returns a failing result indicating an access error, then # # we must create an access error stack frame from the current stack # # frame. This information includes a faulting address and a fault- # @@ -2481,18 +2481,18 @@ # # here, we will have: -# fabs fdabs fsabs facos fmod +# fabs fdabs fsabs facos fmod # fadd fdadd fsadd fasin frem -# fcmp fatan fscale +# fcmp fatan fscale # fdiv fddiv fsdiv fatanh fsin # fint fcos fsincos # fintrz fcosh fsinh # fmove fdmove fsmove fetox ftan -# fmul fdmul fsmul fetoxm1 ftanh +# fmul fdmul fsmul fetoxm1 ftanh # fneg fdneg fsneg fgetexp ftentox # fsgldiv fgetman ftwotox -# fsglmul flog10 -# fsqrt flog2 +# fsglmul flog10 +# fsqrt flog2 # fsub fdsub fssub flogn # ftst flognp1 # which can all use f.{x,p} @@ -2584,8 +2584,8 @@ # store a result. then, only fcmp will branch back and pick up a dst operand. st STORE_FLG(%a6) # don't store a final result btst &0x1,1+EXC_CMDREG(%a6) # is operation fcmp? - beq.b iea_op_loaddst # yes - + beq.b iea_op_loaddst # yes + iea_op_extract: clr.l %d0 mov.b FPCR_MODE(%a6),%d0 # pass: rnd mode,prec @@ -2658,7 +2658,7 @@ btst &inex2_bit,FPCR_ENABLE(%a6) # is inexact enabled? beq.b iea_op_store # no bra.b iea_op_exc_ovfl # yes - + # an enabled exception occurred. we have to insert the exception type back into # the machine. iea_op_exc: @@ -2697,7 +2697,7 @@ fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 - frestore FP_SRC(%a6) # restore exceptional state + frestore FP_SRC(%a6) # restore exceptional state unlk %a6 # unravel the frame @@ -2705,12 +2705,12 @@ bne.b iea_op_trace # yes bra.l _fpsp_done # exit to os - + # # The opclass two instruction that took an "Unimplemented Effective Address" # exception was being traced. Make the "current" PC the FPIAR and put it in # the trace stack frame then jump to _real_trace(). -# +# # UNIMP EA FRAME TRACE FRAME # ***************** ***************** # * 0x0 * 0x0f0 * * Current * @@ -2743,7 +2743,7 @@ iea_fmovm_data_u: mov.l %usp,%a0 - mov.l %a0,EXC_A7(%a6) # store current a7 + mov.l %a0,EXC_A7(%a6) # store current a7 bsr.l fmovm_dynamic # do dynamic fmovm mov.l EXC_A7(%a6),%a0 # load possibly new a7 mov.l %a0,%usp # update usp @@ -2774,10 +2774,10 @@ lea (EXC_SR,%a6,%d0),%a0 mov.l %a0,EXC_SR(%a6) - + fmovm.x EXC_FP0(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs - movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 + movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 unlk %a6 mov.l (%sp)+,%sp @@ -2791,15 +2791,15 @@ lea (EXC_SR-0x4,%a6,%d0),%a0 mov.l %a0,EXC_SR(%a6) - + fmovm.x EXC_FP0(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs - movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 + movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 unlk %a6 mov.l (%sp)+,%sp bra.l _real_trace - + # right now, d1 = size and d0 = the strg. iea_fmovm_data_predec: mov.b %d1,EXC_VOFF(%a6) # store strg @@ -2807,7 +2807,7 @@ fmovm.x EXC_FP0(%a6),&0xc0 # restore fp0-fp1 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs - movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 + movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1 mov.l (%a6),-(%sp) # make a copy of a6 mov.l %d0,-(%sp) # save d0 @@ -2909,10 +2909,10 @@ # # The control reg instruction that took an "Unimplemented Effective Address" -# exception was being traced. The "Current PC" for the trace frame is the +# exception was being traced. The "Current PC" for the trace frame is the # PC stacked for Unimp EA. The "Next PC" is in EXC_EXTWPTR. # After fixing the stack frame, jump to _real_trace(). -# +# # UNIMP EA FRAME TRACE FRAME # ***************** ***************** # * 0x0 * 0x0f0 * * Current * @@ -3065,7 +3065,7 @@ # _fpsp_operr(): 060FPSP entry point for FP Operr exception. # # # # This handler should be the first code executed upon taking the # -# FP Operand Error exception in an operating system. # +# FP Operand Error exception in an operating system. # # # # XREF **************************************************************** # # _imem_read_long() - read instruction longword # @@ -3078,7 +3078,7 @@ # INPUT *************************************************************** # # - The system stack contains the FP Operr exception frame # # - The fsave frame contains the source operand # -# # +# # # OUTPUT ************************************************************** # # No access error: # # - The system stack is unchanged # @@ -3087,16 +3087,16 @@ # ALGORITHM *********************************************************** # # In a system where the FP Operr exception is enabled, the goal # # is to get to the handler specified at _real_operr(). But, on the 060, # -# for opclass zero and two instruction taking this exception, the # +# for opclass zero and two instruction taking this exception, the # # input operand in the fsave frame may be incorrect for some cases # # and needs to be corrected. This handler calls fix_skewed_ops() to # # do just this and then exits through _real_operr(). # # For opclass 3 instructions, the 060 doesn't store the default # # operr result out to memory or data register file as it should. # # This code must emulate the move out before finally exiting through # -# _real_inex(). The move out, if to memory, is performed using # +# _real_inex(). The move out, if to memory, is performed using # # _mem_write() "callout" routines that may return a failing result. # -# In this special case, the handler must exit through facc_out() # +# In this special case, the handler must exit through facc_out() # # which creates an access error stack frame from the current operr # # stack frame. # # # @@ -3109,13 +3109,13 @@ fsave FP_SRC(%a6) # grab the "busy" frame - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack # the FPIAR holds the "current PC" of the faulting instruction mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) - + mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long # fetch the instruction words @@ -3129,7 +3129,7 @@ # here, we simply see if the operand in the fsave frame needs to be "unskewed". # this would be the case for opclass two operations with a source infinity or -# denorm operand in the sgl or dbl format. NANs also become skewed, but can't +# denorm operand in the sgl or dbl format. NANs also become skewed, but can't # cause an operr so we don't need to check for them here. lea FP_SRC(%a6),%a0 # pass: ptr to src op bsr.l fix_skewed_ops # fix src op @@ -3200,7 +3200,7 @@ short tbl_operr - tbl_operr # dbl prec shouldn't happen short foperr_out_b - tbl_operr # byte integer short tbl_operr - tbl_operr # packed won't enter here - + foperr_out_b: mov.b L_SCR1(%a6),%d0 # load positive default result cmpi.b %d1,&0x7 # is mode a data reg? @@ -3254,7 +3254,7 @@ # _fpsp_snan(): 060FPSP entry point for FP SNAN exception. # # # # This handler should be the first code executed upon taking the # -# FP Signalling NAN exception in an operating system. # +# FP Signalling NAN exception in an operating system. # # # # XREF **************************************************************** # # _imem_read_long() - read instruction longword # @@ -3268,7 +3268,7 @@ # INPUT *************************************************************** # # - The system stack contains the FP SNAN exception frame # # - The fsave frame contains the source operand # -# # +# # # OUTPUT ************************************************************** # # No access error: # # - The system stack is unchanged # @@ -3277,16 +3277,16 @@ # ALGORITHM *********************************************************** # # In a system where the FP SNAN exception is enabled, the goal # # is to get to the handler specified at _real_snan(). But, on the 060, # -# for opclass zero and two instructions taking this exception, the # +# for opclass zero and two instructions taking this exception, the # # input operand in the fsave frame may be incorrect for some cases # # and needs to be corrected. This handler calls fix_skewed_ops() to # # do just this and then exits through _real_snan(). # # For opclass 3 instructions, the 060 doesn't store the default # # SNAN result out to memory or data register file as it should. # # This code must emulate the move out before finally exiting through # -# _real_snan(). The move out, if to memory, is performed using # +# _real_snan(). The move out, if to memory, is performed using # # _mem_write() "callout" routines that may return a failing result. # -# In this special case, the handler must exit through facc_out() # +# In this special case, the handler must exit through facc_out() # # which creates an access error stack frame from the current SNAN # # stack frame. # # For the case of an extended precision opclass 3 instruction, # @@ -3305,13 +3305,13 @@ fsave FP_SRC(%a6) # grab the "busy" frame - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack # the FPIAR holds the "current PC" of the faulting instruction mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) - + mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long # fetch the instruction words @@ -3339,7 +3339,7 @@ unlk %a6 bra.l _real_snan - + ######################################################################## # @@ -3349,7 +3349,7 @@ # # byte, word, long, and packed destination format operations can pass # through here. since packed format operations already were handled by -# fpsp_unsupp(), then we need to do nothing else for them here. +# fpsp_unsupp(), then we need to do nothing else for them here. # for byte, word, and long, we simply need to test the sign of the src # operand and save the appropriate minimum or maximum integer value # to the effective address as pointed to by the stacked effective address. @@ -3370,7 +3370,7 @@ short fsnan_out_d - tbl_snan # dbl prec shouldn't happen short fsnan_out_b - tbl_snan # byte integer short tbl_snan - tbl_snan # packed needs no help - + fsnan_out_b: mov.b FP_SRC_HI(%a6),%d0 # load upper byte of SNAN bset &6,%d0 # set SNAN bit @@ -3496,7 +3496,7 @@ mov.l %usp,%a0 # fetch user stack pointer mov.l %a0,EXC_A7(%a6) # save on stack for calc_ea() mov.l (%a6),EXC_A6(%a6) - + bsr.l _calc_ea_fout # find the correct ea,update An mov.l %a0,%a1 mov.l %a0,EXC_EA(%a6) # stack correct @@ -3545,7 +3545,7 @@ mov.l LOCAL_SIZE+FP_SCR0_LO(%sp),LOCAL_SIZE+EXC_EA(%sp) add.l &LOCAL_SIZE-0x8,%sp - + bra.l _real_snan ######################################################################### @@ -3553,7 +3553,7 @@ # _fpsp_inex(): 060FPSP entry point for FP Inexact exception. # # # # This handler should be the first code executed upon taking the # -# FP Inexact exception in an operating system. # +# FP Inexact exception in an operating system. # # # # XREF **************************************************************** # # _imem_read_long() - read instruction longword # @@ -3570,7 +3570,7 @@ # INPUT *************************************************************** # # - The system stack contains the FP Inexact exception frame # # - The fsave frame contains the source operand # -# # +# # # OUTPUT ************************************************************** # # - The system stack is unchanged # # - The fsave frame contains the adjusted src op for opclass 0,2 # @@ -3578,10 +3578,10 @@ # ALGORITHM *********************************************************** # # In a system where the FP Inexact exception is enabled, the goal # # is to get to the handler specified at _real_inex(). But, on the 060, # -# for opclass zero and two instruction taking this exception, the # +# for opclass zero and two instruction taking this exception, the # # hardware doesn't store the correct result to the destination FP # -# register as did the '040 and '881/2. This handler must emulate the # -# instruction in order to get this value and then store it to the # +# register as did the '040 and '881/2. This handler must emulate the # +# instruction in order to get this value and then store it to the # # correct register before calling _real_inex(). # # For opclass 3 instructions, the 060 doesn't store the default # # inexact result out to memory or data register file as it should. # @@ -3597,13 +3597,13 @@ fsave FP_SRC(%a6) # grab the "busy" frame - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack # the FPIAR holds the "current PC" of the faulting instruction mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) - + mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long # fetch the instruction words @@ -3615,7 +3615,7 @@ bne.w finex_out # fmove out -# the hardware, for "fabs" and "fneg" w/ a long source format, puts the +# the hardware, for "fabs" and "fneg" w/ a long source format, puts the # longword integer directly into the upper longword of the mantissa along # w/ an exponent value of 0x401e. we convert this to extended precision here. bfextu %d0{&19:&3},%d0 # fetch instr size @@ -3749,7 +3749,7 @@ # INPUT *************************************************************** # # - The system stack contains the FP DZ exception stack. # # - The fsave frame contains the source operand. # -# # +# # # OUTPUT ************************************************************** # # - The system stack contains the FP DZ exception stack. # # - The fsave frame contains the adjusted source operand. # @@ -3760,7 +3760,7 @@ # exception is taken, the input operand in the fsave state frame may # # be incorrect for some cases and need to be adjusted. So, this package # # adjusts the operand using fix_skewed_ops() and then branches to # -# _real_dz(). # +# _real_dz(). # # # ######################################################################### @@ -3771,13 +3771,13 @@ fsave FP_SRC(%a6) # grab the "busy" frame - movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 + movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs - fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack + fmovm.x &0xc0,EXC_FPREGS(%a6) # save fp0-fp1 on stack # the FPIAR holds the "current PC" of the faulting instruction mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6) - + mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long # fetch the instruction words @@ -3805,7 +3805,7 @@ ######################################################################### # XDEF **************************************************************** # # _fpsp_fline(): 060FPSP entry point for "Line F emulator" # -# exception when the "reduced" version of the # +# exception when the "reduced" version of the # # FPSP is implemented that does not emulate # # FP unimplemented instructions. # # # @@ -3820,12 +3820,12 @@ # INPUT *************************************************************** # # - The system stack contains a "Line F Emulator" exception # # stack frame. # -# # +# # # OUTPUT ************************************************************** # # - The system stack is unchanged. # # # # ALGORITHM *********************************************************** # -# When a "Line F Emulator" exception occurs in a system where # +# When a "Line F Emulator" exception occurs in a system where # # "FPU Unimplemented" instructions will not be emulated, the exception # # can occur because then FPU is disabled or the instruction is to be # # classifed as "Line F". This module determines which case exists and # @@ -3853,21 +3853,21 @@ # # # INPUT *************************************************************** # # d0 = number of bytes to adjust by # -# # +# # # OUTPUT ************************************************************** # # None # # # # ALGORITHM *********************************************************** # # "Dummy" CALCulate Effective Address: # -# The stacked for FP unimplemented instructions and opclass # +# The stacked for FP unimplemented instructions and opclass # # two packed instructions is correct with the exception of... # # # # 1) -(An) : The register is not updated regardless of size. # -# Also, for extended precision and packed, the # +# Also, for extended precision and packed, the # # stacked value is 8 bytes too big # # 2) (An)+ : The register is not updated. # -# 3) # : The upper longword of the immediate operand is # -# stacked b,w,l and s sizes are completely stacked. # +# 3) # : The upper longword of the immediate operand is # +# stacked b,w,l and s sizes are completely stacked. # # d,x, and p are not. # # # ######################################################################### @@ -3903,8 +3903,8 @@ lea ([USER_FPIAR,%a6],0x4),%a0 # no; return rts -# here, the is stacked correctly. however, we must update the -# address register... +# here, the is stacked correctly. however, we must update the +# address register... dcea_pi: mov.l %a0,%d0 # pass amt to inc by bsr.l inc_areg # inc addr register @@ -3912,7 +3912,7 @@ mov.l EXC_EA(%a6),%a0 # stacked is correct rts -# the is stacked correctly for all but extended and packed which +# the is stacked correctly for all but extended and packed which # the s are 8 bytes too large. # it would make no sense to have a pre-decrement to a7 in supervisor # mode so we don't even worry about this tricky case here : ) @@ -3932,7 +3932,7 @@ ######################################################################### # XDEF **************************************************************** # -# _calc_ea_fout(): calculate correct stacked for extended # +# _calc_ea_fout(): calculate correct stacked for extended # # and packed data opclass 3 operations. # # # # XREF **************************************************************** # @@ -3940,22 +3940,22 @@ # # # INPUT *************************************************************** # # None # -# # +# # # OUTPUT ************************************************************** # # a0 = return correct effective address # # # # ALGORITHM *********************************************************** # # For opclass 3 extended and packed data operations, the # # stacked for the exception is incorrect for -(an) and (an)+ addressing # -# modes. Also, while we're at it, the index register itself must get # +# modes. Also, while we're at it, the index register itself must get # # updated. # -# So, for -(an), we must subtract 8 off of the stacked value # +# So, for -(an), we must subtract 8 off of the stacked value # # and return that value as the correct and store that value in An. # # For (an)+, the stacked is correct but we must adjust An by +12. # # # ######################################################################### -# This calc_ea is currently used to retrieve the correct +# This calc_ea is currently used to retrieve the correct # for fmove outs of type extended and packed. global _calc_ea_fout _calc_ea_fout: @@ -3976,7 +3976,7 @@ # (An)+ : extended and packed fmove out # : stacked is correct -# : "An" not updated +# : "An" not updated ceaf_pi: mov.w (tbl_ceaf_pi.b,%pc,%d1.w*2),%d1 mov.l EXC_EA(%a6),%a0 @@ -4077,11 +4077,11 @@ swbeg &109 tbl_unsupp: - long fin - tbl_unsupp # 00: fmove - long fint - tbl_unsupp # 01: fint - long tbl_unsupp - tbl_unsupp # 02: fsinh - long fintrz - tbl_unsupp # 03: fintrz - long fsqrt - tbl_unsupp # 04: fsqrt + long fin - tbl_unsupp # 00: fmove + long fint - tbl_unsupp # 01: fint + long tbl_unsupp - tbl_unsupp # 02: fsinh + long fintrz - tbl_unsupp # 03: fintrz + long fsqrt - tbl_unsupp # 04: fsqrt long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp # 06: flognp1 long tbl_unsupp - tbl_unsupp @@ -4101,23 +4101,23 @@ long tbl_unsupp - tbl_unsupp # 15: flog10 long tbl_unsupp - tbl_unsupp # 16: flog2 long tbl_unsupp - tbl_unsupp - long fabs - tbl_unsupp # 18: fabs + long fabs - tbl_unsupp # 18: fabs long tbl_unsupp - tbl_unsupp # 19: fcosh - long fneg - tbl_unsupp # 1a: fneg + long fneg - tbl_unsupp # 1a: fneg long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp # 1c: facos long tbl_unsupp - tbl_unsupp # 1d: fcos long tbl_unsupp - tbl_unsupp # 1e: fgetexp long tbl_unsupp - tbl_unsupp # 1f: fgetman - long fdiv - tbl_unsupp # 20: fdiv + long fdiv - tbl_unsupp # 20: fdiv long tbl_unsupp - tbl_unsupp # 21: fmod - long fadd - tbl_unsupp # 22: fadd - long fmul - tbl_unsupp # 23: fmul - long fsgldiv - tbl_unsupp # 24: fsgldiv + long fadd - tbl_unsupp # 22: fadd + long fmul - tbl_unsupp # 23: fmul + long fsgldiv - tbl_unsupp # 24: fsgldiv long tbl_unsupp - tbl_unsupp # 25: frem long tbl_unsupp - tbl_unsupp # 26: fscale - long fsglmul - tbl_unsupp # 27: fsglmul - long fsub - tbl_unsupp # 28: fsub + long fsglmul - tbl_unsupp # 27: fsglmul + long fsub - tbl_unsupp # 28: fsub long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp @@ -4133,20 +4133,20 @@ long tbl_unsupp - tbl_unsupp # 35: fsincos long tbl_unsupp - tbl_unsupp # 36: fsincos long tbl_unsupp - tbl_unsupp # 37: fsincos - long fcmp - tbl_unsupp # 38: fcmp + long fcmp - tbl_unsupp # 38: fcmp long tbl_unsupp - tbl_unsupp - long ftst - tbl_unsupp # 3a: ftst + long ftst - tbl_unsupp # 3a: ftst long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp - long fsin - tbl_unsupp # 40: fsmove - long fssqrt - tbl_unsupp # 41: fssqrt + long fsin - tbl_unsupp # 40: fsmove + long fssqrt - tbl_unsupp # 41: fssqrt long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long fdin - tbl_unsupp # 44: fdmove - long fdsqrt - tbl_unsupp # 45: fdsqrt + long fdsqrt - tbl_unsupp # 45: fdsqrt long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp @@ -4165,27 +4165,27 @@ long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp - long fsabs - tbl_unsupp # 58: fsabs + long fsabs - tbl_unsupp # 58: fsabs long tbl_unsupp - tbl_unsupp - long fsneg - tbl_unsupp # 5a: fsneg + long fsneg - tbl_unsupp # 5a: fsneg long tbl_unsupp - tbl_unsupp long fdabs - tbl_unsupp # 5c: fdabs long tbl_unsupp - tbl_unsupp - long fdneg - tbl_unsupp # 5e: fdneg + long fdneg - tbl_unsupp # 5e: fdneg long tbl_unsupp - tbl_unsupp long fsdiv - tbl_unsupp # 60: fsdiv long tbl_unsupp - tbl_unsupp long fsadd - tbl_unsupp # 62: fsadd long fsmul - tbl_unsupp # 63: fsmul - long fddiv - tbl_unsupp # 64: fddiv + long fddiv - tbl_unsupp # 64: fddiv long tbl_unsupp - tbl_unsupp long fdadd - tbl_unsupp # 66: fdadd - long fdmul - tbl_unsupp # 67: fdmul + long fdmul - tbl_unsupp # 67: fdmul long fssub - tbl_unsupp # 68: fssub long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp long tbl_unsupp - tbl_unsupp - long fdsub - tbl_unsupp # 6c: fdsub + long fdsub - tbl_unsupp # 6c: fdsub ################################################# # Add this here so non-fp modules can compile. @@ -4208,7 +4208,7 @@ # # # INPUT *************************************************************** # # None # -# # +# # # OUTPUT ************************************************************** # # If instr is "fmovm Dn,-(A7)" from supervisor mode, # # d0 = size of dump # @@ -4230,25 +4230,25 @@ # The data register is determined and its value loaded to get the # # string of FP registers affected. This value is used as an index into # # a lookup table such that we can determine the number of bytes # -# involved. # +# involved. # # If the instruction is "fmovm.x ,Dn", a _mem_read() is used # # to read in all FP values. Again, _mem_read() may fail and require a # -# special exit. # +# special exit. # # If the instruction is "fmovm.x DN,", a _mem_write() is used # # to write all FP values. _mem_write() may also fail. # -# If the instruction is "fmovm.x DN,-(a7)" from supervisor mode, # +# If the instruction is "fmovm.x DN,-(a7)" from supervisor mode, # # then we return the size of the dump and the string to the caller # # so that the move can occur outside of this routine. This special # # case is required so that moves to the system stack are handled # # correctly. # # # # DYNAMIC: # -# fmovm.x dn, # -# fmovm.x , dn # +# fmovm.x dn, # +# fmovm.x , dn # # # # # # 1111 0010 00 || 11@& 1000 0$$$ 0000 # -# # +# # # & = (0): predecrement addressing mode # # (1): postincrement or control addressing mode # # @ = (0): move listed regs from memory to the FPU # @@ -4517,12 +4517,12 @@ byte 0x24,0x30,0x30,0x3c,0x30,0x3c,0x3c,0x48 byte 0x30,0x3c,0x3c,0x48,0x3c,0x48,0x48,0x54 byte 0x30,0x3c,0x3c,0x48,0x3c,0x48,0x48,0x54 - byte 0x3c,0x48,0x48,0x54,0x48,0x54,0x54,0x60 + byte 0x3c,0x48,0x48,0x54,0x48,0x54,0x54,0x60 # # table to convert a pre-decrement bit string into a post-increment # or control bit string. -# ex: 0x00 ==> 0x00 +# ex: 0x00 ==> 0x00 # 0x01 ==> 0x80 # 0x02 ==> 0x40 # . @@ -4604,59 +4604,59 @@ short tbl_fea_mode - tbl_fea_mode short tbl_fea_mode - tbl_fea_mode - short faddr_ind_a0 - tbl_fea_mode - short faddr_ind_a1 - tbl_fea_mode - short faddr_ind_a2 - tbl_fea_mode - short faddr_ind_a3 - tbl_fea_mode - short faddr_ind_a4 - tbl_fea_mode - short faddr_ind_a5 - tbl_fea_mode - short faddr_ind_a6 - tbl_fea_mode - short faddr_ind_a7 - tbl_fea_mode - - short faddr_ind_p_a0 - tbl_fea_mode - short faddr_ind_p_a1 - tbl_fea_mode - short faddr_ind_p_a2 - tbl_fea_mode - short faddr_ind_p_a3 - tbl_fea_mode - short faddr_ind_p_a4 - tbl_fea_mode - short faddr_ind_p_a5 - tbl_fea_mode - short faddr_ind_p_a6 - tbl_fea_mode - short faddr_ind_p_a7 - tbl_fea_mode - - short faddr_ind_m_a0 - tbl_fea_mode - short faddr_ind_m_a1 - tbl_fea_mode - short faddr_ind_m_a2 - tbl_fea_mode - short faddr_ind_m_a3 - tbl_fea_mode - short faddr_ind_m_a4 - tbl_fea_mode - short faddr_ind_m_a5 - tbl_fea_mode - short faddr_ind_m_a6 - tbl_fea_mode - short faddr_ind_m_a7 - tbl_fea_mode - - short faddr_ind_disp_a0 - tbl_fea_mode - short faddr_ind_disp_a1 - tbl_fea_mode - short faddr_ind_disp_a2 - tbl_fea_mode - short faddr_ind_disp_a3 - tbl_fea_mode - short faddr_ind_disp_a4 - tbl_fea_mode - short faddr_ind_disp_a5 - tbl_fea_mode - short faddr_ind_disp_a6 - tbl_fea_mode + short faddr_ind_a0 - tbl_fea_mode + short faddr_ind_a1 - tbl_fea_mode + short faddr_ind_a2 - tbl_fea_mode + short faddr_ind_a3 - tbl_fea_mode + short faddr_ind_a4 - tbl_fea_mode + short faddr_ind_a5 - tbl_fea_mode + short faddr_ind_a6 - tbl_fea_mode + short faddr_ind_a7 - tbl_fea_mode + + short faddr_ind_p_a0 - tbl_fea_mode + short faddr_ind_p_a1 - tbl_fea_mode + short faddr_ind_p_a2 - tbl_fea_mode + short faddr_ind_p_a3 - tbl_fea_mode + short faddr_ind_p_a4 - tbl_fea_mode + short faddr_ind_p_a5 - tbl_fea_mode + short faddr_ind_p_a6 - tbl_fea_mode + short faddr_ind_p_a7 - tbl_fea_mode + + short faddr_ind_m_a0 - tbl_fea_mode + short faddr_ind_m_a1 - tbl_fea_mode + short faddr_ind_m_a2 - tbl_fea_mode + short faddr_ind_m_a3 - tbl_fea_mode + short faddr_ind_m_a4 - tbl_fea_mode + short faddr_ind_m_a5 - tbl_fea_mode + short faddr_ind_m_a6 - tbl_fea_mode + short faddr_ind_m_a7 - tbl_fea_mode + + short faddr_ind_disp_a0 - tbl_fea_mode + short faddr_ind_disp_a1 - tbl_fea_mode + short faddr_ind_disp_a2 - tbl_fea_mode + short faddr_ind_disp_a3 - tbl_fea_mode + short faddr_ind_disp_a4 - tbl_fea_mode + short faddr_ind_disp_a5 - tbl_fea_mode + short faddr_ind_disp_a6 - tbl_fea_mode short faddr_ind_disp_a7 - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - short faddr_ind_ext - tbl_fea_mode - - short fabs_short - tbl_fea_mode - short fabs_long - tbl_fea_mode - short fpc_ind - tbl_fea_mode - short fpc_ind_ext - tbl_fea_mode - short tbl_fea_mode - tbl_fea_mode - short tbl_fea_mode - tbl_fea_mode - short tbl_fea_mode - tbl_fea_mode - short tbl_fea_mode - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + short faddr_ind_ext - tbl_fea_mode + + short fabs_short - tbl_fea_mode + short fabs_long - tbl_fea_mode + short fpc_ind - tbl_fea_mode + short fpc_ind_ext - tbl_fea_mode + short tbl_fea_mode - tbl_fea_mode + short tbl_fea_mode - tbl_fea_mode + short tbl_fea_mode - tbl_fea_mode + short tbl_fea_mode - tbl_fea_mode ################################### # Address register indirect: (An) # @@ -4952,7 +4952,7 @@ btst &0x8,%d0 bne.w fcalc_mem_ind - + mov.l %d0,L_SCR1(%a6) # hold opword mov.l %d0,%d1 @@ -5048,7 +5048,7 @@ btst &0x8,%d0 # is disp only 8 bits? bne.w fcalc_mem_ind # calc memory indirect - + mov.l %d0,L_SCR1(%a6) # store opword mov.l %d0,%d1 # make extword copy @@ -5125,7 +5125,7 @@ bfextu %d5{&26:&2},%d0 # get bd size # beq.l fmovm_error # if (size == 0) it's reserved - cmpi.b %d0,&0x2 + cmpi.b %d0,&0x2 blt.b fno_bd beq.b fget_word_bd @@ -5147,7 +5147,7 @@ bne.l fcea_iacc # yes ext.l %d0 # sign extend bd - + fchk_ind: add.l %d0,%d3 # base += bd @@ -5156,10 +5156,10 @@ bfextu %d5{&30:&2},%d0 # is od suppressed? beq.w faii_bd - cmpi.b %d0,&0x2 + cmpi.b %d0,&0x2 blt.b fnull_od beq.b fword_od - + mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr bsr.l _imem_read_long @@ -5167,7 +5167,7 @@ tst.l %d1 # did ifetch fail? bne.l fcea_iacc # yes - bra.b fadd_them + bra.b fadd_them fword_od: mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr @@ -5220,7 +5220,7 @@ rts ######################################################### -fcea_err: +fcea_err: mov.l %d3,%a0 movm.l (%sp)+,&0x003c # restore d2-d5 @@ -5230,7 +5230,7 @@ fcea_iacc: movm.l (%sp)+,&0x003c # restore d2-d5 bra.l iea_iacc - + fmovm_out_err: bsr.l restore mov.w &0x00e1,%d0 @@ -5246,7 +5246,7 @@ ######################################################################### # XDEF **************************************************************** # -# fmovm_ctrl(): emulate fmovm.l of control registers instr # +# fmovm_ctrl(): emulate fmovm.l of control registers instr # # # # XREF **************************************************************** # # _imem_read_long() - read longword from memory # @@ -5254,7 +5254,7 @@ # # # INPUT *************************************************************** # # None # -# # +# # # OUTPUT ************************************************************** # # If _imem_read_long() doesn't fail: # # USER_FPCR(a6) = new FPCR value # @@ -5262,14 +5262,14 @@ # USER_FPIAR(a6) = new FPIAR value # # # # ALGORITHM *********************************************************** # -# Decode the instruction type by looking at the extension word # +# Decode the instruction type by looking at the extension word # # in order to see how many control registers to fetch from memory. # # Fetch them using _imem_read_long(). If this fetch fails, exit through # # the special access error exit handler iea_iacc(). # # # # Instruction word decoding: # # # -# fmovem.l #, {FPIAR&|FPCR&|FPSR} # +# fmovem.l #, {FPIAR&|FPCR&|FPSR} # # # # WORD1 WORD2 # # 1111 0010 00 111100 100$ $$00 0000 0000 # @@ -5290,7 +5290,7 @@ beq.w fctrl_in_6 # yes cmpi.b %d0,&0x94 # fpcr & fpiar ? beq.b fctrl_in_5 # yes - + # fmovem.l #, fpsr/fpiar fctrl_in_3: mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr @@ -5392,14 +5392,14 @@ # INPUT *************************************************************** # # FP_SRC(a6) = fp op1(src) # # FP_DST(a6) = fp op2(dst) # -# # +# # # OUTPUT ************************************************************** # # FP_SRC(a6) = fp op1 scaled(src) # # FP_DST(a6) = fp op2 scaled(dst) # # d0 = scale amount # # # # ALGORITHM *********************************************************** # -# If the DST exponent is > the SRC exponent, set the DST exponent # +# If the DST exponent is > the SRC exponent, set the DST exponent # # equal to 0x3fff and scale the SRC exponent by the value that the # # DST exponent was scaled by. If the SRC exponent is greater or equal, # # do the opposite. Return this scale factor in d0. # @@ -5462,7 +5462,7 @@ andi.w &0x8000,FP_SCR0_EX(%a6) # zero src exponent bset &0x0,1+FP_SCR0_EX(%a6) # set exp = 1 - mov.l (%sp)+,%d0 # return SCALE factor + mov.l (%sp)+,%d0 # return SCALE factor rts # src exp is >= dst exp; scale src to exp = 0x3fff @@ -5498,7 +5498,7 @@ andi.w &0x8000,FP_SCR1_EX(%a6) # zero dst exponent bset &0x0,1+FP_SCR1_EX(%a6) # set exp = 1 - mov.l (%sp)+,%d0 # return SCALE factor + mov.l (%sp)+,%d0 # return SCALE factor rts ########################################################################## @@ -5513,14 +5513,14 @@ # # # INPUT *************************************************************** # # FP_SCR0(a6) = extended precision operand to be scaled # -# # +# # # OUTPUT ************************************************************** # # FP_SCR0(a6) = scaled extended precision operand # # d0 = scale value # # # # ALGORITHM *********************************************************** # -# Set the exponent of the input operand to 0x3fff. Save the value # -# of the difference between the original and new exponent. Then, # +# Set the exponent of the input operand to 0x3fff. Save the value # +# of the difference between the original and new exponent. Then, # # normalize the operand if it was a DENORM. Add this normalization # # value to the previous value. Return the result. # # # @@ -5566,17 +5566,17 @@ # # # INPUT *************************************************************** # # FP_SCR0(a6) = extended precision operand to be scaled # -# # +# # # OUTPUT ************************************************************** # # FP_SCR0(a6) = scaled extended precision operand # # d0 = scale value # # # # ALGORITHM *********************************************************** # # If the input operand is a DENORM, normalize it. # -# If the exponent of the input operand is even, set the exponent # -# to 0x3ffe and return a scale factor of "(exp-0x3ffe)/2". If the # +# If the exponent of the input operand is even, set the exponent # +# to 0x3ffe and return a scale factor of "(exp-0x3ffe)/2". If the # # exponent of the input operand is off, set the exponent to ox3fff and # -# return a scale factor of "(exp-0x3fff)/2". # +# return a scale factor of "(exp-0x3fff)/2". # # # ######################################################################### @@ -5640,14 +5640,14 @@ # # # INPUT *************************************************************** # # FP_SCR1(a6) = extended precision operand to be scaled # -# # +# # # OUTPUT ************************************************************** # # FP_SCR1(a6) = scaled extended precision operand # # d0 = scale value # # # # ALGORITHM *********************************************************** # -# Set the exponent of the input operand to 0x3fff. Save the value # -# of the difference between the original and new exponent. Then, # +# Set the exponent of the input operand to 0x3fff. Save the value # +# of the difference between the original and new exponent. Then, # # normalize the operand if it was a DENORM. Add this normalization # # value to the previous value. Return the result. # # # @@ -5695,21 +5695,21 @@ # INPUT *************************************************************** # # FP_SRC(a6) = pointer to extended precision src operand # # FP_DST(a6) = pointer to extended precision dst operand # -# # +# # # OUTPUT ************************************************************** # # fp0 = default result # # # # ALGORITHM *********************************************************** # -# If either operand (but not both operands) of an operation is a # +# If either operand (but not both operands) of an operation is a # # nonsignalling NAN, then that NAN is returned as the result. If both # -# operands are nonsignalling NANs, then the destination operand # +# operands are nonsignalling NANs, then the destination operand # # nonsignalling NAN is returned as the result. # -# If either operand to an operation is a signalling NAN (SNAN), # +# If either operand to an operation is a signalling NAN (SNAN), # # then, the SNAN bit is set in the FPSR EXC byte. If the SNAN trap # -# enable bit is set in the FPCR, then the trap is taken and the # +# enable bit is set in the FPCR, then the trap is taken and the # # destination is not modified. If the SNAN trap enable bit is not set, # -# then the SNAN is converted to a nonsignalling NAN (by setting the # -# SNAN bit in the operand to one), and the operation continues as # +# then the SNAN is converted to a nonsignalling NAN (by setting the # +# SNAN bit in the operand to one), and the operation continues as # # described in the preceding paragraph, for nonsignalling NANs. # # Make sure the appropriate FPSR bits are set before exiting. # # # @@ -5748,7 +5748,7 @@ lea FP_DST(%a6), %a0 cmp.b STAG(%a6), &SNAN bne nan_done - or.l &aiop_mask+snan_mask, USER_FPSR(%a6) + or.l &aiop_mask+snan_mask, USER_FPSR(%a6) nan_done: or.l &nan_mask, USER_FPSR(%a6) nan_comp: @@ -5761,14 +5761,14 @@ ######################################################################### # XDEF **************************************************************** # -# res_operr(): return default result during operand error # +# res_operr(): return default result during operand error # # # # XREF **************************************************************** # # None # # # # INPUT *************************************************************** # # None # -# # +# # # OUTPUT ************************************************************** # # fp0 = default operand error result # # # @@ -5776,8 +5776,8 @@ # An nonsignalling NAN is returned as the default result when # # an operand error occurs for the following cases: # # # -# Multiply: (Infinity x Zero) # -# Divide : (Zero / Zero) || (Infinity / Infinity) # +# Multiply: (Infinity x Zero) # +# Divide : (Zero / Zero) || (Infinity / Infinity) # # # ######################################################################### @@ -5787,12 +5787,12 @@ fmovm.x nan_return(%pc), &0x80 rts -nan_return: +nan_return: long 0x7fff0000, 0xffffffff, 0xffffffff ######################################################################### # XDEF **************************************************************** # -# _denorm(): denormalize an intermediate result # +# _denorm(): denormalize an intermediate result # # # # XREF **************************************************************** # # None # @@ -5800,7 +5800,7 @@ # INPUT *************************************************************** # # a0 = points to the operand to be denormalized # # (in the internal extended format) # -# # +# # # d0 = rounding precision # # # # OUTPUT ************************************************************** # @@ -5810,10 +5810,10 @@ # d0 = guard,round,sticky # # # # ALGORITHM *********************************************************** # -# According to the exponent underflow threshold for the given # +# According to the exponent underflow threshold for the given # # precision, shift the mantissa bits to the right in order raise the # -# exponent of the operand to the threshold value. While shifting the # -# mantissa bits right, maintain the value of the guard, round, and # +# exponent of the operand to the threshold value. While shifting the # +# mantissa bits right, maintain the value of the guard, round, and # # sticky bits. # # other notes: # # (1) _denorm() is called by the underflow routines # @@ -5833,7 +5833,7 @@ _denorm: # # Load the exponent threshold for the precision selected and check -# to see if (threshold - exponent) is > 65 in which case we can +# to see if (threshold - exponent) is > 65 in which case we can # simply calculate the sticky bit and zero the mantissa. otherwise # we have to call the denormalization routine. # @@ -5872,7 +5872,7 @@ # %d0{31:29} : initial guard,round,sticky # # %d1{15:0} : denormalization threshold # # OUTPUT: # -# %a0 : points to the denormalized operand # +# %a0 : points to the denormalized operand # # %d0{31:29} : final guard,round,sticky # # # @@ -5892,7 +5892,7 @@ # # check to see how much less than the underflow threshold the operand -# exponent is. +# exponent is. # mov.l %d1, %d0 # copy the denorm threshold sub.w FTEMP_EX(%a0), %d1 # d1 = threshold - uns exponent @@ -5907,7 +5907,7 @@ # No normalization necessary # dnrm_no_lp: - mov.l GRS(%a6), %d0 # restore original g,r,s + mov.l GRS(%a6), %d0 # restore original g,r,s rts # @@ -5917,7 +5917,7 @@ # %d1 = "n" = amt to shift # # --------------------------------------------------------- -# | FTEMP_HI | FTEMP_LO |grs000.........000| +# | FTEMP_HI | FTEMP_LO |grs000.........000| # --------------------------------------------------------- # <-(32 - n)-><-(n)-><-(32 - n)-><-(n)-><-(32 - n)-><-(n)-> # \ \ \ \ @@ -5928,7 +5928,7 @@ # \ \ \ \ # \ \ \ \ # \ \ \ \ -# <-(n)-><-(32 - n)-><------(32)-------><------(32)-------> +# <-(n)-><-(32 - n)-><------(32)-------><------(32)-------> # --------------------------------------------------------- # |0.....0| NEW_HI | NEW_FTEMP_LO |grs | # --------------------------------------------------------- @@ -5969,17 +5969,17 @@ # %d1 = "n" = amt to shift # # --------------------------------------------------------- -# | FTEMP_HI | FTEMP_LO |grs000.........000| +# | FTEMP_HI | FTEMP_LO |grs000.........000| # --------------------------------------------------------- # <-(32 - n)-><-(n)-><-(32 - n)-><-(n)-><-(32 - n)-><-(n)-> # \ \ \ # \ \ \ # \ \ ------------------- # \ -------------------- \ -# ------------------- \ \ -# \ \ \ -# \ \ \ -# \ \ \ +# ------------------- \ \ +# \ \ \ +# \ \ \ +# \ \ \ # <-------(32)------><-(n)-><-(32 - n)-><------(32)-------> # --------------------------------------------------------- # |0...............0|0....0| NEW_LO |grs | @@ -6050,17 +6050,17 @@ # case (d1 == 64) # # --------------------------------------------------------- -# | FTEMP_HI | FTEMP_LO |grs000.........000| +# | FTEMP_HI | FTEMP_LO |grs000.........000| # --------------------------------------------------------- # <-------(32)------> -# \ \ -# \ \ -# \ \ -# \ ------------------------------ +# \ \ +# \ \ +# \ \ +# \ ------------------------------ # ------------------------------- \ -# \ \ -# \ \ -# \ \ +# \ \ +# \ \ +# \ \ # <-------(32)------> # --------------------------------------------------------- # |0...............0|0................0|grs | @@ -6078,17 +6078,17 @@ # case (d1 == 65) # # --------------------------------------------------------- -# | FTEMP_HI | FTEMP_LO |grs000.........000| +# | FTEMP_HI | FTEMP_LO |grs000.........000| # --------------------------------------------------------- # <-------(32)------> -# \ \ -# \ \ -# \ \ -# \ ------------------------------ +# \ \ +# \ \ +# \ \ +# \ ------------------------------ # -------------------------------- \ -# \ \ -# \ \ -# \ \ +# \ \ +# \ \ +# \ \ # <-------(31)-----> # --------------------------------------------------------- # |0...............0|0................0|0rs | @@ -6136,7 +6136,7 @@ # None # # # # INPUT *************************************************************** # -# a0 = ptr to input operand in internal extended format # +# a0 = ptr to input operand in internal extended format # # d1(hi) = contains rounding precision: # # ext = $0000xxxx # # sgl = $0004xxxx # @@ -6167,7 +6167,7 @@ # # ext_grs() looks at the rounding precision and sets the appropriate # G,R,S bits. -# If (G,R,S == 0) then result is exact and round is done, else set +# If (G,R,S == 0) then result is exact and round is done, else set # the inex flag in status reg and continue. # bsr.l ext_grs # extract G,R,S @@ -6213,7 +6213,7 @@ # If sign of fp number = 1 (negative), then add 1 to l. # ################################################################# rnd_mnus: - tst.b FTEMP_SGN(%a0) # check for sign + tst.b FTEMP_SGN(%a0) # check for sign bpl.w truncate # if negative then truncate mov.l &0xffffffff, %d0 # force g,r,s to be all f's @@ -6324,7 +6324,7 @@ # # INPUT # d0 = extended precision g,r,s (in d0{31:29}) -# d1 = {PREC,ROUND} +# d1 = {PREC,ROUND} # OUTPUT # d0{31:29} = guard, round, sticky # @@ -6375,7 +6375,7 @@ mov.l &30, %d2 # of the sgl prec. limits lsl.l %d2, %d3 # shift g-r bits to MSB of d3 mov.l FTEMP_HI(%a0), %d2 # get word 2 for s-bit test - and.l &0x0000003f, %d2 # s bit is the or of all other + and.l &0x0000003f, %d2 # s bit is the or of all other bne.b ext_grs_st_stky # bits to the right of g-r tst.l FTEMP_LO(%a0) # test lower mantissa bne.b ext_grs_st_stky # if any are set, set sticky @@ -6385,9 +6385,9 @@ # # dbl: -# 96 64 32 11 0 +# 96 64 32 11 0 # ----------------------------------------------------- -# | EXP |XXXXXXX| | |xx |grs| +# | EXP |XXXXXXX| | |xx |grs| # ----------------------------------------------------- # nn\ / # ee ------- @@ -6400,7 +6400,7 @@ mov.l &30, %d2 # of the dbl prec. limits lsl.l %d2, %d3 # shift g-r bits to the MSB of d3 mov.l FTEMP_LO(%a0), %d2 # get lower mantissa for s-bit test - and.l &0x000001ff, %d2 # s bit is the or-ing of all + and.l &0x000001ff, %d2 # s bit is the or-ing of all bne.b ext_grs_st_stky # other bits to the right of g-r tst.l %d0 # test word original g,r,s bne.b ext_grs_st_stky # if any are set, set sticky @@ -6430,7 +6430,7 @@ # a0 = pointer fp extended precision operand to normalize # # # # OUTPUT ************************************************************** # -# d0 = number of bit positions the mantissa was shifted # +# d0 = number of bit positions the mantissa was shifted # # a0 = the input operand's mantissa is normalized; the exponent # # is unchanged. # # # @@ -6457,7 +6457,7 @@ mov.l %d1, FTEMP_LO(%a0) # store new lo(man) mov.l %d2, %d0 # return shift amount - + mov.l (%sp)+, %d3 # restore temp regs mov.l (%sp)+, %d2 @@ -6472,7 +6472,7 @@ clr.l FTEMP_LO(%a0) # lo(man) is now zero mov.l %d2, %d0 # return shift amount - + mov.l (%sp)+, %d3 # restore temp regs mov.l (%sp)+, %d2 @@ -6577,27 +6577,27 @@ # whole mantissa is zero so this UNNORM is actually a zero # unnorm_zero: - and.w &0x8000, FTEMP_EX(%a0) # force exponent to zero + and.w &0x8000, FTEMP_EX(%a0) # force exponent to zero mov.b &ZERO, %d0 # fix optype tag rts ######################################################################### # XDEF **************************************************************** # -# set_tag_x(): return the optype of the input ext fp number # +# set_tag_x(): return the optype of the input ext fp number # # # # XREF **************************************************************** # # None # # # # INPUT *************************************************************** # # a0 = pointer to extended precision operand # -# # +# # # OUTPUT ************************************************************** # # d0 = value of type tag # -# one of: NORM, INF, QNAN, SNAN, DENORM, UNNORM, ZERO # +# one of: NORM, INF, QNAN, SNAN, DENORM, UNNORM, ZERO # # # # ALGORITHM *********************************************************** # -# Simply test the exponent, j-bit, and mantissa values to # +# Simply test the exponent, j-bit, and mantissa values to # # determine the type of operand. # # If it's an unnormalized zero, alter the operand and force it # # to be a normal zero. # @@ -6664,20 +6664,20 @@ ######################################################################### # XDEF **************************************************************** # -# set_tag_d(): return the optype of the input dbl fp number # +# set_tag_d(): return the optype of the input dbl fp number # # # # XREF **************************************************************** # # None # # # # INPUT *************************************************************** # # a0 = points to double precision operand # -# # +# # # OUTPUT ************************************************************** # # d0 = value of type tag # -# one of: NORM, INF, QNAN, SNAN, DENORM, ZERO # +# one of: NORM, INF, QNAN, SNAN, DENORM, ZERO # # # # ALGORITHM *********************************************************** # -# Simply test the exponent, j-bit, and mantissa values to # +# Simply test the exponent, j-bit, and mantissa values to # # determine the type of operand. # # # ######################################################################### @@ -6727,20 +6727,20 @@ ######################################################################### # XDEF **************************************************************** # -# set_tag_s(): return the optype of the input sgl fp number # +# set_tag_s(): return the optype of the input sgl fp number # # # # XREF **************************************************************** # # None # # # # INPUT *************************************************************** # # a0 = pointer to single precision operand # -# # +# # # OUTPUT ************************************************************** # # d0 = value of type tag # -# one of: NORM, INF, QNAN, SNAN, DENORM, ZERO # +# one of: NORM, INF, QNAN, SNAN, DENORM, ZERO # # # # ALGORITHM *********************************************************** # -# Simply test the exponent, j-bit, and mantissa values to # +# Simply test the exponent, j-bit, and mantissa values to # # determine the type of operand. # # # ######################################################################### @@ -6786,15 +6786,15 @@ ######################################################################### # XDEF **************************************************************** # -# unf_res(): routine to produce default underflow result of a # -# scaled extended precision number; this is used by # +# unf_res(): routine to produce default underflow result of a # +# scaled extended precision number; this is used by # # fadd/fdiv/fmul/etc. emulation routines. # -# unf_res4(): same as above but for fsglmul/fsgldiv which use # +# unf_res4(): same as above but for fsglmul/fsgldiv which use # # single round prec and extended prec mode. # # # # XREF **************************************************************** # # _denorm() - denormalize according to scale factor # -# _round() - round denormalized number according to rnd prec # +# _round() - round denormalized number according to rnd prec # # # # INPUT *************************************************************** # # a0 = pointer to extended precison operand # @@ -6806,15 +6806,15 @@ # d0.b = result FPSR_cc which caller may or may not want to save # # # # ALGORITHM *********************************************************** # -# Convert the input operand to "internal format" which means the # +# Convert the input operand to "internal format" which means the # # exponent is extended to 16 bits and the sign is stored in the unused # # portion of the extended precison operand. Denormalize the number # -# according to the scale factor passed in d0. Then, round the # +# according to the scale factor passed in d0. Then, round the # # denormalized result. # -# Set the FPSR_exc bits as appropriate but return the cc bits in # +# Set the FPSR_exc bits as appropriate but return the cc bits in # # d0 in case the caller doesn't want to save them (as is the case for # # fmove out). # -# unf_res4() for fsglmul/fsgldiv forces the denorm to extended # +# unf_res4() for fsglmul/fsgldiv forces the denorm to extended # # precision and the rounding mode to single. # # # ######################################################################### @@ -6952,23 +6952,23 @@ # none # # # # INPUT *************************************************************** # -# d1.b = '-1' => (-); '0' => (+) # +# d1.b = '-1' => (-); '0' => (+) # # ovf_res(): # -# d0 = rnd mode/prec # +# d0 = rnd mode/prec # # ovf_res2(): # -# hi(d0) = rnd prec # +# hi(d0) = rnd prec # # lo(d0) = rnd mode # # # # OUTPUT ************************************************************** # -# a0 = points to extended precision result # -# d0.b = condition code bits # +# a0 = points to extended precision result # +# d0.b = condition code bits # # # # ALGORITHM *********************************************************** # # The default overflow result can be determined by the sign of # # the result and the rounding mode/prec in effect. These bits are # -# concatenated together to create an index into the default result # +# concatenated together to create an index into the default result # # table. A pointer to the correct result is returned in a0. The # -# resulting condition codes are returned in d0 in case the caller # +# resulting condition codes are returned in d0 in case the caller # # doesn't want FPSR_cc altered (as is the case for fmove out). # # # ######################################################################### @@ -6998,7 +6998,7 @@ ovf_res_load: mov.b (tbl_ovfl_cc.b,%pc,%d0.w*1), %d0 # fetch result ccodes lea (tbl_ovfl_result.b,%pc,%d1.w*8), %a0 # return result ptr - + rts tbl_ovfl_cc: @@ -7048,7 +7048,7 @@ ######################################################################### # XDEF **************************************************************** # -# fout(): move from fp register to memory or data register # +# fout(): move from fp register to memory or data register # # # # XREF **************************************************************** # # _round() - needed to create EXOP for sgl/dbl precision # @@ -7068,7 +7068,7 @@ # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # # d0 = round prec,mode # -# # +# # # OUTPUT ************************************************************** # # fp0 : intermediate underflow or overflow result if # # OVFL/UNFL occurred for a sgl or dbl operand # @@ -7087,9 +7087,9 @@ # w/ the address index register as appropriate w/ _calc_ea_fout(). If # # the source is a denorm and if underflow is enabled, an EXOP must be # # created. # -# For packed, the k-factor must be fetched from the instruction # -# word or a data register. The must be fixed as w/ extended # -# precision. Then, bindec() is called to create the appropriate # +# For packed, the k-factor must be fetched from the instruction # +# word or a data register. The must be fixed as w/ extended # +# precision. Then, bindec() is called to create the appropriate # # packed result. # # If at any time an access error is flagged by one of the move- # # to-memory routines, then a special exit must be made so that the # @@ -7205,7 +7205,7 @@ ori.l &0x00800000,%d1 # make smallest sgl fmov.s %d1,%fp0 bra.b fout_word_norm - + ################################################################# # fmove.l out ################################################### ################################################################# @@ -7279,7 +7279,7 @@ mov.l &0xc,%d0 # pass: opsize is 12 bytes # we must not yet write the extended precision data to the stack -# in the pre-decrement case from supervisor mode or else we'll corrupt +# in the pre-decrement case from supervisor mode or else we'll corrupt # the stack frame. so, leave it in FP_SRC for now and deal with it later... cmpi.b SPCOND_FLG(%a6),&mda7_flg beq.b fout_ext_a7 @@ -7366,7 +7366,7 @@ fmov.l &0x0,%fpcr # clear FPCR fmov.l %fpsr,%d1 # save FPSR - or.w %d1,2+USER_FPSR(%a6) # set possible inex2/ainex + or.w %d1,2+USER_FPSR(%a6) # set possible inex2/ainex fout_sgl_exg_write: mov.b 1+EXC_OPWORD(%a6),%d1 # extract dst mode @@ -7407,7 +7407,7 @@ lea FP_SCR0(%a6),%a0 bsr.l norm # normalize the DENORM - + fout_sgl_unfl_cont: lea FP_SCR0(%a6),%a0 # pass: ptr to operand mov.l L_SCR3(%a6),%d1 # pass: rnd prec,mode @@ -7458,7 +7458,7 @@ # call ovf_res() w/ sgl prec and the correct rnd mode to create the default # overflow result. DON'T save the returned ccodes from ovf_res() since -# fmove out doesn't alter them. +# fmove out doesn't alter them. tst.b SRC_EX(%a0) # is operand negative? smi %d1 # set if so mov.l L_SCR3(%a6),%d0 # pass: sgl prec,rnd mode @@ -7513,7 +7513,7 @@ fabs.x %fp0 # need absolute value fcmp.b %fp0,&0x2 # did exponent increase? - fblt.w fout_sgl_exg # no; go finish NORM + fblt.w fout_sgl_exg # no; go finish NORM bra.w fout_sgl_ovfl # yes; go handle overflow ################ @@ -7604,7 +7604,7 @@ fmov.l &0x0,%fpcr # clear FPCR fmov.l %fpsr,%d0 # save FPSR - or.w %d0,2+USER_FPSR(%a6) # set possible inex2/ainex + or.w %d0,2+USER_FPSR(%a6) # set possible inex2/ainex mov.l EXC_EA(%a6),%a1 # pass: dst addr lea L_SCR1(%a6),%a0 # pass: src addr @@ -7614,7 +7614,7 @@ tst.l %d1 # did dstore fail? bne.l facc_out_d # yes - rts # no; so we're finished + rts # no; so we're finished # # here, we know that the operand would UNFL if moved out to double prec, @@ -7636,7 +7636,7 @@ lea FP_SCR0(%a6),%a0 bsr.l norm # normalize the DENORM - + fout_dbl_unfl_cont: lea FP_SCR0(%a6),%a0 # pass: ptr to operand mov.l L_SCR3(%a6),%d1 # pass: rnd prec,mode @@ -7679,7 +7679,7 @@ # call ovf_res() w/ dbl prec and the correct rnd mode to create the default # overflow result. DON'T save the returned ccodes from ovf_res() since -# fmove out doesn't alter them. +# fmove out doesn't alter them. tst.b SRC_EX(%a0) # is operand negative? smi %d1 # set if so mov.l L_SCR3(%a6),%d0 # pass: dbl prec,rnd mode @@ -7724,19 +7724,19 @@ fabs.x %fp0 # need absolute value fcmp.b %fp0,&0x2 # did exponent increase? - fblt.w fout_dbl_exg # no; go finish NORM + fblt.w fout_dbl_exg # no; go finish NORM bra.w fout_dbl_ovfl # yes; go handle overflow ######################################################################### # XDEF **************************************************************** # -# dst_dbl(): create double precision value from extended prec. # +# dst_dbl(): create double precision value from extended prec. # # # # XREF **************************************************************** # # None # # # # INPUT *************************************************************** # # a0 = pointer to source operand in extended precision # -# # +# # # OUTPUT ************************************************************** # # d0 = hi(double precision result) # # d1 = lo(double precision result) # @@ -7750,18 +7750,18 @@ # get rid of ext integer bit # # dbl_mant = ext_mant{62:12} # # # -# --------------- --------------- --------------- # +# --------------- --------------- --------------- # # extended -> |s| exp | |1| ms mant | | ls mant | # -# --------------- --------------- --------------- # -# 95 64 63 62 32 31 11 0 # +# --------------- --------------- --------------- # +# 95 64 63 62 32 31 11 0 # # | | # # | | # # | | # -# v v # -# --------------- --------------- # -# double -> |s|exp| mant | | mant | # -# --------------- --------------- # -# 63 51 32 31 0 # +# v v # +# --------------- --------------- # +# double -> |s|exp| mant | | mant | # +# --------------- --------------- # +# 63 51 32 31 0 # # # ######################################################################### @@ -7797,13 +7797,13 @@ ######################################################################### # XDEF **************************************************************** # -# dst_sgl(): create single precision value from extended prec # +# dst_sgl(): create single precision value from extended prec # # # # XREF **************************************************************** # # # # INPUT *************************************************************** # # a0 = pointer to source operand in extended precision # -# # +# # # OUTPUT ************************************************************** # # d0 = single precision result # # # @@ -7815,18 +7815,18 @@ # get rid of ext integer bit # # sgl_mant = ext_mant{62:12} # # # -# --------------- --------------- --------------- # +# --------------- --------------- --------------- # # extended -> |s| exp | |1| ms mant | | ls mant | # -# --------------- --------------- --------------- # -# 95 64 63 62 40 32 31 12 0 # +# --------------- --------------- --------------- # +# 95 64 63 62 40 32 31 12 0 # # | | # # | | # # | | # -# v v # -# --------------- # -# single -> |s|exp| mant | # -# --------------- # -# 31 22 0 # +# v v # +# --------------- # +# single -> |s|exp| mant | # +# --------------- # +# 31 22 0 # # # ######################################################################### @@ -7899,7 +7899,7 @@ # add the extra condition that only if the k-factor was zero, too, should # we zero the exponent tst.l %d0 - bne.b fout_pack_set + bne.b fout_pack_set # "mantissa" is all zero which means that the answer is zero. but, the '040 # algorithm allows the exponent to be non-zero. the 881/2 do not. therefore, # if the mantissa is zero, I will zero the exponent, too. @@ -7951,7 +7951,7 @@ ######################################################################### # XDEF **************************************************************** # -# fmul(): emulates the fmul instruction # +# fmul(): emulates the fmul instruction # # fsmul(): emulates the fsmul instruction # # fdmul(): emulates the fdmul instruction # # # @@ -7960,8 +7960,8 @@ # scale_to_zero_dst() - scale dst exponent to zero # # unf_res() - return default underflow result # # ovf_res() - return default overflow result # -# res_qnan() - return QNAN result # -# res_snan() - return SNAN result # +# res_qnan() - return QNAN result # +# res_snan() - return SNAN result # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # @@ -7979,12 +7979,12 @@ # instruction won't cause an exception. Use the regular fmul to # # compute a result. Check if the regular operands would have taken # # an exception. If so, return the default overflow/underflow result # -# and return the EXOP if exceptions are enabled. Else, scale the # +# and return the EXOP if exceptions are enabled. Else, scale the # # result operand to the proper exponent. # # # ######################################################################### - align 0x10 + align 0x10 tbl_fmul_ovfl: long 0x3fff - 0x7ffe # ext_max long 0x3fff - 0x407e # sgl_max @@ -8045,7 +8045,7 @@ # # NORMAL: # - the result of the multiply operation will neither overflow nor underflow. -# - do the multiply to the proper precision and rounding mode. +# - do the multiply to the proper precision and rounding mode. # - scale the result exponent using the scale factor. if both operands were # normalized then we really don't need to go through this scaling. but for now, # this will do. @@ -8056,7 +8056,7 @@ fmov.l L_SCR3(%a6),%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fmul.x FP_SCR0(%a6),%fp0 # execute multiply + fmul.x FP_SCR0(%a6),%fp0 # execute multiply fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -8096,7 +8096,7 @@ fmov.l L_SCR3(%a6),%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fmul.x FP_SCR0(%a6),%fp0 # execute multiply + fmul.x FP_SCR0(%a6),%fp0 # execute multiply fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -8175,7 +8175,7 @@ fmov.l &0x0,%fpsr # clear FPSR fmul.x FP_SCR0(%a6),%fp0 # execute multiply - + fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -8184,7 +8184,7 @@ fabs.x %fp0,%fp1 # make a copy of result fcmp.b %fp1,&0x2 # is |result| >= 2.b? fbge.w fmul_ovfl_tst # yes; overflow has occurred - + # no, it didn't overflow; we have correct result bra.w fmul_normal_exit @@ -8201,7 +8201,7 @@ # of this operation then has its exponent scaled by -0x6000 to create the # exceptional operand. # -fmul_unfl: +fmul_unfl: bset &unfl_bit,FPSR_EXCEPT(%a6) # set unfl exc bit # for fun, let's use only extended precision, round to zero. then, let @@ -8234,7 +8234,7 @@ rts # -# UNFL is enabled. +# UNFL is enabled. # fmul_unfl_ena: fmovm.x FP_SCR1(%a6),&0x40 # load dst op @@ -8250,7 +8250,7 @@ fmul_unfl_ena_cont: fmov.l &0x0,%fpsr # clear FPSR - fmul.x FP_SCR0(%a6),%fp1 # execute multiply + fmul.x FP_SCR0(%a6),%fp1 # execute multiply fmov.l &0x0,%fpcr # clear FPCR @@ -8285,7 +8285,7 @@ fmov.l L_SCR3(%a6),%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fmul.x FP_SCR0(%a6),%fp0 # execute multiply + fmul.x FP_SCR0(%a6),%fp0 # execute multiply fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -8309,11 +8309,11 @@ mov.l L_SCR3(%a6),%d1 andi.b &0xc0,%d1 # keep rnd prec ori.b &rz_mode*0x10,%d1 # insert RZ - + fmov.l %d1,%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fmul.x FP_SCR0(%a6),%fp1 # execute multiply + fmul.x FP_SCR0(%a6),%fp1 # execute multiply fmov.l &0x0,%fpcr # clear FPCR fabs.x %fp1 # make absolute value @@ -8455,22 +8455,22 @@ # norm() - normalize mantissa for EXOP on denorm # # scale_to_zero_src() - scale src exponent to zero # # ovf_res() - return default overflow result # -# unf_res() - return default underflow result # +# unf_res() - return default underflow result # # res_qnan_1op() - return QNAN result # # res_snan_1op() - return SNAN result # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # # d0 = round prec/mode # -# # +# # # OUTPUT ************************************************************** # # fp0 = result # # fp1 = EXOP (if exception occurred) # # # # ALGORITHM *********************************************************** # -# Handle NANs, infinities, and zeroes as special cases. Divide # +# Handle NANs, infinities, and zeroes as special cases. Divide # # norms into extended, single, and double precision. # -# Norms can be emulated w/ a regular fmove instruction. For # +# Norms can be emulated w/ a regular fmove instruction. For # # sgl/dbl, must scale exponent and perform an "fmove". Check to see # # if the result would have overflowed/underflowed. If so, use unf_res() # # or ovf_res() to return the default result. Also return EXOP if # @@ -8496,7 +8496,7 @@ mov.b STAG(%a6),%d1 # fetch src optype tag bne.w fin_not_norm # optimize on non-norm input - + # # FP MOVE IN: NORMs and DENORMs ONLY! # @@ -8557,9 +8557,9 @@ # # operand is to be rounded to single or double precision -# +# fin_not_ext: - cmpi.b %d0,&s_mode*0x10 # separate sgl/dbl prec + cmpi.b %d0,&s_mode*0x10 # separate sgl/dbl prec bne.b fin_dbl # @@ -8643,10 +8643,10 @@ bsr.l unf_res # calculate default result or.b %d0,FPSR_CC(%a6) # unf_res may have set 'Z' fmovm.x FP_SCR0(%a6),&0x80 # return default result in fp0 - rts + rts # -# operand will underflow AND underflow or inexact is enabled. +# operand will underflow AND underflow or inexact is enabled. # therefore, we must return the result rounded to extended precision. # fin_sd_unfl_ena: @@ -8768,7 +8768,7 @@ ######################################################################### # XDEF **************************************************************** # -# fdiv(): emulates the fdiv instruction # +# fdiv(): emulates the fdiv instruction # # fsdiv(): emulates the fsdiv instruction # # fddiv(): emulates the fddiv instruction # # # @@ -8777,8 +8777,8 @@ # scale_to_zero_dst() - scale dst exponent to zero # # unf_res() - return default underflow result # # ovf_res() - return default overflow result # -# res_qnan() - return QNAN result # -# res_snan() - return SNAN result # +# res_qnan() - return QNAN result # +# res_snan() - return SNAN result # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # @@ -8796,7 +8796,7 @@ # instruction won't cause an exception. Use the regular fdiv to # # compute a result. Check if the regular operands would have taken # # an exception. If so, return the default overflow/underflow result # -# and return the EXOP if exceptions are enabled. Else, scale the # +# and return the EXOP if exceptions are enabled. Else, scale the # # result operand to the proper exponent. # # # ######################################################################### @@ -8833,7 +8833,7 @@ or.b STAG(%a6),%d1 # combine src tags bne.w fdiv_not_norm # optimize on non-norm input - + # # DIVIDE: NORMs and DENORMs ONLY! # @@ -8899,7 +8899,7 @@ fdiv_no_ovfl: mov.l (%sp)+,%d0 # restore scale factor bra.b fdiv_normal_exit - + fdiv_may_ovfl: mov.l %d0,-(%sp) # save scale factor @@ -8932,7 +8932,7 @@ bne.b fdiv_ovfl_ena # yes fdiv_ovfl_dis: - btst &neg_bit,FPSR_CC(%a6) # is result negative? + btst &neg_bit,FPSR_CC(%a6) # is result negative? sne %d1 # set sign param accordingly mov.l L_SCR3(%a6),%d0 # pass prec:rnd bsr.l ovf_res # calculate default result @@ -9004,7 +9004,7 @@ rts # -# UNFL is enabled. +# UNFL is enabled. # fdiv_unfl_ena: fmovm.x FP_SCR1(%a6),&0x40 # load dst op @@ -9068,8 +9068,8 @@ # # we still don't know if underflow occurred. result is ~ equal to 1. but, # we don't know if the result was an underflow that rounded up to a 1 -# or a normalized number that rounded down to a 1. so, redo the entire -# operation using RZ as the rounding mode to see what the pre-rounded +# or a normalized number that rounded down to a 1. so, redo the entire +# operation using RZ as the rounding mode to see what the pre-rounded # result is. this case should be relatively rare. # fmovm.x FP_SCR1(%a6),&0x40 # load dst op into fp1 @@ -9196,8 +9196,8 @@ rts # -# The destination was an INF w/ an In Range or ZERO source, the result is -# an INF w/ the proper sign. +# The destination was an INF w/ an In Range or ZERO source, the result is +# an INF w/ the proper sign. # The 68881/882 returns the destination INF w/ the new sign(if the j-bit of the # dst INF is set, then then j-bit of the result INF is also set). # @@ -9227,11 +9227,11 @@ # fdneg(): emulates the fdneg instruction # # # # XREF **************************************************************** # -# norm() - normalize a denorm to provide EXOP # +# norm() - normalize a denorm to provide EXOP # # scale_to_zero_src() - scale sgl/dbl source exponent # # ovf_res() - return default overflow result # # unf_res() - return default underflow result # -# res_qnan_1op() - return QNAN result # +# res_qnan_1op() - return QNAN result # # res_snan_1op() - return SNAN result # # # # INPUT *************************************************************** # @@ -9269,7 +9269,7 @@ mov.l %d0,L_SCR3(%a6) # store rnd info mov.b STAG(%a6),%d1 bne.w fneg_not_norm # optimize on non-norm input - + # # NEGATE SIGN : norms and denorms ONLY! # @@ -9328,7 +9328,7 @@ neg.w %d0 # new exponent = -(shft val) addi.w &0x6000,%d0 # add new bias to exponent mov.w FP_SCR0_EX(%a6),%d1 # fetch old sign,exp - andi.w &0x8000,%d1 # keep old sign + andi.w &0x8000,%d1 # keep old sign andi.w &0x7fff,%d0 # clear sign position or.w %d1,%d0 # concat old sign, new exponent mov.w %d0,FP_SCR0_EX(%a6) # insert new exponent @@ -9407,7 +9407,7 @@ fneg_sd_unfl: bset &unfl_bit,FPSR_EXCEPT(%a6) # set unfl exc bit - eori.b &0x80,FP_SCR0_EX(%a6) # negate sign + eori.b &0x80,FP_SCR0_EX(%a6) # negate sign bpl.b fneg_sd_unfl_tst bset &neg_bit,FPSR_CC(%a6) # set 'N' ccode bit @@ -9423,10 +9423,10 @@ bsr.l unf_res # calculate default result or.b %d0,FPSR_CC(%a6) # unf_res may have set 'Z' fmovm.x FP_SCR0(%a6),&0x80 # return default result in fp0 - rts + rts # -# operand will underflow AND underflow is enabled. +# operand will underflow AND underflow is enabled. # therefore, we must return the result rounded to extended precision. # fneg_sd_unfl_ena: @@ -9548,19 +9548,19 @@ ######################################################################### # XDEF **************************************************************** # -# ftst(): emulates the ftest instruction # +# ftst(): emulates the ftest instruction # # # # XREF **************************************************************** # -# res{s,q}nan_1op() - set NAN result for monadic instruction # +# res{s,q}nan_1op() - set NAN result for monadic instruction # # # # INPUT *************************************************************** # -# a0 = pointer to extended precision source operand # +# a0 = pointer to extended precision source operand # # # # OUTPUT ************************************************************** # # none # # # # ALGORITHM *********************************************************** # -# Check the source operand tag (STAG) and set the FPCR according # +# Check the source operand tag (STAG) and set the FPCR according # # to the operand type and sign. # # # ######################################################################### @@ -9569,7 +9569,7 @@ ftst: mov.b STAG(%a6),%d1 bne.b ftst_not_norm # optimize on non-norm input - + # # Norm: # @@ -9617,7 +9617,7 @@ ftst_inf_m: mov.b &inf_bmask+neg_bmask,FPSR_CC(%a6) # set 'I','N' ccode bits rts - + # # Zero: # @@ -9646,13 +9646,13 @@ # fp0 = result # # # # ALGORITHM *********************************************************** # -# Separate according to operand type. Unnorms don't pass through # -# here. For norms, load the rounding mode/prec, execute a "fint", then # +# Separate according to operand type. Unnorms don't pass through # +# here. For norms, load the rounding mode/prec, execute a "fint", then # # store the resulting FPSR bits. # -# For denorms, force the j-bit to a one and do the same as for # -# norms. Denorms are so low that the answer will either be a zero or a # +# For denorms, force the j-bit to a one and do the same as for # +# norms. Denorms are so low that the answer will either be a zero or a # # one. # -# For zeroes/infs/NANs, return the same while setting the FPSR # +# For zeroes/infs/NANs, return the same while setting the FPSR # # as appropriate. # # # ######################################################################### @@ -9661,7 +9661,7 @@ fint: mov.b STAG(%a6),%d1 bne.b fint_not_norm # optimize on non-norm input - + # # Norm: # @@ -9671,7 +9671,7 @@ fmov.l %d0,%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fint.x SRC(%a0),%fp0 # execute fint + fint.x SRC(%a0),%fp0 # execute fint fmov.l &0x0,%fpcr # clear FPCR fmov.l %fpsr,%d0 # save FPSR @@ -9749,16 +9749,16 @@ # d0 = round precision/mode # # # # OUTPUT ************************************************************** # -# fp0 = result # +# fp0 = result # # # # ALGORITHM *********************************************************** # # Separate according to operand type. Unnorms don't pass through # -# here. For norms, load the rounding mode/prec, execute a "fintrz", # +# here. For norms, load the rounding mode/prec, execute a "fintrz", # # then store the resulting FPSR bits. # -# For denorms, force the j-bit to a one and do the same as for # +# For denorms, force the j-bit to a one and do the same as for # # norms. Denorms are so low that the answer will either be a zero or a # # one. # -# For zeroes/infs/NANs, return the same while setting the FPSR # +# For zeroes/infs/NANs, return the same while setting the FPSR # # as appropriate. # # # ######################################################################### @@ -9767,7 +9767,7 @@ fintrz: mov.b STAG(%a6),%d1 bne.b fintrz_not_norm # optimize on non-norm input - + # # Norm: # @@ -9862,17 +9862,17 @@ # # # ALGORITHM *********************************************************** # # Handle NANs, infinities, and zeroes as special cases. Divide # -# norms into extended, single, and double precision. # -# Simply clear sign for extended precision norm. Ext prec denorm # +# norms into extended, single, and double precision. # +# Simply clear sign for extended precision norm. Ext prec denorm # # gets an EXOP created for it since it's an underflow. # # Double and single precision can overflow and underflow. First, # # scale the operand such that the exponent is zero. Perform an "fabs" # -# using the correct rnd mode/prec. Check to see if the original # +# using the correct rnd mode/prec. Check to see if the original # # exponent would take an exception. If so, use unf_res() or ovf_res() # # to calculate the default result. Also, create the EXOP for the # -# exceptional case. If no exception should occur, insert the correct # +# exceptional case. If no exception should occur, insert the correct # # result exponent and return. # -# Unnorms don't pass through here. # +# Unnorms don't pass through here. # # # ######################################################################### @@ -9892,7 +9892,7 @@ mov.l %d0,L_SCR3(%a6) # store rnd info mov.b STAG(%a6),%d1 bne.w fabs_not_norm # optimize on non-norm input - + # # ABSOLUTE VALUE: norms and denorms ONLY! # @@ -10038,10 +10038,10 @@ bsr.l unf_res # calculate default result or.b %d0,FPSR_CC(%a6) # set possible 'Z' ccode fmovm.x FP_SCR0(%a6),&0x80 # return default result in fp0 - rts + rts # -# operand will underflow AND underflow is enabled. +# operand will underflow AND underflow is enabled. # therefore, we must return the result rounded to extended precision. # fabs_sd_unfl_ena: @@ -10163,10 +10163,10 @@ ######################################################################### # XDEF **************************************************************** # -# fcmp(): fp compare op routine # +# fcmp(): fp compare op routine # # # # XREF **************************************************************** # -# res_qnan() - return QNAN result # +# res_qnan() - return QNAN result # # res_snan() - return SNAN result # # # # INPUT *************************************************************** # @@ -10178,7 +10178,7 @@ # None # # # # ALGORITHM *********************************************************** # -# Handle NANs and denorms as special cases. For everything else, # +# Handle NANs and denorms as special cases. For everything else, # # just use the actual fcmp instruction to produce the correct condition # # codes. # # # @@ -10191,14 +10191,14 @@ lsl.b &0x3,%d1 or.b STAG(%a6),%d1 bne.b fcmp_not_norm # optimize on non-norm input - + # # COMPARE FP OPs : NORMs, ZEROs, INFs, and "corrected" DENORMs # fcmp_norm: fmovm.x DST(%a1),&0x80 # load dst op - fcmp.x %fp0,SRC(%a0) # do compare + fcmp.x %fp0,SRC(%a0) # do compare fmov.l %fpsr,%d0 # save FPSR rol.l &0x8,%d0 # extract ccode bits @@ -10219,7 +10219,7 @@ short fcmp_norm - tbl_fcmp_op # NORM - ZERO short fcmp_norm - tbl_fcmp_op # NORM - INF short fcmp_res_qnan - tbl_fcmp_op # NORM - QNAN - short fcmp_nrm_dnrm - tbl_fcmp_op # NORM - DENORM + short fcmp_nrm_dnrm - tbl_fcmp_op # NORM - DENORM short fcmp_res_snan - tbl_fcmp_op # NORM - SNAN short tbl_fcmp_op - tbl_fcmp_op # short tbl_fcmp_op - tbl_fcmp_op # @@ -10281,8 +10281,8 @@ rts # -# DENORMs are a little more difficult. -# If you have a 2 DENORMs, then you can just force the j-bit to a one +# DENORMs are a little more difficult. +# If you have a 2 DENORMs, then you can just force the j-bit to a one # and use the fcmp_norm routine. # If you have a DENORM and an INF or ZERO, just force the DENORM's j-bit to a one # and use the fcmp_norm routine. @@ -10323,7 +10323,7 @@ mov.l SRC_LO(%a0),FP_SCR0_LO(%a6) lea FP_SCR1(%a6),%a1 lea FP_SCR0(%a6),%a0 - bra.w fcmp_norm + bra.w fcmp_norm fcmp_nrm_dnrm: mov.b SRC_EX(%a0),%d0 # determine if like signs @@ -10355,15 +10355,15 @@ ######################################################################### # XDEF **************************************************************** # -# fsglmul(): emulates the fsglmul instruction # +# fsglmul(): emulates the fsglmul instruction # # # # XREF **************************************************************** # # scale_to_zero_src() - scale src exponent to zero # # scale_to_zero_dst() - scale dst exponent to zero # # unf_res4() - return default underflow result for sglop # # ovf_res() - return default overflow result # -# res_qnan() - return QNAN result # -# res_snan() - return SNAN result # +# res_qnan() - return QNAN result # +# res_snan() - return SNAN result # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # @@ -10381,7 +10381,7 @@ # instruction won't cause an exception. Use the regular fsglmul to # # compute a result. Check if the regular operands would have taken # # an exception. If so, return the default overflow/underflow result # -# and return the EXOP if exceptions are enabled. Else, scale the # +# and return the EXOP if exceptions are enabled. Else, scale the # # result operand to the proper exponent. # # # ######################################################################### @@ -10413,11 +10413,11 @@ add.l (%sp)+,%d0 # SCALE_FACTOR = scale1 + scale2 - cmpi.l %d0,&0x3fff-0x7ffe # would result ovfl? + cmpi.l %d0,&0x3fff-0x7ffe # would result ovfl? beq.w fsglmul_may_ovfl # result may rnd to overflow blt.w fsglmul_ovfl # result will overflow - cmpi.l %d0,&0x3fff+0x0001 # would result unfl? + cmpi.l %d0,&0x3fff+0x0001 # would result unfl? beq.w fsglmul_may_unfl # result may rnd to no unfl bgt.w fsglmul_unfl # result will underflow @@ -10504,7 +10504,7 @@ fmov.l &0x0,%fpsr # clear FPSR fsglmul.x FP_SCR0(%a6),%fp0 # execute sgl multiply - + fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -10513,7 +10513,7 @@ fabs.x %fp0,%fp1 # make a copy of result fcmp.b %fp1,&0x2 # is |result| >= 2.b? fbge.w fsglmul_ovfl_tst # yes; overflow has occurred - + # no, it didn't overflow; we have correct result bra.w fsglmul_normal_exit @@ -10547,7 +10547,7 @@ rts # -# UNFL is enabled. +# UNFL is enabled. # fsglmul_unfl_ena: fmovm.x FP_SCR1(%a6),&0x40 # load dst op @@ -10555,7 +10555,7 @@ fmov.l L_SCR3(%a6),%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fsglmul.x FP_SCR0(%a6),%fp1 # execute sgl multiply + fsglmul.x FP_SCR0(%a6),%fp1 # execute sgl multiply fmov.l &0x0,%fpcr # clear FPCR @@ -10580,7 +10580,7 @@ fmov.l L_SCR3(%a6),%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fsglmul.x FP_SCR0(%a6),%fp0 # execute sgl multiply + fsglmul.x FP_SCR0(%a6),%fp0 # execute sgl multiply fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -10604,11 +10604,11 @@ mov.l L_SCR3(%a6),%d1 andi.b &0xc0,%d1 # keep rnd prec ori.b &rz_mode*0x10,%d1 # insert RZ - + fmov.l %d1,%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fsglmul.x FP_SCR0(%a6),%fp1 # execute sgl multiply + fsglmul.x FP_SCR0(%a6),%fp1 # execute sgl multiply fmov.l &0x0,%fpcr # clear FPCR fabs.x %fp1 # make absolute value @@ -10696,15 +10696,15 @@ ######################################################################### # XDEF **************************************************************** # -# fsgldiv(): emulates the fsgldiv instruction # +# fsgldiv(): emulates the fsgldiv instruction # # # # XREF **************************************************************** # # scale_to_zero_src() - scale src exponent to zero # # scale_to_zero_dst() - scale dst exponent to zero # # unf_res4() - return default underflow result for sglop # # ovf_res() - return default overflow result # -# res_qnan() - return QNAN result # -# res_snan() - return SNAN result # +# res_qnan() - return QNAN result # +# res_snan() - return SNAN result # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # @@ -10722,7 +10722,7 @@ # instruction won't cause an exception. Use the regular fsgldiv to # # compute a result. Check if the regular operands would have taken # # an exception. If so, return the default overflow/underflow result # -# and return the EXOP if exceptions are enabled. Else, scale the # +# and return the EXOP if exceptions are enabled. Else, scale the # # result operand to the proper exponent. # # # ######################################################################### @@ -10737,7 +10737,7 @@ or.b STAG(%a6),%d1 # combine src tags bne.w fsgldiv_not_norm # optimize on non-norm input - + # # DIVIDE: NORMs and DENORMs ONLY! # @@ -10764,7 +10764,7 @@ cmpi.l %d0,&0x3fff-0x7ffe ble.w fsgldiv_may_ovfl - cmpi.l %d0,&0x3fff-0x0000 # will result underflow? + cmpi.l %d0,&0x3fff-0x0000 # will result underflow? beq.w fsgldiv_may_unfl # maybe bgt.w fsgldiv_unfl # yes; go handle underflow @@ -10824,7 +10824,7 @@ bne.b fsgldiv_ovfl_ena # yes fsgldiv_ovfl_dis: - btst &neg_bit,FPSR_CC(%a6) # is result negative + btst &neg_bit,FPSR_CC(%a6) # is result negative sne %d1 # set sign param accordingly mov.l L_SCR3(%a6),%d0 # pass prec:rnd andi.b &0x30,%d0 # kill precision @@ -10880,7 +10880,7 @@ rts # -# UNFL is enabled. +# UNFL is enabled. # fsgldiv_unfl_ena: fmovm.x FP_SCR1(%a6),&0x40 # load dst op @@ -10931,8 +10931,8 @@ # # we still don't know if underflow occurred. result is ~ equal to 1. but, # we don't know if the result was an underflow that rounded up to a 1 -# or a normalized number that rounded down to a 1. so, redo the entire -# operation using RZ as the rounding mode to see what the pre-rounded +# or a normalized number that rounded down to a 1. so, redo the entire +# operation using RZ as the rounding mode to see what the pre-rounded # result is. this case should be relatively rare. # fmovm.x FP_SCR1(%a6),&0x40 # load dst op into %fp1 @@ -11036,25 +11036,25 @@ # fdadd(): emulates the fdadd instruction # # # # XREF **************************************************************** # -# addsub_scaler2() - scale the operands so they won't take exc # +# addsub_scaler2() - scale the operands so they won't take exc # # ovf_res() - return default overflow result # # unf_res() - return default underflow result # # res_qnan() - set QNAN result # -# res_snan() - set SNAN result # +# res_snan() - set SNAN result # # res_operr() - set OPERR result # # scale_to_zero_src() - set src operand exponent equal to zero # # scale_to_zero_dst() - set dst operand exponent equal to zero # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # -# a1 = pointer to extended precision destination operand # +# a1 = pointer to extended precision destination operand # # # # OUTPUT ************************************************************** # # fp0 = result # # fp1 = EXOP (if exception occurred) # # # # ALGORITHM *********************************************************** # -# Handle NANs, infinities, and zeroes as special cases. Divide # +# Handle NANs, infinities, and zeroes as special cases. Divide # # norms into extended, single, and double precision. # # Do addition after scaling exponents such that exception won't # # occur. Then, check result exponent to see if exception would have # @@ -11268,7 +11268,7 @@ # # result is equal to the smallest normalized number in the selected precision -# if the precision is extended, this result could not have come from an +# if the precision is extended, this result could not have come from an # underflow that rounded up. # fadd_may_unfl: @@ -11290,7 +11290,7 @@ # ok, so now the result has a exponent equal to the smallest normalized # exponent for the selected precision. also, the mantissa is equal to # 0x8000000000000000 and this mantissa is the result of rounding non-zero -# g,r,s. +# g,r,s. # now, we must determine whether the pre-rounded result was an underflow # rounded "up" or a normalized number rounded "down". # so, we do this be re-executing the add using RZ as the rounding mode and @@ -11401,7 +11401,7 @@ fmov.s &0x00000000,%fp0 # return +ZERO mov.b &z_bmask,FPSR_CC(%a6) # set Z rts - + # # the ZEROes have opposite signs: # - therefore, we return +ZERO if the rounding modes are RN,RZ, or RP. @@ -11455,7 +11455,7 @@ eor.b %d1,%d0 bmi.l res_operr # weed out (-INF)+(+INF) -# ok, so it's not an OPERR. but, we do have to remember to return the +# ok, so it's not an OPERR. but, we do have to remember to return the # src INF since that's where the 881/882 gets the j-bit from... # @@ -11489,25 +11489,25 @@ # fdsub(): emulates the fdsub instruction # # # # XREF **************************************************************** # -# addsub_scaler2() - scale the operands so they won't take exc # +# addsub_scaler2() - scale the operands so they won't take exc # # ovf_res() - return default overflow result # # unf_res() - return default underflow result # # res_qnan() - set QNAN result # -# res_snan() - set SNAN result # +# res_snan() - set SNAN result # # res_operr() - set OPERR result # # scale_to_zero_src() - set src operand exponent equal to zero # # scale_to_zero_dst() - set dst operand exponent equal to zero # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # -# a1 = pointer to extended precision destination operand # +# a1 = pointer to extended precision destination operand # # # # OUTPUT ************************************************************** # # fp0 = result # # fp1 = EXOP (if exception occurred) # # # # ALGORITHM *********************************************************** # -# Handle NANs, infinities, and zeroes as special cases. Divide # +# Handle NANs, infinities, and zeroes as special cases. Divide # # norms into extended, single, and double precision. # # Do subtraction after scaling exponents such that exception won't# # occur. Then, check result exponent to see if exception would have # @@ -11657,7 +11657,7 @@ add.l &0xc,%sp fmovm.x FP_SCR1(%a6),&0x80 # load dst op - + fmov.l &rz_mode*0x10,%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR @@ -11721,7 +11721,7 @@ # # result is equal to the smallest normalized number in the selected precision -# if the precision is extended, this result could not have come from an +# if the precision is extended, this result could not have come from an # underflow that rounded up. # fsub_may_unfl: @@ -11743,7 +11743,7 @@ # ok, so now the result has a exponent equal to the smallest normalized # exponent for the selected precision. also, the mantissa is equal to # 0x8000000000000000 and this mantissa is the result of rounding non-zero -# g,r,s. +# g,r,s. # now, we must determine whether the pre-rounded result was an underflow # rounded "up" or a normalized number rounded "down". # so, we do this be re-executing the add using RZ as the rounding mode and @@ -11899,7 +11899,7 @@ # # both operands are INFs. an OPERR will result if the INFs have the -# same signs. else, +# same signs. else, # fsub_inf_2: mov.b SRC_EX(%a0),%d0 # exclusive or the signs @@ -11914,7 +11914,7 @@ fmovm.x SRC(%a0),&0x80 # return src INF fneg.x %fp0 # invert sign fbge.w fsub_inf_done # sign is now positive - mov.b &neg_bmask+inf_bmask,FPSR_CC(%a6) # set INF/NEG + mov.b &neg_bmask+inf_bmask,FPSR_CC(%a6) # set INF/NEG rts fsub_inf_dst: @@ -11930,7 +11930,7 @@ ######################################################################### # XDEF **************************************************************** # -# fsqrt(): emulates the fsqrt instruction # +# fsqrt(): emulates the fsqrt instruction # # fssqrt(): emulates the fssqrt instruction # # fdsqrt(): emulates the fdsqrt instruction # # # @@ -11938,8 +11938,8 @@ # scale_sqrt() - scale the source operand # # unf_res() - return default underflow result # # ovf_res() - return default overflow result # -# res_qnan_1op() - return QNAN result # -# res_snan_1op() - return SNAN result # +# res_qnan_1op() - return QNAN result # +# res_snan_1op() - return SNAN result # # # # INPUT *************************************************************** # # a0 = pointer to extended precision source operand # @@ -11956,7 +11956,7 @@ # instruction won't cause an exception. Use the regular fsqrt to # # compute a result. Check if the regular operands would have taken # # an exception. If so, return the default overflow/underflow result # -# and return the EXOP if exceptions are enabled. Else, scale the # +# and return the EXOP if exceptions are enabled. Else, scale the # # result operand to the proper exponent. # # # ######################################################################### @@ -11978,7 +11978,7 @@ clr.w %d1 mov.b STAG(%a6),%d1 bne.w fsqrt_not_norm # optimize on non-norm input - + # # SQUARE ROOT: norms and denorms ONLY! # @@ -12100,7 +12100,7 @@ fmov.l &rz_mode*0x10,%fpcr # set FPCR fmov.l &0x0,%fpsr # clear FPSR - fsqrt.x FP_SCR0(%a6),%fp0 # execute square root + fsqrt.x FP_SCR0(%a6),%fp0 # execute square root fmov.l %fpsr,%d1 # save status fmov.l &0x0,%fpcr # clear FPCR @@ -12120,10 +12120,10 @@ bsr.l unf_res # calculate default result or.b %d0,FPSR_CC(%a6) # set possible 'Z' ccode fmovm.x FP_SCR0(%a6),&0x80 # return default result in fp0 - rts + rts # -# operand will underflow AND underflow is enabled. +# operand will underflow AND underflow is enabled. # therefore, we must return the result rounded to extended precision. # fsqrt_sd_unfl_ena: @@ -12239,15 +12239,15 @@ bra.l res_qnan_1op # -# fsqrt(+0) = +0 -# fsqrt(-0) = -0 +# fsqrt(+0) = +0 +# fsqrt(-0) = -0 # fsqrt(+INF) = +INF -# fsqrt(-INF) = OPERR +# fsqrt(-INF) = OPERR # fsqrt_zero: tst.b SRC_EX(%a0) # is ZERO positive or negative? bmi.b fsqrt_zero_m # negative -fsqrt_zero_p: +fsqrt_zero_p: fmov.s &0x00000000,%fp0 # return +ZERO mov.b &z_bmask,FPSR_CC(%a6) # set 'Z' ccode bit rts @@ -12273,13 +12273,13 @@ # # # INPUT *************************************************************** # # d1 = index of register to fetch from # -# # +# # # OUTPUT ************************************************************** # # d0 = value of register fetched # # # # ALGORITHM *********************************************************** # -# According to the index value in d1 which can range from zero # -# to fifteen, load the corresponding register file value (where # +# According to the index value in d1 which can range from zero # +# to fifteen, load the corresponding register file value (where # # address register indexes start at 8). D0/D1/A0/A1/A6/A7 are on the # # stack. The rest should still be in their original places. # # # @@ -12368,7 +12368,7 @@ # INPUT *************************************************************** # # d0 = longowrd value to store # # d1 = index of register to fetch from # -# # +# # # OUTPUT ************************************************************** # # (data register is updated) # # # @@ -12429,7 +12429,7 @@ # INPUT *************************************************************** # # d0 = word value to store # # d1 = index of register to fetch from # -# # +# # # OUTPUT ************************************************************** # # (data register is updated) # # # @@ -12490,7 +12490,7 @@ # INPUT *************************************************************** # # d0 = byte value to store # # d1 = index of register to fetch from # -# # +# # # OUTPUT ************************************************************** # # (data register is updated) # # # @@ -12551,16 +12551,16 @@ # INPUT *************************************************************** # # d0 = amount to increment by # # d1 = index of address register to increment # -# # +# # # OUTPUT ************************************************************** # # (address register is updated) # # # # ALGORITHM *********************************************************** # -# Typically used for an instruction w/ a post-increment , # +# Typically used for an instruction w/ a post-increment , # # this routine adds the increment value in d0 to the address register # # specified by d1. A0/A1/A6/A7 reside on the stack. The rest reside # # in their original places. # -# For a7, if the increment amount is one, then we have to # +# For a7, if the increment amount is one, then we have to # # increment by two. For any a7 update, set the mia7_flag so that if # # an access error exception occurs later in emulation, this address # # register update can be undone. # @@ -12615,16 +12615,16 @@ # INPUT *************************************************************** # # d0 = amount to decrement by # # d1 = index of address register to decrement # -# # +# # # OUTPUT ************************************************************** # # (address register is updated) # # # # ALGORITHM *********************************************************** # -# Typically used for an instruction w/ a pre-decrement , # +# Typically used for an instruction w/ a pre-decrement , # # this routine adds the decrement value in d0 to the address register # # specified by d1. A0/A1/A6/A7 reside on the stack. The rest reside # # in their original places. # -# For a7, if the decrement amount is one, then we have to # +# For a7, if the decrement amount is one, then we have to # # decrement by two. For any a7 update, set the mda7_flag so that if # # an access error exception occurs later in emulation, this address # # register update can be undone. # @@ -12680,17 +12680,17 @@ # # # INPUT *************************************************************** # # d0 = index of FP register to load # -# # +# # # OUTPUT ************************************************************** # # FP_SRC(a6) = value loaded from FP register file # # # # ALGORITHM *********************************************************** # -# Using the index in d0, load FP_SRC(a6) with a number from the # +# Using the index in d0, load FP_SRC(a6) with a number from the # # FP register file. # # # ######################################################################### - global load_fpn1 + global load_fpn1 load_fpn1: mov.w (tbl_load_fpn1.b,%pc,%d0.w*2), %d0 jmp (tbl_load_fpn1.b,%pc,%d0.w*1) @@ -12753,12 +12753,12 @@ # # # INPUT *************************************************************** # # d0 = index of FP register to load # -# # +# # # OUTPUT ************************************************************** # # FP_DST(a6) = value loaded from FP register file # # # # ALGORITHM *********************************************************** # -# Using the index in d0, load FP_DST(a6) with a number from the # +# Using the index in d0, load FP_DST(a6) with a number from the # # FP register file. # # # ######################################################################### @@ -12819,7 +12819,7 @@ ######################################################################### # XDEF **************************************************************** # -# store_fpreg(): store an fp value to the fpreg designated d0. # +# store_fpreg(): store an fp value to the fpreg designated d0. # # # # XREF **************************************************************** # # None # @@ -12827,7 +12827,7 @@ # INPUT *************************************************************** # # fp0 = extended precision value to store # # d0 = index of floating-point register # -# # +# # # OUTPUT ************************************************************** # # None # # # @@ -12860,27 +12860,27 @@ fmovm.x &0x80, EXC_FP1(%a6) rts store_fpreg_2: - fmovm.x &0x01, -(%sp) + fmovm.x &0x01, -(%sp) fmovm.x (%sp)+, &0x20 rts store_fpreg_3: - fmovm.x &0x01, -(%sp) + fmovm.x &0x01, -(%sp) fmovm.x (%sp)+, &0x10 rts store_fpreg_4: - fmovm.x &0x01, -(%sp) + fmovm.x &0x01, -(%sp) fmovm.x (%sp)+, &0x08 rts store_fpreg_5: - fmovm.x &0x01, -(%sp) + fmovm.x &0x01, -(%sp) fmovm.x (%sp)+, &0x04 rts store_fpreg_6: - fmovm.x &0x01, -(%sp) + fmovm.x &0x01, -(%sp) fmovm.x (%sp)+, &0x02 rts store_fpreg_7: - fmovm.x &0x01, -(%sp) + fmovm.x &0x01, -(%sp) fmovm.x (%sp)+, &0x01 rts @@ -12897,18 +12897,18 @@ # # # INPUT *************************************************************** # # None # -# # +# # # OUTPUT ************************************************************** # # If no failure on _mem_read(): # -# FP_SRC(a6) = packed operand now as a binary FP number # +# FP_SRC(a6) = packed operand now as a binary FP number # # # # ALGORITHM *********************************************************** # -# Get the correct whihc is the value on the exception stack # +# Get the correct whihc is the value on the exception stack # # frame w/ maybe a correction factor if the is -(an) or (an)+. # # Then, fetch the operand from memory. If the fetch fails, exit # # through facc_in_x(). # # If the packed operand is a ZERO,NAN, or INF, convert it to # -# its binary representation here. Else, call decbin() which will # +# its binary representation here. Else, call decbin() which will # # convert the packed value to an extended precision binary value. # # # ######################################################################### @@ -12965,7 +12965,7 @@ # and NaN operands are dispatched without entering this routine) # # value in 68881/882 format at location (a0). # # # -# A1. Convert the bcd exponent to binary by successive adds and # +# A1. Convert the bcd exponent to binary by successive adds and # # muls. Set the sign according to SE. Subtract 16 to compensate # # for the mantissa which is to be interpreted as 17 integer # # digits, rather than 1 integer and 16 fraction digits. # @@ -13029,7 +13029,7 @@ global decbin decbin: - mov.l 0x0(%a0),FP_SCR0_EX(%a6) # make a copy of input + mov.l 0x0(%a0),FP_SCR0_EX(%a6) # make a copy of input mov.l 0x4(%a0),FP_SCR0_HI(%a6) # so we don't alter it mov.l 0x8(%a0),FP_SCR0_LO(%a6) @@ -13318,7 +13318,7 @@ # # Pwrten calculates the exponent factor in the selected rounding mode # according to the following table: -# +# # Sign of Mant Sign of Exp Rounding Mode PWRTEN Rounding Mode # # ANY ANY RN RN @@ -13406,7 +13406,7 @@ # it will be inex2, but will be reported as inex1 by get_op. # end_dec: - fmov.l %fpsr,%d0 # get status register + fmov.l %fpsr,%d0 # get status register bclr &inex2_bit+8,%d0 # test for inex2 and clear it beq.b no_exc # skip this if no exc ori.w &inx1a_mask,2+USER_FPSR(%a6) # set INEX1/AINEX @@ -13423,16 +13423,16 @@ # # # INPUT *************************************************************** # # a0 = pointer to the input extended precision value in memory. # -# the input may be either normalized, unnormalized, or # +# the input may be either normalized, unnormalized, or # # denormalized. # -# d0 = contains the k-factor sign-extended to 32-bits. # +# d0 = contains the k-factor sign-extended to 32-bits. # # # # OUTPUT ************************************************************** # # FP_SCR0(a6) = bcd format result on the stack. # # # # ALGORITHM *********************************************************** # # # -# A1. Set RM and size ext; Set SIGMA = sign of input. # +# A1. Set RM and size ext; Set SIGMA = sign of input. # # The k-factor is saved for use in d7. Clear the # # BINDEC_FLG for separating normalized/denormalized # # input. If input is unnormalized or denormalized, # @@ -13442,15 +13442,15 @@ # # # A3. Compute ILOG. # # ILOG is the log base 10 of the input value. It is # -# approximated by adding e + 0.f when the original # -# value is viewed as 2^^e * 1.f in extended precision. # +# approximated by adding e + 0.f when the original # +# value is viewed as 2^^e * 1.f in extended precision. # # This value is stored in d6. # # # # A4. Clr INEX bit. # -# The operation in A3 above may have set INEX2. # +# The operation in A3 above may have set INEX2. # # # # A5. Set ICTR = 0; # -# ICTR is a flag used in A13. It must be set before the # +# ICTR is a flag used in A13. It must be set before the # # loop entry A6. # # # # A6. Calculate LEN. # @@ -13472,7 +13472,7 @@ # of ISCALE and X. A table is given in the code. # # # # A8. Clr INEX; Force RZ. # -# The operation in A3 above may have set INEX2. # +# The operation in A3 above may have set INEX2. # # RZ mode is forced for the scaling operation to insure # # only one rounding error. The grs bits are collected in # # the INEX flag for use in A10. # @@ -13503,11 +13503,11 @@ # the mantissa by 10. # # # # A14. Convert the mantissa to bcd. # -# The binstr routine is used to convert the LEN digit # +# The binstr routine is used to convert the LEN digit # # mantissa to bcd in memory. The input to binstr is # # to be a fraction; i.e. (mantissa)/10^LEN and adjusted # # such that the decimal point is to the left of bit 63. # -# The bcd digits are stored in the correct position in # +# The bcd digits are stored in the correct position in # # the final string area in memory. # # # # A15. Convert the exponent to bcd. # @@ -13553,7 +13553,7 @@ # d2: upper 32-bits of mantissa for binstr # d3: scratch;lower 32-bits of mantissa for binstr # d4: LEN -# d5: LAMBDA/ICTR +# d5: LAMBDA/ICTR # d6: ILOG # d7: k-factor # a0: ptr for original operand/final result @@ -13577,7 +13577,7 @@ # separating normalized/denormalized input. If the input # is a denormalized number, set the BINDEC_FLG memory word # to signal denorm. If the input is unnormalized, normalize -# the input and test for denormalized result. +# the input and test for denormalized result. # fmov.l &rm_mode*0x10,%fpcr # set RM and ext mov.l (%a0),L_SCR2(%a6) # save exponent for sign check @@ -13658,7 +13658,7 @@ sub.w &0x3fff,%d0 # strip off bias fadd.w %d0,%fp0 # add in exp fsub.s FONE(%pc),%fp0 # subtract off 1.0 - fbge.w pos_res # if pos, branch + fbge.w pos_res # if pos, branch fmul.x PLOG2UP1(%pc),%fp0 # if neg, mul by LOG2UP1 fmov.l %fp0,%d6 # put ILOG in d6 as a lword bra.b A4_str # go move out ILOG @@ -13668,14 +13668,14 @@ # A4. Clr INEX bit. -# The operation in A3 above may have set INEX2. +# The operation in A3 above may have set INEX2. A4_str: fmov.l &0,%fpsr # zero all of fpsr - nothing needed # A5. Set ICTR = 0; -# ICTR is a flag used in A13. It must be set before the +# ICTR is a flag used in A13. It must be set before the # loop entry A6. The lower word of d5 is used for ICTR. clr.w %d5 # clear ICTR @@ -13841,21 +13841,21 @@ bne.b e_loop2 # if not, loop # A8. Clr INEX; Force RZ. -# The operation in A3 above may have set INEX2. +# The operation in A3 above may have set INEX2. # RZ mode is forced for the scaling operation to insure -# only one rounding error. The grs bits are collected in +# only one rounding error. The grs bits are collected in # the INEX flag for use in A10. # # Register usage: # Input/Output - fmov.l &0,%fpsr # clr INEX + fmov.l &0,%fpsr # clr INEX fmov.l &rz_mode*0x10,%fpcr # set RZ rounding mode # A9. Scale X -> Y. # The mantissa is scaled to the desired number of significant # digits. The excess digits are collected in INEX2. If mul, -# Check d2 for excess 10 exponential value. If not zero, +# Check d2 for excess 10 exponential value. If not zero, # the iscale value would have caused the pwrten calculation # to overflow. Only a negative iscale can cause this, so # multiply by 10^(d2), which is now only allowed to be 24, @@ -13986,7 +13986,7 @@ A11_st: mov.l USER_FPCR(%a6),L_SCR1(%a6) # save it for later - and.l &0x00000030,USER_FPCR(%a6) # set size to ext, + and.l &0x00000030,USER_FPCR(%a6) # set size to ext, # ;block exceptions @@ -14022,7 +14022,7 @@ lea.l FP_SCR1(%a6),%a0 # a0 is ptr to FP_SCR1(a6) fmov.x %fp0,(%a0) # move Y to memory at FP_SCR1(a6) tst.l L_SCR2(%a6) # test sign of original operand - bge.b do_fint12 # if pos, use Y + bge.b do_fint12 # if pos, use Y or.l &0x80000000,(%a0) # if neg, use -Y do_fint12: mov.l USER_FPSR(%a6),-(%sp) @@ -14118,7 +14118,7 @@ subq.l &1,%d6 # subtract 1 from ILOG mov.w &1,%d5 # set ICTR fmov.l &rm_mode*0x10,%fpcr # set rmode to RM - fmul.s FTEN(%pc),%fp2 # compute 10^LEN + fmul.s FTEN(%pc),%fp2 # compute 10^LEN bra.w A6_str # return to A6 and recompute YINT test_2: fmul.s FTEN(%pc),%fp2 # compute 10^LEN @@ -14134,7 +14134,7 @@ fmov.l &rm_mode*0x10,%fpcr # set rmode to RM bra.w A6_str # return to A6 and recompute YINT # -# Since ICTR <> 0, we have already been through one adjustment, +# Since ICTR <> 0, we have already been through one adjustment, # and shouldn't have another; this is to check if abs(YINT) = 10^LEN # 10^LEN is again computed using whatever table is in a1 since the # value calculated cannot be inexact. @@ -14160,11 +14160,11 @@ fmul.s FTEN(%pc),%fp2 # if LEN++, the get 10^^LEN # A14. Convert the mantissa to bcd. -# The binstr routine is used to convert the LEN digit +# The binstr routine is used to convert the LEN digit # mantissa to bcd in memory. The input to binstr is # to be a fraction; i.e. (mantissa)/10^LEN and adjusted # such that the decimal point is to the left of bit 63. -# The bcd digits are stored in the correct position in +# The bcd digits are stored in the correct position in # the final string area in memory. # # @@ -14207,7 +14207,7 @@ bgt.b no_sft # if so, don't shift neg.l %d0 # make exp positive m_loop: - lsr.l &1,%d2 # shift d2:d3 right, add 0s + lsr.l &1,%d2 # shift d2:d3 right, add 0s roxr.l &1,%d3 # the number of places dbf.w %d0,m_loop # given in d0 no_sft: @@ -14232,9 +14232,9 @@ # # Digits are stored in L_SCR1(a6) on return from BINDEC as: # -# 32 16 15 0 +# 32 16 15 0 # ----------------------------------------- -# | 0 | e3 | e2 | e1 | e4 | X | X | X | +# | 0 | e3 | e2 | e1 | e4 | X | X | X | # ----------------------------------------- # # And are moved into their proper places in FP_SCR0. If digit e4 @@ -14297,7 +14297,7 @@ sub.w &0x3ffd,%d0 # subtract off bias neg.w %d0 # make exp positive x_loop: - lsr.l &1,%d2 # shift d2:d3 right + lsr.l &1,%d2 # shift d2:d3 right roxr.l &1,%d3 # the number of places dbf.w %d0,x_loop # given in d0 x_loop_fin: @@ -14308,12 +14308,12 @@ mov.l &4,%d0 # put 4 in d0 for binstr call lea.l L_SCR1(%a6),%a0 # a0 is ptr to L_SCR1 for exp digits bsr binstr # call binstr to convert exp - mov.l L_SCR1(%a6),%d0 # load L_SCR1 lword to d0 + mov.l L_SCR1(%a6),%d0 # load L_SCR1 lword to d0 mov.l &12,%d1 # use d1 for shift count lsr.l %d1,%d0 # shift d0 right by 12 bfins %d0,FP_SCR0(%a6){&4:&12} # put e3:e2:e1 in FP_SCR0 lsr.l %d1,%d0 # shift d0 right by 12 - bfins %d0,FP_SCR0(%a6){&16:&4} # put e4 in FP_SCR0 + bfins %d0,FP_SCR0(%a6){&16:&4} # put e4 in FP_SCR0 tst.b %d0 # check if e4 is zero beq.b A16_st # if zero, skip rest or.l &opaop_mask,USER_FPSR(%a6) # set OPERR & AIOP in USER_FPSR @@ -14344,14 +14344,14 @@ A16_st: clr.l %d0 # clr d0 for collection of signs - and.b &0x0f,FP_SCR0(%a6) # clear first nibble of FP_SCR0 + and.b &0x0f,FP_SCR0(%a6) # clear first nibble of FP_SCR0 tst.l L_SCR2(%a6) # check sign of original mantissa bge.b mant_p # if pos, don't set SM mov.l &2,%d0 # move 2 in to d0 for SM mant_p: tst.l %d6 # check sign of ILOG bge.b wr_sgn # if pos, don't set SE - addq.l &1,%d0 # set bit 0 in d0 for SE + addq.l &1,%d0 # set bit 0 in d0 for SE wr_sgn: bfins %d0,FP_SCR0(%a6){&0:&2} # insert SM and SE into FP_SCR0 @@ -14417,8 +14417,8 @@ # d2:d3 = 64-bit binary integer # # d0 = desired length (LEN) # # a0 = pointer to start in memory for bcd characters # -# (This pointer must point to byte 4 of the first # -# lword of the packed decimal memory string.) # +# (This pointer must point to byte 4 of the first # +# lword of the packed decimal memory string.) # # # # OUTPUT ************************************************************** # # a0 = pointer to LEN bcd digits representing the 64-bit integer. # @@ -14558,14 +14558,14 @@ # # # INPUT *************************************************************** # # None # -# # +# # # OUTPUT ************************************************************** # # None # # # # ALGORITHM *********************************************************** # -# Flow jumps here when an FP data fetch call gets an error # +# Flow jumps here when an FP data fetch call gets an error # # result. This means the operating system wants an access error frame # -# made out of the current exception stack frame. # +# made out of the current exception stack frame. # # So, we first call restore() which makes sure that any updated # # -(an)+ register gets returned to its pre-exception value and then # # we change the stack to an access error stack frame. # @@ -14735,7 +14735,7 @@ bne.b ri_a7_done # supervisor movc %usp,%a0 # restore USP sub.l %d0,%a0 - movc %a0,%usp + movc %a0,%usp ri_a7_done: rts diff -Nru a/arch/m68k/kernel/bios32.c b/arch/m68k/kernel/bios32.c --- a/arch/m68k/kernel/bios32.c Tue May 18 23:38:07 2004 +++ b/arch/m68k/kernel/bios32.c Tue May 18 23:38:07 2004 @@ -46,7 +46,7 @@ #define ALIGN(val,align) (((val) + ((align) - 1)) & ~((align) - 1)) -#define MAX(val1, val2) (((val1) > (val2)) ? val1 : val2) +#define MAX(val1, val2) (((val1) > (val2)) ? val1 : val2) /* * Offsets relative to the I/O and memory base addresses from where resources diff -Nru a/arch/m68k/kernel/entry.S b/arch/m68k/kernel/entry.S --- a/arch/m68k/kernel/entry.S Tue May 18 23:38:05 2004 +++ b/arch/m68k/kernel/entry.S Tue May 18 23:38:05 2004 @@ -55,7 +55,7 @@ ENTRY(buserr) SAVE_ALL_INT GET_CURRENT(%d0) - movel %sp,%sp@- | stack frame pointer argument + movel %sp,%sp@- | stack frame pointer argument bsrl buserr_c addql #4,%sp jra ret_from_exception @@ -63,7 +63,7 @@ ENTRY(trap) SAVE_ALL_INT GET_CURRENT(%d0) - movel %sp,%sp@- | stack frame pointer argument + movel %sp,%sp@- | stack frame pointer argument bsrl trap_c addql #4,%sp jra ret_from_exception @@ -99,18 +99,18 @@ jbsr syscall_trace ret_from_signal: - RESTORE_SWITCH_STACK + RESTORE_SWITCH_STACK addql #4,%sp -/* on 68040 complete pending writebacks if any */ +/* on 68040 complete pending writebacks if any */ #ifdef CONFIG_M68040 - bfextu %sp@(PT_VECTOR){#0,#4},%d0 + bfextu %sp@(PT_VECTOR){#0,#4},%d0 subql #7,%d0 | bus error frame ? jbne 1f movel %sp,%sp@- jbsr berr_040cleanup addql #4,%sp -1: -#endif +1: +#endif jra ret_from_exception ENTRY(system_call) @@ -229,18 +229,18 @@ bfextu %sp@(PT_VECTOR){#4,#10},%d0 movel %sp,%sp@- - movel %d0,%sp@- | put vector # on stack + movel %d0,%sp@- | put vector # on stack #if defined(MACH_Q40_ONLY) && defined(CONFIG_BLK_DEV_FD) btstb #4,0xff000000 | Q40 floppy needs very special treatment ... jbeq 1f - btstb #3,0xff000004 + btstb #3,0xff000004 jbeq 1f jbsr floppy_hardint jbra 3f 1: -#endif +#endif jbsr process_int | process the IRQ -3: addql #8,%sp | pop parameters off stack +3: addql #8,%sp | pop parameters off stack ret_from_interrupt: subqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+2) @@ -266,7 +266,7 @@ rte ENTRY(sys_fork) - SAVE_SWITCH_STACK + SAVE_SWITCH_STACK pea %sp@(SWITCH_STACK_SIZE) jbsr m68k_fork addql #4,%sp @@ -282,7 +282,7 @@ rts ENTRY(sys_vfork) - SAVE_SWITCH_STACK + SAVE_SWITCH_STACK pea %sp@(SWITCH_STACK_SIZE) jbsr m68k_vfork addql #4,%sp @@ -397,7 +397,7 @@ #if !defined(CPU_M68060_ONLY) 1: tstb %a1@(TASK_THREAD+THREAD_FPSTATE) jeq 3f -#endif +#endif 2: fmovemx %a1@(TASK_THREAD+THREAD_FPREG),%fp0-%fp7 fmoveml %a1@(TASK_THREAD+THREAD_FPCNTL),%fpcr/%fpsr/%fpiar 3: frestore %a1@(TASK_THREAD+THREAD_FPSTATE) @@ -554,7 +554,7 @@ .long sys_adjtimex .long sys_mprotect /* 125 */ .long sys_sigprocmask - .long sys_ni_syscall /* old "create_module" */ + .long sys_ni_syscall /* old "create_module" */ .long sys_init_module .long sys_delete_module .long sys_ni_syscall /* 130 - old "get_kernel_syms" */ diff -Nru a/arch/m68k/kernel/head.S b/arch/m68k/kernel/head.S --- a/arch/m68k/kernel/head.S Tue May 18 23:38:09 2004 +++ b/arch/m68k/kernel/head.S Tue May 18 23:38:09 2004 @@ -19,7 +19,7 @@ ** ++ Bjoern & Roman: ATARI-68040 support for the Medusa ** 95/11/18 Richard Hirst: Added MVME166 support ** 96/04/26 Guenther Kelleter: fixed identity mapping for Falcon with -** Magnum- and FX-alternate ram +** Magnum- and FX-alternate ram ** 98/04/25 Phil Blundell: added HP300 support ** 1998/08/30 David Kilzer: Added support for font_desc structures ** for linux-2.1.115 @@ -67,7 +67,7 @@ * for the kernel. * There are new subroutines and data structures to make MMU * support cleaner and easier to understand. - * First, you will find a routine call "mmu_map" which maps + * First, you will find a routine call "mmu_map" which maps * a logical to a physical region for some length given a cache * type on behalf of the caller. This routine makes writing the * actual per-machine specific code very simple. @@ -299,7 +299,7 @@ * For the head.S console, there are three supported fonts, 6x11, 8x16 and 8x8. * The 8x8 font is harder to read but fits more on the screen. */ -#define FONT_8x8 /* default */ +#define FONT_8x8 /* default */ /* #define FONT_8x16 */ /* 2nd choice */ /* #define FONT_6x11 */ /* 3rd choice */ diff -Nru a/arch/m68k/kernel/process.c b/arch/m68k/kernel/process.c --- a/arch/m68k/kernel/process.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/kernel/process.c Tue May 18 23:38:09 2004 @@ -67,8 +67,7 @@ { struct switch_stack *sw = (struct switch_stack *)tsk->thread.ksp; /* Check whether the thread is blocked in resume() */ - if (sw->retpc > (unsigned long)scheduling_functions_start_here && - sw->retpc < (unsigned long)scheduling_functions_end_here) + if (in_sched_functions(sw->retpc)) return ((unsigned long *)sw->a6)[1]; else return sw->retpc; @@ -382,12 +381,6 @@ return error; } -/* - * These bracket the sleeping functions.. - */ -#define first_sched ((unsigned long) scheduling_functions_start_here) -#define last_sched ((unsigned long) scheduling_functions_end_here) - unsigned long get_wchan(struct task_struct *p) { unsigned long fp, pc; @@ -403,7 +396,7 @@ fp >= 8184+stack_page) return 0; pc = ((unsigned long *)fp)[1]; - if (pc < first_sched || pc >= last_sched) + if (!in_sched_functions(pc)) return pc; fp = *(unsigned long *) fp; } while (count++ < 16); diff -Nru a/arch/m68k/kernel/ptrace.c b/arch/m68k/kernel/ptrace.c --- a/arch/m68k/kernel/ptrace.c Tue May 18 23:38:06 2004 +++ b/arch/m68k/kernel/ptrace.c Tue May 18 23:38:06 2004 @@ -156,7 +156,7 @@ switch (request) { /* when I and D space are separate, these will need to be fixed. */ - case PTRACE_PEEKTEXT: /* read word at location addr. */ + case PTRACE_PEEKTEXT: /* read word at location addr. */ case PTRACE_PEEKDATA: { unsigned long tmp; int copied; @@ -172,12 +172,12 @@ /* read the word at location addr in the USER area. */ case PTRACE_PEEKUSR: { unsigned long tmp; - + ret = -EIO; if ((addr & 3) || addr < 0 || addr > sizeof(struct user) - 3) break; - + tmp = 0; /* Default return condition */ addr = addr >> 2; /* temporary hack. */ ret = -EIO; @@ -217,7 +217,7 @@ break; addr = addr >> 2; /* temporary hack. */ - + if (addr == PT_SR) { data &= SR_MASK; data <<= 16; @@ -269,8 +269,8 @@ } /* - * make the child exit. Best I can do is send it a sigkill. - * perhaps it should be put in the status that it wants to + * make the child exit. Best I can do is send it a sigkill. + * perhaps it should be put in the status that it wants to * exit. */ case PTRACE_KILL: { @@ -311,7 +311,7 @@ break; case PTRACE_GETREGS: { /* Get all gp regs from the child. */ - int i; + int i; unsigned long tmp; for (i = 0; i < 19; i++) { tmp = get_reg(child, i); diff -Nru a/arch/m68k/kernel/setup.c b/arch/m68k/kernel/setup.c --- a/arch/m68k/kernel/setup.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/kernel/setup.c Tue May 18 23:38:09 2004 @@ -85,7 +85,7 @@ void (*mach_halt)( void ); void (*mach_power_off)( void ); long mach_max_dma_address = 0x00ffffff; /* default set to the lower 16MB */ -#if defined(CONFIG_AMIGA_FLOPPY) || defined(CONFIG_ATARI_FLOPPY) +#if defined(CONFIG_AMIGA_FLOPPY) || defined(CONFIG_ATARI_FLOPPY) void (*mach_floppy_setup) (char *, int *) __initdata = NULL; #endif #ifdef CONFIG_HEARTBEAT @@ -143,7 +143,7 @@ /* Already set up by head.S */ break; - case BI_MEMCHUNK: + case BI_MEMCHUNK: if (m68k_num_memory < NUM_MEMINFO) { m68k_memory[m68k_num_memory].addr = data[0]; m68k_memory[m68k_num_memory].size = data[1]; @@ -236,7 +236,7 @@ volatile int zero = 0; asm __volatile__ ("frestore %0" : : "m" (zero)); } -#endif +#endif init_mm.start_code = PAGE_OFFSET; init_mm.end_code = (unsigned long) &_etext; @@ -296,28 +296,28 @@ #endif #ifdef CONFIG_SUN3 case MACH_SUN3: - config_sun3(); - break; + config_sun3(); + break; #endif #ifdef CONFIG_APOLLO case MACH_APOLLO: - config_apollo(); - break; + config_apollo(); + break; #endif #ifdef CONFIG_MVME147 case MACH_MVME147: - config_mvme147(); - break; + config_mvme147(); + break; #endif #ifdef CONFIG_MVME16x case MACH_MVME16x: - config_mvme16x(); - break; + config_mvme16x(); + break; #endif #ifdef CONFIG_BVME6000 case MACH_BVME6000: - config_bvme6000(); - break; + config_bvme6000(); + break; #endif #ifdef CONFIG_HP300 case MACH_HP300: @@ -384,11 +384,11 @@ /* set ISA defs early as possible */ #if defined(CONFIG_ISA) && defined(MULTI_ISA) -#if defined(CONFIG_Q40) +#if defined(CONFIG_Q40) if (MACH_IS_Q40) { isa_type = Q40_ISA; isa_sex = 0; - } + } #elif defined(CONFIG_GG2) if (MACH_IS_AMIGA && AMIGAHW_PRESENT(GG2_ISA)){ isa_type = GG2_ISA; diff -Nru a/arch/m68k/kernel/signal.c b/arch/m68k/kernel/signal.c --- a/arch/m68k/kernel/signal.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/kernel/signal.c Tue May 18 23:38:08 2004 @@ -121,7 +121,7 @@ } } -asmlinkage int +asmlinkage int sys_sigaction(int sig, const struct old_sigaction *act, struct old_sigaction *oact) { @@ -329,7 +329,7 @@ /* get previous context */ if (copy_from_user(&context, usc, sizeof(context))) goto badframe; - + /* restore passed registers */ regs->d1 = context.sc_d1; regs->a0 = context.sc_a0; @@ -521,7 +521,7 @@ sigdelsetmask(&set, ~_BLOCKABLE); current->blocked = set; recalc_sigpending(); - + if (restore_sigcontext(regs, &frame->sc, frame + 1, &d0)) goto badframe; return d0; @@ -548,7 +548,7 @@ sigdelsetmask(&set, ~_BLOCKABLE); current->blocked = set; recalc_sigpending(); - + if (rt_restore_ucontext(regs, sw, &frame->uc, &d0)) goto badframe; return d0; @@ -1091,7 +1091,7 @@ current->state = TASK_STOPPED; current->exit_code = signr; sighand = current->parent->sighand; - if (sighand && !(sighand->action[SIGCHLD-1].sa.sa_flags + if (sighand && !(sighand->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDSTOP)) notify_parent(current, SIGCHLD); schedule(); diff -Nru a/arch/m68k/kernel/sun3-head.S b/arch/m68k/kernel/sun3-head.S --- a/arch/m68k/kernel/sun3-head.S Tue May 18 23:38:05 2004 +++ b/arch/m68k/kernel/sun3-head.S Tue May 18 23:38:05 2004 @@ -9,7 +9,7 @@ NBSG = 0x20000 ICACHE_ONLY = 0x00000009 CACHES_OFF = 0x00000008 | actually a clear and disable --m -#define MAS_STACK INT_STACK +#define MAS_STACK INT_STACK ROOT_TABLE_SIZE = 128 PAGESIZE = 8192 SUN3_INVALID_PMEG = 255 @@ -35,9 +35,9 @@ /* Firstly, disable interrupts and set up function codes. */ movew #PSL_HIGHIPL, %sr - moveq #FC_CONTROL, %d0 - movec %d0, %sfc - movec %d0, %dfc + moveq #FC_CONTROL, %d0 + movec %d0, %sfc + movec %d0, %dfc /* Make sure we're in context zero. */ moveq #0, %d0 @@ -45,9 +45,9 @@ /* map everything the bootloader left us into high memory, clean up the excess later */ - lea (AC_SEGMAP+0),%a0 - lea (AC_SEGMAP+KERNBASE),%a1 -1: + lea (AC_SEGMAP+0),%a0 + lea (AC_SEGMAP+KERNBASE),%a1 +1: movsb %a0@, %d1 movsb %d1, %a1@ cmpib #SUN3_INVALID_PMEG, %d1 @@ -55,13 +55,13 @@ addl #NBSG,%a0 addl #NBSG,%a1 jmp 1b - -2: - + +2: + /* Disable caches and jump to high code. */ moveq #ICACHE_ONLY,%d0 | Cache disabled until we're ready to enable it movc %d0, %cacr | is this the right value? (yes --m) - jmp 1f:l + jmp 1f:l /* Following code executes at high addresses (0xE000xxx). */ 1: lea init_task,%curptr | get initial thread... @@ -76,7 +76,7 @@ movel %a0@, %a1@ addl #4, %a1 dbf %d0, 1b - + /* Point MSP at an invalid page to trap if it's used. --m */ movl #(PAGESIZE),%d0 movc %d0,%msp @@ -86,9 +86,9 @@ jbsr sun3_init jbsr base_trap_init - + jbsr start_kernel - trap #15 + trap #15 .data .even diff -Nru a/arch/m68k/kernel/sys_m68k.c b/arch/m68k/kernel/sys_m68k.c --- a/arch/m68k/kernel/sys_m68k.c Tue May 18 23:38:05 2004 +++ b/arch/m68k/kernel/sys_m68k.c Tue May 18 23:38:05 2004 @@ -203,10 +203,10 @@ default: return -ENOSYS; } - if (call <= MSGCTL) + if (call <= MSGCTL) switch (call) { case MSGSND: - return sys_msgsnd (first, (struct msgbuf *) ptr, + return sys_msgsnd (first, (struct msgbuf *) ptr, second, third); case MSGRCV: switch (version) { @@ -234,7 +234,7 @@ default: return -ENOSYS; } - if (call <= SHMCTL) + if (call <= SHMCTL) switch (call) { case SHMAT: switch (version) { @@ -247,7 +247,7 @@ return put_user (raddr, (ulong *) third); } } - case SHMDT: + case SHMDT: return sys_shmdt ((char *)ptr); case SHMGET: return sys_shmget (first, second, third); @@ -442,7 +442,7 @@ unsigned long paddr, i; /* - * 68060 manual says: + * 68060 manual says: * cpush %dc : flush DC, remains valid (with our %cacr setup) * cpush %ic : invalidate IC * cpush %bc : flush DC + invalidate IC diff -Nru a/arch/m68k/kernel/traps.c b/arch/m68k/kernel/traps.c --- a/arch/m68k/kernel/traps.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/kernel/traps.c Tue May 18 23:38:09 2004 @@ -116,7 +116,7 @@ __asm__ volatile ("movec %%vbr, %0" : "=r" ((void*)sun3x_prom_vbr)); } - + /* setup the exception vector table */ __asm__ volatile ("movec %0,%%vbr" : : "r" ((void*)vectors)); @@ -352,7 +352,7 @@ asm volatile (".chip 68040; movec %%mmusr,%0; .chip 68k" : "=r" (mmusr)); - set_fs(old_fs); + set_fs(old_fs); return mmusr; } @@ -379,8 +379,8 @@ } /* set_fs can not be moved, otherwise put_user() may oops */ - set_fs(old_fs); - + set_fs(old_fs); + #ifdef DEBUG printk("do_040writeback1, res=%d\n",res); @@ -390,7 +390,7 @@ } /* after an exception in a writeback the stack frame corresponding - * to that exception is discarded, set a few bits in the old frame + * to that exception is discarded, set a few bits in the old frame * to simulate what it should look like */ static inline void fix_xframe040(struct frame *fp, unsigned long wba, unsigned short wbs) @@ -415,7 +415,7 @@ fp->un.fmt7.wb2d); if (res) fix_xframe040(fp, fp->un.fmt7.wb2a, fp->un.fmt7.wb2s); - else + else fp->un.fmt7.wb2s = 0; } @@ -461,9 +461,9 @@ #ifdef DEBUG printk("ssw=%#x, fa=%#lx\n", ssw, fp->un.fmt7.faddr); - printk("wb1s=%#x, wb2s=%#x, wb3s=%#x\n", fp->un.fmt7.wb1s, + printk("wb1s=%#x, wb2s=%#x, wb3s=%#x\n", fp->un.fmt7.wb1s, fp->un.fmt7.wb2s, fp->un.fmt7.wb3s); - printk ("wb2a=%lx, wb3a=%lx, wb2d=%lx, wb3d=%lx\n", + printk ("wb2a=%lx, wb3a=%lx, wb2d=%lx, wb3d=%lx\n", fp->un.fmt7.wb2a, fp->un.fmt7.wb3a, fp->un.fmt7.wb2d, fp->un.fmt7.wb3d); #endif @@ -491,7 +491,7 @@ errorcode = 0; } - /* despite what documentation seems to say, RMW + /* despite what documentation seems to say, RMW * accesses have always both the LK and RW bits set */ if (!(ssw & RW_040) || (ssw & LK_040)) errorcode |= 2; @@ -547,7 +547,7 @@ fp->ptregs.format == 0xa ? fp->ptregs.pc + 2 : fp->un.fmtb.baddr - 2 : fp->ptregs.format == 0xa ? fp->ptregs.pc + 4 : fp->un.fmtb.baddr); - if (ssw & DF) + if (ssw & DF) printk ("Data %s fault at %#010lx in %s (pc=%#lx)\n", ssw & RW ? "read" : "write", fp->un.fmtb.daddr, @@ -559,7 +559,7 @@ * the testing for a bad kernel-space access (demand-mapping applies * to kernel accesses too). */ - + if ((ssw & DF) && (buserr_type & (SUN3_BUSERR_PROTERR | SUN3_BUSERR_INVALID))) { if (mmu_emu_handle_fault (fp->un.fmtb.daddr, ssw & RW, 0)) @@ -659,7 +659,7 @@ printk ("protection fault on insn access (segv).\n"); #endif force_sig (SIGSEGV, current); - } + } } #else #if defined(CPU_M68020_OR_M68030) @@ -1035,7 +1035,7 @@ fp->ptregs.format); else printk ("*** Exception %d *** FORMAT=%X\n", - (fp->ptregs.vector) >> 2, + (fp->ptregs.vector) >> 2, fp->ptregs.format); if (fp->ptregs.vector >> 2 == VEC_ADDRERR && CPU_IS_020_OR_030) { unsigned short ssw = fp->un.fmtb.ssw; @@ -1187,6 +1187,7 @@ console_verbose(); printk("%s: %08x\n",str,nr); + print_modules(); printk("PC: [<%08lx>]",fp->pc); print_symbol(" %s\n", fp->pc); printk("\nSR: %04x SP: %p a2: %08lx\n", diff -Nru a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds --- a/arch/m68k/kernel/vmlinux-std.lds Tue May 18 23:38:09 2004 +++ b/arch/m68k/kernel/vmlinux-std.lds Tue May 18 23:38:09 2004 @@ -41,7 +41,7 @@ /* will be freed after init */ . = ALIGN(4096); /* Init code and data */ __init_begin = .; - .init.text : { + .init.text : { _sinittext = .; *(.init.text) _einittext = .; @@ -56,12 +56,12 @@ __stop___param = .; __initcall_start = .; .initcall.init : { - *(.initcall1.init) - *(.initcall2.init) - *(.initcall3.init) - *(.initcall4.init) - *(.initcall5.init) - *(.initcall6.init) + *(.initcall1.init) + *(.initcall2.init) + *(.initcall3.init) + *(.initcall4.init) + *(.initcall5.init) + *(.initcall6.init) *(.initcall7.init) } __initcall_end = .; diff -Nru a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds --- a/arch/m68k/kernel/vmlinux-sun3.lds Tue May 18 23:38:05 2004 +++ b/arch/m68k/kernel/vmlinux-sun3.lds Tue May 18 23:38:05 2004 @@ -24,10 +24,10 @@ .data : { /* Data */ *(.data) CONSTRUCTORS - . = ALIGN(16); /* Exception table */ - __start___ex_table = .; - *(__ex_table) - __stop___ex_table = .; + . = ALIGN(16); /* Exception table */ + __start___ex_table = .; + *(__ex_table) + __stop___ex_table = .; } /* End of data goes *here* so that freeing init code works properly. */ _edata = .; @@ -35,12 +35,12 @@ /* will be freed after init */ . = ALIGN(8192); /* Init code and data */ __init_begin = .; - .init.text : { + .init.text : { _sinittext = .; *(.init.text) _einittext = .; } - .init.data : { *(.init.data) } + .init.data : { *(.init.data) } . = ALIGN(16); __setup_start = .; .init.setup : { *(.init.setup) } @@ -50,12 +50,12 @@ __stop___param = .; __initcall_start = .; .initcall.init : { - *(.initcall1.init) - *(.initcall2.init) - *(.initcall3.init) - *(.initcall4.init) - *(.initcall5.init) - *(.initcall6.init) + *(.initcall1.init) + *(.initcall2.init) + *(.initcall3.init) + *(.initcall4.init) + *(.initcall5.init) + *(.initcall6.init) *(.initcall7.init) } __initcall_end = .; @@ -70,7 +70,7 @@ . = ALIGN(8192); __init_end = .; .init.task : { *(init_task) } - + .bss : { *(.bss) } /* BSS */ @@ -84,7 +84,7 @@ } .crap : { - /* Stabs debugging sections. */ + /* Stabs debugging sections. */ *(.stab) *(.stabstr) *(.stab.excl) diff -Nru a/arch/m68k/lib/ashldi3.c b/arch/m68k/lib/ashldi3.c --- a/arch/m68k/lib/ashldi3.c Tue May 18 23:38:05 2004 +++ b/arch/m68k/lib/ashldi3.c Tue May 18 23:38:05 2004 @@ -20,7 +20,7 @@ #define BITS_PER_UNIT 8 -typedef int SItype __attribute__ ((mode (SI))); +typedef int SItype __attribute__ ((mode (SI))); typedef unsigned int USItype __attribute__ ((mode (SI))); typedef int DItype __attribute__ ((mode (DI))); typedef int word_type __attribute__ ((mode (__word__))); diff -Nru a/arch/m68k/lib/ashrdi3.c b/arch/m68k/lib/ashrdi3.c --- a/arch/m68k/lib/ashrdi3.c Tue May 18 23:38:06 2004 +++ b/arch/m68k/lib/ashrdi3.c Tue May 18 23:38:06 2004 @@ -20,7 +20,7 @@ #define BITS_PER_UNIT 8 -typedef int SItype __attribute__ ((mode (SI))); +typedef int SItype __attribute__ ((mode (SI))); typedef unsigned int USItype __attribute__ ((mode (SI))); typedef int DItype __attribute__ ((mode (DI))); typedef int word_type __attribute__ ((mode (__word__))); diff -Nru a/arch/m68k/lib/lshrdi3.c b/arch/m68k/lib/lshrdi3.c --- a/arch/m68k/lib/lshrdi3.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/lib/lshrdi3.c Tue May 18 23:38:09 2004 @@ -20,7 +20,7 @@ #define BITS_PER_UNIT 8 -typedef int SItype __attribute__ ((mode (SI))); +typedef int SItype __attribute__ ((mode (SI))); typedef unsigned int USItype __attribute__ ((mode (SI))); typedef int DItype __attribute__ ((mode (DI))); typedef int word_type __attribute__ ((mode (__word__))); diff -Nru a/arch/m68k/lib/muldi3.c b/arch/m68k/lib/muldi3.c --- a/arch/m68k/lib/muldi3.c Tue May 18 23:38:06 2004 +++ b/arch/m68k/lib/muldi3.c Tue May 18 23:38:06 2004 @@ -1,4 +1,4 @@ -/* muldi3.c extracted from gcc-2.7.2.3/libgcc2.c and +/* muldi3.c extracted from gcc-2.7.2.3/libgcc2.c and gcc-2.7.2.3/longlong.h which is: */ /* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. @@ -33,7 +33,7 @@ umul_ppmm (__w.s.high, __w.s.low, u, v); \ __w.ll; }) -typedef int SItype __attribute__ ((mode (SI))); +typedef int SItype __attribute__ ((mode (SI))); typedef unsigned int USItype __attribute__ ((mode (SI))); typedef int DItype __attribute__ ((mode (DI))); typedef int word_type __attribute__ ((mode (__word__))); diff -Nru a/arch/m68k/mac/baboon.c b/arch/m68k/mac/baboon.c --- a/arch/m68k/mac/baboon.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/mac/baboon.c Tue May 18 23:38:08 2004 @@ -14,9 +14,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include /* #define DEBUG_BABOON */ diff -Nru a/arch/m68k/mac/bootparse.c b/arch/m68k/mac/bootparse.c --- a/arch/m68k/mac/bootparse.c Tue May 18 23:38:07 2004 +++ b/arch/m68k/mac/bootparse.c Tue May 18 23:38:07 2004 @@ -9,114 +9,114 @@ /* * Booter vars */ - + int boothowto; int _boothowto; - + /* * Called early to parse the environment (passed to us from the booter) * into a bootinfo struct. Will die as soon as we have our own booter */ #define atol(x) simple_strtoul(x,NULL,0) - + void parse_booter(char *env) { - char *name; - char *value; + char *name; + char *value; #if 0 - while(0 && *env) + while(0 && *env) #else - while(*env) + while(*env) #endif - { - name=env; - value=name; - while(*value!='='&&*value) - value++; - if(*value=='=') - *value++=0; - env=value; - while(*env) - env++; - env++; -#if 0 - if(strcmp(name,"VIDEO_ADDR")==0) - mac_mch.videoaddr=atol(value); - if(strcmp(name,"ROW_BYTES")==0) - mac_mch.videorow=atol(value); - if(strcmp(name,"SCREEN_DEPTH")==0) - mac_mch.videodepth=atol(value); - if(strcmp(name,"DIMENSIONS")==0) - mac_mch.dimensions=atol(value); -#endif - if(strcmp(name,"BOOTTIME")==0) - mac_bi_data.boottime=atol(value); - if(strcmp(name,"GMTBIAS")==0) - mac_bi_data.gmtbias=atol(value); - if(strcmp(name,"BOOTERVER")==0) - mac_bi_data.bootver=atol(value); - if(strcmp(name,"MACOS_VIDEO")==0) - mac_bi_data.videological=atol(value); - if(strcmp(name,"MACOS_SCC")==0) - mac_bi_data.sccbase=atol(value); - if(strcmp(name,"MACHINEID")==0) - mac_bi_data.id=atol(value); - if(strcmp(name,"MEMSIZE")==0) - mac_bi_data.memsize=atol(value); - if(strcmp(name,"SERIAL_MODEM_FLAGS")==0) - mac_bi_data.serialmf=atol(value); - if(strcmp(name,"SERIAL_MODEM_HSKICLK")==0) - mac_bi_data.serialhsk=atol(value); - if(strcmp(name,"SERIAL_MODEM_GPICLK")==0) - mac_bi_data.serialgpi=atol(value); - if(strcmp(name,"SERIAL_PRINT_FLAGS")==0) - mac_bi_data.printmf=atol(value); - if(strcmp(name,"SERIAL_PRINT_HSKICLK")==0) - mac_bi_data.printhsk=atol(value); - if(strcmp(name,"SERIAL_PRINT_GPICLK")==0) - mac_bi_data.printgpi=atol(value); - if(strcmp(name,"PROCESSOR")==0) - mac_bi_data.cpuid=atol(value); - if(strcmp(name,"ROMBASE")==0) - mac_bi_data.rombase=atol(value); - if(strcmp(name,"TIMEDBRA")==0) - mac_bi_data.timedbra=atol(value); - if(strcmp(name,"ADBDELAY")==0) - mac_bi_data.adbdelay=atol(value); - } + { + name=env; + value=name; + while(*value!='='&&*value) + value++; + if(*value=='=') + *value++=0; + env=value; + while(*env) + env++; + env++; +#if 0 + if(strcmp(name,"VIDEO_ADDR")==0) + mac_mch.videoaddr=atol(value); + if(strcmp(name,"ROW_BYTES")==0) + mac_mch.videorow=atol(value); + if(strcmp(name,"SCREEN_DEPTH")==0) + mac_mch.videodepth=atol(value); + if(strcmp(name,"DIMENSIONS")==0) + mac_mch.dimensions=atol(value); +#endif + if(strcmp(name,"BOOTTIME")==0) + mac_bi_data.boottime=atol(value); + if(strcmp(name,"GMTBIAS")==0) + mac_bi_data.gmtbias=atol(value); + if(strcmp(name,"BOOTERVER")==0) + mac_bi_data.bootver=atol(value); + if(strcmp(name,"MACOS_VIDEO")==0) + mac_bi_data.videological=atol(value); + if(strcmp(name,"MACOS_SCC")==0) + mac_bi_data.sccbase=atol(value); + if(strcmp(name,"MACHINEID")==0) + mac_bi_data.id=atol(value); + if(strcmp(name,"MEMSIZE")==0) + mac_bi_data.memsize=atol(value); + if(strcmp(name,"SERIAL_MODEM_FLAGS")==0) + mac_bi_data.serialmf=atol(value); + if(strcmp(name,"SERIAL_MODEM_HSKICLK")==0) + mac_bi_data.serialhsk=atol(value); + if(strcmp(name,"SERIAL_MODEM_GPICLK")==0) + mac_bi_data.serialgpi=atol(value); + if(strcmp(name,"SERIAL_PRINT_FLAGS")==0) + mac_bi_data.printmf=atol(value); + if(strcmp(name,"SERIAL_PRINT_HSKICLK")==0) + mac_bi_data.printhsk=atol(value); + if(strcmp(name,"SERIAL_PRINT_GPICLK")==0) + mac_bi_data.printgpi=atol(value); + if(strcmp(name,"PROCESSOR")==0) + mac_bi_data.cpuid=atol(value); + if(strcmp(name,"ROMBASE")==0) + mac_bi_data.rombase=atol(value); + if(strcmp(name,"TIMEDBRA")==0) + mac_bi_data.timedbra=atol(value); + if(strcmp(name,"ADBDELAY")==0) + mac_bi_data.adbdelay=atol(value); + } #if 0 /* XXX: TODO with m68k_mach_* */ - /* Fill in the base stuff */ - boot_info.machtype=MACH_MAC; - /* Read this from the macinfo we got ! */ + /* Fill in the base stuff */ + boot_info.machtype=MACH_MAC; + /* Read this from the macinfo we got ! */ /* boot_info.cputype=CPU_68020|FPUB_68881;*/ -/* boot_info.memory[0].addr=0;*/ -/* boot_info.memory[0].size=((mac_bi_data.id>>7)&31)<<20;*/ - boot_info.num_memory=1; /* On a MacII */ - boot_info.ramdisk_size=0; /* For now */ - *boot_info.command_line=0; +/* boot_info.memory[0].addr=0;*/ +/* boot_info.memory[0].size=((mac_bi_data.id>>7)&31)<<20;*/ + boot_info.num_memory=1; /* On a MacII */ + boot_info.ramdisk_size=0; /* For now */ + *boot_info.command_line=0; #endif } - + void print_booter(char *env) { - char *name; - char *value; - while(*env) - { - name=env; - value=name; - while(*value!='='&&*value) - value++; - if(*value=='=') - *value++=0; - env=value; - while(*env) - env++; - env++; - printk("%s=%s\n", name,value); - } + char *name; + char *value; + while(*env) + { + name=env; + value=name; + while(*value!='='&&*value) + value++; + if(*value=='=') + *value++=0; + env=value; + while(*env) + env++; + env++; + printk("%s=%s\n", name,value); + } } - + diff -Nru a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c --- a/arch/m68k/mac/config.c Tue May 18 23:38:06 2004 +++ b/arch/m68k/mac/config.c Tue May 18 23:38:06 2004 @@ -176,7 +176,7 @@ /* * Flip into 24bit mode for an instant - flushes the L2 cache card. We - * have to disable interrupts for this. Our IRQ handlers will crap + * have to disable interrupts for this. Our IRQ handlers will crap * themselves if they take an IRQ in 24bit mode! */ @@ -232,10 +232,10 @@ /* * Determine hardware present */ - + mac_identify(); mac_report_hardware(); - + /* AFAIK only the IIci takes a cache card. The IIfx has onboard cache ... someone needs to figure out how to tell if it's on or not. */ @@ -252,21 +252,21 @@ #ifdef OLD_NUBUS_CODE nubus_sweep_video(); #endif -} +} /* - * Macintosh Table: hardcoded model configuration data. + * Macintosh Table: hardcoded model configuration data. * - * Much of this was defined by Alan, based on who knows what docs. - * I've added a lot more, and some of that was pure guesswork based - * on hardware pages present on the Mac web site. Possibly wildly + * Much of this was defined by Alan, based on who knows what docs. + * I've added a lot more, and some of that was pure guesswork based + * on hardware pages present on the Mac web site. Possibly wildly * inaccurate, so look here if a new Mac model won't run. Example: if * a Mac crashes immediately after the VIA1 registers have been dumped - * to the screen, it probably died attempting to read DirB on a RBV. + * to the screen, it probably died attempting to read DirB on a RBV. * Meaning it should have MAC_VIA_IIci here :-) */ - + struct mac_model *macintosh_config; EXPORT_SYMBOL(macintosh_config); @@ -288,9 +288,9 @@ /* * Original MacII hardware - * + * */ - + { .ident = MAC_MODEL_II, .name = "II", @@ -324,7 +324,7 @@ .scc_type = MAC_SCC_II, .nubus_type = MAC_NUBUS }, - + /* * Weirdified MacII hardware - all subtley different. Gee thanks * Apple. All these boxes seem to have VIA2 in a different place to @@ -373,7 +373,7 @@ .scc_type = MAC_SCC_II, .nubus_type = MAC_NUBUS }, - + /* * Classic models (guessing: similar to SE/30 ?? Nope, similar to LC ...) */ @@ -398,7 +398,7 @@ /* * Some Mac LC machines. Basically the same as the IIci, ADB like IIsi */ - + { .ident = MAC_MODEL_LC, .name = "LC", @@ -426,15 +426,15 @@ }, /* - * Quadra. Video is at 0xF9000000, via is like a MacII. We label it differently - * as some of the stuff connected to VIA2 seems different. Better SCSI chip and - * onboard ethernet using a NatSemi SONIC except the 660AV and 840AV which use an + * Quadra. Video is at 0xF9000000, via is like a MacII. We label it differently + * as some of the stuff connected to VIA2 seems different. Better SCSI chip and + * onboard ethernet using a NatSemi SONIC except the 660AV and 840AV which use an * AMD 79C940 (MACE). * The 700, 900 and 950 have some I/O chips in the wrong place to * confuse us. The 840AV has a SCSI location of its own (same as * the 660AV). - */ - + */ + { .ident = MAC_MODEL_Q605, .name = "Quadra 605", @@ -528,7 +528,7 @@ .nubus_type = MAC_NUBUS }, - /* + /* * Performa - more LC type machines */ @@ -816,7 +816,7 @@ { struct mac_model *m; - /* Penguin data useful? */ + /* Penguin data useful? */ int model = mac_bi_data.id; if (!model) { /* no bootinfo model id -> NetBSD booter was used! */ @@ -825,7 +825,7 @@ printk (KERN_WARNING "No bootinfo model ID, using cpuid instead (hey, use Penguin!)\n"); } - macintosh_config = mac_data_table; + macintosh_config = mac_data_table; for (m = macintosh_config ; m->ident != -1 ; m++) { if (m->ident == model) { macintosh_config = m; @@ -846,19 +846,19 @@ * Report booter data: */ printk (KERN_DEBUG " Penguin bootinfo data:\n"); - printk (KERN_DEBUG " Video: addr 0x%lx row 0x%lx depth %lx dimensions %ld x %ld\n", - mac_bi_data.videoaddr, mac_bi_data.videorow, - mac_bi_data.videodepth, mac_bi_data.dimensions & 0xFFFF, - mac_bi_data.dimensions >> 16); + printk (KERN_DEBUG " Video: addr 0x%lx row 0x%lx depth %lx dimensions %ld x %ld\n", + mac_bi_data.videoaddr, mac_bi_data.videorow, + mac_bi_data.videodepth, mac_bi_data.dimensions & 0xFFFF, + mac_bi_data.dimensions >> 16); printk (KERN_DEBUG " Videological 0x%lx phys. 0x%lx, SCC at 0x%lx \n", - mac_bi_data.videological, mac_orig_videoaddr, - mac_bi_data.sccbase); + mac_bi_data.videological, mac_orig_videoaddr, + mac_bi_data.sccbase); printk (KERN_DEBUG " Boottime: 0x%lx GMTBias: 0x%lx \n", - mac_bi_data.boottime, mac_bi_data.gmtbias); + mac_bi_data.boottime, mac_bi_data.gmtbias); printk (KERN_DEBUG " Machine ID: %ld CPUid: 0x%lx memory size: 0x%lx \n", - mac_bi_data.id, mac_bi_data.cpuid, mac_bi_data.memsize); + mac_bi_data.id, mac_bi_data.cpuid, mac_bi_data.memsize); #if 0 - printk ("Ramdisk: addr 0x%lx size 0x%lx\n", + printk ("Ramdisk: addr 0x%lx size 0x%lx\n", m68k_ramdisk.addr, m68k_ramdisk.size); #endif diff -Nru a/arch/m68k/mac/debug.c b/arch/m68k/mac/debug.c --- a/arch/m68k/mac/debug.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/mac/debug.c Tue May 18 23:38:09 2004 @@ -8,7 +8,7 @@ * Atari debugging and serial console stuff * * Assembled of parts of former atari/config.c 97-12-18 by Roman Hodek - * + * * This file is subject to the terms and conditions of the GNU General Public * License. See the file COPYING in the main directory of this archive * for more details. @@ -43,7 +43,7 @@ #define DEBUG_SERIAL /* - * These two auxiliary debug functions should go away ASAP. Only usage: + * These two auxiliary debug functions should go away ASAP. Only usage: * before the console output is up (after head.S come some other crucial * setup routines :-) it permits writing 'data' to the screen as bit patterns * (good luck reading those). Helped to figure that the bootinfo contained @@ -77,9 +77,9 @@ /* calculate current offset */ pengoffset=(unsigned char *)(mac_videobase+(150+line*2)*mac_rowbytes) +80*peng; - + pptr=pengoffset; - + for(i=0;i<8*sizeof(short);i++) /* # of bits */ { /* value mask for bit i, reverse order */ @@ -112,12 +112,12 @@ /* printk("debug: #%ld !\n", addr); */ return; } - + pengoffset=(unsigned char *)(mac_videobase+(150+line*2)*mac_rowbytes) +80*peng; - + pptr=pengoffset; - + for(i=0;i<8*sizeof(long);i++) /* # of bits */ { *pptr++ = (addr & ( 1 << (8*sizeof(long)-i-1) ) ? 0xFF : 0x00); @@ -270,7 +270,7 @@ for( i = 60*uSEC; i > 0; --i ) \ barrier(); \ } while(0) - + #ifndef CONFIG_SERIAL_CONSOLE static void __init mac_init_scc_port( int cflag, int port ) #else @@ -285,17 +285,17 @@ static int clksrc_table[9] = /* reg 11: 0x50 = BRG, 0x00 = RTxC, 0x28 = TRxC */ - { 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x00, 0x00 }; + { 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x00, 0x00 }; static int clkmode_table[9] = /* reg 4: 0x40 = x16, 0x80 = x32, 0xc0 = x64 */ - { 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x80 }; + { 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x80 }; static int div_table[9] = /* reg12 (BRG low) */ - { 94, 62, 46, 22, 10, 4, 1, 0, 0 }; + { 94, 62, 46, 22, 10, 4, 1, 0, 0 }; int baud = cflag & CBAUD; int clksrc, clkmode, div, reg3, reg5; - + if (cflag & CBAUDEX) baud += B38400; if (baud < B1200 || baud > B38400+2) diff -Nru a/arch/m68k/mac/iop.c b/arch/m68k/mac/iop.c --- a/arch/m68k/mac/iop.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/mac/iop.c Tue May 18 23:38:09 2004 @@ -113,9 +113,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include @@ -485,7 +485,7 @@ /* * Send a message - * + * * The message is placed at the end of the send queue. Afterwards if the * channel is idle we force an immediate send of the next message in the * queue. @@ -537,7 +537,7 @@ if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return; iop_loadaddr(iop_base[iop_num], shared_ram_start); - + while (code_len--) { iop_base[iop_num]->ram_data = *code_start++; } @@ -553,7 +553,7 @@ if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return; iop_loadaddr(iop_base[iop_num], shared_ram_start); - + while (code_len--) { *code_start++ = iop_base[iop_num]->ram_data; } @@ -571,7 +571,7 @@ if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return code_start; iop_loadaddr(iop_base[iop_num], shared_ram_start); - + while (code_len--) { if (*code_start != iop_base[iop_num]->ram_data) { return code_start; @@ -666,12 +666,12 @@ iop_chan_state(iop_readb(iop, IOP_ADDR_RECV_STATE+i)), iop_listeners[iop_num][i].handler? iop_listeners[iop_num][i].devname : ""); - + } len += sprintf(buf+len, "\n"); return len; } - + static int iop_get_proc_info(char *buf, char **start, off_t pos, int count) { int len, cnt; diff -Nru a/arch/m68k/mac/macboing.c b/arch/m68k/mac/macboing.c --- a/arch/m68k/mac/macboing.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/mac/macboing.c Tue May 18 23:38:09 2004 @@ -1,7 +1,7 @@ /* * Mac bong noise generator. Note - we ought to put a boingy noise * here 8) - * + * * ---------------------------------------------------------------------- * 16.11.98: * rewrote some functions, added support for Enhanced ASC (Quadras) @@ -22,8 +22,8 @@ static __u8 mac_asc_wave_tab[ 0x800 ]; /* - * Alan's original sine table; needs interpolating to 0x800 - * (hint: interpolate or hardwire [0 -> Pi/2[, it's symmetric) + * Alan's original sine table; needs interpolating to 0x800 + * (hint: interpolate or hardwire [0 -> Pi/2[, it's symmetric) */ static const signed char sine_data[] = { 0, 39, 75, 103, 121, 127, 121, 103, 75, 39, @@ -35,16 +35,16 @@ */ static volatile __u8* mac_asc_regs = ( void* )0x50F14000; -/* - * sample rate; is this a good default value? +/* + * sample rate; is this a good default value? */ -static unsigned long mac_asc_samplespersec = 11050; +static unsigned long mac_asc_samplespersec = 11050; static int mac_bell_duration; static unsigned long mac_bell_phase; /* 0..2*Pi -> 0..0x800 (wavetable size) */ static unsigned long mac_bell_phasepersample; /* - * some function protos + * some function protos */ static void mac_init_asc( void ); static void mac_nosound( unsigned long ); @@ -67,11 +67,11 @@ { int i; - /* - * do some machine specific initialization + /* + * do some machine specific initialization * BTW: * the NetBSD Quadra patch identifies the Enhanced Apple Sound Chip via - * mac_asc_regs[ 0x800 ] & 0xF0 != 0 + * mac_asc_regs[ 0x800 ] & 0xF0 != 0 * this makes no sense here, because we have to set the default sample * rate anyway if we want correct frequencies */ @@ -83,27 +83,27 @@ */ mac_asc_regs = ( void* )0x50010000; break; - /* - * not sure about how correct this list is - * machines with the EASC enhanced apple sound chip + /* + * not sure about how correct this list is + * machines with the EASC enhanced apple sound chip */ case MAC_MODEL_Q630: case MAC_MODEL_P475: mac_special_bell = mac_quadra_start_bell; mac_asc_samplespersec = 22150; - break; + break; case MAC_MODEL_C660: case MAC_MODEL_Q840: /* * The Quadra 660AV and 840AV use the "Singer" custom ASIC for sound I/O. - * It appears to be similar to the "AWACS" custom ASIC in the Power Mac - * [678]100. Because Singer and AWACS may have a similar hardware - * interface, this would imply that the code in drivers/sound/dmasound.c + * It appears to be similar to the "AWACS" custom ASIC in the Power Mac + * [678]100. Because Singer and AWACS may have a similar hardware + * interface, this would imply that the code in drivers/sound/dmasound.c * for AWACS could be used as a basis for Singer support. All we have to - * do is figure out how to do DMA on the 660AV/840AV through the PSC and + * do is figure out how to do DMA on the 660AV/840AV through the PSC and * figure out where the Singer hardware sits in memory. (I'd look in the - * vicinity of the AWACS location in a Power Mac [678]100 first, or the - * current location of the Apple Sound Chip--ASC--in other Macs.) The + * vicinity of the AWACS location in a Power Mac [678]100 first, or the + * current location of the Apple Sound Chip--ASC--in other Macs.) The * Power Mac [678]100 info can be found in MkLinux Mach kernel sources. * * Quoted from Apple's Tech Info Library, article number 16405: @@ -111,7 +111,7 @@ * Macintosh models have 16-bit audio input and output capability * because of the AT&T DSP3210 hardware circuitry and the 16-bit Singer * codec circuitry in the AVs. The Audio Waveform Amplifier and - * Converter (AWAC) chip in the Power Macintosh performs the same + * Converter (AWAC) chip in the Power Macintosh performs the same * 16-bit I/O functionality. The PowerBook 500 series computers * support 16-bit stereo output, but only mono input." * @@ -139,8 +139,8 @@ break; } - /* - * init the wave table with a simple triangular wave + /* + * init the wave table with a simple triangular wave * A sine wave would sure be nicer here ... */ for ( i = 0; i < 0x400; i++ ) @@ -149,15 +149,15 @@ mac_asc_wave_tab[ i + 0x400 ] = 0xFF - i / 4; } mac_asc_inited = 1; -} +} /* - * Called to make noise; current single entry to the boing driver. + * Called to make noise; current single entry to the boing driver. * Does the job for simple ASC, calls other routines else. * XXX Fixme: - * Should be split into asc_mksound, easc_mksound, av_mksound and - * function pointer set in mac_init_asc which would be called at - * init time. + * Should be split into asc_mksound, easc_mksound, av_mksound and + * function pointer set in mac_init_asc which would be called at + * init time. * _This_ is rather ugly ... */ void mac_mksound( unsigned int freq, unsigned int length ) @@ -192,7 +192,7 @@ del_timer( &mac_sound_timer ); for ( i = 0; i < 0x800; i++ ) - mac_asc_regs[ i ] = 0; + mac_asc_regs[ i ] = 0; for ( i = 0; i < 0x800; i++ ) mac_asc_regs[ i ] = mac_asc_wave_tab[ i ]; @@ -218,7 +218,7 @@ static void mac_nosound( unsigned long ignored ) { mac_asc_regs[ ASC_ENABLE ] = 0; -} +} /* * EASC entry; init EASC, don't load wavetable, schedule 'start whining'. @@ -237,7 +237,7 @@ mac_bell_duration = length; mac_bell_phase = 0; mac_bell_phasepersample = ( freq * sizeof( mac_asc_wave_tab ) ) / mac_asc_samplespersec; - /* this is reasonably big for small frequencies */ + /* this is reasonably big for small frequencies */ local_irq_save(flags); @@ -247,11 +247,11 @@ /* set up the ASC registers */ if ( mac_asc_regs[ 0x801 ] != 1 ) { - /* select mono mode */ + /* select mono mode */ mac_asc_regs[ 0x807 ] = 0; /* select sampled sound mode */ mac_asc_regs[ 0x802 ] = 0; - /* ??? */ + /* ??? */ mac_asc_regs[ 0x801 ] = 1; mac_asc_regs[ 0x803 ] |= 0x80; mac_asc_regs[ 0x803 ] &= 0x7F; @@ -266,12 +266,12 @@ /* * EASC 'start/continue whining'; I'm not sure why the above function didn't - * already load the wave table, or at least call this one... + * already load the wave table, or at least call this one... * This piece keeps reloading the wave table until done. */ static void mac_quadra_ring_bell( unsigned long ignored ) { - int i, count = mac_asc_samplespersec / HZ; + int i, count = mac_asc_samplespersec / HZ; __u32 flags; /* @@ -282,7 +282,7 @@ */ local_irq_save(flags); - + del_timer( &mac_sound_timer ); if ( mac_bell_duration-- > 0 ) @@ -297,7 +297,7 @@ } else mac_asc_regs[ 0x801 ] = 0; - + local_irq_restore(flags); } @@ -306,4 +306,4 @@ */ static void mac_av_start_bell( unsigned int freq, unsigned int length, unsigned int volume ) { -} +} diff -Nru a/arch/m68k/mac/macints.c b/arch/m68k/mac/macints.c --- a/arch/m68k/mac/macints.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/mac/macints.c Tue May 18 23:38:08 2004 @@ -2,8 +2,8 @@ * Macintosh interrupts * * General design: - * In contrary to the Amiga and Atari platforms, the Mac hardware seems to - * exclusively use the autovector interrupts (the 'generic level0-level7' + * In contrary to the Amiga and Atari platforms, the Mac hardware seems to + * exclusively use the autovector interrupts (the 'generic level0-level7' * interrupts with exception vectors 0x19-0x1f). The following interrupt levels * are used: * 1 - VIA1 @@ -248,7 +248,7 @@ printk("Done.\n"); #endif /* SHUTUP_SONIC */ - /* + /* * Now register the handlers for the master IRQ handlers * at levels 1-7. Most of the work is done elsewhere. */ @@ -496,7 +496,7 @@ * FIXME: You can register interrupts on nonexistent source (ie PSC4 on a * non-PSC machine). We should return -EINVAL in those cases. */ - + int mac_request_irq(unsigned int irq, irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long flags, const char *devname, void *dev_id) @@ -533,7 +533,7 @@ return 0; } - + /* * Removes an interrupt service routine from an interrupt source. */ @@ -661,7 +661,7 @@ irqreturn_t mac_nmi_handler(int irq, void *dev_id, struct pt_regs *fp) { int i; - /* + /* * generate debug output on NMI switch if 'debug' kernel option given * (only works with Penguin!) */ @@ -691,7 +691,7 @@ fp->d0, fp->d1, fp->d2, fp->d3); printk("d4: %08lx d5: %08lx a0: %08lx a1: %08lx\n", fp->d4, fp->d5, fp->a0, fp->a1); - + if (STACK_MAGIC != *(unsigned long *)current->kernel_stack_page) printk("Corrupted stack page\n"); printk("Process %s (pid: %d, stackpage=%08lx)\n", diff -Nru a/arch/m68k/mac/misc.c b/arch/m68k/mac/misc.c --- a/arch/m68k/mac/misc.c Tue May 18 23:38:07 2004 +++ b/arch/m68k/mac/misc.c Tue May 18 23:38:07 2004 @@ -1,5 +1,5 @@ /* - * Miscellaneous Mac68K-specific stuff + * Miscellaneous Mac68K-specific stuff */ #include @@ -67,7 +67,7 @@ volatile struct adb_request req; data += RTC_OFFSET; - + adb_request((struct adb_request *) &req, NULL, ADBREQ_RAW|ADBREQ_SYNC, 6, CUDA_PACKET, CUDA_SET_TIME, @@ -324,7 +324,7 @@ adb_request(NULL, NULL, ADBREQ_RAW|ADBREQ_SYNC, 3, PMU_PACKET, PMU_SET_INTR_MASK, PMU_INT_ADB|PMU_INT_TICK); - + adb_request(NULL, NULL, ADBREQ_RAW|ADBREQ_SYNC, 2, PMU_PACKET, PMU_RESET); } @@ -477,7 +477,7 @@ ".chip 68030\n\t" "lea %/pc@(1f),%/a0\n\t" "addl %0,%/a0\n\t"/* fixup target address and stack ptr */ - "addl %0,%/sp\n\t" + "addl %0,%/sp\n\t" "pflusha\n\t" "jmp %/a0@\n\t" /* jump into physical memory */ "0:.long 0\n\t" /* a constant zero. */ @@ -494,7 +494,7 @@ "movec %/a0, %/cacr\n\t" /* flush i&d caches */ "movew #0x2700,%/sr\n\t" /* set up status register */ "movel %1@(0x0),%/a0\n\t"/* load interrupt stack pointer */ - "movec %/a0, %/isp\n\t" + "movec %/a0, %/isp\n\t" "movel %1@(0x4),%/a0\n\t" /* load reset vector */ "reset\n\t" /* reset external devices */ "jmp %/a0@\n\t" /* jump to the reset vector */ @@ -579,7 +579,7 @@ return; } -/* +/* * Read/write the hardware clock. */ diff -Nru a/arch/m68k/mac/oss.c b/arch/m68k/mac/oss.c --- a/arch/m68k/mac/oss.c Tue May 18 23:38:07 2004 +++ b/arch/m68k/mac/oss.c Tue May 18 23:38:07 2004 @@ -20,9 +20,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include #include @@ -91,7 +91,7 @@ * Handle miscellaneous OSS interrupts. Right now that's just sound * and SCSI; everything else is routed to its own autovector IRQ. */ - + irqreturn_t oss_irq(int irq, void *dev_id, struct pt_regs *regs) { int events; @@ -100,7 +100,7 @@ if (!events) return IRQ_NONE; -#ifdef DEBUG_IRQS +#ifdef DEBUG_IRQS if ((console_loglevel == 10) && !(events & OSS_IP_SCSI)) { printk("oss_irq: irq %d events = 0x%04X\n", irq, (int) oss->irq_pending); diff -Nru a/arch/m68k/mac/psc.c b/arch/m68k/mac/psc.c --- a/arch/m68k/mac/psc.c Tue May 18 23:38:07 2004 +++ b/arch/m68k/mac/psc.c Tue May 18 23:38:07 2004 @@ -20,9 +20,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #define DEBUG_PSC diff -Nru a/arch/m68k/mac/via.c b/arch/m68k/mac/via.c --- a/arch/m68k/mac/via.c Tue May 18 23:38:06 2004 +++ b/arch/m68k/mac/via.c Tue May 18 23:38:06 2004 @@ -26,10 +26,10 @@ #include #include -#include -#include +#include +#include #include -#include +#include #include #include @@ -93,7 +93,7 @@ /* IIci, IIsi, IIvx, IIvi (P6xx), LC series */ - case MAC_VIA_IIci: + case MAC_VIA_IIci: via1 = (void *) VIA1_BASE; if (macintosh_config->ident == MAC_MODEL_IIFX) { via2 = NULL; @@ -166,7 +166,7 @@ via1[vT2CH] = 0; via1[vACR] &= 0x3F; - /* + /* * SE/30: disable video IRQ * XXX: testing for SE/30 VBL */ @@ -174,8 +174,8 @@ if (macintosh_config->ident == MAC_MODEL_SE30) { via1[vDirB] |= 0x40; via1[vBufB] |= 0x40; - } - + } + /* * Set the RTC bits to a known state: all lines to outputs and * RTC disabled (yes that's 0 to enable and 1 to disable). @@ -243,7 +243,7 @@ */ void __init via_init_clock(irqreturn_t (*func)(int, void *, struct pt_regs *)) -{ +{ via1[vACR] |= 0x40; via1[vT1LL] = MAC_CLOCK_LOW; via1[vT1LH] = MAC_CLOCK_HIGH; @@ -537,7 +537,7 @@ /* But not on PowerBooks, that's ADB... */ if ((macintosh_config->adb_type != MAC_ADB_PB1) && (macintosh_config->adb_type != MAC_ADB_PB2)) { - switch(macintosh_config->ident) + switch(macintosh_config->ident) { case MAC_MODEL_II: case MAC_MODEL_IIX: diff -Nru a/arch/m68k/math-emu/fp_arith.c b/arch/m68k/math-emu/fp_arith.c --- a/arch/m68k/math-emu/fp_arith.c Tue May 18 23:38:06 2004 +++ b/arch/m68k/math-emu/fp_arith.c Tue May 18 23:38:06 2004 @@ -458,7 +458,7 @@ return; /* infinities and zeroes */ - if (IS_INF(dest) || IS_ZERO(dest)) + if (IS_INF(dest) || IS_ZERO(dest)) return; /* first truncate the lower bits */ diff -Nru a/arch/m68k/math-emu/fp_cond.S b/arch/m68k/math-emu/fp_cond.S --- a/arch/m68k/math-emu/fp_cond.S Tue May 18 23:38:09 2004 +++ b/arch/m68k/math-emu/fp_cond.S Tue May 18 23:38:09 2004 @@ -105,10 +105,10 @@ | decode addressing mode fp_decode_addr_mode - .long fp_data, fp_fdbcc - .long fp_indirect, fp_postinc - .long fp_predecr, fp_disp16 - .long fp_extmode0, fp_extmode1 + .long fp_data, fp_fdbcc + .long fp_indirect, fp_postinc + .long fp_predecr, fp_disp16 + .long fp_extmode0, fp_extmode1 | addressing mode: data register direct fp_data: diff -Nru a/arch/m68k/math-emu/fp_log.c b/arch/m68k/math-emu/fp_log.c --- a/arch/m68k/math-emu/fp_log.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/math-emu/fp_log.c Tue May 18 23:38:09 2004 @@ -48,7 +48,7 @@ /* * sqrt(m) * 2^(p) , if e = 2*p - * sqrt(m*2^e) = + * sqrt(m*2^e) = * sqrt(2*m) * 2^(p) , if e = 2*p + 1 * * So we use the last bit of the exponent to decide wether to @@ -80,7 +80,7 @@ * which has a null point on x = sqrt(r). * * It gives: - * x' := x - f(x)/f'(x) + * x' := x - f(x)/f'(x) * = x - (x^2 -r)/(2*x) * = x - (x - r/x)/2 * = (2*x - x + r/x)/2 diff -Nru a/arch/m68k/math-emu/fp_scan.S b/arch/m68k/math-emu/fp_scan.S --- a/arch/m68k/math-emu/fp_scan.S Tue May 18 23:38:07 2004 +++ b/arch/m68k/math-emu/fp_scan.S Tue May 18 23:38:07 2004 @@ -133,10 +133,10 @@ | decode addressing mode for source fp_decode_addr_mode - .long fp_data, fp_ill - .long fp_indirect, fp_postinc - .long fp_predecr, fp_disp16 - .long fp_extmode0, fp_extmode1 + .long fp_data, fp_ill + .long fp_indirect, fp_postinc + .long fp_predecr, fp_disp16 + .long fp_extmode0, fp_extmode1 | addressing mode: data register direct fp_data: diff -Nru a/arch/m68k/math-emu/fp_util.S b/arch/m68k/math-emu/fp_util.S --- a/arch/m68k/math-emu/fp_util.S Tue May 18 23:38:09 2004 +++ b/arch/m68k/math-emu/fp_util.S Tue May 18 23:38:09 2004 @@ -1337,7 +1337,7 @@ jra fp_finaltest fp_finalrounding_single_fast: - addq.l #8,%sp + addq.l #8,%sp jsr fp_normalize_ext jsr fp_normalize_single_fast jra fp_finaltest diff -Nru a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c --- a/arch/m68k/mm/fault.c Tue May 18 23:38:07 2004 +++ b/arch/m68k/mm/fault.c Tue May 18 23:38:07 2004 @@ -157,7 +157,7 @@ survive: fault = handle_mm_fault(mm, vma, address, write); #ifdef DEBUG - printk("handle_mm_fault returns %d\n",fault); + printk("handle_mm_fault returns %d\n",fault); #endif switch (fault) { case 1: @@ -186,7 +186,7 @@ down_read(&mm->mmap_sem); goto survive; } - + printk("VM: killing process %s\n", current->comm); if (user_mode(regs)) do_exit(SIGKILL); diff -Nru a/arch/m68k/mm/hwtest.c b/arch/m68k/mm/hwtest.c --- a/arch/m68k/mm/hwtest.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/mm/hwtest.c Tue May 18 23:38:09 2004 @@ -3,9 +3,9 @@ * that it was also in drivers/nubus/nubus.c and I wanted to * use it in hp300/config.c, so it seemed sensible to pull it * out into its own file. - * + * * The test is for use when trying to read a hardware register - * that isn't present would cause a bus error. We set up a + * that isn't present would cause a bus error. We set up a * temporary handler so that this doesn't kill the kernel. * * There is a test-by-reading and a test-by-writing; I present @@ -37,7 +37,7 @@ "movec %4,%/vbr\n\t" "movel %/sp,%1\n\t" "moveq #0,%0\n\t" - "tstb %3@\n\t" + "tstb %3@\n\t" "nop\n\t" "moveq #1,%0\n" "Lberr1:\n\t" @@ -50,7 +50,7 @@ return( ret ); } EXPORT_SYMBOL(hwreg_present); - + /* Basically the same, but writes a value into a word register, protected * by a bus error handler. Returns 1 if successful, 0 otherwise. */ @@ -67,7 +67,7 @@ "movec %4,%/vbr\n\t" "movel %/sp,%1\n\t" "moveq #0,%0\n\t" - "movew %5,%3@\n\t" + "movew %5,%3@\n\t" "nop \n\t" /* If this nop isn't present, 'ret' may already be * loaded with 1 at the time the bus error * happens! */ diff -Nru a/arch/m68k/mm/init.c b/arch/m68k/mm/init.c --- a/arch/m68k/mm/init.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/mm/init.c Tue May 18 23:38:08 2004 @@ -109,7 +109,7 @@ continue; } } - + #ifndef CONFIG_SUN3 /* insert pointer tables allocated so far into the tablelist */ init_pointer_table((unsigned long)kernel_pg_dir); diff -Nru a/arch/m68k/mm/memory.c b/arch/m68k/mm/memory.c --- a/arch/m68k/mm/memory.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/mm/memory.c Tue May 18 23:38:08 2004 @@ -298,7 +298,7 @@ : "d0"); #ifdef CONFIG_M68K_L2_CACHE if(mach_l2_flush) - mach_l2_flush(0); + mach_l2_flush(0); #endif } @@ -350,7 +350,7 @@ : "d0"); #ifdef CONFIG_M68K_L2_CACHE if(mach_l2_flush) - mach_l2_flush(1); + mach_l2_flush(1); #endif } @@ -387,7 +387,7 @@ unsigned long mmusr; set_fs(get_ds()); - + asm volatile (".chip 68040\n\t" "ptestr (%1)\n\t" "movec %%mmusr, %0\n\t" diff -Nru a/arch/m68k/mm/motorola.c b/arch/m68k/mm/motorola.c --- a/arch/m68k/mm/motorola.c Tue May 18 23:38:07 2004 +++ b/arch/m68k/mm/motorola.c Tue May 18 23:38:07 2004 @@ -2,9 +2,9 @@ * linux/arch/m68k/motorola.c * * Routines specific to the Motorola MMU, originally from: - * linux/arch/m68k/init.c + * linux/arch/m68k/init.c * which are Copyright (C) 1995 Hamish Macdonald - * + * * Moved 8/20/1999 Sam Creasey */ @@ -99,7 +99,7 @@ return last_pgtable; } -static unsigned long __init +static unsigned long __init map_chunk (unsigned long addr, long size) { #define PTRTREESIZE (256*1024) diff -Nru a/arch/m68k/mm/sun3kmap.c b/arch/m68k/mm/sun3kmap.c --- a/arch/m68k/mm/sun3kmap.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/mm/sun3kmap.c Tue May 18 23:38:09 2004 @@ -26,7 +26,7 @@ extern void mmu_emu_map_pmeg (int context, int vaddr); -static inline void do_page_mapin(unsigned long phys, unsigned long virt, +static inline void do_page_mapin(unsigned long phys, unsigned long virt, unsigned long type) { unsigned long pte; @@ -44,11 +44,11 @@ } -static inline void do_pmeg_mapin(unsigned long phys, unsigned long virt, +static inline void do_pmeg_mapin(unsigned long phys, unsigned long virt, unsigned long type, int pages) { - if(sun3_get_segmap(virt & ~SUN3_PMEG_MASK) == SUN3_INVALID_PMEG) + if(sun3_get_segmap(virt & ~SUN3_PMEG_MASK) == SUN3_INVALID_PMEG) mmu_emu_map_pmeg(sun3_get_context(), virt); while(pages) { @@ -59,7 +59,7 @@ } } -void *sun3_ioremap(unsigned long phys, unsigned long size, +void *sun3_ioremap(unsigned long phys, unsigned long size, unsigned long type) { struct vm_struct *area; @@ -79,7 +79,7 @@ return NULL; #ifdef SUN3_KMAP_DEBUG - printk("ioremap: got virt %p size %lx(%lx)\n", + printk("ioremap: got virt %p size %lx(%lx)\n", area->addr, size, area->size); #endif @@ -93,39 +93,39 @@ seg_pages = (SUN3_PMEG_SIZE - (virt & SUN3_PMEG_MASK)) / PAGE_SIZE; if(seg_pages > pages) seg_pages = pages; - + do_pmeg_mapin(phys, virt, type, seg_pages); pages -= seg_pages; phys += seg_pages * PAGE_SIZE; virt += seg_pages * PAGE_SIZE; } - + return (void *)ret; } - - + + void *__ioremap(unsigned long phys, unsigned long size, int cache) { - + return sun3_ioremap(phys, size, SUN3_PAGE_TYPE_IO); - + } void iounmap(void *addr) { - vfree((void *)(PAGE_MASK & (unsigned long)addr)); + vfree((void *)(PAGE_MASK & (unsigned long)addr)); } /* sun3_map_test(addr, val) -- Reads a byte from addr, storing to val, * trapping the potential read fault. Returns 0 if the access faulted, * 1 on success. - * + * * This function is primarily used to check addresses on the VME bus. * * Mucking with the page fault handler seems a little hackish to me, but - * SunOS, NetBSD, and Mach all implemented this check in such a manner, + * SunOS, NetBSD, and Mach all implemented this check in such a manner, * so I figure we're allowed. */ int sun3_map_test(unsigned long addr, char *val) @@ -151,6 +151,6 @@ "_sun3_map_test_end:\n" : "=a"(val), "=r"(ret) : "a"(addr)); - + return ret; } diff -Nru a/arch/m68k/mm/sun3mmu.c b/arch/m68k/mm/sun3mmu.c --- a/arch/m68k/mm/sun3mmu.c Tue May 18 23:38:06 2004 +++ b/arch/m68k/mm/sun3mmu.c Tue May 18 23:38:06 2004 @@ -1,4 +1,4 @@ -/* +/* * linux/arch/m68k/mm/sun3mmu.c * * Implementations of mm routines specific to the sun3 MMU. @@ -64,12 +64,12 @@ size = num_pages * sizeof(pte_t); size = (size + PAGE_SIZE) & ~(PAGE_SIZE-1); - + next_pgtable = (unsigned long)alloc_bootmem_pages(size); bootmem_end = (next_pgtable + size + PAGE_SIZE) & PAGE_MASK; /* Map whole memory from PAGE_OFFSET (0x0E000000) */ - pg_dir += PAGE_OFFSET >> PGDIR_SHIFT; + pg_dir += PAGE_OFFSET >> PGDIR_SHIFT; while (address < (unsigned long)high_memory) { pg_table = (pte_t *) __pa (next_pgtable); @@ -95,7 +95,7 @@ /* memory sizing is a hack stolen from motorola.c.. hope it works for us */ zones_size[0] = ((unsigned long)high_memory - PAGE_OFFSET) >> PAGE_SHIFT; zones_size[1] = 0; - + free_area_init(zones_size); } diff -Nru a/arch/m68k/mvme147/config.c b/arch/m68k/mvme147/config.c --- a/arch/m68k/mvme147/config.c Tue May 18 23:38:06 2004 +++ b/arch/m68k/mvme147/config.c Tue May 18 23:38:06 2004 @@ -120,8 +120,8 @@ static irqreturn_t mvme147_timer_int (int irq, void *dev_id, struct pt_regs *fp) { - m147_pcc->t1_int_cntrl = PCC_TIMER_INT_CLR; - m147_pcc->t1_int_cntrl = PCC_INT_ENAB|PCC_LEVEL_TIMER1; + m147_pcc->t1_int_cntrl = PCC_TIMER_INT_CLR; + m147_pcc->t1_int_cntrl = PCC_INT_ENAB|PCC_LEVEL_TIMER1; return tick_handler(irq, dev_id, fp); } @@ -129,16 +129,16 @@ void mvme147_sched_init (irqreturn_t (*timer_routine)(int, void *, struct pt_regs *)) { tick_handler = timer_routine; - request_irq (PCC_IRQ_TIMER1, mvme147_timer_int, + request_irq (PCC_IRQ_TIMER1, mvme147_timer_int, IRQ_FLG_REPLACE, "timer 1", NULL); - + /* Init the clock with a value */ /* our clock goes off every 6.25us */ m147_pcc->t1_preload = PCC_TIMER_PRELOAD; - m147_pcc->t1_cntrl = 0x0; /* clear timer */ - m147_pcc->t1_cntrl = 0x3; /* start timer */ + m147_pcc->t1_cntrl = 0x0; /* clear timer */ + m147_pcc->t1_cntrl = 0x3; /* start timer */ m147_pcc->t1_int_cntrl = PCC_TIMER_INT_CLR; /* clear pending ints */ - m147_pcc->t1_int_cntrl = PCC_INT_ENAB|PCC_LEVEL_TIMER1; + m147_pcc->t1_int_cntrl = PCC_INT_ENAB|PCC_LEVEL_TIMER1; } /* This is always executed with interrupts disabled. */ diff -Nru a/arch/m68k/mvme16x/mvme16x_ksyms.c b/arch/m68k/mvme16x/mvme16x_ksyms.c --- a/arch/m68k/mvme16x/mvme16x_ksyms.c Tue May 18 23:38:07 2004 +++ b/arch/m68k/mvme16x/mvme16x_ksyms.c Tue May 18 23:38:07 2004 @@ -2,5 +2,5 @@ #include #include #include - + EXPORT_SYMBOL(mvme16x_config); diff -Nru a/arch/m68k/mvme16x/rtc.c b/arch/m68k/mvme16x/rtc.c --- a/arch/m68k/mvme16x/rtc.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/mvme16x/rtc.c Tue May 18 23:38:09 2004 @@ -43,7 +43,7 @@ { volatile MK48T08ptr_t rtc = (MK48T08ptr_t)MVME_RTC_BASE; unsigned long flags; - struct rtc_time wtime; + struct rtc_time wtime; switch (cmd) { case RTC_RD_TIME: /* Read the time/date from RTC */ @@ -101,7 +101,7 @@ if (yrs >= 2070) return -EINVAL; - + local_irq_save(flags); rtc->ctrl = RTC_WRITE; diff -Nru a/arch/m68k/q40/Makefile b/arch/m68k/q40/Makefile --- a/arch/m68k/q40/Makefile Tue May 18 23:38:07 2004 +++ b/arch/m68k/q40/Makefile Tue May 18 23:38:07 2004 @@ -2,4 +2,4 @@ # Makefile for Linux arch/m68k/q40 source directory # -obj-y := config.o q40ints.o +obj-y := config.o q40ints.o diff -Nru a/arch/m68k/q40/README b/arch/m68k/q40/README --- a/arch/m68k/q40/README Tue May 18 23:38:05 2004 +++ b/arch/m68k/q40/README Tue May 18 23:38:05 2004 @@ -9,18 +9,18 @@ Hints to documentation usually refer to the linux source tree in /usr/src/linux/Documentation unless URL given. -It seems IRQ unmasking can't be safely done on a Q40. IRQ probing +It seems IRQ unmasking can't be safely done on a Q40. IRQ probing is not implemented - do not try it! (See below) For a list of kernel command-line options read the documentation for the particular device drivers. The floppy imposes a very high interrupt load on the CPU, approx 30K/s. -When something blocks interrupts (HD) it will lose some of them, so far +When something blocks interrupts (HD) it will lose some of them, so far this is not known to have caused any data loss. On highly loaded systems -it can make the floppy very slow or practically stop. Other Q40 OS' simply +it can make the floppy very slow or practically stop. Other Q40 OS' simply poll the floppy for this reason - something that can't be done in Linux. -Only possible cure is getting a 82072 controller with fifo instead of +Only possible cure is getting a 82072 controller with fifo instead of the 8272A. drivers used by the Q40, apart from the very obvious (console etc.): @@ -28,7 +28,7 @@ serial.c # normal PC driver - any speed lp.c # printer driver genrtc.c # RTC - char/joystick/* # most of this should work, not + char/joystick/* # most of this should work, not # in default config.in block/q40ide.c # startup for ide ide* # see Documentation/ide.txt @@ -41,30 +41,30 @@ sound/dmasound_core.c dmasound_q40.c -Various other PC drivers can be enabled simply by adding them to +Various other PC drivers can be enabled simply by adding them to arch/m68k/config.in, especially 8 bit devices should be without any -problems. For cards using 16bit io/mem more care is required, like +problems. For cards using 16bit io/mem more care is required, like checking byte order issues, hacking memcpy_*_io etc. Debugging ========= -Upon startup the kernel will usually output "ABCQGHIJ" into the SRAM, -preceded by the booter signature. This is a trace just in case something -went wrong during earliest setup stages of head.S. -**Changed** to preserve SRAM contents by default, this is only done when -requested - SRAM must start with '%LX$' signature to do this. '-d' option +Upon startup the kernel will usually output "ABCQGHIJ" into the SRAM, +preceded by the booter signature. This is a trace just in case something +went wrong during earliest setup stages of head.S. +**Changed** to preserve SRAM contents by default, this is only done when +requested - SRAM must start with '%LX$' signature to do this. '-d' option to 'lxx' loader enables this. SRAM can also be used as additional console device, use debug=mem. -This will save kernel startup msgs into SRAM, the screen will display +This will save kernel startup msgs into SRAM, the screen will display only the penguin - and shell prompt if it gets that far.. Unfortunately only 2000 bytes are available. Serial console works and can also be used for debugging, see loader_txt -Most problems seem to be caused by fawlty or badly configured io-cards or +Most problems seem to be caused by fawlty or badly configured io-cards or hard drives anyway. Make sure to configure the parallel port as SPP and remove IRQ/DMA jumpers for first testing. The Q40 does not support DMA and may have trouble with @@ -74,7 +74,7 @@ Q40 Hardware Description ======================== -This is just an overview, see asm-m68k/* for details ask if you have any +This is just an overview, see asm-m68k/* for details ask if you have any questions. The Q40 consists of a 68040@40 MHz, 1MB video RAM, up to 32MB RAM, AT-style @@ -82,16 +82,16 @@ shadow ROM. The Q60 has any of 68060 or 68LC060 and up to 128 MB RAM. -Most interfacing like floppy, IDE, serial and parallel ports is done via ISA -slots. The ISA io and mem range is mapped (sparse&byteswapped!) into separate +Most interfacing like floppy, IDE, serial and parallel ports is done via ISA +slots. The ISA io and mem range is mapped (sparse&byteswapped!) into separate regions of the memory. -The main interrupt register IIRQ_REG will indicate whether an IRQ was internal +The main interrupt register IIRQ_REG will indicate whether an IRQ was internal or from some ISA devices, EIRQ_REG can distinguish up to 8 ISA IRQs. The Q40 custom chip is programmable to provide 2 periodic timers: - 50 or 200 Hz - level 2, !!THIS CANT BE DISABLED!! - - 10 or 20 KHz - level 4, used for dma-sound - + - 10 or 20 KHz - level 4, used for dma-sound + Linux uses the 200 Hz interrupt for timer and beep by default. @@ -112,7 +112,7 @@ because only irq's 4-15 can be disabled - and only all of them at once. Thus disable_irq() can effectively block the machine if the driver goes asleep. -One thing to keep in mind when hacking around the interrupt code is +One thing to keep in mind when hacking around the interrupt code is that there is no way to find out which IRQ caused a request, [EI]IRQ_REG displays current state of the various IRQ lines. @@ -123,11 +123,11 @@ the PC scancodes x86 Linux uses. So by theory every national keyboard should work just by loading the appropriate x86 keytable - see any national-HOWTO. -Unfortunately the AT->PC translation isn't quite trivial and even worse, my -documentation of it is absolutely minimal - thus some exotic keys may not +Unfortunately the AT->PC translation isn't quite trivial and even worse, my +documentation of it is absolutely minimal - thus some exotic keys may not behave exactly as expected. -There is still hope that it can be fixed completely though. If you encounter +There is still hope that it can be fixed completely though. If you encounter problems, email me ideally this: - exact keypress/release sequence - 'showkey -s' run on q40, non-X session diff -Nru a/arch/m68k/q40/config.c b/arch/m68k/q40/config.c --- a/arch/m68k/q40/config.c Tue May 18 23:38:07 2004 +++ b/arch/m68k/q40/config.c Tue May 18 23:38:07 2004 @@ -159,7 +159,7 @@ void q40_disable_irqs(void) { unsigned i,j; - + j=0; while((i=serports[j++])) outb(0,i+UART_IER); master_outb(0,EXT_ENABLE_REG); @@ -170,16 +170,16 @@ { mach_sched_init = q40_sched_init; - mach_init_IRQ = q40_init_IRQ; - mach_gettimeoffset = q40_gettimeoffset; - mach_hwclk = q40_hwclk; + mach_init_IRQ = q40_init_IRQ; + mach_gettimeoffset = q40_gettimeoffset; + mach_hwclk = q40_hwclk; mach_get_ss = q40_get_ss; mach_get_rtc_pll = q40_get_rtc_pll; mach_set_rtc_pll = q40_set_rtc_pll; mach_set_clock_mmss = q40_set_clock_mmss; mach_reset = q40_reset; - mach_free_irq = q40_free_irq; + mach_free_irq = q40_free_irq; mach_process_int = q40_process_int; mach_get_irq_list = show_q40_interrupts; mach_request_irq = q40_request_irq; @@ -204,9 +204,9 @@ q40_disable_irqs(); /* no DMA at all, but ide-scsi requires it.. make sure - * all physical RAM fits into the boundary - otherwise + * all physical RAM fits into the boundary - otherwise * allocator may play costly and useless tricks */ - mach_max_dma_address = 1024*1024*1024; + mach_max_dma_address = 1024*1024*1024; /* useful for early debugging stages - writes kernel messages into SRAM */ if (!strncmp( m68k_debug_device,"mem",3 )) @@ -286,7 +286,7 @@ t->tm_sec = bcd2bin (Q40_RTC_SECS); Q40_RTC_CTRL &= ~(Q40_RTC_READ); - + if (t->tm_year < 70) t->tm_year += 100; t->tm_wday = bcd2bin(Q40_RTC_DOW)-1; @@ -319,7 +319,7 @@ if ((rtc_minutes < real_minutes ? real_minutes - rtc_minutes : rtc_minutes - real_minutes) < 30) - { + { Q40_RTC_CTRL |= Q40_RTC_WRITE; Q40_RTC_MINS = bin2bcd(real_minutes); Q40_RTC_SECS = bin2bcd(real_seconds); diff -Nru a/arch/m68k/q40/q40ints.c b/arch/m68k/q40/q40ints.c --- a/arch/m68k/q40/q40ints.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/q40/q40ints.c Tue May 18 23:38:09 2004 @@ -30,14 +30,14 @@ #include #include -/* - * Q40 IRQs are defined as follows: +/* + * Q40 IRQs are defined as follows: * 3,4,5,6,7,10,11,14,15 : ISA dev IRQs * 16-31: reserved * 32 : keyboard int * 33 : frame int (50/200 Hz periodic timer) * 34 : sample int (10/20 KHz periodic timer) - * + * */ extern int ints_inited; @@ -122,7 +122,7 @@ case 12: case 13: printk("%s: ISA IRQ %d from %s not implemented by HW\n", __FUNCTION__, irq, devname); return -ENXIO; - case 11: + case 11: printk("warning IRQ 10 and 11 not distinguishable\n"); irq=10; default: @@ -131,7 +131,7 @@ if (irq4){ @@ -379,9 +379,9 @@ return IRQ_HANDLED; } } - if (mer && ccleirq>0 && !aliased_irq) + if (mer && ccleirq>0 && !aliased_irq) printk("ISA interrupt from unknown source? EIRQ_REG = %x\n",mer),ccleirq--; - } + } iirq: mir=master_inb(IIRQ_REG); /* should test whether keyboard irq is really enabled, doing it in defhand */ @@ -399,10 +399,10 @@ for (i = 0; i <= Q40_IRQ_MAX; i++) { if (irq_tab[i].count) seq_printf(p, "%sIRQ %02d: %8d %s%s\n", - (i<=15) ? "ISA-" : " " , + (i<=15) ? "ISA-" : " " , i, irq_tab[i].count, irq_tab[i].devname[0] ? irq_tab[i].devname : "?", - irq_tab[i].handler == q40_defhand ? + irq_tab[i].handler == q40_defhand ? " (now unassigned)" : ""); } return 0; @@ -440,7 +440,7 @@ { mext_disabled--; if (mext_disabled>0) - printk("q40_enable_irq : nested disable/enable\n"); + printk("q40_enable_irq : nested disable/enable\n"); if (mext_disabled==0) master_outb(1,EXT_ENABLE_REG); } diff -Nru a/arch/m68k/sun3/config.c b/arch/m68k/sun3/config.c --- a/arch/m68k/sun3/config.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/sun3/config.c Tue May 18 23:38:08 2004 @@ -42,19 +42,19 @@ extern void idprom_init (void); extern int sun3_hwclk(int set, struct rtc_time *t); -volatile char* clock_va; +volatile char* clock_va; extern volatile unsigned char* sun3_intreg; extern unsigned long availmem; unsigned long num_pages; static int sun3_get_hardware_list(char *buffer) { - + int len = 0; len += sprintf(buffer + len, "PROM Revision:\t%s\n", romvec->pv_monid); - + return len; } @@ -71,14 +71,14 @@ clock_va = (char *) 0xfe06000; /* dark */ sun3_intreg = (unsigned char *) 0xfe0a000; /* magic */ sun3_disable_interrupts(); - + prom_init((void *)LINUX_OPPROM_BEGVM); - + GET_CONTROL_BYTE(AC_SENABLE,enable_register); - enable_register |= 0x50; /* Enable FPU */ + enable_register |= 0x50; /* Enable FPU */ SET_CONTROL_BYTE(AC_SENABLE,enable_register); GET_CONTROL_BYTE(AC_SENABLE,enable_register); - + /* This code looks suspicious, because it doesn't subtract memory belonging to the kernel from the available space */ @@ -122,7 +122,7 @@ /* align start/end to page boundaries */ memory_start = ((memory_start + (PAGE_SIZE-1)) & PAGE_MASK); memory_end = memory_end & PAGE_MASK; - + start_page = __pa(memory_start) >> PAGE_SHIFT; num_pages = __pa(memory_end) >> PAGE_SHIFT; @@ -134,7 +134,7 @@ free_bootmem(__pa(availmem), memory_end - (availmem)); } - + void __init config_sun3(void) { @@ -145,13 +145,13 @@ /* Subtract kernel memory from available memory */ - mach_sched_init = sun3_sched_init; + mach_sched_init = sun3_sched_init; mach_init_IRQ = sun3_init_IRQ; mach_default_handler = &sun3_default_handler; mach_request_irq = sun3_request_irq; mach_free_irq = sun3_free_irq; - enable_irq = sun3_enable_irq; - disable_irq = sun3_disable_irq; + enable_irq = sun3_enable_irq; + disable_irq = sun3_disable_irq; mach_process_int = sun3_process_int; mach_get_irq_list = show_sun3_interrupts; mach_reset = sun3_reboot; @@ -161,7 +161,7 @@ mach_halt = sun3_halt; mach_get_hardware_list = sun3_get_hardware_list; #if defined(CONFIG_DUMMY_CONSOLE) - conswitchp = &dummy_con; + conswitchp = &dummy_con; #endif memory_start = ((((int)&_end) + 0x2000) & ~0x1fff); @@ -170,7 +170,7 @@ m68k_num_memory=1; m68k_memory[0].size=*(romvec->pv_sun3mem); - + sun3_bootmem_alloc(memory_start, memory_end); } @@ -179,7 +179,7 @@ sun3_disable_interrupts(); intersil_clock->cmd_reg=(INTERSIL_RUN|INTERSIL_INT_DISABLE|INTERSIL_24H_MODE); intersil_clock->int_reg=INTERSIL_HZ_100_MASK; - intersil_clear(); + intersil_clear(); sun3_enable_irq(5); intersil_clock->cmd_reg=(INTERSIL_RUN|INTERSIL_INT_ENABLE|INTERSIL_24H_MODE); sun3_enable_interrupts(); diff -Nru a/arch/m68k/sun3/dvma.c b/arch/m68k/sun3/dvma.c --- a/arch/m68k/sun3/dvma.c Tue May 18 23:38:06 2004 +++ b/arch/m68k/sun3/dvma.c Tue May 18 23:38:06 2004 @@ -24,13 +24,13 @@ unsigned long pte; unsigned long j; pte_t ptep; - + j = *(volatile unsigned long *)kaddr; *(volatile unsigned long *)kaddr = j; ptep = pfn_pte(virt_to_pfn(kaddr), PAGE_KERNEL); pte = pte_val(ptep); -// printk("dvma_remap: addr %lx -> %lx pte %08lx len %x\n", +// printk("dvma_remap: addr %lx -> %lx pte %08lx len %x\n", // kaddr, vaddr, pte, len); if(ptelist[(vaddr & 0xff000) >> PAGE_SHIFT] != pte) { sun3_put_pte(vaddr, pte); @@ -41,7 +41,7 @@ } -int dvma_map_iommu(unsigned long kaddr, unsigned long baddr, +int dvma_map_iommu(unsigned long kaddr, unsigned long baddr, int len) { @@ -51,7 +51,7 @@ vaddr = dvma_btov(baddr); end = vaddr + len; - + while(vaddr < end) { dvma_page(kaddr, vaddr); kaddr += PAGE_SIZE; diff -Nru a/arch/m68k/sun3/idprom.c b/arch/m68k/sun3/idprom.c --- a/arch/m68k/sun3/idprom.c Tue May 18 23:38:06 2004 +++ b/arch/m68k/sun3/idprom.c Tue May 18 23:38:06 2004 @@ -67,7 +67,7 @@ prom_getproperty(prom_root_node, "banner-name", sysname, sizeof(sysname)); printk("TYPE: %s\n", sysname); -#endif +#endif } return; } @@ -83,7 +83,7 @@ for (i = 0; i < NUM_SUN_MACHINES; i++) { if(Sun_Machines[i].id_machtype == idprom->id_machtype) { - strcpy(model, Sun_Machines[i].name); + strcpy(model, Sun_Machines[i].name); return; } } diff -Nru a/arch/m68k/sun3/intersil.c b/arch/m68k/sun3/intersil.c --- a/arch/m68k/sun3/intersil.c Tue May 18 23:38:05 2004 +++ b/arch/m68k/sun3/intersil.c Tue May 18 23:38:05 2004 @@ -26,7 +26,7 @@ /* does this need to be implemented? */ unsigned long sun3_gettimeoffset(void) -{ +{ return 1; } diff -Nru a/arch/m68k/sun3/leds.c b/arch/m68k/sun3/leds.c --- a/arch/m68k/sun3/leds.c Tue May 18 23:38:05 2004 +++ b/arch/m68k/sun3/leds.c Tue May 18 23:38:05 2004 @@ -5,9 +5,9 @@ void sun3_leds(unsigned char byte) { unsigned char dfc; - + GET_DFC(dfc); SET_DFC(FC_CONTROL); - SET_CONTROL_BYTE(AC_LEDS,byte); + SET_CONTROL_BYTE(AC_LEDS,byte); SET_DFC(dfc); } diff -Nru a/arch/m68k/sun3/mmu_emu.c b/arch/m68k/sun3/mmu_emu.c --- a/arch/m68k/sun3/mmu_emu.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/sun3/mmu_emu.c Tue May 18 23:38:08 2004 @@ -125,12 +125,12 @@ { unsigned long seg, num; int i,j; - + memset(rom_pages, 0, sizeof(rom_pages)); memset(pmeg_vaddr, 0, sizeof(pmeg_vaddr)); memset(pmeg_alloc, 0, sizeof(pmeg_alloc)); memset(pmeg_ctx, 0, sizeof(pmeg_ctx)); - + /* pmeg align the end of bootmem, adding another pmeg, * later bootmem allocations will likely need it */ bootmem_end = (bootmem_end + (2 * SUN3_PMEG_SIZE)) & ~SUN3_PMEG_MASK; @@ -148,7 +148,7 @@ /* liberate all existing mappings in the rest of kernel space */ for(seg = bootmem_end; seg < 0x0f800000; seg += SUN3_PMEG_SIZE) { i = sun3_get_segmap(seg); - + if(!pmeg_alloc[i]) { #ifdef DEBUG_MMU_EMU printk("freed: "); @@ -179,13 +179,13 @@ pmeg_alloc[sun3_get_segmap(seg)] = 2; } } - + dvma_init(); - - + + /* blank everything below the kernel, and we've got the base mapping to start all the contexts off with... */ - for(seg = 0; seg < PAGE_OFFSET; seg += SUN3_PMEG_SIZE) + for(seg = 0; seg < PAGE_OFFSET; seg += SUN3_PMEG_SIZE) sun3_put_segmap(seg, SUN3_INVALID_PMEG); set_fs(MAKE_MM_SEG(3)); @@ -195,7 +195,7 @@ (*(romvec->pv_setctxt))(j, (void *)seg, i); } set_fs(KERNEL_DS); - + } /* erase the mappings for a dead context. Uses the pg_dir for hints @@ -207,9 +207,9 @@ { unsigned char oldctx; unsigned long i; - + if(context) { - if(!ctx_alloc[context]) + if(!ctx_alloc[context]) panic("clear_context: context not allocated\n"); ctx_alloc[context]->context = SUN3_INVALID_CONTEXT; @@ -229,7 +229,7 @@ pmeg_vaddr[i] = 0; } } - + sun3_put_context(oldctx); } @@ -239,7 +239,7 @@ sure it could be much more intellegent... but it gets the job done for now without much overhead in making it's decision. */ /* todo: come up with optimized scheme for flushing contexts */ -unsigned long get_free_context(struct mm_struct *mm) +unsigned long get_free_context(struct mm_struct *mm) { unsigned long new = 1; static unsigned char next_to_die = 1; @@ -259,7 +259,7 @@ break; } // check to make sure one was really free... - if(new == CONTEXTS_NUM) + if(new == CONTEXTS_NUM) panic("get_free_context: failed to find free context"); } @@ -307,7 +307,7 @@ if(vaddr >= PAGE_OFFSET) { /* map kernel pmegs into all contexts */ unsigned char i; - + for(i = 0; i < CONTEXTS_NUM; i++) { sun3_put_context(i); sun3_put_segmap (vaddr, curr_pmeg); @@ -315,7 +315,7 @@ sun3_put_context(context); pmeg_alloc[curr_pmeg] = 2; pmeg_ctx[curr_pmeg] = 0; - + } else { pmeg_alloc[curr_pmeg] = 1; @@ -326,7 +326,7 @@ pmeg_vaddr[curr_pmeg] = vaddr; /* Set hardware mapping and clear the old PTE entries. */ - for (i=0; imm->context; - if(kernel_fault) + if(kernel_fault) crp = swapper_pg_dir; else crp = current->mm->pgd; @@ -390,11 +390,11 @@ pte = (pte_t *) __va ((unsigned long)(pte + offset)); /* Make sure this is a valid page */ - if (!(pte_val (*pte) & SUN3_PAGE_VALID)) + if (!(pte_val (*pte) & SUN3_PAGE_VALID)) return 0; /* Make sure there's a pmeg allocated for the page */ - if (sun3_get_segmap (vaddr&~SUN3_PMEG_MASK) == SUN3_INVALID_PMEG) + if (sun3_get_segmap (vaddr&~SUN3_PMEG_MASK) == SUN3_INVALID_PMEG) mmu_emu_map_pmeg (context, vaddr); /* Write the pte value to hardware MMU */ @@ -409,7 +409,7 @@ if (pte_val (*pte) & SUN3_PAGE_WRITEABLE) pte_val (*pte) |= (SUN3_PAGE_ACCESSED | SUN3_PAGE_MODIFIED); - else + else return 0; /* Write-protect error. */ } else pte_val (*pte) |= SUN3_PAGE_ACCESSED; diff -Nru a/arch/m68k/sun3/prom/init.c b/arch/m68k/sun3/prom/init.c --- a/arch/m68k/sun3/prom/init.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/sun3/prom/init.c Tue May 18 23:38:09 2004 @@ -73,7 +73,7 @@ if((prom_root_node == 0) || (prom_root_node == -1)) prom_halt(); - if((((unsigned long) prom_nodeops) == 0) || + if((((unsigned long) prom_nodeops) == 0) || (((unsigned long) prom_nodeops) == -1)) prom_halt(); diff -Nru a/arch/m68k/sun3/sun3dvma.c b/arch/m68k/sun3/sun3dvma.c --- a/arch/m68k/sun3/sun3dvma.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/sun3/sun3dvma.c Tue May 18 23:38:08 2004 @@ -52,21 +52,21 @@ static unsigned long long dvma_alloc_bytes; static unsigned long long dvma_free_bytes; -static void print_use(void) +static void print_use(void) { - + int i; int j = 0; printk("dvma entry usage:\n"); - + for(i = 0; i < IOMMU_TOTAL_ENTRIES; i++) { if(!iommu_use[i]) continue; - + j++; - printk("dvma entry: %08lx len %08lx\n", + printk("dvma entry: %08lx len %08lx\n", ( i << DVMA_PAGE_SHIFT) + DVMA_START, iommu_use[i]); } @@ -74,28 +74,28 @@ printk("%d entries in use total\n", j); printk("allocation/free calls: %lu/%lu\n", dvma_allocs, dvma_frees); - printk("allocation/free bytes: %Lx/%Lx\n", dvma_alloc_bytes, + printk("allocation/free bytes: %Lx/%Lx\n", dvma_alloc_bytes, dvma_free_bytes); } static void print_holes(struct list_head *holes) { - + struct list_head *cur; struct hole *hole; printk("listing dvma holes\n"); list_for_each(cur, holes) { hole = list_entry(cur, struct hole, list); - + if((hole->start == 0) && (hole->end == 0) && (hole->size == 0)) continue; - + printk("hole: start %08lx end %08lx size %08lx\n", hole->start, hole->end, hole->size); } - + printk("end of hole listing...\n"); - + } #endif /* DVMA_DEBUG */ @@ -106,7 +106,7 @@ struct hole *prev = NULL; struct list_head *cur; int ret = 0; - + list_for_each(cur, &hole_list) { hole = list_entry(cur, struct hole, list); @@ -114,7 +114,7 @@ prev = hole; continue; } - + if(hole->end == prev->start) { hole->size += prev->size; hole->end = prev->end; @@ -122,12 +122,12 @@ list_add(&(prev->list), &hole_cache); ret++; } - + } return ret; } - + static inline struct hole *rmcache(void) { struct hole *ret; @@ -148,7 +148,7 @@ static inline unsigned long get_baddr(int len, unsigned long align) { - + struct list_head *cur; struct hole *hole; @@ -166,11 +166,11 @@ hole = list_entry(cur, struct hole, list); - if(align > DVMA_PAGE_SIZE) + if(align > DVMA_PAGE_SIZE) newlen = len + ((hole->end - len) & (align-1)); else newlen = len; - + if(hole->size > newlen) { hole->end -= newlen; hole->size -= newlen; @@ -200,7 +200,7 @@ static inline int free_baddr(unsigned long baddr) { - + unsigned long len; struct hole *hole; struct list_head *cur; @@ -219,7 +219,7 @@ list_for_each(cur, &hole_list) { hole = list_entry(cur, struct hole, list); - + if(hole->end == baddr) { hole->end += len; hole->size += len; @@ -233,21 +233,21 @@ } hole = rmcache(); - + hole->start = baddr; hole->end = baddr + len; hole->size = len; - + // list_add_tail(&(hole->list), cur); list_add(&(hole->list), cur); - + return 0; - + } void dvma_init(void) { - + struct hole *hole; int i; @@ -255,14 +255,14 @@ INIT_LIST_HEAD(&hole_cache); /* prepare the hole cache */ - for(i = 0; i < 64; i++) + for(i = 0; i < 64; i++) list_add(&(initholes[i].list), &hole_cache); - + hole = rmcache(); hole->start = DVMA_START; hole->end = DVMA_END; hole->size = DVMA_SIZE; - + list_add(&(hole->list), &hole_list); memset(iommu_use, 0, sizeof(iommu_use)); @@ -291,7 +291,7 @@ } #ifdef DEBUG - printk("dvma_map request %08lx bytes from %08lx\n", + printk("dvma_map request %08lx bytes from %08lx\n", len, kaddr); #endif off = kaddr & ~DVMA_PAGE_MASK; @@ -309,7 +309,7 @@ if(!dvma_map_iommu(kaddr, baddr, len)) return (baddr + off); - + printk("dvma_map failed kaddr %lx baddr %lx len %x\n", kaddr, baddr, len); BUG(); return 0; @@ -318,14 +318,14 @@ void dvma_unmap(void *baddr) { unsigned long addr; - + addr = (unsigned long)baddr; /* check if this is a vme mapping */ if(!(addr & 0x00f00000)) addr |= 0xf00000; - + free_baddr(addr); - + return; } diff -Nru a/arch/m68k/sun3/sun3ints.c b/arch/m68k/sun3/sun3ints.c --- a/arch/m68k/sun3/sun3ints.c Tue May 18 23:38:09 2004 +++ b/arch/m68k/sun3/sun3ints.c Tue May 18 23:38:09 2004 @@ -28,7 +28,7 @@ void sun3_enable_interrupts(void) { sun3_enable_irq(0); -} +} int led_pattern[8] = { ~(0x80), ~(0x01), @@ -67,7 +67,7 @@ static irqreturn_t sun3_int7(int irq, void *dev_id, struct pt_regs *fp) { sun3_do_irq(irq,fp); - if(!(kstat_cpu(0).irqs[SYS_IRQS + irq] % 2000)) + if(!(kstat_cpu(0).irqs[SYS_IRQS + irq] % 2000)) sun3_leds(led_pattern[(kstat_cpu(0).irqs[SYS_IRQS+irq]%16000) /2000]); return IRQ_HANDLED; @@ -125,7 +125,7 @@ for(i = 0; i < (SUN3_INT_VECS-1); i++) { if(sun3_vechandler[i] != NULL) { - seq_printf(p, "vec %3d: %10u %s\n", i+64, + seq_printf(p, "vec %3d: %10u %s\n", i+64, vec_ints[i], (vec_names[i]) ? vec_names[i] : "sun3_vechandler"); @@ -166,12 +166,12 @@ dev_names[i], NULL); } - for(i = 0; i < 192; i++) + for(i = 0; i < 192; i++) sun3_vechandler[i] = NULL; - + sun3_vechandler[191] = sun3_vec255; } - + int sun3_request_irq(unsigned int irq, irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long flags, const char *devname, void *dev_id) { @@ -181,11 +181,11 @@ printk("sun3_request_irq: request for irq %d -- already taken!\n", irq); return 1; } - + sun3_inthandler[irq] = handler; dev_ids[irq] = dev_id; dev_names[irq] = devname; - + /* setting devname would be nice */ cpu_request_irq(irq, sun3_default_handler[irq], 0, devname, NULL); @@ -205,7 +205,7 @@ vec_ids[vec] = dev_id; vec_names[vec] = devname; vec_ints[vec] = 0; - + return 0; } } @@ -214,16 +214,16 @@ return 1; } - + void sun3_free_irq(unsigned int irq, void *dev_id) { if(irq < SYS_IRQS) { - if(sun3_inthandler[irq] == NULL) + if(sun3_inthandler[irq] == NULL) panic("sun3_free_int: attempt to free unused irq %d\n", irq); if(dev_ids[irq] != dev_id) panic("sun3_free_int: incorrect dev_id for irq %d\n", irq); - + sun3_inthandler[irq] = NULL; return; } else if((irq >= 64) && (irq <= 255)) { @@ -234,12 +234,12 @@ panic("sun3_free_int: attempt to free unused vector %d\n", irq); if(vec_ids[irq] != dev_id) panic("sun3_free_int: incorrect dev_id for vec %d\n", irq); - + sun3_vechandler[vec] = NULL; return; } else { panic("sun3_free_irq: invalid irq %d\n", irq); - } + } } irqreturn_t sun3_process_int(int irq, struct pt_regs *regs) @@ -249,7 +249,7 @@ int vec; vec = irq - 64; - if(sun3_vechandler[vec] == NULL) + if(sun3_vechandler[vec] == NULL) panic ("bad interrupt vector %d received\n",irq); vec_ints[vec]++; diff -Nru a/arch/m68k/sun3x/config.c b/arch/m68k/sun3x/config.c --- a/arch/m68k/sun3x/config.c Tue May 18 23:38:05 2004 +++ b/arch/m68k/sun3x/config.c Tue May 18 23:38:05 2004 @@ -33,12 +33,12 @@ static int sun3x_get_hardware_list(char *buffer) { - + int len = 0; len += sprintf(buffer + len, "PROM Revision:\t%s\n", romvec->pv_monid); - + return len; } @@ -62,7 +62,7 @@ mach_request_irq = sun3_request_irq; mach_free_irq = sun3_free_irq; mach_process_int = sun3_process_int; - + mach_gettimeoffset = sun3x_gettimeoffset; mach_reset = sun3x_reboot; @@ -70,10 +70,14 @@ mach_get_model = sun3_get_model; mach_get_hardware_list = sun3x_get_hardware_list; +#if defined(CONFIG_DUMMY_CONSOLE) + conswitchp = &dummy_con; +#endif + sun3_intreg = (unsigned char *)SUN3X_INTREG; /* only the serial console is known to work anyway... */ -#if 0 +#if 0 switch (*(unsigned char *)SUN3X_EEPROM_CONS) { case 0x10: serial_console = 1; diff -Nru a/arch/m68k/sun3x/dvma.c b/arch/m68k/sun3x/dvma.c --- a/arch/m68k/sun3x/dvma.c Tue May 18 23:38:05 2004 +++ b/arch/m68k/sun3x/dvma.c Tue May 18 23:38:05 2004 @@ -1,11 +1,11 @@ /* * Virtual DMA allocation * - * (C) 1999 Thomas Bogendoerfer (tsbogend@alpha.franken.de) + * (C) 1999 Thomas Bogendoerfer (tsbogend@alpha.franken.de) * - * 11/26/2000 -- disabled the existing code because it didn't work for - * me in 2.4. Replaced with a significantly more primitive version - * similar to the sun3 code. the old functionality was probably more + * 11/26/2000 -- disabled the existing code because it didn't work for + * me in 2.4. Replaced with a significantly more primitive version + * similar to the sun3 code. the old functionality was probably more * desirable, but.... -- Sam Creasey (sammy@oh.verio.com) * */ @@ -42,8 +42,8 @@ static volatile unsigned long *iommu_pte = (unsigned long *)SUN3X_IOMMU; -#define dvma_entry_paddr(index) (iommu_pte[index] & IOMMU_ADDR_MASK) -#define dvma_entry_vaddr(index,paddr) ((index << DVMA_PAGE_SHIFT) | \ +#define dvma_entry_paddr(index) (iommu_pte[index] & IOMMU_ADDR_MASK) +#define dvma_entry_vaddr(index,paddr) ((index << DVMA_PAGE_SHIFT) | \ (paddr & (DVMA_PAGE_SIZE-1))) #if 0 #define dvma_entry_set(index,addr) (iommu_pte[index] = \ @@ -80,7 +80,7 @@ /* create a virtual mapping for a page assigned within the IOMMU so that the cpu can reach it easily */ -inline int dvma_map_cpu(unsigned long kaddr, +inline int dvma_map_cpu(unsigned long kaddr, unsigned long vaddr, int len) { pgd_t *pgd; @@ -97,7 +97,7 @@ kaddr, vaddr); #endif pgd = pgd_offset_k(vaddr); - + do { pmd_t *pmd; unsigned long end2; @@ -107,7 +107,7 @@ goto out; } - if((end & PGDIR_MASK) > (vaddr & PGDIR_MASK)) + if((end & PGDIR_MASK) > (vaddr & PGDIR_MASK)) end2 = (vaddr + (PGDIR_SIZE-1)) & PGDIR_MASK; else end2 = end; @@ -121,7 +121,7 @@ goto out; } - if((end2 & PMD_MASK) > (vaddr & PMD_MASK)) + if((end2 & PMD_MASK) > (vaddr & PMD_MASK)) end3 = (vaddr + (PMD_SIZE-1)) & PMD_MASK; else end3 = end2; @@ -131,17 +131,17 @@ printk("mapping %08lx phys to %08lx\n", __pa(kaddr), vaddr); #endif - set_pte(pte, pfn_pte(virt_to_pfn(kaddr), + set_pte(pte, pfn_pte(virt_to_pfn(kaddr), PAGE_KERNEL)); pte++; kaddr += PAGE_SIZE; vaddr += PAGE_SIZE; } while(vaddr < end3); - + } while(vaddr < end2); } while(vaddr < end); - + flush_tlb_all(); out: @@ -150,13 +150,13 @@ inline int dvma_map_iommu(unsigned long kaddr, unsigned long baddr, - int len) + int len) { unsigned long end, index; index = baddr >> DVMA_PAGE_SHIFT; end = ((baddr+len) >> DVMA_PAGE_SHIFT); - + if(len & ~DVMA_PAGE_MASK) end++; @@ -169,12 +169,12 @@ iommu_pte[index] |= IOMMU_FULL_BLOCK; // dvma_entry_inc(index); - + kaddr += DVMA_PAGE_SIZE; } -#ifdef DEBUG - for(index = (baddr >> DVMA_PAGE_SHIFT); index < end; index++) +#ifdef DEBUG + for(index = (baddr >> DVMA_PAGE_SHIFT); index < end; index++) dvma_print(index << DVMA_PAGE_SHIFT); #endif return 0; @@ -185,17 +185,17 @@ { int index, end; - - + + index = baddr >> DVMA_PAGE_SHIFT; end = (DVMA_PAGE_ALIGN(baddr+len) >> DVMA_PAGE_SHIFT); - + for(; index < end ; index++) { #ifdef DEBUG printk("freeing bus mapping %08x\n", index << DVMA_PAGE_SHIFT); #endif #if 0 - if(!dvma_entry_use(index)) + if(!dvma_entry_use(index)) printk("dvma_unmap freeing unused entry %04x\n", index); else diff -Nru a/arch/m68k/sun3x/prom.c b/arch/m68k/sun3x/prom.c --- a/arch/m68k/sun3x/prom.c Tue May 18 23:38:07 2004 +++ b/arch/m68k/sun3x/prom.c Tue May 18 23:38:07 2004 @@ -119,13 +119,13 @@ * XXX this is futile since we restore the vbr first - oops */ vectors[VEC_TRAP14] = sun3x_prom_abort; - + /* If debug=prom was specified, start the debug console */ if (!strcmp(m68k_debug_device, "prom")) register_console(&sun3x_debug); - + } /* some prom functions to export */ @@ -159,7 +159,7 @@ int i; /* make a copy of the idprom structure */ - for(i = 0; i < num_bytes; i++) + for(i = 0; i < num_bytes; i++) idbuf[i] = ((char *)SUN3X_IDPROM)[i]; return idbuf[0]; diff -Nru a/arch/m68k/sun3x/time.c b/arch/m68k/sun3x/time.c --- a/arch/m68k/sun3x/time.c Tue May 18 23:38:08 2004 +++ b/arch/m68k/sun3x/time.c Tue May 18 23:38:08 2004 @@ -39,12 +39,12 @@ int sun3x_hwclk(int set, struct rtc_time *t) { - volatile struct mostek_dt *h = + volatile struct mostek_dt *h = (struct mostek_dt *)(SUN3X_EEPROM+M_CONTROL); unsigned long flags; local_irq_save(flags); - + if(set) { h->csr |= C_WRITE; h->sec = BIN2BCD(t->tm_sec); @@ -85,16 +85,16 @@ /* Clear the pending interrupt - pulse the enable line low */ disable_irq(5); enable_irq(5); - + vector(irq, NULL, regs); } #endif void __init sun3x_sched_init(irqreturn_t (*vector)(int, void *, struct pt_regs *)) { - + sun3_disable_interrupts(); - + /* Pulse enable low to get the clock started */ sun3_disable_irq(5); diff -Nru a/arch/m68knommu/kernel/process.c b/arch/m68knommu/kernel/process.c --- a/arch/m68knommu/kernel/process.c Tue May 18 23:38:06 2004 +++ b/arch/m68knommu/kernel/process.c Tue May 18 23:38:06 2004 @@ -404,12 +404,6 @@ return error; } -/* - * These bracket the sleeping functions.. - */ -#define first_sched ((unsigned long) scheduling_functions_start_here) -#define last_sched ((unsigned long) scheduling_functions_end_here) - unsigned long get_wchan(struct task_struct *p) { unsigned long fp, pc; @@ -425,7 +419,7 @@ fp >= 8184+stack_page) return 0; pc = ((unsigned long *)fp)[1]; - if (pc < first_sched || pc >= last_sched) + if (!in_sched_functions(pc)) return pc; fp = *(unsigned long *) fp; } while (count++ < 16); @@ -440,8 +434,7 @@ struct switch_stack *sw = (struct switch_stack *)tsk->thread.ksp; /* Check whether the thread is blocked in resume() */ - if (sw->retpc > (unsigned long)scheduling_functions_start_here && - sw->retpc < (unsigned long)scheduling_functions_end_here) + if (in_sched_functions(sw->retpc)) return ((unsigned long *)sw->a6)[1]; else return sw->retpc; diff -Nru a/arch/mips/Kconfig b/arch/mips/Kconfig --- a/arch/mips/Kconfig Tue May 18 23:38:07 2004 +++ b/arch/mips/Kconfig Tue May 18 23:38:07 2004 @@ -39,6 +39,7 @@ config ACER_PICA_61 bool "Support for Acer PICA 1 chipset (EXPERIMENTAL)" depends on MACH_JAZZ && EXPERIMENTAL + select DMA_NONCOHERENT help This is a machine with a R4400 133/150 MHz CPU. To compile a Linux kernel that runs on these, say Y here. For details about Linux on @@ -48,6 +49,7 @@ config MIPS_MAGNUM_4000 bool "Support for MIPS Magnum 4000" depends on MACH_JAZZ + select DMA_NONCOHERENT help This is a machine with a R4000 100 MHz CPU. To compile a Linux kernel that runs on these, say Y here. For details about Linux on @@ -57,6 +59,7 @@ config OLIVETTI_M700 bool "Support for Olivetti M700-10" depends on MACH_JAZZ + select DMA_NONCOHERENT help This is a machine with a R4000 100 MHz CPU. To compile a Linux kernel that runs on these, say Y here. For details about Linux on @@ -77,23 +80,27 @@ config CASIO_E55 bool "Support for CASIO CASSIOPEIA E-10/15/55/65" depends on MACH_VR41XX + select DMA_NONCOHERENT select IRQ_CPU select ISA config IBM_WORKPAD bool "Support for IBM WorkPad z50" depends on MACH_VR41XX + select DMA_NONCOHERENT select IRQ_CPU select ISA config NEC_EAGLE bool "Support for NEC Eagle/Hawk board" + select DMA_NONCOHERENT select IRQ_CPU depends on MACH_VR41XX config TANBAC_TB0226 bool "Support for TANBAC TB0226 (Mbase)" depends on MACH_VR41XX + select DMA_NONCOHERENT select IRQ_CPU help The TANBAC TB0226 (Mbase) is a MIPS-based platform manufactured by TANBAC. @@ -102,6 +109,7 @@ config TANBAC_TB0229 bool "Support for TANBAC TB0229 (VR4131DIMM)" depends on MACH_VR41XX + select DMA_NONCOHERENT select IRQ_CPU help The TANBAC TB0229 (VR4131DIMM) is a MIPS-based platform manufactured by TANBAC. @@ -109,25 +117,42 @@ config VICTOR_MPC30X bool "Support for Victor MP-C303/304" + select DMA_NONCOHERENT select IRQ_CPU depends on MACH_VR41XX config ZAO_CAPCELLA bool "Support for ZAO Networks Capcella" depends on MACH_VR41XX + select DMA_NONCOHERENT select IRQ_CPU +config VRC4171 + tristate "add NEC VRC4171 companion chip support" + depends on MACH_VR41XX && ISA + ---help--- + The NEC VRC4171/4171A is a companion chip for NEC VR4111/VR4121. + +config VRC4173 + tristate "add NEC VRC4173 companion chip support" + depends on MACH_VR41XX && PCI + ---help--- + The NEC VRC4173 is a companion chip for NEC VR4122/VR4131. + config TOSHIBA_JMR3927 bool "Support for Toshiba JMR-TX3927 board" depends on MIPS32 + select DMA_NONCOHERENT config MIPS_COBALT bool "Support for Cobalt Server (EXPERIMENTAL)" depends on EXPERIMENTAL + select DMA_NONCOHERENT select IRQ_CPU config MACH_DECSTATION bool "Support for DECstations" + select DMA_NONCOHERENT select IRQ_CPU depends on MIPS32 || EXPERIMENTAL ---help--- @@ -148,6 +173,7 @@ config MIPS_EV64120 bool "Support for Galileo EV64120 Evaluation board (EXPERIMENTAL)" depends on EXPERIMENTAL + select DMA_NONCOHERENT help This is an evaluation board based on the Galileo GT-64120 single-chip system controller that contains a MIPS R5000 compatible @@ -162,6 +188,7 @@ config MIPS_EV96100 bool "Support for Galileo EV96100 Evaluation board (EXPERIMENTAL)" depends on EXPERIMENTAL + select DMA_NONCOHERENT select IRQ_CPU select MIPS_GT96100 select RM7000_CPU_SCACHE @@ -173,6 +200,7 @@ config MIPS_IVR bool "Support for Globespan IVR board" + select DMA_NONCOHERENT help This is an evaluation board built by Globespan to showcase thir iVR (Internet Video Recorder) design. It utilizes a QED RM5231 @@ -182,6 +210,7 @@ config LASAT bool "Support for LASAT Networks platforms" + select DMA_NONCOHERENT select R5000_CPU_SCACHE config PICVUE @@ -203,10 +232,12 @@ config HP_LASERJET bool "Support for Hewlett Packard LaserJet board" depends on BROKEN + select DMA_NONCOHERENT select IRQ_CPU config MIPS_ITE8172 bool "Support for ITE 8172G board" + select DMA_NONCOHERENT help Ths is an evaluation board made by ITE with ATX form factor that utilizes a MIPS R5000 to work with its @@ -225,6 +256,7 @@ config MIPS_ATLAS bool "Support for MIPS Atlas board" + select DMA_NONCOHERENT help This enables support for the QED R5231-based MIPS Atlas evaluation board. @@ -232,17 +264,20 @@ config MIPS_MALTA bool "Support for MIPS Malta board" select HAVE_STD_PC_SERIAL_PORT + select DMA_NONCOHERENT help This enables support for the VR5000-based MIPS Malta evaluation board. config MIPS_SEAD bool "Support for MIPS SEAD board (EXPERIMENTAL)" - select IRQ_CPU depends on EXPERIMENTAL + select IRQ_CPU + select DMA_NONCOHERENT config MOMENCO_OCELOT bool "Support for Momentum Ocelot board" + select DMA_NONCOHERENT select IRQ_CPU select IRQ_CPU_RM7K select RM7000_CPU_SCACHE @@ -252,6 +287,7 @@ config MOMENCO_OCELOT_G bool "Support for Momentum Ocelot-G board" + select DMA_NONCOHERENT select IRQ_CPU select IRQ_CPU_RM7K select RM7000_CPU_SCACHE @@ -261,6 +297,7 @@ config MOMENCO_OCELOT_C bool "Support for Momentum Ocelot-C board" + select DMA_NONCOHERENT select IRQ_CPU select RM7000_CPU_SCACHE help @@ -269,6 +306,7 @@ config MOMENCO_JAGUAR_ATX bool "Support for Momentum Jaguar board" + select DMA_NONCOHERENT select IRQ_CPU select IRQ_CPU_RM7K select LIMITED_DMA @@ -286,6 +324,7 @@ config PMC_YOSEMITE bool "Support for PMC-Sierra Yosemite eval board" + select DMA_NONCOHERENT help Yosemite is an evaluation board for the RM9000x2 processor manufactured by PMC-Sierra @@ -297,6 +336,7 @@ config DDB5074 bool "Support for NEC DDB Vrc-5074 (EXPERIMENTAL)" depends on EXPERIMENTAL + select DMA_NONCOHERENT select HAVE_STD_PC_SERIAL_PORT select IRQ_CPU select ISA @@ -306,6 +346,7 @@ config DDB5476 bool "Support for NEC DDB Vrc-5476" + select DMA_NONCOHERENT select HAVE_STD_PC_SERIAL_PORT select IRQ_CPU select ISA @@ -319,6 +360,7 @@ config DDB5477 bool "Support for NEC DDB Vrc-5477" + select DMA_NONCOHERENT select IRQ_CPU help This enables support for the R5432-based NEC DDB Vrc-5477, @@ -334,10 +376,12 @@ config NEC_OSPREY bool "Support for NEC Osprey board" + select DMA_NONCOHERENT select IRQ_CPU config SGI_IP22 bool "Support for SGI IP22 (Indy/Indigo2)" + select DMA_NONCOHERENT select IP22_CPU_SCACHE select IRQ_CPU help @@ -348,6 +392,7 @@ config SGI_IP27 bool "Support for SGI IP27 (Origin200/2000)" depends on MIPS64 + select DMA_IP27 help This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics workstations. To compile a Linux kernel that runs on these, say Y @@ -411,6 +456,7 @@ config SGI_IP32 bool "Support for SGI IP32 (O2) (EXPERIMENTAL)" depends on EXPERIMENTAL + select DMA_NONCOHERENT select R5000_CPU_SCACHE select RM7000_CPU_SCACHE help @@ -452,30 +498,37 @@ config MIPS_PB1000 bool "PB1000 board" depends on SOC_AU1000 + select DMA_NONCOHERENT config MIPS_PB1100 bool "PB1100 board" depends on SOC_AU1100 + select DMA_NONCOHERENT config MIPS_PB1500 bool "PB1500 board" depends on SOC_AU1500 + select DMA_NONCOHERENT config MIPS_PB1550 bool "PB1550 board" depends on SOC_AU1550 + select DMA_NONCOHERENT config MIPS_DB1000 bool "DB1000 board" depends on SOC_AU1000 + select DMA_NONCOHERENT config MIPS_DB1100 bool "DB1100 board" depends on SOC_AU1100 + select DMA_NONCOHERENT config MIPS_DB1500 bool "DB1500 board" depends on SOC_AU1500 + select DMA_NONCOHERENT config MIPS_DB1550 bool "DB1550 board" @@ -484,24 +537,29 @@ config MIPS_BOSPORUS bool "Bosporus board" depends on SOC_AU1500 + select DMA_NONCOHERENT config MIPS_MIRAGE bool "Mirage board" depends on SOC_AU1500 + select DMA_NONCOHERENT config MIPS_XXS1500 bool "MyCable XXS1500 board" depends on SOC_AU1500 + select DMA_NONCOHERENT config MIPS_MTX1 bool "4G Systems MTX-1 board" depends on SOC_AU1500 + select DMA_NONCOHERENT endchoice config SIBYTE_SB1xxx_SOC bool "Support for Broadcom BCM1xxx SOCs (EXPERIMENTAL)" depends on EXPERIMENTAL + select DMA_COHERENT choice prompt "BCM1xxx SOC-based board" @@ -710,6 +768,7 @@ config SNI_RM200_PCI bool "Support for SNI RM200 PCI" + select DMA_NONCOHERENT select HAVE_STD_PC_SERIAL_PORT select ISA help @@ -720,8 +779,9 @@ config TOSHIBA_RBTX4927 bool "Support for Toshiba TBTX49[23]7 board" - select ISA depends on MIPS32 + select DMA_NONCOHERENT + select ISA config RWSEM_GENERIC_SPINLOCK bool @@ -744,18 +804,12 @@ config DMA_COHERENT bool - depends on SIBYTE_SB1xxx_SOC - default y config DMA_IP27 bool - depends on SGI_IP27 - default y config DMA_NONCOHERENT bool - depends on ZAO_CAPCELLA || VICTOR_MPC30X || TOSHIBA_JMR3927 || TOSHIBA_RBTX4927 || SNI_RM200_PCI || SGI_IP32 || SGI_IP22 || NEC_EAGLE || NEC_OSPREY || DDB5477 || DDB5476 || DDB5074 || MOMENCO_OCELOT || MOMENCO_OCELOT_C || MOMENCO_OCELOT_G || MOMENCO_JAGUAR_ATX || MIPS_BOSPORUS || MIPS_DB1000 || MIPS_DB1100 || MIPS_DB1500 || MIPS_SEAD || MIPS_MALTA || MIPS_MAGNUM_4000 || MIPS_MIRAGE || MIPS_MTX1 || MIPS_XXS1500 || OLIVETTI_M700 || MIPS_ATLAS || LASAT || MIPS_ITE8172 || IBM_WORKPAD || HP_LASERJET || MIPS_IVR || MIPS_EV96100 || MIPS_EV64120 || MACH_DECSTATION || MIPS_COBALT || MIPS_PB1500 || MIPS_PB1100 || MIPS_PB1000 || MIPS_PB1550 || CASIO_E55 || ACER_PICA_61 || TANBAC_TB0226 || TANBAC_TB0229 - default y config EARLY_PRINTK bool @@ -811,14 +865,6 @@ depends on ZAO_CAPCELLA || VICTOR_MPC30X || SIBYTE_SB1xxx_SOC || NEC_EAGLE || NEC_OSPREY || DDB5477 || CASIO_E55 || TANBAC_TB0226 || TANBAC_TB0229 default y -config VRC4171 - tristate "NEC VRC4171 Support" - depends on IBM_WORKPAD - -config VRC4173 - tristate "NEC VRC4173 Support" - depends on NEC_EAGLE || VICTOR_MPC30X - config DDB5XXX_COMMON bool depends on DDB5074 || DDB5476 || DDB5477 @@ -1170,7 +1216,7 @@ config CPU_HAS_PREFETCH bool "Enable prefetches" if CPU_SB1 && !CPU_SB1_PASS_2 - default y if CPU_MIPS32 || CPU_MIPS64 || CPU_RM7000 || CPU_RM9000 + default y if CPU_MIPS32 || CPU_MIPS64 || CPU_RM7000 || CPU_RM9000 || CPU_R10000 config VTAG_ICACHE bool "Support for Virtual Tagged I-cache" if CPU_MIPS64 || CPU_MIPS32 diff -Nru a/arch/mips/au1000/common/Makefile b/arch/mips/au1000/common/Makefile --- a/arch/mips/au1000/common/Makefile Tue May 18 23:38:09 2004 +++ b/arch/mips/au1000/common/Makefile Tue May 18 23:38:09 2004 @@ -7,7 +7,7 @@ # obj-y += prom.o int-handler.o irq.o puts.o time.o reset.o \ - au1xxx_irqmap.o clocks.o power.o setup.o sleeper.o + au1xxx_irqmap.o clocks.o power.o setup.o sleeper.o cputable.o obj-$(CONFIG_AU1X00_USB_DEVICE) += usbdev.o obj-$(CONFIG_KGDB) += dbg_io.o diff -Nru a/arch/mips/au1000/common/cputable.c b/arch/mips/au1000/common/cputable.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/mips/au1000/common/cputable.c Tue May 18 23:38:09 2004 @@ -0,0 +1,56 @@ +/* + * arch/mips/au1000/common/cputable.c + * + * Copyright (C) 2004 Dan Malek (dan@embeddededge.com) + * Copied from PowerPC and updated for Alchemy Au1xxx processors. + * + * Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include + +struct cpu_spec* cur_cpu_spec[NR_CPUS]; + +/* With some thought, we can probably use the mask to reduce the + * size of the table. + */ +struct cpu_spec cpu_specs[] = { + { 0xffffffff, 0x00030100, "Au1000 DA", 1, 0 }, + { 0xffffffff, 0x00030201, "Au1000 HA", 1, 0 }, + { 0xffffffff, 0x00030202, "Au1000 HB", 1, 0 }, + { 0xffffffff, 0x00030203, "Au1000 HC", 1, 1 }, + { 0xffffffff, 0x00030204, "Au1000 HD", 1, 1 }, + { 0xffffffff, 0x01030200, "Au1500 AB", 1, 1 }, + { 0xffffffff, 0x01030201, "Au1500 AC", 0, 1 }, + { 0xffffffff, 0x01030202, "Au1500 AD", 0, 1 }, + { 0xffffffff, 0x02030200, "Au1100 AB", 1, 1 }, + { 0xffffffff, 0x02030201, "Au1100 BA", 1, 1 }, + { 0xffffffff, 0x02030202, "Au1100 BC", 1, 1 }, + { 0xffffffff, 0x02030203, "Au1100 BD", 0, 1 }, + { 0xffffffff, 0x02030204, "Au1100 BE", 0, 1 }, + { 0xffffffff, 0x03030200, "Au1550 AA", 0, 1 }, + { 0x00000000, 0x00000000, "Unknown Au1xxx", 1, 0 }, +}; + +void +set_cpuspec(void) +{ + struct cpu_spec *sp; + u32 prid; + + prid = read_c0_prid(); + sp = cpu_specs; + while ((prid & sp->prid_mask) != sp->prid_value) + sp++; + cur_cpu_spec[0] = sp; +} diff -Nru a/arch/mips/au1000/common/power.c b/arch/mips/au1000/common/power.c --- a/arch/mips/au1000/common/power.c Tue May 18 23:38:09 2004 +++ b/arch/mips/au1000/common/power.c Tue May 18 23:38:09 2004 @@ -320,7 +320,7 @@ unsigned long val, pll; #define TMPBUFLEN 64 #define MAX_CPU_FREQ 396 - char buf[8], *p; + char buf[TMPBUFLEN], *p; unsigned long flags, intc0_mask, intc1_mask; unsigned long old_baud_base, old_cpu_freq, baud_rate, old_clk, old_refresh; diff -Nru a/arch/mips/au1000/common/setup.c b/arch/mips/au1000/common/setup.c --- a/arch/mips/au1000/common/setup.c Tue May 18 23:38:09 2004 +++ b/arch/mips/au1000/common/setup.c Tue May 18 23:38:09 2004 @@ -65,40 +65,20 @@ static int __init au1x00_setup(void) { + struct cpu_spec *sp; char *argptr; unsigned long prid, cpupll, bclk = 1; - /* Various early Au1000 Errata corrected by this */ - set_c0_config(1<<19); /* Config[OD] */ + set_cpuspec(); + sp = cur_cpu_spec[0]; board_setup(); /* board specific setup */ prid = read_c0_prid(); - switch (prid) - { - case 0x00030100: printk("Au1000 DA "); bclk = 0; break; - case 0x00030201: printk("Au1000 HA "); bclk = 0; break; - case 0x00030202: printk("Au1000 HB "); bclk = 0; break; - case 0x00030203: printk("Au1000 HC "); break; - case 0x00030204: printk("Au1000 HD "); break; - - case 0x01030200: printk("Au1500 AB "); break; - case 0x01030201: printk("Au1500 AC "); break; - case 0x01030202: printk("Au1500 AD "); break; - - case 0x02030200: printk("Au1100 AB "); break; - case 0x02030201: printk("Au1100 BA "); break; - case 0x02030202: printk("Au1100 BC "); break; - case 0x02030203: printk("Au1100 BD "); break; - case 0x02030204: printk("Au1100 BE "); break; - - case 0x03030200: printk("Au1550 AA "); break; - - default: printk("Unknown Au1x00! "); bclk = 0; break; - } cpupll = (au_readl(0xB1900060) & 0x3F) * 12; printk("(PRId %08X) @ %dMHZ\n", prid, cpupll); + bclk = sp->cpu_bclk; if (bclk) { /* Enable BCLK switching */ @@ -106,6 +86,15 @@ au_writel(bclk | 0x60, 0xB190003C); printk("BCLK switching enabled!\n"); } + + if (sp->cpu_od) { + /* Various early Au1000 Errata corrected by this */ + set_c0_config(1<<19); /* Set Config[OD] */ + } + else { + /* Clear to obtain best system bus performance */ + clear_c0_config(1<<19); /* Clear Config[OD] */ + } argptr = prom_getcmdline(); diff -Nru a/arch/mips/configs/atlas_defconfig b/arch/mips/configs/atlas_defconfig --- a/arch/mips/configs/atlas_defconfig Tue May 18 23:38:09 2004 +++ b/arch/mips/configs/atlas_defconfig Tue May 18 23:38:09 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -289,8 +292,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -300,7 +301,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -321,12 +324,12 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -334,6 +337,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -359,7 +367,6 @@ # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set -# CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set @@ -367,10 +374,12 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set +# CONFIG_S2IO is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set # # Wireless LAN (non-hamradio) @@ -378,37 +387,19 @@ # CONFIG_NET_RADIO is not set # -# Token Ring devices +# Wan interfaces # -# CONFIG_TR is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set # CONFIG_NET_FC is not set # CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # -# Wan interfaces -# -# CONFIG_WAN is not set - -# -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support -# -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set - -# # ISDN subsystem # # CONFIG_ISDN is not set @@ -582,6 +573,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/bosporus_defconfig b/arch/mips/configs/bosporus_defconfig --- a/arch/mips/configs/bosporus_defconfig Tue May 18 23:38:08 2004 +++ b/arch/mips/configs/bosporus_defconfig Tue May 18 23:38:08 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 CONFIG_HOTPLUG=y # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -231,8 +234,6 @@ # # CONFIG_IP_VS is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -253,7 +254,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -274,6 +277,11 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set @@ -294,31 +302,15 @@ # # Ethernet (10000 Mbit) # -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -# CONFIG_PPP_FILTER is not set -CONFIG_PPP_ASYNC=m -# CONFIG_PPP_SYNC_TTY is not set -CONFIG_PPP_DEFLATE=m -# CONFIG_PPP_BSDCOMP is not set -CONFIG_PPPOE=m -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set # # Token Ring devices # -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set # -# Wan interfaces +# Wireless LAN (non-hamradio) # -# CONFIG_WAN is not set +# CONFIG_NET_RADIO is not set # # PCMCIA network device support @@ -334,21 +326,20 @@ # CONFIG_PCMCIA_AXNET is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +# CONFIG_PPP_BSDCOMP is not set +CONFIG_PPPOE=m +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -531,6 +522,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/capcella_defconfig b/arch/mips/configs/capcella_defconfig --- a/arch/mips/configs/capcella_defconfig Tue May 18 23:38:06 2004 +++ b/arch/mips/configs/capcella_defconfig Tue May 18 23:38:06 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -56,6 +59,7 @@ # CONFIG_TANBAC_TB0229 is not set # CONFIG_VICTOR_MPC30X is not set CONFIG_ZAO_CAPCELLA=y +# CONFIG_VRC4173 is not set # CONFIG_TOSHIBA_JMR3927 is not set # CONFIG_MIPS_COBALT is not set # CONFIG_MACH_DECSTATION is not set @@ -251,8 +255,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -262,7 +264,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -283,12 +287,12 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -296,6 +300,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -321,7 +330,6 @@ # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set -# CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set @@ -329,45 +337,29 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set +# CONFIG_S2IO is not set # # Token Ring devices # # CONFIG_TR is not set -# CONFIG_RCPCI is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support +# Wireless LAN (non-hamradio) # -# CONFIG_IRDA is not set +# CONFIG_NET_RADIO is not set # -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -555,6 +547,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/cobalt_defconfig b/arch/mips/configs/cobalt_defconfig --- a/arch/mips/configs/cobalt_defconfig Tue May 18 23:38:06 2004 +++ b/arch/mips/configs/cobalt_defconfig Tue May 18 23:38:06 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -240,8 +243,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -251,7 +252,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -272,12 +275,12 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -285,6 +288,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -310,7 +318,6 @@ # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set -# CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set @@ -318,45 +325,29 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set +# CONFIG_S2IO is not set # # Token Ring devices # # CONFIG_TR is not set -# CONFIG_RCPCI is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support +# Wireless LAN (non-hamradio) # -# CONFIG_IRDA is not set +# CONFIG_NET_RADIO is not set # -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -535,6 +526,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/db1000_defconfig b/arch/mips/configs/db1000_defconfig --- a/arch/mips/configs/db1000_defconfig Tue May 18 23:38:07 2004 +++ b/arch/mips/configs/db1000_defconfig Tue May 18 23:38:07 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 CONFIG_HOTPLUG=y # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -250,8 +253,6 @@ # # CONFIG_IP_VS is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -272,7 +273,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -293,6 +296,11 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set @@ -314,31 +322,15 @@ # # Ethernet (10000 Mbit) # -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -# CONFIG_PPP_FILTER is not set -CONFIG_PPP_ASYNC=m -# CONFIG_PPP_SYNC_TTY is not set -CONFIG_PPP_DEFLATE=m -# CONFIG_PPP_BSDCOMP is not set -CONFIG_PPPOE=m -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set # # Token Ring devices # -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set # -# Wan interfaces +# Wireless LAN (non-hamradio) # -# CONFIG_WAN is not set +# CONFIG_NET_RADIO is not set # # PCMCIA network device support @@ -354,21 +346,20 @@ # CONFIG_PCMCIA_AXNET is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +# CONFIG_PPP_BSDCOMP is not set +CONFIG_PPPOE=m +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -557,6 +548,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/db1100_defconfig b/arch/mips/configs/db1100_defconfig --- a/arch/mips/configs/db1100_defconfig Tue May 18 23:38:06 2004 +++ b/arch/mips/configs/db1100_defconfig Tue May 18 23:38:06 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 CONFIG_HOTPLUG=y # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -249,8 +252,6 @@ # # CONFIG_IP_VS is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -271,7 +272,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -292,6 +295,11 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set @@ -313,31 +321,15 @@ # # Ethernet (10000 Mbit) # -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -# CONFIG_PPP_FILTER is not set -CONFIG_PPP_ASYNC=m -# CONFIG_PPP_SYNC_TTY is not set -CONFIG_PPP_DEFLATE=m -# CONFIG_PPP_BSDCOMP is not set -CONFIG_PPPOE=m -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set # # Token Ring devices # -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set # -# Wan interfaces +# Wireless LAN (non-hamradio) # -# CONFIG_WAN is not set +# CONFIG_NET_RADIO is not set # # PCMCIA network device support @@ -353,21 +345,20 @@ # CONFIG_PCMCIA_AXNET is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +# CONFIG_PPP_BSDCOMP is not set +CONFIG_PPPOE=m +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -553,6 +544,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/db1500_defconfig b/arch/mips/configs/db1500_defconfig --- a/arch/mips/configs/db1500_defconfig Tue May 18 23:38:06 2004 +++ b/arch/mips/configs/db1500_defconfig Tue May 18 23:38:06 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 CONFIG_HOTPLUG=y # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -329,8 +332,6 @@ # # CONFIG_IP_VS is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -351,7 +352,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -372,6 +375,11 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set @@ -393,31 +401,15 @@ # # Ethernet (10000 Mbit) # -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -# CONFIG_PPP_FILTER is not set -CONFIG_PPP_ASYNC=m -# CONFIG_PPP_SYNC_TTY is not set -CONFIG_PPP_DEFLATE=m -# CONFIG_PPP_BSDCOMP is not set -CONFIG_PPPOE=m -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set # # Token Ring devices # -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set # -# Wan interfaces +# Wireless LAN (non-hamradio) # -# CONFIG_WAN is not set +# CONFIG_NET_RADIO is not set # # PCMCIA network device support @@ -433,21 +425,20 @@ # CONFIG_PCMCIA_AXNET is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +# CONFIG_PPP_BSDCOMP is not set +CONFIG_PPPOE=m +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -627,6 +618,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/ddb5476_defconfig b/arch/mips/configs/ddb5476_defconfig --- a/arch/mips/configs/ddb5476_defconfig Tue May 18 23:38:06 2004 +++ b/arch/mips/configs/ddb5476_defconfig Tue May 18 23:38:06 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -251,8 +254,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -262,7 +263,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -283,12 +286,12 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -296,6 +299,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -328,7 +336,6 @@ # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set -# CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set @@ -336,45 +343,29 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set +# CONFIG_S2IO is not set # # Token Ring devices # # CONFIG_TR is not set -# CONFIG_RCPCI is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support +# Wireless LAN (non-hamradio) # -# CONFIG_IRDA is not set +# CONFIG_NET_RADIO is not set # -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -573,6 +564,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/ddb5477_defconfig b/arch/mips/configs/ddb5477_defconfig --- a/arch/mips/configs/ddb5477_defconfig Tue May 18 23:38:08 2004 +++ b/arch/mips/configs/ddb5477_defconfig Tue May 18 23:38:08 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -221,8 +224,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -232,7 +233,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -253,12 +256,12 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -266,6 +269,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -310,7 +318,6 @@ # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set -# CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set @@ -318,45 +325,29 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set +# CONFIG_S2IO is not set # # Token Ring devices # # CONFIG_TR is not set -# CONFIG_RCPCI is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support +# Wireless LAN (non-hamradio) # -# CONFIG_IRDA is not set +# CONFIG_NET_RADIO is not set # -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -532,6 +523,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/decstation_defconfig b/arch/mips/configs/decstation_defconfig --- a/arch/mips/configs/decstation_defconfig Tue May 18 23:38:08 2004 +++ b/arch/mips/configs/decstation_defconfig Tue May 18 23:38:08 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -247,8 +250,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -258,7 +259,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -279,6 +282,11 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set @@ -300,41 +308,24 @@ # # Ethernet (10000 Mbit) # -# CONFIG_PPP is not set -# CONFIG_SLIP is not set # -# Wireless LAN (non-hamradio) +# Token Ring devices # -# CONFIG_NET_RADIO is not set # -# Token Ring devices +# Wireless LAN (non-hamradio) # -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set +# CONFIG_NET_RADIO is not set # # Wan interfaces # # CONFIG_WAN is not set - -# -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support -# -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -511,6 +502,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/e55_defconfig b/arch/mips/configs/e55_defconfig --- a/arch/mips/configs/e55_defconfig Tue May 18 23:38:06 2004 +++ b/arch/mips/configs/e55_defconfig Tue May 18 23:38:06 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -56,6 +59,7 @@ # CONFIG_TANBAC_TB0229 is not set # CONFIG_VICTOR_MPC30X is not set # CONFIG_ZAO_CAPCELLA is not set +# CONFIG_VRC4171 is not set # CONFIG_TOSHIBA_JMR3927 is not set # CONFIG_MIPS_COBALT is not set # CONFIG_MACH_DECSTATION is not set @@ -246,8 +250,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -257,7 +259,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -278,12 +282,12 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -291,6 +295,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -313,42 +322,25 @@ # # Ethernet (10000 Mbit) # -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set # # Token Ring devices # # CONFIG_TR is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set - -# -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set # -# IrDA (infrared) support +# Wireless LAN (non-hamradio) # -# CONFIG_IRDA is not set +# CONFIG_NET_RADIO is not set # -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -535,6 +527,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/eagle_defconfig b/arch/mips/configs/eagle_defconfig --- a/arch/mips/configs/eagle_defconfig Tue May 18 23:38:05 2004 +++ b/arch/mips/configs/eagle_defconfig Tue May 18 23:38:05 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 CONFIG_HOTPLUG=y # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -56,6 +59,7 @@ # CONFIG_TANBAC_TB0229 is not set # CONFIG_VICTOR_MPC30X is not set # CONFIG_ZAO_CAPCELLA is not set +CONFIG_VRC4173=y # CONFIG_TOSHIBA_JMR3927 is not set # CONFIG_MIPS_COBALT is not set # CONFIG_MACH_DECSTATION is not set @@ -88,7 +92,6 @@ CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y CONFIG_DUMMY_KEYB=y -CONFIG_VRC4173=y CONFIG_MIPS_L1_CACHE_SHIFT=5 # CONFIG_FB is not set @@ -329,8 +332,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -340,7 +341,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -361,12 +364,12 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -374,6 +377,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -399,7 +407,6 @@ # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set -# CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set @@ -407,28 +414,17 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set +# CONFIG_S2IO is not set # # Token Ring devices # # CONFIG_TR is not set -# CONFIG_RCPCI is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set # -# Wan interfaces +# Wireless LAN (non-hamradio) # -# CONFIG_WAN is not set +# CONFIG_NET_RADIO is not set # # PCMCIA network device support @@ -444,21 +440,16 @@ # CONFIG_PCMCIA_AXNET is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -652,6 +643,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/ev64120_defconfig b/arch/mips/configs/ev64120_defconfig --- a/arch/mips/configs/ev64120_defconfig Tue May 18 23:38:06 2004 +++ b/arch/mips/configs/ev64120_defconfig Tue May 18 23:38:06 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -227,8 +230,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -238,7 +239,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -259,12 +262,12 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -272,6 +275,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -297,7 +305,6 @@ # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set -# CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set @@ -305,6 +312,22 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set +# CONFIG_S2IO is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set CONFIG_PPP=y @@ -316,43 +339,11 @@ # CONFIG_PPP_BSDCOMP is not set # CONFIG_PPPOE is not set # CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set - -# -# Token Ring devices -# -# CONFIG_TR is not set # CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # -# Wan interfaces -# -# CONFIG_WAN is not set - -# -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support -# -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set - -# # ISDN subsystem # # CONFIG_ISDN is not set @@ -526,6 +517,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/ev96100_defconfig b/arch/mips/configs/ev96100_defconfig --- a/arch/mips/configs/ev96100_defconfig Tue May 18 23:38:08 2004 +++ b/arch/mips/configs/ev96100_defconfig Tue May 18 23:38:08 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -220,8 +223,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -231,7 +232,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -252,6 +255,11 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set @@ -273,41 +281,24 @@ # # Ethernet (10000 Mbit) # -# CONFIG_PPP is not set -# CONFIG_SLIP is not set # -# Wireless LAN (non-hamradio) +# Token Ring devices # -# CONFIG_NET_RADIO is not set # -# Token Ring devices +# Wireless LAN (non-hamradio) # -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set +# CONFIG_NET_RADIO is not set # # Wan interfaces # # CONFIG_WAN is not set - -# -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support -# -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -481,6 +472,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/ip22_defconfig b/arch/mips/configs/ip22_defconfig --- a/arch/mips/configs/ip22_defconfig Tue May 18 23:38:06 2004 +++ b/arch/mips/configs/ip22_defconfig Tue May 18 23:38:06 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set CONFIG_IKCONFIG=y @@ -32,6 +34,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -298,8 +301,6 @@ CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_TUNNEL=m -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -359,6 +360,8 @@ CONFIG_IP_NF_ARP_MANGLE=m CONFIG_IP_NF_COMPAT_IPCHAINS=m CONFIG_IP_NF_COMPAT_IPFWADM=m +CONFIG_IP_NF_TARGET_NOTRACK=m +CONFIG_IP_NF_RAW=m # # IPv6: Netfilter Configuration @@ -382,6 +385,7 @@ CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_TARGET_MARK=m +CONFIG_IP6_NF_RAW=m CONFIG_XFRM=y CONFIG_XFRM_USER=m @@ -395,7 +399,9 @@ # CONFIG_SCTP_HMAC_SHA1 is not set CONFIG_SCTP_HMAC_MD5=y # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -440,6 +446,11 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y CONFIG_DUMMY=m CONFIG_BONDING=m @@ -461,41 +472,24 @@ # # Ethernet (10000 Mbit) # -# CONFIG_PPP is not set -# CONFIG_SLIP is not set # -# Wireless LAN (non-hamradio) +# Token Ring devices # -# CONFIG_NET_RADIO is not set # -# Token Ring devices +# Wireless LAN (non-hamradio) # -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set +# CONFIG_NET_RADIO is not set # # Wan interfaces # # CONFIG_WAN is not set - -# -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support -# -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -709,6 +703,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig --- a/arch/mips/configs/ip27_defconfig Tue May 18 23:38:06 2004 +++ b/arch/mips/configs/ip27_defconfig Tue May 18 23:38:06 2004 @@ -17,8 +17,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=15 # CONFIG_HOTPLUG is not set CONFIG_IKCONFIG=y @@ -30,6 +32,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -112,6 +115,7 @@ CONFIG_PAGE_SIZE_4KB=y # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set +CONFIG_CPU_HAS_PREFETCH=y CONFIG_CPU_HAS_LLSC=y CONFIG_CPU_HAS_LLDSCD=y CONFIG_CPU_HAS_SYNC=y @@ -206,7 +210,7 @@ # # SCSI Transport Attributes # -CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SPI_ATTRS=y # CONFIG_SCSI_FC_ATTRS is not set # @@ -293,8 +297,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -304,7 +306,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -320,40 +324,40 @@ # QoS and/or fair queueing # CONFIG_NET_SCHED=y -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_CSZ=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_DSMARK=m -CONFIG_NET_SCH_DELAY=m +CONFIG_NET_SCH_CBQ=y +CONFIG_NET_SCH_HTB=y +CONFIG_NET_SCH_HFSC=y +CONFIG_NET_SCH_CSZ=y +CONFIG_NET_SCH_PRIO=y +CONFIG_NET_SCH_RED=y +CONFIG_NET_SCH_SFQ=y +CONFIG_NET_SCH_TEQL=y +CONFIG_NET_SCH_TBF=y +CONFIG_NET_SCH_GRED=y +CONFIG_NET_SCH_DSMARK=y +CONFIG_NET_SCH_DELAY=y CONFIG_NET_QOS=y CONFIG_NET_ESTIMATOR=y CONFIG_NET_CLS=y -CONFIG_NET_CLS_TCINDEX=m -CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_TCINDEX=y +CONFIG_NET_CLS_ROUTE4=y CONFIG_NET_CLS_ROUTE=y -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_U32=m -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FW=y +CONFIG_NET_CLS_U32=y +CONFIG_NET_CLS_RSVP=y +CONFIG_NET_CLS_RSVP6=y CONFIG_NET_CLS_POLICE=y # # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -361,6 +365,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -389,7 +398,6 @@ # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set -# CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set @@ -397,45 +405,29 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set +# CONFIG_S2IO is not set # # Token Ring devices # # CONFIG_TR is not set -# CONFIG_NET_FC is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support +# Wireless LAN (non-hamradio) # -# CONFIG_IRDA is not set +# CONFIG_NET_RADIO is not set # -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_NET_FC is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -602,6 +594,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y @@ -691,27 +684,27 @@ # CONFIG_CRYPTO=y CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_NULL=m -CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_MD4=y CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_ARC4=m -CONFIG_CRYPTO_DEFLATE=m -CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_BLOWFISH=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_SERPENT=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_CAST5=y +CONFIG_CRYPTO_CAST6=y +CONFIG_CRYPTO_ARC4=y +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_MICHAEL_MIC=y # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y -CONFIG_ZLIB_INFLATE=m -CONFIG_ZLIB_DEFLATE=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defconfig --- a/arch/mips/configs/ip32_defconfig Tue May 18 23:38:06 2004 +++ b/arch/mips/configs/ip32_defconfig Tue May 18 23:38:06 2004 @@ -18,8 +18,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -30,6 +32,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -289,8 +292,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -300,7 +301,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -321,12 +324,12 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -334,6 +337,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -360,7 +368,6 @@ # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set -# CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set @@ -368,45 +375,29 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set +# CONFIG_S2IO is not set # # Token Ring devices # # CONFIG_TR is not set -# CONFIG_NET_FC is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support +# Wireless LAN (non-hamradio) # -# CONFIG_IRDA is not set +# CONFIG_NET_RADIO is not set # -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_NET_FC is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -583,6 +574,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/it8172_defconfig b/arch/mips/configs/it8172_defconfig --- a/arch/mips/configs/it8172_defconfig Tue May 18 23:38:06 2004 +++ b/arch/mips/configs/it8172_defconfig Tue May 18 23:38:06 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -294,8 +297,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -305,7 +306,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -326,6 +329,11 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set @@ -346,41 +354,24 @@ # # Ethernet (10000 Mbit) # -# CONFIG_PPP is not set -# CONFIG_SLIP is not set # -# Wireless LAN (non-hamradio) +# Token Ring devices # -# CONFIG_NET_RADIO is not set # -# Token Ring devices +# Wireless LAN (non-hamradio) # -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set +# CONFIG_NET_RADIO is not set # # Wan interfaces # # CONFIG_WAN is not set - -# -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support -# -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -580,6 +571,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/ivr_defconfig b/arch/mips/configs/ivr_defconfig --- a/arch/mips/configs/ivr_defconfig Tue May 18 23:38:06 2004 +++ b/arch/mips/configs/ivr_defconfig Tue May 18 23:38:06 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -245,8 +248,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -256,7 +257,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -277,12 +280,12 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -290,6 +293,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -315,7 +323,6 @@ # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set -# CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set @@ -323,45 +330,29 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set +# CONFIG_S2IO is not set # # Token Ring devices # # CONFIG_TR is not set -# CONFIG_RCPCI is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support +# Wireless LAN (non-hamradio) # -# CONFIG_IRDA is not set +# CONFIG_NET_RADIO is not set # -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -538,6 +529,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/jaguar-atx_defconfig b/arch/mips/configs/jaguar-atx_defconfig --- a/arch/mips/configs/jaguar-atx_defconfig Tue May 18 23:38:09 2004 +++ b/arch/mips/configs/jaguar-atx_defconfig Tue May 18 23:38:09 2004 @@ -21,6 +21,7 @@ CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set CONFIG_IKCONFIG=y @@ -32,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -219,10 +221,10 @@ # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -236,16 +238,21 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set # # ARCnet devices # # CONFIG_ARCNET is not set -# CONFIG_DUMMY is not set -# CONFIG_BONDING is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set # # Ethernet (10 or 100Mbit) @@ -299,14 +306,7 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set -# CONFIG_FDDI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set +# CONFIG_S2IO is not set # # Token Ring devices @@ -314,26 +314,17 @@ # CONFIG_TR is not set # -# Wan interfaces -# -# CONFIG_WAN is not set - -# -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support +# Wireless LAN (non-hamradio) # -# CONFIG_IRDA is not set +# CONFIG_NET_RADIO is not set # -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set # # ISDN subsystem @@ -483,6 +474,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVPTS_FS_XATTR is not set # CONFIG_TMPFS is not set # CONFIG_HUGETLB_PAGE is not set diff -Nru a/arch/mips/configs/jmr3927_defconfig b/arch/mips/configs/jmr3927_defconfig --- a/arch/mips/configs/jmr3927_defconfig Tue May 18 23:38:06 2004 +++ b/arch/mips/configs/jmr3927_defconfig Tue May 18 23:38:06 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -219,8 +222,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -230,7 +231,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -251,12 +254,12 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -264,6 +267,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -289,7 +297,6 @@ # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set -# CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set @@ -297,45 +304,29 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set +# CONFIG_S2IO is not set # # Token Ring devices # # CONFIG_TR is not set -# CONFIG_RCPCI is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support +# Wireless LAN (non-hamradio) # -# CONFIG_IRDA is not set +# CONFIG_NET_RADIO is not set # -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -547,6 +538,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set # CONFIG_TMPFS is not set # CONFIG_HUGETLB_PAGE is not set diff -Nru a/arch/mips/configs/lasat200_defconfig b/arch/mips/configs/lasat200_defconfig --- a/arch/mips/configs/lasat200_defconfig Tue May 18 23:38:08 2004 +++ b/arch/mips/configs/lasat200_defconfig Tue May 18 23:38:08 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -334,8 +337,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -345,7 +346,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -366,16 +369,21 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set # # ARCnet devices # # CONFIG_ARCNET is not set -# CONFIG_DUMMY is not set -# CONFIG_BONDING is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set # # Ethernet (10 or 100Mbit) @@ -403,7 +411,6 @@ # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set -# CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set @@ -411,45 +418,29 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set +# CONFIG_S2IO is not set # # Token Ring devices # # CONFIG_TR is not set -# CONFIG_RCPCI is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support +# Wireless LAN (non-hamradio) # -# CONFIG_IRDA is not set +# CONFIG_NET_RADIO is not set # -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -630,6 +621,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/malta_defconfig b/arch/mips/configs/malta_defconfig --- a/arch/mips/configs/malta_defconfig Tue May 18 23:38:08 2004 +++ b/arch/mips/configs/malta_defconfig Tue May 18 23:38:08 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -233,8 +236,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -244,7 +245,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -265,12 +268,12 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -278,6 +281,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -322,7 +330,6 @@ # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set -# CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set @@ -330,45 +337,29 @@ # Ethernet (10000 Mbit) # # CONFIG_IXGB is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set +# CONFIG_S2IO is not set # # Token Ring devices # # CONFIG_TR is not set -# CONFIG_RCPCI is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support +# Wireless LAN (non-hamradio) # -# CONFIG_IRDA is not set +# CONFIG_NET_RADIO is not set # -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -543,6 +534,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/mirage_defconfig b/arch/mips/configs/mirage_defconfig --- a/arch/mips/configs/mirage_defconfig Tue May 18 23:38:08 2004 +++ b/arch/mips/configs/mirage_defconfig Tue May 18 23:38:08 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 CONFIG_HOTPLUG=y # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -231,8 +234,6 @@ # # CONFIG_IP_VS is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -253,7 +254,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -274,6 +277,11 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set @@ -294,31 +302,15 @@ # # Ethernet (10000 Mbit) # -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -# CONFIG_PPP_FILTER is not set -CONFIG_PPP_ASYNC=m -# CONFIG_PPP_SYNC_TTY is not set -CONFIG_PPP_DEFLATE=m -# CONFIG_PPP_BSDCOMP is not set -CONFIG_PPPOE=m -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set # # Token Ring devices # -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set # -# Wan interfaces +# Wireless LAN (non-hamradio) # -# CONFIG_WAN is not set +# CONFIG_NET_RADIO is not set # # PCMCIA network device support @@ -334,21 +326,20 @@ # CONFIG_PCMCIA_AXNET is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +# CONFIG_PPP_BSDCOMP is not set +CONFIG_PPPOE=m +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -531,6 +522,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y CONFIG_DEVPTS_FS_SECURITY=y diff -Nru a/arch/mips/configs/mpc30x_defconfig b/arch/mips/configs/mpc30x_defconfig --- a/arch/mips/configs/mpc30x_defconfig Tue May 18 23:38:09 2004 +++ b/arch/mips/configs/mpc30x_defconfig Tue May 18 23:38:09 2004 @@ -19,8 +19,10 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set @@ -31,6 +33,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -56,6 +59,7 @@ # CONFIG_TANBAC_TB0229 is not set CONFIG_VICTOR_MPC30X=y # CONFIG_ZAO_CAPCELLA is not set +CONFIG_VRC4173=y # CONFIG_TOSHIBA_JMR3927 is not set # CONFIG_MIPS_COBALT is not set # CONFIG_MACH_DECSTATION is not set @@ -88,7 +92,6 @@ CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y CONFIG_DUMMY_KEYB=y -CONFIG_VRC4173=y CONFIG_MIPS_L1_CACHE_SHIFT=5 # CONFIG_FB is not set @@ -123,7 +126,9 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # -# CONFIG_PCI is not set +CONFIG_PCI=y +CONFIG_PCI_LEGACY_PROC=y +CONFIG_PCI_NAMES=y CONFIG_MMU=y # @@ -159,8 +164,13 @@ # Block devices # # CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_LOOP is not set # CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_CARMEL is not set # CONFIG_BLK_DEV_RAM is not set # CONFIG_LBD is not set @@ -182,6 +192,7 @@ # # Fusion MPT device support # +# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -191,6 +202,7 @@ # # I2O device support # +# CONFIG_I2O is not set # # Networking support @@ -221,8 +233,6 @@ # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set @@ -232,7 +242,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -253,6 +265,11 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set @@ -261,53 +278,66 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y # CONFIG_MII is not set +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_NET_VENDOR_3COM is not set # -# Ethernet (1000 Mbit) +# Tulip family network device support # +# CONFIG_NET_TULIP is not set +# CONFIG_HP100 is not set +# CONFIG_NET_PCI is not set # -# Ethernet (10000 Mbit) +# Ethernet (1000 Mbit) # -# CONFIG_PPP is not set -# CONFIG_SLIP is not set +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SK98LIN is not set +# CONFIG_TIGON3 is not set # -# Wireless LAN (non-hamradio) +# Ethernet (10000 Mbit) # -# CONFIG_NET_RADIO is not set +# CONFIG_IXGB is not set +# CONFIG_S2IO is not set # # Token Ring devices # -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set +# CONFIG_TR is not set # -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support +# Wireless LAN (non-hamradio) # -# CONFIG_IRDA is not set +# CONFIG_NET_RADIO is not set # -# Bluetooth support +# Wan interfaces # -# CONFIG_BT is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is no