From c46ea26a06f022eec4bf278898e0a078c6c07da0 Mon Sep 17 00:00:00 2001 From: Kiyoshi Ueda Date: Wed, 24 Aug 2005 18:03:43 -0400 Subject: [PATCH] --- yaml --- r: 8004 b: refs/heads/master c: 63028aa7f581d9d4e6889f9dc06ded2534250a76 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/Documentation/DocBook/mcabook.tmpl | 2 +- trunk/Documentation/IPMI.txt | 13 +- trunk/Documentation/RCU/NMI-RCU.txt | 112 - trunk/Documentation/acpi-hotkey.txt | 2 +- trunk/Documentation/cdrom/sonycd535 | 3 +- trunk/Documentation/cpusets.txt | 12 - trunk/Documentation/dcdbas.txt | 91 - trunk/Documentation/dell_rbu.txt | 74 - trunk/Documentation/dvb/bt8xx.txt | 2 +- trunk/Documentation/exception.txt | 2 +- .../feature-removal-schedule.txt | 25 + trunk/Documentation/filesystems/relayfs.txt | 362 - trunk/Documentation/i386/boot.txt | 35 +- trunk/Documentation/ibm-acpi.txt | 376 +- trunk/Documentation/input/yealink.txt | 203 - trunk/Documentation/kernel-parameters.txt | 5 - trunk/Documentation/power/swsusp.txt | 101 +- trunk/Documentation/power/video.txt | 1 - trunk/Documentation/scsi/aic7xxx.txt | 6 +- trunk/Documentation/scsi/scsi_mid_low_api.txt | 41 + trunk/Documentation/sonypi.txt | 10 - trunk/MAINTAINERS | 35 +- trunk/arch/alpha/Kconfig | 3 - trunk/arch/alpha/kernel/sys_marvel.c | 5 +- trunk/arch/alpha/kernel/time.c | 7 +- trunk/arch/arm/Kconfig | 4 - trunk/arch/arm/boot/compressed/head-sharpsl.S | 111 +- trunk/arch/arm/common/locomo.c | 101 - trunk/arch/arm/configs/omap_h2_1610_defconfig | 290 +- trunk/arch/arm/configs/s3c2410_defconfig | 218 +- trunk/arch/arm/kernel/time.c | 7 +- trunk/arch/arm/mach-clps7500/core.c | 2 +- trunk/arch/arm/mach-ebsa110/core.c | 2 +- trunk/arch/arm/mach-epxa10db/arch.c | 2 +- trunk/arch/arm/mach-footbridge/Kconfig | 1 - trunk/arch/arm/mach-footbridge/isa.c | 2 +- trunk/arch/arm/mach-h720x/cpu-h7202.c | 2 +- trunk/arch/arm/mach-iop3xx/iop321-time.c | 2 +- trunk/arch/arm/mach-iop3xx/iop331-time.c | 2 +- trunk/arch/arm/mach-ixp2000/core.c | 4 +- trunk/arch/arm/mach-ixp4xx/common.c | 16 +- trunk/arch/arm/mach-ixp4xx/coyote-setup.c | 2 +- trunk/arch/arm/mach-ixp4xx/gtwx5715-setup.c | 2 +- trunk/arch/arm/mach-ixp4xx/ixdp425-setup.c | 2 +- trunk/arch/arm/mach-omap1/Kconfig | 8 - trunk/arch/arm/mach-omap1/Makefile | 3 +- trunk/arch/arm/mach-omap1/board-generic.c | 38 +- trunk/arch/arm/mach-omap1/board-h2.c | 27 +- trunk/arch/arm/mach-omap1/board-h3.c | 17 +- trunk/arch/arm/mach-omap1/board-innovator.c | 13 +- trunk/arch/arm/mach-omap1/board-netstar.c | 9 +- trunk/arch/arm/mach-omap1/board-osk.c | 124 +- trunk/arch/arm/mach-omap1/board-perseus2.c | 5 +- trunk/arch/arm/mach-omap1/board-voiceblue.c | 64 +- trunk/arch/arm/mach-omap1/devices.c | 351 - trunk/arch/arm/mach-omap1/fpga.c | 4 +- trunk/arch/arm/mach-omap1/io.c | 30 +- trunk/arch/arm/mach-omap1/irq.c | 10 +- trunk/arch/arm/mach-omap1/leds-h2p2-debug.c | 3 +- trunk/arch/arm/mach-omap1/leds-innovator.c | 2 +- trunk/arch/arm/mach-omap1/leds-osk.c | 8 +- trunk/arch/arm/mach-omap1/leds.c | 12 +- trunk/arch/arm/mach-omap1/serial.c | 86 +- trunk/arch/arm/mach-omap1/time.c | 40 +- trunk/arch/arm/mach-pxa/Makefile | 2 +- trunk/arch/arm/mach-pxa/corgi.c | 55 +- trunk/arch/arm/mach-pxa/corgi_lcd.c | 396 - trunk/arch/arm/mach-rpc/riscpc.c | 2 +- trunk/arch/arm/mach-s3c2410/Kconfig | 15 - trunk/arch/arm/mach-s3c2410/Makefile | 5 - trunk/arch/arm/mach-s3c2410/bast-irq.c | 77 +- trunk/arch/arm/mach-s3c2410/mach-anubis.c | 270 - trunk/arch/arm/mach-s3c2410/mach-bast.c | 2 +- trunk/arch/arm/mach-s3c2410/mach-vr1000.c | 2 +- trunk/arch/arm/mach-s3c2410/pm-simtec.c | 2 +- trunk/arch/arm/mach-s3c2410/time.c | 2 +- trunk/arch/arm/mach-shark/core.c | 2 +- trunk/arch/arm/mm/flush.c | 52 - trunk/arch/arm/plat-omap/Kconfig | 16 - trunk/arch/arm/plat-omap/Makefile | 4 +- trunk/arch/arm/plat-omap/clock.c | 39 +- trunk/arch/arm/plat-omap/common.c | 7 +- trunk/arch/arm/plat-omap/dma.c | 25 +- trunk/arch/arm/plat-omap/dmtimer.c | 260 - trunk/arch/arm/plat-omap/gpio.c | 524 +- trunk/arch/arm/plat-omap/mcbsp.c | 9 +- trunk/arch/arm/plat-omap/mux.c | 3 - trunk/arch/arm/plat-omap/ocpi.c | 1 - trunk/arch/arm/plat-omap/pm.c | 255 +- trunk/arch/arm/plat-omap/sleep.S | 83 +- trunk/arch/arm/plat-omap/sram-fn.S | 58 - trunk/arch/arm/plat-omap/sram.c | 116 - trunk/arch/arm/plat-omap/sram.h | 21 - trunk/arch/arm/plat-omap/usb.c | 1 - trunk/arch/arm26/Kconfig | 4 - trunk/arch/arm26/Makefile | 4 + trunk/arch/arm26/kernel/time.c | 7 +- trunk/arch/cris/arch-v10/kernel/time.c | 2 +- trunk/arch/cris/kernel/time.c | 5 +- trunk/arch/frv/kernel/time.c | 7 +- trunk/arch/h8300/kernel/time.c | 5 +- trunk/arch/i386/Kconfig | 10 +- trunk/arch/i386/boot/setup.S | 2 +- trunk/arch/i386/boot/tools/build.c | 4 +- trunk/arch/i386/defconfig | 4 + trunk/arch/i386/kernel/Makefile | 2 +- trunk/arch/i386/kernel/acpi/Makefile | 2 +- trunk/arch/i386/kernel/acpi/boot.c | 557 +- trunk/arch/i386/kernel/acpi/earlyquirk.c | 40 +- trunk/arch/i386/kernel/acpi/sleep.c | 35 +- .../i386/kernel/cpu/cpufreq/acpi-cpufreq.c | 57 +- trunk/arch/i386/kernel/cpu/cpufreq/longhaul.c | 4 +- .../kernel/cpu/cpufreq/speedstep-centrino.c | 20 +- .../i386/kernel/cpu/cpufreq/speedstep-smi.c | 2 +- trunk/arch/i386/kernel/dmi_scan.c | 231 +- trunk/arch/i386/kernel/entry.S | 13 +- trunk/arch/i386/kernel/io_apic.c | 69 +- trunk/arch/i386/kernel/kprobes.c | 35 +- trunk/arch/i386/kernel/mpparse.c | 14 +- trunk/arch/i386/kernel/nmi.c | 5 - trunk/arch/i386/kernel/setup.c | 12 +- trunk/arch/i386/kernel/time.c | 13 +- trunk/arch/i386/kernel/timers/timer_hpet.c | 4 +- trunk/arch/i386/kernel/traps.c | 16 +- trunk/arch/i386/kernel/vmlinux.lds.S | 1 - trunk/arch/i386/mach-default/topology.c | 4 +- trunk/arch/i386/mach-es7000/es7000plat.c | 4 +- trunk/arch/i386/mm/discontig.c | 8 +- trunk/arch/i386/mm/fault.c | 4 +- trunk/arch/i386/mm/init.c | 2 +- trunk/arch/i386/oprofile/init.c | 12 +- trunk/arch/i386/oprofile/nmi_int.c | 4 +- trunk/arch/i386/oprofile/nmi_timer_int.c | 2 +- trunk/arch/i386/pci/Makefile | 2 +- trunk/arch/i386/pci/i386.c | 6 +- trunk/arch/i386/pci/irq.c | 2 +- trunk/arch/ia64/Kconfig | 37 +- trunk/arch/ia64/configs/bigsur_defconfig | 6 + trunk/arch/ia64/configs/sn2_defconfig | 7 + trunk/arch/ia64/configs/tiger_defconfig | 7 + trunk/arch/ia64/configs/zx1_defconfig | 7 + trunk/arch/ia64/defconfig | 6 + trunk/arch/ia64/hp/sim/simserial.c | 2 +- trunk/arch/ia64/ia32/ia32_entry.S | 2 +- trunk/arch/ia64/ia32/sys_ia32.c | 31 + trunk/arch/ia64/kernel/Makefile | 2 +- trunk/arch/ia64/kernel/acpi-ext.c | 37 +- trunk/arch/ia64/kernel/acpi.c | 328 +- trunk/arch/ia64/kernel/domain.c | 396 + trunk/arch/ia64/kernel/iosapic.c | 22 +- trunk/arch/ia64/kernel/irq.c | 39 +- trunk/arch/ia64/kernel/jprobes.S | 1 - trunk/arch/ia64/kernel/kprobes.c | 124 +- trunk/arch/ia64/kernel/setup.c | 4 +- trunk/arch/ia64/kernel/topology.c | 2 +- trunk/arch/ia64/kernel/traps.c | 5 +- trunk/arch/ia64/kernel/vmlinux.lds.S | 1 - trunk/arch/ia64/lib/flush.S | 1 - trunk/arch/ia64/mm/fault.c | 9 +- trunk/arch/ia64/sn/kernel/io_init.c | 2 +- trunk/arch/ia64/sn/kernel/irq.c | 2 +- trunk/arch/ia64/sn/kernel/sn2/sn_proc_fs.c | 2 +- trunk/arch/ia64/sn/kernel/tiocx.c | 2 +- trunk/arch/ia64/sn/pci/tioca_provider.c | 8 +- trunk/arch/m32r/kernel/time.c | 7 +- trunk/arch/m68k/Kconfig | 5 - trunk/arch/m68k/bvme6000/rtc.c | 5 +- trunk/arch/m68k/kernel/time.c | 5 +- trunk/arch/m68k/mvme16x/rtc.c | 4 +- trunk/arch/m68knommu/kernel/time.c | 7 +- trunk/arch/mips/Kconfig | 5 - trunk/arch/mips/kernel/linux32.c | 16 +- trunk/arch/mips/kernel/sysirix.c | 5 +- trunk/arch/mips/kernel/time.c | 7 +- trunk/arch/mips/sgi-ip27/ip27-timer.c | 2 +- trunk/arch/parisc/Kconfig | 4 - trunk/arch/parisc/kernel/time.c | 5 +- trunk/arch/ppc/Kconfig | 4 - trunk/arch/ppc/kernel/head_4xx.S | 1 - trunk/arch/ppc/kernel/pci.c | 1 + trunk/arch/ppc/kernel/time.c | 7 +- trunk/arch/ppc/syslib/mpc10x_common.c | 4 +- trunk/arch/ppc/syslib/mpc83xx_devices.c | 2 +- trunk/arch/ppc/syslib/mpc85xx_devices.c | 2 +- trunk/arch/ppc/syslib/ocp.c | 2 +- trunk/arch/ppc64/Kconfig | 4 - trunk/arch/ppc64/Makefile | 2 +- trunk/arch/ppc64/kernel/eeh.c | 31 +- trunk/arch/ppc64/kernel/iSeries_VpdInfo.c | 5 +- trunk/arch/ppc64/kernel/kprobes.c | 40 +- trunk/arch/ppc64/kernel/misc.S | 6 +- trunk/arch/ppc64/kernel/pSeries_reconfig.c | 2 +- trunk/arch/ppc64/kernel/pci.c | 1 + trunk/arch/ppc64/kernel/setup.c | 2 +- trunk/arch/ppc64/kernel/sys_ppc32.c | 31 + trunk/arch/ppc64/kernel/time.c | 7 +- trunk/arch/ppc64/kernel/traps.c | 5 +- trunk/arch/ppc64/kernel/vmlinux.lds.S | 1 - trunk/arch/ppc64/mm/fault.c | 5 +- trunk/arch/s390/kernel/time.c | 5 +- trunk/arch/sh/Kconfig | 4 - trunk/arch/sh/kernel/time.c | 11 +- trunk/arch/sh64/kernel/time.c | 11 +- trunk/arch/sparc/Kconfig | 4 - trunk/arch/sparc/kernel/pcic.c | 5 +- trunk/arch/sparc/kernel/time.c | 7 +- trunk/arch/sparc64/Kconfig | 4 - trunk/arch/sparc64/kernel/kprobes.c | 36 +- trunk/arch/sparc64/kernel/pci.c | 127 +- trunk/arch/sparc64/kernel/pci_psycho.c | 34 +- trunk/arch/sparc64/kernel/pci_sabre.c | 36 +- trunk/arch/sparc64/kernel/pci_schizo.c | 48 +- trunk/arch/sparc64/kernel/sparc64_ksyms.c | 9 + trunk/arch/sparc64/kernel/sunos_ioctl32.c | 9 +- trunk/arch/sparc64/kernel/sys_sparc32.c | 24 +- trunk/arch/sparc64/kernel/time.c | 2 +- trunk/arch/sparc64/kernel/vmlinux.lds.S | 1 - trunk/arch/sparc64/lib/Makefile | 2 +- trunk/arch/sparc64/lib/mb.S | 73 + trunk/arch/sparc64/mm/fault.c | 8 +- trunk/arch/sparc64/mm/init.c | 3 +- trunk/arch/sparc64/mm/ultra.S | 2 - trunk/arch/um/Makefile-i386 | 2 +- trunk/arch/um/include/common-offsets.h | 1 - trunk/arch/um/include/um_uaccess.h | 7 + trunk/arch/um/kernel/mem.c | 2 +- trunk/arch/um/os-Linux/Makefile | 3 - trunk/arch/um/os-Linux/elf_aux.c | 3 +- trunk/arch/um/sys-i386/kernel-offsets.c | 1 - trunk/arch/um/sys-x86_64/kernel-offsets.c | 1 - trunk/arch/v850/kernel/time.c | 7 +- trunk/arch/x86_64/Kconfig | 11 +- trunk/arch/x86_64/boot/setup.S | 2 +- trunk/arch/x86_64/boot/tools/build.c | 4 +- trunk/arch/x86_64/defconfig | 4 + trunk/arch/x86_64/ia32/ia32entry.S | 2 +- trunk/arch/x86_64/ia32/sys_ia32.c | 26 + trunk/arch/x86_64/kernel/Makefile | 2 +- trunk/arch/x86_64/kernel/acpi/Makefile | 4 +- trunk/arch/x86_64/kernel/acpi/sleep.c | 17 +- trunk/arch/x86_64/kernel/e820.c | 2 +- trunk/arch/x86_64/kernel/entry.S | 12 +- trunk/arch/x86_64/kernel/genapic.c | 6 +- trunk/arch/x86_64/kernel/genapic_cluster.c | 6 +- trunk/arch/x86_64/kernel/io_apic.c | 116 +- trunk/arch/x86_64/kernel/kprobes.c | 41 +- trunk/arch/x86_64/kernel/mpparse.c | 14 +- trunk/arch/x86_64/kernel/nmi.c | 6 +- trunk/arch/x86_64/kernel/process.c | 1 - trunk/arch/x86_64/kernel/setup.c | 10 +- trunk/arch/x86_64/kernel/setup64.c | 2 +- trunk/arch/x86_64/kernel/smpboot.c | 10 +- trunk/arch/x86_64/kernel/time.c | 8 +- trunk/arch/x86_64/kernel/traps.c | 14 +- trunk/arch/x86_64/kernel/vmlinux.lds.S | 1 - trunk/arch/x86_64/mm/fault.c | 4 +- trunk/arch/x86_64/mm/numa.c | 6 +- trunk/arch/x86_64/pci/Makefile | 2 +- trunk/arch/x86_64/pci/Makefile-BUS | 2 +- trunk/arch/xtensa/kernel/time.c | 7 +- trunk/crypto/cipher.c | 12 +- trunk/drivers/Makefile | 2 +- trunk/drivers/acpi/Kconfig | 83 +- trunk/drivers/acpi/Makefile | 14 +- trunk/drivers/acpi/ac.c | 138 +- trunk/drivers/acpi/acpi_memhotplug.c | 176 +- trunk/drivers/acpi/asus_acpi.c | 690 +- trunk/drivers/acpi/battery.c | 400 +- trunk/drivers/acpi/blacklist.c | 122 +- trunk/drivers/acpi/bus.c | 310 +- trunk/drivers/acpi/button.c | 274 +- trunk/drivers/acpi/container.c | 128 +- trunk/drivers/acpi/debug.c | 115 +- trunk/drivers/acpi/dispatcher/dsfield.c | 346 +- trunk/drivers/acpi/dispatcher/dsinit.c | 141 +- trunk/drivers/acpi/dispatcher/dsmethod.c | 404 +- trunk/drivers/acpi/dispatcher/dsmthdat.c | 424 +- trunk/drivers/acpi/dispatcher/dsobject.c | 330 +- trunk/drivers/acpi/dispatcher/dsopcode.c | 723 +- trunk/drivers/acpi/dispatcher/dsutils.c | 421 +- trunk/drivers/acpi/dispatcher/dswexec.c | 519 +- trunk/drivers/acpi/dispatcher/dswload.c | 522 +- trunk/drivers/acpi/dispatcher/dswscope.c | 139 +- trunk/drivers/acpi/dispatcher/dswstate.c | 668 +- trunk/drivers/acpi/ec.c | 1028 +- trunk/drivers/acpi/event.c | 76 +- trunk/drivers/acpi/events/evevent.c | 168 +- trunk/drivers/acpi/events/evgpe.c | 427 +- trunk/drivers/acpi/events/evgpeblk.c | 767 +- trunk/drivers/acpi/events/evmisc.c | 293 +- trunk/drivers/acpi/events/evregion.c | 582 +- trunk/drivers/acpi/events/evrgnini.c | 315 +- trunk/drivers/acpi/events/evsci.c | 77 +- trunk/drivers/acpi/events/evxface.c | 444 +- trunk/drivers/acpi/events/evxfevnt.c | 465 +- trunk/drivers/acpi/events/evxfregn.c | 114 +- trunk/drivers/acpi/executer/exconfig.c | 351 +- trunk/drivers/acpi/executer/exconvrt.c | 311 +- trunk/drivers/acpi/executer/excreate.c | 342 +- trunk/drivers/acpi/executer/exdump.c | 793 +- trunk/drivers/acpi/executer/exfield.c | 253 +- trunk/drivers/acpi/executer/exfldio.c | 644 +- trunk/drivers/acpi/executer/exmisc.c | 358 +- trunk/drivers/acpi/executer/exmutex.c | 160 +- trunk/drivers/acpi/executer/exnames.c | 236 +- trunk/drivers/acpi/executer/exoparg1.c | 574 +- trunk/drivers/acpi/executer/exoparg2.c | 317 +- trunk/drivers/acpi/executer/exoparg3.c | 167 +- trunk/drivers/acpi/executer/exoparg6.c | 127 +- trunk/drivers/acpi/executer/exprep.c | 381 +- trunk/drivers/acpi/executer/exregion.c | 280 +- trunk/drivers/acpi/executer/exresnte.c | 172 +- trunk/drivers/acpi/executer/exresolv.c | 284 +- trunk/drivers/acpi/executer/exresop.c | 398 +- trunk/drivers/acpi/executer/exstore.c | 417 +- trunk/drivers/acpi/executer/exstoren.c | 125 +- trunk/drivers/acpi/executer/exstorob.c | 86 +- trunk/drivers/acpi/executer/exsystem.c | 183 +- trunk/drivers/acpi/executer/exutils.c | 173 +- trunk/drivers/acpi/fan.c | 142 +- trunk/drivers/acpi/glue.c | 9 +- trunk/drivers/acpi/hardware/hwacpi.c | 116 +- trunk/drivers/acpi/hardware/hwgpe.c | 203 +- trunk/drivers/acpi/hardware/hwregs.c | 600 +- trunk/drivers/acpi/hardware/hwsleep.c | 415 +- trunk/drivers/acpi/hardware/hwtimer.c | 77 +- trunk/drivers/acpi/hotkey.c | 233 +- trunk/drivers/acpi/ibm_acpi.c | 1598 +-- trunk/drivers/acpi/motherboard.c | 108 +- trunk/drivers/acpi/namespace/nsaccess.c | 355 +- trunk/drivers/acpi/namespace/nsalloc.c | 350 +- trunk/drivers/acpi/namespace/nsdump.c | 461 +- trunk/drivers/acpi/namespace/nsdumpdv.c | 74 +- trunk/drivers/acpi/namespace/nseval.c | 274 +- trunk/drivers/acpi/namespace/nsinit.c | 257 +- trunk/drivers/acpi/namespace/nsload.c | 264 +- trunk/drivers/acpi/namespace/nsnames.c | 118 +- trunk/drivers/acpi/namespace/nsobject.c | 209 +- trunk/drivers/acpi/namespace/nsparse.c | 84 +- trunk/drivers/acpi/namespace/nssearch.c | 205 +- trunk/drivers/acpi/namespace/nsutils.c | 502 +- trunk/drivers/acpi/namespace/nswalk.c | 105 +- trunk/drivers/acpi/namespace/nsxfeval.c | 430 +- trunk/drivers/acpi/namespace/nsxfname.c | 173 +- trunk/drivers/acpi/namespace/nsxfobj.c | 91 +- trunk/drivers/acpi/numa.c | 125 +- trunk/drivers/acpi/osl.c | 695 +- trunk/drivers/acpi/parser/Makefile | 2 +- trunk/drivers/acpi/parser/psargs.c | 376 +- trunk/drivers/acpi/parser/psloop.c | 874 -- trunk/drivers/acpi/parser/psopcode.c | 739 +- trunk/drivers/acpi/parser/psparse.c | 1080 +- trunk/drivers/acpi/parser/psscope.c | 130 +- trunk/drivers/acpi/parser/pstree.c | 92 +- trunk/drivers/acpi/parser/psutils.c | 134 +- trunk/drivers/acpi/parser/pswalk.c | 26 +- trunk/drivers/acpi/parser/psxface.c | 251 +- trunk/drivers/acpi/pci_bind.c | 220 +- trunk/drivers/acpi/pci_irq.c | 275 +- trunk/drivers/acpi/pci_link.c | 482 +- trunk/drivers/acpi/pci_root.c | 130 +- trunk/drivers/acpi/power.c | 271 +- trunk/drivers/acpi/processor_core.c | 437 +- trunk/drivers/acpi/processor_idle.c | 315 +- trunk/drivers/acpi/processor_perflib.c | 297 +- trunk/drivers/acpi/processor_thermal.c | 153 +- trunk/drivers/acpi/processor_throttling.c | 133 +- trunk/drivers/acpi/resources/rsaddr.c | 873 +- trunk/drivers/acpi/resources/rscalc.c | 314 +- trunk/drivers/acpi/resources/rscreate.c | 297 +- trunk/drivers/acpi/resources/rsdump.c | 847 +- trunk/drivers/acpi/resources/rsio.c | 172 +- trunk/drivers/acpi/resources/rsirq.c | 251 +- trunk/drivers/acpi/resources/rslist.c | 279 +- trunk/drivers/acpi/resources/rsmemory.c | 218 +- trunk/drivers/acpi/resources/rsmisc.c | 230 +- trunk/drivers/acpi/resources/rsutils.c | 159 +- trunk/drivers/acpi/resources/rsxface.c | 182 +- trunk/drivers/acpi/scan.c | 437 +- trunk/drivers/acpi/sleep/poweroff.c | 2 +- trunk/drivers/acpi/sleep/proc.c | 269 +- trunk/drivers/acpi/sleep/wakeup.c | 115 +- trunk/drivers/acpi/system.c | 76 +- trunk/drivers/acpi/tables.c | 434 +- trunk/drivers/acpi/tables/tbconvrt.c | 408 +- trunk/drivers/acpi/tables/tbget.c | 275 +- trunk/drivers/acpi/tables/tbgetall.c | 189 +- trunk/drivers/acpi/tables/tbinstal.c | 264 +- trunk/drivers/acpi/tables/tbrsdt.c | 231 +- trunk/drivers/acpi/tables/tbutils.c | 178 +- trunk/drivers/acpi/tables/tbxface.c | 253 +- trunk/drivers/acpi/tables/tbxfroot.c | 513 +- trunk/drivers/acpi/thermal.c | 801 +- trunk/drivers/acpi/toshiba_acpi.c | 174 +- trunk/drivers/acpi/utilities/Makefile | 2 +- trunk/drivers/acpi/utilities/utalloc.c | 713 +- trunk/drivers/acpi/utilities/utcache.c | 305 - trunk/drivers/acpi/utilities/utcopy.c | 592 +- trunk/drivers/acpi/utilities/utdebug.c | 400 +- trunk/drivers/acpi/utilities/utdelete.c | 431 +- trunk/drivers/acpi/utilities/uteval.c | 396 +- trunk/drivers/acpi/utilities/utglobal.c | 653 +- trunk/drivers/acpi/utilities/utinit.c | 135 +- trunk/drivers/acpi/utilities/utmath.c | 144 +- trunk/drivers/acpi/utilities/utmisc.c | 1175 +- trunk/drivers/acpi/utilities/utmutex.c | 354 - trunk/drivers/acpi/utilities/utobject.c | 354 +- trunk/drivers/acpi/utilities/utstate.c | 333 - trunk/drivers/acpi/utilities/utxface.c | 278 +- trunk/drivers/acpi/utils.c | 195 +- trunk/drivers/acpi/video.c | 1076 +- trunk/drivers/base/attribute_container.c | 86 +- trunk/drivers/base/bus.c | 34 +- trunk/drivers/base/core.c | 17 +- trunk/drivers/base/driver.c | 15 +- trunk/drivers/base/firmware_class.c | 79 +- trunk/drivers/base/transport_class.c | 19 +- trunk/drivers/block/Kconfig | 2 +- trunk/drivers/block/aoe/aoedev.c | 2 +- trunk/drivers/block/cfq-iosched.c | 3 + trunk/drivers/block/deadline-iosched.c | 12 +- trunk/drivers/block/genhd.c | 2 +- trunk/drivers/block/ll_rw_blk.c | 196 +- trunk/drivers/block/scsi_ioctl.c | 60 +- trunk/drivers/block/ub.c | 273 +- trunk/drivers/cdrom/cdrom.c | 15 +- trunk/drivers/char/Kconfig | 2 +- trunk/drivers/char/agp/amd64-agp.c | 2 +- trunk/drivers/char/agp/generic.c | 33 +- trunk/drivers/char/digi1.h | 38 +- trunk/drivers/char/digiFep1.h | 154 +- trunk/drivers/char/drm/drmP.h | 4 - trunk/drivers/char/drm/drm_bufs.c | 66 +- trunk/drivers/char/drm/drm_context.c | 2 +- trunk/drivers/char/drm/drm_sysfs.c | 1 - trunk/drivers/char/drm/mga_dma.c | 14 +- trunk/drivers/char/epca.c | 1590 ++- trunk/drivers/char/epca.h | 108 +- trunk/drivers/char/hpet.c | 12 +- trunk/drivers/char/ipmi/ipmi_bt_sm.c | 69 +- trunk/drivers/char/ipmi/ipmi_devintf.c | 101 +- trunk/drivers/char/ipmi/ipmi_kcs_sm.c | 3 + trunk/drivers/char/ipmi/ipmi_msghandler.c | 336 +- trunk/drivers/char/ipmi/ipmi_poweroff.c | 168 +- trunk/drivers/char/ipmi/ipmi_si_intf.c | 404 +- trunk/drivers/char/ipmi/ipmi_smic_sm.c | 3 + trunk/drivers/char/ipmi/ipmi_watchdog.c | 46 +- trunk/drivers/char/mbcs.c | 2 +- trunk/drivers/char/mem.c | 4 + trunk/drivers/char/misc.c | 9 +- trunk/drivers/char/sonypi.c | 118 +- trunk/drivers/char/tpm/Kconfig | 2 +- trunk/drivers/char/tpm/tpm_atmel.c | 3 - trunk/drivers/char/tty_io.c | 6 + trunk/drivers/char/vt.c | 21 +- trunk/drivers/cpufreq/cpufreq.c | 6 +- trunk/drivers/firmware/Kconfig | 27 - trunk/drivers/firmware/Makefile | 2 - trunk/drivers/firmware/dcdbas.c | 596 - trunk/drivers/firmware/dcdbas.h | 107 - trunk/drivers/firmware/dell_rbu.c | 634 - trunk/drivers/i2c/busses/Kconfig | 16 - trunk/drivers/i2c/busses/Makefile | 1 - trunk/drivers/i2c/busses/i2c-pxa.c | 1022 -- trunk/drivers/i2c/chips/isp1301_omap.c | 2 +- trunk/drivers/ide/ide-disk.c | 2 +- trunk/drivers/ieee1394/nodemgr.c | 8 - trunk/drivers/infiniband/core/sysfs.c | 2 +- .../drivers/infiniband/hw/mthca/mthca_main.c | 8 +- .../drivers/infiniband/hw/mthca/mthca_reset.c | 8 +- trunk/drivers/input/evdev.c | 8 - trunk/drivers/input/gameport/emu10k1-gp.c | 2 +- trunk/drivers/input/gameport/fm801-gp.c | 2 +- trunk/drivers/input/gameport/ns558.c | 4 +- trunk/drivers/input/input.c | 11 - trunk/drivers/input/joystick/a3d.c | 2 +- trunk/drivers/input/joystick/adi.c | 2 +- trunk/drivers/input/joystick/analog.c | 2 +- trunk/drivers/input/joystick/cobra.c | 2 +- trunk/drivers/input/joystick/db9.c | 2 +- trunk/drivers/input/joystick/gamecon.c | 2 +- trunk/drivers/input/joystick/gf2k.c | 2 +- trunk/drivers/input/joystick/grip.c | 2 +- trunk/drivers/input/joystick/grip_mp.c | 2 +- trunk/drivers/input/joystick/guillemot.c | 2 +- trunk/drivers/input/joystick/interact.c | 2 +- trunk/drivers/input/joystick/sidewinder.c | 2 +- trunk/drivers/input/joystick/tmdc.c | 2 +- trunk/drivers/input/joystick/turbografx.c | 2 +- trunk/drivers/input/keyboard/corgikbd.c | 104 +- trunk/drivers/input/mouse/psmouse-base.c | 2 +- trunk/drivers/input/serio/serport.c | 4 +- trunk/drivers/input/touchscreen/corgi_ts.c | 51 +- trunk/drivers/isdn/hisax/hisax.h | 3 +- trunk/drivers/isdn/i4l/isdn_v110.c | 4 +- trunk/drivers/md/dm-io.c | 6 - trunk/drivers/md/dm.c | 6 - trunk/drivers/media/dvb/bt8xx/Kconfig | 6 +- trunk/drivers/media/dvb/frontends/lgdt330x.c | 50 +- trunk/drivers/media/video/Makefile | 2 +- trunk/drivers/media/video/adv7170.c | 1 + trunk/drivers/media/video/adv7175.c | 1 + trunk/drivers/media/video/bt819.c | 1 + trunk/drivers/media/video/bt856.c | 1 + trunk/drivers/media/video/indycam.c | 412 - trunk/drivers/media/video/indycam.h | 112 - trunk/drivers/media/video/meye.c | 3 +- trunk/drivers/media/video/saa7111.c | 1 + trunk/drivers/media/video/saa7114.c | 1 + trunk/drivers/media/video/saa7185.c | 1 + trunk/drivers/media/video/saa7191.c | 512 - trunk/drivers/media/video/saa7191.h | 139 - trunk/drivers/media/video/vino.c | 4301 +------ trunk/drivers/media/video/vino.h | 61 +- trunk/drivers/message/fusion/lsi/mpi.h | 19 +- trunk/drivers/message/fusion/lsi/mpi_cnfg.h | 85 +- .../message/fusion/lsi/mpi_history.txt | 67 +- trunk/drivers/message/fusion/lsi/mpi_init.h | 203 +- trunk/drivers/message/fusion/lsi/mpi_ioc.h | 11 +- trunk/drivers/message/fusion/lsi/mpi_targ.h | 74 +- trunk/drivers/message/fusion/mptbase.c | 321 +- trunk/drivers/message/fusion/mptbase.h | 5 +- trunk/drivers/message/fusion/mptctl.c | 14 +- trunk/drivers/message/fusion/mptscsih.c | 140 +- trunk/drivers/message/fusion/mptspi.c | 6 +- trunk/drivers/misc/Kconfig | 2 +- trunk/drivers/misc/ibmasm/uart.c | 20 +- trunk/drivers/mmc/mmc.c | 530 +- trunk/drivers/mmc/mmc_block.c | 9 +- trunk/drivers/mmc/mmc_sysfs.c | 21 +- trunk/drivers/mmc/mmci.c | 2 +- trunk/drivers/mmc/pxamci.c | 15 +- trunk/drivers/mmc/wbsd.c | 64 +- trunk/drivers/mmc/wbsd.h | 3 - trunk/drivers/mtd/nand/nand_base.c | 1 - trunk/drivers/net/3c59x.c | 19 +- trunk/drivers/net/Kconfig | 7 - trunk/drivers/net/Makefile | 2 - trunk/drivers/net/ac3200.c | 2 +- trunk/drivers/net/arcnet/arcnet.c | 25 +- trunk/drivers/net/atarilance.c | 2 +- trunk/drivers/net/bnx2.c | 7 +- trunk/drivers/net/bnx2.h | 1 - trunk/drivers/net/dm9000.c | 2 +- trunk/drivers/net/forcedeth.c | 4 +- trunk/drivers/net/hamachi.c | 4 - trunk/drivers/net/irda/irda-usb.c | 13 +- trunk/drivers/net/irda/smsc-ircc2.c | 1179 +- trunk/drivers/net/irda/smsc-ircc2.h | 50 +- trunk/drivers/net/irda/vlsi_ir.h | 6 + trunk/drivers/net/iseries_veth.c | 1 - trunk/drivers/net/s2io-regs.h | 13 +- trunk/drivers/net/s2io.c | 108 +- trunk/drivers/net/s2io.h | 5 +- trunk/drivers/net/smc91x.h | 2 +- trunk/drivers/net/spider_net.c | 2334 ---- trunk/drivers/net/spider_net.h | 469 - trunk/drivers/net/spider_net_ethtool.c | 126 - trunk/drivers/net/sun3lance.c | 2 +- trunk/drivers/net/wan/syncppp.c | 1 - trunk/drivers/net/wireless/airo.c | 43 +- trunk/drivers/net/wireless/atmel.c | 17 +- trunk/drivers/net/wireless/ipw2200.c | 2270 ++-- trunk/drivers/net/wireless/ipw2200.h | 406 +- trunk/drivers/net/wireless/netwave_cs.c | 7 +- .../drivers/net/wireless/prism54/isl_ioctl.c | 3 - .../drivers/net/wireless/prism54/islpci_dev.c | 3 +- trunk/drivers/net/wireless/ray_cs.c | 866 +- trunk/drivers/net/wireless/ray_cs.h | 7 +- trunk/drivers/net/wireless/wl3501.h | 1 - trunk/drivers/net/wireless/wl3501_cs.c | 7 +- trunk/drivers/parport/parport_pc.c | 5 +- trunk/drivers/pci/Kconfig | 17 + trunk/drivers/pci/Makefile | 22 +- trunk/drivers/pci/bus.c | 51 +- trunk/drivers/pci/gen-devlist.c | 132 + trunk/drivers/pci/hotplug/Kconfig | 4 +- trunk/drivers/pci/hotplug/Makefile | 7 +- trunk/drivers/pci/hotplug/pciehp.h | 2 +- trunk/drivers/pci/hotplug/rpadlpar_core.c | 287 +- trunk/drivers/pci/hotplug/rpaphp.h | 35 +- trunk/drivers/pci/hotplug/rpaphp_core.c | 146 +- trunk/drivers/pci/hotplug/rpaphp_pci.c | 297 +- trunk/drivers/pci/hotplug/rpaphp_slot.c | 66 +- trunk/drivers/pci/hotplug/rpaphp_vio.c | 129 + trunk/drivers/pci/hotplug/sgi_hotplug.c | 195 +- trunk/drivers/pci/hotplug/shpchp.h | 2 +- trunk/drivers/pci/msi.c | 27 +- trunk/drivers/pci/msi.h | 5 + trunk/drivers/pci/names.c | 137 + trunk/drivers/pci/pci-driver.c | 37 +- trunk/drivers/pci/pci.c | 104 +- trunk/drivers/pci/pci.ids | 10180 ++++++++++++++++ trunk/drivers/pci/pcie/portdrv_pci.c | 8 +- trunk/drivers/pci/probe.c | 4 +- trunk/drivers/pci/proc.c | 12 +- trunk/drivers/pci/quirks.c | 7 - trunk/drivers/pci/setup-res.c | 7 +- trunk/drivers/pcmcia/topic.h | 17 - trunk/drivers/pcmcia/yenta_socket.c | 125 +- trunk/drivers/pcmcia/yenta_socket.h | 8 - trunk/drivers/pnp/Kconfig | 2 +- trunk/drivers/pnp/card.c | 7 + trunk/drivers/pnp/driver.c | 7 + trunk/drivers/pnp/isapnp/core.c | 33 +- trunk/drivers/pnp/manager.c | 7 + trunk/drivers/pnp/pnpacpi/Kconfig | 2 +- trunk/drivers/pnp/pnpacpi/core.c | 16 +- trunk/drivers/pnp/pnpacpi/pnpacpi.h | 1 + trunk/drivers/pnp/pnpacpi/rsparser.c | 93 +- trunk/drivers/pnp/pnpbios/core.c | 26 +- trunk/drivers/pnp/pnpbios/pnpbios.h | 1 + trunk/drivers/pnp/pnpbios/proc.c | 8 +- trunk/drivers/pnp/pnpbios/rsparser.c | 16 +- trunk/drivers/pnp/quirks.c | 7 + trunk/drivers/pnp/support.c | 7 + trunk/drivers/s390/net/claw.c | 20 +- trunk/drivers/scsi/3w-xxxx.c | 57 +- trunk/drivers/scsi/Kconfig | 15 - trunk/drivers/scsi/Makefile | 3 - trunk/drivers/scsi/NCR5380.c | 9 +- trunk/drivers/scsi/NCR53c406a.c | 2 +- trunk/drivers/scsi/aacraid/aachba.c | 327 +- trunk/drivers/scsi/aacraid/aacraid.h | 55 +- trunk/drivers/scsi/aacraid/commctrl.c | 20 +- trunk/drivers/scsi/aacraid/comminit.c | 4 +- trunk/drivers/scsi/aacraid/commsup.c | 20 +- trunk/drivers/scsi/aacraid/linit.c | 106 +- trunk/drivers/scsi/aacraid/rkt.c | 20 - trunk/drivers/scsi/aacraid/rx.c | 20 - trunk/drivers/scsi/aacraid/sa.c | 22 +- trunk/drivers/scsi/advansys.c | 4 +- trunk/drivers/scsi/ahci.c | 18 +- trunk/drivers/scsi/aic7xxx/Kconfig.aic79xx | 1 - trunk/drivers/scsi/aic7xxx/aic7770.c | 1 + trunk/drivers/scsi/aic7xxx/aic79xx.h | 6 + trunk/drivers/scsi/aic7xxx/aic79xx_core.c | 104 +- trunk/drivers/scsi/aic7xxx/aic79xx_osm.c | 6126 +++++++--- trunk/drivers/scsi/aic7xxx/aic79xx_osm.h | 288 +- trunk/drivers/scsi/aic7xxx/aic79xx_osm_pci.c | 82 +- trunk/drivers/scsi/aic7xxx/aic79xx_pci.c | 14 +- trunk/drivers/scsi/aic7xxx/aic79xx_proc.c | 88 +- trunk/drivers/scsi/aic7xxx/aic7xxx.h | 4 +- trunk/drivers/scsi/aic7xxx/aic7xxx.reg | 4 +- trunk/drivers/scsi/aic7xxx/aic7xxx.seq | 5 +- trunk/drivers/scsi/aic7xxx/aic7xxx_93cx6.c | 36 +- trunk/drivers/scsi/aic7xxx/aic7xxx_core.c | 60 +- trunk/drivers/scsi/aic7xxx/aic7xxx_osm.c | 97 +- trunk/drivers/scsi/aic7xxx/aic7xxx_osm.h | 2 +- trunk/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c | 29 - trunk/drivers/scsi/aic7xxx/aic7xxx_proc.c | 45 +- .../scsi/aic7xxx/aic7xxx_reg.h_shipped | 6 +- .../scsi/aic7xxx/aic7xxx_reg_print.c_shipped | 4 +- .../scsi/aic7xxx/aic7xxx_seq.h_shipped | 933 +- trunk/drivers/scsi/aic7xxx/aiclib.c | 1377 +++ trunk/drivers/scsi/aic7xxx/aiclib.h | 890 ++ trunk/drivers/scsi/ata_piix.c | 24 +- trunk/drivers/scsi/ch.c | 42 +- trunk/drivers/scsi/constants.c | 49 +- trunk/drivers/scsi/hosts.c | 113 +- trunk/drivers/scsi/ibmvscsi/ibmvscsi.c | 179 +- trunk/drivers/scsi/ibmvscsi/ibmvscsi.h | 2 - trunk/drivers/scsi/libata-core.c | 4 +- trunk/drivers/scsi/lpfc/lpfc.h | 5 +- trunk/drivers/scsi/lpfc/lpfc_attr.c | 6 +- trunk/drivers/scsi/lpfc/lpfc_ct.c | 2 - trunk/drivers/scsi/lpfc/lpfc_els.c | 1 - trunk/drivers/scsi/lpfc/lpfc_hbadisc.c | 3 - trunk/drivers/scsi/lpfc/lpfc_init.c | 5 +- trunk/drivers/scsi/lpfc/lpfc_mbox.c | 5 - trunk/drivers/scsi/lpfc/lpfc_mem.c | 5 - trunk/drivers/scsi/lpfc/lpfc_nportdisc.c | 1 - trunk/drivers/scsi/lpfc/lpfc_scsi.c | 24 +- trunk/drivers/scsi/lpfc/lpfc_scsi.h | 13 +- trunk/drivers/scsi/lpfc/lpfc_sli.c | 2 - trunk/drivers/scsi/lpfc/lpfc_version.h | 2 +- trunk/drivers/scsi/qla1280.c | 359 +- trunk/drivers/scsi/qla1280.h | 336 +- trunk/drivers/scsi/qla2xxx/qla_attr.c | 136 - trunk/drivers/scsi/qla2xxx/qla_dbg.h | 7 - trunk/drivers/scsi/qla2xxx/qla_def.h | 157 +- trunk/drivers/scsi/qla2xxx/qla_gbl.h | 12 +- trunk/drivers/scsi/qla2xxx/qla_gs.c | 564 - trunk/drivers/scsi/qla2xxx/qla_init.c | 24 +- trunk/drivers/scsi/qla2xxx/qla_iocb.c | 6 +- trunk/drivers/scsi/qla2xxx/qla_isr.c | 2 - trunk/drivers/scsi/qla2xxx/qla_mbx.c | 97 +- trunk/drivers/scsi/qla2xxx/qla_os.c | 117 +- trunk/drivers/scsi/qla2xxx/qla_sup.c | 34 + trunk/drivers/scsi/qla2xxx/qla_version.h | 4 +- trunk/drivers/scsi/raid_class.c | 250 - trunk/drivers/scsi/sata_mv.c | 843 -- trunk/drivers/scsi/sata_qstor.c | 2 +- trunk/drivers/scsi/sata_sis.c | 94 +- trunk/drivers/scsi/sata_uli.c | 18 +- trunk/drivers/scsi/scsi.c | 17 +- trunk/drivers/scsi/scsi_devinfo.c | 4 +- trunk/drivers/scsi/scsi_error.c | 48 +- trunk/drivers/scsi/scsi_ioctl.c | 64 +- trunk/drivers/scsi/scsi_lib.c | 296 +- trunk/drivers/scsi/scsi_priv.h | 3 - trunk/drivers/scsi/scsi_scan.c | 128 +- trunk/drivers/scsi/scsi_sysfs.c | 62 - trunk/drivers/scsi/scsi_transport_fc.c | 6 +- trunk/drivers/scsi/scsi_transport_spi.c | 168 +- trunk/drivers/scsi/sd.c | 185 +- trunk/drivers/scsi/sg.c | 11 +- trunk/drivers/scsi/sr.c | 75 +- trunk/drivers/scsi/sr.h | 1 + trunk/drivers/scsi/sr_ioctl.c | 62 +- trunk/drivers/scsi/st.c | 156 +- trunk/drivers/scsi/st.h | 3 +- trunk/drivers/serial/68328serial.c | 1 + trunk/drivers/serial/68360serial.c | 8 +- trunk/drivers/serial/8250.c | 2 +- trunk/drivers/serial/8250_accent.c | 2 +- trunk/drivers/serial/8250_acpi.c | 20 +- trunk/drivers/serial/8250_boca.c | 2 +- trunk/drivers/serial/8250_fourport.c | 2 +- trunk/drivers/serial/8250_hub6.c | 2 +- trunk/drivers/serial/8250_mca.c | 2 +- trunk/drivers/serial/Kconfig | 2 +- trunk/drivers/serial/crisv10.c | 1 + trunk/drivers/serial/icom.c | 1 + trunk/drivers/serial/mcfserial.c | 1 + trunk/drivers/serial/serial_lh7a40x.c | 4 +- trunk/drivers/usb/atm/cxacru.c | 2 + trunk/drivers/usb/atm/usbatm.c | 2 +- trunk/drivers/usb/class/Kconfig | 21 +- trunk/drivers/usb/class/usblp.c | 9 +- trunk/drivers/usb/core/Makefile | 4 +- trunk/drivers/usb/core/devio.c | 102 +- trunk/drivers/usb/core/hcd-pci.c | 28 +- trunk/drivers/usb/core/hcd.c | 2 +- trunk/drivers/usb/core/hcd.h | 8 +- trunk/drivers/usb/core/hub.c | 115 +- trunk/drivers/usb/core/hub.h | 7 - trunk/drivers/usb/core/inode.c | 9 +- trunk/drivers/usb/core/message.c | 8 +- trunk/drivers/usb/core/urb.c | 26 +- trunk/drivers/usb/core/usb.c | 35 +- trunk/drivers/usb/core/usb.h | 5 - trunk/drivers/usb/gadget/ether.c | 33 +- trunk/drivers/usb/gadget/file_storage.c | 33 +- trunk/drivers/usb/gadget/gadget_chips.h | 55 - trunk/drivers/usb/gadget/serial.c | 51 +- trunk/drivers/usb/gadget/zero.c | 48 +- trunk/drivers/usb/host/ehci-hcd.c | 4 +- trunk/drivers/usb/host/ehci-q.c | 7 - trunk/drivers/usb/host/ehci-sched.c | 6 +- trunk/drivers/usb/host/ehci.h | 2 - trunk/drivers/usb/host/isp116x-hcd.c | 90 +- trunk/drivers/usb/host/ohci-ppc-soc.c | 24 +- trunk/drivers/usb/host/ohci-s3c2410.c | 4 +- trunk/drivers/usb/host/sl811-hcd.c | 2 +- trunk/drivers/usb/input/Kconfig | 14 - trunk/drivers/usb/input/Makefile | 1 - trunk/drivers/usb/input/acecad.c | 2 +- trunk/drivers/usb/input/hid-core.c | 9 +- trunk/drivers/usb/input/itmtouch.c | 2 +- trunk/drivers/usb/input/keyspan_remote.c | 5 + trunk/drivers/usb/input/map_to_7segment.h | 189 - trunk/drivers/usb/input/pid.c | 2 +- trunk/drivers/usb/input/yealink.c | 1013 -- trunk/drivers/usb/input/yealink.h | 220 - trunk/drivers/usb/misc/auerswald.c | 3 +- trunk/drivers/usb/misc/ldusb.c | 6 +- trunk/drivers/usb/misc/sisusbvga/sisusb.c | 4 +- trunk/drivers/usb/misc/usbtest.c | 2 + trunk/drivers/usb/mon/Makefile | 2 +- trunk/drivers/usb/mon/mon_dma.c | 55 - trunk/drivers/usb/mon/mon_text.c | 35 +- trunk/drivers/usb/mon/usb_mon.h | 4 - trunk/drivers/usb/net/Kconfig | 208 +- trunk/drivers/usb/net/Makefile | 8 - trunk/drivers/usb/net/asix.c | 948 -- trunk/drivers/usb/net/catc.c | 2 + trunk/drivers/usb/net/cdc_ether.c | 509 - trunk/drivers/usb/net/cdc_subset.c | 335 - trunk/drivers/usb/net/gl620a.c | 407 - trunk/drivers/usb/net/kaweth.c | 1 + trunk/drivers/usb/net/net1080.c | 622 - trunk/drivers/usb/net/pegasus.c | 1 + trunk/drivers/usb/net/plusb.c | 156 - trunk/drivers/usb/net/rndis_host.c | 615 - trunk/drivers/usb/net/rtl8150.c | 1 + trunk/drivers/usb/net/usbnet.c | 3446 +++++- trunk/drivers/usb/net/usbnet.h | 193 - trunk/drivers/usb/net/zaurus.c | 386 - trunk/drivers/usb/net/zd1201.c | 1 + trunk/drivers/usb/serial/cypress_m8.c | 251 +- trunk/drivers/usb/serial/ftdi_sio.c | 56 +- trunk/drivers/usb/serial/ftdi_sio.h | 54 +- trunk/drivers/usb/serial/keyspan.c | 8 +- trunk/drivers/usb/serial/option.c | 203 +- trunk/drivers/usb/serial/pl2303.c | 6 +- trunk/drivers/usb/serial/usb-serial.c | 24 +- trunk/drivers/usb/storage/Kconfig | 12 - trunk/drivers/usb/storage/Makefile | 1 - trunk/drivers/usb/storage/onetouch.c | 210 - trunk/drivers/usb/storage/onetouch.h | 9 - trunk/drivers/usb/storage/scsiglue.c | 8 - trunk/drivers/usb/storage/shuttle_usbat.c | 97 +- trunk/drivers/usb/storage/transport.c | 17 +- trunk/drivers/usb/storage/unusual_devs.h | 19 - trunk/drivers/usb/storage/usb.c | 79 +- trunk/drivers/usb/storage/usb.h | 1 - trunk/drivers/video/backlight/Makefile | 1 - trunk/drivers/video/backlight/locomolcd.c | 157 - trunk/drivers/video/nvidia/nvidia.c | 4 + trunk/drivers/video/q40fb.c | 1 + trunk/drivers/video/riva/fbdev.c | 4 + trunk/drivers/video/w100fb.c | 1912 +-- trunk/drivers/video/w100fb.h | 777 +- trunk/drivers/w1/Kconfig | 16 - trunk/drivers/w1/Makefile | 7 +- trunk/drivers/w1/ds_w1_bridge.c | 24 +- trunk/drivers/w1/dscore.c | 161 +- trunk/drivers/w1/dscore.h | 10 +- trunk/drivers/w1/w1.c | 302 +- trunk/drivers/w1/w1.h | 22 +- trunk/drivers/w1/w1_ds2433.c | 327 - trunk/drivers/w1/w1_family.c | 11 + trunk/drivers/w1/w1_family.h | 7 +- trunk/drivers/w1/w1_int.c | 26 +- trunk/drivers/w1/w1_io.c | 24 - trunk/drivers/w1/w1_io.h | 1 - trunk/drivers/w1/w1_netlink.c | 26 - trunk/drivers/w1/w1_netlink.h | 2 - trunk/drivers/w1/w1_smem.c | 49 + trunk/drivers/w1/w1_therm.c | 47 +- trunk/fs/Kconfig | 21 +- trunk/fs/Makefile | 1 - trunk/fs/bio.c | 259 +- trunk/fs/buffer.c | 40 +- trunk/fs/cifs/connect.c | 82 +- trunk/fs/cifs/dir.c | 27 +- trunk/fs/compat.c | 116 +- trunk/fs/cramfs/inode.c | 43 +- trunk/fs/ext2/super.c | 59 +- trunk/fs/ext3/super.c | 92 +- trunk/fs/fat/dir.c | 28 +- trunk/fs/file_table.c | 1 + trunk/fs/freevxfs/vxfs_super.c | 2 +- trunk/fs/hfs/bnode.c | 21 +- trunk/fs/hfs/catalog.c | 35 +- trunk/fs/hfs/dir.c | 11 +- trunk/fs/hfs/hfs.h | 1 - trunk/fs/hfs/hfs_fs.h | 8 +- trunk/fs/hfs/inode.c | 2 +- trunk/fs/hfs/mdb.c | 6 - trunk/fs/hfs/super.c | 68 - trunk/fs/hfs/trans.c | 116 +- trunk/fs/hfsplus/bnode.c | 21 +- trunk/fs/hfsplus/hfsplus_fs.h | 5 +- trunk/fs/hfsplus/options.c | 26 +- trunk/fs/hfsplus/super.c | 11 +- trunk/fs/hostfs/hostfs.h | 1 + trunk/fs/inode.c | 3 + trunk/fs/inotify.c | 16 +- trunk/fs/jbd/checkpoint.c | 2 +- trunk/fs/jbd/commit.c | 38 +- trunk/fs/jbd/journal.c | 38 +- trunk/fs/jbd/revoke.c | 5 +- trunk/fs/jbd/transaction.c | 39 +- trunk/fs/jffs/inode-v23.c | 3 + trunk/fs/jffs2/file.c | 3 + trunk/fs/jfs/jfs_filsys.h | 3 - trunk/fs/jfs/super.c | 48 +- trunk/fs/namei.c | 52 +- trunk/fs/namespace.c | 6 +- trunk/fs/nfsd/export.c | 3 - trunk/fs/nfsd/nfs4idmap.c | 8 +- trunk/fs/open.c | 19 +- trunk/fs/pipe.c | 13 +- trunk/fs/proc/base.c | 63 +- trunk/fs/proc/generic.c | 13 - trunk/fs/read_write.c | 2 +- trunk/fs/reiserfs/journal.c | 4 +- trunk/fs/relayfs/Makefile | 4 - trunk/fs/relayfs/buffers.c | 189 - trunk/fs/relayfs/buffers.h | 12 - trunk/fs/relayfs/inode.c | 609 - trunk/fs/relayfs/relay.c | 431 - trunk/fs/relayfs/relay.h | 12 - trunk/fs/ufs/balloc.c | 12 +- trunk/fs/ufs/ialloc.c | 6 +- trunk/fs/ufs/truncate.c | 9 +- trunk/fs/umsdos/notes | 17 + trunk/fs/xattr.c | 2 - trunk/fs/xfs/Kconfig | 45 +- trunk/fs/xfs/Makefile | 151 +- trunk/fs/xfs/Makefile-linux-2.6 | 141 - trunk/fs/xfs/linux-2.6/kmem.c | 23 +- trunk/fs/xfs/linux-2.6/kmem.h | 23 +- trunk/fs/xfs/linux-2.6/spin.h | 3 - trunk/fs/xfs/linux-2.6/xfs_aops.c | 259 +- trunk/fs/xfs/linux-2.6/xfs_aops.h | 50 - trunk/fs/xfs/linux-2.6/xfs_buf.c | 117 +- trunk/fs/xfs/linux-2.6/xfs_buf.h | 12 +- trunk/fs/xfs/linux-2.6/xfs_file.c | 90 +- trunk/fs/xfs/linux-2.6/xfs_ioctl.c | 18 +- trunk/fs/xfs/linux-2.6/xfs_ioctl32.c | 65 +- trunk/fs/xfs/linux-2.6/xfs_iops.c | 15 +- trunk/fs/xfs/linux-2.6/xfs_linux.h | 13 +- trunk/fs/xfs/linux-2.6/xfs_lrw.c | 3 + trunk/fs/xfs/linux-2.6/xfs_lrw.h | 7 +- trunk/fs/xfs/linux-2.6/xfs_super.c | 166 +- trunk/fs/xfs/linux-2.6/xfs_vfs.c | 1 + trunk/fs/xfs/linux-2.6/xfs_vfs.h | 2 + trunk/fs/xfs/linux-2.6/xfs_vnode.c | 251 +- trunk/fs/xfs/linux-2.6/xfs_vnode.h | 60 +- trunk/fs/xfs/quota/Makefile | 1 - trunk/fs/xfs/quota/Makefile-linux-2.6 | 53 - trunk/fs/xfs/quota/xfs_dquot.c | 43 +- trunk/fs/xfs/quota/xfs_dquot.h | 16 +- trunk/fs/xfs/quota/xfs_dquot_item.c | 1 - trunk/fs/xfs/quota/xfs_qm.c | 26 +- trunk/fs/xfs/quota/xfs_qm.h | 2 + trunk/fs/xfs/quota/xfs_qm_bhv.c | 44 +- trunk/fs/xfs/quota/xfs_qm_syscalls.c | 16 +- trunk/fs/xfs/support/debug.c | 1 - trunk/fs/xfs/xfs_acl.c | 6 +- trunk/fs/xfs/xfs_arch.h | 22 +- trunk/fs/xfs/xfs_bmap.c | 12 +- trunk/fs/xfs/xfs_bmap_btree.c | 8 +- trunk/fs/xfs/xfs_bmap_btree.h | 12 +- trunk/fs/xfs/xfs_buf_item.c | 4 - trunk/fs/xfs/xfs_dir_leaf.h | 6 +- trunk/fs/xfs/xfs_dmapi.h | 2 +- trunk/fs/xfs/xfs_extfree_item.c | 2 - trunk/fs/xfs/xfs_iget.c | 35 +- trunk/fs/xfs/xfs_inode.c | 3 +- trunk/fs/xfs/xfs_inode_item.c | 13 +- trunk/fs/xfs/xfs_iomap.c | 22 +- trunk/fs/xfs/xfs_log.c | 215 +- trunk/fs/xfs/xfs_log.h | 38 +- trunk/fs/xfs/xfs_log_priv.h | 78 +- trunk/fs/xfs/xfs_log_recover.c | 2 +- trunk/fs/xfs/xfs_qmops.c | 78 +- trunk/fs/xfs/xfs_quota.h | 17 +- trunk/fs/xfs/xfs_trans.c | 3 +- trunk/fs/xfs/xfs_trans.h | 2 - trunk/fs/xfs/xfs_trans_ail.c | 2 +- trunk/fs/xfs/xfs_trans_buf.c | 23 - trunk/fs/xfs/xfs_vfsops.c | 62 +- trunk/fs/xfs/xfs_vnodeops.c | 92 +- trunk/include/acpi/acconfig.h | 29 +- trunk/include/acpi/acdebug.h | 259 +- trunk/include/acpi/acdisasm.h | 322 +- trunk/include/acpi/acdispat.h | 405 +- trunk/include/acpi/acevents.h | 241 +- trunk/include/acpi/acexcep.h | 34 +- trunk/include/acpi/acglobal.h | 271 +- trunk/include/acpi/achware.h | 107 +- trunk/include/acpi/acinterp.h | 626 +- trunk/include/acpi/aclocal.h | 722 +- trunk/include/acpi/acmacros.h | 145 +- trunk/include/acpi/acnames.h | 13 +- trunk/include/acpi/acnamesp.h | 357 +- trunk/include/acpi/acobject.h | 390 +- trunk/include/acpi/acopcode.h | 6 +- trunk/include/acpi/acoutput.h | 10 +- trunk/include/acpi/acparser.h | 255 +- trunk/include/acpi/acpi.h | 35 +- trunk/include/acpi/acpi_bus.h | 334 +- trunk/include/acpi/acpi_drivers.h | 40 +- trunk/include/acpi/acpiosxf.h | 264 +- trunk/include/acpi/acpixf.h | 408 +- trunk/include/acpi/acresrc.h | 309 +- trunk/include/acpi/acstruct.h | 221 +- trunk/include/acpi/actables.h | 121 +- trunk/include/acpi/actbl.h | 282 +- trunk/include/acpi/actbl1.h | 141 +- trunk/include/acpi/actbl2.h | 260 +- trunk/include/acpi/actbl71.h | 148 +- trunk/include/acpi/actypes.h | 807 +- trunk/include/acpi/acutils.h | 718 +- trunk/include/acpi/amlcode.h | 172 +- trunk/include/acpi/amlresrc.h | 380 +- trunk/include/acpi/container.h | 3 +- trunk/include/acpi/pdc_intel.h | 4 +- trunk/include/acpi/platform/acenv.h | 70 +- trunk/include/acpi/platform/acgcc.h | 10 +- trunk/include/acpi/platform/aclinux.h | 15 +- trunk/include/acpi/processor.h | 238 +- trunk/include/asm-alpha/auxvec.h | 24 - trunk/include/asm-alpha/elf.h | 22 +- trunk/include/asm-alpha/fcntl.h | 35 +- trunk/include/asm-alpha/futex.h | 53 - trunk/include/asm-alpha/hdreg.h | 1 + trunk/include/asm-alpha/pci.h | 13 - trunk/include/asm-alpha/uaccess.h | 6 + trunk/include/asm-arm/arch-omap/board-h4.h | 3 - .../asm-arm/arch-omap/board-innovator.h | 25 + .../asm-arm/arch-omap/board-perseus2.h | 17 +- .../asm-arm/arch-omap/board-voiceblue.h | 5 + trunk/include/asm-arm/arch-omap/board.h | 19 +- trunk/include/asm-arm/arch-omap/cpu.h | 187 +- trunk/include/asm-arm/arch-omap/debug-macro.S | 13 - trunk/include/asm-arm/arch-omap/dma.h | 1 - trunk/include/asm-arm/arch-omap/dmtimer.h | 92 - trunk/include/asm-arm/arch-omap/dsp.h | 244 - trunk/include/asm-arm/arch-omap/dsp_common.h | 37 - trunk/include/asm-arm/arch-omap/entry-macro.S | 28 - trunk/include/asm-arm/arch-omap/gpio.h | 28 +- trunk/include/asm-arm/arch-omap/hardware.h | 39 +- trunk/include/asm-arm/arch-omap/io.h | 26 +- trunk/include/asm-arm/arch-omap/irqs.h | 6 +- trunk/include/asm-arm/arch-omap/memory.h | 14 +- trunk/include/asm-arm/arch-omap/mtd-xip.h | 61 - trunk/include/asm-arm/arch-omap/mux.h | 10 +- trunk/include/asm-arm/arch-omap/omap1510.h | 13 + trunk/include/asm-arm/arch-omap/omap16xx.h | 16 + trunk/include/asm-arm/arch-omap/omap24xx.h | 15 - trunk/include/asm-arm/arch-omap/omap730.h | 4 + trunk/include/asm-arm/arch-omap/pm.h | 55 +- trunk/include/asm-arm/arch-omap/serial.h | 37 - trunk/include/asm-arm/arch-omap/uncompress.h | 10 +- trunk/include/asm-arm/arch-pxa/corgi.h | 8 +- trunk/include/asm-arm/arch-pxa/hardware.h | 18 +- trunk/include/asm-arm/arch-pxa/i2c.h | 70 - trunk/include/asm-arm/arch-pxa/mmc.h | 2 - .../asm-arm/arch-s3c2410/anubis-cpld.h | 24 - .../include/asm-arm/arch-s3c2410/anubis-irq.h | 23 - .../include/asm-arm/arch-s3c2410/anubis-map.h | 46 - trunk/include/asm-arm/arch-sa1100/hardware.h | 18 +- trunk/include/asm-arm/auxvec.h | 4 - trunk/include/asm-arm/cacheflush.h | 7 +- trunk/include/asm-arm/fcntl.h | 78 +- trunk/include/asm-arm/futex.h | 53 - trunk/include/asm-arm/hdreg.h | 1 + trunk/include/asm-arm/pci.h | 13 - trunk/include/asm-arm/uaccess.h | 6 + trunk/include/asm-arm26/auxvec.h | 4 - trunk/include/asm-arm26/fcntl.h | 76 +- trunk/include/asm-arm26/futex.h | 53 - trunk/include/asm-arm26/hdreg.h | 1 + trunk/include/asm-arm26/uaccess.h | 6 + trunk/include/asm-cris/auxvec.h | 4 - trunk/include/asm-cris/fcntl.h | 91 +- trunk/include/asm-cris/futex.h | 53 - trunk/include/asm-cris/irq.h | 5 - trunk/include/asm-cris/uaccess.h | 7 + trunk/include/asm-frv/auxvec.h | 4 - trunk/include/asm-frv/fcntl.h | 89 +- trunk/include/asm-frv/futex.h | 53 - trunk/include/asm-frv/uaccess.h | 6 + trunk/include/asm-generic/fcntl.h | 149 - trunk/include/asm-generic/hdreg.h | 8 + trunk/include/asm-generic/pci.h | 13 - trunk/include/asm-generic/sections.h | 1 - trunk/include/asm-generic/unaligned.h | 12 +- trunk/include/asm-generic/vmlinux.lds.h | 6 - trunk/include/asm-h8300/auxvec.h | 4 - trunk/include/asm-h8300/fcntl.h | 78 +- trunk/include/asm-h8300/futex.h | 53 - trunk/include/asm-h8300/hdreg.h | 15 + trunk/include/asm-h8300/uaccess.h | 6 + trunk/include/asm-i386/acpi.h | 20 +- trunk/include/asm-i386/auxvec.h | 11 - trunk/include/asm-i386/elf.h | 8 +- trunk/include/asm-i386/fcntl.h | 89 +- trunk/include/asm-i386/fixmap.h | 2 +- trunk/include/asm-i386/futex.h | 108 - trunk/include/asm-i386/hdreg.h | 1 + trunk/include/asm-i386/io_apic.h | 4 +- trunk/include/asm-i386/mpspec.h | 4 +- trunk/include/asm-i386/uaccess.h | 24 + trunk/include/asm-ia64/acpi-ext.h | 1 - trunk/include/asm-ia64/auxvec.h | 11 - trunk/include/asm-ia64/compat.h | 20 +- trunk/include/asm-ia64/elf.h | 8 +- trunk/include/asm-ia64/fcntl.h | 78 +- trunk/include/asm-ia64/futex.h | 53 - trunk/include/asm-ia64/hdreg.h | 14 + trunk/include/asm-ia64/hw_irq.h | 7 + trunk/include/asm-ia64/irq.h | 11 +- trunk/include/asm-ia64/kprobes.h | 1 - trunk/include/asm-ia64/pci.h | 13 - trunk/include/asm-ia64/processor.h | 3 + trunk/include/asm-ia64/topology.h | 23 + trunk/include/asm-ia64/uaccess.h | 7 + trunk/include/asm-m32r/auxvec.h | 4 - trunk/include/asm-m32r/fcntl.h | 93 +- trunk/include/asm-m32r/futex.h | 53 - trunk/include/asm-m32r/hdreg.h | 1 + trunk/include/asm-m32r/uaccess.h | 25 + trunk/include/asm-m68k/auxvec.h | 4 - trunk/include/asm-m68k/fcntl.h | 78 +- trunk/include/asm-m68k/futex.h | 53 - trunk/include/asm-m68k/hdreg.h | 1 + trunk/include/asm-m68k/uaccess.h | 6 + trunk/include/asm-m68knommu/auxvec.h | 4 - trunk/include/asm-m68knommu/futex.h | 53 - trunk/include/asm-m68knommu/hdreg.h | 1 + trunk/include/asm-m68knommu/uaccess.h | 6 + trunk/include/asm-mips/auxvec.h | 4 - trunk/include/asm-mips/compat.h | 10 +- trunk/include/asm-mips/fcntl.h | 75 +- trunk/include/asm-mips/futex.h | 53 - trunk/include/asm-mips/hdreg.h | 1 + trunk/include/asm-mips/uaccess.h | 23 + trunk/include/asm-parisc/auxvec.h | 4 - trunk/include/asm-parisc/compat.h | 10 +- trunk/include/asm-parisc/fcntl.h | 56 +- trunk/include/asm-parisc/futex.h | 53 - trunk/include/asm-parisc/hdreg.h | 1 + trunk/include/asm-parisc/irq.h | 5 - trunk/include/asm-parisc/pci.h | 13 - trunk/include/asm-parisc/uaccess.h | 4 + trunk/include/asm-powerpc/fcntl.h | 11 - trunk/include/asm-ppc/auxvec.h | 14 - trunk/include/asm-ppc/elf.h | 11 +- trunk/include/asm-ppc/fcntl.h | 93 + trunk/include/asm-ppc/futex.h | 53 - trunk/include/asm-ppc/ibm_ocp.h | 2 - trunk/include/asm-ppc/irq.h | 5 - trunk/include/asm-ppc/pci.h | 13 - trunk/include/asm-ppc/uaccess.h | 7 + trunk/include/asm-ppc64/auxvec.h | 19 - trunk/include/asm-ppc64/compat.h | 18 +- trunk/include/asm-ppc64/elf.h | 16 +- trunk/include/asm-ppc64/fcntl.h | 89 + trunk/include/asm-ppc64/futex.h | 83 - trunk/include/asm-ppc64/irq.h | 5 - trunk/include/asm-ppc64/kprobes.h | 3 - trunk/include/asm-ppc64/memory.h | 2 - trunk/include/asm-ppc64/pci.h | 13 - trunk/include/asm-ppc64/processor.h | 14 - trunk/include/asm-ppc64/uaccess.h | 7 + trunk/include/asm-s390/auxvec.h | 4 - trunk/include/asm-s390/compat.h | 20 +- trunk/include/asm-s390/fcntl.h | 98 +- trunk/include/asm-s390/futex.h | 53 - trunk/include/asm-s390/uaccess.h | 7 + trunk/include/asm-sh/auxvec.h | 4 - trunk/include/asm-sh/fcntl.h | 89 +- trunk/include/asm-sh/futex.h | 53 - trunk/include/asm-sh/hdreg.h | 1 + trunk/include/asm-sh/uaccess.h | 6 + trunk/include/asm-sh64/auxvec.h | 4 - trunk/include/asm-sh64/fcntl.h | 6 + trunk/include/asm-sh64/futex.h | 53 - trunk/include/asm-sh64/hdreg.h | 6 + trunk/include/asm-sh64/uaccess.h | 6 + trunk/include/asm-sparc/auxvec.h | 4 - trunk/include/asm-sparc/fcntl.h | 59 +- trunk/include/asm-sparc/futex.h | 53 - trunk/include/asm-sparc/hdreg.h | 1 + trunk/include/asm-sparc/uaccess.h | 6 + trunk/include/asm-sparc64/auxvec.h | 4 - trunk/include/asm-sparc64/compat.h | 18 +- trunk/include/asm-sparc64/fcntl.h | 46 +- trunk/include/asm-sparc64/futex.h | 53 - trunk/include/asm-sparc64/hdreg.h | 1 + trunk/include/asm-sparc64/pci.h | 2 - trunk/include/asm-sparc64/system.h | 49 +- trunk/include/asm-sparc64/uaccess.h | 6 + trunk/include/asm-um/auxvec.h | 4 - trunk/include/asm-um/futex.h | 53 - trunk/include/asm-um/hdreg.h | 6 + trunk/include/asm-v850/auxvec.h | 4 - trunk/include/asm-v850/fcntl.h | 78 +- trunk/include/asm-v850/futex.h | 53 - trunk/include/asm-v850/uaccess.h | 6 + trunk/include/asm-x86_64/acpi.h | 27 +- trunk/include/asm-x86_64/auxvec.h | 4 - trunk/include/asm-x86_64/compat.h | 20 +- trunk/include/asm-x86_64/fcntl.h | 77 +- trunk/include/asm-x86_64/futex.h | 98 - trunk/include/asm-x86_64/hdreg.h | 1 + trunk/include/asm-x86_64/io_apic.h | 2 +- trunk/include/asm-x86_64/mpspec.h | 2 +- trunk/include/asm-x86_64/processor.h | 2 +- trunk/include/asm-x86_64/uaccess.h | 7 + trunk/include/asm-xtensa/auxvec.h | 4 - trunk/include/asm-xtensa/fcntl.h | 48 +- trunk/include/asm-xtensa/hdreg.h | 17 + trunk/include/linux/acpi.h | 45 +- trunk/include/linux/attribute_container.h | 12 +- trunk/include/linux/auxvec.h | 31 - trunk/include/linux/bio.h | 8 +- trunk/include/linux/blkdev.h | 10 +- trunk/include/linux/compat.h | 3 - trunk/include/linux/cpuset.h | 11 +- trunk/include/linux/crc16.h | 44 - trunk/include/linux/dcache.h | 4 +- trunk/include/linux/dmi.h | 36 +- trunk/include/linux/elf.h | 24 +- trunk/include/linux/ext2_fs.h | 3 - trunk/include/linux/ext3_fs.h | 2 - trunk/include/linux/firmware.h | 5 +- trunk/include/linux/fs.h | 13 +- trunk/include/linux/futex.h | 36 +- trunk/include/linux/gfp.h | 8 +- trunk/include/linux/i2c-pxa.h | 48 - trunk/include/linux/in6.h | 36 +- trunk/include/linux/inotify.h | 1 - trunk/include/linux/input.h | 25 - trunk/include/linux/ioctl32.h | 22 + trunk/include/linux/ipmi.h | 34 +- trunk/include/linux/ipv6.h | 15 +- trunk/include/linux/irq.h | 130 +- trunk/include/linux/isdn.h | 1 + trunk/include/linux/jbd.h | 1 + trunk/include/linux/klist.h | 8 +- trunk/include/linux/kprobes.h | 3 - trunk/include/linux/linkage.h | 7 - trunk/include/linux/mempolicy.h | 1 - trunk/include/linux/mmc/card.h | 15 - trunk/include/linux/mmc/host.h | 24 +- trunk/include/linux/mmc/mmc.h | 2 - trunk/include/linux/mmc/protocol.h | 7 - trunk/include/linux/msg.h | 1 - .../linux/netfilter_ipv4/ip_conntrack.h | 5 - .../linux/netfilter_ipv4/ip_conntrack_core.h | 2 +- .../linux/netfilter_ipv4/ip_nat_rule.h | 5 - trunk/include/linux/pci.h | 511 +- trunk/include/linux/pci_ids.h | 1 - trunk/include/linux/pci_regs.h | 448 - trunk/include/linux/pipe_fs_i.h | 3 + trunk/include/linux/pnp.h | 2 +- trunk/include/linux/ptrace.h | 1 - trunk/include/linux/raid_class.h | 59 - trunk/include/linux/relayfs_fs.h | 255 - trunk/include/linux/sched.h | 28 +- trunk/include/linux/sem.h | 1 - trunk/include/linux/serial_8250.h | 15 - trunk/include/linux/serial_core.h | 7 +- trunk/include/linux/skbuff.h | 6 +- trunk/include/linux/slab.h | 16 +- trunk/include/linux/sonypi.h | 2 - trunk/include/linux/sunrpc/cache.h | 1 - trunk/include/linux/sysctl.h | 6 - trunk/include/linux/time.h | 1 + trunk/include/linux/timex.h | 23 - trunk/include/linux/topology.h | 23 - trunk/include/linux/transport_class.h | 11 +- trunk/include/linux/usb.h | 11 +- trunk/include/linux/usb_isp116x.h | 30 +- trunk/include/linux/wireless.h | 38 +- trunk/include/net/ax25.h | 4 +- trunk/include/net/compat.h | 5 +- trunk/include/net/ipv6.h | 5 - trunk/include/net/iw_handler.h | 123 +- trunk/include/net/transp_v6.h | 2 +- trunk/include/scsi/scsi_cmnd.h | 8 +- trunk/include/scsi/scsi_dbg.h | 2 - trunk/include/scsi/scsi_device.h | 22 +- trunk/include/scsi/scsi_eh.h | 11 +- trunk/include/scsi/scsi_host.h | 26 +- trunk/include/scsi/scsi_request.h | 16 + trunk/include/scsi/scsi_transport_spi.h | 6 - trunk/include/sound/core.h | 2 - trunk/include/sound/pcm.h | 2 +- trunk/include/video/w100fb.h | 138 +- trunk/init/main.c | 39 +- trunk/ipc/compat.c | 12 +- trunk/ipc/msg.c | 82 +- trunk/ipc/sem.c | 73 +- trunk/ipc/shm.c | 86 +- trunk/ipc/util.c | 156 - trunk/ipc/util.h | 8 - trunk/kernel/Makefile | 1 - trunk/kernel/acct.c | 2 +- trunk/kernel/cpuset.c | 125 +- trunk/kernel/futex.c | 137 +- trunk/kernel/intermodule.c | 3 +- trunk/kernel/irq/handle.c | 2 +- trunk/kernel/irq/manage.c | 4 - trunk/kernel/irq/proc.c | 14 +- trunk/kernel/kprobes.c | 94 +- trunk/kernel/module.c | 33 +- trunk/kernel/params.c | 4 +- trunk/kernel/posix-timers.c | 28 +- trunk/kernel/power/Kconfig | 3 +- trunk/kernel/power/pm.c | 3 +- trunk/kernel/power/swsusp.c | 1 - trunk/kernel/printk.c | 13 +- trunk/kernel/ptrace.c | 41 +- trunk/kernel/resource.c | 3 +- trunk/kernel/sched.c | 340 +- trunk/kernel/signal.c | 83 +- trunk/kernel/softlockup.c | 151 - trunk/kernel/sys.c | 6 +- trunk/kernel/timer.c | 18 +- trunk/kernel/workqueue.c | 5 +- trunk/lib/Kconfig | 8 - trunk/lib/Kconfig.debug | 19 - trunk/lib/Makefile | 3 +- trunk/lib/crc16.c | 67 - trunk/lib/klist.c | 18 +- trunk/lib/radix-tree.c | 176 +- trunk/mm/mempolicy.c | 2 +- trunk/mm/mmap.c | 9 +- trunk/mm/oom_kill.c | 62 +- trunk/mm/page_alloc.c | 28 +- trunk/mm/readahead.c | 1 - trunk/mm/shmem.c | 2 +- trunk/mm/slab.c | 18 +- trunk/mm/vmscan.c | 8 +- trunk/net/ax25/af_ax25.c | 7 +- trunk/net/ax25/ax25_addr.c | 30 +- trunk/net/ax25/ax25_route.c | 7 +- trunk/net/ax25/ax25_uid.c | 4 +- trunk/net/compat.c | 44 +- trunk/net/core/sock.c | 9 +- trunk/net/core/wireless.c | 58 +- trunk/net/ieee80211/Kconfig | 1 + trunk/net/ieee80211/ieee80211_crypt.c | 27 +- trunk/net/ieee80211/ieee80211_crypt_ccmp.c | 47 +- trunk/net/ieee80211/ieee80211_crypt_tkip.c | 133 +- trunk/net/ieee80211/ieee80211_crypt_wep.c | 30 +- trunk/net/ieee80211/ieee80211_module.c | 40 +- trunk/net/ieee80211/ieee80211_rx.c | 310 +- trunk/net/ieee80211/ieee80211_tx.c | 66 +- trunk/net/ieee80211/ieee80211_wx.c | 73 +- trunk/net/ipv4/ip_fragment.c | 2 +- trunk/net/ipv4/netfilter/Kconfig | 20 - trunk/net/ipv4/netfilter/Makefile | 1 - .../net/ipv4/netfilter/ip_conntrack_amanda.c | 1 - trunk/net/ipv4/netfilter/ip_conntrack_core.c | 38 +- trunk/net/ipv4/netfilter/ip_conntrack_ftp.c | 1 - trunk/net/ipv4/netfilter/ip_conntrack_irc.c | 1 - .../ipv4/netfilter/ip_conntrack_netbios_ns.c | 147 - .../net/ipv4/netfilter/ip_conntrack_netlink.c | 13 +- .../ipv4/netfilter/ip_conntrack_proto_tcp.c | 1 - .../ipv4/netfilter/ip_conntrack_standalone.c | 2 +- trunk/net/ipv4/netfilter/ip_conntrack_tftp.c | 1 - trunk/net/ipv4/netfilter/ip_nat_rule.c | 21 - trunk/net/ipv4/netfilter/ip_nat_standalone.c | 8 +- trunk/net/ipv4/netfilter/ipt_REJECT.c | 5 +- trunk/net/ipv4/route.c | 29 +- trunk/net/ipv4/tcp_output.c | 2 +- trunk/net/ipv4/udp.c | 2 +- trunk/net/ipv6/datagram.c | 139 +- trunk/net/ipv6/exthdrs.c | 116 +- trunk/net/ipv6/icmp.c | 20 +- trunk/net/ipv6/ip6_flowlabel.c | 14 +- trunk/net/ipv6/ip6_output.c | 24 +- trunk/net/ipv6/ip6_tunnel.c | 7 +- trunk/net/ipv6/ipv6_sockglue.c | 186 +- trunk/net/ipv6/ndisc.c | 16 +- trunk/net/ipv6/netfilter/ip6t_REJECT.c | 5 +- trunk/net/ipv6/raw.c | 21 +- trunk/net/ipv6/reassembly.c | 9 +- trunk/net/ipv6/tcp_ipv6.c | 36 +- trunk/net/ipv6/udp.c | 25 +- trunk/net/netfilter/nfnetlink_queue.c | 8 +- trunk/net/netlink/af_netlink.c | 59 +- trunk/net/netrom/af_netrom.c | 7 +- trunk/net/netrom/nr_route.c | 8 +- trunk/net/packet/af_packet.c | 6 +- trunk/net/rose/af_rose.c | 6 +- trunk/net/rose/rose_route.c | 14 +- trunk/net/rose/rose_subr.c | 9 +- trunk/net/socket.c | 25 +- trunk/net/sunrpc/auth_gss/svcauth_gss.c | 8 +- trunk/net/sunrpc/cache.c | 8 +- trunk/net/sunrpc/stats.c | 16 +- trunk/net/sunrpc/sunrpc_syms.c | 6 +- trunk/net/sunrpc/svcauth.c | 1 - trunk/net/sunrpc/svcauth_unix.c | 1 - trunk/net/xfrm/xfrm_policy.c | 8 +- trunk/scripts/kallsyms.c | 427 +- trunk/scripts/ver_linux | 6 +- trunk/sound/arm/Makefile | 16 +- trunk/sound/arm/aaci.c | 4 +- trunk/sound/arm/aaci.h | 6 +- trunk/sound/core/memory.c | 14 +- trunk/sound/isa/Kconfig | 19 +- trunk/sound/oss/os.h | 3 + trunk/sound/pci/ali5451/ali5451.c | 2 +- trunk/sound/usb/usbaudio.c | 10 +- 1376 files changed, 72212 insertions(+), 78322 deletions(-) delete mode 100644 trunk/Documentation/RCU/NMI-RCU.txt delete mode 100644 trunk/Documentation/dcdbas.txt delete mode 100644 trunk/Documentation/dell_rbu.txt delete mode 100644 trunk/Documentation/filesystems/relayfs.txt delete mode 100644 trunk/Documentation/input/yealink.txt delete mode 100644 trunk/arch/arm/mach-omap1/devices.c delete mode 100644 trunk/arch/arm/mach-pxa/corgi_lcd.c delete mode 100644 trunk/arch/arm/mach-s3c2410/mach-anubis.c delete mode 100644 trunk/arch/arm/plat-omap/dmtimer.c delete mode 100644 trunk/arch/arm/plat-omap/sram-fn.S delete mode 100644 trunk/arch/arm/plat-omap/sram.c delete mode 100644 trunk/arch/arm/plat-omap/sram.h create mode 100644 trunk/arch/ia64/kernel/domain.c create mode 100644 trunk/arch/sparc64/lib/mb.S delete mode 100644 trunk/drivers/acpi/parser/psloop.c delete mode 100644 trunk/drivers/acpi/utilities/utcache.c delete mode 100644 trunk/drivers/acpi/utilities/utmutex.c delete mode 100644 trunk/drivers/acpi/utilities/utstate.c delete mode 100644 trunk/drivers/firmware/dcdbas.c delete mode 100644 trunk/drivers/firmware/dcdbas.h delete mode 100644 trunk/drivers/firmware/dell_rbu.c delete mode 100644 trunk/drivers/i2c/busses/i2c-pxa.c delete mode 100644 trunk/drivers/media/video/indycam.c delete mode 100644 trunk/drivers/media/video/indycam.h delete mode 100644 trunk/drivers/media/video/saa7191.c delete mode 100644 trunk/drivers/media/video/saa7191.h delete mode 100644 trunk/drivers/net/spider_net.c delete mode 100644 trunk/drivers/net/spider_net.h delete mode 100644 trunk/drivers/net/spider_net_ethtool.c create mode 100644 trunk/drivers/pci/gen-devlist.c create mode 100644 trunk/drivers/pci/hotplug/rpaphp_vio.c create mode 100644 trunk/drivers/pci/names.c create mode 100644 trunk/drivers/pci/pci.ids delete mode 100644 trunk/drivers/scsi/raid_class.c delete mode 100644 trunk/drivers/scsi/sata_mv.c delete mode 100644 trunk/drivers/usb/input/map_to_7segment.h delete mode 100644 trunk/drivers/usb/input/yealink.c delete mode 100644 trunk/drivers/usb/input/yealink.h delete mode 100644 trunk/drivers/usb/mon/mon_dma.c delete mode 100644 trunk/drivers/usb/net/asix.c delete mode 100644 trunk/drivers/usb/net/cdc_ether.c delete mode 100644 trunk/drivers/usb/net/cdc_subset.c delete mode 100644 trunk/drivers/usb/net/gl620a.c delete mode 100644 trunk/drivers/usb/net/net1080.c delete mode 100644 trunk/drivers/usb/net/plusb.c delete mode 100644 trunk/drivers/usb/net/rndis_host.c delete mode 100644 trunk/drivers/usb/net/usbnet.h delete mode 100644 trunk/drivers/usb/net/zaurus.c delete mode 100644 trunk/drivers/usb/storage/onetouch.c delete mode 100644 trunk/drivers/usb/storage/onetouch.h delete mode 100644 trunk/drivers/video/backlight/locomolcd.c delete mode 100644 trunk/drivers/w1/w1_ds2433.c delete mode 100644 trunk/fs/relayfs/Makefile delete mode 100644 trunk/fs/relayfs/buffers.c delete mode 100644 trunk/fs/relayfs/buffers.h delete mode 100644 trunk/fs/relayfs/inode.c delete mode 100644 trunk/fs/relayfs/relay.c delete mode 100644 trunk/fs/relayfs/relay.h create mode 100644 trunk/fs/umsdos/notes delete mode 100644 trunk/fs/xfs/Makefile-linux-2.6 delete mode 100644 trunk/fs/xfs/linux-2.6/xfs_aops.h delete mode 100644 trunk/fs/xfs/quota/Makefile delete mode 100644 trunk/fs/xfs/quota/Makefile-linux-2.6 delete mode 100644 trunk/include/asm-alpha/auxvec.h delete mode 100644 trunk/include/asm-alpha/futex.h create mode 100644 trunk/include/asm-alpha/hdreg.h delete mode 100644 trunk/include/asm-arm/arch-omap/dmtimer.h delete mode 100644 trunk/include/asm-arm/arch-omap/dsp.h delete mode 100644 trunk/include/asm-arm/arch-omap/dsp_common.h delete mode 100644 trunk/include/asm-arm/arch-omap/mtd-xip.h delete mode 100644 trunk/include/asm-arm/arch-omap/omap24xx.h delete mode 100644 trunk/include/asm-arm/arch-omap/serial.h delete mode 100644 trunk/include/asm-arm/arch-pxa/i2c.h delete mode 100644 trunk/include/asm-arm/arch-s3c2410/anubis-cpld.h delete mode 100644 trunk/include/asm-arm/arch-s3c2410/anubis-irq.h delete mode 100644 trunk/include/asm-arm/arch-s3c2410/anubis-map.h delete mode 100644 trunk/include/asm-arm/auxvec.h delete mode 100644 trunk/include/asm-arm/futex.h create mode 100644 trunk/include/asm-arm/hdreg.h delete mode 100644 trunk/include/asm-arm26/auxvec.h delete mode 100644 trunk/include/asm-arm26/futex.h create mode 100644 trunk/include/asm-arm26/hdreg.h delete mode 100644 trunk/include/asm-cris/auxvec.h delete mode 100644 trunk/include/asm-cris/futex.h delete mode 100644 trunk/include/asm-frv/auxvec.h delete mode 100644 trunk/include/asm-frv/futex.h delete mode 100644 trunk/include/asm-generic/fcntl.h create mode 100644 trunk/include/asm-generic/hdreg.h delete mode 100644 trunk/include/asm-h8300/auxvec.h delete mode 100644 trunk/include/asm-h8300/futex.h create mode 100644 trunk/include/asm-h8300/hdreg.h delete mode 100644 trunk/include/asm-i386/auxvec.h delete mode 100644 trunk/include/asm-i386/futex.h create mode 100644 trunk/include/asm-i386/hdreg.h delete mode 100644 trunk/include/asm-ia64/auxvec.h delete mode 100644 trunk/include/asm-ia64/futex.h create mode 100644 trunk/include/asm-ia64/hdreg.h delete mode 100644 trunk/include/asm-m32r/auxvec.h delete mode 100644 trunk/include/asm-m32r/futex.h create mode 100644 trunk/include/asm-m32r/hdreg.h delete mode 100644 trunk/include/asm-m68k/auxvec.h delete mode 100644 trunk/include/asm-m68k/futex.h create mode 100644 trunk/include/asm-m68k/hdreg.h delete mode 100644 trunk/include/asm-m68knommu/auxvec.h delete mode 100644 trunk/include/asm-m68knommu/futex.h create mode 100644 trunk/include/asm-m68knommu/hdreg.h delete mode 100644 trunk/include/asm-mips/auxvec.h delete mode 100644 trunk/include/asm-mips/futex.h create mode 100644 trunk/include/asm-mips/hdreg.h delete mode 100644 trunk/include/asm-parisc/auxvec.h delete mode 100644 trunk/include/asm-parisc/futex.h create mode 100644 trunk/include/asm-parisc/hdreg.h delete mode 100644 trunk/include/asm-powerpc/fcntl.h delete mode 100644 trunk/include/asm-ppc/auxvec.h create mode 100644 trunk/include/asm-ppc/fcntl.h delete mode 100644 trunk/include/asm-ppc/futex.h delete mode 100644 trunk/include/asm-ppc64/auxvec.h create mode 100644 trunk/include/asm-ppc64/fcntl.h delete mode 100644 trunk/include/asm-ppc64/futex.h delete mode 100644 trunk/include/asm-s390/auxvec.h delete mode 100644 trunk/include/asm-s390/futex.h delete mode 100644 trunk/include/asm-sh/auxvec.h delete mode 100644 trunk/include/asm-sh/futex.h create mode 100644 trunk/include/asm-sh/hdreg.h delete mode 100644 trunk/include/asm-sh64/auxvec.h delete mode 100644 trunk/include/asm-sh64/futex.h create mode 100644 trunk/include/asm-sh64/hdreg.h delete mode 100644 trunk/include/asm-sparc/auxvec.h delete mode 100644 trunk/include/asm-sparc/futex.h create mode 100644 trunk/include/asm-sparc/hdreg.h delete mode 100644 trunk/include/asm-sparc64/auxvec.h delete mode 100644 trunk/include/asm-sparc64/futex.h create mode 100644 trunk/include/asm-sparc64/hdreg.h delete mode 100644 trunk/include/asm-um/auxvec.h delete mode 100644 trunk/include/asm-um/futex.h create mode 100644 trunk/include/asm-um/hdreg.h delete mode 100644 trunk/include/asm-v850/auxvec.h delete mode 100644 trunk/include/asm-v850/futex.h delete mode 100644 trunk/include/asm-x86_64/auxvec.h delete mode 100644 trunk/include/asm-x86_64/futex.h create mode 100644 trunk/include/asm-x86_64/hdreg.h delete mode 100644 trunk/include/asm-xtensa/auxvec.h create mode 100644 trunk/include/asm-xtensa/hdreg.h delete mode 100644 trunk/include/linux/auxvec.h delete mode 100644 trunk/include/linux/crc16.h delete mode 100644 trunk/include/linux/i2c-pxa.h delete mode 100644 trunk/include/linux/pci_regs.h delete mode 100644 trunk/include/linux/raid_class.h delete mode 100644 trunk/include/linux/relayfs_fs.h delete mode 100644 trunk/kernel/softlockup.c delete mode 100644 trunk/lib/crc16.c delete mode 100644 trunk/net/ipv4/netfilter/ip_conntrack_netbios_ns.c diff --git a/[refs] b/[refs] index bcde25b33510..8c4bd22a4bcc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 529980c8b0b04e8a3f6606cdc156f1f81a5d68cd +refs/heads/master: 63028aa7f581d9d4e6889f9dc06ded2534250a76 diff --git a/trunk/Documentation/DocBook/mcabook.tmpl b/trunk/Documentation/DocBook/mcabook.tmpl index 42a760cd7467..4367f4642f3d 100644 --- a/trunk/Documentation/DocBook/mcabook.tmpl +++ b/trunk/Documentation/DocBook/mcabook.tmpl @@ -96,7 +96,7 @@ Public Functions Provided -!Edrivers/mca/mca-legacy.c +!Earch/i386/kernel/mca.c diff --git a/trunk/Documentation/IPMI.txt b/trunk/Documentation/IPMI.txt index bf1cf98d2a27..84d3d4d10c17 100644 --- a/trunk/Documentation/IPMI.txt +++ b/trunk/Documentation/IPMI.txt @@ -605,13 +605,12 @@ is in the ipmi_poweroff module. When the system requests a powerdown, it will send the proper IPMI commands to do this. This is supported on several platforms. -There is a module parameter named "poweroff_powercycle" that may -either be zero (do a power down) or non-zero (do a power cycle, power -the system off, then power it on in a few seconds). Setting -ipmi_poweroff.poweroff_control=x will do the same thing on the kernel -command line. The parameter is also available via the proc filesystem -in /proc/sys/dev/ipmi/poweroff_powercycle. Note that if the system -does not support power cycling, it will always do the power off. +There is a module parameter named "poweroff_control" that may either be zero +(do a power down) or 2 (do a power cycle, power the system off, then power +it on in a few seconds). Setting ipmi_poweroff.poweroff_control=x will do +the same thing on the kernel command line. The parameter is also available +via the proc filesystem in /proc/ipmi/poweroff_control. Note that if the +system does not support power cycling, it will always to the power off. Note that if you have ACPI enabled, the system will prefer using ACPI to power off. diff --git a/trunk/Documentation/RCU/NMI-RCU.txt b/trunk/Documentation/RCU/NMI-RCU.txt deleted file mode 100644 index d0634a5c3445..000000000000 --- a/trunk/Documentation/RCU/NMI-RCU.txt +++ /dev/null @@ -1,112 +0,0 @@ -Using RCU to Protect Dynamic NMI Handlers - - -Although RCU is usually used to protect read-mostly data structures, -it is possible to use RCU to provide dynamic non-maskable interrupt -handlers, as well as dynamic irq handlers. This document describes -how to do this, drawing loosely from Zwane Mwaikambo's NMI-timer -work in "arch/i386/oprofile/nmi_timer_int.c" and in -"arch/i386/kernel/traps.c". - -The relevant pieces of code are listed below, each followed by a -brief explanation. - - static int dummy_nmi_callback(struct pt_regs *regs, int cpu) - { - return 0; - } - -The dummy_nmi_callback() function is a "dummy" NMI handler that does -nothing, but returns zero, thus saying that it did nothing, allowing -the NMI handler to take the default machine-specific action. - - static nmi_callback_t nmi_callback = dummy_nmi_callback; - -This nmi_callback variable is a global function pointer to the current -NMI handler. - - fastcall void do_nmi(struct pt_regs * regs, long error_code) - { - int cpu; - - nmi_enter(); - - cpu = smp_processor_id(); - ++nmi_count(cpu); - - if (!rcu_dereference(nmi_callback)(regs, cpu)) - default_do_nmi(regs); - - nmi_exit(); - } - -The do_nmi() function processes each NMI. It first disables preemption -in the same way that a hardware irq would, then increments the per-CPU -count of NMIs. It then invokes the NMI handler stored in the nmi_callback -function pointer. If this handler returns zero, do_nmi() invokes the -default_do_nmi() function to handle a machine-specific NMI. Finally, -preemption is restored. - -Strictly speaking, rcu_dereference() is not needed, since this code runs -only on i386, which does not need rcu_dereference() anyway. However, -it is a good documentation aid, particularly for anyone attempting to -do something similar on Alpha. - -Quick Quiz: Why might the rcu_dereference() be necessary on Alpha, - given that the code referenced by the pointer is read-only? - - -Back to the discussion of NMI and RCU... - - void set_nmi_callback(nmi_callback_t callback) - { - rcu_assign_pointer(nmi_callback, callback); - } - -The set_nmi_callback() function registers an NMI handler. Note that any -data that is to be used by the callback must be initialized up -before- -the call to set_nmi_callback(). On architectures that do not order -writes, the rcu_assign_pointer() ensures that the NMI handler sees the -initialized values. - - void unset_nmi_callback(void) - { - rcu_assign_pointer(nmi_callback, dummy_nmi_callback); - } - -This function unregisters an NMI handler, restoring the original -dummy_nmi_handler(). However, there may well be an NMI handler -currently executing on some other CPU. We therefore cannot free -up any data structures used by the old NMI handler until execution -of it completes on all other CPUs. - -One way to accomplish this is via synchronize_sched(), perhaps as -follows: - - unset_nmi_callback(); - synchronize_sched(); - kfree(my_nmi_data); - -This works because synchronize_sched() blocks until all CPUs complete -any preemption-disabled segments of code that they were executing. -Since NMI handlers disable preemption, synchronize_sched() is guaranteed -not to return until all ongoing NMI handlers exit. It is therefore safe -to free up the handler's data as soon as synchronize_sched() returns. - - -Answer to Quick Quiz - - Why might the rcu_dereference() be necessary on Alpha, given - that the code referenced by the pointer is read-only? - - Answer: The caller to set_nmi_callback() might well have - initialized some data that is to be used by the - new NMI handler. In this case, the rcu_dereference() - would be needed, because otherwise a CPU that received - an NMI just after the new handler was set might see - the pointer to the new NMI handler, but the old - pre-initialized version of the handler's data. - - More important, the rcu_dereference() makes it clear - to someone reading the code that the pointer is being - protected by RCU. diff --git a/trunk/Documentation/acpi-hotkey.txt b/trunk/Documentation/acpi-hotkey.txt index 744f1aec6553..0acdc80c30c2 100644 --- a/trunk/Documentation/acpi-hotkey.txt +++ b/trunk/Documentation/acpi-hotkey.txt @@ -35,4 +35,4 @@ created. Please use command "cat /proc/acpi/hotkey/polling_method" to retrieve it. Note: Use cmdline "acpi_generic_hotkey" to over-ride -platform-specific with generic driver. +loading any platform specific drivers. diff --git a/trunk/Documentation/cdrom/sonycd535 b/trunk/Documentation/cdrom/sonycd535 index b81e109970aa..59581a4b302a 100644 --- a/trunk/Documentation/cdrom/sonycd535 +++ b/trunk/Documentation/cdrom/sonycd535 @@ -68,8 +68,7 @@ it a better device citizen. Further thanks to Joel Katz Porfiri Claudio for patches to make the driver work with the older CDU-510/515 series, and Heiko Eissfeldt for pointing out that -the verify_area() checks were ignoring the results of said checks -(note: verify_area() has since been replaced by access_ok()). +the verify_area() checks were ignoring the results of said checks. (Acknowledgments from Ron Jeppesen in the 0.3 release:) Thanks to Corey Minyard who wrote the original CDU-31A driver on which diff --git a/trunk/Documentation/cpusets.txt b/trunk/Documentation/cpusets.txt index 47f4114fbf54..ad944c060312 100644 --- a/trunk/Documentation/cpusets.txt +++ b/trunk/Documentation/cpusets.txt @@ -60,18 +60,6 @@ all of the cpus in the system. This removes any overhead due to load balancing code trying to pull tasks outside of the cpu exclusive cpuset only to be prevented by the tasks' cpus_allowed mask. -A cpuset that is mem_exclusive restricts kernel allocations for -page, buffer and other data commonly shared by the kernel across -multiple users. All cpusets, whether mem_exclusive or not, restrict -allocations of memory for user space. This enables configuring a -system so that several independent jobs can share common kernel -data, such as file system pages, while isolating each jobs user -allocation in its own cpuset. To do this, construct a large -mem_exclusive cpuset to hold all the jobs, and construct child, -non-mem_exclusive cpusets for each individual job. Only a small -amount of typical kernel memory, such as requests from interrupt -handlers, is allowed to be taken outside even a mem_exclusive cpuset. - User level code may create and destroy cpusets by name in the cpuset virtual file system, manage the attributes and permissions of these cpusets and which CPUs and Memory Nodes are assigned to each cpuset, diff --git a/trunk/Documentation/dcdbas.txt b/trunk/Documentation/dcdbas.txt deleted file mode 100644 index e1c52e2dc361..000000000000 --- a/trunk/Documentation/dcdbas.txt +++ /dev/null @@ -1,91 +0,0 @@ -Overview - -The Dell Systems Management Base Driver provides a sysfs interface for -systems management software such as Dell OpenManage to perform system -management interrupts and host control actions (system power cycle or -power off after OS shutdown) on certain Dell systems. - -Dell OpenManage requires this driver on the following Dell PowerEdge systems: -300, 1300, 1400, 400SC, 500SC, 1500SC, 1550, 600SC, 1600SC, 650, 1655MC, -700, and 750. Other Dell software such as the open source libsmbios project -is expected to make use of this driver, and it may include the use of this -driver on other Dell systems. - -The Dell libsmbios project aims towards providing access to as much BIOS -information as possible. See http://linux.dell.com/libsmbios/main/ for -more information about the libsmbios project. - - -System Management Interrupt - -On some Dell systems, systems management software must access certain -management information via a system management interrupt (SMI). The SMI data -buffer must reside in 32-bit address space, and the physical address of the -buffer is required for the SMI. The driver maintains the memory required for -the SMI and provides a way for the application to generate the SMI. -The driver creates the following sysfs entries for systems management -software to perform these system management interrupts: - -/sys/devices/platform/dcdbas/smi_data -/sys/devices/platform/dcdbas/smi_data_buf_phys_addr -/sys/devices/platform/dcdbas/smi_data_buf_size -/sys/devices/platform/dcdbas/smi_request - -Systems management software must perform the following steps to execute -a SMI using this driver: - -1) Lock smi_data. -2) Write system management command to smi_data. -3) Write "1" to smi_request to generate a calling interface SMI or - "2" to generate a raw SMI. -4) Read system management command response from smi_data. -5) Unlock smi_data. - - -Host Control Action - -Dell OpenManage supports a host control feature that allows the administrator -to perform a power cycle or power off of the system after the OS has finished -shutting down. On some Dell systems, this host control feature requires that -a driver perform a SMI after the OS has finished shutting down. - -The driver creates the following sysfs entries for systems management software -to schedule the driver to perform a power cycle or power off host control -action after the system has finished shutting down: - -/sys/devices/platform/dcdbas/host_control_action -/sys/devices/platform/dcdbas/host_control_smi_type -/sys/devices/platform/dcdbas/host_control_on_shutdown - -Dell OpenManage performs the following steps to execute a power cycle or -power off host control action using this driver: - -1) Write host control action to be performed to host_control_action. -2) Write type of SMI that driver needs to perform to host_control_smi_type. -3) Write "1" to host_control_on_shutdown to enable host control action. -4) Initiate OS shutdown. - (Driver will perform host control SMI when it is notified that the OS - has finished shutting down.) - - -Host Control SMI Type - -The following table shows the value to write to host_control_smi_type to -perform a power cycle or power off host control action: - -PowerEdge System Host Control SMI Type ----------------- --------------------- - 300 HC_SMITYPE_TYPE1 - 1300 HC_SMITYPE_TYPE1 - 1400 HC_SMITYPE_TYPE2 - 500SC HC_SMITYPE_TYPE2 - 1500SC HC_SMITYPE_TYPE2 - 1550 HC_SMITYPE_TYPE2 - 600SC HC_SMITYPE_TYPE2 - 1600SC HC_SMITYPE_TYPE2 - 650 HC_SMITYPE_TYPE2 - 1655MC HC_SMITYPE_TYPE2 - 700 HC_SMITYPE_TYPE3 - 750 HC_SMITYPE_TYPE3 - - diff --git a/trunk/Documentation/dell_rbu.txt b/trunk/Documentation/dell_rbu.txt deleted file mode 100644 index bcfa5c35036b..000000000000 --- a/trunk/Documentation/dell_rbu.txt +++ /dev/null @@ -1,74 +0,0 @@ -Purpose: -Demonstrate the usage of the new open sourced rbu (Remote BIOS Update) driver -for updating BIOS images on Dell servers and desktops. - -Scope: -This document discusses the functionality of the rbu driver only. -It does not cover the support needed from aplications to enable the BIOS to -update itself with the image downloaded in to the memory. - -Overview: -This driver works with Dell OpenManage or Dell Update Packages for updating -the BIOS on Dell servers (starting from servers sold since 1999), desktops -and notebooks (starting from those sold in 2005). -Please go to http://support.dell.com register and you can find info on -OpenManage and Dell Update packages (DUP). - -Dell_RBU driver supports BIOS update using the monilothic image and packetized -image methods. In case of moniolithic the driver allocates a contiguous chunk -of physical pages having the BIOS image. In case of packetized the app -using the driver breaks the image in to packets of fixed sizes and the driver -would place each packet in contiguous physical memory. The driver also -maintains a link list of packets for reading them back. -If the dell_rbu driver is unloaded all the allocated memory is freed. - -The rbu driver needs to have an application which will inform the BIOS to -enable the update in the next system reboot. - -The user should not unload the rbu driver after downloading the BIOS image -or updating. - -The driver load creates the following directories under the /sys file system. -/sys/class/firmware/dell_rbu/loading -/sys/class/firmware/dell_rbu/data -/sys/devices/platform/dell_rbu/image_type -/sys/devices/platform/dell_rbu/data - -The driver supports two types of update mechanism; monolithic and packetized. -These update mechanism depends upon the BIOS currently running on the system. -Most of the Dell systems support a monolithic update where the BIOS image is -copied to a single contiguous block of physical memory. -In case of packet mechanism the single memory can be broken in smaller chuks -of contiguous memory and the BIOS image is scattered in these packets. - -By default the driver uses monolithic memory for the update type. This can be -changed to contiguous during the driver load time by specifying the load -parameter image_type=packet. This can also be changed later as below -echo packet > /sys/devices/platform/dell_rbu/image_type - -Do the steps below to download the BIOS image. -1) echo 1 > /sys/class/firmware/dell_rbu/loading -2) cp bios_image.hdr /sys/class/firmware/dell_rbu/data -3) echo 0 > /sys/class/firmware/dell_rbu/loading - -The /sys/class/firmware/dell_rbu/ entries will remain till the following is -done. -echo -1 > /sys/class/firmware/dell_rbu/loading - -Until this step is completed the drivr cannot be unloaded. - -Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to -read back the image downloaded. This is useful in case of packet update -mechanism where the above steps 1,2,3 will repeated for every packet. -By reading the /sys/devices/platform/dell_rbu/data file all packet data -downloaded can be verified in a single file. -The packets are arranged in this file one after the other in a FIFO order. - -NOTE: -This driver requires a patch for firmware_class.c which has the addition -of request_firmware_nowait_nohotplug function to wortk -Also after updating the BIOS image an user mdoe application neeeds to execute -code which message the BIOS update request to the BIOS. So on the next reboot -the BIOS knows about the new image downloaded and it updates it self. -Also don't unload the rbu drive if the image has to be updated. - diff --git a/trunk/Documentation/dvb/bt8xx.txt b/trunk/Documentation/dvb/bt8xx.txt index 4b8c326c6aac..e6b8d05bc08d 100644 --- a/trunk/Documentation/dvb/bt8xx.txt +++ b/trunk/Documentation/dvb/bt8xx.txt @@ -16,7 +16,7 @@ Enable the following options: "Device drivers" => "Multimedia devices" => "Video For Linux" => "BT848 Video For Linux" "Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices" - => "DVB for Linux" "DVB Core Support" "BT8xx based PCI cards" + => "DVB for Linux" "DVB Core Support" "Nebula/Pinnacle PCTV/TwinHan PCI Cards" 3) Loading Modules, described by two approaches =============================================== diff --git a/trunk/Documentation/exception.txt b/trunk/Documentation/exception.txt index 3cb39ade290e..f1d436993eb1 100644 --- a/trunk/Documentation/exception.txt +++ b/trunk/Documentation/exception.txt @@ -7,7 +7,7 @@ To protect itself the kernel has to verify this address. In older versions of Linux this was done with the int verify_area(int type, const void * addr, unsigned long size) -function (which has since been replaced by access_ok()). +function. This function verified that the memory area starting at address addr and of size size was accessible for the operation specified diff --git a/trunk/Documentation/feature-removal-schedule.txt b/trunk/Documentation/feature-removal-schedule.txt index 5f95d4b3cab1..363909056e46 100644 --- a/trunk/Documentation/feature-removal-schedule.txt +++ b/trunk/Documentation/feature-removal-schedule.txt @@ -25,6 +25,15 @@ Who: Pavel Machek --------------------------- +What: PCI Name Database (CONFIG_PCI_NAMES) +When: July 2005 +Why: It bloats the kernel unnecessarily, and is handled by userspace better + (pciutils supports it.) Will eliminate the need to try to keep the + pci.ids file in sync with the sf.net database all of the time. +Who: Greg Kroah-Hartman + +--------------------------- + What: io_remap_page_range() (macro or function) When: September 2005 Why: Replaced by io_remap_pfn_range() which allows more memory space @@ -42,6 +51,14 @@ Who: Adrian Bunk --------------------------- +What: register_ioctl32_conversion() / unregister_ioctl32_conversion() +When: April 2005 +Why: Replaced by ->compat_ioctl in file_operations and other method + vecors. +Who: Andi Kleen , Christoph Hellwig + +--------------------------- + What: RCU API moves to EXPORT_SYMBOL_GPL When: April 2006 Files: include/linux/rcupdate.h, kernel/rcupdate.c @@ -57,6 +74,14 @@ Who: Paul E. McKenney --------------------------- +What: remove verify_area() +When: July 2006 +Files: Various uaccess.h headers. +Why: Deprecated and redundant. access_ok() should be used instead. +Who: Jesper Juhl + +--------------------------- + What: IEEE1394 Audio and Music Data Transmission Protocol driver, Connection Management Procedures driver When: November 2005 diff --git a/trunk/Documentation/filesystems/relayfs.txt b/trunk/Documentation/filesystems/relayfs.txt deleted file mode 100644 index d24e1b0d4f39..000000000000 --- a/trunk/Documentation/filesystems/relayfs.txt +++ /dev/null @@ -1,362 +0,0 @@ - -relayfs - a high-speed data relay filesystem -============================================ - -relayfs is a filesystem designed to provide an efficient mechanism for -tools and facilities to relay large and potentially sustained streams -of data from kernel space to user space. - -The main abstraction of relayfs is the 'channel'. A channel consists -of a set of per-cpu kernel buffers each represented by a file in the -relayfs filesystem. Kernel clients write into a channel using -efficient write functions which automatically log to the current cpu's -channel buffer. User space applications mmap() the per-cpu files and -retrieve the data as it becomes available. - -The format of the data logged into the channel buffers is completely -up to the relayfs client; relayfs does however provide hooks which -allow clients to impose some stucture on the buffer data. Nor does -relayfs implement any form of data filtering - this also is left to -the client. The purpose is to keep relayfs as simple as possible. - -This document provides an overview of the relayfs API. The details of -the function parameters are documented along with the functions in the -filesystem code - please see that for details. - -Semantics -========= - -Each relayfs channel has one buffer per CPU, each buffer has one or -more sub-buffers. Messages are written to the first sub-buffer until -it is too full to contain a new message, in which case it it is -written to the next (if available). Messages are never split across -sub-buffers. At this point, userspace can be notified so it empties -the first sub-buffer, while the kernel continues writing to the next. - -When notified that a sub-buffer is full, the kernel knows how many -bytes of it are padding i.e. unused. Userspace can use this knowledge -to copy only valid data. - -After copying it, userspace can notify the kernel that a sub-buffer -has been consumed. - -relayfs can operate in a mode where it will overwrite data not yet -collected by userspace, and not wait for it to consume it. - -relayfs itself does not provide for communication of such data between -userspace and kernel, allowing the kernel side to remain simple and not -impose a single interface on userspace. It does provide a separate -helper though, described below. - -klog, relay-app & librelay -========================== - -relayfs itself is ready to use, but to make things easier, two -additional systems are provided. klog is a simple wrapper to make -writing formatted text or raw data to a channel simpler, regardless of -whether a channel to write into exists or not, or whether relayfs is -compiled into the kernel or is configured as a module. relay-app is -the kernel counterpart of userspace librelay.c, combined these two -files provide glue to easily stream data to disk, without having to -bother with housekeeping. klog and relay-app can be used together, -with klog providing high-level logging functions to the kernel and -relay-app taking care of kernel-user control and disk-logging chores. - -It is possible to use relayfs without relay-app & librelay, but you'll -have to implement communication between userspace and kernel, allowing -both to convey the state of buffers (full, empty, amount of padding). - -klog, relay-app and librelay can be found in the relay-apps tarball on -http://relayfs.sourceforge.net - -The relayfs user space API -========================== - -relayfs implements basic file operations for user space access to -relayfs channel buffer data. Here are the file operations that are -available and some comments regarding their behavior: - -open() enables user to open an _existing_ buffer. - -mmap() results in channel buffer being mapped into the caller's - memory space. Note that you can't do a partial mmap - you must - map the entire file, which is NRBUF * SUBBUFSIZE. - -read() read the contents of a channel buffer. The bytes read are - 'consumed' by the reader i.e. they won't be available again - to subsequent reads. If the channel is being used in - no-overwrite mode (the default), it can be read at any time - even if there's an active kernel writer. If the channel is - being used in overwrite mode and there are active channel - writers, results may be unpredictable - users should make - sure that all logging to the channel has ended before using - read() with overwrite mode. - -poll() POLLIN/POLLRDNORM/POLLERR supported. User applications are - notified when sub-buffer boundaries are crossed. - -close() decrements the channel buffer's refcount. When the refcount - reaches 0 i.e. when no process or kernel client has the buffer - open, the channel buffer is freed. - - -In order for a user application to make use of relayfs files, the -relayfs filesystem must be mounted. For example, - - mount -t relayfs relayfs /mnt/relay - -NOTE: relayfs doesn't need to be mounted for kernel clients to create - or use channels - it only needs to be mounted when user space - applications need access to the buffer data. - - -The relayfs kernel API -====================== - -Here's a summary of the API relayfs provides to in-kernel clients: - - - channel management functions: - - relay_open(base_filename, parent, subbuf_size, n_subbufs, - callbacks) - relay_close(chan) - relay_flush(chan) - relay_reset(chan) - relayfs_create_dir(name, parent) - relayfs_remove_dir(dentry) - - channel management typically called on instigation of userspace: - - relay_subbufs_consumed(chan, cpu, subbufs_consumed) - - write functions: - - relay_write(chan, data, length) - __relay_write(chan, data, length) - relay_reserve(chan, length) - - callbacks: - - subbuf_start(buf, subbuf, prev_subbuf, prev_padding) - buf_mapped(buf, filp) - buf_unmapped(buf, filp) - - helper functions: - - relay_buf_full(buf) - subbuf_start_reserve(buf, length) - - -Creating a channel ------------------- - -relay_open() is used to create a channel, along with its per-cpu -channel buffers. Each channel buffer will have an associated file -created for it in the relayfs filesystem, which can be opened and -mmapped from user space if desired. The files are named -basename0...basenameN-1 where N is the number of online cpus, and by -default will be created in the root of the filesystem. If you want a -directory structure to contain your relayfs files, you can create it -with relayfs_create_dir() and pass the parent directory to -relay_open(). Clients are responsible for cleaning up any directory -structure they create when the channel is closed - use -relayfs_remove_dir() for that. - -The total size of each per-cpu buffer is calculated by multiplying the -number of sub-buffers by the sub-buffer size passed into relay_open(). -The idea behind sub-buffers is that they're basically an extension of -double-buffering to N buffers, and they also allow applications to -easily implement random-access-on-buffer-boundary schemes, which can -be important for some high-volume applications. The number and size -of sub-buffers is completely dependent on the application and even for -the same application, different conditions will warrant different -values for these parameters at different times. Typically, the right -values to use are best decided after some experimentation; in general, -though, it's safe to assume that having only 1 sub-buffer is a bad -idea - you're guaranteed to either overwrite data or lose events -depending on the channel mode being used. - -Channel 'modes' ---------------- - -relayfs channels can be used in either of two modes - 'overwrite' or -'no-overwrite'. The mode is entirely determined by the implementation -of the subbuf_start() callback, as described below. In 'overwrite' -mode, also known as 'flight recorder' mode, writes continuously cycle -around the buffer and will never fail, but will unconditionally -overwrite old data regardless of whether it's actually been consumed. -In no-overwrite mode, writes will fail i.e. data will be lost, if the -number of unconsumed sub-buffers equals the total number of -sub-buffers in the channel. It should be clear that if there is no -consumer or if the consumer can't consume sub-buffers fast enought, -data will be lost in either case; the only difference is whether data -is lost from the beginning or the end of a buffer. - -As explained above, a relayfs channel is made of up one or more -per-cpu channel buffers, each implemented as a circular buffer -subdivided into one or more sub-buffers. Messages are written into -the current sub-buffer of the channel's current per-cpu buffer via the -write functions described below. Whenever a message can't fit into -the current sub-buffer, because there's no room left for it, the -client is notified via the subbuf_start() callback that a switch to a -new sub-buffer is about to occur. The client uses this callback to 1) -initialize the next sub-buffer if appropriate 2) finalize the previous -sub-buffer if appropriate and 3) return a boolean value indicating -whether or not to actually go ahead with the sub-buffer switch. - -To implement 'no-overwrite' mode, the userspace client would provide -an implementation of the subbuf_start() callback something like the -following: - -static int subbuf_start(struct rchan_buf *buf, - void *subbuf, - void *prev_subbuf, - unsigned int prev_padding) -{ - if (prev_subbuf) - *((unsigned *)prev_subbuf) = prev_padding; - - if (relay_buf_full(buf)) - return 0; - - subbuf_start_reserve(buf, sizeof(unsigned int)); - - return 1; -} - -If the current buffer is full i.e. all sub-buffers remain unconsumed, -the callback returns 0 to indicate that the buffer switch should not -occur yet i.e. until the consumer has had a chance to read the current -set of ready sub-buffers. For the relay_buf_full() function to make -sense, the consumer is reponsible for notifying relayfs when -sub-buffers have been consumed via relay_subbufs_consumed(). Any -subsequent attempts to write into the buffer will again invoke the -subbuf_start() callback with the same parameters; only when the -consumer has consumed one or more of the ready sub-buffers will -relay_buf_full() return 0, in which case the buffer switch can -continue. - -The implementation of the subbuf_start() callback for 'overwrite' mode -would be very similar: - -static int subbuf_start(struct rchan_buf *buf, - void *subbuf, - void *prev_subbuf, - unsigned int prev_padding) -{ - if (prev_subbuf) - *((unsigned *)prev_subbuf) = prev_padding; - - subbuf_start_reserve(buf, sizeof(unsigned int)); - - return 1; -} - -In this case, the relay_buf_full() check is meaningless and the -callback always returns 1, causing the buffer switch to occur -unconditionally. It's also meaningless for the client to use the -relay_subbufs_consumed() function in this mode, as it's never -consulted. - -The default subbuf_start() implementation, used if the client doesn't -define any callbacks, or doesn't define the subbuf_start() callback, -implements the simplest possible 'no-overwrite' mode i.e. it does -nothing but return 0. - -Header information can be reserved at the beginning of each sub-buffer -by calling the subbuf_start_reserve() helper function from within the -subbuf_start() callback. This reserved area can be used to store -whatever information the client wants. In the example above, room is -reserved in each sub-buffer to store the padding count for that -sub-buffer. This is filled in for the previous sub-buffer in the -subbuf_start() implementation; the padding value for the previous -sub-buffer is passed into the subbuf_start() callback along with a -pointer to the previous sub-buffer, since the padding value isn't -known until a sub-buffer is filled. The subbuf_start() callback is -also called for the first sub-buffer when the channel is opened, to -give the client a chance to reserve space in it. In this case the -previous sub-buffer pointer passed into the callback will be NULL, so -the client should check the value of the prev_subbuf pointer before -writing into the previous sub-buffer. - -Writing to a channel --------------------- - -kernel clients write data into the current cpu's channel buffer using -relay_write() or __relay_write(). relay_write() is the main logging -function - it uses local_irqsave() to protect the buffer and should be -used if you might be logging from interrupt context. If you know -you'll never be logging from interrupt context, you can use -__relay_write(), which only disables preemption. These functions -don't return a value, so you can't determine whether or not they -failed - the assumption is that you wouldn't want to check a return -value in the fast logging path anyway, and that they'll always succeed -unless the buffer is full and no-overwrite mode is being used, in -which case you can detect a failed write in the subbuf_start() -callback by calling the relay_buf_full() helper function. - -relay_reserve() is used to reserve a slot in a channel buffer which -can be written to later. This would typically be used in applications -that need to write directly into a channel buffer without having to -stage data in a temporary buffer beforehand. Because the actual write -may not happen immediately after the slot is reserved, applications -using relay_reserve() can keep a count of the number of bytes actually -written, either in space reserved in the sub-buffers themselves or as -a separate array. See the 'reserve' example in the relay-apps tarball -at http://relayfs.sourceforge.net for an example of how this can be -done. Because the write is under control of the client and is -separated from the reserve, relay_reserve() doesn't protect the buffer -at all - it's up to the client to provide the appropriate -synchronization when using relay_reserve(). - -Closing a channel ------------------ - -The client calls relay_close() when it's finished using the channel. -The channel and its associated buffers are destroyed when there are no -longer any references to any of the channel buffers. relay_flush() -forces a sub-buffer switch on all the channel buffers, and can be used -to finalize and process the last sub-buffers before the channel is -closed. - -Misc ----- - -Some applications may want to keep a channel around and re-use it -rather than open and close a new channel for each use. relay_reset() -can be used for this purpose - it resets a channel to its initial -state without reallocating channel buffer memory or destroying -existing mappings. It should however only be called when it's safe to -do so i.e. when the channel isn't currently being written to. - -Finally, there are a couple of utility callbacks that can be used for -different purposes. buf_mapped() is called whenever a channel buffer -is mmapped from user space and buf_unmapped() is called when it's -unmapped. The client can use this notification to trigger actions -within the kernel application, such as enabling/disabling logging to -the channel. - - -Resources -========= - -For news, example code, mailing list, etc. see the relayfs homepage: - - http://relayfs.sourceforge.net - - -Credits -======= - -The ideas and specs for relayfs came about as a result of discussions -on tracing involving the following: - -Michel Dagenais -Richard Moore -Bob Wisniewski -Karim Yaghmour -Tom Zanussi - -Also thanks to Hubertus Franke for a lot of useful suggestions and bug -reports. diff --git a/trunk/Documentation/i386/boot.txt b/trunk/Documentation/i386/boot.txt index 10312bebe55d..1c48f0eba6fb 100644 --- a/trunk/Documentation/i386/boot.txt +++ b/trunk/Documentation/i386/boot.txt @@ -2,7 +2,7 @@ ---------------------------- H. Peter Anvin - Last update 2005-09-02 + Last update 2002-01-01 On the i386 platform, the Linux kernel uses a rather complicated boot convention. This has evolved partially due to historical aspects, as @@ -34,8 +34,6 @@ Protocol 2.02: (Kernel 2.4.0-test3-pre3) New command line protocol. Protocol 2.03: (Kernel 2.4.18-pre1) Explicitly makes the highest possible initrd address available to the bootloader. -Protocol 2.04: (Kernel 2.6.14) Extend the syssize field to four bytes. - **** MEMORY LAYOUT @@ -105,9 +103,10 @@ The header looks like: Offset Proto Name Meaning /Size -01F1/1 ALL(1 setup_sects The size of the setup in sectors +01F1/1 ALL setup_sects The size of the setup in sectors 01F2/2 ALL root_flags If set, the root is mounted readonly -01F4/4 2.04+(2 syssize The size of the 32-bit code in 16-byte paras +01F4/2 ALL syssize DO NOT USE - for bootsect.S use only +01F6/2 ALL swap_dev DO NOT USE - obsolete 01F8/2 ALL ram_size DO NOT USE - for bootsect.S use only 01FA/2 ALL vid_mode Video mode control 01FC/2 ALL root_dev Default root device number @@ -130,12 +129,8 @@ Offset Proto Name Meaning 0228/4 2.02+ cmd_line_ptr 32-bit pointer to the kernel command line 022C/4 2.03+ initrd_addr_max Highest legal initrd address -(1) For backwards compatibility, if the setup_sects field contains 0, the - real value is 4. - -(2) For boot protocol prior to 2.04, the upper two bytes of the syssize - field are unusable, which means the size of a bzImage kernel - cannot be determined. +For backwards compatibility, if the setup_sects field contains 0, the +real value is 4. If the "HdrS" (0x53726448) magic number is not found at offset 0x202, the boot protocol version is "old". Loading an old kernel, the @@ -235,16 +230,12 @@ loader to communicate with the kernel. Some of its options are also relevant to the boot loader itself, see "special command line options" below. -The kernel command line is a null-terminated string currently up to -255 characters long, plus the final null. A string that is too long -will be automatically truncated by the kernel, a boot loader may allow -a longer command line to be passed to permit future kernels to extend -this limit. +The kernel command line is a null-terminated string up to 255 +characters long, plus the final null. If the boot protocol version is 2.02 or later, the address of the kernel command line is given by the header field cmd_line_ptr (see -above.) This address can be anywhere between the end of the setup -heap and 0xA0000. +above.) If the protocol version is *not* 2.02 or higher, the kernel command line is entered using the following protocol: @@ -264,7 +255,7 @@ command line is entered using the following protocol: **** SAMPLE BOOT CONFIGURATION As a sample configuration, assume the following layout of the real -mode segment (this is a typical, and recommended layout): +mode segment: 0x0000-0x7FFF Real mode kernel 0x8000-0x8FFF Stack and heap @@ -321,9 +312,9 @@ Such a boot loader should enter the following fields in the header: **** LOADING THE REST OF THE KERNEL -The 32-bit (non-real-mode) kernel starts at offset (setup_sects+1)*512 -in the kernel file (again, if setup_sects == 0 the real value is 4.) -It should be loaded at address 0x10000 for Image/zImage kernels and +The non-real-mode kernel starts at offset (setup_sects+1)*512 in the +kernel file (again, if setup_sects == 0 the real value is 4.) It +should be loaded at address 0x10000 for Image/zImage kernels and 0x100000 for bzImage kernels. The kernel is a bzImage kernel if the protocol >= 2.00 and the 0x01 diff --git a/trunk/Documentation/ibm-acpi.txt b/trunk/Documentation/ibm-acpi.txt index 8b3fd82b2ce7..c437b1aeff55 100644 --- a/trunk/Documentation/ibm-acpi.txt +++ b/trunk/Documentation/ibm-acpi.txt @@ -1,16 +1,16 @@ IBM ThinkPad ACPI Extras Driver - Version 0.12 - 17 August 2005 + Version 0.8 + 8 November 2004 Borislav Deianov http://ibm-acpi.sf.net/ -This is a Linux ACPI driver for the IBM ThinkPad laptops. It supports -various features of these laptops which are accessible through the -ACPI framework but not otherwise supported by the generic Linux ACPI -drivers. +This is a Linux ACPI driver for the IBM ThinkPad laptops. It aims to +support various features of these laptops which are accessible through +the ACPI framework but not otherwise supported by the generic Linux +ACPI drivers. Status @@ -25,14 +25,9 @@ detailed description): - ThinkLight on and off - limited docking and undocking - UltraBay eject - - CMOS control - - LED control - - ACPI sounds - - temperature sensors - - Experimental: embedded controller register dump - - Experimental: LCD brightness control - - Experimental: volume control - - Experimental: fan speed, fan enable/disable + - Experimental: CMOS control + - Experimental: LED control + - Experimental: ACPI sounds A compatibility table by model and feature is maintained on the web site, http://ibm-acpi.sf.net/. I appreciate any success or failure @@ -96,12 +91,12 @@ driver is still in the alpha stage, the exact proc file format and commands supported by the various features is guaranteed to change frequently. -Driver version -- /proc/acpi/ibm/driver ---------------------------------------- +Driver Version -- /proc/acpi/ibm/driver +-------------------------------------- The driver name and version. No commands can be written to this file. -Hot keys -- /proc/acpi/ibm/hotkey +Hot Keys -- /proc/acpi/ibm/hotkey --------------------------------- Without this driver, only the Fn-F4 key (sleep button) generates an @@ -193,7 +188,7 @@ and, on the X40, video corruption. By disabling automatic switching, the flickering or video corruption can be avoided. The video_switch command cycles through the available video outputs -(it simulates the behavior of Fn-F7). +(it sumulates the behavior of Fn-F7). Video expansion can be toggled through this feature. This controls whether the display is expanded to fill the entire LCD screen when a @@ -206,12 +201,6 @@ Fn-F7 from working. This also disables the video output switching features of this driver, as it uses the same ACPI methods as Fn-F7. Video switching on the console should still work. -UPDATE: There's now a patch for the X.org Radeon driver which -addresses this issue. Some people are reporting success with the patch -while others are still having problems. For more information: - -https://bugs.freedesktop.org/show_bug.cgi?id=2000 - ThinkLight control -- /proc/acpi/ibm/light ------------------------------------------ @@ -222,7 +211,7 @@ models which do not make the status available will show it as echo on > /proc/acpi/ibm/light echo off > /proc/acpi/ibm/light -Docking / undocking -- /proc/acpi/ibm/dock +Docking / Undocking -- /proc/acpi/ibm/dock ------------------------------------------ Docking and undocking (e.g. with the X4 UltraBase) requires some @@ -239,15 +228,11 @@ NOTE: These events will only be generated if the laptop was docked when originally booted. This is due to the current lack of support for hot plugging of devices in the Linux ACPI framework. If the laptop was booted while not in the dock, the following message is shown in the -logs: - - Mar 17 01:42:34 aero kernel: ibm_acpi: dock device not present - -In this case, no dock-related events are generated but the dock and -undock commands described below still work. They can be executed -manually or triggered by Fn key combinations (see the example acpid -configuration files included in the driver tarball package available -on the web site). +logs: "ibm_acpi: dock device not present". No dock-related events are +generated but the dock and undock commands described below still +work. They can be executed manually or triggered by Fn key +combinations (see the example acpid configuration files included in +the driver tarball package available on the web site). When the eject request button on the dock is pressed, the first event above is generated. The handler for this event should issue the @@ -282,7 +267,7 @@ the only docking stations currently supported are the X-series UltraBase docks and "dumb" port replicators like the Mini Dock (the latter don't need any ACPI support, actually). -UltraBay eject -- /proc/acpi/ibm/bay +UltraBay Eject -- /proc/acpi/ibm/bay ------------------------------------ Inserting or ejecting an UltraBay device requires some actions to be @@ -299,11 +284,8 @@ when the laptop was originally booted (on the X series, the UltraBay is in the dock, so it may not be present if the laptop was undocked). This is due to the current lack of support for hot plugging of devices in the Linux ACPI framework. If the laptop was booted without the -UltraBay, the following message is shown in the logs: - - Mar 17 01:42:34 aero kernel: ibm_acpi: bay device not present - -In this case, no bay-related events are generated but the eject +UltraBay, the following message is shown in the logs: "ibm_acpi: bay +device not present". No bay-related events are generated but the eject command described below still works. It can be executed manually or triggered by a hot key combination. @@ -324,33 +306,22 @@ necessary to enable the UltraBay device (e.g. call idectl). The contents of the /proc/acpi/ibm/bay file shows the current status of the UltraBay, as provided by the ACPI framework. -EXPERIMENTAL warm eject support on the 600e/x, A22p and A3x (To use -this feature, you need to supply the experimental=1 parameter when -loading the module): - -These models do not have a button near the UltraBay device to request -a hot eject but rather require the laptop to be put to sleep -(suspend-to-ram) before the bay device is ejected or inserted). -The sequence of steps to eject the device is as follows: - - echo eject > /proc/acpi/ibm/bay - put the ThinkPad to sleep - remove the drive - resume from sleep - cat /proc/acpi/ibm/bay should show that the drive was removed - -On the A3x, both the UltraBay 2000 and UltraBay Plus devices are -supported. Use "eject2" instead of "eject" for the second bay. +Experimental Features +--------------------- -Note: the UltraBay eject support on the 600e/x, A22p and A3x is -EXPERIMENTAL and may not work as expected. USE WITH CAUTION! +The following features are marked experimental because using them +involves guessing the correct values of some parameters. Guessing +incorrectly may have undesirable effects like crashing your +ThinkPad. USE THESE WITH CAUTION! To activate them, you'll need to +supply the experimental=1 parameter when loading the module. -CMOS control -- /proc/acpi/ibm/cmos ------------------------------------ +Experimental: CMOS control - /proc/acpi/ibm/cmos +------------------------------------------------ This feature is used internally by the ACPI firmware to control the -ThinkLight on most newer ThinkPad models. It may also control LCD -brightness, sounds volume and more, but only on some models. +ThinkLight on most newer ThinkPad models. It appears that it can also +control LCD brightness, sounds volume and more, but only on some +models. The commands are non-negative integer numbers: @@ -359,9 +330,10 @@ The commands are non-negative integer numbers: echo 2 >/proc/acpi/ibm/cmos ... -The range of valid numbers is 0 to 21, but not all have an effect and -the behavior varies from model to model. Here is the behavior on the -X40 (tpb is the ThinkPad Buttons utility): +The range of numbers which are used internally by various models is 0 +to 21, but it's possible that numbers outside this range have +interesting behavior. Here is the behavior on the X40 (tpb is the +ThinkPad Buttons utility): 0 - no effect but tpb reports "Volume down" 1 - no effect but tpb reports "Volume up" @@ -374,18 +346,26 @@ X40 (tpb is the ThinkPad Buttons utility): 13 - ThinkLight off 14 - no effect but tpb reports ThinkLight status change -LED control -- /proc/acpi/ibm/led ---------------------------------- +If you try this feature, please send me a report similar to the +above. On models which allow control of LCD brightness or sound +volume, I'd like to provide this functionality in an user-friendly +way, but first I need a way to identify the models which this is +possible. + +Experimental: LED control - /proc/acpi/ibm/LED +---------------------------------------------- Some of the LED indicators can be controlled through this feature. The available commands are: - echo ' on' >/proc/acpi/ibm/led - echo ' off' >/proc/acpi/ibm/led - echo ' blink' >/proc/acpi/ibm/led + echo on >/proc/acpi/ibm/led + echo off >/proc/acpi/ibm/led + echo blink >/proc/acpi/ibm/led -The range is 0 to 7. The set of LEDs that can be -controlled varies from model to model. Here is the mapping on the X40: +The parameter is a non-negative integer. The range of LED +numbers used internally by various models is 0 to 7 but it's possible +that numbers outside this range are also valid. Here is the mapping on +the X40: 0 - power 1 - battery (orange) @@ -396,224 +376,49 @@ controlled varies from model to model. Here is the mapping on the X40: All of the above can be turned on and off and can be made to blink. -ACPI sounds -- /proc/acpi/ibm/beep ----------------------------------- +If you try this feature, please send me a report similar to the +above. I'd like to provide this functionality in an user-friendly way, +but first I need to identify the which numbers correspond to which +LEDs on various models. + +Experimental: ACPI sounds - /proc/acpi/ibm/beep +----------------------------------------------- The BEEP method is used internally by the ACPI firmware to provide -audible alerts in various situations. This feature allows the same +audible alerts in various situtation. This feature allows the same sounds to be triggered manually. The commands are non-negative integer numbers: - echo >/proc/acpi/ibm/beep + echo 0 >/proc/acpi/ibm/beep + echo 1 >/proc/acpi/ibm/beep + echo 2 >/proc/acpi/ibm/beep + ... -The valid range is 0 to 17. Not all numbers trigger sounds -and the sounds vary from model to model. Here is the behavior on the -X40: +The range of numbers which are used internally by various models is 0 +to 17, but it's possible that numbers outside this range are also +valid. Here is the behavior on the X40: - 0 - stop a sound in progress (but use 17 to stop 16) - 2 - two beeps, pause, third beep ("low battery") + 2 - two beeps, pause, third beep 3 - single beep - 4 - high, followed by low-pitched beep ("unable") + 4 - "unable" 5 - single beep - 6 - very high, followed by high-pitched beep ("AC/DC") + 6 - "AC/DC" 7 - high-pitched beep 9 - three short beeps 10 - very long beep 12 - low-pitched beep - 15 - three high-pitched beeps repeating constantly, stop with 0 - 16 - one medium-pitched beep repeating constantly, stop with 17 - 17 - stop 16 - -Temperature sensors -- /proc/acpi/ibm/thermal ---------------------------------------------- - -Most ThinkPads include six or more separate temperature sensors but -only expose the CPU temperature through the standard ACPI methods. -This feature shows readings from up to eight different sensors. Some -readings may not be valid, e.g. may show large negative values. For -example, on the X40, a typical output may be: - -temperatures: 42 42 45 41 36 -128 33 -128 - -Thomas Gruber took his R51 apart and traced all six active sensors in -his laptop (the location of sensors may vary on other models): - -1: CPU -2: Mini PCI Module -3: HDD -4: GPU -5: Battery -6: N/A -7: Battery -8: N/A - -No commands can be written to this file. - -EXPERIMENTAL: Embedded controller reigster dump -- /proc/acpi/ibm/ecdump ------------------------------------------------------------------------- - -This feature is marked EXPERIMENTAL because the implementation -directly accesses hardware registers and may not work as expected. USE -WITH CAUTION! To use this feature, you need to supply the -experimental=1 parameter when loading the module. - -This feature dumps the values of 256 embedded controller -registers. Values which have changed since the last time the registers -were dumped are marked with a star: - -[root@x40 ibm-acpi]# cat /proc/acpi/ibm/ecdump -EC +00 +01 +02 +03 +04 +05 +06 +07 +08 +09 +0a +0b +0c +0d +0e +0f -EC 0x00: a7 47 87 01 fe 96 00 08 01 00 cb 00 00 00 40 00 -EC 0x10: 00 00 ff ff f4 3c 87 09 01 ff 42 01 ff ff 0d 00 -EC 0x20: 00 00 00 00 00 00 00 00 00 00 00 03 43 00 00 80 -EC 0x30: 01 07 1a 00 30 04 00 00 *85 00 00 10 00 50 00 00 -EC 0x40: 00 00 00 00 00 00 14 01 00 04 00 00 00 00 00 00 -EC 0x50: 00 c0 02 0d 00 01 01 02 02 03 03 03 03 *bc *02 *bc -EC 0x60: *02 *bc *02 00 00 00 00 00 00 00 00 00 00 00 00 00 -EC 0x70: 00 00 00 00 00 12 30 40 *24 *26 *2c *27 *20 80 *1f 80 -EC 0x80: 00 00 00 06 *37 *0e 03 00 00 00 0e 07 00 00 00 00 -EC 0x90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -EC 0xa0: *ff 09 ff 09 ff ff *64 00 *00 *00 *a2 41 *ff *ff *e0 00 -EC 0xb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -EC 0xc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -EC 0xd0: 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -EC 0xe0: 00 00 00 00 00 00 00 00 11 20 49 04 24 06 55 03 -EC 0xf0: 31 55 48 54 35 38 57 57 08 2f 45 73 07 65 6c 1a - -This feature can be used to determine the register holding the fan -speed on some models. To do that, do the following: - - - make sure the battery is fully charged - - make sure the fan is running - - run 'cat /proc/acpi/ibm/ecdump' several times, once per second or so - -The first step makes sure various charging-related values don't -vary. The second ensures that the fan-related values do vary, since -the fan speed fluctuates a bit. The third will (hopefully) mark the -fan register with a star: - -[root@x40 ibm-acpi]# cat /proc/acpi/ibm/ecdump -EC +00 +01 +02 +03 +04 +05 +06 +07 +08 +09 +0a +0b +0c +0d +0e +0f -EC 0x00: a7 47 87 01 fe 96 00 08 01 00 cb 00 00 00 40 00 -EC 0x10: 00 00 ff ff f4 3c 87 09 01 ff 42 01 ff ff 0d 00 -EC 0x20: 00 00 00 00 00 00 00 00 00 00 00 03 43 00 00 80 -EC 0x30: 01 07 1a 00 30 04 00 00 85 00 00 10 00 50 00 00 -EC 0x40: 00 00 00 00 00 00 14 01 00 04 00 00 00 00 00 00 -EC 0x50: 00 c0 02 0d 00 01 01 02 02 03 03 03 03 bc 02 bc -EC 0x60: 02 bc 02 00 00 00 00 00 00 00 00 00 00 00 00 00 -EC 0x70: 00 00 00 00 00 12 30 40 24 27 2c 27 21 80 1f 80 -EC 0x80: 00 00 00 06 *be 0d 03 00 00 00 0e 07 00 00 00 00 -EC 0x90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -EC 0xa0: ff 09 ff 09 ff ff 64 00 00 00 a2 41 ff ff e0 00 -EC 0xb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -EC 0xc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -EC 0xd0: 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -EC 0xe0: 00 00 00 00 00 00 00 00 11 20 49 04 24 06 55 03 -EC 0xf0: 31 55 48 54 35 38 57 57 08 2f 45 73 07 65 6c 1a - -Another set of values that varies often is the temperature -readings. Since temperatures don't change vary fast, you can take -several quick dumps to eliminate them. - -You can use a similar method to figure out the meaning of other -embedded controller registers - e.g. make sure nothing else changes -except the charging or discharging battery to determine which -registers contain the current battery capacity, etc. If you experiment -with this, do send me your results (including some complete dumps with -a description of the conditions when they were taken.) - -EXPERIMENTAL: LCD brightness control -- /proc/acpi/ibm/brightness ------------------------------------------------------------------ - -This feature is marked EXPERIMENTAL because the implementation -directly accesses hardware registers and may not work as expected. USE -WITH CAUTION! To use this feature, you need to supply the -experimental=1 parameter when loading the module. - -This feature allows software control of the LCD brightness on ThinkPad -models which don't have a hardware brightness slider. The available -commands are: - - echo up >/proc/acpi/ibm/brightness - echo down >/proc/acpi/ibm/brightness - echo 'level ' >/proc/acpi/ibm/brightness - -The number range is 0 to 7, although not all of them may be -distinct. The current brightness level is shown in the file. - -EXPERIMENTAL: Volume control -- /proc/acpi/ibm/volume ------------------------------------------------------ - -This feature is marked EXPERIMENTAL because the implementation -directly accesses hardware registers and may not work as expected. USE -WITH CAUTION! To use this feature, you need to supply the -experimental=1 parameter when loading the module. - -This feature allows volume control on ThinkPad models which don't have -a hardware volume knob. The available commands are: - - echo up >/proc/acpi/ibm/volume - echo down >/proc/acpi/ibm/volume - echo mute >/proc/acpi/ibm/volume - echo 'level ' >/proc/acpi/ibm/volume - -The number range is 0 to 15 although not all of them may be -distinct. The unmute the volume after the mute command, use either the -up or down command (the level command will not unmute the volume). -The current volume level and mute state is shown in the file. - -EXPERIMENTAL: fan speed, fan enable/disable -- /proc/acpi/ibm/fan ------------------------------------------------------------------ - -This feature is marked EXPERIMENTAL because the implementation -directly accesses hardware registers and may not work as expected. USE -WITH CAUTION! To use this feature, you need to supply the -experimental=1 parameter when loading the module. - -This feature attempts to show the current fan speed. The speed is read -directly from the hardware registers of the embedded controller. This -is known to work on later R, T and X series ThinkPads but may show a -bogus value on other models. - -The fan may be enabled or disabled with the following commands: - - echo enable >/proc/acpi/ibm/fan - echo disable >/proc/acpi/ibm/fan - -WARNING WARNING WARNING: do not leave the fan disabled unless you are -monitoring the temperature sensor readings and you are ready to enable -it if necessary to avoid overheating. - -The fan only runs if it's enabled *and* the various temperature -sensors which control it read high enough. On the X40, this seems to -depend on the CPU and HDD temperatures. Specifically, the fan is -turned on when either the CPU temperature climbs to 56 degrees or the -HDD temperature climbs to 46 degrees. The fan is turned off when the -CPU temperature drops to 49 degrees and the HDD temperature drops to -41 degrees. These thresholds cannot currently be controlled. - -On the X31 and X40 (and ONLY on those models), the fan speed can be -controlled to a certain degree. Once the fan is running, it can be -forced to run faster or slower with the following command: - - echo 'speed ' > /proc/acpi/ibm/thermal - -The sustainable range of fan speeds on the X40 appears to be from -about 3700 to about 7350. Values outside this range either do not have -any effect or the fan speed eventually settles somewhere in that -range. The fan cannot be stopped or started with this command. - -On the 570, temperature readings are not available through this -feature and the fan control works a little differently. The fan speed -is reported in levels from 0 (off) to 7 (max) and can be controlled -with the following command: - echo 'level ' > /proc/acpi/ibm/thermal +(I've only been able to identify a couple of them). +If you try this feature, please send me a report similar to the +above. I'd like to provide this functionality in an user-friendly way, +but first I need to identify the which numbers correspond to which +sounds on various models. -Multiple Commands, Module Parameters ------------------------------------- + +Multiple Command, Module Parameters +----------------------------------- Multiple commands can be written to the proc files in one shot by separating them with commas, for example: @@ -646,19 +451,24 @@ scripts (included with ibm-acpi for completeness): /usr/local/sbin/laptop_mode -- from the Linux kernel source distribution, see Documentation/laptop-mode.txt /sbin/service -- comes with Redhat/Fedora distributions - /usr/sbin/hibernate -- from the Software Suspend 2 distribution, - see http://softwaresuspend.berlios.de/ -Toan T Nguyen notes that Suse uses the -powersave program to suspend ('powersave --suspend-to-ram') or -hibernate ('powersave --suspend-to-disk'). This means that the -hibernate script is not needed on that distribution. +Toan T Nguyen has written a SuSE powersave +script for the X20, included in config/usr/sbin/ibm_hotkeys_X20 Henrik Brix Andersen has written a Gentoo ACPI event handler script for the X31. You can get the latest version from http://dev.gentoo.org/~brix/files/x31.sh David Schweikert has written an alternative blank.sh -script which works on Debian systems. This scripts has now been -extended to also work on Fedora systems and included as the default -blank.sh in the distribution. +script which works on Debian systems, included in +configs/etc/acpi/actions/blank-debian.sh + + +TODO +---- + +I'd like to implement the following features but haven't yet found the +time and/or I don't yet know how to implement them: + +- UltraBay floppy drive support + diff --git a/trunk/Documentation/input/yealink.txt b/trunk/Documentation/input/yealink.txt deleted file mode 100644 index 85f095a7ad04..000000000000 --- a/trunk/Documentation/input/yealink.txt +++ /dev/null @@ -1,203 +0,0 @@ -Driver documentation for yealink usb-p1k phones - -0. Status -~~~~~~~~~ - -The p1k is a relatively cheap usb 1.1 phone with: - - keyboard full support, yealink.ko / input event API - - LCD full support, yealink.ko / sysfs API - - LED full support, yealink.ko / sysfs API - - dialtone full support, yealink.ko / sysfs API - - ringtone full support, yealink.ko / sysfs API - - audio playback full support, snd_usb_audio.ko / alsa API - - audio record full support, snd_usb_audio.ko / alsa API - -For vendor documentation see http://www.yealink.com - - -1. Compilation (stand alone version) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Currently only kernel 2.6.x.y versions are supported. -In order to build the yealink.ko module do: - - make - -If you encounter problems please check if in the MAKE_OPTS variable in -the Makefile is pointing to the location where your kernel sources -are located, default /usr/src/linux. - - - -2. keyboard features -~~~~~~~~~~~~~~~~~~~~ -The current mapping in the kernel is provided by the map_p1k_to_key -function: - - Physical USB-P1K button layout input events - - - up up - IN OUT left, right - down down - - pickup C hangup enter, backspace, escape - 1 2 3 1, 2, 3 - 4 5 6 4, 5, 6, - 7 8 9 7, 8, 9, - * 0 # *, 0, #, - - The "up" and "down" keys, are symbolised by arrows on the button. - The "pickup" and "hangup" keys are symbolised by a green and red phone - on the button. - - -3. LCD features -~~~~~~~~~~~~~~~ -The LCD is divided and organised as a 3 line display: - - |[] [][] [][] [][] in |[][] - |[] M [][] D [][] : [][] out |[][] - store - - NEW REP SU MO TU WE TH FR SA - - [] [] [] [] [] [] [] [] [] [] [] [] - [] [] [] [] [] [] [] [] [] [] [] [] - - -Line 1 Format (see below) : 18.e8.M8.88...188 - Icon names : M D : IN OUT STORE -Line 2 Format : ......... - Icon name : NEW REP SU MO TU WE TH FR SA -Line 3 Format : 888888888888 - - -Format description: - From a user space perspective the world is seperated in "digits" and "icons". - A digit can have a character set, an icon can only be ON or OFF. - - Format specifier - '8' : Generic 7 segment digit with individual addressable segments - - Reduced capabillity 7 segm digit, when segments are hard wired together. - '1' : 2 segments digit only able to produce a 1. - 'e' : Most significant day of the month digit, - able to produce at least 1 2 3. - 'M' : Most significant minute digit, - able to produce at least 0 1 2 3 4 5. - - Icons or pictograms: - '.' : For example like AM, PM, SU, a 'dot' .. or other single segment - elements. - - -4. Driver usage -~~~~~~~~~~~~~~~ -For userland the following interfaces are available using the sysfs interface: - /sys/.../ - line1 Read/Write, lcd line1 - line2 Read/Write, lcd line2 - line3 Read/Write, lcd line3 - - get_icons Read, returns a set of available icons. - hide_icon Write, hide the element by writing the icon name. - show_icon Write, display the element by writing the icon name. - - map_seg7 Read/Write, the 7 segments char set, common for all - yealink phones. (see map_to_7segment.h) - - ringtone Write, upload binary representation of a ringtone, - see yealink.c. status EXPERIMENTAL due to potential - races between async. and sync usb calls. - - -4.1 lineX -~~~~~~~~~ -Reading /sys/../lineX will return the format string with its current value: - - Example: - cat ./line3 - 888888888888 - Linux Rocks! - -Writing to /sys/../lineX will set the coresponding LCD line. - - Excess characters are ignored. - - If less characters are written than allowed, the remaining digits are - unchanged. - - The tab '\t'and '\n' char does not overwrite the original content. - - Writing a space to an icon will always hide its content. - - Example: - date +"%m.%e.%k:%M" | sed 's/^0/ /' > ./line1 - - Will update the LCD with the current date & time. - - -4.2 get_icons -~~~~~~~~~~~~~ -Reading will return all available icon names and its current settings: - - cat ./get_icons - on M - on D - on : - IN - OUT - STORE - NEW - REP - SU - MO - TU - WE - TH - FR - SA - LED - DIALTONE - RINGTONE - - -4.3 show/hide icons -~~~~~~~~~~~~~~~~~~~ -Writing to these files will update the state of the icon. -Only one icon at a time can be updated. - -If an icon is also on a ./lineX the corresponding value is -updated with the first letter of the icon. - - Example - light up the store icon: - echo -n "STORE" > ./show_icon - - cat ./line1 - 18.e8.M8.88...188 - S - - Example - sound the ringtone for 10 seconds: - echo -n RINGTONE > /sys/..../show_icon - sleep 10 - echo -n RINGTONE > /sys/..../hide_icon - - -5. Sound features -~~~~~~~~~~~~~~~~~ -Sound is supported by the ALSA driver: snd_usb_audio - -One 16-bit channel with sample and playback rates of 8000 Hz is the practical -limit of the device. - - Example - recording test: - arecord -v -d 10 -r 8000 -f S16_LE -t wav foobar.wav - - Example - playback test: - aplay foobar.wav - - -6. Credits & Acknowledgments -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - Olivier Vandorpe, for starting the usbb2k-api project doing much of - the reverse engineering. - - Martin Diehl, for pointing out how to handle USB memory allocation. - - Dmitry Torokhov, for the numerous code reviews and suggestions. - diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index d2f0c67ba1fb..3d5cd7a09b2f 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -1174,11 +1174,6 @@ running once the system is up. New name for the ramdisk parameter. See Documentation/ramdisk.txt. - rdinit= [KNL] - Format: - Run specified binary instead of /init from the ramdisk, - used for early userspace startup. See initrd. - reboot= [BUGS=IA-32,BUGS=ARM,BUGS=IA-64] Rebooting mode Format: [,[,...]] See arch/*/kernel/reboot.c. diff --git a/trunk/Documentation/power/swsusp.txt b/trunk/Documentation/power/swsusp.txt index b0d50840788e..ddf907fbcc05 100644 --- a/trunk/Documentation/power/swsusp.txt +++ b/trunk/Documentation/power/swsusp.txt @@ -1,20 +1,22 @@ -Some warnings, first. +From kernel/suspend.c: * BIG FAT WARNING ********************************************************* * + * If you have unsupported (*) devices using DMA... + * ...say goodbye to your data. + * * If you touch anything on disk between suspend and resume... * ...kiss your data goodbye. * - * If you do resume from initrd after your filesystems are mounted... - * ...bye bye root partition. - * [this is actually same case as above] + * If your disk driver does not support suspend... (IDE does) + * ...you'd better find out how to get along + * without your data. + * + * If you change kernel command line between suspend and resume... + * ...prepare for nasty fsck or worse. * - * If you have unsupported (*) devices using DMA, you may have some - * problems. If your disk driver does not support suspend... (IDE does), - * it may cause some problems, too. If you change kernel command line - * between suspend and resume, it may do something wrong. If you change - * your hardware while system is suspended... well, it was not good idea; - * but it will probably only crash. + * If you change your hardware while system is suspended... + * ...well, it was not good idea. * * (*) suspend/resume support is needed to make it safe. @@ -28,13 +30,6 @@ echo shutdown > /sys/power/disk; echo disk > /sys/power/state echo platform > /sys/power/disk; echo disk > /sys/power/state -Encrypted suspend image: ------------------------- -If you want to store your suspend image encrypted with a temporary -key to prevent data gathering after resume you must compile -crypto and the aes algorithm into the kernel - modules won't work -as they cannot be loaded at resume time. - Article about goals and implementation of Software Suspend for Linux ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -90,6 +85,11 @@ resume. You have your server on UPS. Power died, and UPS is indicating 30 seconds to failure. What do you do? Suspend to disk. +Ethernet card in your server died. You want to replace it. Your +server is not hotplug capable. What do you do? Suspend to disk, +replace ethernet card, resume. If you are fast your users will not +even see broken connections. + Q: Maybe I'm missing something, but why don't the regular I/O paths work? @@ -117,6 +117,31 @@ Q: Does linux support ACPI S4? A: Yes. That's what echo platform > /sys/power/disk does. +Q: My machine doesn't work with ACPI. How can I use swsusp than ? + +A: Do a reboot() syscall with right parameters. Warning: glibc gets in +its way, so check with strace: + +reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, 0xd000fce2) + +(Thanks to Peter Osterlund:) + +#include +#include + +#define LINUX_REBOOT_MAGIC1 0xfee1dead +#define LINUX_REBOOT_MAGIC2 672274793 +#define LINUX_REBOOT_CMD_SW_SUSPEND 0xD000FCE2 + +int main() +{ + syscall(SYS_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, + LINUX_REBOOT_CMD_SW_SUSPEND, 0); + return 0; +} + +Also /sys/ interface should be still present. + Q: What is 'suspend2'? A: suspend2 is 'Software Suspend 2', a forked implementation of @@ -287,45 +312,9 @@ system is shut down or suspended. Additionally use the encrypted suspend image to prevent sensitive data from being stolen after resume. -Q: Why can't we suspend to a swap file? +Q: Why we cannot suspend to a swap file? A: Because accessing swap file needs the filesystem mounted, and filesystem might do something wrong (like replaying the journal) -during mount. - -There are few ways to get that fixed: - -1) Probably could be solved by modifying every filesystem to support -some kind of "really read-only!" option. Patches welcome. - -2) suspend2 gets around that by storing absolute positions in on-disk -image (and blocksize), with resume parameter pointing directly to -suspend header. - -Q: Is there a maximum system RAM size that is supported by swsusp? - -A: It should work okay with highmem. - -Q: Does swsusp (to disk) use only one swap partition or can it use -multiple swap partitions (aggregate them into one logical space)? - -A: Only one swap partition, sorry. - -Q: If my application(s) causes lots of memory & swap space to be used -(over half of the total system RAM), is it correct that it is likely -to be useless to try to suspend to disk while that app is running? - -A: No, it should work okay, as long as your app does not mlock() -it. Just prepare big enough swap partition. - -Q: What information is usefull for debugging suspend-to-disk problems? - -A: Well, last messages on the screen are always useful. If something -is broken, it is usually some kernel driver, therefore trying with as -little as possible modules loaded helps a lot. I also prefer people to -suspend from console, preferably without X running. Booting with -init=/bin/bash, then swapon and starting suspend sequence manually -usually does the trick. Then it is good idea to try with latest -vanilla kernel. - - +during mount. [Probably could be solved by modifying every filesystem +to support some kind of "really read-only!" option. Patches welcome.] diff --git a/trunk/Documentation/power/video.txt b/trunk/Documentation/power/video.txt index 526d6dd267ea..1a44e8acb54c 100644 --- a/trunk/Documentation/power/video.txt +++ b/trunk/Documentation/power/video.txt @@ -120,7 +120,6 @@ IBM ThinkPad T42p (2373-GTG) s3_bios (2) IBM TP X20 ??? (*) IBM TP X30 s3_bios (2) IBM TP X31 / Type 2672-XXH none (1), use radeontool (http://fdd.com/software/radeon/) to turn off backlight. -IBM TP X32 none (1), but backlight is on and video is trashed after long suspend IBM Thinkpad X40 Type 2371-7JG s3_bios,s3_mode (4) Medion MD4220 ??? (*) Samsung P35 vbetool needed (6) diff --git a/trunk/Documentation/scsi/aic7xxx.txt b/trunk/Documentation/scsi/aic7xxx.txt index 47e74ddc4bc9..160e7354cd1e 100644 --- a/trunk/Documentation/scsi/aic7xxx.txt +++ b/trunk/Documentation/scsi/aic7xxx.txt @@ -1,5 +1,5 @@ ==================================================================== -= Adaptec Aic7xxx Fast -> Ultra160 Family Manager Set v7.0 = += Adaptec Aic7xxx Fast -> Ultra160 Family Manager Set v6.2.28 = = README for = = The Linux Operating System = ==================================================================== @@ -131,10 +131,6 @@ The following information is available in this file: SCSI "stub" effects. 2. Version History - 7.0 (4th August, 2005) - - Updated driver to use SCSI transport class infrastructure - - Upported sequencer and core fixes from last adaptec released - version of the driver. 6.2.36 (June 3rd, 2003) - Correct code that disables PCI parity error checking. - Correct and simplify handling of the ignore wide residue diff --git a/trunk/Documentation/scsi/scsi_mid_low_api.txt b/trunk/Documentation/scsi/scsi_mid_low_api.txt index 44df89c9c049..7536823c0cb1 100644 --- a/trunk/Documentation/scsi/scsi_mid_low_api.txt +++ b/trunk/Documentation/scsi/scsi_mid_low_api.txt @@ -373,11 +373,13 @@ Summary: scsi_activate_tcq - turn on tag command queueing scsi_add_device - creates new scsi device (lu) instance scsi_add_host - perform sysfs registration and SCSI bus scan. + scsi_add_timer - (re-)start timer on a SCSI command. scsi_adjust_queue_depth - change the queue depth on a SCSI device scsi_assign_lock - replace default host_lock with given lock scsi_bios_ptable - return copy of block device's partition table scsi_block_requests - prevent further commands being queued to given host scsi_deactivate_tcq - turn off tag command queueing + scsi_delete_timer - cancel timer on a SCSI command. scsi_host_alloc - return a new scsi_host instance whose refcount==1 scsi_host_get - increments Scsi_Host instance's refcount scsi_host_put - decrements Scsi_Host instance's refcount (free if 0) @@ -455,6 +457,27 @@ struct scsi_device * scsi_add_device(struct Scsi_Host *shost, int scsi_add_host(struct Scsi_Host *shost, struct device * dev) +/** + * scsi_add_timer - (re-)start timer on a SCSI command. + * @scmd: pointer to scsi command instance + * @timeout: duration of timeout in "jiffies" + * @complete: pointer to function to call if timeout expires + * + * Returns nothing + * + * Might block: no + * + * Notes: Each scsi command has its own timer, and as it is added + * to the queue, we set up the timer. When the command completes, + * we cancel the timer. An LLD can use this function to change + * the existing timeout value. + * + * Defined in: drivers/scsi/scsi_error.c + **/ +void scsi_add_timer(struct scsi_cmnd *scmd, int timeout, + void (*complete)(struct scsi_cmnd *)) + + /** * scsi_adjust_queue_depth - allow LLD to change queue depth on a SCSI device * @sdev: pointer to SCSI device to change queue depth on @@ -542,6 +565,24 @@ void scsi_block_requests(struct Scsi_Host * shost) void scsi_deactivate_tcq(struct scsi_device *sdev, int depth) +/** + * scsi_delete_timer - cancel timer on a SCSI command. + * @scmd: pointer to scsi command instance + * + * Returns 1 if able to cancel timer else 0 (i.e. too late or already + * cancelled). + * + * Might block: no [may in the future if it invokes del_timer_sync()] + * + * Notes: All commands issued by upper levels already have a timeout + * associated with them. An LLD can use this function to cancel the + * timer. + * + * Defined in: drivers/scsi/scsi_error.c + **/ +int scsi_delete_timer(struct scsi_cmnd *scmd) + + /** * scsi_host_alloc - create a scsi host adapter instance and perform basic * initialization. diff --git a/trunk/Documentation/sonypi.txt b/trunk/Documentation/sonypi.txt index c1237a925505..0f3b2405d09e 100644 --- a/trunk/Documentation/sonypi.txt +++ b/trunk/Documentation/sonypi.txt @@ -99,7 +99,6 @@ statically linked into the kernel). Those options are: SONYPI_MEYE_MASK 0x0400 SONYPI_MEMORYSTICK_MASK 0x0800 SONYPI_BATTERY_MASK 0x1000 - SONYPI_WIRELESS_MASK 0x2000 useinput: if set (which is the default) two input devices are created, one which interprets the jogdial events as @@ -138,15 +137,6 @@ Bugs: speed handling etc). Use ACPI instead of APM if it works on your laptop. - - sonypi lacks the ability to distinguish between certain key - events on some models. - - - some models with the nvidia card (geforce go 6200 tc) uses a - different way to adjust the backlighting of the screen. There - is a userspace utility to adjust the brightness on those models, - which can be downloaded from - http://www.acc.umu.se/~erikw/program/smartdimmer-0.1.tar.bz2 - - since all development was done by reverse engineering, there is _absolutely no guarantee_ that this driver will not crash your laptop. Permanently. diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index eaa46594f021..7e1f67130a16 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -116,12 +116,6 @@ M: ajk@iehk.rwth-aachen.de L: linux-hams@vger.kernel.org S: Maintained -YEALINK PHONE DRIVER -P: Henk Vergonet -M: Henk.Vergonet@gmail.com -L: usbb2k-api-dev@nongnu.org -S: Maintained - 8139CP 10/100 FAST ETHERNET DRIVER P: Jeff Garzik M: jgarzik@pobox.com @@ -208,6 +202,13 @@ P: Colin Leroy M: colin@colino.net S: Maintained +ADVANSYS SCSI DRIVER +P: Bob Frey +M: linux@advansys.com +W: http://www.advansys.com/linux.html +L: linux-scsi@vger.kernel.org +S: Maintained + AEDSP16 DRIVER P: Riccardo Facchetti M: fizban@tin.it @@ -695,11 +696,6 @@ M: dz@debian.org W: http://www.debian.org/~dz/i8k/ S: Maintained -DELL SYSTEMS MANAGEMENT BASE DRIVER (dcdbas) -P: Doug Warzecha -M: Douglas_Warzecha@dell.com -S: Maintained - DEVICE-MAPPER P: Alasdair Kergon L: dm-devel@redhat.com @@ -828,13 +824,6 @@ L: emu10k1-devel@lists.sourceforge.net W: http://sourceforge.net/projects/emu10k1/ S: Maintained -EMULEX LPFC FC SCSI DRIVER -P: James Smart -M: james.smart@emulex.com -L: linux-scsi@vger.kernel.org -W: http://sourceforge.net/projects/lpfcxxxx -S: Supported - EPSON 1355 FRAMEBUFFER DRIVER P: Christopher Hoover M: ch@murgatroid.com, ch@hpl.hp.com @@ -890,7 +879,7 @@ S: Maintained FILESYSTEMS (VFS and infrastructure) P: Alexander Viro -M: viro@zeniv.linux.org.uk +M: viro@parcelfarce.linux.theplanet.co.uk S: Maintained FIRMWARE LOADER (request_firmware) @@ -1819,6 +1808,13 @@ M: hch@infradead.org L: linux-abi-devel@lists.sourceforge.net S: Maintained +PCI ID DATABASE +P: Martin Mares +M: mj@ucw.cz +L: pciids-devel@lists.sourceforge.net +W: http://pciids.sourceforge.net/ +S: Maintained + PCI SOUND DRIVERS (ES1370, ES1371 and SONICVIBES) P: Thomas Sailer M: sailer@ife.ee.ethz.ch @@ -1971,6 +1967,7 @@ S: Supported ROCKETPORT DRIVER P: Comtrol Corp. +M: support@comtrol.com W: http://www.comtrol.com S: Maintained diff --git a/trunk/arch/alpha/Kconfig b/trunk/arch/alpha/Kconfig index 786491f9ceb2..189d5eababa8 100644 --- a/trunk/arch/alpha/Kconfig +++ b/trunk/arch/alpha/Kconfig @@ -479,9 +479,6 @@ config EISA depends on ALPHA_GENERIC || ALPHA_JENSEN || ALPHA_ALCOR || ALPHA_MIKASA || ALPHA_SABLE || ALPHA_LYNX || ALPHA_NORITAKE || ALPHA_RAWHIDE default y -config ARCH_MAY_HAVE_PC_FDC - def_bool y - config SMP bool "Symmetric multi-processing support" depends on ALPHA_SABLE || ALPHA_LYNX || ALPHA_RAWHIDE || ALPHA_DP264 || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_GENERIC || ALPHA_SHARK || ALPHA_MARVEL diff --git a/trunk/arch/alpha/kernel/sys_marvel.c b/trunk/arch/alpha/kernel/sys_marvel.c index e32fee505220..804727853d25 100644 --- a/trunk/arch/alpha/kernel/sys_marvel.c +++ b/trunk/arch/alpha/kernel/sys_marvel.c @@ -373,11 +373,12 @@ marvel_map_irq(struct pci_dev *dev, u8 slot, u8 pin) irq += 0x80; /* offset for lsi */ #if 1 - printk("PCI:%d:%d:%d (hose %d) is using MSI\n", + printk("PCI:%d:%d:%d (hose %d) [%s] is using MSI\n", dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn), - hose->index); + hose->index, + pci_pretty_name (dev)); printk(" %d message(s) from 0x%04x\n", 1 << ((msg_ctl & PCI_MSI_FLAGS_QSIZE) >> 4), msg_dat); diff --git a/trunk/arch/alpha/kernel/time.c b/trunk/arch/alpha/kernel/time.c index 67be50b7d80a..8226c5cd788c 100644 --- a/trunk/arch/alpha/kernel/time.c +++ b/trunk/arch/alpha/kernel/time.c @@ -149,7 +149,7 @@ irqreturn_t timer_interrupt(int irq, void *dev, struct pt_regs * regs) * CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be * called as close as possible to 500 ms before the new second starts. */ - if (ntp_synced() + if ((time_status & STA_UNSYNC) == 0 && xtime.tv_sec > state.last_rtc_update + 660 && xtime.tv_nsec >= 500000 - ((unsigned) TICK_SIZE) / 2 && xtime.tv_nsec <= 500000 + ((unsigned) TICK_SIZE) / 2) { @@ -502,7 +502,10 @@ do_settimeofday(struct timespec *tv) set_normalized_timespec(&xtime, sec, nsec); set_normalized_timespec(&wall_to_monotonic, wtm_sec, wtm_nsec); - ntp_clear(); + time_adjust = 0; /* stop active adjtime() */ + time_status |= STA_UNSYNC; + time_maxerror = NTP_PHASE_LIMIT; + time_esterror = NTP_PHASE_LIMIT; write_sequnlock_irq(&xtime_lock); clock_was_set(); diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 0f2899b4159d..68dfdba71d74 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -64,9 +64,6 @@ config GENERIC_CALIBRATE_DELAY config GENERIC_BUST_SPINLOCK bool -config ARCH_MAY_HAVE_PC_FDC - bool - config GENERIC_ISA_DMA bool @@ -153,7 +150,6 @@ config ARCH_RPC select ARCH_ACORN select FIQ select TIMER_ACORN - select ARCH_MAY_HAVE_PC_FDC help On the Acorn Risc-PC, Linux can support the internal IDE disk and CD-ROM interface, serial and parallel port, and the floppy drive. diff --git a/trunk/arch/arm/boot/compressed/head-sharpsl.S b/trunk/arch/arm/boot/compressed/head-sharpsl.S index 59ad69640d6b..d6bf8a2b090d 100644 --- a/trunk/arch/arm/boot/compressed/head-sharpsl.S +++ b/trunk/arch/arm/boot/compressed/head-sharpsl.S @@ -7,8 +7,7 @@ * so we have to figure out the machine for ourselves... * * Support for Poodle, Corgi (SL-C700), Shepherd (SL-C750) - * Husky (SL-C760), Tosa (SL-C6000), Spitz (SL-C3000), - * Akita (SL-C1000) and Borzoi (SL-C3100). + * and Husky (SL-C760). * */ @@ -24,22 +23,6 @@ __SharpSL_start: -/* Check for TC6393 - if found we have a Tosa */ - ldr r7, .TOSAID - mov r1, #0x10000000 @ Base address of TC6393 chip - mov r6, #0x03 - ldrh r3, [r1, #8] @ Load TC6393XB Revison: This is 0x0003 - cmp r6, r3 - beq .SHARPEND @ Success -> tosa - -/* Check for pxa270 - if found, branch */ - mrc p15, 0, r4, c0, c0 @ Get Processor ID - and r4, r4, #0xffffff00 - ldr r3, .PXA270ID - cmp r4, r3 - beq .PXA270 - -/* Check for w100 - if not found we have a Poodle */ ldr r1, .W100ADDR @ Base address of w100 chip + regs offset mov r6, #0x31 @ Load Magic Init value @@ -47,7 +30,7 @@ __SharpSL_start: mov r5, #0x3000 .W100LOOP: subs r5, r5, #1 - bne .W100LOOP + bne .W100LOOP mov r6, #0x30 @ Load 2nd Magic Init value str r6, [r1, #0x280] @ to SCRATCH_UMSK @@ -57,52 +40,45 @@ __SharpSL_start: cmp r6, r3 bne .SHARPEND @ We have no w100 - Poodle -/* Check for pxa250 - if found we have a Corgi */ + mrc p15, 0, r6, c0, c0 @ Get Processor ID + and r6, r6, #0xffffff00 ldr r7, .CORGIID ldr r3, .PXA255ID - cmp r4, r3 + cmp r6, r3 blo .SHARPEND @ We have a PXA250 - Corgi -/* Check for 64MiB flash - if found we have a Shepherd */ - bl get_flash_ids + mov r1, #0x0c000000 @ Base address of NAND chip + ldrb r3, [r1, #24] @ Load FLASHCTL + bic r3, r3, #0x11 @ SET NCE + orr r3, r3, #0x0a @ SET CLR + FLWP + strb r3, [r1, #24] @ Save to FLASHCTL + mov r2, #0x90 @ Command "readid" + strb r2, [r1, #20] @ Save to FLASHIO + bic r3, r3, #2 @ CLR CLE + orr r3, r3, #4 @ SET ALE + strb r3, [r1, #24] @ Save to FLASHCTL + mov r2, #0 @ Address 0x00 + strb r2, [r1, #20] @ Save to FLASHIO + bic r3, r3, #4 @ CLR ALE + strb r3, [r1, #24] @ Save to FLASHCTL +.SHARP1: + ldrb r3, [r1, #24] @ Load FLASHCTL + tst r3, #32 @ Is chip ready? + beq .SHARP1 + ldrb r2, [r1, #20] @ NAND Manufacturer ID + ldrb r3, [r1, #20] @ NAND Chip ID ldr r7, .SHEPHERDID cmp r3, #0x76 @ 64MiB flash beq .SHARPEND @ We have Shepherd - -/* Must be a Husky */ ldr r7, .HUSKYID @ Must be Husky b .SHARPEND -.PXA270: -/* Check for 16MiB flash - if found we have Spitz */ - bl get_flash_ids - ldr r7, .SPITZID - cmp r3, #0x73 @ 16MiB flash - beq .SHARPEND @ We have Spitz - -/* Check for a second SCOOP chip - if found we have Borzoi */ - ldr r1, .SCOOP2ADDR - ldr r7, .BORZOIID - mov r6, #0x0140 - strh r6, [r1] - ldrh r6, [r1] - cmp r6, #0x0140 - beq .SHARPEND @ We have Borzoi - -/* Must be Akita */ - ldr r7, .AKITAID - b .SHARPEND @ We have Borzoi - .PXA255ID: .word 0x69052d00 @ PXA255 Processor ID -.PXA270ID: - .word 0x69054100 @ PXA270 Processor ID .W100ID: .word 0x57411002 @ w100 Chip ID .W100ADDR: .word 0x08010000 @ w100 Chip ID Reg Address -.SCOOP2ADDR: - .word 0x08800040 .POODLEID: .word MACH_TYPE_POODLE .CORGIID: @@ -111,41 +87,6 @@ __SharpSL_start: .word MACH_TYPE_SHEPHERD .HUSKYID: .word MACH_TYPE_HUSKY -.TOSAID: - .word MACH_TYPE_TOSA -.SPITZID: - .word MACH_TYPE_SPITZ -.AKITAID: - .word MACH_TYPE_AKITA -.BORZOIID: - .word MACH_TYPE_BORZOI +.SHARPEND: -/* - * Return: r2 - NAND Manufacturer ID - * r3 - NAND Chip ID - * Corrupts: r1 - */ -get_flash_ids: - mov r1, #0x0c000000 @ Base address of NAND chip - ldrb r3, [r1, #24] @ Load FLASHCTL - bic r3, r3, #0x11 @ SET NCE - orr r3, r3, #0x0a @ SET CLR + FLWP - strb r3, [r1, #24] @ Save to FLASHCTL - mov r2, #0x90 @ Command "readid" - strb r2, [r1, #20] @ Save to FLASHIO - bic r3, r3, #2 @ CLR CLE - orr r3, r3, #4 @ SET ALE - strb r3, [r1, #24] @ Save to FLASHCTL - mov r2, #0 @ Address 0x00 - strb r2, [r1, #20] @ Save to FLASHIO - bic r3, r3, #4 @ CLR ALE - strb r3, [r1, #24] @ Save to FLASHCTL -.fids1: - ldrb r3, [r1, #24] @ Load FLASHCTL - tst r3, #32 @ Is chip ready? - beq .fids1 - ldrb r2, [r1, #20] @ NAND Manufacturer ID - ldrb r3, [r1, #20] @ NAND Chip ID - mov pc, lr -.SHARPEND: diff --git a/trunk/arch/arm/common/locomo.c b/trunk/arch/arm/common/locomo.c index 2786f7c34b3f..51f430cc2fbf 100644 --- a/trunk/arch/arm/common/locomo.c +++ b/trunk/arch/arm/common/locomo.c @@ -541,103 +541,6 @@ locomo_init_one_child(struct locomo *lchip, struct locomo_dev_info *info) return ret; } -#ifdef CONFIG_PM - -struct locomo_save_data { - u16 LCM_GPO; - u16 LCM_SPICT; - u16 LCM_GPE; - u16 LCM_ASD; - u16 LCM_SPIMD; -}; - -static int locomo_suspend(struct device *dev, u32 pm_message_t, u32 level) -{ - struct locomo *lchip = dev_get_drvdata(dev); - struct locomo_save_data *save; - unsigned long flags; - - if (level != SUSPEND_DISABLE) - return 0; - - save = kmalloc(sizeof(struct locomo_save_data), GFP_KERNEL); - if (!save) - return -ENOMEM; - - dev->power.saved_state = (void *) save; - - spin_lock_irqsave(&lchip->lock, flags); - - save->LCM_GPO = locomo_readl(lchip->base + LOCOMO_GPO); /* GPIO */ - locomo_writel(0x00, lchip->base + LOCOMO_GPO); - save->LCM_SPICT = locomo_readl(lchip->base + LOCOMO_SPICT); /* SPI */ - locomo_writel(0x40, lchip->base + LOCOMO_SPICT); - save->LCM_GPE = locomo_readl(lchip->base + LOCOMO_GPE); /* GPIO */ - locomo_writel(0x00, lchip->base + LOCOMO_GPE); - save->LCM_ASD = locomo_readl(lchip->base + LOCOMO_ASD); /* ADSTART */ - locomo_writel(0x00, lchip->base + LOCOMO_ASD); - save->LCM_SPIMD = locomo_readl(lchip->base + LOCOMO_SPIMD); /* SPI */ - locomo_writel(0x3C14, lchip->base + LOCOMO_SPIMD); - - locomo_writel(0x00, lchip->base + LOCOMO_PAIF); - locomo_writel(0x00, lchip->base + LOCOMO_DAC); - locomo_writel(0x00, lchip->base + LOCOMO_BACKLIGHT + LOCOMO_TC); - - if ( (locomo_readl(lchip->base + LOCOMO_LED + LOCOMO_LPT0) & 0x88) && (locomo_readl(lchip->base + LOCOMO_LED + LOCOMO_LPT1) & 0x88) ) - locomo_writel(0x00, lchip->base + LOCOMO_C32K); /* CLK32 off */ - else - /* 18MHz already enabled, so no wait */ - locomo_writel(0xc1, lchip->base + LOCOMO_C32K); /* CLK32 on */ - - locomo_writel(0x00, lchip->base + LOCOMO_TADC); /* 18MHz clock off*/ - locomo_writel(0x00, lchip->base + LOCOMO_AUDIO + LOCOMO_ACC); /* 22MHz/24MHz clock off */ - locomo_writel(0x00, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS); /* FL */ - - spin_unlock_irqrestore(&lchip->lock, flags); - - return 0; -} - -static int locomo_resume(struct device *dev, u32 level) -{ - struct locomo *lchip = dev_get_drvdata(dev); - struct locomo_save_data *save; - unsigned long r; - unsigned long flags; - - if (level != RESUME_ENABLE) - return 0; - - save = (struct locomo_save_data *) dev->power.saved_state; - if (!save) - return 0; - - spin_lock_irqsave(&lchip->lock, flags); - - locomo_writel(save->LCM_GPO, lchip->base + LOCOMO_GPO); - locomo_writel(save->LCM_SPICT, lchip->base + LOCOMO_SPICT); - locomo_writel(save->LCM_GPE, lchip->base + LOCOMO_GPE); - locomo_writel(save->LCM_ASD, lchip->base + LOCOMO_ASD); - locomo_writel(save->LCM_SPIMD, lchip->base + LOCOMO_SPIMD); - - locomo_writel(0x00, lchip->base + LOCOMO_C32K); - locomo_writel(0x90, lchip->base + LOCOMO_TADC); - - locomo_writel(0, lchip->base + LOCOMO_KEYBOARD + LOCOMO_KSC); - r = locomo_readl(lchip->base + LOCOMO_KEYBOARD + LOCOMO_KIC); - r &= 0xFEFF; - locomo_writel(r, lchip->base + LOCOMO_KEYBOARD + LOCOMO_KIC); - locomo_writel(0x1, lchip->base + LOCOMO_KEYBOARD + LOCOMO_KCMD); - - spin_unlock_irqrestore(&lchip->lock, flags); - - dev->power.saved_state = NULL; - kfree(save); - - return 0; -} -#endif - /** * locomo_probe - probe for a single LoCoMo chip. * @phys_addr: physical address of device. @@ -804,10 +707,6 @@ static struct device_driver locomo_device_driver = { .bus = &platform_bus_type, .probe = locomo_probe, .remove = locomo_remove, -#ifdef CONFIG_PM - .suspend = locomo_suspend, - .resume = locomo_resume, -#endif }; /* diff --git a/trunk/arch/arm/configs/omap_h2_1610_defconfig b/trunk/arch/arm/configs/omap_h2_1610_defconfig index 4198677cd394..24955263b096 100644 --- a/trunk/arch/arm/configs/omap_h2_1610_defconfig +++ b/trunk/arch/arm/configs/omap_h2_1610_defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.13 -# Mon Sep 5 18:07:12 2005 +# Linux kernel version: 2.6.13-rc2 +# Fri Jul 8 04:49:34 2005 # CONFIG_ARM=y CONFIG_MMU=y @@ -102,11 +102,9 @@ CONFIG_OMAP_MUX_WARNINGS=y # CONFIG_OMAP_MPU_TIMER is not set CONFIG_OMAP_32K_TIMER=y CONFIG_OMAP_32K_TIMER_HZ=128 -# CONFIG_OMAP_DM_TIMER is not set CONFIG_OMAP_LL_DEBUG_UART1=y # CONFIG_OMAP_LL_DEBUG_UART2 is not set # CONFIG_OMAP_LL_DEBUG_UART3 is not set -CONFIG_OMAP_SERIAL_WAKE=y # # OMAP Core Type @@ -168,6 +166,7 @@ CONFIG_ISA_DMA_API=y # # Kernel Features # +# CONFIG_SMP is not set CONFIG_PREEMPT=y CONFIG_NO_IDLE_HZ=y # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set @@ -231,82 +230,91 @@ CONFIG_PM=y # CONFIG_APM is not set # -# Networking +# Device Drivers # -CONFIG_NET=y # -# Networking options +# Generic Driver Options # -CONFIG_PACKET=y -# CONFIG_PACKET_MMAP is not set -CONFIG_UNIX=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_FIB_HASH=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -# CONFIG_IP_PNP_RARP is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE is not set -# CONFIG_ARPD is not set -# CONFIG_SYN_COOKIES is not set -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -# CONFIG_INET_TUNNEL is not set -CONFIG_IP_TCPDIAG=y -# CONFIG_IP_TCPDIAG_IPV6 is not set -# CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_BIC=y -# CONFIG_IPV6 is not set -# CONFIG_NETFILTER is not set +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_FW_LOADER is not set # -# SCTP Configuration (EXPERIMENTAL) +# Memory Technology Devices (MTD) # -# CONFIG_IP_SCTP is not set -# CONFIG_ATM is not set -# CONFIG_BRIDGE is not set -# CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_NET_SCHED is not set -# CONFIG_NET_CLS_ROUTE is not set +CONFIG_MTD=y +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=3 +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set # -# Network testing +# User Modules And Translation Layers # -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_IRDA is not set -# CONFIG_BT is not set +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set # -# Device Drivers +# RAM/ROM/Flash chip drivers # +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=y +# CONFIG_MTD_CFI_AMDSTD is not set +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_XIP is not set # -# Generic Driver Options +# Mapping drivers for chip access # -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -# CONFIG_FW_LOADER is not set +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_ARM_INTEGRATOR is not set +# CONFIG_MTD_EDB7312 is not set # -# Memory Technology Devices (MTD) +# Self-contained MTD device drivers # -# CONFIG_MTD is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLKMTD is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +# CONFIG_MTD_NAND is not set # # Parallel port support @@ -395,8 +403,72 @@ CONFIG_SCSI_PROC_FS=y # # -# Network device support +# Networking support +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_TUNNEL is not set +CONFIG_IP_TCPDIAG=y +# CONFIG_IP_TCPDIAG_IPV6 is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y +# CONFIG_IPV6 is not set +# CONFIG_NETFILTER is not set + +# +# SCTP Configuration (EXPERIMENTAL) # +# CONFIG_IP_SCTP is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set +# CONFIG_NET_CLS_ROUTE is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set @@ -446,8 +518,6 @@ CONFIG_SLIP_COMPRESSED=y # CONFIG_SLIP_MODE_SLIP6 is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set # # ISDN subsystem @@ -545,15 +615,77 @@ CONFIG_WATCHDOG_NOWAYOUT=y # # I2C support # -# CONFIG_I2C is not set -# CONFIG_I2C_SENSOR is not set -CONFIG_ISP1301_OMAP=y +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y # -# Hardware Monitoring support +# I2C Algorithms # -CONFIG_HWMON=y -# CONFIG_HWMON_DEBUG_CHIP is not set +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_ISA is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Hardware Sensors Chip support +# +# CONFIG_I2C_SENSOR is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_FSCHER is not set +# CONFIG_SENSORS_FSCPOS is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set + +# +# Other I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set +CONFIG_ISP1301_OMAP=y +CONFIG_TPS65010=y +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set # # Misc devices @@ -624,9 +756,15 @@ CONFIG_SOUND=y # Open Sound System # CONFIG_SOUND_PRIME=y +# CONFIG_SOUND_BT878 is not set +# CONFIG_SOUND_FUSION is not set +# CONFIG_SOUND_CS4281 is not set +# CONFIG_SOUND_SONICVIBES is not set +# CONFIG_SOUND_TRIDENT is not set # CONFIG_SOUND_MSNDCLAS is not set # CONFIG_SOUND_MSNDPIN is not set # CONFIG_SOUND_OSS is not set +# CONFIG_SOUND_TVMIXER is not set # CONFIG_SOUND_AD1980 is not set # @@ -672,7 +810,6 @@ CONFIG_EXT2_FS=y # CONFIG_JBD is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set # # XFS support @@ -680,7 +817,6 @@ CONFIG_EXT2_FS=y # CONFIG_XFS_FS is not set # CONFIG_MINIX_FS is not set CONFIG_ROMFS_FS=y -CONFIG_INOTIFY=y # CONFIG_QUOTA is not set CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set @@ -721,6 +857,15 @@ CONFIG_RAMFS=y # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set +# CONFIG_JFFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=2 +# CONFIG_JFFS2_FS_NAND is not set +# CONFIG_JFFS2_FS_NOR_ECC is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set CONFIG_CRAMFS=y # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set @@ -862,3 +1007,4 @@ CONFIG_CRYPTO_DES=y CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y diff --git a/trunk/arch/arm/configs/s3c2410_defconfig b/trunk/arch/arm/configs/s3c2410_defconfig index 756348bf5170..96a794d8de84 100644 --- a/trunk/arch/arm/configs/s3c2410_defconfig +++ b/trunk/arch/arm/configs/s3c2410_defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.13-git8 -# Thu Sep 8 19:24:02 2005 +# Linux kernel version: 2.6.12-git4 +# Wed Jun 22 15:56:42 2005 # CONFIG_ARM=y CONFIG_MMU=y @@ -22,7 +22,6 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 # General setup # CONFIG_LOCALVERSION="" -CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set @@ -32,7 +31,6 @@ CONFIG_SYSCTL=y # CONFIG_HOTPLUG is not set CONFIG_KOBJECT_UEVENT=y # CONFIG_IKCONFIG is not set -CONFIG_INITRAMFS_SOURCE="" # CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set @@ -90,9 +88,7 @@ CONFIG_ARCH_S3C2410=y # # S3C24XX Implementations # -CONFIG_MACH_ANUBIS=y CONFIG_ARCH_BAST=y -CONFIG_BAST_PC104_IRQ=y CONFIG_ARCH_H1940=y CONFIG_MACH_N30=y CONFIG_ARCH_SMDK2410=y @@ -116,7 +112,6 @@ CONFIG_S3C2410_DMA=y # CONFIG_S3C2410_DMA_DEBUG is not set # CONFIG_S3C2410_PM_DEBUG is not set # CONFIG_S3C2410_PM_CHECK is not set -CONFIG_PM_SIMTEC=y CONFIG_S3C2410_LOWLEVEL_UART_PORT=0 # @@ -154,15 +149,7 @@ CONFIG_ISA_DMA_API=y # # CONFIG_SMP is not set # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set -# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -# CONFIG_SPARSEMEM_STATIC is not set +# CONFIG_DISCONTIGMEM is not set CONFIG_ALIGNMENT_TRAP=y # @@ -198,74 +185,6 @@ CONFIG_BINFMT_AOUT=y CONFIG_PM=y CONFIG_APM=y -# -# Networking -# -CONFIG_NET=y - -# -# Networking options -# -# CONFIG_PACKET is not set -CONFIG_UNIX=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_FIB_HASH=y -CONFIG_IP_PNP=y -# CONFIG_IP_PNP_DHCP is not set -CONFIG_IP_PNP_BOOTP=y -# CONFIG_IP_PNP_RARP is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE is not set -# CONFIG_ARPD is not set -# CONFIG_SYN_COOKIES is not set -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -# CONFIG_INET_TUNNEL is not set -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y -# CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_BIC=y -# CONFIG_IPV6 is not set -# CONFIG_NETFILTER is not set - -# -# DCCP Configuration (EXPERIMENTAL) -# -# CONFIG_IP_DCCP is not set - -# -# SCTP Configuration (EXPERIMENTAL) -# -# CONFIG_IP_SCTP is not set -# CONFIG_ATM is not set -# CONFIG_BRIDGE is not set -# CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_NET_SCHED is not set -# CONFIG_NET_CLS_ROUTE is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_NETFILTER_NETLINK is not set -# CONFIG_HAMRADIO is not set -# CONFIG_IRDA is not set -# CONFIG_BT is not set -# CONFIG_IEEE80211 is not set - # # Device Drivers # @@ -339,7 +258,6 @@ CONFIG_MTD_ROM=y # CONFIG_MTD_IMPA7 is not set CONFIG_MTD_BAST=y CONFIG_MTD_BAST_MAXSIZE=4 -# CONFIG_MTD_PLATRAM is not set # # Self-contained MTD device drivers @@ -394,6 +312,7 @@ CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" # CONFIG_CDROM_PKTCDVD is not set # @@ -435,7 +354,6 @@ CONFIG_BLK_DEV_IDE_BAST=y # # SCSI device support # -# CONFIG_RAID_ATTRS is not set # CONFIG_SCSI is not set # @@ -458,19 +376,76 @@ CONFIG_BLK_DEV_IDE_BAST=y # # -# Network device support +# Networking support +# +CONFIG_NET=y + +# +# Networking options # +# CONFIG_PACKET is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_TUNNEL is not set +CONFIG_IP_TCPDIAG=y +# CONFIG_IP_TCPDIAG_IPV6 is not set +# CONFIG_IPV6 is not set +# CONFIG_NETFILTER is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set +# CONFIG_NET_CLS_ROUTE is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set # CONFIG_TUN is not set -# -# PHY device support -# -# CONFIG_PHYLIB is not set - # # Ethernet (10 or 100Mbit) # @@ -505,8 +480,6 @@ CONFIG_DM9000=m # CONFIG_SLIP is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set # # ISDN subsystem @@ -589,6 +562,7 @@ CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_8250_DETECT_IRQ is not set +# CONFIG_SERIAL_8250_MULTIPORT is not set # CONFIG_SERIAL_8250_RSA is not set # @@ -631,6 +605,7 @@ CONFIG_S3C2410_RTC=y # # Ftape, the floppy tape device driver # +# CONFIG_DRM is not set # CONFIG_RAW_DRIVER is not set # @@ -653,7 +628,7 @@ CONFIG_I2C_ALGOBIT=m # # I2C Hardware Bus support # -CONFIG_I2C_ISA=m +# CONFIG_I2C_ISA is not set # CONFIG_I2C_PARPORT is not set # CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_S3C2410=y @@ -661,33 +636,14 @@ CONFIG_I2C_S3C2410=y # CONFIG_I2C_PCA_ISA is not set # -# Miscellaneous I2C Chip support +# Hardware Sensors Chip support # -# CONFIG_SENSORS_DS1337 is not set -# CONFIG_SENSORS_DS1374 is not set -CONFIG_SENSORS_EEPROM=m -# CONFIG_SENSORS_PCF8574 is not set -# CONFIG_SENSORS_PCA9539 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_RTC8564 is not set -# CONFIG_SENSORS_MAX6875 is not set -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set - -# -# Hardware Monitoring support -# -CONFIG_HWMON=y -CONFIG_HWMON_VID=m +CONFIG_I2C_SENSOR=m # CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set # CONFIG_SENSORS_ADM1026 is not set # CONFIG_SENSORS_ADM1031 is not set -# CONFIG_SENSORS_ADM9240 is not set # CONFIG_SENSORS_ASB100 is not set -# CONFIG_SENSORS_ATXP1 is not set # CONFIG_SENSORS_DS1621 is not set # CONFIG_SENSORS_FSCHER is not set # CONFIG_SENSORS_FSCPOS is not set @@ -706,21 +662,27 @@ CONFIG_SENSORS_LM85=m # CONFIG_SENSORS_LM92 is not set # CONFIG_SENSORS_MAX1619 is not set # CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_SMSC47M1 is not set # CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_SMSC47M1 is not set # CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83792D is not set # CONFIG_SENSORS_W83L785TS is not set # CONFIG_SENSORS_W83627HF is not set -# CONFIG_SENSORS_W83627EHF is not set -# CONFIG_HWMON_DEBUG_CHIP is not set # -# Misc devices +# Other I2C Chip support # +# CONFIG_SENSORS_DS1337 is not set +CONFIG_SENSORS_EEPROM=m +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set # -# Multimedia Capabilities Port drivers +# Misc devices # # @@ -769,7 +731,7 @@ CONFIG_DUMMY_CONSOLE=y # USB support # CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_ARCH_HAS_OHCI is not set # CONFIG_USB is not set # @@ -787,7 +749,6 @@ CONFIG_USB_ARCH_HAS_OHCI=y # CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set -# CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=y CONFIG_EXT3_FS_XATTR=y # CONFIG_EXT3_FS_POSIX_ACL is not set @@ -797,7 +758,6 @@ CONFIG_JBD=y CONFIG_FS_MBCACHE=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set # # XFS support @@ -805,7 +765,6 @@ CONFIG_FS_MBCACHE=y # CONFIG_XFS_FS is not set # CONFIG_MINIX_FS is not set CONFIG_ROMFS_FS=y -CONFIG_INOTIFY=y # CONFIG_QUOTA is not set CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set @@ -832,11 +791,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_PROC_FS=y CONFIG_SYSFS=y +# CONFIG_DEVPTS_FS_XATTR is not set # CONFIG_TMPFS is not set # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set # # Miscellaneous filesystems @@ -853,7 +812,8 @@ CONFIG_JFFS_FS_VERBOSE=0 # CONFIG_JFFS_PROC_FS is not set CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_NAND is not set +# CONFIG_JFFS2_FS_NOR_ECC is not set # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y @@ -875,7 +835,6 @@ CONFIG_NFS_FS=y # CONFIG_NFSD is not set CONFIG_ROOT_NFS=y CONFIG_LOCKD=y -CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set @@ -961,7 +920,6 @@ CONFIG_NLS_DEFAULT="iso8859-1" CONFIG_DEBUG_KERNEL=y # CONFIG_MAGIC_SYSRQ is not set CONFIG_LOG_BUF_SHIFT=16 -CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_SPINLOCK is not set diff --git a/trunk/arch/arm/kernel/time.c b/trunk/arch/arm/kernel/time.c index 69449a818dcc..8880482dcbff 100644 --- a/trunk/arch/arm/kernel/time.c +++ b/trunk/arch/arm/kernel/time.c @@ -102,7 +102,7 @@ static unsigned long next_rtc_update; */ static inline void do_set_rtc(void) { - if (!ntp_synced() || set_rtc == NULL) + if (time_status & STA_UNSYNC || set_rtc == NULL) return; if (next_rtc_update && @@ -292,7 +292,10 @@ int do_settimeofday(struct timespec *tv) set_normalized_timespec(&xtime, sec, nsec); set_normalized_timespec(&wall_to_monotonic, wtm_sec, wtm_nsec); - ntp_clear(); + time_adjust = 0; /* stop active adjtime() */ + time_status |= STA_UNSYNC; + time_maxerror = NTP_PHASE_LIMIT; + time_esterror = NTP_PHASE_LIMIT; write_sequnlock_irq(&xtime_lock); clock_was_set(); return 0; diff --git a/trunk/arch/arm/mach-clps7500/core.c b/trunk/arch/arm/mach-clps7500/core.c index e216ab8b9e8f..112f1d68fb2b 100644 --- a/trunk/arch/arm/mach-clps7500/core.c +++ b/trunk/arch/arm/mach-clps7500/core.c @@ -354,7 +354,7 @@ static struct plat_serial8250_port serial_platform_data[] = { static struct platform_device serial_device = { .name = "serial8250", - .id = PLAT8250_DEV_PLATFORM, + .id = 0, .dev = { .platform_data = serial_platform_data, }, diff --git a/trunk/arch/arm/mach-ebsa110/core.c b/trunk/arch/arm/mach-ebsa110/core.c index 5aeadfd72143..23c4da10101b 100644 --- a/trunk/arch/arm/mach-ebsa110/core.c +++ b/trunk/arch/arm/mach-ebsa110/core.c @@ -219,7 +219,7 @@ static struct plat_serial8250_port serial_platform_data[] = { static struct platform_device serial_device = { .name = "serial8250", - .id = PLAT8250_DEV_PLATFORM, + .id = 0, .dev = { .platform_data = serial_platform_data, }, diff --git a/trunk/arch/arm/mach-epxa10db/arch.c b/trunk/arch/arm/mach-epxa10db/arch.c index 44c56571d183..7daa021676d0 100644 --- a/trunk/arch/arm/mach-epxa10db/arch.c +++ b/trunk/arch/arm/mach-epxa10db/arch.c @@ -52,7 +52,7 @@ static struct plat_serial8250_port serial_platform_data[] = { static struct platform_device serial_device = { .name = "serial8250", - .id = PLAT8250_DEV_PLATFORM, + .id = 0, .dev = { .platform_data = serial_platform_data, }, diff --git a/trunk/arch/arm/mach-footbridge/Kconfig b/trunk/arch/arm/mach-footbridge/Kconfig index bdd257921cfb..324d9edeec38 100644 --- a/trunk/arch/arm/mach-footbridge/Kconfig +++ b/trunk/arch/arm/mach-footbridge/Kconfig @@ -87,7 +87,6 @@ config FOOTBRIDGE_ADDIN # EBSA285 board in either host or addin mode config ARCH_EBSA285 - select ARCH_MAY_HAVE_PC_FDC bool endif diff --git a/trunk/arch/arm/mach-footbridge/isa.c b/trunk/arch/arm/mach-footbridge/isa.c index 28846c7edaaf..aa3a1fef563e 100644 --- a/trunk/arch/arm/mach-footbridge/isa.c +++ b/trunk/arch/arm/mach-footbridge/isa.c @@ -34,7 +34,7 @@ static struct plat_serial8250_port serial_platform_data[] = { static struct platform_device serial_device = { .name = "serial8250", - .id = PLAT8250_DEV_PLATFORM, + .id = 0, .dev = { .platform_data = serial_platform_data, }, diff --git a/trunk/arch/arm/mach-h720x/cpu-h7202.c b/trunk/arch/arm/mach-h720x/cpu-h7202.c index a4a7c0125d03..4b3199319e68 100644 --- a/trunk/arch/arm/mach-h720x/cpu-h7202.c +++ b/trunk/arch/arm/mach-h720x/cpu-h7202.c @@ -90,7 +90,7 @@ static struct plat_serial8250_port serial_platform_data[] = { static struct platform_device serial_device = { .name = "serial8250", - .id = PLAT8250_DEV_PLATFORM, + .id = 0, .dev = { .platform_data = serial_platform_data, }, diff --git a/trunk/arch/arm/mach-iop3xx/iop321-time.c b/trunk/arch/arm/mach-iop3xx/iop321-time.c index 0039793b694a..d53af1669502 100644 --- a/trunk/arch/arm/mach-iop3xx/iop321-time.c +++ b/trunk/arch/arm/mach-iop3xx/iop321-time.c @@ -60,7 +60,7 @@ static unsigned long iop321_gettimeoffset(void) /* * Now convert them to usec. */ - usec = (unsigned long)(elapsed / (CLOCK_TICK_RATE/1000000)); + usec = (unsigned long)(elapsed * (tick_nsec / 1000)) / LATCH; return usec; } diff --git a/trunk/arch/arm/mach-iop3xx/iop331-time.c b/trunk/arch/arm/mach-iop3xx/iop331-time.c index 8eddfac7e2b0..1a6d9d661e4b 100644 --- a/trunk/arch/arm/mach-iop3xx/iop331-time.c +++ b/trunk/arch/arm/mach-iop3xx/iop331-time.c @@ -58,7 +58,7 @@ static unsigned long iop331_gettimeoffset(void) /* * Now convert them to usec. */ - usec = (unsigned long)(elapsed / (CLOCK_TICK_RATE/1000000)); + usec = (unsigned long)(elapsed * (tick_nsec / 1000)) / LATCH; return usec; } diff --git a/trunk/arch/arm/mach-ixp2000/core.c b/trunk/arch/arm/mach-ixp2000/core.c index 74bd2fd602d4..781d10ae00b7 100644 --- a/trunk/arch/arm/mach-ixp2000/core.c +++ b/trunk/arch/arm/mach-ixp2000/core.c @@ -174,7 +174,7 @@ static struct resource ixp2000_uart_resource = { static struct platform_device ixp2000_serial_device = { .name = "serial8250", - .id = PLAT8250_DEV_PLATFORM, + .id = 0, .dev = { .platform_data = ixp2000_serial_port, }, @@ -382,7 +382,7 @@ static void ixp2000_GPIO_irq_unmask(unsigned int irq) static struct irqchip ixp2000_GPIO_irq_chip = { .ack = ixp2000_GPIO_irq_mask_ack, .mask = ixp2000_GPIO_irq_mask, - .unmask = ixp2000_GPIO_irq_unmask, + .unmask = ixp2000_GPIO_irq_unmask .set_type = ixp2000_GPIO_irq_type, }; diff --git a/trunk/arch/arm/mach-ixp4xx/common.c b/trunk/arch/arm/mach-ixp4xx/common.c index 52ad11328e96..0422e906cc9a 100644 --- a/trunk/arch/arm/mach-ixp4xx/common.c +++ b/trunk/arch/arm/mach-ixp4xx/common.c @@ -179,17 +179,17 @@ static void ixp4xx_irq_level_unmask(unsigned int irq) } static struct irqchip ixp4xx_irq_level_chip = { - .ack = ixp4xx_irq_mask, - .mask = ixp4xx_irq_mask, - .unmask = ixp4xx_irq_level_unmask, - .set_type = ixp4xx_set_irq_type, + .ack = ixp4xx_irq_mask, + .mask = ixp4xx_irq_mask, + .unmask = ixp4xx_irq_level_unmask, + .type = ixp4xx_set_irq_type }; static struct irqchip ixp4xx_irq_edge_chip = { - .ack = ixp4xx_irq_ack, - .mask = ixp4xx_irq_mask, - .unmask = ixp4xx_irq_unmask, - .set_type = ixp4xx_set_irq_type, + .ack = ixp4xx_irq_ack, + .mask = ixp4xx_irq_mask, + .unmask = ixp4xx_irq_unmask, + .type = ixp4xx_set_irq_type }; static void ixp4xx_config_irq(unsigned irq, enum ixp4xx_irq_type type) diff --git a/trunk/arch/arm/mach-ixp4xx/coyote-setup.c b/trunk/arch/arm/mach-ixp4xx/coyote-setup.c index 050c92768913..8b2f25322452 100644 --- a/trunk/arch/arm/mach-ixp4xx/coyote-setup.c +++ b/trunk/arch/arm/mach-ixp4xx/coyote-setup.c @@ -66,7 +66,7 @@ static struct plat_serial8250_port coyote_uart_data[] = { static struct platform_device coyote_uart = { .name = "serial8250", - .id = PLAT8250_DEV_PLATFORM, + .id = 0, .dev = { .platform_data = coyote_uart_data, }, diff --git a/trunk/arch/arm/mach-ixp4xx/gtwx5715-setup.c b/trunk/arch/arm/mach-ixp4xx/gtwx5715-setup.c index 29a6d02fa851..3fd92c5cbaa8 100644 --- a/trunk/arch/arm/mach-ixp4xx/gtwx5715-setup.c +++ b/trunk/arch/arm/mach-ixp4xx/gtwx5715-setup.c @@ -93,7 +93,7 @@ static struct plat_serial8250_port gtwx5715_uart_platform_data[] = { static struct platform_device gtwx5715_uart_device = { .name = "serial8250", - .id = PLAT8250_DEV_PLATFORM, + .id = 0, .dev = { .platform_data = gtwx5715_uart_platform_data, }, diff --git a/trunk/arch/arm/mach-ixp4xx/ixdp425-setup.c b/trunk/arch/arm/mach-ixp4xx/ixdp425-setup.c index ae1fa099d5fa..6c14ff3c23a0 100644 --- a/trunk/arch/arm/mach-ixp4xx/ixdp425-setup.c +++ b/trunk/arch/arm/mach-ixp4xx/ixdp425-setup.c @@ -96,7 +96,7 @@ static struct plat_serial8250_port ixdp425_uart_data[] = { static struct platform_device ixdp425_uart = { .name = "serial8250", - .id = PLAT8250_DEV_PLATFORM, + .id = 0, .dev.platform_data = ixdp425_uart_data, .num_resources = 2, .resource = ixdp425_uart_resources diff --git a/trunk/arch/arm/mach-omap1/Kconfig b/trunk/arch/arm/mach-omap1/Kconfig index 27fc2e8e5fca..7408ac94f771 100644 --- a/trunk/arch/arm/mach-omap1/Kconfig +++ b/trunk/arch/arm/mach-omap1/Kconfig @@ -47,14 +47,6 @@ config MACH_OMAP_OSK TI OMAP 5912 OSK (OMAP Starter Kit) board support. Say Y here if you have such a board. -config OMAP_OSK_MISTRAL - bool "Mistral QVGA board Support" - depends on MACH_OMAP_OSK - help - The OSK supports an optional add-on board with a Quarter-VGA - touchscreen, PDA-ish buttons, a resume button, bicolor LED, - and camera connector. Say Y here if you have this board. - config MACH_OMAP_PERSEUS2 bool "TI Perseus2" depends on ARCH_OMAP1 && ARCH_OMAP730 diff --git a/trunk/arch/arm/mach-omap1/Makefile b/trunk/arch/arm/mach-omap1/Makefile index 181a93deaaee..d386fd913f0c 100644 --- a/trunk/arch/arm/mach-omap1/Makefile +++ b/trunk/arch/arm/mach-omap1/Makefile @@ -3,7 +3,7 @@ # # Common support -obj-y := io.o id.o irq.o time.o serial.o devices.o +obj-y := io.o id.o irq.o time.o serial.o led-y := leds.o # Specific board support @@ -23,7 +23,6 @@ endif # LEDs support led-$(CONFIG_MACH_OMAP_H2) += leds-h2p2-debug.o -led-$(CONFIG_MACH_OMAP_H3) += leds-h2p2-debug.o led-$(CONFIG_MACH_OMAP_INNOVATOR) += leds-innovator.o led-$(CONFIG_MACH_OMAP_PERSEUS2) += leds-h2p2-debug.o led-$(CONFIG_MACH_OMAP_OSK) += leds-osk.o diff --git a/trunk/arch/arm/mach-omap1/board-generic.c b/trunk/arch/arm/mach-omap1/board-generic.c index c209c7172a9a..122796ebe8f5 100644 --- a/trunk/arch/arm/mach-omap1/board-generic.c +++ b/trunk/arch/arm/mach-omap1/board-generic.c @@ -48,43 +48,19 @@ static struct omap_usb_config generic1510_usb_config __initdata = { #if defined(CONFIG_ARCH_OMAP16XX) static struct omap_usb_config generic1610_usb_config __initdata = { -#ifdef CONFIG_USB_OTG - .otg = 1, -#endif .register_host = 1, .register_dev = 1, .hmc_mode = 16, .pins[0] = 6, }; - -static struct omap_mmc_config generic_mmc_config __initdata = { - .mmc [0] = { - .enabled = 0, - .wire4 = 0, - .wp_pin = -1, - .power_pin = -1, - .switch_pin = -1, - }, - .mmc [1] = { - .enabled = 0, - .wire4 = 0, - .wp_pin = -1, - .power_pin = -1, - .switch_pin = -1, - }, -}; - #endif static struct omap_board_config_kernel generic_config[] = { { OMAP_TAG_USB, NULL }, - { OMAP_TAG_MMC, &generic_mmc_config }, }; static void __init omap_generic_init(void) { - const struct omap_uart_config *uart_conf; - /* * Make sure the serial ports are muxed on at this point. * You have to mux them off in device drivers later on @@ -100,18 +76,6 @@ static void __init omap_generic_init(void) generic_config[0].data = &generic1610_usb_config; } #endif - - uart_conf = omap_get_config(OMAP_TAG_UART, struct omap_uart_config); - if (uart_conf != NULL) { - unsigned int enabled_ports, i; - - enabled_ports = uart_conf->enabled_uarts; - for (i = 0; i < 3; i++) { - if (!(enabled_ports & (1 << i))) - generic_serial_ports[i] = 0; - } - } - omap_board_config = generic_config; omap_board_config_size = ARRAY_SIZE(generic_config); omap_serial_init(generic_serial_ports); @@ -119,7 +83,7 @@ static void __init omap_generic_init(void) static void __init omap_generic_map_io(void) { - omap_map_common_io(); + omap_map_common_io() } MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710") diff --git a/trunk/arch/arm/mach-omap1/board-h2.c b/trunk/arch/arm/mach-omap1/board-h2.c index d46a70063b0c..f4983ee95ab4 100644 --- a/trunk/arch/arm/mach-omap1/board-h2.c +++ b/trunk/arch/arm/mach-omap1/board-h2.c @@ -33,7 +33,6 @@ #include #include -#include #include #include #include @@ -81,7 +80,8 @@ static struct flash_platform_data h2_flash_data = { }; static struct resource h2_flash_resource = { - /* This is on CS3, wherever it's mapped */ + .start = OMAP_CS2B_PHYS, + .end = OMAP_CS2B_PHYS + OMAP_CS2B_SIZE - 1, .flags = IORESOURCE_MEM, }; @@ -126,9 +126,10 @@ static void __init h2_init_smc91x(void) printk("Error requesting gpio 0 for smc91x irq\n"); return; } + omap_set_gpio_edge_ctrl(0, OMAP_GPIO_FALLING_EDGE); } -static void __init h2_init_irq(void) +void h2_init_irq(void) { omap_init_irq(); omap_gpio_init(); @@ -151,13 +152,9 @@ static struct omap_usb_config h2_usb_config __initdata = { }; static struct omap_mmc_config h2_mmc_config __initdata = { - .mmc [0] = { - .enabled = 1, - .wire4 = 1, - .wp_pin = OMAP_MPUIO(3), - .power_pin = -1, /* tps65010 gpio3 */ - .switch_pin = OMAP_MPUIO(1), - }, + .mmc_blocks = 1, + .mmc1_power_pin = -1, /* tps65010 gpio3 */ + .mmc1_switch_pin = OMAP_MPUIO(1), }; static struct omap_board_config_kernel h2_config[] = { @@ -167,16 +164,6 @@ static struct omap_board_config_kernel h2_config[] = { static void __init h2_init(void) { - /* NOTE: revC boards support NAND-boot, which can put NOR on CS2B - * and NAND (either 16bit or 8bit) on CS3. - */ - h2_flash_resource.end = h2_flash_resource.start = omap_cs3_phys(); - h2_flash_resource.end += SZ_32M - 1; - - /* MMC: card detect and WP */ - // omap_cfg_reg(U19_ARMIO1); /* CD */ - omap_cfg_reg(BALLOUT_V8_ARMIO3); /* WP */ - platform_add_devices(h2_devices, ARRAY_SIZE(h2_devices)); omap_board_config = h2_config; omap_board_config_size = ARRAY_SIZE(h2_config); diff --git a/trunk/arch/arm/mach-omap1/board-h3.c b/trunk/arch/arm/mach-omap1/board-h3.c index 2798613696fa..7cd419d61b40 100644 --- a/trunk/arch/arm/mach-omap1/board-h3.c +++ b/trunk/arch/arm/mach-omap1/board-h3.c @@ -82,7 +82,8 @@ static struct flash_platform_data h3_flash_data = { }; static struct resource h3_flash_resource = { - /* This is on CS3, wherever it's mapped */ + .start = OMAP_CS2B_PHYS, + .end = OMAP_CS2B_PHYS + OMAP_CS2B_SIZE - 1, .flags = IORESOURCE_MEM, }; @@ -160,26 +161,13 @@ static struct omap_usb_config h3_usb_config __initdata = { .pins[1] = 3, }; -static struct omap_mmc_config h3_mmc_config __initdata = { - .mmc[0] = { - .enabled = 1, - .power_pin = -1, /* tps65010 GPIO4 */ - .switch_pin = OMAP_MPUIO(1), - }, -}; - static struct omap_board_config_kernel h3_config[] = { { OMAP_TAG_USB, &h3_usb_config }, - { OMAP_TAG_MMC, &h3_mmc_config }, }; static void __init h3_init(void) { - h3_flash_resource.end = h3_flash_resource.start = omap_cs3_phys(); - h3_flash_resource.end += OMAP_CS3_SIZE - 1; (void) platform_add_devices(devices, ARRAY_SIZE(devices)); - omap_board_config = h3_config; - omap_board_config_size = ARRAY_SIZE(h3_config); } static void __init h3_init_smc91x(void) @@ -189,6 +177,7 @@ static void __init h3_init_smc91x(void) printk("Error requesting gpio 40 for smc91x irq\n"); return; } + omap_set_gpio_edge_ctrl(40, OMAP_GPIO_FALLING_EDGE); } void h3_init_irq(void) diff --git a/trunk/arch/arm/mach-omap1/board-innovator.c b/trunk/arch/arm/mach-omap1/board-innovator.c index df0312b596e4..91de60a91ef8 100644 --- a/trunk/arch/arm/mach-omap1/board-innovator.c +++ b/trunk/arch/arm/mach-omap1/board-innovator.c @@ -29,7 +29,6 @@ #include #include -#include #include #include #include @@ -174,6 +173,7 @@ static void __init innovator_init_smc91x(void) printk("Error requesting gpio 0 for smc91x irq\n"); return; } + omap_set_gpio_edge_ctrl(0, OMAP_GPIO_RISING_EDGE); } } @@ -220,19 +220,8 @@ static struct omap_usb_config h2_usb_config __initdata = { }; #endif -static struct omap_mmc_config innovator_mmc_config __initdata = { - .mmc [0] = { - .enabled = 1, - .wire4 = 1, - .wp_pin = OMAP_MPUIO(3), - .power_pin = -1, /* FPGA F3 UIO42 */ - .switch_pin = -1, /* FPGA F4 UIO43 */ - }, -}; - static struct omap_board_config_kernel innovator_config[] = { { OMAP_TAG_USB, NULL }, - { OMAP_TAG_MMC, &innovator_mmc_config }, }; static void __init innovator_init(void) diff --git a/trunk/arch/arm/mach-omap1/board-netstar.c b/trunk/arch/arm/mach-omap1/board-netstar.c index d904e643f5ec..6750b2014092 100644 --- a/trunk/arch/arm/mach-omap1/board-netstar.c +++ b/trunk/arch/arm/mach-omap1/board-netstar.c @@ -75,15 +75,16 @@ static void __init netstar_init(void) mdelay(50); /* 50ms until PHY ready */ /* smc91x interrupt pin */ omap_request_gpio(8); + omap_set_gpio_edge_ctrl(8, OMAP_GPIO_RISING_EDGE); omap_request_gpio(12); omap_request_gpio(13); omap_request_gpio(14); omap_request_gpio(15); - set_irq_type(OMAP_GPIO_IRQ(12), IRQT_FALLING); - set_irq_type(OMAP_GPIO_IRQ(13), IRQT_FALLING); - set_irq_type(OMAP_GPIO_IRQ(14), IRQT_FALLING); - set_irq_type(OMAP_GPIO_IRQ(15), IRQT_FALLING); + omap_set_gpio_edge_ctrl(12, OMAP_GPIO_FALLING_EDGE); + omap_set_gpio_edge_ctrl(13, OMAP_GPIO_FALLING_EDGE); + omap_set_gpio_edge_ctrl(14, OMAP_GPIO_FALLING_EDGE); + omap_set_gpio_edge_ctrl(15, OMAP_GPIO_FALLING_EDGE); platform_add_devices(netstar_devices, ARRAY_SIZE(netstar_devices)); diff --git a/trunk/arch/arm/mach-omap1/board-osk.c b/trunk/arch/arm/mach-omap1/board-osk.c index 21103df50415..6844e536c698 100644 --- a/trunk/arch/arm/mach-omap1/board-osk.c +++ b/trunk/arch/arm/mach-omap1/board-osk.c @@ -29,16 +29,11 @@ #include #include #include -#include - -#include -#include #include #include #include #include -#include #include #include @@ -46,56 +41,12 @@ #include #include -static int __initdata osk_serial_ports[OMAP_MAX_NR_PORTS] = {1, 0, 0}; - -static struct mtd_partition osk_partitions[] = { - /* bootloader (U-Boot, etc) in first sector */ - { - .name = "bootloader", - .offset = 0, - .size = SZ_128K, - .mask_flags = MTD_WRITEABLE, /* force read-only */ - }, - /* bootloader params in the next sector */ - { - .name = "params", - .offset = MTDPART_OFS_APPEND, - .size = SZ_128K, - .mask_flags = 0, - }, { - .name = "kernel", - .offset = MTDPART_OFS_APPEND, - .size = SZ_2M, - .mask_flags = 0 - }, { - .name = "filesystem", - .offset = MTDPART_OFS_APPEND, - .size = MTDPART_SIZ_FULL, - .mask_flags = 0 - } -}; - -static struct flash_platform_data osk_flash_data = { - .map_name = "cfi_probe", - .width = 2, - .parts = osk_partitions, - .nr_parts = ARRAY_SIZE(osk_partitions), +static struct map_desc osk5912_io_desc[] __initdata = { +{ OMAP_OSK_NOR_FLASH_BASE, OMAP_OSK_NOR_FLASH_START, OMAP_OSK_NOR_FLASH_SIZE, + MT_DEVICE }, }; -static struct resource osk_flash_resource = { - /* this is on CS3, wherever it's mapped */ - .flags = IORESOURCE_MEM, -}; - -static struct platform_device osk5912_flash_device = { - .name = "omapflash", - .id = 0, - .dev = { - .platform_data = &osk_flash_data, - }, - .num_resources = 1, - .resource = &osk_flash_resource, -}; +static int __initdata osk_serial_ports[OMAP_MAX_NR_PORTS] = {1, 0, 0}; static struct resource osk5912_smc91x_resources[] = { [0] = { @@ -135,16 +86,9 @@ static struct platform_device osk5912_cf_device = { .resource = osk5912_cf_resources, }; -static struct platform_device osk5912_mcbsp1_device = { - .name = "omap_mcbsp", - .id = 1, -}; - static struct platform_device *osk5912_devices[] __initdata = { - &osk5912_flash_device, &osk5912_smc91x_device, &osk5912_cf_device, - &osk5912_mcbsp1_device, }; static void __init osk_init_smc91x(void) @@ -153,6 +97,7 @@ static void __init osk_init_smc91x(void) printk("Error requesting gpio 0 for smc91x irq\n"); return; } + omap_set_gpio_edge_ctrl(0, OMAP_GPIO_RISING_EDGE); /* Check EMIFS wait states to fix errors with SMC_GET_PKT_HDR */ EMIFS_CCS(1) |= 0x2; @@ -165,11 +110,11 @@ static void __init osk_init_cf(void) printk("Error requesting gpio 62 for CF irq\n"); return; } - /* the CF I/O IRQ is really active-low */ - set_irq_type(OMAP_GPIO_IRQ(62), IRQT_FALLING); + /* it's really active-low */ + omap_set_gpio_edge_ctrl(62, OMAP_GPIO_FALLING_EDGE); } -static void __init osk_init_irq(void) +void osk_init_irq(void) { omap_init_irq(); omap_gpio_init(); @@ -197,69 +142,18 @@ static struct omap_board_config_kernel osk_config[] = { { OMAP_TAG_USB, &osk_usb_config }, }; -#ifdef CONFIG_OMAP_OSK_MISTRAL - -#ifdef CONFIG_PM -static irqreturn_t -osk_mistral_wake_interrupt(int irq, void *ignored, struct pt_regs *regs) -{ - return IRQ_HANDLED; -} -#endif - -static void __init osk_mistral_init(void) -{ - /* FIXME here's where to feed in framebuffer, touchpad, and - * keyboard setup ... not in the drivers for those devices! - * - * NOTE: we could actually tell if there's a Mistral board - * attached, e.g. by trying to read something from the ads7846. - * But this is too early for that... - */ - - /* the sideways button (SW1) is for use as a "wakeup" button */ - omap_cfg_reg(N15_1610_MPUIO2); - if (omap_request_gpio(OMAP_MPUIO(2)) == 0) { - int ret = 0; - omap_set_gpio_direction(OMAP_MPUIO(2), 1); - set_irq_type(OMAP_GPIO_IRQ(OMAP_MPUIO(2)), IRQT_RISING); -#ifdef CONFIG_PM - /* share the IRQ in case someone wants to use the - * button for more than wakeup from system sleep. - */ - ret = request_irq(OMAP_GPIO_IRQ(OMAP_MPUIO(2)), - &osk_mistral_wake_interrupt, - SA_SHIRQ, "mistral_wakeup", - &osk_mistral_wake_interrupt); - if (ret != 0) { - omap_free_gpio(OMAP_MPUIO(2)); - printk(KERN_ERR "OSK+Mistral: no wakeup irq, %d?\n", - ret); - } else - enable_irq_wake(OMAP_GPIO_IRQ(OMAP_MPUIO(2))); -#endif - } else - printk(KERN_ERR "OSK+Mistral: wakeup button is awol\n"); -} -#else -static void __init osk_mistral_init(void) { } -#endif - static void __init osk_init(void) { - osk_flash_resource.end = osk_flash_resource.start = omap_cs3_phys(); - osk_flash_resource.end += SZ_32M - 1; platform_add_devices(osk5912_devices, ARRAY_SIZE(osk5912_devices)); omap_board_config = osk_config; omap_board_config_size = ARRAY_SIZE(osk_config); USB_TRANSCEIVER_CTRL_REG |= (3 << 1); - - osk_mistral_init(); } static void __init osk_map_io(void) { omap_map_common_io(); + iotable_init(osk5912_io_desc, ARRAY_SIZE(osk5912_io_desc)); omap_serial_init(osk_serial_ports); } diff --git a/trunk/arch/arm/mach-omap1/board-perseus2.c b/trunk/arch/arm/mach-omap1/board-perseus2.c index 107c68c8ab54..213317392d9b 100644 --- a/trunk/arch/arm/mach-omap1/board-perseus2.c +++ b/trunk/arch/arm/mach-omap1/board-perseus2.c @@ -24,7 +24,6 @@ #include #include -#include #include #include #include @@ -84,8 +83,8 @@ static struct flash_platform_data p2_flash_data = { }; static struct resource p2_flash_resource = { - .start = OMAP_CS0_PHYS, - .end = OMAP_CS0_PHYS + SZ_32M - 1, + .start = OMAP_FLASH_0_START, + .end = OMAP_FLASH_0_START + OMAP_FLASH_0_SIZE - 1, .flags = IORESOURCE_MEM, }; diff --git a/trunk/arch/arm/mach-omap1/board-voiceblue.c b/trunk/arch/arm/mach-omap1/board-voiceblue.c index bf30b1acda0b..e42281988990 100644 --- a/trunk/arch/arm/mach-omap1/board-voiceblue.c +++ b/trunk/arch/arm/mach-omap1/board-voiceblue.c @@ -25,14 +25,13 @@ #include #include #include -#include #include -#include #include -#include #include +#include #include +#include extern void omap_init_time(void); extern int omap_gpio_init(void); @@ -75,7 +74,7 @@ static struct plat_serial8250_port voiceblue_ports[] = { static struct platform_device serial_device = { .name = "serial8250", - .id = PLAT8250_DEV_PLATFORM1, + .id = 1, .dev = { .platform_data = voiceblue_ports, }, @@ -87,27 +86,6 @@ static int __init ext_uart_init(void) } arch_initcall(ext_uart_init); -static struct flash_platform_data voiceblue_flash_data = { - .map_name = "cfi_probe", - .width = 2, -}; - -static struct resource voiceblue_flash_resource = { - .start = OMAP_CS0_PHYS, - .end = OMAP_CS0_PHYS + SZ_32M - 1, - .flags = IORESOURCE_MEM, -}; - -static struct platform_device voiceblue_flash_device = { - .name = "omapflash", - .id = 0, - .dev = { - .platform_data = &voiceblue_flash_data, - }, - .num_resources = 1, - .resource = &voiceblue_flash_resource, -}; - static struct resource voiceblue_smc91x_resources[] = { [0] = { .start = OMAP_CS2_PHYS + 0x300, @@ -129,7 +107,6 @@ static struct platform_device voiceblue_smc91x_device = { }; static struct platform_device *voiceblue_devices[] __initdata = { - &voiceblue_flash_device, &voiceblue_smc91x_device, }; @@ -142,17 +119,8 @@ static struct omap_usb_config voiceblue_usb_config __initdata = { .pins[2] = 6, }; -static struct omap_mmc_config voiceblue_mmc_config __initdata = { - .mmc[0] = { - .enabled = 1, - .power_pin = 2, - .switch_pin = -1, - }, -}; - static struct omap_board_config_kernel voiceblue_config[] = { { OMAP_TAG_USB, &voiceblue_usb_config }, - { OMAP_TAG_MMC, &voiceblue_mmc_config }, }; static void __init voiceblue_init_irq(void) @@ -163,6 +131,9 @@ static void __init voiceblue_init_irq(void) static void __init voiceblue_init(void) { + /* There is a good chance board is going up, so enable Power LED + * (it is connected through invertor) */ + omap_writeb(0x00, OMAP_LPG1_LCR); /* Watchdog */ omap_request_gpio(0); /* smc91x reset */ @@ -174,6 +145,7 @@ static void __init voiceblue_init(void) mdelay(50); /* 50ms until PHY ready */ /* smc91x interrupt pin */ omap_request_gpio(8); + omap_set_gpio_edge_ctrl(8, OMAP_GPIO_RISING_EDGE); /* 16C554 reset*/ omap_request_gpio(6); omap_set_gpio_direction(6, 0); @@ -183,19 +155,14 @@ static void __init voiceblue_init(void) omap_request_gpio(13); omap_request_gpio(14); omap_request_gpio(15); - set_irq_type(OMAP_GPIO_IRQ(12), IRQT_RISING); - set_irq_type(OMAP_GPIO_IRQ(13), IRQT_RISING); - set_irq_type(OMAP_GPIO_IRQ(14), IRQT_RISING); - set_irq_type(OMAP_GPIO_IRQ(15), IRQT_RISING); + omap_set_gpio_edge_ctrl(12, OMAP_GPIO_RISING_EDGE); + omap_set_gpio_edge_ctrl(13, OMAP_GPIO_RISING_EDGE); + omap_set_gpio_edge_ctrl(14, OMAP_GPIO_RISING_EDGE); + omap_set_gpio_edge_ctrl(15, OMAP_GPIO_RISING_EDGE); platform_add_devices(voiceblue_devices, ARRAY_SIZE(voiceblue_devices)); omap_board_config = voiceblue_config; omap_board_config_size = ARRAY_SIZE(voiceblue_config); - - /* There is a good chance board is going up, so enable power LED - * (it is connected through invertor) */ - omap_writeb(0x00, OMAP_LPG1_LCR); - omap_writeb(0x00, OMAP_LPG1_PMR); /* Disable clock */ } static int __initdata omap_serial_ports[OMAP_MAX_NR_PORTS] = {1, 1, 1}; @@ -217,9 +184,9 @@ static int panic_event(struct notifier_block *this, unsigned long event, if (test_and_set_bit(MACHINE_PANICED, &machine_state)) return NOTIFY_DONE; - /* Flash power LED */ + /* Flash Power LED + * (TODO: Enable clock right way (enabled in bootloader already)) */ omap_writeb(0x78, OMAP_LPG1_LCR); - omap_writeb(0x01, OMAP_LPG1_PMR); /* Enable clock */ return NOTIFY_DONE; } @@ -228,14 +195,15 @@ static struct notifier_block panic_block = { .notifier_call = panic_event, }; -static int __init voiceblue_setup(void) +static int __init setup_notifier(void) { /* Setup panic notifier */ notifier_chain_register(&panic_notifier_list, &panic_block); return 0; } -postcore_initcall(voiceblue_setup); + +postcore_initcall(setup_notifier); static int wdt_gpio_state; diff --git a/trunk/arch/arm/mach-omap1/devices.c b/trunk/arch/arm/mach-omap1/devices.c deleted file mode 100644 index e8b3981444cd..000000000000 --- a/trunk/arch/arm/mach-omap1/devices.c +++ /dev/null @@ -1,351 +0,0 @@ -/* - * linux/arch/arm/mach-omap1/devices.c - * - * OMAP1 platform device setup/initialization - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - */ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - - -static void omap_nop_release(struct device *dev) -{ - /* Nothing */ -} - -/*-------------------------------------------------------------------------*/ - -#if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE) - -#define OMAP_I2C_BASE 0xfffb3800 - -static struct resource i2c_resources[] = { - { - .start = OMAP_I2C_BASE, - .end = OMAP_I2C_BASE + 0x3f, - .flags = IORESOURCE_MEM, - }, - { - .start = INT_I2C, - .flags = IORESOURCE_IRQ, - }, -}; - -/* DMA not used; works around erratum writing to non-empty i2c fifo */ - -static struct platform_device omap_i2c_device = { - .name = "i2c_omap", - .id = -1, - .dev = { - .release = omap_nop_release, - }, - .num_resources = ARRAY_SIZE(i2c_resources), - .resource = i2c_resources, -}; - -static void omap_init_i2c(void) -{ - /* FIXME define and use a boot tag, in case of boards that - * either don't wire up I2C, or chips that mux it differently... - * it can include clocking and address info, maybe more. - */ - omap_cfg_reg(I2C_SCL); - omap_cfg_reg(I2C_SDA); - - (void) platform_device_register(&omap_i2c_device); -} -#else -static inline void omap_init_i2c(void) {} -#endif - -/*-------------------------------------------------------------------------*/ - -#if defined(CONFIG_OMAP1610_IR) || defined(CONFIG_OMAP161O_IR_MODULE) - -static u64 irda_dmamask = 0xffffffff; - -static struct platform_device omap1610ir_device = { - .name = "omap1610-ir", - .id = -1, - .dev = { - .release = omap_nop_release, - .dma_mask = &irda_dmamask, - }, -}; - -static void omap_init_irda(void) -{ - /* FIXME define and use a boot tag, members something like: - * u8 uart; // uart1, or uart3 - * ... but driver only handles uart3 for now - * s16 fir_sel; // gpio for SIR vs FIR - * ... may prefer a callback for SIR/MIR/FIR mode select; - * while h2 uses a GPIO, H3 uses a gpio expander - */ - if (machine_is_omap_h2() - || machine_is_omap_h3()) - (void) platform_device_register(&omap1610ir_device); -} -#else -static inline void omap_init_irda(void) {} -#endif - -/*-------------------------------------------------------------------------*/ - -#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) - -#define OMAP_MMC1_BASE 0xfffb7800 -#define OMAP_MMC2_BASE 0xfffb7c00 /* omap16xx only */ - -static struct omap_mmc_conf mmc1_conf; - -static u64 mmc1_dmamask = 0xffffffff; - -static struct resource mmc1_resources[] = { - { - .start = IO_ADDRESS(OMAP_MMC1_BASE), - .end = IO_ADDRESS(OMAP_MMC1_BASE) + 0x7f, - .flags = IORESOURCE_MEM, - }, - { - .start = INT_MMC, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device mmc_omap_device1 = { - .name = "mmci-omap", - .id = 1, - .dev = { - .release = omap_nop_release, - .dma_mask = &mmc1_dmamask, - .platform_data = &mmc1_conf, - }, - .num_resources = ARRAY_SIZE(mmc1_resources), - .resource = mmc1_resources, -}; - -#ifdef CONFIG_ARCH_OMAP16XX - -static struct omap_mmc_conf mmc2_conf; - -static u64 mmc2_dmamask = 0xffffffff; - -static struct resource mmc2_resources[] = { - { - .start = IO_ADDRESS(OMAP_MMC2_BASE), - .end = IO_ADDRESS(OMAP_MMC2_BASE) + 0x7f, - .flags = IORESOURCE_MEM, - }, - { - .start = INT_1610_MMC2, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device mmc_omap_device2 = { - .name = "mmci-omap", - .id = 2, - .dev = { - .release = omap_nop_release, - .dma_mask = &mmc2_dmamask, - .platform_data = &mmc2_conf, - }, - .num_resources = ARRAY_SIZE(mmc2_resources), - .resource = mmc2_resources, -}; -#endif - -static void __init omap_init_mmc(void) -{ - const struct omap_mmc_config *mmc_conf; - const struct omap_mmc_conf *mmc; - - /* NOTE: assumes MMC was never (wrongly) enabled */ - mmc_conf = omap_get_config(OMAP_TAG_MMC, struct omap_mmc_config); - if (!mmc_conf) - return; - - /* block 1 is always available and has just one pinout option */ - mmc = &mmc_conf->mmc[0]; - if (mmc->enabled) { - omap_cfg_reg(MMC_CMD); - omap_cfg_reg(MMC_CLK); - omap_cfg_reg(MMC_DAT0); - if (cpu_is_omap1710()) { - omap_cfg_reg(M15_1710_MMC_CLKI); - omap_cfg_reg(P19_1710_MMC_CMDDIR); - omap_cfg_reg(P20_1710_MMC_DATDIR0); - } - if (mmc->wire4) { - omap_cfg_reg(MMC_DAT1); - /* NOTE: DAT2 can be on W10 (here) or M15 */ - if (!mmc->nomux) - omap_cfg_reg(MMC_DAT2); - omap_cfg_reg(MMC_DAT3); - } - mmc1_conf = *mmc; - (void) platform_device_register(&mmc_omap_device1); - } - -#ifdef CONFIG_ARCH_OMAP16XX - /* block 2 is on newer chips, and has many pinout options */ - mmc = &mmc_conf->mmc[1]; - if (mmc->enabled) { - if (!mmc->nomux) { - omap_cfg_reg(Y8_1610_MMC2_CMD); - omap_cfg_reg(Y10_1610_MMC2_CLK); - omap_cfg_reg(R18_1610_MMC2_CLKIN); - omap_cfg_reg(W8_1610_MMC2_DAT0); - if (mmc->wire4) { - omap_cfg_reg(V8_1610_MMC2_DAT1); - omap_cfg_reg(W15_1610_MMC2_DAT2); - omap_cfg_reg(R10_1610_MMC2_DAT3); - } - - /* These are needed for the level shifter */ - omap_cfg_reg(V9_1610_MMC2_CMDDIR); - omap_cfg_reg(V5_1610_MMC2_DATDIR0); - omap_cfg_reg(W19_1610_MMC2_DATDIR1); - } - - /* Feedback clock must be set on OMAP-1710 MMC2 */ - if (cpu_is_omap1710()) - omap_writel(omap_readl(MOD_CONF_CTRL_1) | (1 << 24), - MOD_CONF_CTRL_1); - mmc2_conf = *mmc; - (void) platform_device_register(&mmc_omap_device2); - } -#endif - return; -} -#else -static inline void omap_init_mmc(void) {} -#endif - -#if defined(CONFIG_OMAP_RTC) || defined(CONFIG_OMAP_RTC) - -#define OMAP_RTC_BASE 0xfffb4800 - -static struct resource rtc_resources[] = { - { - .start = OMAP_RTC_BASE, - .end = OMAP_RTC_BASE + 0x5f, - .flags = IORESOURCE_MEM, - }, - { - .start = INT_RTC_TIMER, - .flags = IORESOURCE_IRQ, - }, - { - .start = INT_RTC_ALARM, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device omap_rtc_device = { - .name = "omap_rtc", - .id = -1, - .dev = { - .release = omap_nop_release, - }, - .num_resources = ARRAY_SIZE(rtc_resources), - .resource = rtc_resources, -}; - -static void omap_init_rtc(void) -{ - (void) platform_device_register(&omap_rtc_device); -} -#else -static inline void omap_init_rtc(void) {} -#endif - -/*-------------------------------------------------------------------------*/ - -#if defined(CONFIG_OMAP16XX_WATCHDOG) || defined(CONFIG_OMAP16XX_WATCHDOG_MODULE) - -#define OMAP_WDT_BASE 0xfffeb000 - -static struct resource wdt_resources[] = { - { - .start = OMAP_WDT_BASE, - .end = OMAP_WDT_BASE + 0x4f, - .flags = IORESOURCE_MEM, - }, -}; - -static struct platform_device omap_wdt_device = { - .name = "omap1610_wdt", - .id = -1, - .dev = { - .release = omap_nop_release, - }, - .num_resources = ARRAY_SIZE(wdt_resources), - .resource = wdt_resources, -}; - -static void omap_init_wdt(void) -{ - (void) platform_device_register(&omap_wdt_device); -} -#else -static inline void omap_init_wdt(void) {} -#endif - - -/*-------------------------------------------------------------------------*/ - -/* - * This gets called after board-specific INIT_MACHINE, and initializes most - * on-chip peripherals accessible on this board (except for few like USB): - * - * (a) Does any "standard config" pin muxing needed. Board-specific - * code will have muxed GPIO pins and done "nonstandard" setup; - * that code could live in the boot loader. - * (b) Populating board-specific platform_data with the data drivers - * rely on to handle wiring variations. - * (c) Creating platform devices as meaningful on this board and - * with this kernel configuration. - * - * Claiming GPIOs, and setting their direction and initial values, is the - * responsibility of the device drivers. So is responding to probe(). - * - * Board-specific knowlege like creating devices or pin setup is to be - * kept out of drivers as much as possible. In particular, pin setup - * may be handled by the boot loader, and drivers should expect it will - * normally have been done by the time they're probed. - */ -static int __init omap_init_devices(void) -{ - /* please keep these calls, and their implementations above, - * in alphabetical order so they're easier to sort through. - */ - omap_init_i2c(); - omap_init_irda(); - omap_init_mmc(); - omap_init_rtc(); - omap_init_wdt(); - - return 0; -} -arch_initcall(omap_init_devices); - diff --git a/trunk/arch/arm/mach-omap1/fpga.c b/trunk/arch/arm/mach-omap1/fpga.c index aca2a120813a..c12a78335625 100644 --- a/trunk/arch/arm/mach-omap1/fpga.c +++ b/trunk/arch/arm/mach-omap1/fpga.c @@ -1,5 +1,5 @@ /* - * linux/arch/arm/mach-omap1/fpga.c + * linux/arch/arm/mach-omap/fpga.c * * Interrupt handler for OMAP-1510 Innovator FPGA * @@ -181,7 +181,7 @@ void omap1510_fpga_init_irq(void) */ omap_request_gpio(13); omap_set_gpio_direction(13, 1); - set_irq_type(OMAP_GPIO_IRQ(13), IRQT_RISING); + omap_set_gpio_edge_ctrl(13, OMAP_GPIO_RISING_EDGE); set_irq_chained_handler(OMAP1510_INT_FPGA, innovator_fpga_IRQ_demux); } diff --git a/trunk/arch/arm/mach-omap1/io.c b/trunk/arch/arm/mach-omap1/io.c index eb8261d7dead..207df0fe934d 100644 --- a/trunk/arch/arm/mach-omap1/io.c +++ b/trunk/arch/arm/mach-omap1/io.c @@ -19,7 +19,6 @@ extern int clk_init(void); extern void omap_check_revision(void); -extern void omap_sram_init(void); /* * The machine specific code may provide the extra mapping besides the @@ -33,6 +32,7 @@ static struct map_desc omap_io_desc[] __initdata = { static struct map_desc omap730_io_desc[] __initdata = { { OMAP730_DSP_BASE, OMAP730_DSP_START, OMAP730_DSP_SIZE, MT_DEVICE }, { OMAP730_DSPREG_BASE, OMAP730_DSPREG_START, OMAP730_DSPREG_SIZE, MT_DEVICE }, + { OMAP730_SRAM_BASE, OMAP730_SRAM_START, OMAP730_SRAM_SIZE, MT_DEVICE } }; #endif @@ -40,13 +40,27 @@ static struct map_desc omap730_io_desc[] __initdata = { static struct map_desc omap1510_io_desc[] __initdata = { { OMAP1510_DSP_BASE, OMAP1510_DSP_START, OMAP1510_DSP_SIZE, MT_DEVICE }, { OMAP1510_DSPREG_BASE, OMAP1510_DSPREG_START, OMAP1510_DSPREG_SIZE, MT_DEVICE }, + { OMAP1510_SRAM_BASE, OMAP1510_SRAM_START, OMAP1510_SRAM_SIZE, MT_DEVICE } }; #endif #if defined(CONFIG_ARCH_OMAP16XX) -static struct map_desc omap16xx_io_desc[] __initdata = { +static struct map_desc omap1610_io_desc[] __initdata = { { OMAP16XX_DSP_BASE, OMAP16XX_DSP_START, OMAP16XX_DSP_SIZE, MT_DEVICE }, { OMAP16XX_DSPREG_BASE, OMAP16XX_DSPREG_START, OMAP16XX_DSPREG_SIZE, MT_DEVICE }, + { OMAP16XX_SRAM_BASE, OMAP16XX_SRAM_START, OMAP1610_SRAM_SIZE, MT_DEVICE } +}; + +static struct map_desc omap5912_io_desc[] __initdata = { + { OMAP16XX_DSP_BASE, OMAP16XX_DSP_START, OMAP16XX_DSP_SIZE, MT_DEVICE }, + { OMAP16XX_DSPREG_BASE, OMAP16XX_DSPREG_START, OMAP16XX_DSPREG_SIZE, MT_DEVICE }, +/* + * The OMAP5912 has 250kByte internal SRAM. Because the mapping is baseed on page + * size (4kByte), it seems that the last 2kByte (=0x800) of the 250kByte are not mapped. + * Add additional 2kByte (0x800) so that the last page is mapped and the last 2kByte + * can be used. + */ + { OMAP16XX_SRAM_BASE, OMAP16XX_SRAM_START, OMAP5912_SRAM_SIZE + 0x800, MT_DEVICE } }; #endif @@ -72,13 +86,14 @@ static void __init _omap_map_io(void) } #endif #if defined(CONFIG_ARCH_OMAP16XX) - if (cpu_is_omap16xx()) { - iotable_init(omap16xx_io_desc, ARRAY_SIZE(omap16xx_io_desc)); + if (cpu_is_omap1610() || cpu_is_omap1710()) { + iotable_init(omap1610_io_desc, ARRAY_SIZE(omap1610_io_desc)); + } + if (cpu_is_omap5912()) { + iotable_init(omap5912_io_desc, ARRAY_SIZE(omap5912_io_desc)); } #endif - omap_sram_init(); - /* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort * on a Posted Write in the TIPB Bridge". */ @@ -93,9 +108,8 @@ static void __init _omap_map_io(void) /* * This should only get called from board specific init */ -void __init omap_map_common_io(void) +void omap_map_common_io(void) { if (!initialized) _omap_map_io(); } - diff --git a/trunk/arch/arm/mach-omap1/irq.c b/trunk/arch/arm/mach-omap1/irq.c index 192ce6055faa..a11b6d807352 100644 --- a/trunk/arch/arm/mach-omap1/irq.c +++ b/trunk/arch/arm/mach-omap1/irq.c @@ -1,5 +1,5 @@ /* - * linux/arch/arm/mach-omap1/irq.c + * linux/arch/arm/mach-omap/irq.c * * Interrupt handler for all OMAP boards * @@ -165,10 +165,10 @@ static struct omap_irq_bank omap1610_irq_banks[] = { #endif static struct irqchip omap_irq_chip = { - .ack = omap_mask_ack_irq, - .mask = omap_mask_irq, - .unmask = omap_unmask_irq, - .set_wake = omap_wake_irq, + .ack = omap_mask_ack_irq, + .mask = omap_mask_irq, + .unmask = omap_unmask_irq, + .wake = omap_wake_irq, }; void __init omap_init_irq(void) diff --git a/trunk/arch/arm/mach-omap1/leds-h2p2-debug.c b/trunk/arch/arm/mach-omap1/leds-h2p2-debug.c index be283cda63dd..ec0d8285f243 100644 --- a/trunk/arch/arm/mach-omap1/leds-h2p2-debug.c +++ b/trunk/arch/arm/mach-omap1/leds-h2p2-debug.c @@ -1,5 +1,5 @@ /* - * linux/arch/arm/mach-omap1/leds-h2p2-debug.c + * linux/arch/arm/mach-omap/leds-h2p2-debug.c * * Copyright 2003 by Texas Instruments Incorporated * @@ -13,7 +13,6 @@ #include #include #include -#include #include #include diff --git a/trunk/arch/arm/mach-omap1/leds-innovator.c b/trunk/arch/arm/mach-omap1/leds-innovator.c index c8ffd1ddcded..8043b7d0f66e 100644 --- a/trunk/arch/arm/mach-omap1/leds-innovator.c +++ b/trunk/arch/arm/mach-omap1/leds-innovator.c @@ -1,5 +1,5 @@ /* - * linux/arch/arm/mach-omap1/leds-innovator.c + * linux/arch/arm/mach-omap/leds-innovator.c */ #include #include diff --git a/trunk/arch/arm/mach-omap1/leds-osk.c b/trunk/arch/arm/mach-omap1/leds-osk.c index 2c8bda847c18..4a0e8b9d4fc3 100644 --- a/trunk/arch/arm/mach-omap1/leds-osk.c +++ b/trunk/arch/arm/mach-omap1/leds-osk.c @@ -1,5 +1,5 @@ /* - * linux/arch/arm/mach-omap1/leds-osk.c + * linux/arch/arm/mach-omap/leds-osk.c * * LED driver for OSK, and optionally Mistral QVGA, boards */ @@ -64,7 +64,7 @@ static void tps_work(void *unused) static DECLARE_WORK(work, tps_work, NULL); -#ifdef CONFIG_OMAP_OSK_MISTRAL +#ifdef CONFIG_FB_OMAP /* For now, all system indicators require the Mistral board, since that * LED can be manipulated without a task context. This LED is either red, @@ -127,7 +127,7 @@ void osk_leds_event(led_event_t evt) hw_led_state = 0; break; -#ifdef CONFIG_OMAP_OSK_MISTRAL +#ifdef CONFIG_FB_OMAP case led_timer: hw_led_state ^= TIMER_LED; @@ -144,7 +144,7 @@ void osk_leds_event(led_event_t evt) mistral_setled(); break; -#endif /* CONFIG_OMAP_OSK_MISTRAL */ +#endif /* CONFIG_FB_OMAP */ /* "green" == tps LED1 (leftmost, normally power-good) * works only with DC adapter, not on battery power! diff --git a/trunk/arch/arm/mach-omap1/leds.c b/trunk/arch/arm/mach-omap1/leds.c index 5c6b1bb6e722..8ab21fe98e1b 100644 --- a/trunk/arch/arm/mach-omap1/leds.c +++ b/trunk/arch/arm/mach-omap1/leds.c @@ -1,5 +1,5 @@ /* - * linux/arch/arm/mach-omap1/leds.c + * linux/arch/arm/mach-omap/leds.c * * OMAP LEDs dispatcher */ @@ -20,9 +20,7 @@ omap_leds_init(void) if (machine_is_omap_innovator()) leds_event = innovator_leds_event; - else if (machine_is_omap_h2() - || machine_is_omap_h3() - || machine_is_omap_perseus2()) + else if (machine_is_omap_h2() || machine_is_omap_perseus2()) leds_event = h2p2_dbg_leds_event; else if (machine_is_omap_osk()) @@ -32,12 +30,8 @@ omap_leds_init(void) return -1; if (machine_is_omap_h2() - || machine_is_omap_h3() || machine_is_omap_perseus2() -#ifdef CONFIG_OMAP_OSK_MISTRAL - || machine_is_omap_osk() -#endif - ) { + || machine_is_omap_osk()) { /* LED1/LED2 pins can be used as GPIO (as done here), or by * the LPG (works even in deep sleep!), to drive a bicolor diff --git a/trunk/arch/arm/mach-omap1/serial.c b/trunk/arch/arm/mach-omap1/serial.c index 40c4f7c40e73..214e5d17c8b5 100644 --- a/trunk/arch/arm/mach-omap1/serial.c +++ b/trunk/arch/arm/mach-omap1/serial.c @@ -24,11 +24,7 @@ #include #include -#include #include -#ifdef CONFIG_PM -#include -#endif static struct clk * uart1_ck = NULL; static struct clk * uart2_ck = NULL; @@ -98,7 +94,7 @@ static struct plat_serial8250_port serial_platform_data[] = { static struct platform_device serial_device = { .name = "serial8250", - .id = PLAT8250_DEV_PLATFORM, + .id = 0, .dev = { .platform_data = serial_platform_data, }, @@ -197,86 +193,6 @@ void __init omap_serial_init(int ports[OMAP_MAX_NR_PORTS]) } } -#ifdef CONFIG_OMAP_SERIAL_WAKE - -static irqreturn_t omap_serial_wake_interrupt(int irq, void *dev_id, - struct pt_regs *regs) -{ - /* Need to do something with serial port right after wake-up? */ - return IRQ_HANDLED; -} - -/* - * Reroutes serial RX lines to GPIO lines for the duration of - * sleep to allow waking up the device from serial port even - * in deep sleep. - */ -void omap_serial_wake_trigger(int enable) -{ - if (!cpu_is_omap16xx()) - return; - - if (uart1_ck != NULL) { - if (enable) - omap_cfg_reg(V14_16XX_GPIO37); - else - omap_cfg_reg(V14_16XX_UART1_RX); - } - if (uart2_ck != NULL) { - if (enable) - omap_cfg_reg(R9_16XX_GPIO18); - else - omap_cfg_reg(R9_16XX_UART2_RX); - } - if (uart3_ck != NULL) { - if (enable) - omap_cfg_reg(L14_16XX_GPIO49); - else - omap_cfg_reg(L14_16XX_UART3_RX); - } -} - -static void __init omap_serial_set_port_wakeup(int gpio_nr) -{ - int ret; - - ret = omap_request_gpio(gpio_nr); - if (ret < 0) { - printk(KERN_ERR "Could not request UART wake GPIO: %i\n", - gpio_nr); - return; - } - omap_set_gpio_direction(gpio_nr, 1); - set_irq_type(OMAP_GPIO_IRQ(gpio_nr), IRQT_RISING); - ret = request_irq(OMAP_GPIO_IRQ(gpio_nr), &omap_serial_wake_interrupt, - 0, "serial wakeup", NULL); - if (ret) { - omap_free_gpio(gpio_nr); - printk(KERN_ERR "No interrupt for UART wake GPIO: %i\n", - gpio_nr); - return; - } - enable_irq_wake(OMAP_GPIO_IRQ(gpio_nr)); -} - -static int __init omap_serial_wakeup_init(void) -{ - if (!cpu_is_omap16xx()) - return 0; - - if (uart1_ck != NULL) - omap_serial_set_port_wakeup(37); - if (uart2_ck != NULL) - omap_serial_set_port_wakeup(18); - if (uart3_ck != NULL) - omap_serial_set_port_wakeup(49); - - return 0; -} -late_initcall(omap_serial_wakeup_init); - -#endif /* CONFIG_OMAP_SERIAL_WAKE */ - static int __init omap_init(void) { return platform_device_register(&serial_device); diff --git a/trunk/arch/arm/mach-omap1/time.c b/trunk/arch/arm/mach-omap1/time.c index 191a9b1ee9b7..d540539c9bbb 100644 --- a/trunk/arch/arm/mach-omap1/time.c +++ b/trunk/arch/arm/mach-omap1/time.c @@ -247,6 +247,13 @@ unsigned long long sched_clock(void) #define OMAP_32K_TIMER_TCR 0x04 #define OMAP_32K_TICKS_PER_HZ (32768 / HZ) +#if (32768 % HZ) != 0 +/* We cannot ignore modulo. + * Potential error can be as high as several percent. + */ +#define OMAP_32K_TICK_MODULO (32768 % HZ) +static unsigned modulo_count = 0; /* Counts 1/HZ units */ +#endif /* * TRM says 1 / HZ = ( TVR + 1) / 32768, so TRV = (32768 / HZ) - 1 @@ -289,22 +296,13 @@ static inline void omap_32k_timer_stop(void) } /* - * Rounds down to nearest usec. Note that this will overflow for larger values. + * Rounds down to nearest usec */ static inline unsigned long omap_32k_ticks_to_usecs(unsigned long ticks_32k) { return (ticks_32k * 5*5*5*5*5*5) >> 9; } -/* - * Rounds down to nearest nsec. - */ -static inline unsigned long long -omap_32k_ticks_to_nsecs(unsigned long ticks_32k) -{ - return (unsigned long long) ticks_32k * 1000 * 5*5*5*5*5*5 >> 9; -} - static unsigned long omap_32k_last_tick = 0; /* @@ -316,15 +314,6 @@ static unsigned long omap_32k_timer_gettimeoffset(void) return omap_32k_ticks_to_usecs(now - omap_32k_last_tick); } -/* - * Returns current time from boot in nsecs. It's OK for this to wrap - * around for now, as it's just a relative time stamp. - */ -unsigned long long sched_clock(void) -{ - return omap_32k_ticks_to_nsecs(omap_32k_sync_timer_read()); -} - /* * Timer interrupt for 32KHz timer. When dynamic tick is enabled, this * function is also called from other interrupts to remove latency @@ -341,6 +330,19 @@ static irqreturn_t omap_32k_timer_interrupt(int irq, void *dev_id, now = omap_32k_sync_timer_read(); while (now - omap_32k_last_tick >= OMAP_32K_TICKS_PER_HZ) { +#ifdef OMAP_32K_TICK_MODULO + /* Modulo addition may put omap_32k_last_tick ahead of now + * and cause unwanted repetition of the while loop. + */ + if (unlikely(now - omap_32k_last_tick == ~0)) + break; + + modulo_count += OMAP_32K_TICK_MODULO; + if (modulo_count > HZ) { + ++omap_32k_last_tick; + modulo_count -= HZ; + } +#endif omap_32k_last_tick += OMAP_32K_TICKS_PER_HZ; timer_tick(regs); } diff --git a/trunk/arch/arm/mach-pxa/Makefile b/trunk/arch/arm/mach-pxa/Makefile index 33dae99ec2d8..efc2f657184e 100644 --- a/trunk/arch/arm/mach-pxa/Makefile +++ b/trunk/arch/arm/mach-pxa/Makefile @@ -11,7 +11,7 @@ obj-$(CONFIG_PXA27x) += pxa27x.o obj-$(CONFIG_ARCH_LUBBOCK) += lubbock.o obj-$(CONFIG_MACH_MAINSTONE) += mainstone.o obj-$(CONFIG_ARCH_PXA_IDP) += idp.o -obj-$(CONFIG_PXA_SHARP_C7xx) += corgi.o corgi_ssp.o corgi_lcd.o ssp.o +obj-$(CONFIG_PXA_SHARP_C7xx) += corgi.o corgi_ssp.o ssp.o obj-$(CONFIG_MACH_POODLE) += poodle.o # Support for blinky lights diff --git a/trunk/arch/arm/mach-pxa/corgi.c b/trunk/arch/arm/mach-pxa/corgi.c index 29185acdd9e1..06ea730e8675 100644 --- a/trunk/arch/arm/mach-pxa/corgi.c +++ b/trunk/arch/arm/mach-pxa/corgi.c @@ -39,6 +39,7 @@ #include #include +#include