# This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2004/01/27 07:55:57-08:00 mort@wildopensource.com # [PATCH] Remove sn2 debug printk # # I accidentally left a debug printk in the sn2 timer_interrupt(). # # arch/ia64/sn/kernel/sn2/timer_interrupt.c # 2004/01/27 01:42:06-08:00 mort@wildopensource.com +0 -1 # Remove sn2 debug printk # # ChangeSet # 2004/01/26 22:09:58-08:00 torvalds@home.osdl.org # Merge http://linux-acpi.bkbits.net/linux-acpi-release-2.6.2 # into home.osdl.org:/home/torvalds/v2.5/linux # # arch/i386/kernel/dmi_scan.c # 2004/01/26 22:09:55-08:00 torvalds@home.osdl.org +0 -0 # Auto merged # # drivers/video/console/fbcon.c # 2004/01/26 17:14:00-08:00 jsimmons@infradead.org +1 -1 # fbdev booting fix. # # ChangeSet # 2004/01/26 16:56:00-08:00 torvalds@home.osdl.org # Move exception table sorting much earlier. # # init/main.c # 2004/01/26 16:55:55-08:00 torvalds@home.osdl.org +1 -1 # Move exception table sorting much earlier. # # ChangeSet # 2004/01/26 16:49:28-08:00 eranian@hpl.hp.com # [PATCH] ia64: fix icc compilation # # # arch/ia64/kernel/ia64_ksyms.c # 2004/01/26 05:38:59-08:00 eranian@hpl.hp.com +5 -3 # ia64: fix icc compilation # # Documentation/fb/modedb.txt # 2004/01/26 16:32:23-08:00 jsimmons@infradead.org +2 -2 # fbdev documentation patch # # ChangeSet # 2004/01/26 16:29:24-08:00 iod00d@hp.com # [PATCH] ia64: enable PIOW/DMAR relaxed ordering on ZX1 # # arch/ia64/hp/common/sba_iommu.c # 2004/01/26 00:47:02-08:00 iod00d@hp.com +17 -0 # ia64: enable PIOW/DMAR relaxed ordering on ZX1 # # ChangeSet # 2004/01/26 16:24:43-08:00 schwab@suse.de # [PATCH] ia64: Fix xbow.c compilation # # This fixes a conflicting declaration in xbow.c. # # arch/ia64/sn/io/sn2/xbow.c # 2004/01/25 11:41:37-08:00 schwab@suse.de +1 -1 # ia64: Fix xbow.c compilation # # ChangeSet # 2004/01/26 16:21:05-08:00 matthewc@cse.unsw.edu.au # ia64: Fix ptrace infrastructure some more so that strace'd sigreturn() # works without trashing any registers. # # arch/ia64/kernel/entry.S # 2004/01/26 16:20:58-08:00 matthewc@cse.unsw.edu.au +43 -10 # (ia64_trace_syscall): Preserve f6-f11 across syscall_trace in case the # system-call is sigreturn(). # (ia64_strace_level_kernel): Make it a stand-alone routine which # calls syscall_trace() and then exits via ia64_level_kernel. # This is used for strace'd sigreturn() only. # # ChangeSet # 2004/01/26 14:49:50-08:00 jsimmons@infradead.org # [PATCH] fbdev documentation patch # # This updates the framebuffer docs to reflect the requirement that all # driver names must end in fb. # # ChangeSet # 2004/01/26 14:49:42-08:00 jsimmons@infradead.org # [PATCH] fbdev booting fix. # # [FBCON] Fixed the order of which driver is used for the console. Before # the api change the last driver loaded became the default one. Now this is # not the case. # # ChangeSet # 2004/01/26 17:16:11-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/linux-acpi-test-2.6.0 # into intel.com:/home/lenb/src/linux-acpi-test-2.6.1 # # drivers/acpi/osl.c # 2004/01/26 17:16:08-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/01/26 16:55:20-05:00 len.brown@intel.com # [ACPI] handle system with NULL DSDT and valid XDSDT # from ia64 via Alex Williamson # # drivers/acpi/tables.c # 2004/01/26 11:55:03-05:00 len.brown@intel.com +10 -3 # handle system with NULL DSDT and valid XDSDT # from ia64 via Alex Williamson # # ChangeSet # 2004/01/26 13:20:30-08:00 davem@nuts.ninka.net # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/w83977af_ir.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/via-ircc.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +1 -1 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/tekram.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/tekram-sir.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/smsc-ircc2.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/old_belkin.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/old_belkin-sir.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/nsc-ircc.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +1 -1 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/mcp2120.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/mcp2120-sir.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/ma600.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/ma600-sir.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/litelink.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/litelink-sir.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/irport.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +1 -1 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/girbil.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/girbil-sir.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/esi.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/ep7211_ir.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +1 -1 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/ali-ircc.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +1 -1 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/actisys.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/actisys-sir.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/act200l.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # drivers/net/irda/act200l-sir.c # 2004/01/26 13:17:58-08:00 davem@nuts.ninka.net +2 -2 # [IRDA]: Mark init/exit functions of drivers static to fix build. # # ChangeSet # 2004/01/26 13:13:21-08:00 akpm@osdl.org # [PATCH] kbuildL fix cscope index generation # # From: Sam Ravnborg # # cscope expect to find the list of files used for the database in a file # named cscope.files. Generate this file as part of 'make cscope'. This # solves http://bugme.osdl.org/show_bug.cgi?id=1948. # # Makefile # 2004/01/25 00:42:06-08:00 akpm@osdl.org +9 -5 # kbuildL fix cscope index generation # # ChangeSet # 2004/01/26 13:12:28-08:00 akpm@osdl.org # [PATCH] Fix CONFIG_DEBUG_SPINLOCK on UP # # The spinlock debugging feature is supposed to work even on uniprocessor # kernels. So we need to instantiate kernel_flag regardless of CONFIG_SMP. # # kernel/sched.c # 2004/01/24 16:18:59-08:00 akpm@osdl.org +3 -1 # Fix CONFIG_DEBUG_SPINLOCK on UP # # ChangeSet # 2004/01/26 15:57:00-05:00 len.brown@intel.com # [ACPI] move zero initialized data to .bss # from Jes Sorensen # # drivers/acpi/toshiba_acpi.c # 2004/01/26 10:54:31-05:00 len.brown@intel.com +1 -1 # move zero initialized data to .bss - from Jes Sorensen # # drivers/acpi/thermal.c # 2004/01/26 10:54:31-05:00 len.brown@intel.com +2 -2 # move zero initialized data to .bss - from Jes Sorensen # # drivers/acpi/processor.c # 2004/01/26 10:54:31-05:00 len.brown@intel.com +1 -1 # move zero initialized data to .bss - from Jes Sorensen # # drivers/acpi/power.c # 2004/01/26 10:54:31-05:00 len.brown@intel.com +1 -1 # move zero initialized data to .bss - from Jes Sorensen # # drivers/acpi/osl.c # 2004/01/26 10:54:31-05:00 len.brown@intel.com +4 -4 # move zero initialized data to .bss - from Jes Sorensen # # drivers/acpi/fan.c # 2004/01/26 10:54:31-05:00 len.brown@intel.com +1 -1 # move zero initialized data to .bss - from Jes Sorensen # # drivers/acpi/ec.c # 2004/01/26 10:54:31-05:00 len.brown@intel.com +1 -1 # move zero initialized data to .bss - from Jes Sorensen # # drivers/acpi/button.c # 2004/01/26 10:54:31-05:00 len.brown@intel.com +1 -1 # move zero initialized data to .bss - from Jes Sorensen # # drivers/acpi/battery.c # 2004/01/26 10:54:31-05:00 len.brown@intel.com +1 -1 # move zero initialized data to .bss - from Jes Sorensen # # drivers/acpi/asus_acpi.c # 2004/01/26 10:54:31-05:00 len.brown@intel.com +4 -4 # move zero initialized data to .bss - from Jes Sorensen # # drivers/acpi/ac.c # 2004/01/26 10:54:31-05:00 len.brown@intel.com +1 -1 # move zero initialized data to .bss - from Jes Sorensen # # ChangeSet # 2004/01/26 12:33:14-08:00 davem@nuts.ninka.net # [IPV6]: Fix TCP socket leak, do not grab socket reference when adding to main hashes. # # net/ipv6/tcp_ipv6.c # 2004/01/26 12:30:48-08:00 davem@nuts.ninka.net +1 -1 # [IPV6]: Fix TCP socket leak, do not grab socket reference when adding to main hashes. # # ChangeSet # 2004/01/26 15:29:59-05:00 len.brown@intel.com # [ACPI] on SCI allocation failure, don't mistakenly free IRQ0 # from Jes Sorensen # # drivers/acpi/osl.c # 2004/01/26 15:27:40-05:00 len.brown@intel.com +3 -2 # on SCI allocation failure, don't free IRQ0 - from Jes Sorensen # # ChangeSet # 2004/01/26 14:48:36-05:00 len.brown@intel.com # [ACPI] fix ACPI spec URL in comment - from Randy Dunlap # # arch/i386/boot/setup.S # 2004/01/26 14:46:22-05:00 len.brown@intel.com +1 -1 # fix ACPI spec URL in comment - from Randy Dunlap # # ChangeSet # 2004/01/26 08:52:24-08:00 ak@suse.de # [PATCH] Fix error checking in IPC_SET # # The LSM changes broke the error checking for queue lengths in IPC_SET. The LSM check would # set set err to 0, but the next check expected it to still be -EPERM. Result was that # no error was reported, but the new parameters weren't correctly set. # # ipc/msg.c # 2004/01/26 08:36:20-08:00 ak@suse.de +1 -0 # Fix error checking in IPC_SET # # ChangeSet # 2004/01/23 21:57:14-08:00 mort@wildopensource.com # ia64: remove old sn1 machvec header file # # BitKeeper/deleted/.del-machvec_sn1.h~dbefe4f5bc656dfb # 2004/01/23 21:56:26-08:00 davidm@tiger.hpl.hp.com +0 -0 # Delete: include/asm-ia64/machvec_sn1.h # # ChangeSet # 2004/01/23 23:48:11-05:00 len.brown@intel.com # [ACPI] acpi_bus_add() ignored _STA's return value # from Bjorn Helgaas # # drivers/acpi/scan.c # 2004/01/23 23:47:03-05:00 len.brown@intel.com +4 -4 # acpi_bus_add() ignored _STA's return value # from Bjorn Helgaas # # ChangeSet # 2004/01/23 17:34:09-08:00 davidm@tiger.hpl.hp.com # ia64: Fix merge error: remove duplicate NR_CPUS. # # arch/ia64/Kconfig # 2004/01/23 17:34:02-08:00 davidm@tiger.hpl.hp.com +0 -12 # Remove duplicate NR_CPUS. # # ChangeSet # 2004/01/23 17:28:36-08:00 davidm@tiger.hpl.hp.com # Fix merge conflict. # # arch/ia64/Kconfig # 2004/01/23 17:28:30-08:00 davidm@tiger.hpl.hp.com +12 -0 # Fix merge conflict. # # include/asm-ia64/uaccess.h # 2004/01/23 16:43:32-08:00 davidm@tiger.hpl.hp.com +0 -0 # Auto merged # # include/asm-ia64/socket.h # 2004/01/23 16:43:32-08:00 davidm@tiger.hpl.hp.com +0 -0 # Auto merged # # include/asm-ia64/byteorder.h # 2004/01/23 16:43:32-08:00 davidm@tiger.hpl.hp.com +0 -0 # Auto merged # # arch/ia64/sn/kernel/sn2/sn2_smp.c # 2004/01/23 16:43:32-08:00 davidm@tiger.hpl.hp.com +0 -0 # Auto merged # # arch/ia64/sn/kernel/sn2/Makefile # 2004/01/23 16:43:31-08:00 davidm@tiger.hpl.hp.com +0 -0 # Auto merged # # ChangeSet # 2004/01/23 14:44:01-08:00 davidm@tiger.hpl.hp.com # ia64: Patch by Jesse Barnes: remove unnecessary set_affinity handler. # # arch/ia64/kernel/irq_lsapic.c # 2004/01/23 14:43:56-08:00 davidm@tiger.hpl.hp.com +1 -2 # Remove unnecessary set_affinity handler. # # ChangeSet # 2004/01/23 14:23:41-08:00 bjorn.helgaas@hp.com # [PATCH] ia64: remove MCA (MicroChannel) cruft # # MCA_bus is now referenced only when CONFIG_MCA is set, # so we should be able to remove the definition from ia64. # # include/asm-ia64/processor.h # 2004/01/23 01:28:11-08:00 bjorn.helgaas@hp.com +0 -6 # ia64: remove MCA (MicroChannel) cruft # # ChangeSet # 2004/01/23 14:23:03-08:00 mort@wildopensource.com # [PATCH] ia64: add platform_timer_interrupt() hook # # # include/asm-ia64/machvec_sn2.h # 2004/01/23 02:20:12-08:00 mort@wildopensource.com +2 -0 # ia64: add platform_timer_interrupt() hook # # include/asm-ia64/machvec.h # 2004/01/23 02:20:12-08:00 mort@wildopensource.com +7 -0 # ia64: add platform_timer_interrupt() hook # # arch/ia64/sn/kernel/sn2/timer_interrupt.c # 2004/01/23 02:20:12-08:00 mort@wildopensource.com +64 -0 # ia64: add platform_timer_interrupt() hook # # arch/ia64/sn/kernel/sn2/Makefile # 2004/01/23 02:20:12-08:00 mort@wildopensource.com +1 -1 # ia64: add platform_timer_interrupt() hook # # arch/ia64/kernel/time.c # 2004/01/23 02:20:12-08:00 mort@wildopensource.com +3 -0 # ia64: add platform_timer_interrupt() hook # # arch/ia64/sn/kernel/sn2/timer_interrupt.c # 2004/01/23 02:20:12-08:00 mort@wildopensource.com +0 -0 # BitKeeper file /data1/bk/lia64/to-linus-2.5/arch/ia64/sn/kernel/sn2/timer_interrupt.c # # ChangeSet # 2004/01/23 13:17:29-08:00 davidm@tiger.hpl.hp.com # ia64: Fix typo in comment in asm-ia64/posix_types.h. # # include/asm-ia64/posix_types.h # 2004/01/23 13:17:23-08:00 davidm@tiger.hpl.hp.com +2 -2 # Fix typo. # # ChangeSet # 2004/01/23 10:52:32-08:00 davidm@tiger.hpl.hp.com # ia64: Drop copyright notices on header files which are either entirely trivial # or ended up being trivial variations of another file. Fix some # missing attributions and rephrase existing attributions for specifity. # # include/asm-ia64/user.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +2 -2 # Drop copyright notice. # # include/asm-ia64/unaligned.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +3 -2 # Rephrase attribution. # # include/asm-ia64/uaccess.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +2 -0 # Fix attribution. # # include/asm-ia64/types.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +4 -2 # Drop copyright notice. # Fix attribution. # # include/asm-ia64/tlb.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +2 -2 # Rephrase attribution. # # include/asm-ia64/termios.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +2 -2 # Drop copyright notice. # # include/asm-ia64/termbits.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +4 -2 # Drop copyright notice. # Fix attribution. # # include/asm-ia64/statfs.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +4 -2 # Drop copyright notice. # Fix attribution. # # include/asm-ia64/stat.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +2 -2 # Drop copyright notice. # # include/asm-ia64/sockios.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +5 -4 # Drop copyright notice. # Rephrase attribution. # # include/asm-ia64/socket.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +5 -3 # Drop copyright notice. # Rephrase attribution. # # include/asm-ia64/signal.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +2 -2 # Drop copyright notice. # # include/asm-ia64/siginfo.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +4 -2 # Drop copyright notice. # Fix attribution. # # include/asm-ia64/scatterlist.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +2 -2 # Drop copyright notice. # # include/asm-ia64/resource.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +4 -2 # Drop copyright notice. # Fix attribution. # # include/asm-ia64/posix_types.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +3 -1 # Drop copyright notice. # Fix attribution. # # include/asm-ia64/poll.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +3 -3 # Drop copyright notice. # Rephrase attribution. # # include/asm-ia64/param.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +4 -2 # Drop copyright notice. # Fix attribution. # # include/asm-ia64/namei.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +2 -2 # Drop copyright notice. # # include/asm-ia64/mman.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +4 -2 # Drop copyright notice. # Fix attribution. # # include/asm-ia64/ioctls.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +4 -2 # Drop copyright notice. # Fix attribution. # # include/asm-ia64/ioctl.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +3 -3 # Rephrase attribution. # Drop copyright notice. # # include/asm-ia64/fcntl.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +3 -3 # Drop copyright notice. # Rephrase attribution. # # include/asm-ia64/errno.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +0 -12 # Drop copyright notice & surrounding #ifdef. # # include/asm-ia64/current.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +2 -2 # Drop copyright notice. # # include/asm-ia64/checksum.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +2 -2 # Drop copyright notice. # # include/asm-ia64/byteorder.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +2 -2 # Drop copyright notice. # # include/asm-ia64/bugs.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +4 -2 # Drop copyright notice. # Fix attribution. # # include/asm-ia64/a.out.h # 2004/01/23 10:52:25-08:00 davidm@tiger.hpl.hp.com +2 -2 # Drop copyright notice. # # ChangeSet # 2004/01/22 11:18:45-08:00 suresh.b.siddha@intel.com # [PATCH] ia64: replace inline assembly in sn2 code # # arch/ia64/sn/kernel/sn2/sn2_smp.c # 2004/01/21 10:47:12-08:00 suresh.b.siddha@intel.com +3 -2 # ia64: replace inline assembly in sn2 code # # ChangeSet # 2004/01/22 10:38:36-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/bk/linux-2.6.2 # into intel.com:/home/lenb/src/linux-acpi-test-2.6.2 # # arch/i386/kernel/dmi_scan.c # 2004/01/22 10:38:29-05:00 len.brown@intel.com +0 -0 # Auto merged # # Documentation/kernel-parameters.txt # 2004/01/22 10:38:27-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/01/21 10:55:35-08:00 akpm@osdl.org # [PATCH] ia64: i2c config fix # # ia64 needs to include i2c by hand # # arch/ia64/Kconfig # 2004/01/20 19:50:20-08:00 akpm@osdl.org +2 -0 # ia64: i2c config fix # # ChangeSet # 2004/01/21 10:50:39-08:00 bjorn_helgaas@hp.com # [PATCH] ia64: Kconfig cleanup, part 1 # # arch/ia64/Kconfig # 2004/01/20 05:13:14-08:00 bjorn.helgaas@hp.com +66 -66 # ia64: Kconfig cleanup, part 1 # # ChangeSet # 2004/01/19 09:37:38-08:00 davidm@tiger.hpl.hp.com # ia64: arch/ia64/Kconfig URL update: www.linux-on-laptops.com # # arch/ia64/Kconfig # 2004/01/18 23:51:47-08:00 petri.koistinen@iki.fi +1 -2 # ia64: arch/ia64/Kconfig URL update: www.linux-on-laptops.com # # ChangeSet # 2004/01/17 23:13:46-05:00 len.brown@intel.com # [ACPI] ACPICA 20040116 from Bob Moore # # The purpose of this release is primarily to update the copyright years # in each module, thus causing a huge number of diffs. There are a few # small functional changes, however. # # Improved error messages when there is a problem finding one or more of # the required base ACPI tables # # Reintroduced the definition of APIC_HEADER in actbl.h # # Changed definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h) # # Removed extraneous reference to NewObj in dsmthdat.c # # include/acpi/platform/aclinux.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/platform/acgcc.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/platform/acenv.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/amlresrc.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/amlcode.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acutils.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/actypes.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/actbl2.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/actbl1.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/actbl.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +7 -2 # Import patch acpica-unix-20040116.patch # # include/acpi/actables.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acstruct.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acresrc.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acpixf.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acpiosxf.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acpi.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acparser.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acoutput.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acobject.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acnamesp.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acmacros.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/aclocal.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acinterp.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/achware.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acglobal.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acexcep.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acevents.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acdispat.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acdisasm.h # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acdebug.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # include/acpi/acconfig.h # 2004/01/17 18:12:31-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20040116.patch # # drivers/acpi/utilities/utxface.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/utilities/utobject.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/utilities/utmisc.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +9 -5 # Import patch acpica-unix-20040116.patch # # drivers/acpi/utilities/utmath.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/utilities/utinit.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/utilities/utglobal.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/utilities/uteval.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/utilities/utdelete.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/utilities/utdebug.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/utilities/utcopy.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/utilities/utalloc.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/tables/tbxfroot.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +3 -3 # Import patch acpica-unix-20040116.patch # # drivers/acpi/tables/tbxface.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/tables/tbutils.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/tables/tbrsdt.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +11 -2 # Import patch acpica-unix-20040116.patch # # drivers/acpi/tables/tbinstal.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/tables/tbgetall.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/tables/tbget.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/tables/tbconvrt.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +5 -5 # Import patch acpica-unix-20040116.patch # # drivers/acpi/resources/rsxface.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/resources/rsutils.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/resources/rsmisc.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/resources/rsmemory.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/resources/rslist.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/resources/rsirq.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/resources/rsio.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/resources/rsdump.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/resources/rscreate.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/resources/rscalc.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/resources/rsaddr.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/parser/psxface.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/parser/pswalk.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/parser/psutils.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/parser/pstree.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/parser/psscope.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/parser/psparse.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/parser/psopcode.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/parser/psargs.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nsxfobj.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nsxfname.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nsxfeval.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nswalk.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nsutils.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nssearch.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nsparse.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nsobject.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nsnames.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nsload.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nsinit.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nseval.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nsdumpdv.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nsdump.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nsalloc.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/namespace/nsaccess.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/hardware/hwtimer.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/hardware/hwsleep.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +55 -23 # Import patch acpica-unix-20040116.patch # # drivers/acpi/hardware/hwregs.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/hardware/hwgpe.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +5 -11 # Import patch acpica-unix-20040116.patch # # drivers/acpi/hardware/hwacpi.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exutils.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exsystem.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exstorob.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exstoren.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exstore.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exresop.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exresolv.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exresnte.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exregion.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exprep.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exoparg6.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exoparg3.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exoparg2.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exoparg1.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exnames.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exmutex.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exmisc.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exfldio.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exfield.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exdump.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/excreate.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exconvrt.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/executer/exconfig.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/events/evxfregn.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/events/evxfevnt.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/events/evxface.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/events/evsci.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/events/evrgnini.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/events/evregion.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +2 -5 # Import patch acpica-unix-20040116.patch # # drivers/acpi/events/evmisc.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/events/evgpeblk.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/events/evgpe.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/events/evevent.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/dispatcher/dswstate.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/dispatcher/dswscope.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/dispatcher/dswload.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/dispatcher/dswexec.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/dispatcher/dsutils.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/dispatcher/dsopcode.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/dispatcher/dsobject.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/dispatcher/dsmthdat.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -2 # Import patch acpica-unix-20040116.patch # # drivers/acpi/dispatcher/dsmethod.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/dispatcher/dsinit.c # 2004/01/17 18:12:32-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # drivers/acpi/dispatcher/dsfield.c # 2004/01/17 18:12:31-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20040116.patch # # ChangeSet # 2004/01/16 16:42:27-08:00 jbarnes@sgi.com # [PATCH] ia64: kill some more warnings # # Kills a warning and a false sense of safety by removing the volatile # qualifier on cpu_to_node_map[] and node_to_cpu_mask[]. Also fix the # printk for total processors since num_online_cpus() can return an int or # a long depending on the value of NR_CPUS. # # include/asm-ia64/numa.h # 2004/01/16 04:20:26-08:00 jbarnes@sgi.com +2 -2 # ia64: kill some more warnings # # arch/ia64/kernel/smpboot.c # 2004/01/16 04:23:48-08:00 jbarnes@sgi.com +4 -4 # ia64: kill some more warnings # # ChangeSet # 2004/01/16 16:38:24-08:00 jbarnes@sgi.com # [PATCH] ia64: fix cast in irq_lsapic.c # # This patch just updates the cast in irq_lsapic.c to use the cpumask_t # type for the noop cast assignment to smp_affinity. # # arch/ia64/kernel/irq_lsapic.c # 2004/01/16 04:11:04-08:00 jbarnes@sgi.com +1 -1 # ia64: fix cast in irq_lsapic.c # # ChangeSet # 2004/01/15 17:40:19-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/linux-acpi-test-2.6.0 # into intel.com:/home/lenb/src/linux-acpi-test-2.6.1 # # arch/i386/kernel/cpu/cpufreq/acpi.c # 2004/01/15 17:40:17-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/01/15 17:04:28-05:00 len.brown@intel.com # [ACPI] change hard-coded IO width to programmable width # http://bugzilla.kernel.org/show_bug.cgi?id=1349 # from David Shaohua Li and Venatesh Pallipadi # # include/acpi/processor.h # 2004/01/15 17:03:22-05:00 len.brown@intel.com +2 -0 # [ACPI] change hard-coded IO width to programmable width # http://bugzilla.kernel.org/show_bug.cgi?id=1349 # from David Shaohua Li and Venatesh Pallipadi # # arch/i386/kernel/cpu/cpufreq/acpi.c # 2004/01/15 17:03:21-05:00 len.brown@intel.com +61 -10 # [ACPI] change hard-coded IO width to programmable width # http://bugzilla.kernel.org/show_bug.cgi?id=1349 # from David Shaohua Li and Venatesh Pallipadi # # ChangeSet # 2004/01/09 03:31:13-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/linux-acpi-test-2.6.0 # into intel.com:/home/lenb/src/linux-acpi-test-2.6.1 # # include/asm-x86_64/acpi.h # 2004/01/09 03:31:10-05:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/kernel/setup.c # 2004/01/09 03:31:10-05:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/kernel/mpparse.c # 2004/01/09 03:31:10-05:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/kernel/io_apic.c # 2004/01/09 03:31:10-05:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/setup.c # 2004/01/09 03:31:10-05:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/mpparse.c # 2004/01/09 03:31:10-05:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/acpi/boot.c # 2004/01/09 03:31:10-05:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/io_apic.c # 2004/01/09 03:31:09-05:00 len.brown@intel.com +0 -0 # Auto merged # # Documentation/kernel-parameters.txt # 2004/01/09 03:31:09-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2003/12/16 02:56:38-05:00 len.brown@intel.com # [ACPI] set acpi_disabled=1 on failure for clean /proc # http://bugzilla.kernel.org/show_bug.cgi?id=991 # # arch/x86_64/kernel/acpi/boot.c # 2003/12/15 21:50:16-05:00 len.brown@intel.com +3 -1 # acpi_disabled = 1 on failed acpi_table_init() # # arch/i386/kernel/acpi/boot.c # 2003/12/15 21:50:16-05:00 len.brown@intel.com +3 -1 # acpi_disabled = 1 on failed acpi_table_init() # # ChangeSet # 2003/12/16 01:38:44-05:00 len.brown@intel.com # [ACPI] /proc/acpi files appear in /proc if acpi=off (Shaohua David Li) # # drivers/acpi/sleep/proc.c # 2003/12/16 01:38:12-05:00 len.brown@intel.com +3 -0 # [ACPI] /proc/acpi files appear in /proc if acpi=off (Shaohua David Li) # # drivers/acpi/scan.c # 2003/12/16 01:38:12-05:00 len.brown@intel.com +3 -0 # [ACPI] /proc/acpi files appear in /proc if acpi=off (Shaohua David Li) # # ChangeSet # 2003/12/15 19:47:09-05:00 len.brown@intel.com # [ACPI] delete old _TRA code formerly used just by IA64. (Bjorn Helgaas) # The current approach is to walk the _CRS in pcibios_scan_root() # using acpi_walk_resources(). # # include/acpi/acpi_drivers.h # 2003/12/15 19:46:29-05:00 len.brown@intel.com +0 -4 # [ACPI] delete old _TRA code formerly used just by IA64 (Bjorn Helgaas) # # drivers/acpi/pci_root.c # 2003/12/15 19:46:28-05:00 len.brown@intel.com +0 -95 # [ACPI] delete old _TRA code formerly used just by IA64 (Bjorn Helgaas) # # ChangeSet # 2003/12/11 23:15:27-05:00 len.brown@intel.com # [ACPI] Update Linux to ACPICA 20031203 (Bob Moore) # # Changed the initialization of Operation Regions during subsystem init to # perform two entire walks of the ACPI namespace; The first to initialize # the regions themselves, the second to execute the _REG methods. This # fixed some interdependencies across _REG methods found on some machines. # # Fixed a problem where a Store(Local0, Local1) could simply update the # object reference count, and not create a new copy of the object if the # Local1 is uninitialized. # # Implemented support for the _SST reserved method during sleep # transitions. # # Implemented support to clear the SLP_TYP and SLP_EN bits when waking up, # this is apparently required by some machines. # # When sleeping, clear the wake status only if SleepState is not S5. # # Fixed a problem in AcpiRsExtendedIrqResource() where an incorrect # pointer arithmetic advanced a string pointer too far. # # Fixed a problem in AcpiTbGetTablePtr() where a garbage pointer could be # returned if the requested table has not been loaded. # # Within the support for IRQ resources, restructured the handling of the # active and edge/level bits. # # Fixed a few problems in AcpiPsxExecute() where memory could be leaked # under certain error conditions. # # Improved error messages for the cases where the ACPI mode could not be # entered. # # include/acpi/acobject.h # 2003/12/11 18:14:52-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20031203.patch # # include/acpi/acglobal.h # 2003/12/11 18:14:52-05:00 len.brown@intel.com +3 -0 # Import patch acpica-unix-20031203.patch # # include/acpi/acevents.h # 2003/12/11 18:14:52-05:00 len.brown@intel.com +11 -0 # Import patch acpica-unix-20031203.patch # # include/acpi/acconfig.h # 2003/12/11 18:14:52-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20031203.patch # # drivers/acpi/utilities/utglobal.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20031203.patch # # drivers/acpi/utilities/utdelete.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20031203.patch # # drivers/acpi/tables/tbget.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +1 -0 # Import patch acpica-unix-20031203.patch # # drivers/acpi/resources/rsirq.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +20 -18 # Import patch acpica-unix-20031203.patch # # drivers/acpi/parser/psxface.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +26 -8 # Import patch acpica-unix-20031203.patch # # drivers/acpi/hardware/hwsleep.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +64 -25 # Import patch acpica-unix-20031203.patch # # drivers/acpi/hardware/hwacpi.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +6 -7 # Import patch acpica-unix-20031203.patch # # drivers/acpi/executer/exdump.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +4 -4 # Import patch acpica-unix-20031203.patch # # drivers/acpi/events/evxfregn.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +16 -5 # Import patch acpica-unix-20031203.patch # # drivers/acpi/events/evrgnini.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +25 -5 # Import patch acpica-unix-20031203.patch # # drivers/acpi/events/evregion.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +92 -40 # Import patch acpica-unix-20031203.patch # # drivers/acpi/events/evgpeblk.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20031203.patch # # drivers/acpi/dispatcher/dswload.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +5 -3 # Import patch acpica-unix-20031203.patch # # drivers/acpi/dispatcher/dsmthdat.c # 2003/12/11 18:14:52-05:00 len.brown@intel.com +31 -6 # Import patch acpica-unix-20031203.patch # # ChangeSet # 2003/12/11 22:48:32-05:00 len.brown@intel.com # [ACPI] update Linux to ACPICA 20031029 (Bob Moore) # # Fixed a problem where a level-triggered GPE with an associated _Lxx # control method was incorrectly cleared twice. # # Fixed a problem with the Field support code where an access can occur # beyond the end-of-region if the field is non-aligned but extends to the # very end of the parent region (resulted in an AE_AML_REGION_LIMIT # exception.) # # Fixed a problem with ACPI Fixed Events where an RT Clock handler would # not get invoked on an RTC event. The RTC event bitmasks for the PM1 # registers were not being initialized properly. # # Implemented support for executing _STA and _INI methods for Processor # objects. Although this is currently not part of the ACPI specification, # there is existing ASL code that depends on the init-time execution of # these methods. # # Implemented and deployed a GetDescriptorName function to decode the # various types of internal descriptors. Guards against null descriptors # during debug output also. # # Implemented and deployed a GetNodeName function to extract the # 4-character namespace node name. This function simplifies the debug and # error output, as well as guarding against null pointers during output. # # Implemented and deployed the ACPI_FORMAT_UINT64 helper macro to simplify # the debug and error output of 64-bit integers. This macro replaces the # HIDWORD and LODWORD macros for dumping these integers. # # Updated the implementation of the Stall() operator to only call # AcpiOsStall(), and also return an error if the operand is larger than # 255. This preserves the required behavior of not relinquishing the # processor, as would happen if AcpiOsSleep() was called for "long # stalls". # # Constructs of the form "Store(LocalX,LocalX)" where LocalX is not # initialized are now treated as NOOPs. # # Cleaned up a handful of warnings during 64-bit generation. # # Fixed a reported error where and incorrect GPE number was passed to the # GPE dispatch handler. This value is only used for error output, # however. Used this opportunity to clean up and streamline the GPE # dispatch code. # # include/acpi/acutils.h # 2003/12/11 17:33:15-05:00 len.brown@intel.com +8 -0 # Import patch acpica-unix-20031029.patch # # include/acpi/acobject.h # 2003/12/11 17:33:15-05:00 len.brown@intel.com +16 -15 # Import patch acpica-unix-20031029.patch # # include/acpi/acmacros.h # 2003/12/11 17:33:15-05:00 len.brown@intel.com +12 -15 # Import patch acpica-unix-20031029.patch # # include/acpi/acconfig.h # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20031029.patch # # drivers/acpi/utilities/utobject.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +5 -23 # Import patch acpica-unix-20031029.patch # # drivers/acpi/utilities/utglobal.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +94 -1 # Import patch acpica-unix-20031029.patch # # drivers/acpi/utilities/uteval.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/utilities/utdebug.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20031029.patch # # drivers/acpi/utilities/utalloc.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +7 -48 # Import patch acpica-unix-20031029.patch # # drivers/acpi/tables/tbxfroot.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/tables/tbxface.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20031029.patch # # drivers/acpi/tables/tbrsdt.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/tables/tbgetall.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/tables/tbget.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +3 -6 # Import patch acpica-unix-20031029.patch # # drivers/acpi/resources/rslist.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/resources/rsdump.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +6 -12 # Import patch acpica-unix-20031029.patch # # drivers/acpi/resources/rscreate.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20031029.patch # # drivers/acpi/resources/rscalc.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/parser/psparse.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/parser/psargs.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/namespace/nsxfname.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20031029.patch # # drivers/acpi/namespace/nsutils.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +3 -3 # Import patch acpica-unix-20031029.patch # # drivers/acpi/namespace/nssearch.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/namespace/nsobject.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +4 -3 # Import patch acpica-unix-20031029.patch # # drivers/acpi/namespace/nsinit.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +37 -26 # Import patch acpica-unix-20031029.patch # # drivers/acpi/namespace/nsdumpdv.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20031029.patch # # drivers/acpi/namespace/nsdump.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +17 -20 # Import patch acpica-unix-20031029.patch # # drivers/acpi/namespace/nsalloc.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +4 -3 # Import patch acpica-unix-20031029.patch # # drivers/acpi/namespace/nsaccess.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +4 -4 # Import patch acpica-unix-20031029.patch # # drivers/acpi/hardware/hwregs.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +4 -8 # Import patch acpica-unix-20031029.patch # # drivers/acpi/executer/exsystem.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +15 -6 # Import patch acpica-unix-20031029.patch # # drivers/acpi/executer/exstore.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/executer/exresop.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/executer/exresolv.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +5 -1 # Import patch acpica-unix-20031029.patch # # drivers/acpi/executer/exregion.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +5 -5 # Import patch acpica-unix-20031029.patch # # drivers/acpi/executer/exprep.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/executer/exoparg3.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +2 -3 # Import patch acpica-unix-20031029.patch # # drivers/acpi/executer/exoparg1.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/executer/exmutex.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +6 -6 # Import patch acpica-unix-20031029.patch # # drivers/acpi/executer/exmisc.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +3 -3 # Import patch acpica-unix-20031029.patch # # drivers/acpi/executer/exfldio.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +92 -92 # Import patch acpica-unix-20031029.patch # # drivers/acpi/executer/exdump.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +19 -23 # Import patch acpica-unix-20031029.patch # # drivers/acpi/events/evxfregn.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +2 -1 # Import patch acpica-unix-20031029.patch # # drivers/acpi/events/evrgnini.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20031029.patch # # drivers/acpi/events/evregion.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -1 # Import patch acpica-unix-20031029.patch # # drivers/acpi/events/evmisc.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +2 -1 # Import patch acpica-unix-20031029.patch # # drivers/acpi/events/evgpeblk.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +1 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/events/evgpe.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +28 -29 # Import patch acpica-unix-20031029.patch # # drivers/acpi/dispatcher/dswscope.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +4 -4 # Import patch acpica-unix-20031029.patch # # drivers/acpi/dispatcher/dswexec.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +18 -4 # Import patch acpica-unix-20031029.patch # # drivers/acpi/dispatcher/dsopcode.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +7 -7 # Import patch acpica-unix-20031029.patch # # drivers/acpi/dispatcher/dsmthdat.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +4 -4 # Import patch acpica-unix-20031029.patch # # drivers/acpi/dispatcher/dsmethod.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20031029.patch # # drivers/acpi/dispatcher/dsinit.c # 2003/12/11 17:33:15-05:00 len.brown@intel.com +2 -2 # Import patch acpica-unix-20031029.patch # # ChangeSet # 2003/12/11 22:44:03-05:00 len.brown@intel.com # [ACPI] revert two fixes in preparation for ACPICA merge # # drivers/acpi/dispatcher/dsopcode.c # 2003/12/11 22:43:10-05:00 len.brown@intel.com +5 -3 # back out fix in preparation for ACPICA update # # drivers/acpi/events/evgpe.c # 2003/12/11 22:43:04-05:00 len.brown@intel.com +2 -2 # back out fix in preparation for ACPICA update # # ChangeSet # 2003/12/11 21:19:52-05:00 len.brown@intel.com # [ACPI] replace multiple flags with acpi_noirq -- ala 2.4 # # include/asm-x86_64/acpi.h # 2003/12/11 21:19:07-05:00 len.brown@intel.com +8 -13 # [ACPI] replace multiple flags with acpi_noirq # # include/asm-i386/acpi.h # 2003/12/11 21:19:07-05:00 len.brown@intel.com +3 -1 # [ACPI] replace multiple flags with acpi_noirq # # arch/x86_64/kernel/setup.c # 2003/12/11 21:19:07-05:00 len.brown@intel.com +7 -1 # [ACPI] replace multiple flags with acpi_noirq # # arch/x86_64/kernel/acpi/boot.c # 2003/12/11 21:19:07-05:00 len.brown@intel.com +7 -5 # [ACPI] replace multiple flags with acpi_noirq # # arch/i386/pci/pci.h # 2003/12/11 21:19:07-05:00 len.brown@intel.com +0 -1 # [ACPI] replace multiple flags with acpi_noirq # # arch/i386/pci/common.c # 2003/12/11 21:19:07-05:00 len.brown@intel.com +2 -3 # [ACPI] replace multiple flags with acpi_noirq # # arch/i386/pci/acpi.c # 2003/12/11 21:19:07-05:00 len.brown@intel.com +1 -12 # [ACPI] replace multiple flags with acpi_noirq # # arch/i386/kernel/setup.c # 2003/12/11 21:19:07-05:00 len.brown@intel.com +3 -6 # [ACPI] replace multiple flags with acpi_noirq # # arch/i386/kernel/dmi_scan.c # 2003/12/11 21:19:07-05:00 len.brown@intel.com +3 -5 # [ACPI] replace multiple flags with acpi_noirq # # arch/i386/kernel/acpi/boot.c # 2003/12/11 21:19:07-05:00 len.brown@intel.com +3 -4 # [ACPI] replace multiple flags with acpi_noirq # # ChangeSet # 2003/12/10 23:49:41-05:00 len.brown@intel.com # [ACPI] set APIC ACPI SCI OVR default to level/low # http://bugzilla.kernel.org/show_bug.cgi?id=1351 # # drivers/acpi/tables.c # 2003/12/10 23:48:03-05:00 len.brown@intel.com +22 -8 # set APIC ACPI SCI OVR default to level/low # http://bugzilla.kernel.org/show_bug.cgi?id=1351 # # arch/i386/kernel/mpparse.c # 2003/12/10 23:45:01-05:00 len.brown@intel.com +7 -1 # set APIC ACPI SCI OVR default to level/low # http://bugzilla.kernel.org/show_bug.cgi?id=1351 # # ChangeSet # 2003/12/02 21:25:24-05:00 len.brown@intel.com # [ACPI] add warning to thermal shutdown (Pavel Machek) # # drivers/acpi/thermal.c # 2003/12/02 16:24:59-05:00 len.brown@intel.com +1 -0 # add console warning to thermal shutdown (Pavel Machek) # # ChangeSet # 2003/11/30 03:19:35-05:00 len.brown@intel.com # [ACPI] sync with 2.4.23 # Re-enable IRQ balacning if IOAPIC mode # http://bugzilla.kernel.org/show_bug.cgi?id=1440 # # Also allow IRQ balancing in PIC mode if "acpi_irq_balance" # http://bugzilla.kernel.org/show_bug.cgi?id=1391 # # include/asm-x86_64/acpi.h # 2003/11/30 03:18:51-05:00 len.brown@intel.com +6 -0 # [ACPI] sync with 2.4.23 # enable irq balancing in IO-APIC mode # http://bugzilla.kernel.org/show_bug.cgi?id=1440 # # include/asm-i386/acpi.h # 2003/11/30 03:18:51-05:00 len.brown@intel.com +6 -0 # [ACPI] sync with 2.4.23 # enable irq balancing in IO-APIC mode # http://bugzilla.kernel.org/show_bug.cgi?id=1440 # # drivers/acpi/pci_link.c # 2003/11/30 03:18:51-05:00 len.brown@intel.com +154 -26 # sync with 2.4.23 # Re-enable IRQ balacning if IOAPIC mode # http://bugzilla.kernel.org/show_bug.cgi?id=1440 # Also allow IRQ balancing in PIC mode if "acpi_irq_balance" # http://bugzilla.kernel.org/show_bug.cgi?id=1391 # fix off-by-one error in balancing code that ignored an IRQ. # # arch/x86_64/kernel/acpi/boot.c # 2003/11/30 03:18:51-05:00 len.brown@intel.com +2 -0 # [ACPI] sync with 2.4.23 # enable irq balancing in IO-APIC mode # http://bugzilla.kernel.org/show_bug.cgi?id=1440 # # arch/i386/kernel/acpi/boot.c # 2003/11/30 03:18:51-05:00 len.brown@intel.com +2 -0 # [ACPI] sync with 2.4.23 # enable irq balancing in IO-APIC mode # http://bugzilla.kernel.org/show_bug.cgi?id=1440 # # Documentation/kernel-parameters.txt # 2003/11/30 03:18:51-05:00 len.brown@intel.com +12 -0 # [ACPI] "acpi_irq_balance" "acpi_irq_isa" from 2.4.23 # # ChangeSet # 2003/11/21 01:43:17-05:00 len.brown@intel.com # [ACPI] prevent ES7000 tweak from breaking i386 IOAPIC (Andrew de Quincey) # # include/asm-i386/system.h # 2003/11/21 01:24:00-05:00 len.brown@intel.com +1 -0 # [ACPI] prevent ES7000 tweak from breaking i386 IOAPIC (Andrew de Quincey) # # arch/i386/mach-es7000/es7000.c # 2003/11/21 01:24:00-05:00 len.brown@intel.com +0 -2 # [ACPI] prevent ES7000 tweak from breaking i386 IOAPIC (Andrew de Quincey) # # arch/i386/kernel/mpparse.c # 2003/11/21 01:24:00-05:00 len.brown@intel.com +5 -2 # [ACPI] prevent ES7000 tweak from breaking i386 IOAPIC (Andrew de Quincey) # # arch/i386/kernel/dmi_scan.c # 2003/11/21 01:24:00-05:00 len.brown@intel.com +1 -0 # [ACPI] prevent ES7000 tweak from breaking i386 IOAPIC (Andrew de Quincey) # # ChangeSet # 2003/11/20 05:49:51-05:00 len.brown@intel.com # [ACPI] fix compiler warning (Andrew Morton) # # arch/i386/kernel/acpi/boot.c # 2003/11/20 05:48:43-05:00 len.brown@intel.com +1 -1 # fix compiler warning (Andrew Morton) # # ChangeSet # 2003/11/19 11:33:08-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/bk/linux-2.6.0 # into intel.com:/home/lenb/bk/linux-acpi-test-2.6.0 # # arch/i386/kernel/mpparse.c # 2003/11/19 11:33:05-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2003/11/18 03:51:16-05:00 len.brown@intel.com # [ACPI] "acpi_pic_sci=edge" in case platform requires Edge Triggered SCI # http://bugzilla.kernel.org/show_bug.cgi?id=1390 # # drivers/acpi/bus.c # 2003/11/18 03:51:11-05:00 len.brown@intel.com +2 -2 # [ACPI] "acpi_pic_sci=edge" in case platform requires Edge Triggered SCI # http://bugzilla.kernel.org/show_bug.cgi?id=1390 # # arch/x86_64/kernel/acpi/boot.c # 2003/11/18 03:51:11-05:00 len.brown@intel.com +45 -8 # [ACPI] "acpi_pic_sci=edge" in case platform requires Edge Triggered SCI # http://bugzilla.kernel.org/show_bug.cgi?id=1390 # # arch/i386/kernel/acpi/boot.c # 2003/11/18 03:51:11-05:00 len.brown@intel.com +45 -8 # [ACPI] "acpi_pic_sci=edge" in case platform requires Edge Triggered SCI # http://bugzilla.kernel.org/show_bug.cgi?id=1390 # # Documentation/kernel-parameters.txt # 2003/11/18 03:51:11-05:00 len.brown@intel.com +5 -0 # [ACPI] "acpi_pic_sci=edge" in case platform requires Edge Triggered SCI # http://bugzilla.kernel.org/show_bug.cgi?id=1390 # # ChangeSet # 2003/11/18 01:17:48-05:00 len.brown@intel.com # [ACPI] print_IO_APIC() only after it is programmed # http://bugzilla.kernel.org/show_bug.cgi?id=1177 # # arch/x86_64/kernel/io_apic.c # 2003/11/18 01:16:48-05:00 len.brown@intel.com +4 -4 # [ACPI] print_IO_APIC() only after it is programmed # http://bugzilla.kernel.org/show_bug.cgi?id=1177 # # arch/x86_64/kernel/mpparse.c # 2003/11/18 01:15:32-05:00 len.brown@intel.com +2 -0 # [ACPI] print_IO_APIC() only after it is programmed # http://bugzilla.kernel.org/show_bug.cgi?id=1177 # # ChangeSet # 2003/11/17 22:01:11-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/bk/linux-2.6.0 # into intel.com:/home/lenb/bk/linux-acpi-test-2.6.0 # # arch/i386/kernel/mpparse.c # 2003/11/17 22:01:08-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2003/11/07 18:21:48-05:00 len.brown@intel.com # [ACPI] In ACPI mode, delay print_IO_APIC() to make its output valid. # http://bugzilla.kernel.org/show_bug.cgi?id=1177 # # arch/i386/kernel/io_apic.c # 2003/11/07 18:20:46-05:00 len.brown@intel.com +4 -6 # in ACPI mode, call print_IO_APIC only after it is actually programmed # # arch/i386/kernel/mpparse.c # 2003/11/07 18:19:45-05:00 len.brown@intel.com +4 -0 # in ACPI mode, call print_IO_APIC only after it is actually programmed # # ChangeSet # 2003/11/07 17:50:18-05:00 len.brown@intel.com # [ACPI] If ACPI is disabled by DMI BIOS date, then # turn it off completely, including table parsing for HT. # This avoids a crash due to ancient garbled tables. # acpi=force is available to over-ride this default. # http://bugzilla.kernel.org/show_bug.cgi?id=1434 # # arch/i386/kernel/dmi_scan.c # 2003/11/07 12:46:39-05:00 len.brown@intel.com +1 -0 # if the DMI blacklist date disables ACPI # then disable it all the way, including the # tabling parsing used by CONFIG_ACPI_BOOT for HT. # It can be manually enabled with acpi=force # http://bugzilla.kernel.org/show_bug.cgi?id=1434 # diff -Nru a/Documentation/fb/modedb.txt b/Documentation/fb/modedb.txt --- a/Documentation/fb/modedb.txt Tue Jan 27 21:03:54 2004 +++ b/Documentation/fb/modedb.txt Tue Jan 27 21:03:54 2004 @@ -51,10 +51,10 @@ Drivers that support modedb boot options Boot Name Cards Supported - ami - Amiga chipset frame buffer + amifb - Amiga chipset frame buffer aty128fb - ATI Rage128 / Pro frame buffer atyfb - ATI Mach64 frame buffer - tdfx - 3D Fx frame buffer + tdfxfb - 3D Fx frame buffer tridentfb - Trident (Cyber)blade chipset frame buffer BTW, only a few drivers use this at the moment. Others are to follow diff -Nru a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt --- a/Documentation/kernel-parameters.txt Tue Jan 27 21:03:55 2004 +++ b/Documentation/kernel-parameters.txt Tue Jan 27 21:03:55 2004 @@ -96,6 +96,23 @@ ht -- run only enough ACPI to enable Hyper Threading See also Documentation/pm.txt. + acpi_pic_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode + Format: { level | edge } + level Force PIC-mode SCI to Level Trigger (default) + edge Force PIC-mode SCI to Edge Trigge + + acpi_irq_balance [HW,ACPI] ACPI will balance active IRQs + default in APIC mode + + acpi_irq_nobalance [HW,ACPI] ACPI will not move active IRQs (default) + default in PIC mode + + acpi_irq_pci= [HW,ACPI] If irq_balance, Clear listed IRQs for use by PCI + Format: ,... + + acpi_irq_isa= [HW,ACPI] If irq_balance, Mark listed IRQs used by ISA + Format: ,... + ad1816= [HW,OSS] Format: ,,, See also Documentation/sound/oss/AD1816. diff -Nru a/Makefile b/Makefile --- a/Makefile Tue Jan 27 21:03:54 2004 +++ b/Makefile Tue Jan 27 21:03:54 2004 @@ -825,8 +825,15 @@ -name '*.[chS]' -print ) endef -quiet_cmd_cscope = MAKE $@ -cmd_cscope = $(all-sources) | cscope -k -b -i - +quiet_cmd_cscope-file = FILELST cscope.files + cmd_cscope-file = $(all-sources) > cscope.files + +quiet_cmd_cscope = MAKE cscope.out + cmd_cscope = cscope -k -b + +cscope: FORCE + $(call cmd,cscope-file) + $(call cmd,cscope) quiet_cmd_TAGS = MAKE $@ cmd_TAGS = $(all-sources) | etags - @@ -839,9 +846,6 @@ CTAGSF=`ctags --version | grep -i exuberant >/dev/null && echo "-I __initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS"`; \ $(all-sources) | xargs ctags $$CTAGSF -a endef - -cscope: FORCE - $(call cmd,cscope) TAGS: FORCE $(call cmd,TAGS) diff -Nru a/arch/i386/boot/setup.S b/arch/i386/boot/setup.S --- a/arch/i386/boot/setup.S Tue Jan 27 21:03:54 2004 +++ b/arch/i386/boot/setup.S Tue Jan 27 21:03:54 2004 @@ -307,7 +307,7 @@ # a whole bunch of different types, and allows memory holes and # everything. We scan through this memory map and build a list # of the first 32 memory areas, which we return at [E820MAP]. -# This is documented at http://www.teleport.com/~acpi/acpihtml/topic245.htm +# This is documented at http://www.acpi.info/, in the ACPI 2.0 specification. #define SMAP 0x534d4150 diff -Nru a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c --- a/arch/i386/kernel/acpi/boot.c Tue Jan 27 21:03:55 2004 +++ b/arch/i386/kernel/acpi/boot.c Tue Jan 27 21:03:55 2004 @@ -41,9 +41,8 @@ #define PREFIX "ACPI: " -extern int acpi_disabled; -extern int acpi_irq; -extern int acpi_ht; +int acpi_noirq __initdata = 0; /* skip ACPI IRQ initialization */ +int acpi_ht __initdata = 1; /* enable HT */ int acpi_lapic = 0; int acpi_ioapic = 0; @@ -250,29 +249,66 @@ #ifdef CONFIG_ACPI_BUS /* - * Set specified PIC IRQ to level triggered mode. + * "acpi_pic_sci=level" (current default) + * programs the PIC-mode SCI to Level Trigger. + * (NO-OP if the BIOS set Level Trigger already) + * + * If a PIC-mode SCI is not recogznied or gives spurious IRQ7's + * it may require Edge Trigger -- use "acpi_pic_sci=edge" + * (NO-OP if the BIOS set Edge Trigger already) * * Port 0x4d0-4d1 are ECLR1 and ECLR2, the Edge/Level Control Registers * for the 8259 PIC. bit[n] = 1 means irq[n] is Level, otherwise Edge. * ECLR1 is IRQ's 0-7 (IRQ 0, 1, 2 must be 0) * ECLR2 is IRQ's 8-15 (IRQ 8, 13 must be 0) - * - * As the BIOS should have done this for us, - * print a warning if the IRQ wasn't already set to level. */ -void acpi_pic_set_level_irq(unsigned int irq) +static int __initdata acpi_pic_sci_trigger; /* 0: level, 1: edge */ + +void __init +acpi_pic_sci_set_trigger(unsigned int irq) { unsigned char mask = 1 << (irq & 7); unsigned int port = 0x4d0 + (irq >> 3); unsigned char val = inb(port); + + printk(PREFIX "IRQ%d SCI:", irq); if (!(val & mask)) { - printk(KERN_WARNING PREFIX "IRQ %d was Edge Triggered, " - "setting to Level Triggerd\n", irq); - outb(val | mask, port); + printk(" Edge"); + + if (!acpi_pic_sci_trigger) { + printk(" set to Level"); + outb(val | mask, port); + } + } else { + printk(" Level"); + + if (acpi_pic_sci_trigger) { + printk(" set to Edge"); + outb(val | mask, port); + } + } + printk(" Trigger.\n"); +} + +int __init +acpi_pic_sci_setup(char *str) +{ + while (str && *str) { + if (strncmp(str, "level", 5) == 0) + acpi_pic_sci_trigger = 0; /* force level trigger */ + if (strncmp(str, "edge", 4) == 0) + acpi_pic_sci_trigger = 1; /* force edge trigger */ + str = strchr(str, ','); + if (str) + str += strspn(str, ", \t"); } + return 1; } + +__setup("acpi_pic_sci=", acpi_pic_sci_setup); + #endif /* CONFIG_ACPI_BUS */ @@ -387,8 +423,10 @@ * Initialize the ACPI boot-time table parser. */ result = acpi_table_init(); - if (result) + if (result) { + acpi_disabled = 1; return result; + } result = acpi_blacklisted(); if (result) { @@ -469,7 +507,7 @@ * If MPS is present, it will handle them, * otherwise the system will stay in PIC mode */ - if (acpi_disabled || !acpi_irq) { + if (acpi_disabled || acpi_noirq) { return 1; } @@ -510,6 +548,8 @@ } acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC; + + acpi_irq_balance_set(NULL); acpi_ioapic = 1; diff -Nru a/arch/i386/kernel/cpu/cpufreq/acpi.c b/arch/i386/kernel/cpu/cpufreq/acpi.c --- a/arch/i386/kernel/cpu/cpufreq/acpi.c Tue Jan 27 21:03:53 2004 +++ b/arch/i386/kernel/cpu/cpufreq/acpi.c Tue Jan 27 21:03:53 2004 @@ -108,7 +108,7 @@ } perf->control_register = (u16) reg->address; - + perf->control_register_bit_width = reg->bit_width; /* * status_register */ @@ -135,6 +135,7 @@ } perf->status_register = (u16) reg->address; + perf->status_register_bit_width = reg->bit_width; ACPI_DEBUG_PRINT((ACPI_DB_INFO, "control_register[0x%04x] status_register[0x%04x]\n", @@ -224,6 +225,42 @@ return_VALUE(result); } +static int +acpi_processor_write_port( + u16 port, + u8 bit_width, + u32 value) +{ + if (bit_width <= 8) { + outb(value, port); + } else if (bit_width <= 16) { + outw(value, port); + } else if (bit_width <= 32) { + outl(value, port); + } else { + return -ENODEV; + } + return 0; +} + +static int +acpi_processor_read_port( + u16 port, + u8 bit_width, + u32 *ret) +{ + *ret = 0; + if (bit_width <= 8) { + *ret = inb(port); + } else if (bit_width <= 16) { + *ret = inw(port); + } else if (bit_width <= 32) { + *ret = inl(port); + } else { + return -ENODEV; + } + return 0; +} static int acpi_processor_set_performance ( @@ -231,7 +268,9 @@ int state) { u16 port = 0; - u16 value = 0; + u8 bit_width = 0; + int ret = 0; + u32 value = 0; int i = 0; struct cpufreq_freqs cpufreq_freqs; @@ -279,12 +318,18 @@ */ port = perf->control_register; - value = (u16) perf->states[state].control; + bit_width = perf->control_register_bit_width; + value = (u32) perf->states[state].control; ACPI_DEBUG_PRINT((ACPI_DB_INFO, - "Writing 0x%04x to port 0x%04x\n", value, port)); + "Writing 0x%08x to port 0x%04x\n", value, port)); - outw(value, port); + ret = acpi_processor_write_port(port, bit_width, value); + if (ret) { + ACPI_DEBUG_PRINT((ACPI_DB_WARN, + "Invalid port width 0x%04x\n", bit_width)); + return_VALUE(ret); + } /* * Then we read the 'status_register' and compare the value with the @@ -294,14 +339,20 @@ */ port = perf->status_register; + bit_width = perf->status_register_bit_width; ACPI_DEBUG_PRINT((ACPI_DB_INFO, - "Looking for 0x%04x from port 0x%04x\n", - (u16) perf->states[state].status, port)); + "Looking for 0x%08x from port 0x%04x\n", + (u32) perf->states[state].status, port)); for (i=0; i<100; i++) { - value = inw(port); - if (value == (u16) perf->states[state].status) + ret = acpi_processor_read_port(port, bit_width, &value); + if (ret) { + ACPI_DEBUG_PRINT((ACPI_DB_WARN, + "Invalid port width 0x%04x\n", bit_width)); + return_VALUE(ret); + } + if (value == (u32) perf->states[state].status) break; udelay(10); } @@ -309,7 +360,7 @@ /* notify cpufreq */ cpufreq_notify_transition(&cpufreq_freqs, CPUFREQ_POSTCHANGE); - if (value != (u16) perf->states[state].status) { + if (value != (u32) perf->states[state].status) { unsigned int tmp = cpufreq_freqs.new; cpufreq_freqs.new = cpufreq_freqs.old; cpufreq_freqs.old = tmp; diff -Nru a/arch/i386/kernel/dmi_scan.c b/arch/i386/kernel/dmi_scan.c --- a/arch/i386/kernel/dmi_scan.c Tue Jan 27 21:03:53 2004 +++ b/arch/i386/kernel/dmi_scan.c Tue Jan 27 21:03:53 2004 @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -16,6 +17,7 @@ int is_sony_vaio_laptop; int is_unsafe_smbus; +int es7000_plat = 0; struct dmi_header { @@ -520,6 +522,7 @@ } +#ifdef CONFIG_ACPI_BOOT extern int acpi_disabled, acpi_force; static __init __attribute__((unused)) int acpi_disable(struct dmi_blacklist *d) @@ -534,8 +537,6 @@ return 0; } - -#ifdef CONFIG_ACPI_BOOT extern int acpi_ht; /* @@ -558,10 +559,8 @@ #ifdef CONFIG_ACPI_PCI static __init int disable_acpi_pci(struct dmi_blacklist *d) { - extern __init void pci_disable_acpi(void) ; - printk(KERN_NOTICE "%s detected: force use of pci=noacpi\n", d->ident); - pci_disable_acpi(); + acpi_noirq_set(); return 0; } #endif @@ -1065,6 +1064,7 @@ printk(KERN_NOTICE "ACPI disabled because your bios is from %s and too old\n", s); printk(KERN_NOTICE "You can enable it with acpi=force\n"); acpi_disabled = 1; + acpi_ht = 0; } } } diff -Nru a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c --- a/arch/i386/kernel/io_apic.c Tue Jan 27 21:03:53 2004 +++ b/arch/i386/kernel/io_apic.c Tue Jan 27 21:03:53 2004 @@ -1650,10 +1650,6 @@ unsigned char old_id; unsigned long flags; - if (acpi_ioapic) - /* This gets done during IOAPIC enumeration for ACPI. */ - return; - /* * This is broken; anything with a real cpu count has to * circumvent this idiocy regardless. @@ -2286,12 +2282,14 @@ /* * Set up IO-APIC IRQ routing. */ - setup_ioapic_ids_from_mpc(); + if (!acpi_ioapic) + setup_ioapic_ids_from_mpc(); sync_Arb_IDs(); setup_IO_APIC_irqs(); init_IO_APIC_traps(); check_timer(); - print_IO_APIC(); + if (!acpi_ioapic) + print_IO_APIC(); } /* diff -Nru a/arch/i386/kernel/mpparse.c b/arch/i386/kernel/mpparse.c --- a/arch/i386/kernel/mpparse.c Tue Jan 27 21:03:53 2004 +++ b/arch/i386/kernel/mpparse.c Tue Jan 27 21:03:53 2004 @@ -1081,8 +1081,14 @@ ioapic_pin = irq - mp_ioapic_routing[ioapic].irq_start; + /* + * MPS INTI flags: + * trigger: 0=default, 1=edge, 3=level + * polarity: 0=default, 1=high, 3=low + * Per ACPI spec, default for SCI means level/low. + */ io_apic_set_pci_routing(ioapic, ioapic_pin, irq, - (flags.trigger >> 1) , (flags.polarity >> 1)); + (flags.trigger == 1 ? 0 : 1), (flags.polarity == 1 ? 0 : 1)); } #ifdef CONFIG_ACPI_PCI @@ -1129,8 +1135,11 @@ continue; ioapic_pin = irq - mp_ioapic_routing[ioapic].irq_start; - if (!ioapic && (irq < 16)) - irq += 16; + if (es7000_plat) { + if (!ioapic && (irq < 16)) + irq += 16; + } + /* * Avoid pin reprogramming. PRTs typically include entries * with redundant pin->irq mappings (but unique PCI devices); @@ -1166,6 +1175,10 @@ mp_ioapic_routing[ioapic].apic_id, ioapic_pin, entry->irq); } + + print_IO_APIC(); + + return; } #endif /*CONFIG_ACPI_PCI*/ diff -Nru a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c --- a/arch/i386/kernel/setup.c Tue Jan 27 21:03:53 2004 +++ b/arch/i386/kernel/setup.c Tue Jan 27 21:03:53 2004 @@ -78,13 +78,10 @@ EXPORT_SYMBOL(acpi_disabled); #ifdef CONFIG_ACPI_BOOT - int acpi_irq __initdata = 1; /* enable IRQ */ - int acpi_ht __initdata = 1; /* enable HT */ +extern int __initdata acpi_ht; +int __initdata acpi_force = 0; #endif -int acpi_force __initdata = 0; - - int MCA_bus; /* for MCA, but anyone else can use it if they want */ unsigned int machine_id; @@ -573,7 +570,7 @@ /* "pci=noacpi" disables ACPI interrupt routing */ else if (!memcmp(from, "pci=noacpi", 10)) { - acpi_irq = 0; + acpi_noirq_set(); } #ifdef CONFIG_X86_LOCAL_APIC diff -Nru a/arch/i386/mach-es7000/es7000.c b/arch/i386/mach-es7000/es7000.c --- a/arch/i386/mach-es7000/es7000.c Tue Jan 27 21:03:55 2004 +++ b/arch/i386/mach-es7000/es7000.c Tue Jan 27 21:03:55 2004 @@ -51,8 +51,6 @@ int mip_port; unsigned long mip_addr, host_addr; -static int es7000_plat; - /* * Parse the OEM Table */ diff -Nru a/arch/i386/pci/acpi.c b/arch/i386/pci/acpi.c --- a/arch/i386/pci/acpi.c Tue Jan 27 21:03:54 2004 +++ b/arch/i386/pci/acpi.c Tue Jan 27 21:03:54 2004 @@ -18,7 +18,7 @@ if (pcibios_scanned) return 0; - if (!(pci_probe & PCI_NO_ACPI_ROUTING)) { + if (!acpi_noirq) { if (!acpi_pci_irq_init()) { printk(KERN_INFO "PCI: Using ACPI for IRQ routing\n"); printk(KERN_INFO "PCI: if you experience problems, try using option 'pci=noacpi' or even 'acpi=off'\n"); @@ -31,15 +31,4 @@ return 0; } - -/* - * pci_disable_acpi() - * act like pci=noacpi seen on command line - * called by DMI blacklist code - */ -__init void pci_disable_acpi(void) -{ - pci_probe |= PCI_NO_ACPI_ROUTING; -} - subsys_initcall(pci_acpi_init); diff -Nru a/arch/i386/pci/common.c b/arch/i386/pci/common.c --- a/arch/i386/pci/common.c Tue Jan 27 21:03:53 2004 +++ b/arch/i386/pci/common.c Tue Jan 27 21:03:53 2004 @@ -9,6 +9,7 @@ #include #include +#include #include #include #include @@ -197,12 +198,10 @@ return NULL; } #endif -#ifdef CONFIG_ACPI_PCI else if (!strcmp(str, "noacpi")) { - pci_probe |= PCI_NO_ACPI_ROUTING; + acpi_noirq_set(); return NULL; } -#endif #ifndef CONFIG_X86_VISWS else if (!strcmp(str, "usepirqmask")) { pci_probe |= PCI_USE_PIRQ_MASK; diff -Nru a/arch/i386/pci/pci.h b/arch/i386/pci/pci.h --- a/arch/i386/pci/pci.h Tue Jan 27 21:03:54 2004 +++ b/arch/i386/pci/pci.h Tue Jan 27 21:03:54 2004 @@ -22,7 +22,6 @@ #define PCI_ASSIGN_ROMS 0x1000 #define PCI_BIOS_IRQ_SCAN 0x2000 #define PCI_ASSIGN_ALL_BUSSES 0x4000 -#define PCI_NO_ACPI_ROUTING 0x8000 extern unsigned int pci_probe; diff -Nru a/arch/ia64/Kconfig b/arch/ia64/Kconfig --- a/arch/ia64/Kconfig Tue Jan 27 21:03:55 2004 +++ b/arch/ia64/Kconfig Tue Jan 27 21:03:55 2004 @@ -16,10 +16,11 @@ The Itanium Processor Family is Intel's 64-bit successor to the 32-bit X86 line. The IA-64 Linux project has a home page at and a mailing list at - linux-ia64@linuxia64.org. + linux-ia64@vger.kernel.org. config 64BIT - def_bool y + bool + default y config MMU bool @@ -38,13 +39,13 @@ default y choice - prompt "IA-64 processor type" + prompt "Processor type" default ITANIUM config ITANIUM bool "Itanium" help - Select your IA-64 processor type. The default is Intel Itanium. + Select your IA-64 processor type. The default is Itanium. This choice is safe for all IA-64 systems, but may not perform optimally on systems with, say, Itanium 2 or newer processors. @@ -56,7 +57,7 @@ endchoice choice - prompt "IA-64 system type" + prompt "System type" default IA64_GENERIC config IA64_GENERIC @@ -65,17 +66,16 @@ select ACPI_NUMA select VIRTUAL_MEM_MAP select DISCONTIGMEM - ---help--- + help This selects the system type of your hardware. A "generic" kernel will run on any supported IA-64 system. However, if you configure a kernel for your specific system, it will be faster and smaller. - DIG-compliant For DIG ("Developer's Interface Guide") compliant - systems - HP-zx1 For HP systems + generic For any supported IA-64 system + DIG-compliant For DIG ("Developer's Interface Guide") compliant systems + HP-zx1/sx1000 For HP systems SGI-SN2 For SGI Altix systems - Ski-simulator For the HP simulator - () + Ski-simulator For the HP simulator () If you don't know what to do, choose "generic". @@ -83,11 +83,10 @@ bool "DIG-compliant" config IA64_HP_ZX1 - bool "HP-zx1" + bool "HP-zx1/sx1000" help - Build a kernel that runs on HP zx1-based systems. This adds support - for the zx1 I/O MMU and makes root bus bridges appear in PCI config - space (required for zx1 agpgart support). + Build a kernel that runs on HP zx1 and sx1000 systems. This adds + support for the HP I/O MMU. config IA64_SGI_SN2 bool "SGI-SN2" @@ -103,7 +102,7 @@ config IA64_PAGE_SIZE_4KB bool "4KB" - ---help--- + help This lets you select the page size of the kernel. For best IA-64 performance, a page size of 8KB or 16KB is recommended. For best IA-32 compatibility, a page size of 4KB should be selected (the vast @@ -134,7 +133,7 @@ bool depends on !IA64_HP_SIM default y - ---help--- + help ACPI/OSPM support for Linux is currently under development. As such, this support is preliminary and EXPERIMENTAL. Configuring ACPI support enables kernel interfaces that allow higher level software @@ -182,7 +181,7 @@ default y config ITANIUM_BSTEP_SPECIFIC - bool "Enable Itanium B-step specific code" + bool "Itanium B-step specific code" depends on ITANIUM help Select this option to build a kernel for an Itanium prototype system @@ -197,38 +196,30 @@ # align cache-sensitive data to 64 bytes config MCKINLEY_ASTEP_SPECIFIC - bool "Enable McKinley A-step specific code" + bool "McKinley A-step specific code" depends on MCKINLEY help Select this option to build a kernel for an IA-64 McKinley prototype system with any A-stepping CPU. config MCKINLEY_A0_SPECIFIC - bool "Enable McKinley A0/A1-step specific code" + bool "McKinley A0/A1-step specific code" depends on MCKINLEY_ASTEP_SPECIFIC help Select this option to build a kernel for an IA-64 McKinley prototype system with an A0 or A1 stepping CPU. config NUMA - bool "Enable NUMA support" if IA64_GENERIC || IA64_DIG || IA64_HP_ZX1 - default y if IA64_SGI_SN2 || IA64_GENERIC + bool "NUMA support" + depends on !IA64_HP_SIM + default y if IA64_SGI_SN2 help Say Y to compile the kernel to support NUMA (Non-Uniform Memory Access). This option is for configuring high-end multiprocessor server systems. If in doubt, say N. -config DISCONTIGMEM - bool "Discontiguous memory support" if (IA64_DIG || IA64_SGI_SN2 || IA64_GENERIC) && NUMA && VIRTUAL_MEM_MAP - default y if (IA64_SGI_SN2 || IA64_GENERIC) && NUMA - help - Say Y to support efficient handling of discontiguous physical memory, - for architectures which are either NUMA (Non-Uniform Memory Access) - or have huge holes in the physical address space for other reasons. - See for more. - config VIRTUAL_MEM_MAP - bool "Enable Virtual Mem Map" + bool "Virtual mem map" default y if !IA64_HP_SIM help Say Y to compile the kernel with support for a virtual mem map. @@ -237,8 +228,18 @@ require the DISCONTIGMEM option for your machine. If you are unsure, say Y. +config DISCONTIGMEM + bool "Discontiguous memory support" + depends on (IA64_DIG || IA64_SGI_SN2 || IA64_GENERIC) && NUMA && VIRTUAL_MEM_MAP + default y if (IA64_SGI_SN2 || IA64_GENERIC) && NUMA + help + Say Y to support efficient handling of discontiguous physical memory, + for architectures which are either NUMA (Non-Uniform Memory Access) + or have huge holes in the physical address space for other reasons. + See for more. + config IA64_MCA - bool "Enable IA-64 Machine Check Abort" + bool "Machine Check Abort" default y if !IA64_HP_SIM help Say Y here to enable machine check support for IA-64. If you're @@ -248,7 +249,7 @@ bool "Power Management support" depends on IA64_GENERIC || IA64_DIG || IA64_HP_ZX1 default y - ---help--- + help "Power Management" means that parts of your computer are shut off or put into a power conserving "sleep" mode if they are not being used. There are two competing standards for doing this: APM @@ -257,8 +258,7 @@ Power Management is most important for battery powered laptop computers; if you have a laptop, check out the Linux Laptop home - page on the WWW at - and the + page on the WWW at and the Battery Powered Linux mini-HOWTO, available from . @@ -268,11 +268,11 @@ config IOSAPIC bool - depends on IA64_GENERIC || IA64_DIG || IA64_HP_ZX1 || IA64_SGI_SN2 + depends on !IA64_HP_SIM default y config IA64_SGI_SN_SIM - bool "Enable SGI Medusa Simulator Support" + bool "SGI Medusa Simulator Support" depends on IA64_SGI_SN2 help If you are compiling a kernel that will run under SGI's IA-64 @@ -283,7 +283,7 @@ default "18" choice - prompt "IA-64 Huge TLB Page Size" + prompt "Huge TLB page size" depends on HUGETLB_PAGE default HUGETLB_PAGE_SIZE_16MB @@ -317,7 +317,7 @@ config IA64_PAL_IDLE bool "Use PAL_HALT_LIGHT in idle loop" - ---help--- + help Say Y here to enable use of PAL_HALT_LIGHT in the cpu_idle loop. This allows the CPU to enter a low power state when idle. You can enable CONFIG_IA64_PALINFO and check /proc/pal/cpu0/power_info @@ -325,24 +325,35 @@ unsure your firmware supports it, answer N. config SMP - bool "SMP support" - ---help--- + bool "Symmetric multi-processing support" + help This enables support for systems with more than one CPU. If you have - a system with only one CPU say N. If you have a system with more than - one CPU, say Y. + a system with only one CPU, say N. If you have a system with more + than one CPU, say Y. If you say N here, the kernel will run on single and multiprocessor - systems, but will use only one CPU of a multiprocessor system. If + systems, but will use only one CPU of a multiprocessor system. If you say Y here, the kernel will run on many, but not all, - singleprocessor system. On a singleprocessor system, the kernel + single processor systems. On a single processor system, the kernel will run faster if you say N here. - See also the , - , and the SMP-HOWTO available at - . + See also the and the SMP-HOWTO + available at . If you don't know what to do here, say N. +config NR_CPUS + int "Maximum number of CPUs (2-512)" + range 2 512 + depends on SMP + default "64" + help + You should set this to the number of CPUs in your system, but + keep in mind that a kernel compiled for, e.g., 2 CPUs will boot but + only use 2 CPUs on a >2 CPU system. Setting this to a value larger + than 64 will cause the use of a CPU mask array, causing a small + performance hit. + config PREEMPT bool "Preemptible Kernel" help @@ -355,8 +366,13 @@ Say Y here if you are building a kernel for a desktop, embedded or real-time system. Say N if you are unsure. +config HAVE_DEC_LOCK + bool + depends on (SMP || PREEMPT) + default y + config IA32_SUPPORT - bool "Support running of Linux/x86 binaries" + bool "Support for Linux/x86 binaries" help IA-64 processors can execute IA-32 (X86) instructions. By saying Y here, the kernel will include IA-32 system call @@ -369,11 +385,6 @@ depends on IA32_SUPPORT default y -config HAVE_DEC_LOCK - bool - depends on (SMP || PREEMPT) - default y - config PERFMON bool "Performance monitor support" help @@ -393,7 +404,6 @@ To use this option, you have to ensure that the "/proc file system support" (CONFIG_PROC_FS) is enabled, too. - config EFI_VARS tristate "/proc/efi/vars support" help @@ -404,18 +414,6 @@ To use this option, you have to check that the "/proc file system support" (CONFIG_PROC_FS) is enabled, too. -config NR_CPUS - int "Maximum number of CPUs (2-512)" - range 2 512 - depends on SMP - default "64" - help - You should set this to the number of CPUs in your system, but - keep in mind that a kernel compiled for, e.g., 2 CPUs will boot but - only use 2 CPUs on a >2 CPU system. Setting this to a value larger - than 64 will cause the use of a CPU mask array, causing a small - performance hit. - source "fs/Kconfig.binfmt" if !IA64_HP_SIM @@ -443,7 +441,7 @@ config HOTPLUG bool "Support for hot-pluggable devices" - ---help--- + help Say Y here if you want to plug devices into your computer while the system is running, and be able to use them quickly. In many cases, the devices can likewise be unplugged at any time too. @@ -509,6 +507,8 @@ source "drivers/input/Kconfig" source "drivers/char/Kconfig" + +source "drivers/i2c/Kconfig" #source drivers/misc/Config.in source "drivers/media/Kconfig" diff -Nru a/arch/ia64/hp/common/sba_iommu.c b/arch/ia64/hp/common/sba_iommu.c --- a/arch/ia64/hp/common/sba_iommu.c Tue Jan 27 21:03:53 2004 +++ b/arch/ia64/hp/common/sba_iommu.c Tue Jan 27 21:03:53 2004 @@ -158,6 +158,10 @@ #define IOC_TCNFG 0x318 #define IOC_PDIR_BASE 0x320 +#define IOC_ROPE0_CFG 0x500 +#define IOC_ROPE_AO 0x10 /* Allow "Relaxed Ordering" */ + + /* AGP GART driver looks for this */ #define ZX1_SBA_IOMMU_COOKIE 0x0000badbadc0ffeeUL @@ -1361,6 +1365,7 @@ #ifdef FULL_VALID_PDIR unsigned long index; #endif + unsigned int i; /* ** Firmware programs the base and size of a "safe IOVA space" @@ -1455,6 +1460,18 @@ /* Enable IOVA translation */ WRITE_REG(ioc->ibase | 1, ioc->ioc_hpa + IOC_IBASE); READ_REG(ioc->ioc_hpa + IOC_IBASE); + + /* Clear ROPE(N)_CONFIG AO bit. + ** Disables "NT Ordering" (~= !"Relaxed Ordering") + ** Overrides bit 1 in DMA Hint Sets. + ** Improves netperf UDP_STREAM by ~10% for tg3 on bcm5701. + */ + for (i=0; i<(8*8); i+=8) { + unsigned long rope_config; + rope_config = READ_REG(ioc->ioc_hpa + IOC_ROPE0_CFG + i); + rope_config &= ~IOC_ROPE_AO; + WRITE_REG(rope_config, ioc->ioc_hpa + IOC_ROPE0_CFG + i); + } } static void __init diff -Nru a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S --- a/arch/ia64/kernel/entry.S Tue Jan 27 21:03:53 2004 +++ b/arch/ia64/kernel/entry.S Tue Jan 27 21:03:53 2004 @@ -489,18 +489,35 @@ * because some system calls (such as ia64_execve) directly * manipulate ar.pfs. */ - .global ia64_strace_leave_kernel - GLOBAL_ENTRY(ia64_trace_syscall) PT_REGS_UNWIND_INFO(0) -{ /* - * Some versions of gas generate bad unwind info if the first instruction of a - * procedure doesn't go into the first slot of a bundle. This is a workaround. + /* + * We need to preserve the scratch registers f6-f11 in case the system + * call is sigreturn. */ - nop.m 0 - nop.i 0 + adds r16=PT(F6)+16,sp + adds r17=PT(F7)+16,sp + ;; + stf.spill [r16]=f6,32 + stf.spill [r17]=f7,32 + ;; + stf.spill [r16]=f8,32 + stf.spill [r17]=f9,32 + ;; + stf.spill [r16]=f10 + stf.spill [r17]=f11 br.call.sptk.many rp=syscall_trace // give parent a chance to catch syscall args -} + adds r16=PT(F6)+16,sp + adds r17=PT(F7)+16,sp + ;; + ldf.fill f6=[r16],32 + ldf.fill f7=[r17],32 + ;; + ldf.fill f8=[r16],32 + ldf.fill f9=[r17],32 + ;; + ldf.fill f10=[r16] + ldf.fill f11=[r17] // the syscall number may have changed, so re-load it and re-calculate the // syscall entry-point: adds r15=PT(R15)+16,sp // r15 = &pt_regs.r15 (syscall #) @@ -529,9 +546,8 @@ .strace_save_retval: .mem.offset 0,0; st8.spill [r2]=r8 // store return value in slot for r8 .mem.offset 8,0; st8.spill [r3]=r10 // clear error indication in slot for r10 -ia64_strace_leave_kernel: br.call.sptk.many rp=syscall_trace // give parent a chance to catch return value -.rety: br.cond.sptk ia64_leave_syscall +.ret3: br.cond.sptk ia64_leave_syscall strace_error: ld8 r3=[r2] // load pt_regs.r8 @@ -544,6 +560,23 @@ (p6) mov r8=r9 br.cond.sptk .strace_save_retval END(ia64_trace_syscall) + + /* + * When traced and returning from sigreturn, we invoke syscall_trace but then + * go straight to ia64_leave_kernel rather than ia64_leave_syscall. + */ +GLOBAL_ENTRY(ia64_strace_leave_kernel) + PT_REGS_UNWIND_INFO(0) +{ /* + * Some versions of gas generate bad unwind info if the first instruction of a + * procedure doesn't go into the first slot of a bundle. This is a workaround. + */ + nop.m 0 + nop.i 0 + br.call.sptk.many rp=syscall_trace // give parent a chance to catch return value +} +.ret4: br.cond.sptk ia64_leave_kernel +END(ia64_strace_leave_kernel) GLOBAL_ENTRY(ia64_ret_from_clone) PT_REGS_UNWIND_INFO(0) diff -Nru a/arch/ia64/kernel/ia64_ksyms.c b/arch/ia64/kernel/ia64_ksyms.c --- a/arch/ia64/kernel/ia64_ksyms.c Tue Jan 27 21:03:53 2004 +++ b/arch/ia64/kernel/ia64_ksyms.c Tue Jan 27 21:03:53 2004 @@ -103,20 +103,22 @@ #include EXPORT_SYMBOL(unw_init_running); -#ifdef CONFIG_SMP -# if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 3) +#ifdef ASM_SUPPORTED +# ifdef CONFIG_SMP +# if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 3) /* * This is not a normal routine and we don't want a function descriptor for it, so we use * a fake declaration here. */ extern char ia64_spinlock_contention_pre3_4; EXPORT_SYMBOL(ia64_spinlock_contention_pre3_4); -# else +# else /* * This is not a normal routine and we don't want a function descriptor for it, so we use * a fake declaration here. */ extern char ia64_spinlock_contention; EXPORT_SYMBOL(ia64_spinlock_contention); +# endif # endif #endif diff -Nru a/arch/ia64/kernel/irq_lsapic.c b/arch/ia64/kernel/irq_lsapic.c --- a/arch/ia64/kernel/irq_lsapic.c Tue Jan 27 21:03:53 2004 +++ b/arch/ia64/kernel/irq_lsapic.c Tue Jan 27 21:03:53 2004 @@ -33,6 +33,5 @@ .enable = lsapic_noop, .disable = lsapic_noop, .ack = lsapic_noop, - .end = lsapic_noop, - .set_affinity = (void (*)(unsigned int, unsigned long)) lsapic_noop + .end = lsapic_noop }; diff -Nru a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c --- a/arch/ia64/kernel/smpboot.c Tue Jan 27 21:03:53 2004 +++ b/arch/ia64/kernel/smpboot.c Tue Jan 27 21:03:53 2004 @@ -467,10 +467,10 @@ #ifdef CONFIG_NUMA /* on which node is each logical CPU (one cacheline even for 64 CPUs) */ -volatile u8 cpu_to_node_map[NR_CPUS] __cacheline_aligned; +u8 cpu_to_node_map[NR_CPUS] __cacheline_aligned; EXPORT_SYMBOL(cpu_to_node_map); /* which logical CPUs are on which nodes */ -volatile cpumask_t node_to_cpu_mask[MAX_NUMNODES] __cacheline_aligned; +cpumask_t node_to_cpu_mask[MAX_NUMNODES] __cacheline_aligned; /* * Build cpu to node mapping and initialize the per node cpu masks. @@ -566,8 +566,8 @@ if (cpu_online(cpu)) bogosum += cpu_data(cpu)->loops_per_jiffy; - printk(KERN_INFO "Total of %lu processors activated (%lu.%02lu BogoMIPS).\n", - num_online_cpus(), bogosum/(500000/HZ), (bogosum/(5000/HZ))%100); + printk(KERN_INFO "Total of %d processors activated (%lu.%02lu BogoMIPS).\n", + (int)num_online_cpus(), bogosum/(500000/HZ), (bogosum/(5000/HZ))%100); } int __devinit diff -Nru a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c --- a/arch/ia64/kernel/time.c Tue Jan 27 21:03:53 2004 +++ b/arch/ia64/kernel/time.c Tue Jan 27 21:03:53 2004 @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -242,6 +243,8 @@ timer_interrupt (int irq, void *dev_id, struct pt_regs *regs) { unsigned long new_itm; + + platform_timer_interrupt(irq, dev_id, regs); new_itm = local_cpu_data->itm_next; diff -Nru a/arch/ia64/sn/io/sn2/xbow.c b/arch/ia64/sn/io/sn2/xbow.c --- a/arch/ia64/sn/io/sn2/xbow.c Tue Jan 27 21:03:53 2004 +++ b/arch/ia64/sn/io/sn2/xbow.c Tue Jan 27 21:03:53 2004 @@ -153,7 +153,7 @@ #if DEBUG && ATTACH_DEBUG char name[MAXDEVNAME]; #endif - static void xbow_errintr_handler(int, void *, struct pt_regs *); + static irqreturn_t xbow_errintr_handler(int, void *, struct pt_regs *); #if DEBUG && ATTACH_DEBUG diff -Nru a/arch/ia64/sn/kernel/sn2/Makefile b/arch/ia64/sn/kernel/sn2/Makefile --- a/arch/ia64/sn/kernel/sn2/Makefile Tue Jan 27 21:03:55 2004 +++ b/arch/ia64/sn/kernel/sn2/Makefile Tue Jan 27 21:03:55 2004 @@ -10,4 +10,4 @@ # obj-y += cache.o io.o ptc_deadlock.o sn2_smp.o sn_proc_fs.o \ - prominfo_proc.o timer.o + prominfo_proc.o timer.o timer_interrupt.o diff -Nru a/arch/ia64/sn/kernel/sn2/sn2_smp.c b/arch/ia64/sn/kernel/sn2/sn2_smp.c --- a/arch/ia64/sn/kernel/sn2/sn2_smp.c Tue Jan 27 21:03:55 2004 +++ b/arch/ia64/sn/kernel/sn2/sn2_smp.c Tue Jan 27 21:03:55 2004 @@ -50,7 +50,7 @@ piows = pda->pio_write_status_addr; do { - __asm__ __volatile__ ("mf.a" ::: "memory"); + ia64_mfa(); } while (((ws = *piows) & SH_PIO_WRITE_STATUS_0_PENDING_WRITE_COUNT_MASK) != SH_PIO_WRITE_STATUS_0_PENDING_WRITE_COUNT_MASK); return ws; @@ -93,7 +93,8 @@ if (is_headless_node(cnode)) continue; if (cnode == mycnode) { - asm volatile ("ptc.ga %0,%1;;srlz.i;;" :: "r"(start), "r"(nbits<<2) : "memory"); + ia64_ptcga(start, nbits<<2); + ia64_srlz_i(); } else { nasid = cnodeid_to_nasid(cnode); ptc0 = CHANGE_NASID(nasid, ptc0); diff -Nru a/arch/ia64/sn/kernel/sn2/timer_interrupt.c b/arch/ia64/sn/kernel/sn2/timer_interrupt.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/arch/ia64/sn/kernel/sn2/timer_interrupt.c Tue Jan 27 21:03:55 2004 @@ -0,0 +1,63 @@ +/* + * + * + * Copyright (c) 2003 Silicon Graphics, Inc. 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. + * + * Further, this software is distributed without any warranty that it is + * free of the rightful claim of any third person regarding infringement + * or the like. Any license provided herein, whether implied or + * otherwise, applies only to this software file. Patent licenses, if + * any, provided herein do not apply to combinations of this program with + * other software, or any other product whatsoever. + * + * 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: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, + * Mountain View, CA 94043, or: + * + * http://www.sgi.com + * + * For further information regarding this notice, see: + * + * http://oss.sgi.com/projects/GenInfo/NoticeExplan + */ + +#include +#include +#include + +extern void sn_lb_int_war_check(void); +extern irqreturn_t timer_interrupt (int irq, void *dev_id, struct pt_regs *regs); + +#define SN_LB_INT_WAR_INTERVAL 100 + +void +sn_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + /* LED blinking */ + if (!pda->hb_count--) { + pda->hb_count = HZ/2; + set_led_bits(pda->hb_state ^= LED_CPU_HEARTBEAT, LED_CPU_HEARTBEAT); + } + + if (enable_shub_wars_1_1()) { + /* Bugfix code for SHUB 1.1 */ + if (pda->pio_shub_war_cam_addr) + *pda->pio_shub_war_cam_addr = 0x8000000000000010UL; + } + if (pda->sn_lb_int_war_ticks == 0) + sn_lb_int_war_check(); + pda->sn_lb_int_war_ticks++; + if (pda->sn_lb_int_war_ticks >= SN_LB_INT_WAR_INTERVAL) + pda->sn_lb_int_war_ticks = 0; +} diff -Nru a/arch/x86_64/kernel/acpi/boot.c b/arch/x86_64/kernel/acpi/boot.c --- a/arch/x86_64/kernel/acpi/boot.c Tue Jan 27 21:03:53 2004 +++ b/arch/x86_64/kernel/acpi/boot.c Tue Jan 27 21:03:53 2004 @@ -46,11 +46,13 @@ #include #include -int acpi_lapic = 0; -int acpi_ioapic = 0; - #define PREFIX "ACPI: " +int acpi_noirq __initdata = 0; /* skip ACPI IRQ initialization */ +int acpi_ht __initdata = 1; /* enable HT */ + +int acpi_lapic = 0; +int acpi_ioapic = 0; /* -------------------------------------------------------------------------- Boot-time Configuration @@ -253,29 +255,66 @@ #ifdef CONFIG_ACPI_BUS /* - * Set specified PIC IRQ to level triggered mode. + * "acpi_pic_sci=level" (current default) + * programs the PIC-mode SCI to Level Trigger. + * (NO-OP if the BIOS set Level Trigger already) + * + * If a PIC-mode SCI is not recogznied or gives spurious IRQ7's + * it may require Edge Trigger -- use "acpi_pic_sci=edge" + * (NO-OP if the BIOS set Edge Trigger already) * * Port 0x4d0-4d1 are ECLR1 and ECLR2, the Edge/Level Control Registers * for the 8259 PIC. bit[n] = 1 means irq[n] is Level, otherwise Edge. * ECLR1 is IRQ's 0-7 (IRQ 0, 1, 2 must be 0) * ECLR2 is IRQ's 8-15 (IRQ 8, 13 must be 0) - * - * As the BIOS should have done this for us, - * print a warning if the IRQ wasn't already set to level. */ -void acpi_pic_set_level_irq(unsigned int irq) +static int __initdata acpi_pic_sci_trigger; /* 0: level, 1: edge */ + +void __init +acpi_pic_sci_set_trigger(unsigned int irq) { unsigned char mask = 1 << (irq & 7); unsigned int port = 0x4d0 + (irq >> 3); unsigned char val = inb(port); + + printk(PREFIX "IRQ%d SCI:", irq); if (!(val & mask)) { - printk(KERN_WARNING PREFIX "IRQ %d was Edge Triggered, " - "setting to Level Triggerd\n", irq); - outb(val | mask, port); + printk(" Edge"); + + if (!acpi_pic_sci_trigger) { + printk(" set to Level"); + outb(val | mask, port); + } + } else { + printk(" Level"); + + if (acpi_pic_sci_trigger) { + printk(" set to Edge"); + outb(val | mask, port); + } } + printk(" Trigger.\n"); } + +int __init +acpi_pic_sci_setup(char *str) +{ + while (str && *str) { + if (strncmp(str, "level", 5) == 0) + acpi_pic_sci_trigger = 0; /* force level trigger */ + if (strncmp(str, "edge", 4) == 0) + acpi_pic_sci_trigger = 1; /* force edge trigger */ + str = strchr(str, ','); + if (str) + str += strspn(str, ", \t"); + } + return 1; +} + +__setup("acpi_pic_sci=", acpi_pic_sci_setup); + #endif /* CONFIG_ACPI_BUS */ static unsigned long __init @@ -354,8 +393,10 @@ * Initialize the ACPI boot-time table parser. */ result = acpi_table_init(); - if (result) + if (result) { + acpi_disabled = 1; return result; + } result = acpi_blacklisted(); if (result) { @@ -442,7 +483,7 @@ * If MPS is present, it will handle them, * otherwise the system will stay in PIC mode */ - if (acpi_disabled) { + if (acpi_disabled || acpi_noirq) { return 1; } @@ -483,6 +524,8 @@ } acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC; + + acpi_irq_balance_set(NULL); acpi_ioapic = 1; diff -Nru a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c --- a/arch/x86_64/kernel/io_apic.c Tue Jan 27 21:03:53 2004 +++ b/arch/x86_64/kernel/io_apic.c Tue Jan 27 21:03:53 2004 @@ -1121,8 +1121,6 @@ unsigned char old_id; unsigned long flags; - if (acpi_ioapic) return; /* ACPI does that already */ - /* * Set the IOAPIC ID to the value stored in the MPC table. */ @@ -1751,12 +1749,14 @@ /* * Set up the IO-APIC IRQ routing table. */ - setup_ioapic_ids_from_mpc(); + if (!acpi_ioapic) + setup_ioapic_ids_from_mpc(); sync_Arb_IDs(); setup_IO_APIC_irqs(); init_IO_APIC_traps(); check_timer(); - print_IO_APIC(); + if (!acpi_ioapic) + print_IO_APIC(); } /* Ensure the ACPI SCI interrupt level is active low, edge-triggered */ diff -Nru a/arch/x86_64/kernel/mpparse.c b/arch/x86_64/kernel/mpparse.c --- a/arch/x86_64/kernel/mpparse.c Tue Jan 27 21:03:53 2004 +++ b/arch/x86_64/kernel/mpparse.c Tue Jan 27 21:03:53 2004 @@ -951,6 +951,8 @@ entry->irq); } + print_IO_APIC(); + return; } diff -Nru a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c --- a/arch/x86_64/kernel/setup.c Tue Jan 27 21:03:53 2004 +++ b/arch/x86_64/kernel/setup.c Tue Jan 27 21:03:53 2004 @@ -65,7 +65,11 @@ EXPORT_SYMBOL_GPL(mmu_cr4_features); int acpi_disabled = 0; -int acpi_ht = 0; + +#ifdef CONFIG_ACPI_BOOT +extern int __initdata acpi_ht; +/* int __initdata acpi_force = 0; */ +#endif /* For PCI or other memory-mapped resources */ unsigned long pci_mem_start = 0x10000000; @@ -195,6 +199,7 @@ if (c != ' ') goto next_char; +#ifdef CONFIG_ACPI_BOOT /* "acpi=off" disables both ACPI table parsing and interpreter init */ if (!memcmp(from, "acpi=off", 8)) acpi_disabled = 1; @@ -210,6 +215,7 @@ if (!memcmp(from, "acpi=ht", 7)) { acpi_ht = 1; } +#endif if (!memcmp(from, "nolapic", 7) || !memcmp(from, "disableapic", 11)) diff -Nru a/drivers/acpi/ac.c b/drivers/acpi/ac.c --- a/drivers/acpi/ac.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/ac.c Tue Jan 27 21:03:53 2004 @@ -108,7 +108,7 @@ FS Interface (/proc) -------------------------------------------------------------------------- */ -struct proc_dir_entry *acpi_ac_dir = NULL; +struct proc_dir_entry *acpi_ac_dir; int acpi_ac_seq_show(struct seq_file *seq, void *offset) { diff -Nru a/drivers/acpi/asus_acpi.c b/drivers/acpi/asus_acpi.c --- a/drivers/acpi/asus_acpi.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/asus_acpi.c Tue Jan 27 21:03:53 2004 @@ -73,8 +73,8 @@ MODULE_LICENSE("GPL"); -static uid_t asus_uid = 0; -static gid_t asus_gid = 0; +static uid_t asus_uid; +static gid_t asus_gid; MODULE_PARM(asus_uid, "i"); MODULE_PARM_DESC(uid, "UID for entries in /proc/acpi/asus.\n"); MODULE_PARM(asus_gid, "i"); @@ -192,14 +192,14 @@ }; /* procdir we use */ -static struct proc_dir_entry *asus_proc_dir = NULL; +static struct proc_dir_entry *asus_proc_dir; /* * This header is made available to allow proper configuration given model, * revision number , ... this info cannot go in struct asus_hotk because it is * available before the hotk */ -static struct acpi_table_header *asus_info = NULL; +static struct acpi_table_header *asus_info; /* * The hotkey driver declaration diff -Nru a/drivers/acpi/battery.c b/drivers/acpi/battery.c --- a/drivers/acpi/battery.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/battery.c Tue Jan 27 21:03:54 2004 @@ -340,7 +340,7 @@ FS Interface (/proc) -------------------------------------------------------------------------- */ -struct proc_dir_entry *acpi_battery_dir = NULL; +struct proc_dir_entry *acpi_battery_dir; static int acpi_battery_read_info ( diff -Nru a/drivers/acpi/bus.c b/drivers/acpi/bus.c --- a/drivers/acpi/bus.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/bus.c Tue Jan 27 21:03:54 2004 @@ -39,7 +39,7 @@ #define _COMPONENT ACPI_BUS_COMPONENT ACPI_MODULE_NAME ("acpi_bus") -extern void acpi_pic_set_level_irq(unsigned int irq); +extern void __init acpi_pic_sci_set_trigger(unsigned int irq); FADT_DESCRIPTOR acpi_fadt; struct acpi_device *acpi_root; @@ -615,7 +615,7 @@ if (acpi_ioapic) mp_config_ioapic_for_sci(acpi_fadt.sci_int); else - acpi_pic_set_level_irq(acpi_fadt.sci_int); + acpi_pic_sci_set_trigger(acpi_fadt.sci_int); #endif status = acpi_enable_subsystem(ACPI_FULL_INITIALIZATION); diff -Nru a/drivers/acpi/button.c b/drivers/acpi/button.c --- a/drivers/acpi/button.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/button.c Tue Jan 27 21:03:53 2004 @@ -107,7 +107,7 @@ FS Interface (/proc) -------------------------------------------------------------------------- */ -static struct proc_dir_entry *acpi_button_dir = NULL; +static struct proc_dir_entry *acpi_button_dir; static int acpi_button_info_seq_show(struct seq_file *seq, void *offset) { diff -Nru a/drivers/acpi/dispatcher/dsfield.c b/drivers/acpi/dispatcher/dsfield.c --- a/drivers/acpi/dispatcher/dsfield.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/dispatcher/dsfield.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/dispatcher/dsinit.c b/drivers/acpi/dispatcher/dsinit.c --- a/drivers/acpi/dispatcher/dsinit.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/dispatcher/dsinit.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -106,7 +106,7 @@ status = acpi_ds_initialize_region (obj_handle); if (ACPI_FAILURE (status)) { ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Region %p [%4.4s] - Init failure, %s\n", - obj_handle, ((struct acpi_namespace_node *) obj_handle)->name.ascii, + obj_handle, acpi_ut_get_node_name (obj_handle), acpi_format_exception (status))); } @@ -141,7 +141,7 @@ status = acpi_ds_parse_method (obj_handle); if (ACPI_FAILURE (status)) { ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Method %p [%4.4s] - parse failure, %s\n", - obj_handle, ((struct acpi_namespace_node *) obj_handle)->name.ascii, + obj_handle, acpi_ut_get_node_name (obj_handle), acpi_format_exception (status))); /* This parse failed, but we will continue parsing more methods */ diff -Nru a/drivers/acpi/dispatcher/dsmethod.c b/drivers/acpi/dispatcher/dsmethod.c --- a/drivers/acpi/dispatcher/dsmethod.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/dispatcher/dsmethod.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -94,7 +94,7 @@ } ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Parsing [%4.4s] **** named_obj=%p\n", - ((struct acpi_namespace_node *) obj_handle)->name.ascii, obj_handle)); + acpi_ut_get_node_name (obj_handle), obj_handle)); /* Extract the method object from the method Node */ @@ -169,7 +169,7 @@ ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** [%4.4s] Parsed **** named_obj=%p Op=%p\n", - ((struct acpi_namespace_node *) obj_handle)->name.ascii, obj_handle, op)); + acpi_ut_get_node_name (obj_handle), obj_handle, op)); acpi_ps_delete_parse_tree (op); return_ACPI_STATUS (status); diff -Nru a/drivers/acpi/dispatcher/dsmthdat.c b/drivers/acpi/dispatcher/dsmthdat.c --- a/drivers/acpi/dispatcher/dsmthdat.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/dispatcher/dsmthdat.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -567,13 +567,13 @@ acpi_status status; struct acpi_namespace_node *node; union acpi_operand_object *current_obj_desc; + union acpi_operand_object *new_obj_desc; ACPI_FUNCTION_TRACE ("ds_store_object_to_local"); ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Opcode=%d Idx=%d Obj=%p\n", opcode, index, obj_desc)); - /* Parameter validation */ if (!obj_desc) { @@ -595,6 +595,18 @@ } /* + * If the reference count on the object is more than one, we must + * take a copy of the object before we store. + */ + new_obj_desc = obj_desc; + if (obj_desc->common.reference_count > 1) { + status = acpi_ut_copy_iobject_to_iobject (obj_desc, &new_obj_desc, walk_state); + if (ACPI_FAILURE (status)) { + return_ACPI_STATUS (status); + } + } + + /* * If there is an object already in this slot, we either * have to delete it, or if this is an argument and there * is an object reference stored there, we have to do @@ -624,8 +636,8 @@ * operand objects of type Reference. */ if (ACPI_GET_DESCRIPTOR_TYPE (current_obj_desc) != ACPI_DESC_TYPE_OPERAND) { - ACPI_REPORT_ERROR (("Invalid descriptor type while storing to method arg: %X\n", - current_obj_desc->common.type)); + ACPI_REPORT_ERROR (("Invalid descriptor type while storing to method arg: [%s]\n", + acpi_ut_get_descriptor_name (current_obj_desc))); return_ACPI_STATUS (AE_AML_INTERNAL); } @@ -636,15 +648,21 @@ if ((current_obj_desc->common.type == ACPI_TYPE_LOCAL_REFERENCE) && (current_obj_desc->reference.opcode == AML_REF_OF_OP)) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, - "Arg (%p) is an obj_ref(Node), storing in node %p\n", - obj_desc, current_obj_desc)); + "Arg (%p) is an obj_ref(Node), storing in node %p\n", + new_obj_desc, current_obj_desc)); /* * Store this object to the Node * (perform the indirect store) */ - status = acpi_ex_store_object_to_node (obj_desc, + status = acpi_ex_store_object_to_node (new_obj_desc, current_obj_desc->reference.object, walk_state); + + /* Remove local reference if we copied the object above */ + + if (new_obj_desc != obj_desc) { + acpi_ut_remove_reference (new_obj_desc); + } return_ACPI_STATUS (status); } } @@ -657,12 +675,18 @@ } /* - * Install the obj_stack descriptor (*obj_desc) into + * Install the Obj descriptor (*new_obj_desc) into * the descriptor for the Arg or Local. - * Install the new object in the stack entry * (increments the object reference count by one) */ - status = acpi_ds_method_data_set_value (opcode, index, obj_desc, walk_state); + status = acpi_ds_method_data_set_value (opcode, index, new_obj_desc, walk_state); + + /* Remove local reference if we copied the object above */ + + if (new_obj_desc != obj_desc) { + acpi_ut_remove_reference (new_obj_desc); + } + return_ACPI_STATUS (status); } diff -Nru a/drivers/acpi/dispatcher/dsobject.c b/drivers/acpi/dispatcher/dsobject.c --- a/drivers/acpi/dispatcher/dsobject.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/dispatcher/dsobject.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/dispatcher/dsopcode.c b/drivers/acpi/dispatcher/dsopcode.c --- a/drivers/acpi/dispatcher/dsopcode.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/dispatcher/dsopcode.c Tue Jan 27 21:03:54 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -201,7 +201,7 @@ ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname (ACPI_TYPE_BUFFER_FIELD, node, NULL)); ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] buffer_field Arg Init\n", - node->name.ascii)); + acpi_ut_get_node_name (node))); /* Execute the AML code for the term_arg arguments */ @@ -346,7 +346,7 @@ ACPI_DEBUG_EXEC (acpi_ut_display_init_pathname (ACPI_TYPE_REGION, node, NULL)); ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] op_region Arg Init at AML %p\n", - node->name.ascii, extra_desc->extra.aml_start)); + acpi_ut_get_node_name (node), extra_desc->extra.aml_start)); /* Execute the argument AML */ @@ -438,8 +438,8 @@ * after resolution in acpi_ex_resolve_operands(). */ if (ACPI_GET_DESCRIPTOR_TYPE (result_desc) != ACPI_DESC_TYPE_NAMED) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "(%s) destination must be a NS Node\n", - acpi_ps_get_opcode_name (aml_opcode))); + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "(%s) destination not a NS Node [%s]\n", + acpi_ps_get_opcode_name (aml_opcode), acpi_ut_get_descriptor_name (result_desc))); status = AE_AML_OPERAND_TYPE; goto cleanup; @@ -514,14 +514,16 @@ goto cleanup; } - /* Entire field must fit within the current length of the buffer */ if ((bit_offset + bit_count) > (8 * (u32) buffer_desc->buffer.length)) { ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, - "Field size %d exceeds Buffer size %d (bits)\n", - bit_offset + bit_count, 8 * (u32) buffer_desc->buffer.length)); + "Field [%4.4s] size %d exceeds Buffer [%4.4s] size %d (bits)\n", + acpi_ut_get_node_name (result_desc), + bit_offset + bit_count, + acpi_ut_get_node_name (buffer_desc->buffer.node), + 8 * (u32) buffer_desc->buffer.length)); status = AE_AML_BUFFER_LIMIT; goto cleanup; } @@ -742,7 +744,7 @@ ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "rgn_obj %p Addr %8.8X%8.8X Len %X\n", obj_desc, - ACPI_HIDWORD (obj_desc->region.address), ACPI_LODWORD (obj_desc->region.address), + ACPI_FORMAT_UINT64 (obj_desc->region.address), obj_desc->region.length)); /* Now the address and length are valid for this opregion */ diff -Nru a/drivers/acpi/dispatcher/dsutils.c b/drivers/acpi/dispatcher/dsutils.c --- a/drivers/acpi/dispatcher/dsutils.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/dispatcher/dsutils.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/dispatcher/dswexec.c b/drivers/acpi/dispatcher/dswexec.c --- a/drivers/acpi/dispatcher/dswexec.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/dispatcher/dswexec.c Tue Jan 27 21:03:55 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -416,10 +416,24 @@ status = acpi_gbl_op_type_dispatch [op_type] (walk_state); } else { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, - "[%s]: Could not resolve operands, %s\n", - acpi_ps_get_opcode_name (walk_state->opcode), - acpi_format_exception (status))); + /* + * Treat constructs of the form "Store(local_x,local_x)" as noops when the + * Local is uninitialized. + */ + if ((status == AE_AML_UNINITIALIZED_LOCAL) && + (walk_state->opcode == AML_STORE_OP) && + (walk_state->operands[0]->common.type == ACPI_TYPE_LOCAL_REFERENCE) && + (walk_state->operands[1]->common.type == ACPI_TYPE_LOCAL_REFERENCE) && + (walk_state->operands[0]->reference.opcode == + walk_state->operands[1]->reference.opcode)) { + status = AE_OK; + } + else { + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + "[%s]: Could not resolve operands, %s\n", + acpi_ps_get_opcode_name (walk_state->opcode), + acpi_format_exception (status))); + } } /* Always delete the argument objects and clear the operand stack */ diff -Nru a/drivers/acpi/dispatcher/dswload.c b/drivers/acpi/dispatcher/dswload.c --- a/drivers/acpi/dispatcher/dswload.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/dispatcher/dswload.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -167,7 +167,7 @@ object_type = walk_state->op_info->object_type; ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, - "State=%p Op=%p [%s] ", walk_state, op, acpi_ut_get_type_name (object_type))); + "State=%p Op=%p [%s]\n", walk_state, op, acpi_ut_get_type_name (object_type))); switch (walk_state->opcode) { case AML_SCOPE_OP: @@ -260,10 +260,12 @@ if ((walk_state->opcode != AML_SCOPE_OP) && (!(walk_state->parse_flags & ACPI_PARSE_DEFERRED_OP))) { flags |= ACPI_NS_ERROR_IF_FOUND; - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DISPATCH, "Cannot already exist\n")); + ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[%s] Cannot already exist\n", + acpi_ut_get_type_name (object_type))); } else { - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DISPATCH, "Both Find or Create allowed\n")); + ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[%s] Both Find or Create allowed\n", + acpi_ut_get_type_name (object_type))); } /* diff -Nru a/drivers/acpi/dispatcher/dswscope.c b/drivers/acpi/dispatcher/dswscope.c --- a/drivers/acpi/dispatcher/dswscope.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/dispatcher/dswscope.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -146,7 +146,7 @@ if (old_scope_info) { ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC, "[%4.4s] (%s)", - old_scope_info->scope.node->name.ascii, + acpi_ut_get_node_name (old_scope_info->scope.node), acpi_ut_get_type_name (old_scope_info->common.value))); } else { @@ -156,7 +156,7 @@ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC, ", New scope -> [%4.4s] (%s)\n", - scope_info->scope.node->name.ascii, + acpi_ut_get_node_name (scope_info->scope.node), acpi_ut_get_type_name (scope_info->common.value))); /* Push new scope object onto stack */ @@ -207,14 +207,14 @@ ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%.2d] Popped scope [%4.4s] (%s), New scope -> ", (u32) walk_state->scope_depth, - scope_info->scope.node->name.ascii, + acpi_ut_get_node_name (scope_info->scope.node), acpi_ut_get_type_name (scope_info->common.value))); new_scope_info = walk_state->scope_info; if (new_scope_info) { ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC, "[%4.4s] (%s)\n", - new_scope_info->scope.node->name.ascii, + acpi_ut_get_node_name (new_scope_info->scope.node), acpi_ut_get_type_name (new_scope_info->common.value))); } else { diff -Nru a/drivers/acpi/dispatcher/dswstate.c b/drivers/acpi/dispatcher/dswstate.c --- a/drivers/acpi/dispatcher/dswstate.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/dispatcher/dswstate.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/ec.c b/drivers/acpi/ec.c --- a/drivers/acpi/ec.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/ec.c Tue Jan 27 21:03:54 2004 @@ -475,7 +475,7 @@ FS Interface (/proc) -------------------------------------------------------------------------- */ -struct proc_dir_entry *acpi_ec_dir = NULL; +struct proc_dir_entry *acpi_ec_dir; static int diff -Nru a/drivers/acpi/events/evevent.c b/drivers/acpi/events/evevent.c --- a/drivers/acpi/events/evevent.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/events/evevent.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/events/evgpe.c b/drivers/acpi/events/evgpe.c --- a/drivers/acpi/events/evgpe.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/events/evgpe.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -139,12 +139,10 @@ { u32 int_status = ACPI_INTERRUPT_NOT_HANDLED; u8 enabled_status_byte; - u8 bit_mask; struct acpi_gpe_register_info *gpe_register_info; u32 in_value; acpi_status status; struct acpi_gpe_block_info *gpe_block; - u32 gpe_number; u32 i; u32 j; @@ -187,11 +185,9 @@ ACPI_DEBUG_PRINT ((ACPI_DB_INTERRUPTS, "GPE pair: Status %8.8X%8.8X = %02X, Enable %8.8X%8.8X = %02X\n", - ACPI_HIDWORD (gpe_register_info->status_address.address), - ACPI_LODWORD (gpe_register_info->status_address.address), + ACPI_FORMAT_UINT64 (gpe_register_info->status_address.address), gpe_register_info->status, - ACPI_HIDWORD (gpe_register_info->enable_address.address), - ACPI_LODWORD (gpe_register_info->enable_address.address), + ACPI_FORMAT_UINT64 (gpe_register_info->enable_address.address), gpe_register_info->enable)); /* First check if there is anything active at all in this register */ @@ -206,19 +202,17 @@ /* Now look at the individual GPEs in this byte register */ - for (j = 0, bit_mask = 1; j < ACPI_GPE_REGISTER_WIDTH; j++, bit_mask <<= 1) { + for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++) { /* Examine one GPE bit */ - if (enabled_status_byte & bit_mask) { + if (enabled_status_byte & acpi_gbl_decode_to8bit[j]) { /* * Found an active GPE. Dispatch the event to a handler * or method. */ - gpe_number = (i * ACPI_GPE_REGISTER_WIDTH) + j; - int_status |= acpi_ev_gpe_dispatch ( - &gpe_block->event_info[gpe_number], - j + gpe_register_info->base_gpe_number); + &gpe_block->event_info[(i * ACPI_GPE_REGISTER_WIDTH) + j], + j + gpe_register_info->base_gpe_number); } } } @@ -294,7 +288,7 @@ if (ACPI_FAILURE (status)) { ACPI_REPORT_ERROR (("%s while evaluating method [%4.4s] for GPE[%2X]\n", acpi_format_exception (status), - local_gpe_event_info.method_node->name.ascii, gpe_number)); + acpi_ut_get_node_name (local_gpe_event_info.method_node), gpe_number)); } } @@ -367,6 +361,18 @@ /* Invoke the installed handler (at interrupt level) */ gpe_event_info->handler (gpe_event_info->context); + + /* It is now safe to clear level-triggered events. */ + + if (gpe_event_info->flags & ACPI_EVENT_LEVEL_TRIGGERED) { + status = acpi_hw_clear_gpe (gpe_event_info); + if (ACPI_FAILURE (status)) { + ACPI_REPORT_ERROR (( + "acpi_ev_gpe_dispatch: Unable to clear GPE[%2X]\n", + gpe_number)); + return_VALUE (ACPI_INTERRUPT_NOT_HANDLED); + } + } } else if (gpe_event_info->method_node) { /* @@ -375,13 +381,16 @@ */ status = acpi_hw_disable_gpe (gpe_event_info); if (ACPI_FAILURE (status)) { - ACPI_REPORT_ERROR (("acpi_ev_gpe_dispatch: Unable to disable GPE[%2X]\n", + ACPI_REPORT_ERROR (( + "acpi_ev_gpe_dispatch: Unable to disable GPE[%2X]\n", gpe_number)); return_VALUE (ACPI_INTERRUPT_NOT_HANDLED); } - /* Execute the method associated with the GPE. */ - + /* + * Execute the method associated with the GPE + * NOTE: Level-triggered GPEs are cleared after the method completes. + */ if (ACPI_FAILURE (acpi_os_queue_for_execution (OSD_PRIORITY_GPE, acpi_ev_asynch_execute_gpe_method, gpe_event_info))) { @@ -399,22 +408,12 @@ /* * Disable the GPE. The GPE will remain disabled until the ACPI - * Core Subsystem is restarted, or the handler is reinstalled. + * Core Subsystem is restarted, or a handler is installed. */ status = acpi_hw_disable_gpe (gpe_event_info); if (ACPI_FAILURE (status)) { - ACPI_REPORT_ERROR (("acpi_ev_gpe_dispatch: Unable to disable GPE[%2X]\n", - gpe_number)); - return_VALUE (ACPI_INTERRUPT_NOT_HANDLED); - } - } - - /* It is now safe to clear level-triggered events. */ - - if (gpe_event_info->flags & ACPI_EVENT_LEVEL_TRIGGERED) { - status = acpi_hw_clear_gpe (gpe_event_info); - if (ACPI_FAILURE (status)) { - ACPI_REPORT_ERROR (("acpi_ev_gpe_dispatch: Unable to clear GPE[%2X]\n", + ACPI_REPORT_ERROR (( + "acpi_ev_gpe_dispatch: Unable to disable GPE[%2X]\n", gpe_number)); return_VALUE (ACPI_INTERRUPT_NOT_HANDLED); } diff -Nru a/drivers/acpi/events/evgpeblk.c b/drivers/acpi/events/evgpeblk.c --- a/drivers/acpi/events/evgpeblk.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/events/evgpeblk.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -477,7 +477,7 @@ * * RETURN: Status * - * DESCRIPTION: Install new GPE block with mutex support + * DESCRIPTION: Remove a GPE block * ******************************************************************************/ @@ -743,8 +743,7 @@ ((gpe_block->register_count * ACPI_GPE_REGISTER_WIDTH) -1)), gpe_device->name.ascii, gpe_block->register_count, - ACPI_HIDWORD (gpe_block->block_address.address), - ACPI_LODWORD (gpe_block->block_address.address), + ACPI_FORMAT_UINT64 (gpe_block->block_address.address), interrupt_level)); /* Find all GPE methods (_Lxx, _Exx) for this block */ diff -Nru a/drivers/acpi/events/evmisc.c b/drivers/acpi/events/evmisc.c --- a/drivers/acpi/events/evmisc.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/events/evmisc.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -195,7 +195,8 @@ /* There is no per-device notify handler for this device */ ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "No notify handler for [%4.4s] node %p\n", node->name.ascii, node)); + "No notify handler for [%4.4s] node %p\n", + acpi_ut_get_node_name (node), node)); } return (status); diff -Nru a/drivers/acpi/events/evregion.c b/drivers/acpi/events/evregion.c --- a/drivers/acpi/events/evregion.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/events/evregion.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -52,7 +52,7 @@ #define ACPI_NUM_DEFAULT_SPACES 4 -u8 acpi_gbl_default_address_spaces[ACPI_NUM_DEFAULT_SPACES] = { +static u8 acpi_gbl_default_address_spaces[ACPI_NUM_DEFAULT_SPACES] = { ACPI_ADR_SPACE_SYSTEM_MEMORY, ACPI_ADR_SPACE_SYSTEM_IO, ACPI_ADR_SPACE_PCI_CONFIG, @@ -136,7 +136,7 @@ * ******************************************************************************/ -static acpi_status +acpi_status acpi_ev_execute_reg_method ( union acpi_operand_object *region_obj, u32 function) @@ -202,7 +202,7 @@ * * FUNCTION: acpi_ev_address_space_dispatch * - * PARAMETERS: region_obj - internal region object + * PARAMETERS: region_obj - Internal region object * space_id - ID of the address space (0-255) * Function - Read or Write operation * Address - Where in the space to read or write @@ -243,9 +243,11 @@ /* Ensure that there is a handler associated with this region */ - handler_desc = region_obj->region.address_space; + handler_desc = region_obj->region.handler; if (!handler_desc) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "no handler for region(%p) [%s]\n", + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + "No handler for Region [%4.4s] (%p) [%s]\n", + acpi_ut_get_node_name (region_obj->region.node), region_obj, acpi_ut_get_region_name (region_obj->region.space_id))); return_ACPI_STATUS (AE_NOT_EXIST); @@ -320,8 +322,8 @@ ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION, "Handler %p (@%p) Address %8.8X%8.8X [%s]\n", - ®ion_obj->region.address_space->address_space, handler, - ACPI_HIDWORD (address), ACPI_LODWORD (address), + ®ion_obj->region.handler->address_space, handler, + ACPI_FORMAT_UINT64 (address), acpi_ut_get_region_name (region_obj->region.space_id))); if (!(handler_desc->address_space.flags & ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { @@ -359,6 +361,7 @@ return_ACPI_STATUS (status); } + /******************************************************************************* * * FUNCTION: acpi_ev_detach_region @@ -398,7 +401,7 @@ /* Get the address handler from the region object */ - handler_obj = region_obj->region.address_space; + handler_obj = region_obj->region.handler; if (!handler_obj) { /* This region has no handler, all done */ @@ -472,7 +475,7 @@ * If the region is on the handler's list * this better be the region's handler */ - region_obj->region.address_space = NULL; + region_obj->region.handler = NULL; acpi_ut_remove_reference (handler_obj); return_VOID; @@ -515,17 +518,15 @@ union acpi_operand_object *region_obj, u8 acpi_ns_is_locked) { - acpi_status status; - acpi_status status2; - ACPI_FUNCTION_TRACE ("ev_attach_region"); ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION, - "Adding Region %p to address handler %p [%s]\n", - region_obj, handler_obj, acpi_ut_get_region_name (region_obj->region.space_id))); - + "Adding Region [%4.4s] %p to address handler %p [%s]\n", + acpi_ut_get_node_name (region_obj->region.node), + region_obj, handler_obj, + acpi_ut_get_region_name (region_obj->region.space_id))); /* Link this region to the front of the handler's list */ @@ -534,34 +535,14 @@ /* Install the region's handler */ - if (region_obj->region.address_space) { + if (region_obj->region.handler) { return_ACPI_STATUS (AE_ALREADY_EXISTS); } - region_obj->region.address_space = handler_obj; + region_obj->region.handler = handler_obj; acpi_ut_add_reference (handler_obj); - /* - * Tell all users that this region is usable by running the _REG - * method - */ - if (acpi_ns_is_locked) { - status2 = acpi_ut_release_mutex (ACPI_MTX_NAMESPACE); - if (ACPI_FAILURE (status2)) { - return_ACPI_STATUS (status2); - } - } - - status = acpi_ev_execute_reg_method (region_obj, 1); - - if (acpi_ns_is_locked) { - status2 = acpi_ut_acquire_mutex (ACPI_MTX_NAMESPACE); - if (ACPI_FAILURE (status2)) { - return_ACPI_STATUS (status2); - } - } - - return_ACPI_STATUS (status); + return_ACPI_STATUS (AE_OK); } @@ -569,9 +550,7 @@ * * FUNCTION: acpi_ev_install_handler * - * PARAMETERS: Handle - Node to be dumped - * Level - Nesting level of the handle - * Context - Passed into acpi_ns_walk_namespace + * PARAMETERS: walk_namespace callback * * DESCRIPTION: This routine installs an address handler into objects that are * of type Region or Device. @@ -640,7 +619,7 @@ if (ACPI_GET_OBJECT_TYPE (obj_desc) == ACPI_TYPE_DEVICE) { /* Check if this Device already has a handler for this address space */ - next_handler_obj = obj_desc->device.address_space; + next_handler_obj = obj_desc->device.handler; while (next_handler_obj) { /* Found a handler, is it for the same address space? */ @@ -697,4 +676,74 @@ return (status); } +/******************************************************************************* + * + * FUNCTION: acpi_ev_reg_run + * + * PARAMETERS: walk_namespace callback + * + * DESCRIPTION: Run _REg method for region objects of the requested space_iD + * + ******************************************************************************/ + +acpi_status +acpi_ev_reg_run ( + acpi_handle obj_handle, + u32 level, + void *context, + void **return_value) +{ + union acpi_operand_object *handler_obj; + union acpi_operand_object *obj_desc; + struct acpi_namespace_node *node; + acpi_status status; + + + handler_obj = (union acpi_operand_object *) context; + + /* Parameter validation */ + + if (!handler_obj) { + return (AE_OK); + } + + /* Convert and validate the device handle */ + + node = acpi_ns_map_handle_to_node (obj_handle); + if (!node) { + return (AE_BAD_PARAMETER); + } + + /* + * We only care about regions.and objects + * that are allowed to have address space handlers + */ + if ((node->type != ACPI_TYPE_REGION) && + (node != acpi_gbl_root_node)) { + return (AE_OK); + } + + /* Check for an existing internal object */ + + obj_desc = acpi_ns_get_attached_object (node); + if (!obj_desc) { + /* No object, just exit */ + + return (AE_OK); + } + + + /* Object is a Region */ + + if (obj_desc->region.space_id != handler_obj->address_space.space_id) { + /* + * This region is for a different address space + * -- just ignore it + */ + return (AE_OK); + } + + status = acpi_ev_execute_reg_method (obj_desc, 1); + return (status); +} diff -Nru a/drivers/acpi/events/evrgnini.c b/drivers/acpi/events/evrgnini.c --- a/drivers/acpi/events/evrgnini.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/events/evrgnini.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -177,7 +177,7 @@ ACPI_FUNCTION_TRACE ("ev_pci_config_region_setup"); - handler_obj = region_obj->region.address_space; + handler_obj = region_obj->region.handler; if (!handler_obj) { /* * No installed handler. This shouldn't happen because the dispatch @@ -239,7 +239,7 @@ else { ACPI_REPORT_ERROR (( "Could not install pci_config handler for Root Bridge %4.4s, %s\n", - pci_root_node->name.ascii, acpi_format_exception (status))); + acpi_ut_get_node_name (pci_root_node), acpi_format_exception (status))); } } break; @@ -469,7 +469,7 @@ /* Setup defaults */ - region_obj->region.address_space = NULL; + region_obj->region.handler = NULL; region_obj2->extra.method_REG = NULL; region_obj->common.flags &= ~(AOPOBJ_SETUP_COMPLETE); region_obj->common.flags |= AOPOBJ_OBJECT_INITIALIZED; @@ -502,17 +502,17 @@ switch (node->type) { case ACPI_TYPE_DEVICE: - handler_obj = obj_desc->device.address_space; + handler_obj = obj_desc->device.handler; break; case ACPI_TYPE_PROCESSOR: - handler_obj = obj_desc->processor.address_space; + handler_obj = obj_desc->processor.handler; break; case ACPI_TYPE_THERMAL: - handler_obj = obj_desc->thermal_zone.address_space; + handler_obj = obj_desc->thermal_zone.handler; break; default: @@ -532,6 +532,26 @@ status = acpi_ev_attach_region (handler_obj, region_obj, acpi_ns_locked); + + /* + * Tell all users that this region is usable by running the _REG + * method + */ + if (acpi_ns_locked) { + status = acpi_ut_release_mutex (ACPI_MTX_NAMESPACE); + if (ACPI_FAILURE (status)) { + return_ACPI_STATUS (status); + } + } + + status = acpi_ev_execute_reg_method (region_obj, 1); + + if (acpi_ns_locked) { + status = acpi_ut_acquire_mutex (ACPI_MTX_NAMESPACE); + if (ACPI_FAILURE (status)) { + return_ACPI_STATUS (status); + } + } return_ACPI_STATUS (AE_OK); } diff -Nru a/drivers/acpi/events/evsci.c b/drivers/acpi/events/evsci.c --- a/drivers/acpi/events/evsci.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/events/evsci.c Tue Jan 27 21:03:54 2004 @@ -6,7 +6,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/events/evxface.c b/drivers/acpi/events/evxface.c --- a/drivers/acpi/events/evxface.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/events/evxface.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/events/evxfevnt.c b/drivers/acpi/events/evxfevnt.c --- a/drivers/acpi/events/evxfevnt.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/events/evxfevnt.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/events/evxfregn.c b/drivers/acpi/events/evxfregn.c --- a/drivers/acpi/events/evxfregn.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/events/evxfregn.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -173,7 +173,7 @@ * The attached device object already exists. * Make sure the handler is not already installed. */ - handler_obj = obj_desc->device.address_space; + handler_obj = obj_desc->device.handler; /* Walk the handler list for this device */ @@ -240,7 +240,8 @@ ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION, "Installing address handler for region %s(%X) on Device %4.4s %p(%p)\n", - acpi_ut_get_region_name (space_id), space_id, node->name.ascii, node, obj_desc)); + acpi_ut_get_region_name (space_id), space_id, + acpi_ut_get_node_name (node), node, obj_desc)); /* * Install the handler @@ -267,13 +268,13 @@ /* Install at head of Device.address_space list */ - handler_obj->address_space.next = obj_desc->device.address_space; + handler_obj->address_space.next = obj_desc->device.handler; /* * The Device object is the first reference on the handler_obj. * Each region that uses the handler adds a reference. */ - obj_desc->device.address_space = handler_obj; + obj_desc->device.handler = handler_obj; /* * Walk the namespace finding all of the regions this @@ -291,6 +292,17 @@ ACPI_NS_WALK_UNLOCK, acpi_ev_install_handler, handler_obj, NULL); + /* + * Now we can run the _REG methods for all Regions for this + * space ID. This is a separate walk in order to handle any + * interdependencies between regions and _REG methods. (i.e. handlers + * must be installed for all regions of this Space ID before we + * can run any _REG methods. + */ + status = acpi_ns_walk_namespace (ACPI_TYPE_ANY, device, ACPI_UINT32_MAX, + ACPI_NS_WALK_UNLOCK, acpi_ev_reg_run, + handler_obj, NULL); + unlock_and_exit: (void) acpi_ut_release_mutex (ACPI_MTX_NAMESPACE); return_ACPI_STATUS (status); @@ -357,8 +369,8 @@ /* Find the address handler the user requested */ - handler_obj = obj_desc->device.address_space; - last_obj_ptr = &obj_desc->device.address_space; + handler_obj = obj_desc->device.handler; + last_obj_ptr = &obj_desc->device.handler; while (handler_obj) { /* We have a handler, see if user requested this one */ diff -Nru a/drivers/acpi/executer/exconfig.c b/drivers/acpi/executer/exconfig.c --- a/drivers/acpi/executer/exconfig.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/executer/exconfig.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/executer/exconvrt.c b/drivers/acpi/executer/exconvrt.c --- a/drivers/acpi/executer/exconvrt.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/executer/exconvrt.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/executer/excreate.c b/drivers/acpi/executer/excreate.c --- a/drivers/acpi/executer/excreate.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/executer/excreate.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/executer/exdump.c b/drivers/acpi/executer/exdump.c --- a/drivers/acpi/executer/exdump.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/executer/exdump.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -89,27 +89,27 @@ if (!obj_desc) { /* - * This usually indicates that something serious is wrong -- - * since most (if not all) - * code that dumps the stack expects something to be there! + * This usually indicates that something serious is wrong */ - acpi_os_printf ("Null stack entry ptr\n"); + acpi_os_printf ("Null Object Descriptor\n"); return; } if (ACPI_GET_DESCRIPTOR_TYPE (obj_desc) == ACPI_DESC_TYPE_NAMED) { - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%p NS Node: ", obj_desc)); + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%p is a NS Node: ", obj_desc)); ACPI_DUMP_ENTRY (obj_desc, ACPI_LV_EXEC); return; } if (ACPI_GET_DESCRIPTOR_TYPE (obj_desc) != ACPI_DESC_TYPE_OPERAND) { - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%p is not a local object\n", obj_desc)); + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, + "%p is not a node or operand object: [%s]\n", + obj_desc, acpi_ut_get_descriptor_name (obj_desc))); ACPI_DUMP_BUFFER (obj_desc, sizeof (union acpi_operand_object)); return; } - /* obj_desc is a valid object */ + /* obj_desc is a valid object */ ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%p ", obj_desc)); @@ -151,11 +151,10 @@ obj_desc->reference.offset); if (ACPI_GET_OBJECT_TYPE (obj_desc) == ACPI_TYPE_INTEGER) { - /* Value is a Number */ + /* Value is an Integer */ acpi_os_printf (" value is [%8.8X%8.8x]", - ACPI_HIDWORD(obj_desc->integer.value), - ACPI_LODWORD(obj_desc->integer.value)); + ACPI_FORMAT_UINT64 (obj_desc->integer.value)); } acpi_os_printf ("\n"); @@ -169,11 +168,10 @@ if (ACPI_GET_OBJECT_TYPE (obj_desc) == ACPI_TYPE_INTEGER) { - /* Value is a Number */ + /* Value is an Integer */ acpi_os_printf (" value is [%8.8X%8.8x]", - ACPI_HIDWORD(obj_desc->integer.value), - ACPI_LODWORD(obj_desc->integer.value)); + ACPI_FORMAT_UINT64 (obj_desc->integer.value)); } acpi_os_printf ("\n"); @@ -189,7 +187,7 @@ default: - /* unknown opcode */ + /* Unknown opcode */ acpi_os_printf ("Unknown Reference opcode=%X\n", obj_desc->reference.opcode); @@ -229,8 +227,7 @@ case ACPI_TYPE_INTEGER: acpi_os_printf ("Integer %8.8X%8.8X\n", - ACPI_HIDWORD (obj_desc->integer.value), - ACPI_LODWORD (obj_desc->integer.value)); + ACPI_FORMAT_UINT64 (obj_desc->integer.value)); break; @@ -271,8 +268,7 @@ } else { acpi_os_printf (" base %8.8X%8.8X Length %X\n", - ACPI_HIDWORD (obj_desc->region.address), - ACPI_LODWORD (obj_desc->region.address), + ACPI_FORMAT_UINT64 (obj_desc->region.address), obj_desc->region.length); } break; @@ -494,7 +490,7 @@ acpi_os_printf ("%20s : %p\n", title, value); #else acpi_os_printf ("%20s : %8.8X%8.8X\n", title, - ACPI_HIDWORD (value), ACPI_LODWORD (value)); + ACPI_FORMAT_UINT64 (value)); #endif } @@ -525,7 +521,7 @@ } } - acpi_os_printf ("%20s : %4.4s\n", "Name", node->name.ascii); + acpi_os_printf ("%20s : %4.4s\n", "Name", acpi_ut_get_node_name (node)); acpi_ex_out_string ("Type", acpi_ut_get_type_name (node->type)); acpi_ex_out_integer ("Flags", node->flags); acpi_ex_out_integer ("Owner Id", node->owner_id); @@ -573,7 +569,8 @@ } if (ACPI_GET_DESCRIPTOR_TYPE (obj_desc) != ACPI_DESC_TYPE_OPERAND) { - acpi_os_printf ("ex_dump_object_descriptor: %p is not a valid ACPI object\n", obj_desc); + acpi_os_printf ("ex_dump_object_descriptor: %p is not an ACPI operand object: [%s]\n", + obj_desc, acpi_ut_get_descriptor_name (obj_desc)); return_VOID; } @@ -589,8 +586,7 @@ case ACPI_TYPE_INTEGER: acpi_os_printf ("%20s : %8.8X%8.8X\n", "Value", - ACPI_HIDWORD (obj_desc->integer.value), - ACPI_LODWORD (obj_desc->integer.value)); + ACPI_FORMAT_UINT64 (obj_desc->integer.value)); break; @@ -635,7 +631,7 @@ case ACPI_TYPE_DEVICE: - acpi_ex_out_pointer ("address_space", obj_desc->device.address_space); + acpi_ex_out_pointer ("Handler", obj_desc->device.handler); acpi_ex_out_pointer ("system_notify", obj_desc->device.system_notify); acpi_ex_out_pointer ("device_notify", obj_desc->device.device_notify); break; @@ -673,7 +669,7 @@ acpi_ex_out_integer ("Flags", obj_desc->region.flags); acpi_ex_out_address ("Address", obj_desc->region.address); acpi_ex_out_integer ("Length", obj_desc->region.length); - acpi_ex_out_pointer ("address_space", obj_desc->region.address_space); + acpi_ex_out_pointer ("Handler", obj_desc->region.handler); acpi_ex_out_pointer ("Next", obj_desc->region.next); break; @@ -694,7 +690,7 @@ acpi_ex_out_address ("Address", (acpi_physical_address) obj_desc->processor.address); acpi_ex_out_pointer ("system_notify", obj_desc->processor.system_notify); acpi_ex_out_pointer ("device_notify", obj_desc->processor.device_notify); - acpi_ex_out_pointer ("address_space", obj_desc->processor.address_space); + acpi_ex_out_pointer ("Handler", obj_desc->processor.handler); break; @@ -702,7 +698,7 @@ acpi_ex_out_pointer ("system_notify", obj_desc->thermal_zone.system_notify); acpi_ex_out_pointer ("device_notify", obj_desc->thermal_zone.device_notify); - acpi_ex_out_pointer ("address_space", obj_desc->thermal_zone.address_space); + acpi_ex_out_pointer ("Handler", obj_desc->thermal_zone.handler); break; diff -Nru a/drivers/acpi/executer/exfield.c b/drivers/acpi/executer/exfield.c --- a/drivers/acpi/executer/exfield.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/executer/exfield.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/executer/exfldio.c b/drivers/acpi/executer/exfldio.c --- a/drivers/acpi/executer/exfldio.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/executer/exfldio.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -138,8 +138,9 @@ */ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Field [%4.4s] access width (%d bytes) too large for region [%4.4s] (length %X)\n", - obj_desc->common_field.node->name.ascii, obj_desc->common_field.access_byte_width, - rgn_desc->region.node->name.ascii, rgn_desc->region.length)); + acpi_ut_get_node_name (obj_desc->common_field.node), + obj_desc->common_field.access_byte_width, + acpi_ut_get_node_name (rgn_desc->region.node), rgn_desc->region.length)); } /* @@ -148,9 +149,10 @@ */ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Field [%4.4s] Base+Offset+Width %X+%X+%X is beyond end of region [%4.4s] (length %X)\n", - obj_desc->common_field.node->name.ascii, obj_desc->common_field.base_byte_offset, + acpi_ut_get_node_name (obj_desc->common_field.node), + obj_desc->common_field.base_byte_offset, field_datum_byte_offset, obj_desc->common_field.access_byte_width, - rgn_desc->region.node->name.ascii, rgn_desc->region.length)); + acpi_ut_get_node_name (rgn_desc->region.node), rgn_desc->region.length)); #ifdef CONFIG_ACPI_RELAXED_AML { @@ -261,7 +263,7 @@ obj_desc->common_field.access_byte_width, obj_desc->common_field.base_byte_offset, field_datum_byte_offset, - ACPI_HIDWORD (address), ACPI_LODWORD (address))); + ACPI_FORMAT_UINT64 (address))); /* Invoke the appropriate address_space/op_region handler */ @@ -514,12 +516,12 @@ if (ACPI_SUCCESS (status)) { if (read_write == ACPI_READ) { ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "Value Read %8.8X%8.8X, Width %d\n", - ACPI_HIDWORD (*value), ACPI_LODWORD (*value), + ACPI_FORMAT_UINT64 (*value), obj_desc->common_field.access_byte_width)); } else { ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "Value Written %8.8X%8.8X, Width %d\n", - ACPI_HIDWORD (*value), ACPI_LODWORD (*value), + ACPI_FORMAT_UINT64 (*value), obj_desc->common_field.access_byte_width)); } } @@ -612,11 +614,11 @@ ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "Mask %8.8X%8.8X, datum_offset %X, Width %X, Value %8.8X%8.8X, merged_value %8.8X%8.8X\n", - ACPI_HIDWORD (mask), ACPI_LODWORD (mask), + ACPI_FORMAT_UINT64 (mask), field_datum_byte_offset, obj_desc->common_field.access_byte_width, - ACPI_HIDWORD (field_value), ACPI_LODWORD (field_value), - ACPI_HIDWORD (merged_value),ACPI_LODWORD (merged_value))); + ACPI_FORMAT_UINT64 (field_value), + ACPI_FORMAT_UINT64 (merged_value))); /* Write the merged value */ @@ -784,12 +786,13 @@ { acpi_status status; u32 field_datum_byte_offset; - u32 datum_offset; - acpi_integer previous_raw_datum; + u32 buffer_datum_offset; + acpi_integer previous_raw_datum = 0; acpi_integer this_raw_datum = 0; acpi_integer merged_datum = 0; u32 byte_field_length; u32 datum_count; + u32 i; ACPI_FUNCTION_TRACE ("ex_extract_from_field"); @@ -812,77 +815,74 @@ datum_count = ACPI_ROUND_UP_TO (byte_field_length, obj_desc->common_field.access_byte_width); + /* + * If the field is not aligned on a datum boundary and does not + * fit within a single datum, we must read an extra datum. + * + * We could just split the aligned and non-aligned cases since the + * aligned case is so very simple, but this would require more code. + */ + if ((obj_desc->common_field.end_field_valid_bits != 0) && + (!(obj_desc->common_field.flags & AOPOBJ_SINGLE_DATUM))) { + datum_count++; + } + ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "byte_len %X, datum_len %X, byte_gran %X\n", byte_field_length, datum_count,obj_desc->common_field.access_byte_width)); /* * Clear the caller's buffer (the whole buffer length as given) - * This is very important, especially in the cases where a byte is read, - * but the buffer is really a u32 (4 bytes). + * This is very important, especially in the cases where the buffer + * is longer than the size of the field. */ ACPI_MEMSET (buffer, 0, buffer_length); - /* Read the first raw datum to prime the loop */ - field_datum_byte_offset = 0; - datum_offset= 0; - - status = acpi_ex_field_datum_io (obj_desc, field_datum_byte_offset, - &previous_raw_datum, ACPI_READ); - if (ACPI_FAILURE (status)) { - return_ACPI_STATUS (status); - } - + buffer_datum_offset= 0; - /* We might actually be done if the request fits in one datum */ + /* Read the entire field */ - if ((datum_count == 1) && - (obj_desc->common_field.flags & AOPOBJ_SINGLE_DATUM)) { - /* 1) Shift the valid data bits down to start at bit 0 */ + for (i = 0; i < datum_count; i++) { + status = acpi_ex_field_datum_io (obj_desc, field_datum_byte_offset, + &this_raw_datum, ACPI_READ); + if (ACPI_FAILURE (status)) { + return_ACPI_STATUS (status); + } - merged_datum = (previous_raw_datum >> obj_desc->common_field.start_field_bit_offset); + /* We might actually be done if the request fits in one datum */ - /* 2) Mask off any upper unused bits (bits not part of the field) */ + if ((datum_count == 1) && + (obj_desc->common_field.flags & AOPOBJ_SINGLE_DATUM)) { + /* 1) Shift the valid data bits down to start at bit 0 */ - if (obj_desc->common_field.end_buffer_valid_bits) { - merged_datum &= ACPI_MASK_BITS_ABOVE (obj_desc->common_field.end_buffer_valid_bits); - } + merged_datum = (this_raw_datum >> obj_desc->common_field.start_field_bit_offset); - /* Store the datum to the caller buffer */ + /* 2) Mask off any upper unused bits (bits not part of the field) */ - acpi_ex_set_buffer_datum (merged_datum, buffer, buffer_length, - obj_desc->common_field.access_byte_width, datum_offset); + if (obj_desc->common_field.end_buffer_valid_bits) { + merged_datum &= ACPI_MASK_BITS_ABOVE (obj_desc->common_field.end_buffer_valid_bits); + } - return_ACPI_STATUS (AE_OK); - } + /* Store the datum to the caller buffer */ + acpi_ex_set_buffer_datum (merged_datum, buffer, buffer_length, + obj_desc->common_field.access_byte_width, buffer_datum_offset); - /* We need to get more raw data to complete one or more field data */ + return_ACPI_STATUS (AE_OK); + } - while (datum_offset < datum_count) { - field_datum_byte_offset += obj_desc->common_field.access_byte_width; + /* Special handling for the last datum to ignore extra bits */ - /* - * If the field is aligned on a byte boundary, we don't want - * to perform a final read, since this would potentially read - * past the end of the region. - * - * We could just split the aligned and non-aligned cases since the - * aligned case is so very simple, but this would require more code. - */ - if ((obj_desc->common_field.start_field_bit_offset != 0) || - ((obj_desc->common_field.start_field_bit_offset == 0) && - (datum_offset < (datum_count -1)))) { + if ((i >= (datum_count -1)) && + (obj_desc->common_field.end_field_valid_bits)) { /* - * Get the next raw datum, it contains some or all bits - * of the current field datum + * This is the last iteration of the loop. We need to clear + * any unused bits (bits that are not part of this field) before + * we store the final merged datum into the caller buffer. */ - status = acpi_ex_field_datum_io (obj_desc, field_datum_byte_offset, - &this_raw_datum, ACPI_READ); - if (ACPI_FAILURE (status)) { - return_ACPI_STATUS (status); - } + this_raw_datum &= + ACPI_MASK_BITS_ABOVE (obj_desc->common_field.end_field_valid_bits); } /* @@ -891,48 +891,48 @@ if (obj_desc->common_field.start_field_bit_offset == 0) { /* Field is not skewed and we can just copy the datum */ - merged_datum = previous_raw_datum; + acpi_ex_set_buffer_datum (this_raw_datum, buffer, buffer_length, + obj_desc->common_field.access_byte_width, buffer_datum_offset); + buffer_datum_offset++; } else { - /* - * Put together the appropriate bits of the two raw data to make a - * single complete field datum - * - * 1) Normalize the first datum down to bit 0 - */ - merged_datum = (previous_raw_datum >> obj_desc->common_field.start_field_bit_offset); - - /* 2) Insert the second datum "above" the first datum */ + /* Not aligned -- on the first iteration, just save the datum */ - merged_datum |= (this_raw_datum << obj_desc->common_field.datum_valid_bits); - - if ((datum_offset >= (datum_count -1))) { + if (i != 0) { /* - * This is the last iteration of the loop. We need to clear - * any unused bits (bits that are not part of this field) that - * came from the last raw datum before we store the final - * merged datum into the caller buffer. + * Put together the appropriate bits of the two raw data to make a + * single complete field datum + * + * 1) Normalize the first datum down to bit 0 */ - if (obj_desc->common_field.end_buffer_valid_bits) { - merged_datum &= - ACPI_MASK_BITS_ABOVE (obj_desc->common_field.end_buffer_valid_bits); - } + merged_datum = (previous_raw_datum >> obj_desc->common_field.start_field_bit_offset); + + /* 2) Insert the second datum "above" the first datum */ + + merged_datum |= (this_raw_datum << obj_desc->common_field.datum_valid_bits); + + acpi_ex_set_buffer_datum (merged_datum, buffer, buffer_length, + obj_desc->common_field.access_byte_width, buffer_datum_offset); + buffer_datum_offset++; } + + /* + * Save the raw datum that was just acquired since it may contain bits + * of the *next* field datum + */ + previous_raw_datum = this_raw_datum; } - /* - * Store the merged field datum in the caller's buffer, according to - * the granularity of the field (size of each datum). - */ - acpi_ex_set_buffer_datum (merged_datum, buffer, buffer_length, - obj_desc->common_field.access_byte_width, datum_offset); + field_datum_byte_offset += obj_desc->common_field.access_byte_width; + } - /* - * Save the raw datum that was just acquired since it may contain bits - * of the *next* field datum. Update offsets - */ - previous_raw_datum = this_raw_datum; - datum_offset++; + /* For non-aligned case, there is one last datum to insert */ + + if (obj_desc->common_field.start_field_bit_offset != 0) { + merged_datum = (this_raw_datum >> obj_desc->common_field.start_field_bit_offset); + + acpi_ex_set_buffer_datum (merged_datum, buffer, buffer_length, + obj_desc->common_field.access_byte_width, buffer_datum_offset); } return_ACPI_STATUS (AE_OK); diff -Nru a/drivers/acpi/executer/exmisc.c b/drivers/acpi/executer/exmisc.c --- a/drivers/acpi/executer/exmisc.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/executer/exmisc.c Tue Jan 27 21:03:55 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -121,8 +121,8 @@ default: - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Invalid descriptor type %X in %p\n", - ACPI_GET_DESCRIPTOR_TYPE (obj_desc), obj_desc)); + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "%p has invalid descriptor [%s]\n", + obj_desc, acpi_ut_get_descriptor_name (obj_desc))); return_ACPI_STATUS (AE_TYPE); } @@ -139,7 +139,7 @@ *return_desc = reference_obj; ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Object %p Type [%s], returning Reference %p\n", - obj_desc, acpi_ut_get_object_type_name (obj_desc), *return_desc)); + obj_desc, acpi_ut_get_object_type_name (obj_desc), *return_desc)); return_ACPI_STATUS (AE_OK); } diff -Nru a/drivers/acpi/executer/exmutex.c b/drivers/acpi/executer/exmutex.c --- a/drivers/acpi/executer/exmutex.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/executer/exmutex.c Tue Jan 27 21:03:54 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -159,7 +159,7 @@ if (!walk_state->thread) { ACPI_REPORT_ERROR (("Cannot acquire Mutex [%4.4s], null thread info\n", - obj_desc->mutex.node->name.ascii)); + acpi_ut_get_node_name (obj_desc->mutex.node))); return_ACPI_STATUS (AE_AML_INTERNAL); } @@ -169,7 +169,7 @@ */ if (walk_state->thread->current_sync_level > obj_desc->mutex.sync_level) { ACPI_REPORT_ERROR (("Cannot acquire Mutex [%4.4s], incorrect sync_level\n", - obj_desc->mutex.node->name.ascii)); + acpi_ut_get_node_name (obj_desc->mutex.node))); return_ACPI_STATUS (AE_AML_MUTEX_ORDER); } @@ -242,7 +242,7 @@ if (!obj_desc->mutex.owner_thread) { ACPI_REPORT_ERROR (("Cannot release Mutex [%4.4s], not acquired\n", - obj_desc->mutex.node->name.ascii)); + acpi_ut_get_node_name (obj_desc->mutex.node))); return_ACPI_STATUS (AE_AML_MUTEX_NOT_ACQUIRED); } @@ -250,7 +250,7 @@ if (!walk_state->thread) { ACPI_REPORT_ERROR (("Cannot release Mutex [%4.4s], null thread info\n", - obj_desc->mutex.node->name.ascii)); + acpi_ut_get_node_name (obj_desc->mutex.node))); return_ACPI_STATUS (AE_AML_INTERNAL); } @@ -260,7 +260,7 @@ ACPI_REPORT_ERROR (( "Thread %X cannot release Mutex [%4.4s] acquired by thread %X\n", walk_state->thread->thread_id, - obj_desc->mutex.node->name.ascii, + acpi_ut_get_node_name (obj_desc->mutex.node), obj_desc->mutex.owner_thread->thread_id)); return_ACPI_STATUS (AE_AML_NOT_OWNER); } @@ -271,7 +271,7 @@ */ if (obj_desc->mutex.sync_level > walk_state->thread->current_sync_level) { ACPI_REPORT_ERROR (("Cannot release Mutex [%4.4s], incorrect sync_level\n", - obj_desc->mutex.node->name.ascii)); + acpi_ut_get_node_name (obj_desc->mutex.node))); return_ACPI_STATUS (AE_AML_MUTEX_ORDER); } diff -Nru a/drivers/acpi/executer/exnames.c b/drivers/acpi/executer/exnames.c --- a/drivers/acpi/executer/exnames.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/executer/exnames.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/executer/exoparg1.c b/drivers/acpi/executer/exoparg1.c --- a/drivers/acpi/executer/exoparg1.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/executer/exoparg1.c Tue Jan 27 21:03:55 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -351,8 +351,7 @@ if (digit > 0) { ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Integer too large to convert to BCD: %8.8X%8.8X\n", - ACPI_HIDWORD(operand[0]->integer.value), - ACPI_LODWORD(operand[0]->integer.value))); + ACPI_FORMAT_UINT64 (operand[0]->integer.value))); status = AE_AML_NUMERIC_OVERFLOW; goto cleanup; } diff -Nru a/drivers/acpi/executer/exoparg2.c b/drivers/acpi/executer/exoparg2.c --- a/drivers/acpi/executer/exoparg2.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/executer/exoparg2.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/executer/exoparg3.c b/drivers/acpi/executer/exoparg3.c --- a/drivers/acpi/executer/exoparg3.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/executer/exoparg3.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -101,14 +101,13 @@ switch (walk_state->opcode) { - case AML_FATAL_OP: /* Fatal (fatal_type fatal_code fatal_arg) */ ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "fatal_op: Type %X Code %X Arg %X <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", - (u32) operand[0]->integer.value, (u32) operand[1]->integer.value, + (u32) operand[0]->integer.value, + (u32) operand[1]->integer.value, (u32) operand[2]->integer.value)); - fatal = ACPI_MEM_ALLOCATE (sizeof (struct acpi_signal_fatal_info)); if (fatal) { diff -Nru a/drivers/acpi/executer/exoparg6.c b/drivers/acpi/executer/exoparg6.c --- a/drivers/acpi/executer/exoparg6.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/executer/exoparg6.c Tue Jan 27 21:03:54 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/executer/exprep.c b/drivers/acpi/executer/exprep.c --- a/drivers/acpi/executer/exprep.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/executer/exprep.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -351,7 +351,7 @@ */ nearest_byte_address = ACPI_ROUND_BITS_DOWN_TO_BYTES (field_bit_position); - obj_desc->common_field.base_byte_offset = + obj_desc->common_field.base_byte_offset = (u32) ACPI_ROUND_DOWN (nearest_byte_address, byte_alignment); /* @@ -539,7 +539,7 @@ acpi_ns_get_type (info->field_node)); ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "Set named_obj %p [%4.4s], obj_desc %p\n", - info->field_node, info->field_node->name.ascii, obj_desc)); + info->field_node, acpi_ut_get_node_name (info->field_node), obj_desc)); /* Remove local reference to the object */ diff -Nru a/drivers/acpi/executer/exregion.c b/drivers/acpi/executer/exregion.c --- a/drivers/acpi/executer/exregion.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/executer/exregion.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -161,7 +161,7 @@ (void **) &mem_info->mapped_logical_address); if (ACPI_FAILURE (status)) { ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not map memory at %8.8X%8.8X, size %X\n", - ACPI_HIDWORD (address), ACPI_LODWORD (address), (u32) window_size)); + ACPI_FORMAT_UINT64 (address), (u32) window_size)); mem_info->mapped_length = 0; return_ACPI_STATUS (status); } @@ -180,8 +180,8 @@ ((acpi_integer) address - (acpi_integer) mem_info->mapped_physical_address); ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "system_memory %d (%d width) Address=%8.8X%8.8X\n", function, bit_width, - ACPI_HIDWORD (address), ACPI_LODWORD (address))); + "system_memory %d (%d width) Address=%8.8X%8.8X\n", function, bit_width, + ACPI_FORMAT_UINT64 (address))); /* * Perform the memory read or write @@ -290,8 +290,8 @@ ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "system_iO %d (%d width) Address=%8.8X%8.8X\n", function, bit_width, - ACPI_HIDWORD (address), ACPI_LODWORD (address))); + "system_iO %d (%d width) Address=%8.8X%8.8X\n", function, bit_width, + ACPI_FORMAT_UINT64 (address))); /* Decode the function parameter */ diff -Nru a/drivers/acpi/executer/exresnte.c b/drivers/acpi/executer/exresnte.c --- a/drivers/acpi/executer/exresnte.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/executer/exresnte.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/executer/exresolv.c b/drivers/acpi/executer/exresolv.c --- a/drivers/acpi/executer/exresolv.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/executer/exresolv.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -349,6 +349,8 @@ /* All "References" point to a NS node */ if (ACPI_GET_DESCRIPTOR_TYPE (node) != ACPI_DESC_TYPE_NAMED) { + ACPI_REPORT_ERROR (("acpi_ex_resolve_multiple: Not a NS node %p [%s]\n", + node, acpi_ut_get_descriptor_name (node))); return_ACPI_STATUS (AE_AML_INTERNAL); } @@ -399,7 +401,9 @@ /* All "References" point to a NS node */ if (ACPI_GET_DESCRIPTOR_TYPE (node) != ACPI_DESC_TYPE_NAMED) { - return_ACPI_STATUS (AE_AML_INTERNAL); + ACPI_REPORT_ERROR (("acpi_ex_resolve_multiple: Not a NS node %p [%s]\n", + node, acpi_ut_get_descriptor_name (node))); + return_ACPI_STATUS (AE_AML_INTERNAL); } /* Get the attached object */ diff -Nru a/drivers/acpi/executer/exresop.c b/drivers/acpi/executer/exresop.c --- a/drivers/acpi/executer/exresop.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/executer/exresop.c Tue Jan 27 21:03:55 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -247,8 +247,8 @@ /* Invalid descriptor */ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, - "Bad descriptor type %X in Obj %p\n", - ACPI_GET_DESCRIPTOR_TYPE (obj_desc), obj_desc)); + "Invalid descriptor %p [%s]\n", + obj_desc, acpi_ut_get_descriptor_name (obj_desc))); return_ACPI_STATUS (AE_AML_OPERAND_TYPE); } diff -Nru a/drivers/acpi/executer/exstore.c b/drivers/acpi/executer/exstore.c --- a/drivers/acpi/executer/exstore.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/executer/exstore.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -190,8 +190,7 @@ case ACPI_TYPE_INTEGER: ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "%8.8X%8.8X\n", - ACPI_HIDWORD (source_desc->integer.value), - ACPI_LODWORD (source_desc->integer.value))); + ACPI_FORMAT_UINT64 (source_desc->integer.value))); break; diff -Nru a/drivers/acpi/executer/exstoren.c b/drivers/acpi/executer/exstoren.c --- a/drivers/acpi/executer/exstoren.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/executer/exstoren.c Tue Jan 27 21:03:53 2004 @@ -7,7 +7,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/executer/exstorob.c b/drivers/acpi/executer/exstorob.c --- a/drivers/acpi/executer/exstorob.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/executer/exstorob.c Tue Jan 27 21:03:55 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/executer/exsystem.c b/drivers/acpi/executer/exsystem.c --- a/drivers/acpi/executer/exsystem.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/executer/exsystem.c Tue Jan 27 21:03:54 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -111,11 +111,16 @@ * * FUNCTION: acpi_ex_system_do_stall * - * PARAMETERS: how_long - The amount of time to stall + * PARAMETERS: how_long - The amount of time to stall, + * in microseconds * * RETURN: Status * * DESCRIPTION: Suspend running thread for specified amount of time. + * Note: ACPI specification requires that Stall() does not + * relinquish the processor, and delays longer than 100 usec + * should use Sleep() instead. We allow stalls up to 255 usec + * for compatibility with other interpreters and existing BIOSs. * ******************************************************************************/ @@ -129,12 +134,15 @@ ACPI_FUNCTION_ENTRY (); - if (how_long > 100) /* 100 microseconds */ { + if (how_long > 255) /* 255 microseconds */ { /* - * Longer than 100 usec, use sleep instead - * (according to ACPI specification) + * Longer than 255 usec, this is an error + * + * (ACPI specifies 100 usec as max, but this gives some slack in + * order to support existing BIOSs) */ - status = acpi_ex_system_do_suspend ((how_long / 1000) + 1); + ACPI_REPORT_ERROR (("Stall: Time parameter is too large (%d)\n", how_long)); + status = AE_AML_OPERAND_VALUE; } else { acpi_os_stall (how_long); @@ -148,7 +156,8 @@ * * FUNCTION: acpi_ex_system_do_suspend * - * PARAMETERS: how_long - The amount of time to suspend + * PARAMETERS: how_long - The amount of time to suspend, + * in milliseconds * * RETURN: None * diff -Nru a/drivers/acpi/executer/exutils.c b/drivers/acpi/executer/exutils.c --- a/drivers/acpi/executer/exutils.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/executer/exutils.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/fan.c b/drivers/acpi/fan.c --- a/drivers/acpi/fan.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/fan.c Tue Jan 27 21:03:53 2004 @@ -71,7 +71,7 @@ FS Interface (/proc) -------------------------------------------------------------------------- */ -struct proc_dir_entry *acpi_fan_dir = NULL; +struct proc_dir_entry *acpi_fan_dir; static int diff -Nru a/drivers/acpi/hardware/hwacpi.c b/drivers/acpi/hardware/hwacpi.c --- a/drivers/acpi/hardware/hwacpi.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/hardware/hwacpi.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -119,7 +119,7 @@ * system does not support mode transition. */ if (!acpi_gbl_FADT->smi_cmd) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No SMI_CMD in FADT, mode transition failed.\n")); + ACPI_REPORT_ERROR (("No SMI_CMD in FADT, mode transition failed.\n")); return_ACPI_STATUS (AE_NO_HARDWARE_RESPONSE); } @@ -131,7 +131,7 @@ * transitions are not supported. */ if (!acpi_gbl_FADT->acpi_enable && !acpi_gbl_FADT->acpi_disable) { - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "No mode transition supported in this system.\n")); + ACPI_REPORT_ERROR (("No ACPI mode transition supported in this system (enable/disable both zero)\n")); return_ACPI_STATUS (AE_OK); } @@ -162,6 +162,7 @@ } if (ACPI_FAILURE (status)) { + ACPI_REPORT_ERROR (("Could not write mode change, %s\n", acpi_format_exception (status))); return_ACPI_STATUS (status); } @@ -171,18 +172,16 @@ */ retry = 3000; while (retry) { - status = AE_NO_HARDWARE_RESPONSE; - if (acpi_hw_get_mode() == mode) { ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Mode %X successfully enabled\n", mode)); - status = AE_OK; - break; + return_ACPI_STATUS (AE_OK); } acpi_os_stall(1000); retry--; } - return_ACPI_STATUS (status); + ACPI_REPORT_ERROR (("Hardware never changed modes\n")); + return_ACPI_STATUS (AE_NO_HARDWARE_RESPONSE); } diff -Nru a/drivers/acpi/hardware/hwgpe.c b/drivers/acpi/hardware/hwgpe.c --- a/drivers/acpi/hardware/hwgpe.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/hardware/hwgpe.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -348,17 +348,14 @@ struct acpi_gpe_block_info *gpe_block) { u32 i; - struct acpi_gpe_register_info *gpe_register_info; acpi_status status; - /* Get the register info for the entire GPE block */ - - gpe_register_info = gpe_block->register_info; - /* Examine each GPE Register within the block */ for (i = 0; i < gpe_block->register_count; i++) { + /* Disable all GPEs in this register */ + status = acpi_hw_low_level_write (8, 0x00, &gpe_block->register_info[i].enable_address); if (ACPI_FAILURE (status)) { @@ -389,17 +386,14 @@ struct acpi_gpe_block_info *gpe_block) { u32 i; - struct acpi_gpe_register_info *gpe_register_info; acpi_status status; - /* Get the register info for the entire GPE block */ - - gpe_register_info = gpe_block->register_info; - /* Examine each GPE Register within the block */ for (i = 0; i < gpe_block->register_count; i++) { + /* Clear all GPEs in this register */ + status = acpi_hw_low_level_write (8, 0xFF, &gpe_block->register_info[i].status_address); if (ACPI_FAILURE (status)) { diff -Nru a/drivers/acpi/hardware/hwregs.c b/drivers/acpi/hardware/hwregs.c --- a/drivers/acpi/hardware/hwregs.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/hardware/hwregs.c Tue Jan 27 21:03:55 2004 @@ -7,7 +7,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -418,16 +418,14 @@ ACPI_DEBUG_PRINT ((ACPI_DB_IO, "PM2 control: Read %X from %8.8X%8.8X\n", register_value, - ACPI_HIDWORD (acpi_gbl_FADT->xpm2_cnt_blk.address), - ACPI_LODWORD (acpi_gbl_FADT->xpm2_cnt_blk.address))); + ACPI_FORMAT_UINT64 (acpi_gbl_FADT->xpm2_cnt_blk.address))); ACPI_REGISTER_INSERT_VALUE (register_value, bit_reg_info->bit_position, bit_reg_info->access_bit_mask, value); ACPI_DEBUG_PRINT ((ACPI_DB_IO, "About to write %4.4X to %8.8X%8.8X\n", register_value, - ACPI_HIDWORD (acpi_gbl_FADT->xpm2_cnt_blk.address), - ACPI_LODWORD (acpi_gbl_FADT->xpm2_cnt_blk.address))); + ACPI_FORMAT_UINT64 (acpi_gbl_FADT->xpm2_cnt_blk.address))); status = acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK, ACPI_REGISTER_PM2_CONTROL, (u8) (register_value)); @@ -763,8 +761,7 @@ ACPI_DEBUG_PRINT ((ACPI_DB_IO, "Read: %8.8X width %2d from %8.8X%8.8X (%s)\n", *value, width, - ACPI_HIDWORD (reg->address), - ACPI_LODWORD (reg->address), + ACPI_FORMAT_UINT64 (reg->address), acpi_ut_get_region_name (reg->address_space_id))); return (status); @@ -850,8 +847,7 @@ ACPI_DEBUG_PRINT ((ACPI_DB_IO, "Wrote: %8.8X width %2d to %8.8X%8.8X (%s)\n", value, width, - ACPI_HIDWORD (reg->address), - ACPI_LODWORD (reg->address), + ACPI_FORMAT_UINT64 (reg->address), acpi_ut_get_region_name (reg->address_space_id))); return (status); diff -Nru a/drivers/acpi/hardware/hwsleep.c b/drivers/acpi/hardware/hwsleep.c --- a/drivers/acpi/hardware/hwsleep.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/hardware/hwsleep.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -181,6 +181,13 @@ return_ACPI_STATUS (status); } + /* Set the system indicators to show the desired sleep state. */ + + status = acpi_evaluate_object (NULL, "\\_SI._SST", &arg_list, NULL); + if (ACPI_FAILURE (status) && status != AE_NOT_FOUND) { + ACPI_REPORT_ERROR (("Method _SST failed, %s\n", acpi_format_exception (status))); + } + return_ACPI_STATUS (AE_OK); } @@ -220,30 +227,31 @@ return_ACPI_STATUS (AE_AML_OPERAND_VALUE); } - sleep_type_reg_info = acpi_hw_get_bit_register_info (ACPI_BITREG_SLEEP_TYPE_A); sleep_enable_reg_info = acpi_hw_get_bit_register_info (ACPI_BITREG_SLEEP_ENABLE); - /* Clear wake status */ + if (sleep_state != ACPI_STATE_S5) { + /* Clear wake status */ - status = acpi_set_register (ACPI_BITREG_WAKE_STATUS, 1, ACPI_MTX_DO_NOT_LOCK); - if (ACPI_FAILURE (status)) { - return_ACPI_STATUS (status); - } + status = acpi_set_register (ACPI_BITREG_WAKE_STATUS, 1, ACPI_MTX_DO_NOT_LOCK); + if (ACPI_FAILURE (status)) { + return_ACPI_STATUS (status); + } - status = acpi_hw_clear_acpi_status(ACPI_MTX_DO_NOT_LOCK); - if (ACPI_FAILURE (status)) { - return_ACPI_STATUS (status); - } + status = acpi_hw_clear_acpi_status (ACPI_MTX_DO_NOT_LOCK); + if (ACPI_FAILURE (status)) { + return_ACPI_STATUS (status); + } - /* Disable BM arbitration */ + /* Disable BM arbitration */ - status = acpi_set_register (ACPI_BITREG_ARB_DISABLE, 1, ACPI_MTX_DO_NOT_LOCK); - if (ACPI_FAILURE (status)) { - return_ACPI_STATUS (status); + status = acpi_set_register (ACPI_BITREG_ARB_DISABLE, 1, ACPI_MTX_DO_NOT_LOCK); + if (ACPI_FAILURE (status)) { + return_ACPI_STATUS (status); + } } - status = acpi_hw_disable_non_wakeup_gpes(); + status = acpi_hw_disable_non_wakeup_gpes (); if (ACPI_FAILURE (status)) { return_ACPI_STATUS (status); } @@ -266,6 +274,11 @@ PM1Acontrol |= (acpi_gbl_sleep_type_a << sleep_type_reg_info->bit_position); PM1Bcontrol |= (acpi_gbl_sleep_type_b << sleep_type_reg_info->bit_position); + /* + * We split the writes of SLP_TYP and SLP_EN to workaround + * poorly implemented hardware. + */ + /* Write #1: fill in SLP_TYP data */ status = acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK, ACPI_REGISTER_PM1A_CONTROL, PM1Acontrol); @@ -297,13 +310,15 @@ return_ACPI_STATUS (status); } - /* - * Wait a second, then try again. This is to get S4/5 to work on all machines. - */ if (sleep_state > ACPI_STATE_S3) { /* + * We wanted to sleep > S3, but it didn't happen (by virtue of the fact that + * we are still executing!) + * + * Wait ten seconds, then try again. This is to get S4/S5 to work on all machines. + * * We wait so long to allow chipsets that poll this reg very slowly to - * still read the right value. Ideally, this entire block would go + * still read the right value. Ideally, this block would go * away entirely. */ acpi_os_stall (10000000); @@ -354,12 +369,23 @@ ACPI_FUNCTION_TRACE ("acpi_enter_sleep_state_s4bios"); - acpi_set_register (ACPI_BITREG_WAKE_STATUS, 1, ACPI_MTX_DO_NOT_LOCK); - acpi_hw_clear_acpi_status(ACPI_MTX_DO_NOT_LOCK); - acpi_hw_disable_non_wakeup_gpes(); + status = acpi_set_register (ACPI_BITREG_WAKE_STATUS, 1, ACPI_MTX_DO_NOT_LOCK); + if (ACPI_FAILURE (status)) { + return_ACPI_STATUS (status); + } + + status = acpi_hw_clear_acpi_status (ACPI_MTX_DO_NOT_LOCK); + if (ACPI_FAILURE (status)) { + return_ACPI_STATUS (status); + } + + status = acpi_hw_disable_non_wakeup_gpes (); + if (ACPI_FAILURE (status)) { + return_ACPI_STATUS (status); + } - ACPI_FLUSH_CPU_CACHE(); + ACPI_FLUSH_CPU_CACHE (); status = acpi_os_write_port (acpi_gbl_FADT->smi_cmd, (u32) acpi_gbl_FADT->S4bios_req, 8); @@ -389,16 +415,56 @@ acpi_status acpi_leave_sleep_state ( - u8 sleep_state) + u8 sleep_state) { - struct acpi_object_list arg_list; - union acpi_object arg; - acpi_status status; + struct acpi_object_list arg_list; + union acpi_object arg; + acpi_status status; + struct acpi_bit_register_info *sleep_type_reg_info; + struct acpi_bit_register_info *sleep_enable_reg_info; + u32 PM1Acontrol; + u32 PM1Bcontrol; ACPI_FUNCTION_TRACE ("acpi_leave_sleep_state"); + /* + * Set SLP_TYPE and SLP_EN to state S0. + * This is unclear from the ACPI Spec, but it is required + * by some machines. + */ + status = acpi_get_sleep_type_data (ACPI_STATE_S0, + &acpi_gbl_sleep_type_a, &acpi_gbl_sleep_type_b); + if (ACPI_SUCCESS (status)) { + sleep_type_reg_info = acpi_hw_get_bit_register_info (ACPI_BITREG_SLEEP_TYPE_A); + sleep_enable_reg_info = acpi_hw_get_bit_register_info (ACPI_BITREG_SLEEP_ENABLE); + + /* Get current value of PM1A control */ + + status = acpi_hw_register_read (ACPI_MTX_DO_NOT_LOCK, + ACPI_REGISTER_PM1_CONTROL, &PM1Acontrol); + if (ACPI_SUCCESS (status)) { + /* Clear SLP_EN and SLP_TYP fields */ + + PM1Acontrol &= ~(sleep_type_reg_info->access_bit_mask | + sleep_enable_reg_info->access_bit_mask); + PM1Bcontrol = PM1Acontrol; + + /* Insert SLP_TYP bits */ + + PM1Acontrol |= (acpi_gbl_sleep_type_a << sleep_type_reg_info->bit_position); + PM1Bcontrol |= (acpi_gbl_sleep_type_b << sleep_type_reg_info->bit_position); + + /* Just ignore any errors */ + + (void) acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK, + ACPI_REGISTER_PM1A_CONTROL, PM1Acontrol); + (void) acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK, + ACPI_REGISTER_PM1B_CONTROL, PM1Bcontrol); + } + } + /* Ensure enter_sleep_state_prep -> enter_sleep_state ordering */ acpi_gbl_sleep_type_a = ACPI_SLEEP_TYPE_INVALID; @@ -407,12 +473,17 @@ arg_list.count = 1; arg_list.pointer = &arg; - arg.type = ACPI_TYPE_INTEGER; - arg.integer.value = sleep_state; /* Ignore any errors from these methods */ + arg.integer.value = 0; + status = acpi_evaluate_object (NULL, "\\_SI._SST", &arg_list, NULL); + if (ACPI_FAILURE (status) && status != AE_NOT_FOUND) { + ACPI_REPORT_ERROR (("Method _SST failed, %s\n", acpi_format_exception (status))); + } + + arg.integer.value = sleep_state; status = acpi_evaluate_object (NULL, "\\_BFS", &arg_list, NULL); if (ACPI_FAILURE (status) && status != AE_NOT_FOUND) { ACPI_REPORT_ERROR (("Method _BFS failed, %s\n", acpi_format_exception (status))); @@ -425,13 +496,13 @@ /* _WAK returns stuff - do we want to look at it? */ - status = acpi_hw_enable_non_wakeup_gpes(); + status = acpi_hw_enable_non_wakeup_gpes (); if (ACPI_FAILURE (status)) { return_ACPI_STATUS (status); } - /* Disable BM arbitration */ - status = acpi_set_register (ACPI_BITREG_ARB_DISABLE, 0, ACPI_MTX_LOCK); + /* Enable BM arbitration */ + status = acpi_set_register (ACPI_BITREG_ARB_DISABLE, 0, ACPI_MTX_LOCK); return_ACPI_STATUS (status); } diff -Nru a/drivers/acpi/hardware/hwtimer.c b/drivers/acpi/hardware/hwtimer.c --- a/drivers/acpi/hardware/hwtimer.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/hardware/hwtimer.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/namespace/nsaccess.c b/drivers/acpi/namespace/nsaccess.c --- a/drivers/acpi/namespace/nsaccess.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/namespace/nsaccess.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -314,8 +314,8 @@ else { prefix_node = scope_info->scope.node; if (ACPI_GET_DESCRIPTOR_TYPE (prefix_node) != ACPI_DESC_TYPE_NAMED) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "[%p] Not a namespace node\n", - prefix_node)); + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "%p Not a namespace node [%s]\n", + prefix_node, acpi_ut_get_descriptor_name (prefix_node))); return_ACPI_STATUS (AE_AML_INTERNAL); } @@ -379,7 +379,7 @@ ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Searching relative to prefix scope [%4.4s] (%p)\n", - prefix_node->name.ascii, prefix_node)); + acpi_ut_get_node_name (prefix_node), prefix_node)); /* * Handle multiple Parent Prefixes (carat) by just getting @@ -413,7 +413,7 @@ if (search_parent_flag == ACPI_NS_NO_UPSEARCH) { ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Search scope is [%4.4s], path has %d carat(s)\n", - this_node->name.ascii, num_carats)); + acpi_ut_get_node_name (this_node), num_carats)); } } diff -Nru a/drivers/acpi/namespace/nsalloc.c b/drivers/acpi/namespace/nsalloc.c --- a/drivers/acpi/namespace/nsalloc.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/namespace/nsalloc.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -271,7 +271,7 @@ * alphabetic placement. */ previous_child_node = NULL; - while (acpi_ns_compare_names (child_node->name.ascii, node->name.ascii) < 0) { + while (acpi_ns_compare_names (acpi_ut_get_node_name (child_node), acpi_ut_get_node_name (node)) < 0) { if (child_node->flags & ANOBJ_END_OF_PEER_LIST) { /* Last peer; Clear end-of-list flag */ @@ -335,8 +335,9 @@ node->type = (u8) type; ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "%4.4s (%s) added to %4.4s (%s) %p at %p\n", - node->name.ascii, acpi_ut_get_type_name (node->type), - parent_node->name.ascii, acpi_ut_get_type_name (parent_node->type), parent_node, node)); + acpi_ut_get_node_name (node), acpi_ut_get_type_name (node->type), + acpi_ut_get_node_name (parent_node), acpi_ut_get_type_name (parent_node->type), + parent_node, node)); /* * Increment the reference count(s) of all parents up to diff -Nru a/drivers/acpi/namespace/nsdump.c b/drivers/acpi/namespace/nsdump.c --- a/drivers/acpi/namespace/nsdump.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/namespace/nsdump.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -50,8 +50,8 @@ #define _COMPONENT ACPI_NAMESPACE ACPI_MODULE_NAME ("nsdump") -#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) +#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) /******************************************************************************* * @@ -76,7 +76,7 @@ return; } - /* Print the entire name */ + /* Print the entire name */ ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "[")); @@ -205,7 +205,7 @@ * Now we can print out the pertinent information */ acpi_os_printf ("%4.4s %-12s %p ", - this_node->name.ascii, acpi_ut_get_type_name (type), this_node); + acpi_ut_get_node_name (this_node), acpi_ut_get_type_name (type), this_node); dbg_level = acpi_dbg_level; acpi_dbg_level = 0; @@ -250,8 +250,7 @@ case ACPI_TYPE_INTEGER: acpi_os_printf ("= %8.8X%8.8X\n", - ACPI_HIDWORD (obj_desc->integer.value), - ACPI_LODWORD (obj_desc->integer.value)); + ACPI_FORMAT_UINT64 (obj_desc->integer.value)); break; @@ -302,8 +301,7 @@ acpi_os_printf ("[%s]", acpi_ut_get_region_name (obj_desc->region.space_id)); if (obj_desc->region.flags & AOPOBJ_DATA_VALID) { acpi_os_printf (" Addr %8.8X%8.8X Len %.4X\n", - ACPI_HIDWORD (obj_desc->region.address), - ACPI_LODWORD (obj_desc->region.address), + ACPI_FORMAT_UINT64 (obj_desc->region.address), obj_desc->region.length); } else { @@ -324,7 +322,7 @@ if (obj_desc->buffer_field.buffer_obj && obj_desc->buffer_field.buffer_obj->buffer.node) { acpi_os_printf ("Buf [%4.4s]", - obj_desc->buffer_field.buffer_obj->buffer.node->name.ascii); + acpi_ut_get_node_name (obj_desc->buffer_field.buffer_obj->buffer.node)); } break; @@ -332,29 +330,29 @@ case ACPI_TYPE_LOCAL_REGION_FIELD: acpi_os_printf ("Rgn [%4.4s]", - obj_desc->common_field.region_obj->region.node->name.ascii); + acpi_ut_get_node_name (obj_desc->common_field.region_obj->region.node)); break; case ACPI_TYPE_LOCAL_BANK_FIELD: acpi_os_printf ("Rgn [%4.4s] Bnk [%4.4s]", - obj_desc->common_field.region_obj->region.node->name.ascii, - obj_desc->bank_field.bank_obj->common_field.node->name.ascii); + acpi_ut_get_node_name (obj_desc->common_field.region_obj->region.node), + acpi_ut_get_node_name (obj_desc->bank_field.bank_obj->common_field.node)); break; case ACPI_TYPE_LOCAL_INDEX_FIELD: acpi_os_printf ("Idx [%4.4s] Dat [%4.4s]", - obj_desc->index_field.index_obj->common_field.node->name.ascii, - obj_desc->index_field.data_obj->common_field.node->name.ascii); + acpi_ut_get_node_name (obj_desc->index_field.index_obj->common_field.node), + acpi_ut_get_node_name (obj_desc->index_field.data_obj->common_field.node)); break; case ACPI_TYPE_LOCAL_ALIAS: - acpi_os_printf ("Target %4.4s (%p)\n", ((struct acpi_namespace_node *) obj_desc)->name.ascii, obj_desc); + acpi_os_printf ("Target %4.4s (%p)\n", acpi_ut_get_node_name (obj_desc), obj_desc); break; default: @@ -371,7 +369,7 @@ case ACPI_TYPE_LOCAL_BANK_FIELD: case ACPI_TYPE_LOCAL_INDEX_FIELD: - acpi_os_printf ("Off %.2X Len %.2X Acc %.2hd\n", + acpi_os_printf (" Off %.3X Len %.2X Acc %.2hd\n", (obj_desc->common_field.base_byte_offset * 8) + obj_desc->common_field.start_field_bit_offset, obj_desc->common_field.bit_length, @@ -408,8 +406,8 @@ case ACPI_TYPE_INTEGER: - acpi_os_printf (" N:%X%X\n", ACPI_HIDWORD(obj_desc->integer.value), - ACPI_LODWORD(obj_desc->integer.value)); + acpi_os_printf (" I:%8.8X8.8%X\n", + ACPI_FORMAT_UINT64 (obj_desc->integer.value)); break; case ACPI_TYPE_STRING: @@ -485,7 +483,8 @@ default: - acpi_os_printf ("(String or Buffer ptr - not an object descriptor)\n"); + acpi_os_printf ("(String or Buffer ptr - not an object descriptor) [%s]\n", + acpi_ut_get_descriptor_name (obj_desc)); bytes_to_dump = 16; break; } @@ -581,7 +580,6 @@ info.owner_id = owner_id; info.display_type = display_type; - (void) acpi_ns_walk_namespace (type, start_handle, max_depth, ACPI_NS_WALK_NO_UNLOCK, acpi_ns_dump_one_object, (void *) &info, NULL); @@ -627,7 +625,6 @@ search_handle = acpi_gbl_root_node; ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "\\\n")); } - acpi_ns_dump_objects (ACPI_TYPE_ANY, ACPI_DISPLAY_OBJECTS, max_depth, ACPI_UINT32_MAX, search_handle); diff -Nru a/drivers/acpi/namespace/nsdumpdv.c b/drivers/acpi/namespace/nsdumpdv.c --- a/drivers/acpi/namespace/nsdumpdv.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/namespace/nsdumpdv.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -93,7 +93,7 @@ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " HID: %s, ADR: %8.8X%8.8X, Status: %X\n", info->hardware_id.value, - ACPI_HIDWORD (info->address), ACPI_LODWORD (info->address), + ACPI_FORMAT_UINT64 (info->address), info->current_status)); ACPI_MEM_FREE (info); } diff -Nru a/drivers/acpi/namespace/nseval.c b/drivers/acpi/namespace/nseval.c --- a/drivers/acpi/namespace/nseval.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/namespace/nseval.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/namespace/nsinit.c b/drivers/acpi/namespace/nsinit.c --- a/drivers/acpi/namespace/nsinit.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/namespace/nsinit.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -144,10 +144,17 @@ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "Executing all Device _STA and_INI methods:")); - /* Walk namespace for all objects of type Device */ + status = acpi_ut_acquire_mutex (ACPI_MTX_NAMESPACE); + if (ACPI_FAILURE (status)) { + return_ACPI_STATUS (status); + } - status = acpi_ns_walk_namespace (ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, - ACPI_UINT32_MAX, FALSE, acpi_ns_init_one_device, &info, NULL); + /* Walk namespace for all objects of type Device or Processor */ + + status = acpi_ns_walk_namespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, + ACPI_UINT32_MAX, TRUE, acpi_ns_init_one_device, &info, NULL); + + (void) acpi_ut_release_mutex (ACPI_MTX_NAMESPACE); if (ACPI_FAILURE (status)) { ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "walk_namespace failed! %s\n", @@ -290,7 +297,8 @@ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_ERROR, "\n")); ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not execute arguments for [%4.4s] (%s), %s\n", - node->name.ascii, acpi_ut_get_type_name (type), acpi_format_exception (status))); + acpi_ut_get_node_name (node), acpi_ut_get_type_name (type), + acpi_format_exception (status))); } /* Print a dot for each object unless we are going to print the entire pathname */ @@ -338,45 +346,48 @@ ACPI_FUNCTION_TRACE ("ns_init_one_device"); - if ((acpi_dbg_level <= ACPI_LV_ALL_EXCEPTIONS) && (!(acpi_dbg_level & ACPI_LV_INFO))) { - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, ".")); - } - - info->device_count++; - - status = acpi_ut_acquire_mutex (ACPI_MTX_NAMESPACE); - if (ACPI_FAILURE (status)) { - return_ACPI_STATUS (status); - } - node = acpi_ns_map_handle_to_node (obj_handle); if (!node) { - (void) acpi_ut_release_mutex (ACPI_MTX_NAMESPACE); return_ACPI_STATUS (AE_BAD_PARAMETER); } - status = acpi_ut_release_mutex (ACPI_MTX_NAMESPACE); - if (ACPI_FAILURE (status)) { - return_ACPI_STATUS (status); + /* + * We will run _STA/_INI on Devices and Processors only + */ + if ((node->type != ACPI_TYPE_DEVICE) && + (node->type != ACPI_TYPE_PROCESSOR)) { + return_ACPI_STATUS (AE_OK); + } + + if ((acpi_dbg_level <= ACPI_LV_ALL_EXCEPTIONS) && (!(acpi_dbg_level & ACPI_LV_INFO))) { + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, ".")); } + info->device_count++; + /* * Run _STA to determine if we can run _INI on the device. */ ACPI_DEBUG_EXEC (acpi_ut_display_init_pathname (ACPI_TYPE_METHOD, node, "_STA")); status = acpi_ut_execute_STA (node, &flags); + if (ACPI_FAILURE (status)) { - /* Ignore error and move on to next device */ + if (node->type == ACPI_TYPE_DEVICE) { + /* Ignore error and move on to next device */ - return_ACPI_STATUS (AE_OK); - } + return_ACPI_STATUS (AE_OK); + } - info->num_STA++; + /* _STA is not required for Processor objects */ + } + else { + info->num_STA++; - if (!(flags & 0x01)) { - /* don't look at children of a not present device */ + if (!(flags & 0x01)) { + /* Don't look at children of a not present device */ - return_ACPI_STATUS(AE_CTRL_DEPTH); + return_ACPI_STATUS(AE_CTRL_DEPTH); + } } /* diff -Nru a/drivers/acpi/namespace/nsload.c b/drivers/acpi/namespace/nsload.c --- a/drivers/acpi/namespace/nsload.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/namespace/nsload.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/namespace/nsnames.c b/drivers/acpi/namespace/nsnames.c --- a/drivers/acpi/namespace/nsnames.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/namespace/nsnames.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/namespace/nsobject.c b/drivers/acpi/namespace/nsobject.c --- a/drivers/acpi/namespace/nsobject.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/namespace/nsobject.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -104,7 +104,8 @@ if (ACPI_GET_DESCRIPTOR_TYPE (node) != ACPI_DESC_TYPE_NAMED) { /* Not a name handle */ - ACPI_REPORT_ERROR (("ns_attach_object: Invalid handle\n")); + ACPI_REPORT_ERROR (("ns_attach_object: Invalid handle %p [%s]\n", + node, acpi_ut_get_descriptor_name (node))); return_ACPI_STATUS (AE_BAD_PARAMETER); } @@ -151,7 +152,7 @@ } ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Installing %p into Node %p [%4.4s]\n", - obj_desc, node, node->name.ascii)); + obj_desc, node, acpi_ut_get_node_name (node))); /* Detach an existing attached object if present */ @@ -234,7 +235,7 @@ node->type = ACPI_TYPE_ANY; ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Node %p [%4.4s] Object %p\n", - node, node->name.ascii, obj_desc)); + node, acpi_ut_get_node_name (node), obj_desc)); /* Remove one reference on the object (and all subobjects) */ diff -Nru a/drivers/acpi/namespace/nsparse.c b/drivers/acpi/namespace/nsparse.c --- a/drivers/acpi/namespace/nsparse.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/namespace/nsparse.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/namespace/nssearch.c b/drivers/acpi/namespace/nssearch.c --- a/drivers/acpi/namespace/nssearch.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/namespace/nssearch.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -119,7 +119,7 @@ ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Name [%4.4s] (%s) %p found in scope [%4.4s] %p\n", (char *) &target_name, acpi_ut_get_type_name (next_node->type), - next_node, node->name.ascii, node)); + next_node, acpi_ut_get_node_name (node), node)); *return_node = next_node; return_ACPI_STATUS (AE_OK); @@ -145,7 +145,7 @@ ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Name [%4.4s] (%s) not found in search in scope [%4.4s] %p first child %p\n", (char *) &target_name, acpi_ut_get_type_name (type), - node->name.ascii, node, node->child)); + acpi_ut_get_node_name (node), node, node->child)); return_ACPI_STATUS (AE_NOT_FOUND); } diff -Nru a/drivers/acpi/namespace/nsutils.c b/drivers/acpi/namespace/nsutils.c --- a/drivers/acpi/namespace/nsutils.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/namespace/nsutils.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -977,8 +977,8 @@ parent_node = acpi_ns_get_parent_node (child_node); if (parent_node) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Parent of %p [%4.4s] is %p [%4.4s]\n", - child_node, child_node->name.ascii, - parent_node, parent_node->name.ascii)); + child_node, acpi_ut_get_node_name (child_node), + parent_node, acpi_ut_get_node_name (parent_node))); if (parent_node->name.integer) { return_VALUE ((acpi_name) parent_node->name.integer); @@ -986,7 +986,7 @@ } ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "unable to find parent of %p (%4.4s)\n", - child_node, child_node->name.ascii)); + child_node, acpi_ut_get_node_name (child_node))); } return_VALUE (ACPI_UNKNOWN_NAME); diff -Nru a/drivers/acpi/namespace/nswalk.c b/drivers/acpi/namespace/nswalk.c --- a/drivers/acpi/namespace/nswalk.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/namespace/nswalk.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/namespace/nsxfeval.c b/drivers/acpi/namespace/nsxfeval.c --- a/drivers/acpi/namespace/nsxfeval.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/namespace/nsxfeval.c Tue Jan 27 21:03:55 2004 @@ -6,7 +6,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/namespace/nsxfname.c b/drivers/acpi/namespace/nsxfname.c --- a/drivers/acpi/namespace/nsxfname.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/namespace/nsxfname.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -199,7 +199,7 @@ /* Just copy the ACPI name from the Node and zero terminate it */ - ACPI_STRNCPY (buffer->pointer, node->name.ascii, + ACPI_STRNCPY (buffer->pointer, acpi_ut_get_node_name (node), ACPI_NAME_SIZE); ((char *) buffer->pointer) [ACPI_NAME_SIZE] = 0; status = AE_OK; diff -Nru a/drivers/acpi/namespace/nsxfobj.c b/drivers/acpi/namespace/nsxfobj.c --- a/drivers/acpi/namespace/nsxfobj.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/namespace/nsxfobj.c Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/osl.c b/drivers/acpi/osl.c --- a/drivers/acpi/osl.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/osl.c Tue Jan 27 21:03:54 2004 @@ -59,13 +59,13 @@ #ifdef ENABLE_DEBUGGER #include /* stuff for debugger support */ -int acpi_in_debugger = 0; +int acpi_in_debugger; extern char line_buf[80]; #endif /*ENABLE_DEBUGGER*/ -static int acpi_irq_irq = 0; -static OSD_HANDLER acpi_irq_handler = NULL; -static void *acpi_irq_context = NULL; +static int acpi_irq_irq; +static OSD_HANDLER acpi_irq_handler; +static void *acpi_irq_context; acpi_status acpi_os_initialize(void) @@ -257,13 +257,13 @@ return AE_OK; } #endif - acpi_irq_irq = irq; acpi_irq_handler = handler; acpi_irq_context = context; if (request_irq(irq, acpi_irq, SA_SHIRQ, "acpi", acpi_irq)) { printk(KERN_ERR PREFIX "SCI (IRQ%d) allocation failed\n", irq); return AE_NOT_ACQUIRED; } + acpi_irq_irq = irq; return AE_OK; } @@ -271,12 +271,13 @@ acpi_status acpi_os_remove_interrupt_handler(u32 irq, OSD_HANDLER handler) { - if (acpi_irq_handler) { + if (irq) { #ifdef CONFIG_IA64 irq = acpi_irq_to_vector(irq); #endif free_irq(irq, acpi_irq); acpi_irq_handler = NULL; + acpi_irq_irq = 0; } return AE_OK; diff -Nru a/drivers/acpi/parser/psargs.c b/drivers/acpi/parser/psargs.c --- a/drivers/acpi/parser/psargs.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/parser/psargs.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -490,7 +490,7 @@ acpi_ps_get_next_field ( struct acpi_parse_state *parser_state) { - u32 aml_offset = ACPI_PTR_DIFF (parser_state->aml, + u32 aml_offset = (u32) ACPI_PTR_DIFF (parser_state->aml, parser_state->aml_start); union acpi_parse_object *field; u16 opcode; @@ -677,7 +677,7 @@ /* Fill in bytelist data */ - arg->common.value.size = ACPI_PTR_DIFF (parser_state->pkg_end, + arg->common.value.size = (u32) ACPI_PTR_DIFF (parser_state->pkg_end, parser_state->aml); arg->named.data = parser_state->aml; diff -Nru a/drivers/acpi/parser/psopcode.c b/drivers/acpi/parser/psopcode.c --- a/drivers/acpi/parser/psopcode.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/parser/psopcode.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/parser/psparse.c b/drivers/acpi/parser/psparse.c --- a/drivers/acpi/parser/psparse.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/parser/psparse.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -498,7 +498,7 @@ if (!op) { /* Get the next opcode from the AML stream */ - walk_state->aml_offset = ACPI_PTR_DIFF (parser_state->aml, + walk_state->aml_offset = (u32) ACPI_PTR_DIFF (parser_state->aml, parser_state->aml_start); walk_state->opcode = acpi_ps_peek_opcode (parser_state); @@ -710,7 +710,7 @@ while (GET_CURRENT_ARG_TYPE (walk_state->arg_types) && !walk_state->arg_count) { - walk_state->aml_offset = ACPI_PTR_DIFF (parser_state->aml, + walk_state->aml_offset = (u32) ACPI_PTR_DIFF (parser_state->aml, parser_state->aml_start); status = acpi_ps_get_next_arg (walk_state, parser_state, GET_CURRENT_ARG_TYPE (walk_state->arg_types), &arg); diff -Nru a/drivers/acpi/parser/psscope.c b/drivers/acpi/parser/psscope.c --- a/drivers/acpi/parser/psscope.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/parser/psscope.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/parser/pstree.c b/drivers/acpi/parser/pstree.c --- a/drivers/acpi/parser/pstree.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/parser/pstree.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/parser/psutils.c b/drivers/acpi/parser/psutils.c --- a/drivers/acpi/parser/psutils.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/parser/psutils.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/parser/pswalk.c b/drivers/acpi/parser/pswalk.c --- a/drivers/acpi/parser/pswalk.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/parser/pswalk.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/parser/psxface.c b/drivers/acpi/parser/psxface.c --- a/drivers/acpi/parser/psxface.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/parser/psxface.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -127,7 +127,8 @@ op = acpi_ps_create_scope_op (); if (!op) { - return_ACPI_STATUS (AE_NO_MEMORY); + status = AE_NO_MEMORY; + goto cleanup1; } /* @@ -142,20 +143,24 @@ walk_state = acpi_ds_create_walk_state (obj_desc->method.owning_id, NULL, NULL, NULL); if (!walk_state) { - return_ACPI_STATUS (AE_NO_MEMORY); + status = AE_NO_MEMORY; + goto cleanup2; } status = acpi_ds_init_aml_walk (walk_state, op, method_node, obj_desc->method.aml_start, obj_desc->method.aml_length, NULL, NULL, 1); if (ACPI_FAILURE (status)) { - acpi_ds_delete_walk_state (walk_state); - return_ACPI_STATUS (status); + goto cleanup3; } /* Parse the AML */ status = acpi_ps_parse_aml (walk_state); acpi_ps_delete_parse_tree (op); + if (ACPI_FAILURE (status)) { + goto cleanup1; /* Walk state is already deleted */ + + } /* * 2) Execute the method. Performs second pass parse simultaneously @@ -168,7 +173,8 @@ op = acpi_ps_create_scope_op (); if (!op) { - return_ACPI_STATUS (AE_NO_MEMORY); + status = AE_NO_MEMORY; + goto cleanup1; } /* Init new op with the method name and pointer back to the NS node */ @@ -180,22 +186,30 @@ walk_state = acpi_ds_create_walk_state (0, NULL, NULL, NULL); if (!walk_state) { - return_ACPI_STATUS (AE_NO_MEMORY); + status = AE_NO_MEMORY; + goto cleanup2; } status = acpi_ds_init_aml_walk (walk_state, op, method_node, obj_desc->method.aml_start, obj_desc->method.aml_length, params, return_obj_desc, 3); if (ACPI_FAILURE (status)) { - acpi_ds_delete_walk_state (walk_state); - return_ACPI_STATUS (status); + goto cleanup3; } /* * The walk of the parse tree is where we actually execute the method */ status = acpi_ps_parse_aml (walk_state); + goto cleanup2; /* Walk state already deleted */ + + +cleanup3: + acpi_ds_delete_walk_state (walk_state); + +cleanup2: acpi_ps_delete_parse_tree (op); +cleanup1: if (params) { /* Take away the extra reference that we gave the parameters above */ @@ -204,6 +218,10 @@ (void) acpi_ut_update_object_reference (params[i], REF_DECREMENT); } + } + + if (ACPI_FAILURE (status)) { + return_ACPI_STATUS (status); } /* diff -Nru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c --- a/drivers/acpi/pci_link.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/pci_link.c Tue Jan 27 21:03:53 2004 @@ -99,7 +99,7 @@ void *context) { struct acpi_pci_link *link = (struct acpi_pci_link *) context; - int i = 0; + u32 i = 0; ACPI_FUNCTION_TRACE("acpi_pci_link_check_possible"); @@ -294,7 +294,10 @@ if (!link->irq.active) { ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "No active IRQ resource found\n")); - printk(KERN_WARNING "_CRS returns NULL! Using IRQ %d for device (%s [%s]).\n", irq, acpi_device_name(link->device), acpi_device_bid(link->device)); + printk(KERN_WARNING "_CRS returns NULL! Using IRQ %d for" + "device (%s [%s]).\n", irq, + acpi_device_name(link->device), + acpi_device_bid(link->device)); link->irq.active = irq; } @@ -429,30 +432,67 @@ PCI Link IRQ Management -------------------------------------------------------------------------- */ -#define ACPI_MAX_IRQS 256 -#define ACPI_MAX_ISA_IRQ 16 - /* - * IRQ penalties are used to promote PCI IRQ balancing. We set each ISA- - * possible IRQ (0-15) with a default penalty relative to its feasibility - * for PCI's use: + * "acpi_irq_balance" (default in APIC mode) enables ACPI to use PIC Interrupt + * Link Devices to move the PIRQs around to minimize sharing. + * + * "acpi_irq_nobalance" (default in PIC mode) tells ACPI not to move any PIC IRQs + * that the BIOS has already set to active. This is necessary because + * ACPI has no automatic means of knowing what ISA IRQs are used. Note that + * if the BIOS doesn't set a Link Device active, ACPI needs to program it + * even if acpi_irq_nobalance is set. + * + * A tables of penalties avoids directing PCI interrupts to well known + * ISA IRQs. Boot params are available to over-ride the default table: * - * Never use: 0, 1, 2 (timer, keyboard, and cascade) - * Avoid using: 13, 14, and 15 (FP error and IDE) - * Penalize: 3, 4, 6, 7, 12 (known ISA uses) + * List interrupts that are free for PCI use. + * acpi_irq_pci=n[,m] * - * Thus we're left with IRQs 5, 9, 10, 11, and everything above 15 (IO[S]APIC) - * as 'best bets' for PCI use. + * List interrupts that should not be used for PCI: + * acpi_irq_isa=n[,m] + * + * Note that PCI IRQ routers have a list of possible IRQs, + * which may not include the IRQs this table says are available. + * + * Since this heuristic can't tell the difference between a link + * that no device will attach to, vs. a link which may be shared + * by multiple active devices -- it is not optimal. + * + * If interrupt performance is that important, get an IO-APIC system + * with a pin dedicated to each device. Or for that matter, an MSI + * enabled system. */ +#define ACPI_MAX_IRQS 256 +#define ACPI_MAX_ISA_IRQ 16 + +#define PIRQ_PENALTY_PCI_AVAILABLE (0) +#define PIRQ_PENALTY_PCI_POSSIBLE (16*16) +#define PIRQ_PENALTY_PCI_USING (16*16*16) +#define PIRQ_PENALTY_ISA_TYPICAL (16*16*16*16) +#define PIRQ_PENALTY_ISA_USED (16*16*16*16*16) +#define PIRQ_PENALTY_ISA_ALWAYS (16*16*16*16*16*16) + static int acpi_irq_penalty[ACPI_MAX_IRQS] = { - 1000000, 1000000, 1000000, 10000, - 10000, 0, 10000, 10000, - 10000, 0, 0, 0, - 10000, 100000, 100000, 100000, + PIRQ_PENALTY_ISA_ALWAYS, /* IRQ0 timer */ + PIRQ_PENALTY_ISA_ALWAYS, /* IRQ1 keyboard */ + PIRQ_PENALTY_ISA_ALWAYS, /* IRQ2 cascade */ + PIRQ_PENALTY_ISA_TYPICAL, /* IRQ3 serial */ + PIRQ_PENALTY_ISA_TYPICAL, /* IRQ4 serial */ + PIRQ_PENALTY_ISA_TYPICAL, /* IRQ5 sometimes SoundBlaster */ + PIRQ_PENALTY_ISA_TYPICAL, /* IRQ6 */ + PIRQ_PENALTY_ISA_TYPICAL, /* IRQ7 parallel, spurious */ + PIRQ_PENALTY_ISA_TYPICAL, /* IRQ8 rtc, sometimes */ + PIRQ_PENALTY_PCI_AVAILABLE, /* IRQ9 PCI, often acpi */ + PIRQ_PENALTY_PCI_AVAILABLE, /* IRQ10 PCI */ + PIRQ_PENALTY_PCI_AVAILABLE, /* IRQ11 PCI */ + PIRQ_PENALTY_ISA_TYPICAL, /* IRQ12 mouse */ + PIRQ_PENALTY_ISA_USED, /* IRQ13 fpe, sometimes */ + PIRQ_PENALTY_ISA_USED, /* IRQ14 ide0 */ + PIRQ_PENALTY_ISA_USED, /* IRQ15 ide1 */ + /* >IRQ15 */ }; - int acpi_pci_link_check (void) { @@ -473,20 +513,30 @@ continue; } - if (link->irq.active) - acpi_irq_penalty[link->irq.active] += 100; - else if (link->irq.possible_count) { - int penalty = 100 / link->irq.possible_count; - for (i=0; iirq.possible_count; i++) { + /* + * reflect the possible and active irqs in the penalty table -- + * useful for breaking ties. + */ + if (link->irq.possible_count) { + int penalty = PIRQ_PENALTY_PCI_POSSIBLE / link->irq.possible_count; + + for (i = 0; i < link->irq.possible_count; i++) { if (link->irq.possible[i] < ACPI_MAX_ISA_IRQ) acpi_irq_penalty[link->irq.possible[i]] += penalty; } + + } else if (link->irq.active) { + acpi_irq_penalty[link->irq.active] += PIRQ_PENALTY_PCI_POSSIBLE; } } + /* Add a penalty for the SCI */ + acpi_irq_penalty[acpi_fadt.sci_int] += PIRQ_PENALTY_PCI_USING; return_VALUE(0); } +static int acpi_irq_balance; /* 0: static, 1: balance */ + static int acpi_pci_link_allocate(struct acpi_pci_link* link) { int irq; int i; @@ -500,12 +550,14 @@ irq = link->irq.active; } else { irq = link->irq.possible[0]; + } + if (acpi_irq_balance || !link->irq.active) { /* * Select the best IRQ. This is done in reverse to promote * the use of IRQs 9, 10, 11, and >15. */ - for (i=(link->irq.possible_count-1); i>0; i--) { + for (i = (link->irq.possible_count - 1); i >= 0; i--) { if (acpi_irq_penalty[irq] > acpi_irq_penalty[link->irq.possible[i]]) irq = link->irq.possible[i]; } @@ -518,13 +570,14 @@ acpi_device_bid(link->device)); return_VALUE(-ENODEV); } else { - acpi_irq_penalty[link->irq.active] += 100; + acpi_irq_penalty[link->irq.active] += PIRQ_PENALTY_PCI_USING; printk(PREFIX "%s [%s] enabled at IRQ %d\n", acpi_device_name(link->device), acpi_device_bid(link->device), link->irq.active); } link->irq.setonboot = 1; + return_VALUE(0); } @@ -607,9 +660,12 @@ if (result) goto end; + /* query and set link->irq.active */ acpi_pci_link_get_current(link); - printk(PREFIX "%s [%s] (IRQs", acpi_device_name(device), acpi_device_bid(device)); +//#ifdef CONFIG_ACPI_DEBUG + printk(PREFIX "%s [%s] (IRQs", acpi_device_name(device), + acpi_device_bid(device)); for (i = 0; i < link->irq.possible_count; i++) { if (link->irq.active == link->irq.possible[i]) { printk(" *%d", link->irq.possible[i]); @@ -619,6 +675,7 @@ printk(" %d", link->irq.possible[i]); } printk(")\n"); +//#endif /* CONFIG_ACPI_DEBUG */ /* TBD: Acquire/release lock */ list_add_tail(&link->node, &acpi_link.entries); @@ -653,6 +710,77 @@ return_VALUE(0); } + +/* + * modify acpi_irq_penalty[] from cmdline + */ +static int __init acpi_irq_penalty_update(char *str, int used) +{ + int i; + + for (i = 0; i < 16; i++) { + int retval; + int irq; + + retval = get_option(&str,&irq); + + if (!retval) + break; /* no number found */ + + if (irq < 0) + continue; + + if (irq >= ACPI_MAX_IRQS) + continue; + + if (used) + acpi_irq_penalty[irq] += PIRQ_PENALTY_ISA_USED; + else + acpi_irq_penalty[irq] = PIRQ_PENALTY_PCI_AVAILABLE; + + if (retval != 2) /* no next number */ + break; + } + return 1; +} + +/* + * Over-ride default table to reserve additional IRQs for use by ISA + * e.g. acpi_irq_isa=5 + * Useful for telling ACPI how not to interfere with your ISA sound card. + */ +static int __init acpi_irq_isa(char *str) +{ + return(acpi_irq_penalty_update(str, 1)); +} +__setup("acpi_irq_isa=", acpi_irq_isa); + +/* + * Over-ride default table to free additional IRQs for use by PCI + * e.g. acpi_irq_pci=7,15 + * Used for acpi_irq_balance to free up IRQs to reduce PCI IRQ sharing. + */ +static int __init acpi_irq_pci(char *str) +{ + return(acpi_irq_penalty_update(str, 0)); +} +__setup("acpi_irq_pci=", acpi_irq_pci); + +static int __init acpi_irq_nobalance_set(char *str) +{ +printk("ACPI STATIC SET\n"); + acpi_irq_balance = 0; + return(1); +} +__setup("acpi_irq_nobalance", acpi_irq_nobalance_set); + +int __init acpi_irq_balance_set(char *str) +{ +printk("ACPI BALANCE SET\n"); + acpi_irq_balance = 1; + return(1); +} +__setup("acpi_irq_balance", acpi_irq_balance_set); static int __init acpi_pci_link_init (void) diff -Nru a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c --- a/drivers/acpi/pci_root.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/pci_root.c Tue Jan 27 21:03:53 2004 @@ -62,8 +62,6 @@ acpi_handle handle; struct acpi_pci_id id; struct pci_bus *bus; - u64 mem_tra; - u64 io_tra; }; static LIST_HEAD(acpi_pci_roots); @@ -115,97 +113,6 @@ } } -void -acpi_pci_get_translations ( - struct acpi_pci_id *id, - u64 *mem_tra, - u64 *io_tra) -{ - struct list_head *node = NULL; - struct acpi_pci_root *entry; - - /* TBD: Locking */ - list_for_each(node, &acpi_pci_roots) { - entry = list_entry(node, struct acpi_pci_root, node); - if ((id->segment == entry->id.segment) - && (id->bus == entry->id.bus)) { - *mem_tra = entry->mem_tra; - *io_tra = entry->io_tra; - return; - } - } - - *mem_tra = 0; - *io_tra = 0; -} - - -static u64 -acpi_pci_root_bus_tra ( - struct acpi_resource *resource, - int type) -{ - struct acpi_resource_address16 *address16; - struct acpi_resource_address32 *address32; - struct acpi_resource_address64 *address64; - - while (1) { - switch (resource->id) { - case ACPI_RSTYPE_END_TAG: - return 0; - - case ACPI_RSTYPE_ADDRESS16: - address16 = (struct acpi_resource_address16 *) &resource->data; - if (type == address16->resource_type) { - return address16->address_translation_offset; - } - break; - - case ACPI_RSTYPE_ADDRESS32: - address32 = (struct acpi_resource_address32 *) &resource->data; - if (type == address32->resource_type) { - return address32->address_translation_offset; - } - break; - - case ACPI_RSTYPE_ADDRESS64: - address64 = (struct acpi_resource_address64 *) &resource->data; - if (type == address64->resource_type) { - return address64->address_translation_offset; - } - break; - } - resource = ACPI_PTR_ADD (struct acpi_resource, - resource, resource->length); - } - - return 0; -} - - -static int -acpi_pci_evaluate_crs ( - struct acpi_pci_root *root) -{ - acpi_status status; - struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL}; - - ACPI_FUNCTION_TRACE("acpi_pci_evaluate_crs"); - - status = acpi_get_current_resources (root->handle, &buffer); - if (ACPI_FAILURE(status)) - return_VALUE(-ENODEV); - - root->io_tra = acpi_pci_root_bus_tra ((struct acpi_resource *) - buffer.pointer, ACPI_IO_RANGE); - root->mem_tra = acpi_pci_root_bus_tra ((struct acpi_resource *) - buffer.pointer, ACPI_MEMORY_RANGE); - - acpi_os_free(buffer.pointer); - return_VALUE(0); -} - - static int acpi_pci_root_add ( struct acpi_device *device) @@ -288,10 +195,8 @@ root->id.function = device->pnp.bus_address & 0xFFFF; /* - * Evaluate _CRS to get root bridge resources * TBD: Need PCI interface for enumeration/configuration of roots. */ - acpi_pci_evaluate_crs(root); /* TBD: Locking */ list_add_tail(&root->node, &acpi_pci_roots); diff -Nru a/drivers/acpi/power.c b/drivers/acpi/power.c --- a/drivers/acpi/power.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/power.c Tue Jan 27 21:03:54 2004 @@ -387,7 +387,7 @@ FS Interface (/proc) -------------------------------------------------------------------------- */ -struct proc_dir_entry *acpi_power_dir = NULL; +struct proc_dir_entry *acpi_power_dir; static int acpi_power_seq_show(struct seq_file *seq, void *offset) { diff -Nru a/drivers/acpi/processor.c b/drivers/acpi/processor.c --- a/drivers/acpi/processor.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/processor.c Tue Jan 27 21:03:54 2004 @@ -138,7 +138,7 @@ static struct acpi_processor *processors[NR_CPUS]; static struct acpi_processor_errata errata; -static void (*pm_idle_save)(void) = NULL; +static void (*pm_idle_save)(void); /* -------------------------------------------------------------------------- diff -Nru a/drivers/acpi/resources/rsaddr.c b/drivers/acpi/resources/rsaddr.c --- a/drivers/acpi/resources/rsaddr.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/resources/rsaddr.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/resources/rscalc.c b/drivers/acpi/resources/rscalc.c --- a/drivers/acpi/resources/rscalc.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/resources/rscalc.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -696,7 +696,7 @@ default: /* * If we get here, everything is out of sync, - * so exit with an error + * exit with an error */ return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE); } @@ -704,7 +704,7 @@ /* * Update the return value and counter */ - buffer_size += ACPI_ALIGN_RESOURCE_SIZE(structure_size); + buffer_size += (u32) ACPI_ALIGN_RESOURCE_SIZE (structure_size); bytes_parsed += bytes_consumed; /* diff -Nru a/drivers/acpi/resources/rscreate.c b/drivers/acpi/resources/rscreate.c --- a/drivers/acpi/resources/rscreate.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/resources/rscreate.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -331,7 +331,7 @@ /* Now align the current length */ - user_prt->length = ACPI_ROUND_UP_to_64_bITS (user_prt->length); + user_prt->length = (u32) ACPI_ROUND_UP_to_64_bITS (user_prt->length); /* * 4) Fourth subobject: Dereference the PRT.source_index diff -Nru a/drivers/acpi/resources/rsdump.c b/drivers/acpi/resources/rsdump.c --- a/drivers/acpi/resources/rsdump.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/resources/rsdump.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -899,24 +899,19 @@ "" : "not "); acpi_os_printf (" Granularity: %8.8X%8.8X\n", - ACPI_HIDWORD (address64_data->granularity), - ACPI_LODWORD (address64_data->granularity)); + ACPI_FORMAT_UINT64 (address64_data->granularity)); acpi_os_printf (" Address range min: %8.8X%8.8X\n", - ACPI_HIDWORD (address64_data->min_address_range), - ACPI_HIDWORD (address64_data->min_address_range)); + ACPI_FORMAT_UINT64 (address64_data->min_address_range)); acpi_os_printf (" Address range max: %8.8X%8.8X\n", - ACPI_HIDWORD (address64_data->max_address_range), - ACPI_HIDWORD (address64_data->max_address_range)); + ACPI_FORMAT_UINT64 (address64_data->max_address_range)); acpi_os_printf (" Address translation offset: %8.8X%8.8X\n", - ACPI_HIDWORD (address64_data->address_translation_offset), - ACPI_HIDWORD (address64_data->address_translation_offset)); + ACPI_FORMAT_UINT64 (address64_data->address_translation_offset)); acpi_os_printf (" Address Length: %8.8X%8.8X\n", - ACPI_HIDWORD (address64_data->address_length), - ACPI_HIDWORD (address64_data->address_length)); + ACPI_FORMAT_UINT64 (address64_data->address_length)); if(0xFF != address64_data->resource_source.index) { acpi_os_printf (" Resource Source Index: %X\n", @@ -1126,8 +1121,7 @@ acpi_os_printf ("PCI IRQ Routing Table structure %X.\n", count++); acpi_os_printf (" Address: %8.8X%8.8X\n", - ACPI_HIDWORD (prt_element->address), - ACPI_LODWORD (prt_element->address)); + ACPI_FORMAT_UINT64 (prt_element->address)); acpi_os_printf (" Pin: %X\n", prt_element->pin); diff -Nru a/drivers/acpi/resources/rsio.c b/drivers/acpi/resources/rsio.c --- a/drivers/acpi/resources/rsio.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/resources/rsio.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/resources/rsirq.c b/drivers/acpi/resources/rsirq.c --- a/drivers/acpi/resources/rsirq.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/resources/rsirq.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -132,26 +132,28 @@ temp8 = *buffer; /* - * Check for HE, LL or HL + * Check for HE, LL interrupts */ - if (temp8 & 0x01) { + switch (temp8 & 0x09) { + case 0x01: /* HE */ output_struct->data.irq.edge_level = ACPI_EDGE_SENSITIVE; output_struct->data.irq.active_high_low = ACPI_ACTIVE_HIGH; - } - else { - if (temp8 & 0x8) { - output_struct->data.irq.edge_level = ACPI_LEVEL_SENSITIVE; - output_struct->data.irq.active_high_low = ACPI_ACTIVE_LOW; - } - else { - /* - * Only _LL and _HE polarity/trigger interrupts - * are allowed (ACPI spec v1.0b ection 6.4.2.1), - * so an error will occur if we reach this point - */ - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Invalid interrupt polarity/trigger in resource list\n")); - return_ACPI_STATUS (AE_BAD_DATA); - } + break; + + case 0x08: /* LL */ + output_struct->data.irq.edge_level = ACPI_LEVEL_SENSITIVE; + output_struct->data.irq.active_high_low = ACPI_ACTIVE_LOW; + break; + + default: + /* + * Only _LL and _HE polarity/trigger interrupts + * are allowed (ACPI spec, section "IRQ Format") + * so 0x00 and 0x09 are illegal. + */ + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, + "Invalid interrupt polarity/trigger in resource list, %X\n", temp8)); + return_ACPI_STATUS (AE_BAD_DATA); } /* @@ -419,7 +421,7 @@ * Point the String pointer to the end of this structure. */ output_struct->data.extended_irq.resource_source.string_ptr = - (char *)(output_struct + struct_size); + (char *)((char *) output_struct + struct_size); temp_ptr = (u8 *) output_struct->data.extended_irq.resource_source.string_ptr; diff -Nru a/drivers/acpi/resources/rslist.c b/drivers/acpi/resources/rslist.c --- a/drivers/acpi/resources/rslist.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/resources/rslist.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -312,8 +312,8 @@ * Set the Buffer to the next structure */ resource = ACPI_CAST_PTR (struct acpi_resource, buffer); - resource->length = ACPI_ALIGN_RESOURCE_SIZE(resource->length); - buffer += ACPI_ALIGN_RESOURCE_SIZE(structure_size); + resource->length = (u32) ACPI_ALIGN_RESOURCE_SIZE (resource->length); + buffer += ACPI_ALIGN_RESOURCE_SIZE (structure_size); } /* end while */ diff -Nru a/drivers/acpi/resources/rsmemory.c b/drivers/acpi/resources/rsmemory.c --- a/drivers/acpi/resources/rsmemory.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/resources/rsmemory.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/resources/rsmisc.c b/drivers/acpi/resources/rsmisc.c --- a/drivers/acpi/resources/rsmisc.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/resources/rsmisc.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/resources/rsutils.c b/drivers/acpi/resources/rsutils.c --- a/drivers/acpi/resources/rsutils.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/resources/rsutils.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/resources/rsxface.c b/drivers/acpi/resources/rsxface.c --- a/drivers/acpi/resources/rsxface.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/resources/rsxface.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/scan.c b/drivers/acpi/scan.c --- a/drivers/acpi/scan.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/scan.c Tue Jan 27 21:03:53 2004 @@ -336,6 +336,9 @@ ACPI_FUNCTION_TRACE("acpi_bus_register_driver"); + if (acpi_disabled) + return_VALUE(-ENODEV); + if (driver) { spin_lock(&acpi_device_lock); list_add_tail(&driver->node, &acpi_bus_drivers); @@ -703,11 +706,11 @@ switch (type) { case ACPI_BUS_TYPE_DEVICE: result = acpi_bus_get_status(device); - if (!result) - break; - if (!device->status.present) + if (ACPI_FAILURE(result) || !device->status.present) { result = -ENOENT; - goto end; + goto end; + } + break; default: STRUCT_TO_INT(device->status) = 0x0F; break; diff -Nru a/drivers/acpi/sleep/proc.c b/drivers/acpi/sleep/proc.c --- a/drivers/acpi/sleep/proc.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/sleep/proc.c Tue Jan 27 21:03:54 2004 @@ -374,6 +374,9 @@ { struct proc_dir_entry *entry = NULL; + if (acpi_disabled) + return 0; + /* 'sleep' [R/W]*/ entry = create_proc_entry(ACPI_SYSTEM_FILE_SLEEP, S_IFREG|S_IRUGO|S_IWUSR, acpi_root_dir); diff -Nru a/drivers/acpi/tables/tbconvrt.c b/drivers/acpi/tables/tbconvrt.c --- a/drivers/acpi/tables/tbconvrt.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/tables/tbconvrt.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -138,11 +138,11 @@ for (i = 0; i < acpi_gbl_rsdt_table_count; i++) { if (acpi_gbl_RSDP->revision < 2) { ACPI_STORE_ADDRESS (new_table->table_offset_entry[i], - ((struct rsdt_descriptor_rev1 *) table_info->pointer)->table_offset_entry[i]); + (ACPI_CAST_PTR (struct rsdt_descriptor_rev1, table_info->pointer))->table_offset_entry[i]); } else { new_table->table_offset_entry[i] = - ((XSDT_DESCRIPTOR *) table_info->pointer)->table_offset_entry[i]; + (ACPI_CAST_PTR (XSDT_DESCRIPTOR, table_info->pointer))->table_offset_entry[i]; } } @@ -152,7 +152,7 @@ /* Point the table descriptor to the new table */ - table_info->pointer = (struct acpi_table_header *) new_table; + table_info->pointer = ACPI_CAST_PTR (struct acpi_table_header, new_table); table_info->length = table_size; table_info->allocation = ACPI_MEM_ALLOCATED; @@ -469,7 +469,7 @@ /* Install the new table */ - table_desc->pointer = (struct acpi_table_header *) acpi_gbl_FADT; + table_desc->pointer = ACPI_CAST_PTR (struct acpi_table_header, acpi_gbl_FADT); table_desc->allocation = ACPI_MEM_ALLOCATED; table_desc->length = sizeof (struct fadt_descriptor_rev2); diff -Nru a/drivers/acpi/tables/tbget.c b/drivers/acpi/tables/tbget.c --- a/drivers/acpi/tables/tbget.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/tables/tbget.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -148,8 +148,7 @@ (void *) &header); if (ACPI_FAILURE (status)) { ACPI_REPORT_ERROR (("Could not map memory at %8.8X%8.8X for length %X\n", - ACPI_HIDWORD (address->pointer.physical), - ACPI_LODWORD (address->pointer.physical), + ACPI_FORMAT_UINT64 (address->pointer.physical), sizeof (struct acpi_table_header))); return_ACPI_STATUS (status); } @@ -365,8 +364,7 @@ if (ACPI_FAILURE (status)) { ACPI_REPORT_ERROR (("Could not map memory for table [%4.4s] at %8.8X%8.8X for length %X\n", header->signature, - ACPI_HIDWORD (address->pointer.physical), - ACPI_LODWORD (address->pointer.physical), header->length)); + ACPI_FORMAT_UINT64 (address->pointer.physical), header->length)); return (status); } @@ -408,8 +406,7 @@ ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Found table [%4.4s] at %8.8X%8.8X, mapped/copied to %p\n", full_table->signature, - ACPI_HIDWORD (address->pointer.physical), - ACPI_LODWORD (address->pointer.physical), full_table)); + ACPI_FORMAT_UINT64 (address->pointer.physical), full_table)); return_ACPI_STATUS (status); } @@ -458,6 +455,7 @@ if (instance == 1) { /* Get the first */ + *table_ptr_loc = NULL; if (acpi_gbl_table_lists[table_type].next) { *table_ptr_loc = acpi_gbl_table_lists[table_type].next->pointer; } diff -Nru a/drivers/acpi/tables/tbgetall.c b/drivers/acpi/tables/tbgetall.c --- a/drivers/acpi/tables/tbgetall.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/tables/tbgetall.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -240,8 +240,7 @@ if ((status != AE_OK) && (status != AE_TABLE_NOT_SUPPORTED)) { ACPI_REPORT_WARNING (("%s, while getting table at %8.8X%8.8X\n", acpi_format_exception (status), - ACPI_HIDWORD (address.pointer.value), - ACPI_LODWORD (address.pointer.value))); + ACPI_FORMAT_UINT64 (address.pointer.value))); } } diff -Nru a/drivers/acpi/tables/tbinstal.c b/drivers/acpi/tables/tbinstal.c --- a/drivers/acpi/tables/tbinstal.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/tables/tbinstal.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/tables/tbrsdt.c b/drivers/acpi/tables/tbrsdt.c --- a/drivers/acpi/tables/tbrsdt.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/tables/tbrsdt.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -233,6 +233,15 @@ acpi_gbl_RSDP->rsdt_physical_address, (void *) (acpi_native_uint) acpi_gbl_RSDP->rsdt_physical_address)); + if (acpi_gbl_RSDP->revision < 2) { + ACPI_REPORT_ERROR (("Looking for RSDT (RSDP->Rev < 2)\n")) + } + else { + ACPI_REPORT_ERROR (("Looking for XSDT (RSDP->Rev >= 2)\n")) + } + + ACPI_DUMP_BUFFER ((char *) table_ptr, 48); + return (AE_BAD_SIGNATURE); } @@ -278,8 +287,7 @@ ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "RSDP located at %p, points to RSDT physical=%8.8X%8.8X \n", acpi_gbl_RSDP, - ACPI_HIDWORD (address.pointer.value), - ACPI_LODWORD (address.pointer.value))); + ACPI_FORMAT_UINT64 (address.pointer.value))); /* Check the RSDT or XSDT signature */ @@ -306,7 +314,7 @@ return_ACPI_STATUS (status); } - acpi_gbl_XSDT = (XSDT_DESCRIPTOR *) table_info.pointer; + acpi_gbl_XSDT = ACPI_CAST_PTR (XSDT_DESCRIPTOR, table_info.pointer); ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "XSDT located at %p\n", acpi_gbl_XSDT)); return_ACPI_STATUS (status); diff -Nru a/drivers/acpi/tables/tbutils.c b/drivers/acpi/tables/tbutils.c --- a/drivers/acpi/tables/tbutils.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/tables/tbutils.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/tables/tbxface.c b/drivers/acpi/tables/tbxface.c --- a/drivers/acpi/tables/tbxface.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/tables/tbxface.c Tue Jan 27 21:03:55 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -251,7 +251,7 @@ /* Find all tables of the requested type */ table_desc = acpi_gbl_table_lists[table_type].next; - while (table_desc); { + while (table_desc) { /* * Delete all namespace entries owned by this table. Note that these * entries can appear anywhere in the namespace by virtue of the AML diff -Nru a/drivers/acpi/tables/tbxfroot.c b/drivers/acpi/tables/tbxfroot.c --- a/drivers/acpi/tables/tbxfroot.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/tables/tbxfroot.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -211,8 +211,7 @@ ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "RSDP located at %p, RSDT physical=%8.8X%8.8X \n", acpi_gbl_RSDP, - ACPI_HIDWORD (address.pointer.value), - ACPI_LODWORD (address.pointer.value))); + ACPI_FORMAT_UINT64 (address.pointer.value))); /* Insert processor_mode flags */ @@ -242,11 +241,11 @@ /* Get the next table pointer, handle RSDT vs. XSDT */ if (acpi_gbl_RSDP->revision < 2) { - address.pointer.value = ((RSDT_DESCRIPTOR *) rsdt_info.pointer)->table_offset_entry[i]; + address.pointer.value = (ACPI_CAST_PTR (RSDT_DESCRIPTOR, rsdt_info.pointer))->table_offset_entry[i]; } else { address.pointer.value = - ((XSDT_DESCRIPTOR *) rsdt_info.pointer)->table_offset_entry[i]; + (ACPI_CAST_PTR (XSDT_DESCRIPTOR, rsdt_info.pointer))->table_offset_entry[i]; } /* Get the table header */ diff -Nru a/drivers/acpi/tables.c b/drivers/acpi/tables.c --- a/drivers/acpi/tables.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/tables.c Tue Jan 27 21:03:53 2004 @@ -60,6 +60,9 @@ [ACPI_HPET] = "HPET", }; +static char *mps_inti_flags_polarity[] = { "dfl", "high", "res", "low" }; +static char *mps_inti_flags_trigger[] = { "dfl", "edge", "res", "level" }; + /* System Description Table (RSDT/XSDT) */ struct acpi_table_sdt { unsigned long pa; @@ -136,8 +139,14 @@ { struct acpi_table_int_src_ovr *p = (struct acpi_table_int_src_ovr*) header; - printk(KERN_INFO PREFIX "INT_SRC_OVR (bus[%d] irq[0x%x] global_irq[0x%x] polarity[0x%x] trigger[0x%x])\n", - p->bus, p->bus_irq, p->global_irq, p->flags.polarity, p->flags.trigger); + printk(KERN_INFO PREFIX "INT_SRC_OVR (bus %d bus_irq %d global_irq %d %s %s)\n", + p->bus, p->bus_irq, p->global_irq, + mps_inti_flags_polarity[p->flags.polarity], + mps_inti_flags_trigger[p->flags.trigger]); + if(p->flags.reserved) + printk(KERN_INFO PREFIX "INT_SRC_OVR unexpected reserved flags: 0x%x\n", + p->flags.reserved); + } break; @@ -145,8 +154,9 @@ { struct acpi_table_nmi_src *p = (struct acpi_table_nmi_src*) header; - printk(KERN_INFO PREFIX "NMI_SRC (polarity[0x%x] trigger[0x%x] global_irq[0x%x])\n", - p->flags.polarity, p->flags.trigger, p->global_irq); + printk(KERN_INFO PREFIX "NMI_SRC (%s %s global_irq %d)\n", + mps_inti_flags_polarity[p->flags.polarity], + mps_inti_flags_trigger[p->flags.trigger], p->global_irq); } break; @@ -154,8 +164,10 @@ { struct acpi_table_lapic_nmi *p = (struct acpi_table_lapic_nmi*) header; - printk(KERN_INFO PREFIX "LAPIC_NMI (acpi_id[0x%02x] polarity[0x%x] trigger[0x%x] lint[0x%x])\n", - p->acpi_id, p->flags.polarity, p->flags.trigger, p->lint); + printk(KERN_INFO PREFIX "LAPIC_NMI (acpi_id[0x%02x] %s %s lint[0x%x])\n", + p->acpi_id, + mps_inti_flags_polarity[p->flags.polarity], + mps_inti_flags_trigger[p->flags.trigger], p->lint); } break; @@ -190,8 +202,10 @@ { struct acpi_table_plat_int_src *p = (struct acpi_table_plat_int_src*) header; - printk(KERN_INFO PREFIX "PLAT_INT_SRC (polarity[0x%x] trigger[0x%x] type[0x%x] id[0x%04x] eid[0x%x] iosapic_vector[0x%x] global_irq[0x%x]\n", - p->flags.polarity, p->flags.trigger, p->type, p->id, p->eid, p->iosapic_vector, p->global_irq); + printk(KERN_INFO PREFIX "PLAT_INT_SRC (%s %s type[0x%x] id[0x%04x] eid[0x%x] iosapic_vector[0x%x] global_irq[0x%x]\n", + mps_inti_flags_polarity[p->flags.polarity], + mps_inti_flags_trigger[p->flags.trigger], + p->type, p->id, p->eid, p->iosapic_vector, p->global_irq); } break; @@ -262,10 +276,17 @@ /* Map the DSDT header via the pointer in the FADT */ if (id == ACPI_DSDT) { - struct acpi_table_fadt *fadt = (struct acpi_table_fadt *) *header; + struct fadt_descriptor_rev2 *fadt = (struct fadt_descriptor_rev2 *) *header; + + if (fadt->revision == 3 && fadt->Xdsdt) { + *header = (void *) __acpi_map_table(fadt->Xdsdt, + sizeof(struct acpi_table_header)); + } else if (fadt->V1_dsdt) { + *header = (void *) __acpi_map_table(fadt->V1_dsdt, + sizeof(struct acpi_table_header)); + } else + *header = 0; - *header = (void *) __acpi_map_table(fadt->dsdt_addr, - sizeof(struct acpi_table_header)); if (!*header) { printk(KERN_WARNING PREFIX "Unable to map DSDT\n"); return -ENODEV; diff -Nru a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c --- a/drivers/acpi/thermal.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/thermal.c Tue Jan 27 21:03:55 2004 @@ -74,7 +74,7 @@ MODULE_DESCRIPTION(ACPI_THERMAL_DRIVER_NAME); MODULE_LICENSE("GPL"); -static int tzp = 0; +static int tzp; MODULE_PARM(tzp, "i"); MODULE_PARM_DESC(tzp, "Thermal zone polling frequency, in 1/10 seconds.\n"); @@ -467,6 +467,7 @@ if (result) return_VALUE(result); + printk(KERN_EMERG "Critical temperature reached (%ld C), shutting down.\n", KELVIN_TO_CELSIUS(tz->temperature)); acpi_bus_generate_event(device, ACPI_THERMAL_NOTIFY_CRITICAL, tz->trips.critical.flags.enabled); acpi_thermal_call_usermode(ACPI_THERMAL_PATH_POWEROFF); @@ -765,7 +766,7 @@ FS Interface (/proc) -------------------------------------------------------------------------- */ -struct proc_dir_entry *acpi_thermal_dir = NULL; +struct proc_dir_entry *acpi_thermal_dir; static int acpi_thermal_state_seq_show(struct seq_file *seq, void *offset) { diff -Nru a/drivers/acpi/toshiba_acpi.c b/drivers/acpi/toshiba_acpi.c --- a/drivers/acpi/toshiba_acpi.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/toshiba_acpi.c Tue Jan 27 21:03:53 2004 @@ -215,7 +215,7 @@ return status; } -static struct proc_dir_entry* toshiba_proc_dir = NULL; +static struct proc_dir_entry* toshiba_proc_dir; static int force_fan; static int last_key_event; static int key_event_valid; diff -Nru a/drivers/acpi/utilities/utalloc.c b/drivers/acpi/utilities/utalloc.c --- a/drivers/acpi/utilities/utalloc.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/utilities/utalloc.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -902,71 +902,30 @@ descriptor = ACPI_CAST_PTR (union acpi_descriptor, &element->user_space); if (descriptor->descriptor_id != ACPI_DESC_TYPE_CACHED) { - acpi_os_printf ("%p Len %04X %9.9s-%d ", + acpi_os_printf ("%p Len %04X %9.9s-%d [%s] ", descriptor, element->size, element->module, - element->line); + element->line, acpi_ut_get_descriptor_name (descriptor)); - /* Most of the elements will be internal objects. */ + /* Most of the elements will be Operand objects. */ switch (ACPI_GET_DESCRIPTOR_TYPE (descriptor)) { case ACPI_DESC_TYPE_OPERAND: - acpi_os_printf ("obj_type %12.12s R%hd", + acpi_os_printf ("%12.12s R%hd", acpi_ut_get_type_name (descriptor->object.common.type), descriptor->object.common.reference_count); break; case ACPI_DESC_TYPE_PARSER: - acpi_os_printf ("parse_obj aml_opcode %04hX", + acpi_os_printf ("aml_opcode %04hX", descriptor->op.asl.aml_opcode); break; case ACPI_DESC_TYPE_NAMED: - acpi_os_printf ("Node %4.4s", - descriptor->node.name.ascii); - break; - - case ACPI_DESC_TYPE_STATE: - acpi_os_printf ("Untyped state_obj"); - break; - - case ACPI_DESC_TYPE_STATE_UPDATE: - acpi_os_printf ("UPDATE state_obj"); - break; - - case ACPI_DESC_TYPE_STATE_PACKAGE: - acpi_os_printf ("PACKAGE state_obj"); - break; - - case ACPI_DESC_TYPE_STATE_CONTROL: - acpi_os_printf ("CONTROL state_obj"); - break; - - case ACPI_DESC_TYPE_STATE_RPSCOPE: - acpi_os_printf ("ROOT-PARSE-SCOPE state_obj"); - break; - - case ACPI_DESC_TYPE_STATE_PSCOPE: - acpi_os_printf ("PARSE-SCOPE state_obj"); - break; - - case ACPI_DESC_TYPE_STATE_WSCOPE: - acpi_os_printf ("WALK-SCOPE state_obj"); - break; - - case ACPI_DESC_TYPE_STATE_RESULT: - acpi_os_printf ("RESULT state_obj"); - break; - - case ACPI_DESC_TYPE_STATE_NOTIFY: - acpi_os_printf ("NOTIFY state_obj"); - break; - - case ACPI_DESC_TYPE_STATE_THREAD: - acpi_os_printf ("THREAD state_obj"); + acpi_os_printf ("%4.4s", + acpi_ut_get_node_name (&descriptor->node)); break; default: - /* All types should appear above */ break; } diff -Nru a/drivers/acpi/utilities/utcopy.c b/drivers/acpi/utilities/utcopy.c --- a/drivers/acpi/utilities/utcopy.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/utilities/utcopy.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/utilities/utdebug.c b/drivers/acpi/utilities/utdebug.c --- a/drivers/acpi/utilities/utdebug.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/utilities/utdebug.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -447,7 +447,7 @@ acpi_ut_debug_print (ACPI_LV_FUNCTIONS, line_number, dbg_info, "%s %8.8X%8.8X\n", acpi_gbl_fn_exit_str, - ACPI_HIDWORD (value), ACPI_LODWORD (value)); + ACPI_FORMAT_UINT64 (value)); acpi_gbl_nesting_level--; } diff -Nru a/drivers/acpi/utilities/utdelete.c b/drivers/acpi/utilities/utdelete.c --- a/drivers/acpi/utilities/utdelete.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/utilities/utdelete.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -140,7 +140,7 @@ /* Walk the handler list for this device */ - handler_desc = object->device.address_space; + handler_desc = object->device.handler; while (handler_desc) { next_desc = handler_desc->address_space.next; acpi_ut_remove_reference (handler_desc); @@ -193,7 +193,7 @@ * default handlers -- and therefore, we created the context object * locally, it was not created by an external caller. */ - handler_desc = object->region.address_space; + handler_desc = object->region.handler; if (handler_desc) { if (handler_desc->address_space.hflags & ACPI_ADDR_HANDLER_DEFAULT_INSTALLED) { obj_pointer = second_desc->extra.region_context; diff -Nru a/drivers/acpi/utilities/uteval.c b/drivers/acpi/utilities/uteval.c --- a/drivers/acpi/utilities/uteval.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/utilities/uteval.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -91,7 +91,7 @@ if (ACPI_FAILURE (status)) { if (status == AE_NOT_FOUND) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s.%s] was not found\n", - prefix_node->name.ascii, path)); + acpi_ut_get_node_name (prefix_node), path)); } else { ACPI_REPORT_METHOD_ERROR ("Method execution failed", @@ -544,7 +544,7 @@ if (AE_NOT_FOUND == status) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "_STA on %4.4s was not found, assuming device is present\n", - device_node->name.ascii)); + acpi_ut_get_node_name (device_node))); *flags = 0x0F; status = AE_OK; diff -Nru a/drivers/acpi/utilities/utglobal.c b/drivers/acpi/utilities/utglobal.c --- a/drivers/acpi/utilities/utglobal.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/utilities/utglobal.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -358,7 +358,7 @@ /* ACPI_EVENT_GLOBAL */ {ACPI_BITREG_GLOBAL_LOCK_STATUS, ACPI_BITREG_GLOBAL_LOCK_ENABLE, ACPI_BITMASK_GLOBAL_LOCK_STATUS, ACPI_BITMASK_GLOBAL_LOCK_ENABLE}, /* ACPI_EVENT_POWER_BUTTON */ {ACPI_BITREG_POWER_BUTTON_STATUS, ACPI_BITREG_POWER_BUTTON_ENABLE, ACPI_BITMASK_POWER_BUTTON_STATUS, ACPI_BITMASK_POWER_BUTTON_ENABLE}, /* ACPI_EVENT_SLEEP_BUTTON */ {ACPI_BITREG_SLEEP_BUTTON_STATUS, ACPI_BITREG_SLEEP_BUTTON_ENABLE, ACPI_BITMASK_SLEEP_BUTTON_STATUS, ACPI_BITMASK_SLEEP_BUTTON_ENABLE}, - /* ACPI_EVENT_RTC */ {ACPI_BITREG_RT_CLOCK_STATUS, ACPI_BITREG_RT_CLOCK_ENABLE, 0, 0}, + /* ACPI_EVENT_RTC */ {ACPI_BITREG_RT_CLOCK_STATUS, ACPI_BITREG_RT_CLOCK_ENABLE, ACPI_BITMASK_RT_CLOCK_STATUS, ACPI_BITMASK_RT_CLOCK_ENABLE}, }; /***************************************************************************** @@ -531,6 +531,99 @@ } return (acpi_ut_get_type_name (ACPI_GET_OBJECT_TYPE (obj_desc))); +} + + +/***************************************************************************** + * + * FUNCTION: acpi_ut_get_node_name + * + * PARAMETERS: Object - A namespace node + * + * RETURN: Pointer to a string + * + * DESCRIPTION: Validate the node and return the node's ACPI name. + * + ****************************************************************************/ + +char * +acpi_ut_get_node_name ( + void *object) +{ + struct acpi_namespace_node *node; + + + if (!object) + { + return ("NULL NODE"); + } + + node = (struct acpi_namespace_node *) object; + + if (node->descriptor != ACPI_DESC_TYPE_NAMED) + { + return ("****"); + } + + if (!acpi_ut_valid_acpi_name (* (u32 *) node->name.ascii)) + { + return ("----"); + } + + return (node->name.ascii); +} + + +/***************************************************************************** + * + * FUNCTION: acpi_ut_get_descriptor_name + * + * PARAMETERS: Object - An ACPI object + * + * RETURN: Pointer to a string + * + * DESCRIPTION: Validate object and return the descriptor type + * + ****************************************************************************/ + +static const char *acpi_gbl_desc_type_names[] = /* printable names of descriptor types */ +{ + /* 00 */ "Invalid", + /* 01 */ "Cached", + /* 02 */ "State-Generic", + /* 03 */ "State-Update", + /* 04 */ "State-Package", + /* 05 */ "State-Control", + /* 06 */ "State-root_parse_scope", + /* 07 */ "State-parse_scope", + /* 08 */ "State-walk_scope", + /* 09 */ "State-Result", + /* 10 */ "State-Notify", + /* 11 */ "State-Thread", + /* 12 */ "Walk", + /* 13 */ "Parser", + /* 14 */ "Operand", + /* 15 */ "Node" +}; + + +char * +acpi_ut_get_descriptor_name ( + void *object) +{ + + if (!object) + { + return ("NULL OBJECT"); + } + + if (ACPI_GET_DESCRIPTOR_TYPE (object) > ACPI_DESC_TYPE_MAX) + { + return ((char *) acpi_gbl_bad_type); + } + + return ((char *) acpi_gbl_desc_type_names[ACPI_GET_DESCRIPTOR_TYPE (object)]); + } diff -Nru a/drivers/acpi/utilities/utinit.c b/drivers/acpi/utilities/utinit.c --- a/drivers/acpi/utilities/utinit.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/utilities/utinit.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/utilities/utmath.c b/drivers/acpi/utilities/utmath.c --- a/drivers/acpi/utilities/utmath.c Tue Jan 27 21:03:55 2004 +++ b/drivers/acpi/utilities/utmath.c Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/acpi/utilities/utmisc.c b/drivers/acpi/utilities/utmisc.c --- a/drivers/acpi/utilities/utmisc.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/utilities/utmisc.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ ******************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -304,16 +304,20 @@ u32 name) { char *name_ptr = (char *) &name; - u32 i; + char character; + acpi_native_uint i; ACPI_FUNCTION_ENTRY (); for (i = 0; i < ACPI_NAME_SIZE; i++) { - if (!((name_ptr[i] == '_') || - (name_ptr[i] >= 'A' && name_ptr[i] <= 'Z') || - (name_ptr[i] >= '0' && name_ptr[i] <= '9'))) { + character = *name_ptr; + name_ptr++; + + if (!((character == '_') || + (character >= 'A' && character <= 'Z') || + (character >= '0' && character <= '9'))) { return (FALSE); } } diff -Nru a/drivers/acpi/utilities/utobject.c b/drivers/acpi/utilities/utobject.c --- a/drivers/acpi/utilities/utobject.c Tue Jan 27 21:03:54 2004 +++ b/drivers/acpi/utilities/utobject.c Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -223,29 +223,10 @@ return (TRUE); - case ACPI_DESC_TYPE_NAMED: - - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "**** Obj %p is a named obj, not ACPI obj\n", object)); - break; - - case ACPI_DESC_TYPE_PARSER: - - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "**** Obj %p is a parser obj, not ACPI obj\n", object)); - break; - - case ACPI_DESC_TYPE_CACHED: - - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, - "**** Obj %p has already been released to internal cache\n", object)); - break; - default: - - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, - "**** Obj %p has unknown descriptor type %X\n", object, - ACPI_GET_DESCRIPTOR_TYPE (object))); + ACPI_DEBUG_PRINT ((ACPI_DB_INFO, + "%p is not not an ACPI operand obj [%s]\n", + object, acpi_ut_get_descriptor_name (object))); break; } @@ -322,7 +303,8 @@ if (ACPI_GET_DESCRIPTOR_TYPE (object) != ACPI_DESC_TYPE_OPERAND) { ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, - "Obj %p is not an ACPI object\n", object)); + "%p is not an ACPI Operand object [%s]\n", object, + acpi_ut_get_descriptor_name (object))); return_VOID; } diff -Nru a/drivers/acpi/utilities/utxface.c b/drivers/acpi/utilities/utxface.c --- a/drivers/acpi/utilities/utxface.c Tue Jan 27 21:03:53 2004 +++ b/drivers/acpi/utilities/utxface.c Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/drivers/net/irda/act200l-sir.c b/drivers/net/irda/act200l-sir.c --- a/drivers/net/irda/act200l-sir.c Tue Jan 27 21:03:53 2004 +++ b/drivers/net/irda/act200l-sir.c Tue Jan 27 21:03:53 2004 @@ -93,12 +93,12 @@ .set_speed = act200l_change_speed, }; -int __init act200l_init(void) +static int __init act200l_init(void) { return irda_register_dongle(&act200l); } -void __exit act200l_cleanup(void) +static void __exit act200l_cleanup(void) { irda_unregister_dongle(&act200l); } diff -Nru a/drivers/net/irda/act200l.c b/drivers/net/irda/act200l.c --- a/drivers/net/irda/act200l.c Tue Jan 27 21:03:53 2004 +++ b/drivers/net/irda/act200l.c Tue Jan 27 21:03:54 2004 @@ -92,12 +92,12 @@ .owner = THIS_MODULE, }; -int __init act200l_init(void) +static int __init act200l_init(void) { return irda_device_register_dongle(&dongle); } -void __exit act200l_cleanup(void) +static void __exit act200l_cleanup(void) { irda_device_unregister_dongle(&dongle); } diff -Nru a/drivers/net/irda/actisys-sir.c b/drivers/net/irda/actisys-sir.c --- a/drivers/net/irda/actisys-sir.c Tue Jan 27 21:03:54 2004 +++ b/drivers/net/irda/actisys-sir.c Tue Jan 27 21:03:54 2004 @@ -89,7 +89,7 @@ .set_speed = actisys_change_speed, }; -int __init actisys_sir_init(void) +static int __init actisys_sir_init(void) { int ret; @@ -107,7 +107,7 @@ return 0; } -void __exit actisys_sir_cleanup(void) +static void __exit actisys_sir_cleanup(void) { /* We have to remove both dongles */ irda_unregister_dongle(&act220l_plus); diff -Nru a/drivers/net/irda/actisys.c b/drivers/net/irda/actisys.c --- a/drivers/net/irda/actisys.c Tue Jan 27 21:03:55 2004 +++ b/drivers/net/irda/actisys.c Tue Jan 27 21:03:55 2004 @@ -91,7 +91,7 @@ * So, we register a dongle of each sort and let irattach * pick the right one... */ -int __init actisys_init(void) +static int __init actisys_init(void) { int ret; @@ -108,7 +108,7 @@ return 0; } -void __exit actisys_cleanup(void) +static void __exit actisys_cleanup(void) { /* We have to remove both dongles */ irda_device_unregister_dongle(&dongle); diff -Nru a/drivers/net/irda/ali-ircc.c b/drivers/net/irda/ali-ircc.c --- a/drivers/net/irda/ali-ircc.c Tue Jan 27 21:03:53 2004 +++ b/drivers/net/irda/ali-ircc.c Tue Jan 27 21:03:53 2004 @@ -133,7 +133,7 @@ * Initialize chip. Find out whay kinds of chips we are dealing with * and their configuation registers address */ -int __init ali_ircc_init(void) +static int __init ali_ircc_init(void) { ali_chip_t *chip; chipio_t info; diff -Nru a/drivers/net/irda/ep7211_ir.c b/drivers/net/irda/ep7211_ir.c --- a/drivers/net/irda/ep7211_ir.c Tue Jan 27 21:03:53 2004 +++ b/drivers/net/irda/ep7211_ir.c Tue Jan 27 21:03:53 2004 @@ -97,7 +97,7 @@ * Initialize EP7211 I/R module * */ -int __init ep7211_ir_init(void) +static int __init ep7211_ir_init(void) { return irda_device_register_dongle(&dongle); } diff -Nru a/drivers/net/irda/esi.c b/drivers/net/irda/esi.c --- a/drivers/net/irda/esi.c Tue Jan 27 21:03:54 2004 +++ b/drivers/net/irda/esi.c Tue Jan 27 21:03:54 2004 @@ -52,12 +52,12 @@ .owner = THIS_MODULE, }; -int __init esi_init(void) +static int __init esi_init(void) { return irda_device_register_dongle(&dongle); } -void __exit esi_cleanup(void) +static void __exit esi_cleanup(void) { irda_device_unregister_dongle(&dongle); } diff -Nru a/drivers/net/irda/girbil-sir.c b/drivers/net/irda/girbil-sir.c --- a/drivers/net/irda/girbil-sir.c Tue Jan 27 21:03:53 2004 +++ b/drivers/net/irda/girbil-sir.c Tue Jan 27 21:03:53 2004 @@ -72,12 +72,12 @@ .set_speed = girbil_change_speed, }; -int __init girbil_init(void) +static int __init girbil_init(void) { return irda_register_dongle(&girbil); } -void __exit girbil_cleanup(void) +static void __exit girbil_cleanup(void) { irda_unregister_dongle(&girbil); } diff -Nru a/drivers/net/irda/girbil.c b/drivers/net/irda/girbil.c --- a/drivers/net/irda/girbil.c Tue Jan 27 21:03:53 2004 +++ b/drivers/net/irda/girbil.c Tue Jan 27 21:03:53 2004 @@ -71,12 +71,12 @@ .owner = THIS_MODULE, }; -int __init girbil_init(void) +static int __init girbil_init(void) { return irda_device_register_dongle(&dongle); } -void __exit girbil_cleanup(void) +static void __exit girbil_cleanup(void) { irda_device_unregister_dongle(&dongle); } diff -Nru a/drivers/net/irda/irport.c b/drivers/net/irda/irport.c --- a/drivers/net/irda/irport.c Tue Jan 27 21:03:54 2004 +++ b/drivers/net/irda/irport.c Tue Jan 27 21:03:54 2004 @@ -98,7 +98,7 @@ EXPORT_SYMBOL(irport_net_open); EXPORT_SYMBOL(irport_net_close); -int __init irport_init(void) +static int __init irport_init(void) { int i; diff -Nru a/drivers/net/irda/litelink-sir.c b/drivers/net/irda/litelink-sir.c --- a/drivers/net/irda/litelink-sir.c Tue Jan 27 21:03:53 2004 +++ b/drivers/net/irda/litelink-sir.c Tue Jan 27 21:03:53 2004 @@ -64,12 +64,12 @@ .set_speed = litelink_change_speed, }; -int __init litelink_sir_init(void) +static int __init litelink_sir_init(void) { return irda_register_dongle(&litelink); } -void __exit litelink_sir_cleanup(void) +static void __exit litelink_sir_cleanup(void) { irda_unregister_dongle(&litelink); } diff -Nru a/drivers/net/irda/litelink.c b/drivers/net/irda/litelink.c --- a/drivers/net/irda/litelink.c Tue Jan 27 21:03:54 2004 +++ b/drivers/net/irda/litelink.c Tue Jan 27 21:03:54 2004 @@ -56,12 +56,12 @@ .owner = THIS_MODULE, }; -int __init litelink_init(void) +static int __init litelink_init(void) { return irda_device_register_dongle(&dongle); } -void __exit litelink_cleanup(void) +static void __exit litelink_cleanup(void) { irda_device_unregister_dongle(&dongle); } diff -Nru a/drivers/net/irda/ma600-sir.c b/drivers/net/irda/ma600-sir.c --- a/drivers/net/irda/ma600-sir.c Tue Jan 27 21:03:54 2004 +++ b/drivers/net/irda/ma600-sir.c Tue Jan 27 21:03:54 2004 @@ -66,13 +66,13 @@ }; -int __init ma600_sir_init(void) +static int __init ma600_sir_init(void) { IRDA_DEBUG(2, "%s()\n", __FUNCTION__); return irda_register_dongle(&ma600); } -void __exit ma600_sir_cleanup(void) +static void __exit ma600_sir_cleanup(void) { IRDA_DEBUG(2, "%s()\n", __FUNCTION__); irda_unregister_dongle(&ma600); diff -Nru a/drivers/net/irda/ma600.c b/drivers/net/irda/ma600.c --- a/drivers/net/irda/ma600.c Tue Jan 27 21:03:53 2004 +++ b/drivers/net/irda/ma600.c Tue Jan 27 21:03:53 2004 @@ -82,13 +82,13 @@ .owner = THIS_MODULE, }; -int __init ma600_init(void) +static int __init ma600_init(void) { IRDA_DEBUG(2, "%s()\n", __FUNCTION__); return irda_device_register_dongle(&dongle); } -void __exit ma600_cleanup(void) +static void __exit ma600_cleanup(void) { IRDA_DEBUG(2, "%s()\n", __FUNCTION__); irda_device_unregister_dongle(&dongle); diff -Nru a/drivers/net/irda/mcp2120-sir.c b/drivers/net/irda/mcp2120-sir.c --- a/drivers/net/irda/mcp2120-sir.c Tue Jan 27 21:03:54 2004 +++ b/drivers/net/irda/mcp2120-sir.c Tue Jan 27 21:03:54 2004 @@ -49,12 +49,12 @@ .set_speed = mcp2120_change_speed, }; -int __init mcp2120_init(void) +static int __init mcp2120_init(void) { return irda_register_dongle(&mcp2120); } -void __exit mcp2120_cleanup(void) +static void __exit mcp2120_cleanup(void) { irda_unregister_dongle(&mcp2120); } diff -Nru a/drivers/net/irda/mcp2120.c b/drivers/net/irda/mcp2120.c --- a/drivers/net/irda/mcp2120.c Tue Jan 27 21:03:55 2004 +++ b/drivers/net/irda/mcp2120.c Tue Jan 27 21:03:55 2004 @@ -48,12 +48,12 @@ .owner = THIS_MODULE, }; -int __init mcp2120_init(void) +static int __init mcp2120_init(void) { return irda_device_register_dongle(&dongle); } -void __exit mcp2120_cleanup(void) +static void __exit mcp2120_cleanup(void) { irda_device_unregister_dongle(&dongle); } diff -Nru a/drivers/net/irda/nsc-ircc.c b/drivers/net/irda/nsc-ircc.c --- a/drivers/net/irda/nsc-ircc.c Tue Jan 27 21:03:53 2004 +++ b/drivers/net/irda/nsc-ircc.c Tue Jan 27 21:03:53 2004 @@ -155,7 +155,7 @@ * Initialize chip. Just try to find out how many chips we are dealing with * and where they are */ -int __init nsc_ircc_init(void) +static int __init nsc_ircc_init(void) { chipio_t info; nsc_chip_t *chip; diff -Nru a/drivers/net/irda/old_belkin-sir.c b/drivers/net/irda/old_belkin-sir.c --- a/drivers/net/irda/old_belkin-sir.c Tue Jan 27 21:03:54 2004 +++ b/drivers/net/irda/old_belkin-sir.c Tue Jan 27 21:03:55 2004 @@ -78,12 +78,12 @@ .set_speed = old_belkin_change_speed, }; -int __init old_belkin_init(void) +static int __init old_belkin_init(void) { return irda_register_dongle(&old_belkin); } -void __exit old_belkin_cleanup(void) +static void __exit old_belkin_cleanup(void) { irda_unregister_dongle(&old_belkin); } diff -Nru a/drivers/net/irda/old_belkin.c b/drivers/net/irda/old_belkin.c --- a/drivers/net/irda/old_belkin.c Tue Jan 27 21:03:55 2004 +++ b/drivers/net/irda/old_belkin.c Tue Jan 27 21:03:55 2004 @@ -82,12 +82,12 @@ .owner = THIS_MODULE, }; -int __init old_belkin_init(void) +static int __init old_belkin_init(void) { return irda_device_register_dongle(&dongle); } -void __exit old_belkin_cleanup(void) +static void __exit old_belkin_cleanup(void) { irda_device_unregister_dongle(&dongle); } diff -Nru a/drivers/net/irda/smsc-ircc2.c b/drivers/net/irda/smsc-ircc2.c --- a/drivers/net/irda/smsc-ircc2.c Tue Jan 27 21:03:54 2004 +++ b/drivers/net/irda/smsc-ircc2.c Tue Jan 27 21:03:54 2004 @@ -322,7 +322,7 @@ * Initialize chip. Just try to find out how many chips we are dealing with * and where they are */ -int __init smsc_ircc_init(void) +static int __init smsc_ircc_init(void) { int ret=-ENODEV; @@ -1727,7 +1727,7 @@ return 0; } -void __exit smsc_ircc_cleanup(void) +static void __exit smsc_ircc_cleanup(void) { int i; diff -Nru a/drivers/net/irda/tekram-sir.c b/drivers/net/irda/tekram-sir.c --- a/drivers/net/irda/tekram-sir.c Tue Jan 27 21:03:53 2004 +++ b/drivers/net/irda/tekram-sir.c Tue Jan 27 21:03:53 2004 @@ -59,7 +59,7 @@ .set_speed = tekram_change_speed, }; -int __init tekram_sir_init(void) +static int __init tekram_sir_init(void) { if (tekram_delay < 1 || tekram_delay > 500) tekram_delay = 200; @@ -68,7 +68,7 @@ return irda_register_dongle(&tekram); } -void __exit tekram_sir_cleanup(void) +static void __exit tekram_sir_cleanup(void) { irda_unregister_dongle(&tekram); } diff -Nru a/drivers/net/irda/tekram.c b/drivers/net/irda/tekram.c --- a/drivers/net/irda/tekram.c Tue Jan 27 21:03:54 2004 +++ b/drivers/net/irda/tekram.c Tue Jan 27 21:03:54 2004 @@ -52,12 +52,12 @@ .owner = THIS_MODULE, }; -int __init tekram_init(void) +static int __init tekram_init(void) { return irda_device_register_dongle(&dongle); } -void __exit tekram_cleanup(void) +static void __exit tekram_cleanup(void) { irda_device_unregister_dongle(&dongle); } diff -Nru a/drivers/net/irda/via-ircc.c b/drivers/net/irda/via-ircc.c --- a/drivers/net/irda/via-ircc.c Tue Jan 27 21:03:53 2004 +++ b/drivers/net/irda/via-ircc.c Tue Jan 27 21:03:53 2004 @@ -145,7 +145,7 @@ * * Initialize chip. Just find out chip type and resource. */ -int __init via_ircc_init(void) +static int __init via_ircc_init(void) { int rc; diff -Nru a/drivers/net/irda/w83977af_ir.c b/drivers/net/irda/w83977af_ir.c --- a/drivers/net/irda/w83977af_ir.c Tue Jan 27 21:03:53 2004 +++ b/drivers/net/irda/w83977af_ir.c Tue Jan 27 21:03:53 2004 @@ -110,7 +110,7 @@ * Initialize chip. Just try to find out how many chips we are dealing with * and where they are */ -int __init w83977af_init(void) +static int __init w83977af_init(void) { int i; @@ -129,7 +129,7 @@ * Close all configured chips * */ -void __exit w83977af_cleanup(void) +static void __exit w83977af_cleanup(void) { int i; diff -Nru a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c --- a/drivers/video/console/fbcon.c Tue Jan 27 21:03:54 2004 +++ b/drivers/video/console/fbcon.c Tue Jan 27 21:03:54 2004 @@ -545,7 +545,7 @@ return display_desc; done = 1; - info = registered_fb[num_registered_fb-1]; + info = registered_fb[0]; if (!info) return NULL; info->currcon = -1; diff -Nru a/include/acpi/acconfig.h b/include/acpi/acconfig.h --- a/include/acpi/acconfig.h Tue Jan 27 21:03:54 2004 +++ b/include/acpi/acconfig.h Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -64,7 +64,7 @@ /* Version string */ -#define ACPI_CA_VERSION 0x20031002 +#define ACPI_CA_VERSION 0x20040116 /* Maximum objects in the various object caches */ diff -Nru a/include/acpi/acdebug.h b/include/acpi/acdebug.h --- a/include/acpi/acdebug.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/acdebug.h Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acdisasm.h b/include/acpi/acdisasm.h --- a/include/acpi/acdisasm.h Tue Jan 27 21:03:54 2004 +++ b/include/acpi/acdisasm.h Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acdispat.h b/include/acpi/acdispat.h --- a/include/acpi/acdispat.h Tue Jan 27 21:03:54 2004 +++ b/include/acpi/acdispat.h Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acevents.h b/include/acpi/acevents.h --- a/include/acpi/acevents.h Tue Jan 27 21:03:54 2004 +++ b/include/acpi/acevents.h Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -182,6 +182,17 @@ union acpi_operand_object *region_obj, u8 acpi_ns_is_locked); +acpi_status +acpi_ev_execute_reg_method ( + union acpi_operand_object *region_obj, + u32 function); + +acpi_status +acpi_ev_reg_run ( + acpi_handle obj_handle, + u32 level, + void *context, + void **return_value); /* * Evregini - Region initialization and setup diff -Nru a/include/acpi/acexcep.h b/include/acpi/acexcep.h --- a/include/acpi/acexcep.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/acexcep.h Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acglobal.h b/include/acpi/acglobal.h --- a/include/acpi/acglobal.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/acglobal.h Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -106,6 +106,9 @@ ACPI_EXTERN u8 acpi_gbl_integer_bit_width; ACPI_EXTERN u8 acpi_gbl_integer_byte_width; ACPI_EXTERN u8 acpi_gbl_integer_nybble_width; + +/* Keep local copies of these FADT-based registers */ + ACPI_EXTERN struct acpi_generic_address acpi_gbl_xpm1a_enable; ACPI_EXTERN struct acpi_generic_address acpi_gbl_xpm1b_enable; diff -Nru a/include/acpi/achware.h b/include/acpi/achware.h --- a/include/acpi/achware.h Tue Jan 27 21:03:54 2004 +++ b/include/acpi/achware.h Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acinterp.h b/include/acpi/acinterp.h --- a/include/acpi/acinterp.h Tue Jan 27 21:03:55 2004 +++ b/include/acpi/acinterp.h Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/aclocal.h b/include/acpi/aclocal.h --- a/include/acpi/aclocal.h Tue Jan 27 21:03:54 2004 +++ b/include/acpi/aclocal.h Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acmacros.h b/include/acpi/acmacros.h --- a/include/acpi/acmacros.h Tue Jan 27 21:03:54 2004 +++ b/include/acpi/acmacros.h Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -48,7 +48,6 @@ /* * Data manipulation macros */ - #define ACPI_LOWORD(l) ((u16)(u32)(l)) #define ACPI_HIWORD(l) ((u16)((((u32)(l)) >> 16) & 0xFFFF)) #define ACPI_LOBYTE(l) ((u8)(u16)(l)) @@ -94,10 +93,18 @@ #endif #endif - /* - * Extract a byte of data using a pointer. Any more than a byte and we - * get into potential aligment issues -- see the STORE macros below - */ +/* + * printf() format helpers + */ + +/* Split 64-bit integer into two 32-bit values. use with %8,8_x%8.8X */ + +#define ACPI_FORMAT_UINT64(i) ACPI_HIDWORD(i),ACPI_LODWORD(i) + +/* + * Extract a byte of data using a pointer. Any more than a byte and we + * get into potential aligment issues -- see the STORE macros below + */ #define ACPI_GET8(addr) (*(u8*)(addr)) /* Pointer arithmetic */ @@ -129,7 +136,6 @@ * If the hardware supports the transfer of unaligned data, just do the store. * Otherwise, we have to move one byte at a time. */ - #ifdef ACPI_BIG_ENDIAN /* * Macros for big-endian machines @@ -299,7 +305,6 @@ /* * Fast power-of-two math macros for non-optimized compilers */ - #define _ACPI_DIV(value,power_of2) ((u32) ((value) >> (power_of2))) #define _ACPI_MUL(value,power_of2) ((u32) ((value) << (power_of2))) #define _ACPI_MOD(value,divisor) ((u32) ((value) & ((divisor) -1))) @@ -443,7 +448,6 @@ /* * Reporting macros that are never compiled out */ - #define ACPI_PARAM_LIST(pl) pl /* @@ -451,7 +455,6 @@ * _THIS_MODULE gets compiled out when ACPI_DEBUG_OUTPUT isn't defined, only * use it in debug mode. */ - #ifdef ACPI_DEBUG_OUTPUT #define ACPI_REPORT_INFO(fp) {acpi_ut_report_info(_THIS_MODULE,__LINE__,_COMPONENT); \ @@ -490,7 +493,6 @@ /* * Debug macros that are conditionally compiled */ - #ifdef ACPI_DEBUG_OUTPUT #define ACPI_MODULE_NAME(name) static char ACPI_UNUSED_VAR *_THIS_MODULE = name; @@ -500,7 +502,6 @@ * The first parameter should be the procedure name as a quoted string. This is declared * as a local string ("_proc_name) so that it can be also used by the function exit macros below. */ - #define ACPI_FUNCTION_NAME(a) struct acpi_debug_print_info _dbg; \ _dbg.component_id = _COMPONENT; \ _dbg.proc_name = a; \ @@ -562,7 +563,6 @@ /* * Generate INT3 on ACPI_ERROR (Debug only!) */ - #define ACPI_ERROR_BREAK #ifdef ACPI_ERROR_BREAK #define ACPI_BREAK_ON_ERROR(lvl) if ((lvl)&ACPI_ERROR) \ @@ -577,7 +577,6 @@ * 1) Debug print for the current component is enabled * 2) Debug error level or trace level for the print statement is enabled */ - #define ACPI_DEBUG_PRINT(pl) acpi_ut_debug_print ACPI_PARAM_LIST(pl) #define ACPI_DEBUG_PRINT_RAW(pl) acpi_ut_debug_print_raw ACPI_PARAM_LIST(pl) @@ -587,7 +586,6 @@ * This is the non-debug case -- make everything go away, * leaving no executable debug code! */ - #define ACPI_MODULE_NAME(name) #define _THIS_MODULE "" @@ -662,7 +660,6 @@ /* * Memory allocation tracking (DEBUG ONLY) */ - #ifndef ACPI_DBG_TRACK_ALLOCATIONS /* Memory allocation */ diff -Nru a/include/acpi/acnamesp.h b/include/acpi/acnamesp.h --- a/include/acpi/acnamesp.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/acnamesp.h Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acobject.h b/include/acpi/acobject.h --- a/include/acpi/acobject.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/acobject.h Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -114,7 +114,7 @@ #define ACPI_COMMON_NOTIFY_INFO \ union acpi_operand_object *system_notify; /* Handler for system notifies */\ union acpi_operand_object *device_notify; /* Handler for driver notifies */\ - union acpi_operand_object *address_space; /* Handler for Address space */ + union acpi_operand_object *handler; /* Handler for Address space */ /****************************************************************************** @@ -214,7 +214,7 @@ ACPI_OBJECT_COMMON_HEADER u8 space_id; - union acpi_operand_object *address_space; /* Handler for region access */ + union acpi_operand_object *handler; /* Handler for region access */ struct acpi_namespace_node *node; /* containing object */ union acpi_operand_object *next; u32 length; @@ -464,21 +464,22 @@ /* Object descriptor types */ -#define ACPI_DESC_TYPE_CACHED 0x11 /* Used only when object is cached */ -#define ACPI_DESC_TYPE_STATE 0x20 -#define ACPI_DESC_TYPE_STATE_UPDATE 0x21 -#define ACPI_DESC_TYPE_STATE_PACKAGE 0x22 -#define ACPI_DESC_TYPE_STATE_CONTROL 0x23 -#define ACPI_DESC_TYPE_STATE_RPSCOPE 0x24 -#define ACPI_DESC_TYPE_STATE_PSCOPE 0x25 -#define ACPI_DESC_TYPE_STATE_WSCOPE 0x26 -#define ACPI_DESC_TYPE_STATE_RESULT 0x27 -#define ACPI_DESC_TYPE_STATE_NOTIFY 0x28 -#define ACPI_DESC_TYPE_STATE_THREAD 0x29 -#define ACPI_DESC_TYPE_WALK 0x44 -#define ACPI_DESC_TYPE_PARSER 0x66 -#define ACPI_DESC_TYPE_OPERAND 0x88 -#define ACPI_DESC_TYPE_NAMED 0xAA +#define ACPI_DESC_TYPE_CACHED 0x01 /* Used only when object is cached */ +#define ACPI_DESC_TYPE_STATE 0x02 +#define ACPI_DESC_TYPE_STATE_UPDATE 0x03 +#define ACPI_DESC_TYPE_STATE_PACKAGE 0x04 +#define ACPI_DESC_TYPE_STATE_CONTROL 0x05 +#define ACPI_DESC_TYPE_STATE_RPSCOPE 0x06 +#define ACPI_DESC_TYPE_STATE_PSCOPE 0x07 +#define ACPI_DESC_TYPE_STATE_WSCOPE 0x08 +#define ACPI_DESC_TYPE_STATE_RESULT 0x09 +#define ACPI_DESC_TYPE_STATE_NOTIFY 0x0A +#define ACPI_DESC_TYPE_STATE_THREAD 0x0B +#define ACPI_DESC_TYPE_WALK 0x0C +#define ACPI_DESC_TYPE_PARSER 0x0D +#define ACPI_DESC_TYPE_OPERAND 0x0E +#define ACPI_DESC_TYPE_NAMED 0x0F +#define ACPI_DESC_TYPE_MAX 0x0F union acpi_descriptor diff -Nru a/include/acpi/acoutput.h b/include/acpi/acoutput.h --- a/include/acpi/acoutput.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/acoutput.h Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acparser.h b/include/acpi/acparser.h --- a/include/acpi/acparser.h Tue Jan 27 21:03:54 2004 +++ b/include/acpi/acparser.h Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acpi.h b/include/acpi/acpi.h --- a/include/acpi/acpi.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/acpi.h Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h --- a/include/acpi/acpi_drivers.h Tue Jan 27 21:03:54 2004 +++ b/include/acpi/acpi_drivers.h Tue Jan 27 21:03:54 2004 @@ -53,10 +53,6 @@ #define ACPI_PCI_COMPONENT 0x00400000 -/* ACPI PCI Root Bridge (pci_root.c) */ - -void acpi_pci_get_translations (struct acpi_pci_id* id, u64* mem_tra, u64* io_tra); - /* ACPI PCI Interrupt Link (pci_link.c) */ int acpi_pci_link_check (void); diff -Nru a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h --- a/include/acpi/acpiosxf.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/acpiosxf.h Tue Jan 27 21:03:53 2004 @@ -9,7 +9,7 @@ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acpixf.h b/include/acpi/acpixf.h --- a/include/acpi/acpixf.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/acpixf.h Tue Jan 27 21:03:53 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acresrc.h b/include/acpi/acresrc.h --- a/include/acpi/acresrc.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/acresrc.h Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acstruct.h b/include/acpi/acstruct.h --- a/include/acpi/acstruct.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/acstruct.h Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/actables.h b/include/acpi/actables.h --- a/include/acpi/actables.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/actables.h Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/actbl.h b/include/acpi/actbl.h --- a/include/acpi/actbl.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/actbl.h Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -165,6 +165,11 @@ u8 type; \ u8 length; +struct apic_header +{ + APIC_HEADER_DEF +}; + /* Values for MPS INTI flags */ #define POLARITY_CONFORMS 0 @@ -236,7 +241,7 @@ { APIC_HEADER_DEF u16 reserved; /* Reserved - must be zero */ - u32 address; /* APIC physical address */ + u64 address; /* APIC physical address */ }; struct madt_io_sapic diff -Nru a/include/acpi/actbl1.h b/include/acpi/actbl1.h --- a/include/acpi/actbl1.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/actbl1.h Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/actbl2.h b/include/acpi/actbl2.h --- a/include/acpi/actbl2.h Tue Jan 27 21:03:54 2004 +++ b/include/acpi/actbl2.h Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/actypes.h b/include/acpi/actypes.h --- a/include/acpi/actypes.h Tue Jan 27 21:03:54 2004 +++ b/include/acpi/actypes.h Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/acutils.h b/include/acpi/acutils.h --- a/include/acpi/acutils.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/acutils.h Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -123,6 +123,14 @@ char * acpi_ut_get_type_name ( acpi_object_type type); + +char * +acpi_ut_get_node_name ( + void *object); + +char * +acpi_ut_get_descriptor_name ( + void *object); char * acpi_ut_get_object_type_name ( diff -Nru a/include/acpi/amlcode.h b/include/acpi/amlcode.h --- a/include/acpi/amlcode.h Tue Jan 27 21:03:54 2004 +++ b/include/acpi/amlcode.h Tue Jan 27 21:03:54 2004 @@ -7,7 +7,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/amlresrc.h b/include/acpi/amlresrc.h --- a/include/acpi/amlresrc.h Tue Jan 27 21:03:55 2004 +++ b/include/acpi/amlresrc.h Tue Jan 27 21:03:55 2004 @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/platform/acenv.h b/include/acpi/platform/acenv.h --- a/include/acpi/platform/acenv.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/platform/acenv.h Tue Jan 27 21:03:53 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/platform/acgcc.h b/include/acpi/platform/acgcc.h --- a/include/acpi/platform/acgcc.h Tue Jan 27 21:03:55 2004 +++ b/include/acpi/platform/acgcc.h Tue Jan 27 21:03:55 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h --- a/include/acpi/platform/aclinux.h Tue Jan 27 21:03:54 2004 +++ b/include/acpi/platform/aclinux.h Tue Jan 27 21:03:54 2004 @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2003, R. Byron Moore + * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nru a/include/acpi/processor.h b/include/acpi/processor.h --- a/include/acpi/processor.h Tue Jan 27 21:03:53 2004 +++ b/include/acpi/processor.h Tue Jan 27 21:03:53 2004 @@ -72,6 +72,8 @@ int platform_limit; u16 control_register; u16 status_register; + u8 control_register_bit_width; + u8 status_register_bit_width; int state_count; struct acpi_processor_px states[ACPI_PROCESSOR_MAX_PERFORMANCE]; struct cpufreq_frequency_table freq_table[ACPI_PROCESSOR_MAX_PERFORMANCE]; diff -Nru a/include/asm-i386/acpi.h b/include/asm-i386/acpi.h --- a/include/asm-i386/acpi.h Tue Jan 27 21:03:55 2004 +++ b/include/asm-i386/acpi.h Tue Jan 27 21:03:55 2004 @@ -109,7 +109,7 @@ #ifdef CONFIG_ACPI_BOOT extern int acpi_lapic; extern int acpi_ioapic; - +extern int acpi_noirq; /* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */ #define FIX_ACPI_PAGES 4 @@ -137,6 +137,14 @@ # define acpi_lapic 0 # define acpi_ioapic 0 +#endif + +#ifdef CONFIG_ACPI_PCI +static inline void acpi_noirq_set(void) { acpi_noirq = 1; } +extern int acpi_irq_balance_set(char *str); +#else +static inline void acpi_noirq_set(void) { } +static inline int acpi_irq_balance_set(char *str) { return 0; } #endif #ifdef CONFIG_ACPI_SLEEP diff -Nru a/include/asm-i386/system.h b/include/asm-i386/system.h --- a/include/asm-i386/system.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-i386/system.h Tue Jan 27 21:03:53 2004 @@ -470,6 +470,7 @@ extern unsigned long dmi_broken; extern int is_sony_vaio_laptop; +extern int es7000_plat; #define BROKEN_ACPI_Sx 0x0001 #define BROKEN_INIT_AFTER_S1 0x0002 diff -Nru a/include/asm-ia64/a.out.h b/include/asm-ia64/a.out.h --- a/include/asm-ia64/a.out.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-ia64/a.out.h Tue Jan 27 21:03:54 2004 @@ -7,8 +7,8 @@ * probably would be better to clean up binfmt_elf.c so it does not * necessarily depend on there being a.out support. * - * Copyright (C) 1998-2002 Hewlett-Packard Co - * David Mosberger-Tang + * Modified 1998-2002 + * David Mosberger-Tang , Hewlett-Packard Co. */ #include diff -Nru a/include/asm-ia64/bugs.h b/include/asm-ia64/bugs.h --- a/include/asm-ia64/bugs.h Tue Jan 27 21:03:55 2004 +++ b/include/asm-ia64/bugs.h Tue Jan 27 21:03:55 2004 @@ -4,8 +4,10 @@ * Needs: * void check_bugs(void); * - * Copyright (C) 1998, 1999, 2003 Hewlett-Packard Co - * David Mosberger-Tang + * Based on . + * + * Modified 1998, 1999, 2003 + * David Mosberger-Tang , Hewlett-Packard Co. */ #ifndef _ASM_IA64_BUGS_H #define _ASM_IA64_BUGS_H diff -Nru a/include/asm-ia64/byteorder.h b/include/asm-ia64/byteorder.h --- a/include/asm-ia64/byteorder.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/byteorder.h Tue Jan 27 21:03:53 2004 @@ -2,8 +2,8 @@ #define _ASM_IA64_BYTEORDER_H /* - * Copyright (C) 1998, 1999 Hewlett-Packard Co - * Copyright (C) 1998, 1999 David Mosberger-Tang + * Modified 1998, 1999 + * David Mosberger-Tang , Hewlett-Packard Co. */ #include diff -Nru a/include/asm-ia64/checksum.h b/include/asm-ia64/checksum.h --- a/include/asm-ia64/checksum.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/checksum.h Tue Jan 27 21:03:53 2004 @@ -2,8 +2,8 @@ #define _ASM_IA64_CHECKSUM_H /* - * Copyright (C) 1998, 1999 Hewlett-Packard Co - * Copyright (C) 1998, 1999 David Mosberger-Tang + * Modified 1998, 1999 + * David Mosberger-Tang , Hewlett-Packard Co */ /* diff -Nru a/include/asm-ia64/current.h b/include/asm-ia64/current.h --- a/include/asm-ia64/current.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-ia64/current.h Tue Jan 27 21:03:54 2004 @@ -2,8 +2,8 @@ #define _ASM_IA64_CURRENT_H /* - * Copyright (C) 1998-2000 Hewlett-Packard Co - * David Mosberger-Tang + * Modified 1998-2000 + * David Mosberger-Tang , Hewlett-Packard Co */ #include diff -Nru a/include/asm-ia64/errno.h b/include/asm-ia64/errno.h --- a/include/asm-ia64/errno.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/errno.h Tue Jan 27 21:03:53 2004 @@ -1,13 +1 @@ -#ifndef _ASM_IA64_ERRNO_H -#define _ASM_IA64_ERRNO_H - -/* - * This is derived from the Linux/x86 version. - * - * Copyright (C) 1998, 1999, 2002 Hewlett-Packard Co - * David Mosberger-Tang - */ - #include - -#endif /* _ASM_IA64_ERRNO_H */ diff -Nru a/include/asm-ia64/fcntl.h b/include/asm-ia64/fcntl.h --- a/include/asm-ia64/fcntl.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-ia64/fcntl.h Tue Jan 27 21:03:54 2004 @@ -1,10 +1,10 @@ #ifndef _ASM_IA64_FCNTL_H #define _ASM_IA64_FCNTL_H /* - * This is mostly compatible with Linux/x86. + * Based on . * - * Copyright (C) 1998-2000 Hewlett-Packard Co - * Copyright (C) 1998-2000 David Mosberger-Tang + * Modified 1998-2000 + * David Mosberger-Tang , Hewlett-Packard Co. */ /* diff -Nru a/include/asm-ia64/ioctl.h b/include/asm-ia64/ioctl.h --- a/include/asm-ia64/ioctl.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/ioctl.h Tue Jan 27 21:03:53 2004 @@ -2,10 +2,10 @@ #define _ASM_IA64_IOCTL_H /* - * This is mostly derived from the Linux/x86 version. + * Based on . * - * Copyright (C) 1998, 1999 Hewlett-Packard Co - * Copyright (C) 1998, 1999 David Mosberger-Tang + * Modified 1998, 1999 + * David Mosberger-Tang , Hewlett-Packard Co */ /* ioctl command encoding: 32 bits total, command in lower 16 bits, diff -Nru a/include/asm-ia64/ioctls.h b/include/asm-ia64/ioctls.h --- a/include/asm-ia64/ioctls.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/ioctls.h Tue Jan 27 21:03:53 2004 @@ -2,8 +2,10 @@ #define _ASM_IA64_IOCTLS_H /* - * Copyright (C) 1998, 1999, 2002 Hewlett-Packard Co - * David Mosberger-Tang + * Based on + * + * Modified 1998, 1999, 2002 + * David Mosberger-Tang , Hewlett-Packard Co */ #include diff -Nru a/include/asm-ia64/machvec.h b/include/asm-ia64/machvec.h --- a/include/asm-ia64/machvec.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-ia64/machvec.h Tue Jan 27 21:03:54 2004 @@ -28,6 +28,7 @@ typedef void ia64_mv_cmci_handler_t (int, void *, struct pt_regs *); typedef void ia64_mv_log_print_t (void); typedef void ia64_mv_send_ipi_t (int, int, int, int); +typedef void ia64_mv_timer_interrupt_t (int, void *, struct pt_regs *); typedef void ia64_mv_global_tlb_purge_t (unsigned long, unsigned long, unsigned long); typedef struct irq_desc *ia64_mv_irq_desc (unsigned int); typedef u8 ia64_mv_irq_to_vector (u8); @@ -90,6 +91,7 @@ # define platform_cmci_handler ia64_mv.cmci_handler # define platform_log_print ia64_mv.log_print # define platform_send_ipi ia64_mv.send_ipi +# define platform_timer_interrupt ia64_mv.timer_interrupt # define platform_global_tlb_purge ia64_mv.global_tlb_purge # define platform_dma_init ia64_mv.dma_init # define platform_dma_alloc_coherent ia64_mv.dma_alloc_coherent @@ -131,6 +133,7 @@ ia64_mv_cmci_handler_t *cmci_handler; ia64_mv_log_print_t *log_print; ia64_mv_send_ipi_t *send_ipi; + ia64_mv_timer_interrupt_t *timer_interrupt; ia64_mv_global_tlb_purge_t *global_tlb_purge; ia64_mv_dma_init *dma_init; ia64_mv_dma_alloc_coherent *dma_alloc_coherent; @@ -168,6 +171,7 @@ platform_cmci_handler, \ platform_log_print, \ platform_send_ipi, \ + platform_timer_interrupt, \ platform_global_tlb_purge, \ platform_dma_init, \ platform_dma_alloc_coherent, \ @@ -242,6 +246,9 @@ #endif #ifndef platform_send_ipi # define platform_send_ipi ia64_send_ipi /* default to architected version */ +#endif +#ifndef platform_timer_interrupt +# define platform_timer_interrupt ((ia64_mv_timer_interrupt_t *) machvec_noop) #endif #ifndef platform_global_tlb_purge # define platform_global_tlb_purge ia64_global_tlb_purge /* default to architected version */ diff -Nru a/include/asm-ia64/machvec_sn1.h b/include/asm-ia64/machvec_sn1.h --- a/include/asm-ia64/machvec_sn1.h Tue Jan 27 21:03:54 2004 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2002 Silicon Graphics, Inc. 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. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * 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: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan - */ - -#ifndef _ASM_IA64_MACHVEC_SN1_h -#define _ASM_IA64_MACHVEC_SN1_h - -extern ia64_mv_setup_t sn1_setup; -extern ia64_mv_cpu_init_t sn_cpu_init; -extern ia64_mv_irq_init_t sn1_irq_init; -extern ia64_mv_send_ipi_t sn1_send_IPI; -extern ia64_mv_global_tlb_purge_t sn1_global_tlb_purge; -extern ia64_mv_inb_t sn1_inb; -extern ia64_mv_inw_t sn1_inw; -extern ia64_mv_inl_t sn1_inl; -extern ia64_mv_outb_t sn1_outb; -extern ia64_mv_outw_t sn1_outw; -extern ia64_mv_outl_t sn1_outl; -extern ia64_mv_dma_alloc_coherent sn1_dma_alloc_coherent; -extern ia64_mv_dma_free_coherent sn1_dma_free_coherent; -extern ia64_mv_dma_map_single sn1_dma_map_single; -extern ia64_mv_dma_unmap_single sn1_dma_unmap_single; -extern ia64_mv_dma_map_sg sn1_dma_map_sg; -extern ia64_mv_dma_unmap_sg sn1_dma_unmap_sg; -extern ia64_mv_dma_sync_single sn1_dma_sync_single; -extern ia64_mv_dma_sync_sg sn1_dma_sync_sg; - -/* - * This stuff has dual use! - * - * For a generic kernel, the macros are used to initialize the - * platform's machvec structure. When compiling a non-generic kernel, - * the macros are used directly. - */ -#define platform_name "sn1" -#define platform_setup sn1_setup -#define platform_cpu_init sn_cpu_init -#define platform_irq_init sn1_irq_init -#define platform_send_ipi sn1_send_IPI -#define platform_global_tlb_purge sn1_global_tlb_purge -#define platform_inb sn1_inb -#define platform_inw sn1_inw -#define platform_inl sn1_inl -#define platform_outb sn1_outb -#define platform_outw sn1_outw -#define platform_outl sn1_outl -#define platform_dma_init machvec_noop -#define platform_dma_alloc_coherent sn1_dma_alloc_coherent -#define platform_dma_free_coherent sn1_dma_free_coherent -#define platform_dma_map_single sn1_dma_map_single -#define platform_dma_unmap_single sn1_dma_unmap_single -#define platform_dma_map_sg sn1_dma_map_sg -#define platform_dma_unmap_sg sn1_dma_unmap_sg -#define platform_dma_sync_single sn1_dma_sync_single -#define platform_dma_sync_sg sn1_dma_sync_sg - -#endif /* _ASM_IA64_MACHVEC_SN1_h */ diff -Nru a/include/asm-ia64/machvec_sn2.h b/include/asm-ia64/machvec_sn2.h --- a/include/asm-ia64/machvec_sn2.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/machvec_sn2.h Tue Jan 27 21:03:53 2004 @@ -37,6 +37,7 @@ extern ia64_mv_cpu_init_t sn_cpu_init; extern ia64_mv_irq_init_t sn_irq_init; extern ia64_mv_send_ipi_t sn2_send_IPI; +extern ia64_mv_timer_interrupt_t sn_timer_interrupt; extern ia64_mv_global_tlb_purge_t sn2_global_tlb_purge; extern ia64_mv_irq_desc sn_irq_desc; extern ia64_mv_irq_to_vector sn_irq_to_vector; @@ -73,6 +74,7 @@ #define platform_cpu_init sn_cpu_init #define platform_irq_init sn_irq_init #define platform_send_ipi sn2_send_IPI +#define platform_timer_interrupt sn_timer_interrupt #define platform_global_tlb_purge sn2_global_tlb_purge #define platform_pci_fixup sn_pci_fixup #define platform_inb __sn_inb diff -Nru a/include/asm-ia64/mman.h b/include/asm-ia64/mman.h --- a/include/asm-ia64/mman.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/mman.h Tue Jan 27 21:03:53 2004 @@ -2,8 +2,10 @@ #define _ASM_IA64_MMAN_H /* - * Copyright (C) 1998-2000, 2002 Hewlett-Packard Co - * David Mosberger-Tang + * Based on . + * + * Modified 1998-2000, 2002 + * David Mosberger-Tang , Hewlett-Packard Co */ #define PROT_READ 0x1 /* page can be read */ diff -Nru a/include/asm-ia64/namei.h b/include/asm-ia64/namei.h --- a/include/asm-ia64/namei.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-ia64/namei.h Tue Jan 27 21:03:54 2004 @@ -2,8 +2,8 @@ #define _ASM_IA64_NAMEI_H /* - * Copyright (C) 1998, 1999, 2001 Hewlett-Packard Co - * David Mosberger-Tang + * Modified 1998, 1999, 2001 + * David Mosberger-Tang , Hewlett-Packard Co */ #include diff -Nru a/include/asm-ia64/numa.h b/include/asm-ia64/numa.h --- a/include/asm-ia64/numa.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/numa.h Tue Jan 27 21:03:53 2004 @@ -23,8 +23,8 @@ #include -extern volatile u8 cpu_to_node_map[NR_CPUS] __cacheline_aligned; -extern volatile cpumask_t node_to_cpu_mask[MAX_NUMNODES] __cacheline_aligned; +extern u8 cpu_to_node_map[NR_CPUS] __cacheline_aligned; +extern cpumask_t node_to_cpu_mask[MAX_NUMNODES] __cacheline_aligned; /* Stuff below this line could be architecture independent */ diff -Nru a/include/asm-ia64/param.h b/include/asm-ia64/param.h --- a/include/asm-ia64/param.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/param.h Tue Jan 27 21:03:53 2004 @@ -4,8 +4,10 @@ /* * Fundamental kernel parameters. * - * Copyright (C) 1998, 1999, 2002-2003 Hewlett-Packard Co - * David Mosberger-Tang + * Based on . + * + * Modified 1998, 1999, 2002-2003 + * David Mosberger-Tang , Hewlett-Packard Co */ #define EXEC_PAGESIZE 65536 diff -Nru a/include/asm-ia64/poll.h b/include/asm-ia64/poll.h --- a/include/asm-ia64/poll.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-ia64/poll.h Tue Jan 27 21:03:54 2004 @@ -2,10 +2,10 @@ #define _ASM_IA64_POLL_H /* - * poll(2) bit definitions. Chosen to be compatible with Linux/x86. + * poll(2) bit definitions. Based on . * - * Copyright (C) 1998, 1999, 2002 Hewlett-Packard Co - * David Mosberger-Tang + * Modified 1998, 1999, 2002 + * David Mosberger-Tang , Hewlett-Packard Co */ #define POLLIN 0x0001 diff -Nru a/include/asm-ia64/posix_types.h b/include/asm-ia64/posix_types.h --- a/include/asm-ia64/posix_types.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/posix_types.h Tue Jan 27 21:03:53 2004 @@ -6,8 +6,10 @@ * be a little careful about namespace pollution etc. Also, we cannot * assume GCC is being used. * - * Copyright (C) 1998-2000, 2003 Hewlett-Packard Co - * David Mosberger-Tang + * Based on . + * + * Modified 1998-2000, 2003 + * David Mosberger-Tang , Hewlett-Packard Co */ typedef unsigned long __kernel_ino_t; diff -Nru a/include/asm-ia64/processor.h b/include/asm-ia64/processor.h --- a/include/asm-ia64/processor.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/processor.h Tue Jan 27 21:03:53 2004 @@ -53,12 +53,6 @@ */ #define TASK_UNMAPPED_BASE (current->thread.map_base) -/* - * Bus types - */ -#define MCA_bus 0 -#define MCA_bus__is_a_macro /* for versions in ksyms.c */ - #define IA64_THREAD_FPH_VALID (__IA64_UL(1) << 0) /* floating-point high state valid? */ #define IA64_THREAD_DBG_VALID (__IA64_UL(1) << 1) /* debug registers valid? */ #define IA64_THREAD_PM_VALID (__IA64_UL(1) << 2) /* performance registers valid? */ diff -Nru a/include/asm-ia64/resource.h b/include/asm-ia64/resource.h --- a/include/asm-ia64/resource.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-ia64/resource.h Tue Jan 27 21:03:54 2004 @@ -4,8 +4,10 @@ /* * Resource limits * - * Copyright (C) 1998, 1999 Hewlett-Packard Co - * Copyright (C) 1998, 1999 David Mosberger-Tang + * Based on . + * + * Modified 1998, 1999 + * David Mosberger-Tang , Hewlett-Packard Co */ #include diff -Nru a/include/asm-ia64/scatterlist.h b/include/asm-ia64/scatterlist.h --- a/include/asm-ia64/scatterlist.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-ia64/scatterlist.h Tue Jan 27 21:03:54 2004 @@ -2,8 +2,8 @@ #define _ASM_IA64_SCATTERLIST_H /* - * Copyright (C) 1998-1999, 2001-2002 Hewlett-Packard Co - * David Mosberger-Tang + * Modified 1998-1999, 2001-2002 + * David Mosberger-Tang , Hewlett-Packard Co */ struct scatterlist { diff -Nru a/include/asm-ia64/siginfo.h b/include/asm-ia64/siginfo.h --- a/include/asm-ia64/siginfo.h Tue Jan 27 21:03:55 2004 +++ b/include/asm-ia64/siginfo.h Tue Jan 27 21:03:55 2004 @@ -2,8 +2,10 @@ #define _ASM_IA64_SIGINFO_H /* - * Copyright (C) 1998-2002 Hewlett-Packard Co - * David Mosberger-Tang + * Based on . + * + * Modified 1998-2002 + * David Mosberger-Tang , Hewlett-Packard Co */ #define SI_PAD_SIZE ((SI_MAX_SIZE/sizeof(int)) - 4) diff -Nru a/include/asm-ia64/signal.h b/include/asm-ia64/signal.h --- a/include/asm-ia64/signal.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/signal.h Tue Jan 27 21:03:53 2004 @@ -2,8 +2,8 @@ #define _ASM_IA64_SIGNAL_H /* - * Copyright (C) 1998-2001, 2003 Hewlett-Packard Co - * David Mosberger-Tang + * Modified 1998-2001, 2003 + * David Mosberger-Tang , Hewlett-Packard Co * * Unfortunately, this file is being included by bits/signal.h in * glibc-2.x. Hence the #ifdef __KERNEL__ ugliness. diff -Nru a/include/asm-ia64/socket.h b/include/asm-ia64/socket.h --- a/include/asm-ia64/socket.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/socket.h Tue Jan 27 21:03:53 2004 @@ -2,10 +2,12 @@ #define _ASM_IA64_SOCKET_H /* - * Socket related defines. This mostly mirrors the Linux/x86 version. + * Socket related defines. * - * Copyright (C) 1998-2000 Hewlett-Packard Co - * Copyright (C) 1998-2000 David Mosberger-Tang + * Based on . + * + * Modified 1998-2000 + * David Mosberger-Tang , Hewlett-Packard Co */ #include diff -Nru a/include/asm-ia64/sockios.h b/include/asm-ia64/sockios.h --- a/include/asm-ia64/sockios.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-ia64/sockios.h Tue Jan 27 21:03:54 2004 @@ -2,11 +2,12 @@ #define _ASM_IA64_SOCKIOS_H /* - * Socket-level I/O control calls. This mostly mirrors the Linux/x86 - * version. + * Socket-level I/O control calls. * - * Copyright (C) 1998, 1999 Hewlett-Packard Co - * Copyright (C) 1998, 1999 David Mosberger-Tang + * Based on . + * + * Modified 1998, 1999 + * David Mosberger-Tang , Hewlett-Packard Co */ #define FIOSETOWN 0x8901 #define SIOCSPGRP 0x8902 diff -Nru a/include/asm-ia64/stat.h b/include/asm-ia64/stat.h --- a/include/asm-ia64/stat.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/stat.h Tue Jan 27 21:03:53 2004 @@ -2,8 +2,8 @@ #define _ASM_IA64_STAT_H /* - * Copyright (C) 1998, 1999 Hewlett-Packard Co - * Copyright (C) 1998, 1999 David Mosberger-Tang + * Modified 1998, 1999 + * David Mosberger-Tang , Hewlett-Packard Co */ struct stat { diff -Nru a/include/asm-ia64/statfs.h b/include/asm-ia64/statfs.h --- a/include/asm-ia64/statfs.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-ia64/statfs.h Tue Jan 27 21:03:54 2004 @@ -2,8 +2,10 @@ #define _ASM_IA64_STATFS_H /* - * Copyright (C) 1998, 1999, 2003 Hewlett-Packard Co - * David Mosberger-Tang + * Based on . + * + * Modified 1998, 1999, 2003 + * David Mosberger-Tang , Hewlett-Packard Co */ #ifndef __KERNEL_STRICT_NAMES diff -Nru a/include/asm-ia64/termbits.h b/include/asm-ia64/termbits.h --- a/include/asm-ia64/termbits.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-ia64/termbits.h Tue Jan 27 21:03:54 2004 @@ -2,8 +2,10 @@ #define _ASM_IA64_TERMBITS_H /* - * Copyright (C) 1999 Hewlett-Packard Co - * Copyright (C) 1999 David Mosberger-Tang + * Based on . + * + * Modified 1999 + * David Mosberger-Tang , Hewlett-Packard Co * * 99/01/28 Added new baudrates */ diff -Nru a/include/asm-ia64/termios.h b/include/asm-ia64/termios.h --- a/include/asm-ia64/termios.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-ia64/termios.h Tue Jan 27 21:03:54 2004 @@ -2,8 +2,8 @@ #define _ASM_IA64_TERMIOS_H /* - * Copyright (C) 1999 Hewlett-Packard Co - * Copyright (C) 1999 David Mosberger-Tang + * Modified 1999 + * David Mosberger-Tang , Hewlett-Packard Co * * 99/01/28 Added N_IRDA and N_SMSBLOCK */ diff -Nru a/include/asm-ia64/tlb.h b/include/asm-ia64/tlb.h --- a/include/asm-ia64/tlb.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/tlb.h Tue Jan 27 21:03:53 2004 @@ -1,10 +1,10 @@ #ifndef _ASM_IA64_TLB_H #define _ASM_IA64_TLB_H /* + * Based on . + * * Copyright (C) 2002-2003 Hewlett-Packard Co * David Mosberger-Tang - * - * This file was derived from asm-generic/tlb.h. */ /* * Removing a translation from a page table (including TLB-shootdown) is a four-step diff -Nru a/include/asm-ia64/types.h b/include/asm-ia64/types.h --- a/include/asm-ia64/types.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/types.h Tue Jan 27 21:03:53 2004 @@ -7,8 +7,10 @@ * space pollution is not a major issue. However, for interoperability, libraries still * need to be careful to avoid a name clashes. * - * Copyright (C) 1998-2000, 2002 Hewlett-Packard Co - * David Mosberger-Tang + * Based on . + * + * Modified 1998-2000, 2002 + * David Mosberger-Tang , Hewlett-Packard Co */ #ifdef __ASSEMBLY__ diff -Nru a/include/asm-ia64/uaccess.h b/include/asm-ia64/uaccess.h --- a/include/asm-ia64/uaccess.h Tue Jan 27 21:03:53 2004 +++ b/include/asm-ia64/uaccess.h Tue Jan 27 21:03:53 2004 @@ -26,6 +26,8 @@ * associated and, if so, sets r8 to -EFAULT and clears r9 to 0 and * then resumes execution at the continuation point. * + * Based on . + * * Copyright (C) 1998, 1999, 2001-2003 Hewlett-Packard Co * David Mosberger-Tang */ diff -Nru a/include/asm-ia64/unaligned.h b/include/asm-ia64/unaligned.h --- a/include/asm-ia64/unaligned.h Tue Jan 27 21:03:55 2004 +++ b/include/asm-ia64/unaligned.h Tue Jan 27 21:03:55 2004 @@ -4,8 +4,9 @@ #include /* - * The main single-value unaligned transfer routines. Derived from - * the Linux/Alpha version. + * The main single-value unaligned transfer routines. + * + * Based on . * * Copyright (C) 1998, 1999, 2003 Hewlett-Packard Co * David Mosberger-Tang diff -Nru a/include/asm-ia64/user.h b/include/asm-ia64/user.h --- a/include/asm-ia64/user.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-ia64/user.h Tue Jan 27 21:03:54 2004 @@ -24,8 +24,8 @@ * current->start_stack, so we round each of these in order to be able * to write an integer number of pages. * - * Copyright (C) 1998, 1999, 2001 Hewlett-Packard Co - * Copyright (C) 1998, 1999, 2001 David Mosberger-Tang + * Modified 1998, 1999, 2001 + * David Mosberger-Tang , Hewlett-Packard Co */ #include diff -Nru a/include/asm-x86_64/acpi.h b/include/asm-x86_64/acpi.h --- a/include/asm-x86_64/acpi.h Tue Jan 27 21:03:54 2004 +++ b/include/asm-x86_64/acpi.h Tue Jan 27 21:03:54 2004 @@ -100,25 +100,26 @@ :"0"(n_hi), "1"(n_lo)) -#ifndef CONFIG_ACPI_BOOT -#define acpi_lapic 0 -#define acpi_ioapic 0 -#else -#ifdef CONFIG_X86_LOCAL_APIC +#ifdef CONFIG_ACPI_BOOT extern int acpi_lapic; -#else -#define acpi_lapic 0 -#endif -#ifdef CONFIG_X86_IO_APIC extern int acpi_ioapic; -#else -#define acpi_ioapic 0 -#endif +extern int acpi_noirq; /* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */ #define FIX_ACPI_PAGES 4 -#endif /*CONFIG_ACPI_BOOT*/ +#else /* !CONFIG_ACPI_BOOT */ +#define acpi_lapic 0 +#define acpi_ioapic 0 +#endif /* !CONFIG_ACPI_BOOT */ + +#ifdef CONFIG_ACPI_PCI +static inline void acpi_noirq_set(void) { acpi_noirq = 1; } +extern int acpi_irq_balance_set(char *str); +#else +static inline void acpi_noirq_set(void) { } +static inline int acpi_irq_balance_set(char *str) { return 0; } +#endif #ifdef CONFIG_ACPI_SLEEP diff -Nru a/init/main.c b/init/main.c --- a/init/main.c Tue Jan 27 21:03:53 2004 +++ b/init/main.c Tue Jan 27 21:03:53 2004 @@ -409,6 +409,7 @@ parse_args("Booting kernel", command_line, __start___param, __stop___param - __start___param, &unknown_bootoption); + sort_main_extable(); trap_init(); rcu_init(); init_IRQ(); @@ -436,7 +437,6 @@ page_address_init(); mem_init(); kmem_cache_init(); - sort_main_extable(); if (late_time_init) late_time_init(); calibrate_delay(); diff -Nru a/ipc/msg.c b/ipc/msg.c --- a/ipc/msg.c Tue Jan 27 21:03:53 2004 +++ b/ipc/msg.c Tue Jan 27 21:03:53 2004 @@ -557,6 +557,7 @@ switch (cmd) { case IPC_SET: { + err = -EPERM; if (setbuf.qbytes > msg_ctlmnb && !capable(CAP_SYS_RESOURCE)) goto out_unlock_up; diff -Nru a/kernel/sched.c b/kernel/sched.c --- a/kernel/sched.c Tue Jan 27 21:03:54 2004 +++ b/kernel/sched.c Tue Jan 27 21:03:54 2004 @@ -124,6 +124,9 @@ (NS_TO_JIFFIES((p)->sleep_avg) * MAX_BONUS / \ MAX_SLEEP_AVG) +/* spinlock debugging needs this, even on !CONFIG_SMP */ +spinlock_t kernel_flag __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED; + #ifdef CONFIG_SMP #define TIMESLICE_GRANULARITY(p) (MIN_TIMESLICE * \ (1 << (((MAX_BONUS - CURRENT_BONUS(p)) ? : 1) - 1)) * \ @@ -2867,7 +2870,6 @@ * * Don't use in new code. */ -spinlock_t kernel_flag __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED; EXPORT_SYMBOL(kernel_flag); #endif diff -Nru a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c --- a/net/ipv6/tcp_ipv6.c Tue Jan 27 21:03:54 2004 +++ b/net/ipv6/tcp_ipv6.c Tue Jan 27 21:03:54 2004 @@ -485,7 +485,7 @@ unique: BUG_TRAP(sk_unhashed(sk)); - sk_add_node(sk, &head->chain); + __sk_add_node(sk, &head->chain); sk->sk_hashent = hash; sock_prot_inc_use(sk->sk_prot); write_unlock_bh(&head->lock);