From 42138c3869eae143622a3710696529a5b1a91c8b Mon Sep 17 00:00:00 2001 From: "Michael S. Tsirkin" Date: Mon, 9 Jan 2006 13:50:57 -0800 Subject: [PATCH] --- yaml --- r: 18299 b: refs/heads/master c: 6627fa662e86c400284b64c13661fdf6bff05983 h: refs/heads/master i: 18297: d102fc72286b180d1f9dd0bc0345d1d8b97c56b4 18295: 152ae5028f808bbea24554e8c286151c1d32f445 v: v3 --- [refs] | 2 +- trunk/Documentation/CodingStyle | 2 +- trunk/Documentation/DocBook/.gitignore | 6 - trunk/Documentation/DocBook/kernel-api.tmpl | 5 - .../Documentation/DocBook/kernel-locking.tmpl | 22 +- trunk/Documentation/applying-patches.txt | 56 +- trunk/Documentation/cpusets.txt | 4 +- trunk/Documentation/dvb/avermedia.txt | 3 +- trunk/Documentation/dvb/get_dvb_firmware | 23 +- trunk/Documentation/dvb/ttusb-dec.txt | 3 +- trunk/Documentation/fb/cyblafb/bugs | 1 + trunk/Documentation/fb/cyblafb/fb.modes | 57 +- trunk/Documentation/fb/cyblafb/performance | 1 + trunk/Documentation/fb/cyblafb/todo | 5 +- trunk/Documentation/fb/cyblafb/usage | 33 +- trunk/Documentation/fb/cyblafb/whatsnew | 29 - trunk/Documentation/filesystems/ext3.txt | 182 +- trunk/Documentation/filesystems/proc.txt | 2 +- trunk/Documentation/filesystems/spufs.txt | 521 --- trunk/Documentation/filesystems/sysfs-pci.txt | 21 +- trunk/Documentation/hrtimers.txt | 178 - trunk/Documentation/i2o/ioctl | 2 +- trunk/Documentation/kbuild/makefiles.txt | 4 +- trunk/Documentation/kdump/gdbmacros.txt | 22 - trunk/Documentation/kdump/kdump.txt | 149 +- trunk/Documentation/kernel-parameters.txt | 54 +- trunk/Documentation/kprobes.txt | 3 +- trunk/Documentation/laptop-mode.txt | 6 +- trunk/Documentation/locks.txt | 17 + trunk/Documentation/mutex-design.txt | 135 - trunk/Documentation/networking/bonding.txt | 2 + trunk/Documentation/networking/sk98lin.txt | 2 +- trunk/Documentation/oops-tracing.txt | 8 +- trunk/Documentation/pci-error-recovery.txt | 246 -- trunk/Documentation/power/swsusp.txt | 4 +- trunk/Documentation/powerpc/00-INDEX | 10 +- trunk/Documentation/stable_kernel_rules.txt | 60 +- trunk/Documentation/video4linux/CARDLIST.bttv | 2 - trunk/Documentation/video4linux/CARDLIST.cx88 | 12 +- .../video4linux/CARDLIST.saa7134 | 5 +- .../Documentation/video4linux/CARDLIST.tuner | 6 +- trunk/Documentation/x86_64/boot-options.txt | 2 +- trunk/Documentation/x86_64/cpu-hotplug-spec | 21 - trunk/Kbuild | 5 +- trunk/MAINTAINERS | 38 +- trunk/Makefile | 99 +- trunk/arch/alpha/kernel/alpha_ksyms.c | 1 + trunk/arch/alpha/kernel/pci-noop.c | 1 - trunk/arch/alpha/kernel/process.c | 29 +- trunk/arch/alpha/kernel/ptrace.c | 47 +- trunk/arch/alpha/kernel/smp.c | 2 +- trunk/arch/alpha/kernel/sys_alcor.c | 3 +- trunk/arch/alpha/kernel/sys_sio.c | 6 +- trunk/arch/alpha/mm/init.c | 1 - trunk/arch/arm/Kconfig | 20 +- trunk/arch/arm/Makefile | 2 +- trunk/arch/arm/boot/compressed/Makefile | 8 +- .../arm/boot/compressed/head-at91rm9200.S | 57 - .../arch/arm/boot/compressed/head-epxa10db.S | 5 + trunk/arch/arm/boot/compressed/head.S | 46 +- trunk/arch/arm/common/rtctime.c | 16 +- trunk/arch/arm/configs/assabet_defconfig | 1 + trunk/arch/arm/configs/at91rm9200dk_defconfig | 1009 ------ trunk/arch/arm/configs/at91rm9200ek_defconfig | 998 ------ trunk/arch/arm/configs/badge4_defconfig | 1 + trunk/arch/arm/configs/bast_defconfig | 1 + trunk/arch/arm/configs/cerfcube_defconfig | 1 + trunk/arch/arm/configs/clps7500_defconfig | 1 + trunk/arch/arm/configs/collie_defconfig | 1 + trunk/arch/arm/configs/corgi_defconfig | 1 + trunk/arch/arm/configs/csb337_defconfig | 1136 ------ trunk/arch/arm/configs/csb637_defconfig | 1116 ------ trunk/arch/arm/configs/ebsa110_defconfig | 1 + trunk/arch/arm/configs/edb7211_defconfig | 1 + trunk/arch/arm/configs/enp2611_defconfig | 1 + trunk/arch/arm/configs/ep80219_defconfig | 1 + trunk/arch/arm/configs/epxa10db_defconfig | 644 ++++ trunk/arch/arm/configs/footbridge_defconfig | 1 + trunk/arch/arm/configs/fortunet_defconfig | 1 + trunk/arch/arm/configs/h3600_defconfig | 1 + trunk/arch/arm/configs/h7201_defconfig | 1 + trunk/arch/arm/configs/h7202_defconfig | 1 + trunk/arch/arm/configs/hackkit_defconfig | 1 + trunk/arch/arm/configs/integrator_defconfig | 1 + trunk/arch/arm/configs/iq31244_defconfig | 1 + trunk/arch/arm/configs/iq80321_defconfig | 1 + trunk/arch/arm/configs/iq80331_defconfig | 1 + trunk/arch/arm/configs/iq80332_defconfig | 1 + trunk/arch/arm/configs/ixdp2400_defconfig | 1 + trunk/arch/arm/configs/ixdp2401_defconfig | 1 + trunk/arch/arm/configs/ixdp2800_defconfig | 1 + trunk/arch/arm/configs/ixdp2801_defconfig | 1 + trunk/arch/arm/configs/ixp4xx_defconfig | 1 + trunk/arch/arm/configs/jornada720_defconfig | 1 + trunk/arch/arm/configs/lart_defconfig | 1 + trunk/arch/arm/configs/lpd7a400_defconfig | 1 + trunk/arch/arm/configs/lpd7a404_defconfig | 1 + trunk/arch/arm/configs/lubbock_defconfig | 1 + trunk/arch/arm/configs/lusl7200_defconfig | 1 + trunk/arch/arm/configs/mainstone_defconfig | 1 + trunk/arch/arm/configs/mx1ads_defconfig | 1 + trunk/arch/arm/configs/neponset_defconfig | 1 + trunk/arch/arm/configs/netwinder_defconfig | 1 + trunk/arch/arm/configs/omap_h2_1610_defconfig | 1 + trunk/arch/arm/configs/pleb_defconfig | 1 + trunk/arch/arm/configs/pxa255-idp_defconfig | 1 + trunk/arch/arm/configs/realview_defconfig | 1 + trunk/arch/arm/configs/rpc_defconfig | 1 + trunk/arch/arm/configs/s3c2410_defconfig | 1 + trunk/arch/arm/configs/shannon_defconfig | 1 + trunk/arch/arm/configs/shark_defconfig | 1 + trunk/arch/arm/configs/simpad_defconfig | 1 + trunk/arch/arm/configs/smdk2410_defconfig | 1 + trunk/arch/arm/configs/spitz_defconfig | 1 + trunk/arch/arm/configs/versatile_defconfig | 1 + trunk/arch/arm/kernel/apm.c | 1 - trunk/arch/arm/kernel/ecard.c | 7 +- trunk/arch/arm/kernel/fiq.c | 4 +- trunk/arch/arm/kernel/irq.c | 3 +- trunk/arch/arm/kernel/process.c | 13 +- trunk/arch/arm/kernel/ptrace.c | 37 +- trunk/arch/arm/kernel/setup.c | 15 +- trunk/arch/arm/kernel/smp.c | 4 +- trunk/arch/arm/kernel/traps.c | 4 +- trunk/arch/arm/lib/csumpartialcopy.S | 6 +- trunk/arch/arm/lib/csumpartialcopygeneric.S | 6 +- trunk/arch/arm/lib/csumpartialcopyuser.S | 8 +- trunk/arch/arm/mach-aaec2000/clock.c | 15 +- trunk/arch/arm/mach-at91rm9200/Kconfig | 54 - trunk/arch/arm/mach-at91rm9200/Makefile | 27 - trunk/arch/arm/mach-at91rm9200/Makefile.boot | 9 - trunk/arch/arm/mach-at91rm9200/board-csb337.c | 143 - trunk/arch/arm/mach-at91rm9200/board-csb637.c | 116 - trunk/arch/arm/mach-at91rm9200/board-dk.c | 138 - trunk/arch/arm/mach-at91rm9200/board-ek.c | 131 - trunk/arch/arm/mach-at91rm9200/clock.c | 620 ---- trunk/arch/arm/mach-at91rm9200/common.c | 115 - trunk/arch/arm/mach-at91rm9200/devices.c | 291 -- trunk/arch/arm/mach-at91rm9200/generic.h | 18 - trunk/arch/arm/mach-at91rm9200/gpio.c | 302 -- trunk/arch/arm/mach-at91rm9200/irq.c | 170 - trunk/arch/arm/mach-at91rm9200/time.c | 127 - trunk/arch/arm/mach-epxa10db/Kconfig | 23 + trunk/arch/arm/mach-epxa10db/Makefile | 11 + trunk/arch/arm/mach-epxa10db/Makefile.boot | 2 + trunk/arch/arm/mach-epxa10db/arch.c | 74 + trunk/arch/arm/mach-epxa10db/irq.c | 82 + trunk/arch/arm/mach-epxa10db/mm.c | 71 + trunk/arch/arm/mach-epxa10db/time.c | 78 + trunk/arch/arm/mach-integrator/clock.c | 15 +- trunk/arch/arm/mach-omap1/board-perseus2.c | 2 +- trunk/arch/arm/mach-pxa/ssp.c | 17 +- trunk/arch/arm/mach-realview/clock.c | 15 +- trunk/arch/arm/mach-s3c2410/clock.c | 217 +- trunk/arch/arm/mach-versatile/clock.c | 15 +- trunk/arch/arm/mm/Kconfig | 8 +- trunk/arch/arm/mm/consistent.c | 53 +- trunk/arch/arm/mm/ioremap.c | 49 +- trunk/arch/arm/plat-omap/clock.c | 15 +- trunk/arch/arm/plat-omap/dma.c | 2 +- trunk/arch/arm/tools/mach-types | 30 +- trunk/arch/arm26/kernel/armksyms.c | 1 + trunk/arch/arm26/kernel/process.c | 5 +- trunk/arch/arm26/kernel/ptrace.c | 29 +- trunk/arch/arm26/kernel/traps.c | 8 +- trunk/arch/cris/arch-v10/drivers/ds1302.c | 1 - trunk/arch/cris/arch-v10/drivers/pcf8563.c | 1 - trunk/arch/cris/arch-v10/kernel/process.c | 4 +- trunk/arch/cris/arch-v10/kernel/ptrace.c | 4 +- trunk/arch/cris/arch-v32/kernel/process.c | 6 +- trunk/arch/cris/arch-v32/kernel/ptrace.c | 6 +- trunk/arch/cris/arch-v32/kernel/smp.c | 4 +- trunk/arch/cris/arch-v32/mm/tlb.c | 4 +- trunk/arch/cris/kernel/crisksyms.c | 2 + trunk/arch/cris/kernel/process.c | 28 + trunk/arch/frv/Kconfig | 4 + trunk/arch/frv/boot/Makefile | 4 +- trunk/arch/frv/kernel/frv_ksyms.c | 2 + trunk/arch/frv/kernel/process.c | 26 +- trunk/arch/frv/mb93090-mb00/pci-frv.c | 8 +- trunk/arch/frv/mb93090-mb00/pci-irq.c | 4 +- trunk/arch/h8300/kernel/gpio.c | 4 +- trunk/arch/h8300/kernel/h8300_ksyms.c | 7 + trunk/arch/h8300/kernel/process.c | 30 +- trunk/arch/h8300/mm/memory.c | 13 + .../h8300/platform/h8300h/ptrace_h8300h.c | 12 +- trunk/arch/h8300/platform/h8s/ints.c | 4 +- trunk/arch/h8300/platform/h8s/ints_h8s.c | 4 +- trunk/arch/i386/Kconfig | 50 +- trunk/arch/i386/Makefile | 10 +- trunk/arch/i386/boot/Makefile | 4 +- trunk/arch/i386/boot/install.sh | 14 - trunk/arch/i386/boot/video.S | 5 + trunk/arch/i386/crypto/aes-i586-asm.S | 40 +- trunk/arch/i386/crypto/aes.c | 56 +- trunk/arch/i386/kernel/Makefile | 1 - trunk/arch/i386/kernel/acpi/boot.c | 2 +- trunk/arch/i386/kernel/apic.c | 129 +- trunk/arch/i386/kernel/apm.c | 1 - trunk/arch/i386/kernel/cpu/amd.c | 7 - trunk/arch/i386/kernel/cpu/changelog | 63 + trunk/arch/i386/kernel/cpu/common.c | 17 +- .../i386/kernel/cpu/cpufreq/acpi-cpufreq.c | 5 +- .../kernel/cpu/cpufreq/speedstep-centrino.c | 5 +- .../kernel/cpu/cpufreq/speedstep-est-common.h | 25 + trunk/arch/i386/kernel/cpu/intel.c | 5 +- trunk/arch/i386/kernel/cpu/mtrr/changelog | 229 ++ trunk/arch/i386/kernel/cpu/mtrr/if.c | 1 - trunk/arch/i386/kernel/cpu/proc.c | 27 +- trunk/arch/i386/kernel/crash.c | 50 +- trunk/arch/i386/kernel/crash_dump.c | 74 - trunk/arch/i386/kernel/dmi_scan.c | 16 +- trunk/arch/i386/kernel/io_apic.c | 2 +- trunk/arch/i386/kernel/ioport.c | 1 - trunk/arch/i386/kernel/kprobes.c | 23 +- trunk/arch/i386/kernel/microcode.c | 5 +- trunk/arch/i386/kernel/process.c | 26 +- trunk/arch/i386/kernel/reboot.c | 7 +- trunk/arch/i386/kernel/scx200.c | 2 +- trunk/arch/i386/kernel/setup.c | 6 +- trunk/arch/i386/kernel/smpboot.c | 4 +- trunk/arch/i386/kernel/time.c | 6 - trunk/arch/i386/kernel/traps.c | 61 +- trunk/arch/i386/kernel/vm86.c | 3 +- trunk/arch/i386/mm/pageattr.c | 4 - trunk/arch/i386/pci/acpi.c | 2 +- trunk/arch/i386/pci/fixup.c | 7 - trunk/arch/i386/pci/irq.c | 42 +- trunk/arch/ia64/Makefile | 3 +- trunk/arch/ia64/hp/sim/simserial.c | 1 - trunk/arch/ia64/ia32/Makefile | 4 +- trunk/arch/ia64/ia32/elfcore32.h | 3 +- trunk/arch/ia64/ia32/ia32_entry.S | 2 +- trunk/arch/ia64/ia32/ia32_ioctl.c | 45 + trunk/arch/ia64/ia32/ia32_signal.c | 4 +- trunk/arch/ia64/ia32/ia32_support.c | 4 +- trunk/arch/ia64/ia32/sys_ia32.c | 41 +- trunk/arch/ia64/kernel/kprobes.c | 11 +- trunk/arch/ia64/kernel/mca.c | 4 +- trunk/arch/ia64/kernel/perfmon.c | 33 +- trunk/arch/ia64/kernel/process.c | 12 +- trunk/arch/ia64/kernel/ptrace.c | 24 +- trunk/arch/ia64/kernel/salinfo.c | 1 - trunk/arch/ia64/kernel/setup.c | 18 +- trunk/arch/ia64/kernel/signal.c | 10 +- trunk/arch/ia64/kernel/sys_ia64.c | 2 +- trunk/arch/ia64/sn/kernel/tiocx.c | 1 - trunk/arch/m32r/Kconfig | 4 + trunk/arch/m32r/kernel/m32r_ksyms.c | 3 + trunk/arch/m32r/kernel/process.c | 13 +- trunk/arch/m32r/kernel/ptrace.c | 25 +- trunk/arch/m32r/kernel/smpboot.c | 2 +- trunk/arch/m68k/amiga/amiints.c | 46 +- trunk/arch/m68k/amiga/amisound.c | 2 - trunk/arch/m68k/amiga/cia.c | 8 +- trunk/arch/m68k/amiga/config.c | 27 +- trunk/arch/m68k/apollo/config.c | 3 + trunk/arch/m68k/atari/config.c | 9 + trunk/arch/m68k/bvme6000/rtc.c | 7 +- trunk/arch/m68k/hp300/config.c | 3 + trunk/arch/m68k/kernel/asm-offsets.c | 2 +- trunk/arch/m68k/kernel/head.S | 2 - trunk/arch/m68k/kernel/m68k_ksyms.c | 2 + trunk/arch/m68k/kernel/process.c | 7 +- trunk/arch/m68k/kernel/setup.c | 19 +- trunk/arch/m68k/kernel/signal.c | 62 +- trunk/arch/m68k/kernel/sys_m68k.c | 40 +- trunk/arch/m68k/kernel/traps.c | 38 +- trunk/arch/m68k/kernel/vmlinux-std.lds | 1 - trunk/arch/m68k/kernel/vmlinux-sun3.lds | 3 +- trunk/arch/m68k/lib/checksum.c | 2 +- trunk/arch/m68k/mac/config.c | 3 + trunk/arch/m68k/mac/iop.c | 4 +- trunk/arch/m68k/mac/misc.c | 326 +- trunk/arch/m68k/math-emu/multi_arith.h | 2 +- trunk/arch/m68k/mm/kmap.c | 12 +- trunk/arch/m68k/mvme16x/rtc.c | 7 +- trunk/arch/m68k/q40/config.c | 5 + trunk/arch/m68k/sun3/config.c | 3 + trunk/arch/m68k/sun3x/config.c | 4 + trunk/arch/m68knommu/Makefile | 1 + trunk/arch/m68knommu/kernel/m68k_ksyms.c | 2 + trunk/arch/m68knommu/kernel/process.c | 51 +- trunk/arch/m68knommu/kernel/ptrace.c | 2 +- trunk/arch/m68knommu/kernel/signal.c | 8 - trunk/arch/m68knommu/kernel/vmlinux.lds.S | 2 +- trunk/arch/mips/Kconfig | 10 +- trunk/arch/mips/Makefile | 1 + trunk/arch/mips/configs/bigsur_defconfig | 1 + trunk/arch/mips/configs/cobalt_defconfig | 1 + trunk/arch/mips/configs/ddb5476_defconfig | 1 + trunk/arch/mips/configs/ddb5477_defconfig | 1 + trunk/arch/mips/configs/ev64120_defconfig | 1 + trunk/arch/mips/configs/ev96100_defconfig | 1 + trunk/arch/mips/configs/ip22_defconfig | 1 + trunk/arch/mips/configs/ip27_defconfig | 1 + trunk/arch/mips/configs/ip32_defconfig | 1 + trunk/arch/mips/configs/it8172_defconfig | 1 + trunk/arch/mips/configs/ivr_defconfig | 1 + trunk/arch/mips/configs/jaguar-atx_defconfig | 1 + trunk/arch/mips/configs/lasat200_defconfig | 1 + trunk/arch/mips/configs/malta_defconfig | 10 +- trunk/arch/mips/configs/ocelot_3_defconfig | 1 + trunk/arch/mips/configs/ocelot_c_defconfig | 1 + trunk/arch/mips/configs/ocelot_defconfig | 1 + trunk/arch/mips/configs/ocelot_g_defconfig | 1 + .../arch/mips/configs/pnx8550-v2pci_defconfig | 1 + trunk/arch/mips/configs/rbhma4500_defconfig | 1 + trunk/arch/mips/configs/rm200_defconfig | 1 + .../arch/mips/configs/sb1250-swarm_defconfig | 1 + trunk/arch/mips/configs/yosemite_defconfig | 1 + trunk/arch/mips/defconfig | 1 + trunk/arch/mips/kernel/Makefile | 3 +- trunk/arch/mips/kernel/cpu-probe.c | 39 +- trunk/arch/mips/kernel/ioctl32.c | 50 + trunk/arch/mips/kernel/process.c | 12 +- trunk/arch/mips/kernel/ptrace.c | 22 +- trunk/arch/mips/kernel/ptrace32.c | 18 +- trunk/arch/mips/kernel/signal32.c | 2 +- trunk/arch/mips/kernel/smp_mt.c | 7 +- trunk/arch/mips/kernel/syscall.c | 3 +- trunk/arch/mips/kernel/sysirix.c | 1 - trunk/arch/mips/kernel/time.c | 32 +- trunk/arch/mips/kernel/traps.c | 2 +- trunk/arch/mips/kernel/vpe.c | 11 +- trunk/arch/mips/lib/iomap.c | 2 +- trunk/arch/mips/math-emu/dp_fint.c | 2 + trunk/arch/mips/math-emu/dp_flong.c | 2 + trunk/arch/mips/math-emu/sp_fint.c | 2 + trunk/arch/mips/math-emu/sp_flong.c | 2 + trunk/arch/mips/mips-boards/generic/time.c | 33 +- trunk/arch/mips/mm/c-r4k.c | 4 +- trunk/arch/mips/oprofile/common.c | 3 - trunk/arch/mips/oprofile/op_impl.h | 4 +- trunk/arch/mips/oprofile/op_model_mipsxx.c | 22 +- trunk/arch/mips/pci/fixup-capcella.c | 2 +- trunk/arch/mips/pci/fixup-mpc30x.c | 2 +- trunk/arch/mips/pci/fixup-tb0219.c | 2 +- trunk/arch/mips/pci/fixup-tb0226.c | 2 +- trunk/arch/mips/pci/fixup-tb0287.c | 2 +- trunk/arch/mips/pci/ops-vr41xx.c | 2 +- trunk/arch/mips/pci/pci-vr41xx.c | 2 +- trunk/arch/mips/pci/pci-vr41xx.h | 2 +- trunk/arch/mips/pmc-sierra/yosemite/smp.c | 4 +- trunk/arch/mips/sgi-ip27/ip27-smp.c | 4 +- trunk/arch/mips/sibyte/cfe/smp.c | 2 +- trunk/arch/mips/vr41xx/casio-e55/setup.c | 2 +- trunk/arch/mips/vr41xx/common/bcu.c | 4 +- trunk/arch/mips/vr41xx/common/cmu.c | 4 +- trunk/arch/mips/vr41xx/common/icu.c | 4 +- trunk/arch/mips/vr41xx/common/init.c | 2 +- trunk/arch/mips/vr41xx/common/int-handler.S | 2 +- trunk/arch/mips/vr41xx/common/irq.c | 2 +- trunk/arch/mips/vr41xx/common/pmu.c | 2 +- trunk/arch/mips/vr41xx/common/type.c | 2 +- trunk/arch/mips/vr41xx/common/vrc4173.c | 4 +- trunk/arch/mips/vr41xx/ibm-workpad/setup.c | 2 +- trunk/arch/parisc/hpux/sys_hpux.c | 1 - trunk/arch/parisc/kernel/Makefile | 3 +- trunk/arch/parisc/kernel/cache.c | 20 +- trunk/arch/parisc/kernel/drivers.c | 13 +- trunk/arch/parisc/kernel/firmware.c | 2 +- trunk/arch/parisc/kernel/hardware.c | 1 - trunk/arch/parisc/kernel/inventory.c | 6 +- trunk/arch/parisc/kernel/ioctl32.c | 60 + trunk/arch/parisc/kernel/pci-dma.c | 6 +- trunk/arch/parisc/kernel/pdc_chassis.c | 13 +- trunk/arch/parisc/kernel/perf.c | 7 +- trunk/arch/parisc/kernel/process.c | 8 +- trunk/arch/parisc/kernel/processor.c | 8 +- trunk/arch/parisc/kernel/setup.c | 10 +- trunk/arch/parisc/kernel/smp.c | 18 +- trunk/arch/parisc/kernel/time.c | 4 +- trunk/arch/parisc/kernel/topology.c | 3 +- trunk/arch/parisc/kernel/unaligned.c | 2 +- trunk/arch/parisc/kernel/unwind.c | 2 +- trunk/arch/parisc/kernel/vmlinux.lds.S | 15 +- trunk/arch/parisc/mm/init.c | 29 +- trunk/arch/parisc/mm/ioremap.c | 100 +- trunk/arch/powerpc/Kconfig | 90 +- trunk/arch/powerpc/Kconfig.debug | 42 - trunk/arch/powerpc/Makefile | 8 +- trunk/arch/powerpc/boot/.gitignore | 20 - trunk/arch/powerpc/boot/Makefile | 32 +- trunk/arch/powerpc/configs/pmac32_defconfig | 1729 --------- trunk/arch/powerpc/configs/ppc64_defconfig | 4 +- trunk/arch/powerpc/kernel/Makefile | 29 +- trunk/arch/powerpc/kernel/asm-offsets.c | 6 +- trunk/arch/powerpc/kernel/btext.c | 136 +- trunk/arch/powerpc/kernel/cputable.c | 106 +- trunk/arch/powerpc/kernel/crash.c | 264 -- trunk/arch/powerpc/kernel/crash_dump.c | 111 - trunk/arch/powerpc/kernel/dma_64.c | 9 - trunk/arch/powerpc/kernel/entry_32.S | 167 +- trunk/arch/powerpc/kernel/entry_64.S | 218 +- trunk/arch/powerpc/kernel/head_32.S | 56 +- trunk/arch/powerpc/kernel/head_64.S | 41 +- trunk/arch/powerpc/kernel/ibmebus.c | 396 --- trunk/arch/powerpc/kernel/ioctl32.c | 45 + trunk/arch/powerpc/kernel/irq.c | 81 +- trunk/arch/powerpc/kernel/kprobes.c | 27 +- trunk/arch/powerpc/kernel/legacy_serial.c | 557 --- trunk/arch/powerpc/kernel/lparmap.c | 12 +- trunk/arch/powerpc/kernel/machine_kexec.c | 61 - trunk/arch/powerpc/kernel/machine_kexec_32.c | 65 - trunk/arch/powerpc/kernel/machine_kexec_64.c | 43 +- trunk/arch/powerpc/kernel/misc_32.S | 113 - trunk/arch/powerpc/kernel/nvram_64.c | 106 +- trunk/arch/powerpc/kernel/paca.c | 11 +- trunk/arch/powerpc/kernel/pci_64.c | 97 +- trunk/arch/powerpc/kernel/pmc.c | 5 - trunk/arch/powerpc/kernel/ppc_ksyms.c | 6 + trunk/arch/powerpc/kernel/process.c | 22 +- trunk/arch/powerpc/kernel/prom.c | 498 ++- trunk/arch/powerpc/kernel/prom_init.c | 68 +- trunk/arch/powerpc/kernel/prom_parse.c | 547 --- trunk/arch/powerpc/kernel/ptrace-common.h | 4 +- trunk/arch/powerpc/kernel/rtas.c | 15 +- trunk/arch/powerpc/kernel/rtas_pci.c | 51 +- trunk/arch/powerpc/kernel/setup-common.c | 129 +- trunk/arch/powerpc/kernel/setup_32.c | 34 +- trunk/arch/powerpc/kernel/setup_64.c | 267 +- trunk/arch/powerpc/kernel/signal_32.c | 89 +- trunk/arch/powerpc/kernel/signal_64.c | 43 +- trunk/arch/powerpc/kernel/smp.c | 35 +- trunk/arch/powerpc/kernel/sys_ppc32.c | 56 + trunk/arch/powerpc/kernel/syscalls.c | 28 + trunk/arch/powerpc/kernel/systbl.S | 22 +- trunk/arch/powerpc/kernel/time.c | 4 + trunk/arch/powerpc/kernel/traps.c | 25 +- trunk/arch/powerpc/kernel/udbg.c | 52 +- trunk/arch/powerpc/kernel/udbg_16550.c | 71 +- .../{platforms/powermac => kernel}/udbg_scc.c | 68 +- trunk/arch/powerpc/kernel/vdso32/.gitignore | 1 - trunk/arch/powerpc/kernel/vdso64/.gitignore | 1 - trunk/arch/powerpc/mm/fault.c | 7 +- trunk/arch/powerpc/mm/hash_utils_64.c | 9 +- trunk/arch/powerpc/mm/hugetlbpage.c | 42 +- trunk/arch/powerpc/mm/imalloc.c | 2 +- trunk/arch/powerpc/mm/init_32.c | 5 - trunk/arch/powerpc/mm/mem.c | 13 +- trunk/arch/powerpc/mm/numa.c | 139 +- trunk/arch/powerpc/mm/pgtable_64.c | 2 +- trunk/arch/powerpc/mm/slb.c | 16 +- trunk/arch/powerpc/mm/slb_low.S | 6 +- trunk/arch/powerpc/mm/stab.c | 16 +- trunk/arch/powerpc/mm/tlb_64.c | 2 +- trunk/arch/powerpc/oprofile/Makefile | 1 - trunk/arch/powerpc/oprofile/common.c | 83 +- trunk/arch/powerpc/oprofile/op_model_7450.c | 206 -- trunk/arch/powerpc/oprofile/op_model_power4.c | 4 +- trunk/arch/powerpc/oprofile/op_model_rs64.c | 3 +- trunk/arch/powerpc/platforms/83xx/Kconfig | 26 - trunk/arch/powerpc/platforms/83xx/Makefile | 4 - trunk/arch/powerpc/platforms/Makefile | 1 - trunk/arch/powerpc/platforms/cell/Kconfig | 13 - trunk/arch/powerpc/platforms/cell/Makefile | 8 - trunk/arch/powerpc/platforms/cell/interrupt.c | 42 +- trunk/arch/powerpc/platforms/cell/interrupt.h | 1 - trunk/arch/powerpc/platforms/cell/iommu.c | 225 +- trunk/arch/powerpc/platforms/cell/pervasive.c | 229 -- trunk/arch/powerpc/platforms/cell/pervasive.h | 62 - trunk/arch/powerpc/platforms/cell/setup.c | 95 +- trunk/arch/powerpc/platforms/cell/smp.c | 2 +- trunk/arch/powerpc/platforms/cell/spu_base.c | 711 ---- trunk/arch/powerpc/platforms/cell/spu_priv1.c | 133 - .../powerpc/platforms/cell/spu_syscalls.c | 88 - .../powerpc/platforms/cell/spufs/Makefile | 54 - .../platforms/cell/spufs/backing_ops.c | 308 -- .../powerpc/platforms/cell/spufs/context.c | 167 - .../arch/powerpc/platforms/cell/spufs/file.c | 794 ----- .../powerpc/platforms/cell/spufs/hw_ops.c | 255 -- .../arch/powerpc/platforms/cell/spufs/inode.c | 486 --- trunk/arch/powerpc/platforms/cell/spufs/run.c | 131 - .../arch/powerpc/platforms/cell/spufs/sched.c | 461 --- .../platforms/cell/spufs/spu_restore.c | 336 -- .../platforms/cell/spufs/spu_restore_crt0.S | 116 - .../cell/spufs/spu_restore_dump.h_shipped | 231 -- .../powerpc/platforms/cell/spufs/spu_save.c | 195 - .../platforms/cell/spufs/spu_save_crt0.S | 102 - .../cell/spufs/spu_save_dump.h_shipped | 191 - .../powerpc/platforms/cell/spufs/spu_utils.h | 160 - .../arch/powerpc/platforms/cell/spufs/spufs.h | 163 - .../powerpc/platforms/cell/spufs/switch.c | 2204 ------------ .../powerpc/platforms/cell/spufs/syscalls.c | 103 - trunk/arch/powerpc/platforms/chrp/setup.c | 16 + .../powerpc/platforms/embedded6xx/Kconfig | 18 + trunk/arch/powerpc/platforms/iseries/Makefile | 4 +- trunk/arch/powerpc/platforms/iseries/iommu.c | 2 - trunk/arch/powerpc/platforms/iseries/iommu.h | 35 - trunk/arch/powerpc/platforms/iseries/irq.c | 348 +- trunk/arch/powerpc/platforms/iseries/irq.h | 1 - .../arch/powerpc/platforms/iseries/lpardata.c | 12 +- .../arch/powerpc/platforms/iseries/lpevents.c | 12 +- trunk/arch/powerpc/platforms/iseries/mf.c | 16 +- trunk/arch/powerpc/platforms/iseries/pci.c | 1 - trunk/arch/powerpc/platforms/iseries/setup.c | 47 +- trunk/arch/powerpc/platforms/iseries/vio.c | 2 - .../arch/powerpc/platforms/iseries/viopath.c | 12 +- trunk/arch/powerpc/platforms/maple/setup.c | 27 +- .../arch/powerpc/platforms/powermac/Makefile | 7 +- .../powerpc/platforms/powermac/bootx_init.c | 547 --- .../powerpc/platforms/powermac/cpufreq_64.c | 498 +-- .../arch/powerpc/platforms/powermac/feature.c | 367 +- .../arch/powerpc/platforms/powermac/low_i2c.c | 1414 ++------ trunk/arch/powerpc/platforms/powermac/nvram.c | 53 +- trunk/arch/powerpc/platforms/powermac/pci.c | 299 +- .../powerpc/platforms/powermac/pfunc_base.c | 405 --- .../powerpc/platforms/powermac/pfunc_core.c | 989 ----- trunk/arch/powerpc/platforms/powermac/pic.c | 474 ++- trunk/arch/powerpc/platforms/powermac/pmac.h | 6 +- trunk/arch/powerpc/platforms/powermac/setup.c | 109 +- trunk/arch/powerpc/platforms/powermac/smp.c | 382 +- trunk/arch/powerpc/platforms/powermac/time.c | 15 +- .../powerpc/platforms/powermac/udbg_adb.c | 221 -- trunk/arch/powerpc/platforms/pseries/Makefile | 4 +- trunk/arch/powerpc/platforms/pseries/eeh.c | 516 ++- .../powerpc/platforms/pseries/eeh_cache.c | 316 -- .../powerpc/platforms/pseries/eeh_driver.c | 376 -- .../powerpc/platforms/pseries/eeh_event.c | 39 +- .../powerpc/platforms/pseries/hvcserver.c | 4 +- trunk/arch/powerpc/platforms/pseries/iommu.c | 14 +- trunk/arch/powerpc/platforms/pseries/lpar.c | 76 +- .../powerpc/platforms/pseries/pci_dlpar.c | 174 - trunk/arch/powerpc/platforms/pseries/ras.c | 11 +- trunk/arch/powerpc/platforms/pseries/ras.h | 9 - .../arch/powerpc/platforms/pseries/scanlog.c | 4 +- trunk/arch/powerpc/platforms/pseries/setup.c | 57 +- trunk/arch/powerpc/platforms/pseries/smp.c | 6 +- trunk/arch/powerpc/platforms/pseries/xics.c | 4 +- trunk/arch/powerpc/sysdev/Makefile | 3 +- trunk/arch/powerpc/sysdev/dart.h | 41 +- trunk/arch/powerpc/sysdev/mpic.c | 247 +- .../sysdev/{dart_iommu.c => u3_iommu.c} | 174 +- trunk/arch/powerpc/xmon/Makefile | 8 +- trunk/arch/powerpc/xmon/start_32.c | 441 +++ .../arch/powerpc/xmon/{start.c => start_64.c} | 0 trunk/arch/powerpc/xmon/start_8xx.c | 44 + trunk/arch/powerpc/xmon/xmon.c | 22 +- trunk/arch/ppc/4xx_io/serial_sicc.c | 1 - trunk/arch/ppc/Kconfig | 4 - trunk/arch/ppc/Makefile | 3 +- trunk/arch/ppc/amiga/amiints.c | 40 +- trunk/arch/ppc/amiga/cia.c | 8 +- trunk/arch/ppc/amiga/config.c | 24 +- trunk/arch/ppc/boot/common/util.S | 6 +- trunk/arch/ppc/boot/images/Makefile | 2 +- trunk/arch/ppc/configs/TQM8540_defconfig | 973 ----- trunk/arch/ppc/configs/TQM8541_defconfig | 986 ----- trunk/arch/ppc/configs/TQM8555_defconfig | 983 ----- trunk/arch/ppc/configs/TQM8560_defconfig | 992 ------ trunk/arch/ppc/kernel/Makefile | 2 + trunk/arch/ppc/kernel/asm-offsets.c | 2 +- trunk/arch/ppc/kernel/entry.S | 167 +- trunk/arch/ppc/kernel/machine_kexec.c | 6 + trunk/arch/ppc/kernel/misc.S | 6 +- trunk/arch/ppc/kernel/pci.c | 49 +- trunk/arch/ppc/kernel/ppc_htab.c | 1 - trunk/arch/ppc/kernel/ppc_ksyms.c | 5 + trunk/arch/ppc/kernel/process.c | 851 +++++ trunk/arch/ppc/kernel/setup.c | 3 - trunk/arch/ppc/kernel/smp.c | 4 +- trunk/arch/ppc/platforms/85xx/Kconfig | 28 +- trunk/arch/ppc/platforms/85xx/Makefile | 4 - .../ppc/platforms/85xx/mpc85xx_cds_common.c | 11 +- trunk/arch/ppc/platforms/85xx/tqm85xx.c | 419 --- trunk/arch/ppc/platforms/85xx/tqm85xx.h | 56 - trunk/arch/ppc/platforms/apus_setup.c | 30 +- trunk/arch/ppc/platforms/chrp_setup.c | 1 + trunk/arch/ppc/platforms/prep_setup.c | 2 + trunk/arch/ppc/syslib/Makefile | 2 +- .../{powerpc/sysdev => ppc/syslib}/ipic.c | 0 .../{powerpc/sysdev => ppc/syslib}/ipic.h | 0 trunk/arch/ppc/syslib/m8xx_setup.c | 15 +- trunk/arch/ppc/syslib/m8xx_wdt.c | 92 +- trunk/arch/ppc/syslib/m8xx_wdt.h | 4 - trunk/arch/ppc/xmon/xmon.c | 2 +- trunk/arch/s390/Kconfig | 5 + trunk/arch/s390/kernel/Makefile | 3 +- trunk/arch/s390/kernel/binfmt_elf32.c | 2 +- trunk/arch/s390/kernel/compat_ioctl.c | 81 + trunk/arch/s390/kernel/compat_linux.c | 33 +- trunk/arch/s390/kernel/compat_wrapper.S | 2 +- trunk/arch/s390/kernel/crash.c | 2 + trunk/arch/s390/kernel/process.c | 33 +- trunk/arch/s390/kernel/ptrace.c | 26 +- trunk/arch/s390/kernel/s390_ksyms.c | 1 + trunk/arch/s390/kernel/smp.c | 2 +- trunk/arch/s390/kernel/time.c | 2 +- trunk/arch/s390/kernel/traps.c | 6 +- trunk/arch/sh/kernel/process.c | 66 +- trunk/arch/sh/kernel/ptrace.c | 14 +- trunk/arch/sh/kernel/sh_ksyms.c | 2 + trunk/arch/sh/kernel/smp.c | 2 +- trunk/arch/sh64/Kconfig | 4 + trunk/arch/sh64/kernel/process.c | 24 +- trunk/arch/sh64/kernel/sh_ksyms.c | 2 + trunk/arch/sh64/lib/dbg.c | 2 +- trunk/arch/sparc/kernel/process.c | 12 +- trunk/arch/sparc/kernel/ptrace.c | 4 +- trunk/arch/sparc/kernel/sparc_ksyms.c | 2 + trunk/arch/sparc/kernel/sun4d_smp.c | 2 +- trunk/arch/sparc/kernel/sun4m_smp.c | 2 +- trunk/arch/sparc/kernel/sys_sunos.c | 1 - trunk/arch/sparc/kernel/traps.c | 4 +- trunk/arch/sparc64/Kconfig | 2 +- trunk/arch/sparc64/defconfig | 2098 +++++++---- trunk/arch/sparc64/kernel/Makefile | 4 +- trunk/arch/sparc64/kernel/binfmt_aout32.c | 2 + trunk/arch/sparc64/kernel/ebus.c | 15 +- trunk/arch/sparc64/kernel/entry.S | 7 +- trunk/arch/sparc64/kernel/ioctl32.c | 39 + trunk/arch/sparc64/kernel/kprobes.c | 18 +- trunk/arch/sparc64/kernel/power.c | 4 - trunk/arch/sparc64/kernel/process.c | 10 +- trunk/arch/sparc64/kernel/ptrace.c | 46 +- trunk/arch/sparc64/kernel/setup.c | 2 +- trunk/arch/sparc64/kernel/smp.c | 2 +- trunk/arch/sparc64/kernel/sparc64_ksyms.c | 2 + trunk/arch/sparc64/kernel/sys_sparc32.c | 37 +- trunk/arch/sparc64/kernel/sys_sunos32.c | 1 - trunk/arch/sparc64/kernel/systbls.S | 4 +- trunk/arch/sparc64/kernel/traps.c | 4 +- trunk/arch/sparc64/solaris/fs.c | 1 - trunk/arch/um/Kconfig | 8 +- trunk/arch/um/Makefile | 23 +- trunk/arch/um/drivers/chan_kern.c | 6 +- trunk/arch/um/drivers/mconsole_kern.c | 2 +- trunk/arch/um/drivers/ubd_kern.c | 1 + trunk/arch/um/kernel/asm-offsets.c | 2 +- trunk/arch/um/kernel/process_kern.c | 2 +- trunk/arch/um/kernel/skas/process.c | 4 +- trunk/arch/um/kernel/skas/process_kern.c | 4 +- trunk/arch/um/kernel/time.c | 7 +- trunk/arch/um/kernel/tt/exec_kern.c | 2 +- trunk/arch/um/kernel/tt/process_kern.c | 8 +- trunk/arch/um/kernel/um_arch.c | 4 + .../kernel-offsets.c} | 5 +- .../kernel-offsets.c} | 2 +- trunk/arch/v850/kernel/process.c | 26 +- trunk/arch/v850/kernel/ptrace.c | 2 +- trunk/arch/v850/kernel/v850_ksyms.c | 2 + trunk/arch/x86_64/Kconfig | 76 +- trunk/arch/x86_64/Makefile | 12 +- trunk/arch/x86_64/boot/Makefile | 2 +- trunk/arch/x86_64/boot/install.sh | 40 +- trunk/arch/x86_64/crypto/aes.c | 25 +- trunk/arch/x86_64/defconfig | 116 +- trunk/arch/x86_64/ia32/Makefile | 4 +- trunk/arch/x86_64/ia32/ia32_binfmt.c | 7 +- trunk/arch/x86_64/ia32/ia32_ioctl.c | 79 + trunk/arch/x86_64/ia32/ia32_signal.c | 26 +- trunk/arch/x86_64/ia32/ia32entry.S | 40 +- trunk/arch/x86_64/ia32/ptrace32.c | 15 +- trunk/arch/x86_64/ia32/sys_ia32.c | 19 + trunk/arch/x86_64/ia32/vsyscall-sigreturn.S | 1 - trunk/arch/x86_64/ia32/vsyscall-syscall.S | 1 - trunk/arch/x86_64/ia32/vsyscall-sysenter.S | 1 - trunk/arch/x86_64/kernel/Makefile | 9 +- trunk/arch/x86_64/kernel/aperture.c | 3 +- trunk/arch/x86_64/kernel/apic.c | 193 +- trunk/arch/x86_64/kernel/asm-offsets.c | 5 - trunk/arch/x86_64/kernel/crash.c | 156 +- trunk/arch/x86_64/kernel/e820.c | 21 - trunk/arch/x86_64/kernel/early_printk.c | 4 +- trunk/arch/x86_64/kernel/entry.S | 44 +- trunk/arch/x86_64/kernel/genapic_cluster.c | 5 +- trunk/arch/x86_64/kernel/genapic_flat.c | 10 +- trunk/arch/x86_64/kernel/head.S | 14 +- trunk/arch/x86_64/kernel/head64.c | 5 +- trunk/arch/x86_64/kernel/i387.c | 2 +- trunk/arch/x86_64/kernel/i8259.c | 5 +- trunk/arch/x86_64/kernel/io_apic.c | 167 +- trunk/arch/x86_64/kernel/ioport.c | 1 - trunk/arch/x86_64/kernel/irq.c | 6 +- trunk/arch/x86_64/kernel/kprobes.c | 16 +- trunk/arch/x86_64/kernel/mce.c | 35 +- trunk/arch/x86_64/kernel/mce_amd.c | 6 +- trunk/arch/x86_64/kernel/mce_intel.c | 6 +- trunk/arch/x86_64/kernel/nmi.c | 8 +- trunk/arch/x86_64/kernel/pci-dma.c | 286 +- trunk/arch/x86_64/kernel/pci-gart.c | 413 ++- trunk/arch/x86_64/kernel/pci-nommu.c | 145 +- trunk/arch/x86_64/kernel/pci-swiotlb.c | 42 - trunk/arch/x86_64/kernel/process.c | 82 +- trunk/arch/x86_64/kernel/ptrace.c | 19 +- trunk/arch/x86_64/kernel/reboot.c | 10 +- trunk/arch/x86_64/kernel/setup.c | 110 +- trunk/arch/x86_64/kernel/setup64.c | 46 +- trunk/arch/x86_64/kernel/smp.c | 7 +- trunk/arch/x86_64/kernel/smpboot.c | 61 +- trunk/arch/x86_64/kernel/suspend.c | 2 +- trunk/arch/x86_64/kernel/time.c | 119 +- trunk/arch/x86_64/kernel/trampoline.S | 11 +- trunk/arch/x86_64/kernel/traps.c | 164 +- trunk/arch/x86_64/kernel/vmlinux.lds.S | 4 +- trunk/arch/x86_64/kernel/vsmp.c | 45 - trunk/arch/x86_64/kernel/vsyscall.c | 14 +- trunk/arch/x86_64/kernel/x8664_ksyms.c | 33 +- trunk/arch/x86_64/lib/copy_user.S | 244 +- trunk/arch/x86_64/lib/delay.c | 2 +- trunk/arch/x86_64/lib/usercopy.c | 12 +- trunk/arch/x86_64/mm/fault.c | 54 +- trunk/arch/x86_64/mm/init.c | 29 +- trunk/arch/x86_64/mm/numa.c | 75 +- trunk/arch/x86_64/mm/srat.c | 67 +- trunk/arch/x86_64/pci/Makefile-BUS | 22 + trunk/arch/xtensa/Kconfig | 4 + trunk/arch/xtensa/kernel/process.c | 4 +- trunk/arch/xtensa/kernel/ptrace.c | 12 +- trunk/arch/xtensa/kernel/time.c | 2 +- trunk/block/elevator.c | 23 +- trunk/block/ioctl.c | 2 +- trunk/block/ll_rw_blk.c | 131 +- trunk/block/scsi_ioctl.c | 14 +- trunk/crypto/Kconfig | 2 +- trunk/crypto/aes.c | 63 +- trunk/crypto/anubis.c | 39 +- trunk/crypto/api.c | 54 +- trunk/crypto/blowfish.c | 3 - trunk/crypto/cast5.c | 47 +- trunk/crypto/cast6.c | 83 +- trunk/crypto/cipher.c | 5 +- trunk/crypto/crc32c.c | 1 - trunk/crypto/des.c | 3 - trunk/crypto/internal.h | 6 - trunk/crypto/khazad.c | 46 +- trunk/crypto/md4.c | 1 - trunk/crypto/md5.c | 1 - trunk/crypto/michael_mic.c | 40 +- trunk/crypto/proc.c | 6 +- trunk/crypto/serpent.c | 2 - trunk/crypto/sha1.c | 66 +- trunk/crypto/sha256.c | 31 +- trunk/crypto/sha512.c | 54 +- trunk/crypto/tea.c | 98 +- trunk/crypto/tgr192.c | 64 +- trunk/crypto/twofish.c | 13 +- trunk/crypto/wp512.c | 32 +- trunk/drivers/acorn/char/i2c.c | 1 - trunk/drivers/acpi/pci_irq.c | 7 +- trunk/drivers/acpi/processor_idle.c | 15 - trunk/drivers/amba/bus.c | 1 + trunk/drivers/atm/zatm.c | 12 +- trunk/drivers/base/core.c | 4 +- trunk/drivers/base/cpu.c | 30 - trunk/drivers/base/firmware_class.c | 1 - trunk/drivers/base/memory.c | 2 +- trunk/drivers/block/DAC960.c | 2 +- trunk/drivers/block/amiflop.c | 30 +- trunk/drivers/block/ataflop.c | 27 +- trunk/drivers/block/cciss.c | 74 +- trunk/drivers/block/loop.c | 31 +- trunk/drivers/block/swim3.c | 38 +- trunk/drivers/block/sx8.c | 14 +- trunk/drivers/block/umem.c | 2 +- trunk/drivers/block/viodasd.c | 32 +- trunk/drivers/bluetooth/hci_ldisc.c | 16 +- trunk/drivers/cdrom/cdrom.c | 2 +- trunk/drivers/cdrom/cm206.c | 2 +- trunk/drivers/cdrom/viocd.c | 6 +- trunk/drivers/char/Kconfig | 17 +- trunk/drivers/char/Makefile | 1 - trunk/drivers/char/amiserial.c | 55 +- trunk/drivers/char/cs5535_gpio.c | 250 -- trunk/drivers/char/cyclades.c | 91 +- trunk/drivers/char/drm/Makefile | 4 +- trunk/drivers/char/drm/ati_pcigart.c | 23 +- trunk/drivers/char/drm/drm.h | 4 +- trunk/drivers/char/drm/drmP.h | 122 +- trunk/drivers/char/drm/drm_agpsupport.c | 133 +- trunk/drivers/char/drm/drm_bufs.c | 49 +- trunk/drivers/char/drm/drm_context.c | 2 +- trunk/drivers/char/drm/drm_core.h | 4 +- trunk/drivers/char/drm/drm_drv.c | 152 +- trunk/drivers/char/drm/drm_fops.c | 317 +- trunk/drivers/char/drm/drm_init.c | 53 + trunk/drivers/char/drm/drm_ioc32.c | 1 + trunk/drivers/char/drm/drm_ioctl.c | 27 +- trunk/drivers/char/drm/drm_lock.c | 1 + trunk/drivers/char/drm/drm_memory.c | 8 + trunk/drivers/char/drm/drm_memory_debug.h | 269 +- trunk/drivers/char/drm/drm_os_linux.h | 1 - trunk/drivers/char/drm/drm_pciids.h | 12 +- trunk/drivers/char/drm/drm_proc.c | 16 +- trunk/drivers/char/drm/drm_stub.c | 63 +- trunk/drivers/char/drm/drm_sysfs.c | 68 +- trunk/drivers/char/drm/i810_dma.c | 49 +- trunk/drivers/char/drm/i810_drv.c | 60 +- trunk/drivers/char/drm/i810_drv.h | 10 +- trunk/drivers/char/drm/i830_dma.c | 47 +- trunk/drivers/char/drm/i830_drv.c | 57 +- trunk/drivers/char/drm/i830_drv.h | 8 +- trunk/drivers/char/drm/i915_dma.c | 52 +- trunk/drivers/char/drm/i915_drm.h | 6 +- trunk/drivers/char/drm/i915_drv.c | 66 +- trunk/drivers/char/drm/i915_drv.h | 44 +- trunk/drivers/char/drm/i915_ioc32.c | 1 + trunk/drivers/char/drm/i915_irq.c | 48 +- trunk/drivers/char/drm/i915_mem.c | 5 +- trunk/drivers/char/drm/mga_dma.c | 158 +- trunk/drivers/char/drm/mga_drv.c | 58 +- trunk/drivers/char/drm/mga_drv.h | 14 +- trunk/drivers/char/drm/mga_ioc32.c | 1 + trunk/drivers/char/drm/mga_state.c | 26 +- trunk/drivers/char/drm/r128_cce.c | 15 +- trunk/drivers/char/drm/r128_drm.h | 4 +- trunk/drivers/char/drm/r128_drv.c | 48 +- trunk/drivers/char/drm/r128_drv.h | 8 +- trunk/drivers/char/drm/r128_ioc32.c | 1 + trunk/drivers/char/drm/r128_irq.c | 4 +- trunk/drivers/char/drm/r128_state.c | 42 +- trunk/drivers/char/drm/r300_cmdbuf.c | 38 +- trunk/drivers/char/drm/r300_reg.h | 1 - trunk/drivers/char/drm/radeon_cp.c | 106 +- trunk/drivers/char/drm/radeon_drm.h | 6 - trunk/drivers/char/drm/radeon_drv.c | 62 +- trunk/drivers/char/drm/radeon_drv.h | 41 +- trunk/drivers/char/drm/radeon_ioc32.c | 1 + trunk/drivers/char/drm/radeon_state.c | 246 +- trunk/drivers/char/drm/savage_bci.c | 81 +- trunk/drivers/char/drm/savage_drv.c | 50 +- trunk/drivers/char/drm/savage_drv.h | 29 +- trunk/drivers/char/drm/savage_state.c | 324 +- trunk/drivers/char/drm/sis_drm.h | 25 - trunk/drivers/char/drm/sis_drv.c | 42 +- trunk/drivers/char/drm/sis_drv.h | 4 +- trunk/drivers/char/drm/sis_ds.h | 7 +- trunk/drivers/char/drm/sis_mm.c | 30 +- trunk/drivers/char/drm/tdfx_drv.c | 42 +- trunk/drivers/char/drm/tdfx_drv.h | 7 +- trunk/drivers/char/drm/via_dma.c | 38 +- trunk/drivers/char/drm/via_dmablit.c | 805 ----- trunk/drivers/char/drm/via_dmablit.h | 140 - trunk/drivers/char/drm/via_drm.h | 60 +- trunk/drivers/char/drm/via_drv.c | 63 +- trunk/drivers/char/drm/via_drv.h | 56 +- trunk/drivers/char/drm/via_ds.c | 9 +- trunk/drivers/char/drm/via_irq.c | 53 +- trunk/drivers/char/drm/via_map.c | 47 +- trunk/drivers/char/drm/via_mm.c | 20 +- trunk/drivers/char/drm/via_verifier.c | 6 +- trunk/drivers/char/drm/via_verifier.h | 4 +- trunk/drivers/char/drm/via_video.c | 7 +- trunk/drivers/char/dsp56k.c | 29 +- trunk/drivers/char/epca.c | 17 +- trunk/drivers/char/esp.c | 67 +- trunk/drivers/char/hvc_console.c | 6 +- trunk/drivers/char/hvcs.c | 10 +- trunk/drivers/char/hvsi.c | 2 +- trunk/drivers/char/ip2/i2lib.c | 2 +- trunk/drivers/char/ip2main.c | 26 +- trunk/drivers/char/ipmi/ipmi_msghandler.c | 2 +- trunk/drivers/char/ipmi/ipmi_poweroff.c | 3 - trunk/drivers/char/ipmi/ipmi_si_intf.c | 10 +- trunk/drivers/char/isicom.c | 2084 +++++------ trunk/drivers/char/istallion.c | 45 +- trunk/drivers/char/mem.c | 12 +- trunk/drivers/char/moxa.c | 77 +- trunk/drivers/char/mxser.c | 4 +- trunk/drivers/char/n_hdlc.c | 19 +- trunk/drivers/char/n_r3964.c | 10 +- trunk/drivers/char/n_tty.c | 66 +- trunk/drivers/char/nvram.c | 12 +- trunk/drivers/char/pcmcia/synclink_cs.c | 32 +- trunk/drivers/char/pty.c | 4 +- trunk/drivers/char/random.c | 2 +- trunk/drivers/char/rio/board.h | 83 +- trunk/drivers/char/rio/bootpkt.h | 11 +- trunk/drivers/char/rio/brates.h | 9 +- trunk/drivers/char/rio/chan.h | 2 +- trunk/drivers/char/rio/cirrus.h | 178 +- trunk/drivers/char/rio/cmd.h | 5 +- trunk/drivers/char/rio/cmdblk.h | 19 +- trunk/drivers/char/rio/cmdpkt.h | 213 +- trunk/drivers/char/rio/control.h | 7 +- trunk/drivers/char/rio/daemon.h | 162 +- trunk/drivers/char/rio/debug.h | 4 +- trunk/drivers/char/rio/defaults.h | 7 +- trunk/drivers/char/rio/eisa.h | 4 +- trunk/drivers/char/rio/enable.h | 4 +- trunk/drivers/char/rio/error.h | 3 + trunk/drivers/char/rio/errors.h | 2 +- trunk/drivers/char/rio/formpkt.h | 151 +- trunk/drivers/char/rio/func.h | 51 +- trunk/drivers/char/rio/host.h | 93 +- trunk/drivers/char/rio/hosthw.h | 4 +- trunk/drivers/char/rio/link.h | 152 +- trunk/drivers/char/rio/linux_compat.h | 46 +- trunk/drivers/char/rio/list.h | 6 +- trunk/drivers/char/rio/lrt.h | 5 +- trunk/drivers/char/rio/ltt.h | 7 +- trunk/drivers/char/rio/lttwake.h | 5 +- trunk/drivers/char/rio/map.h | 27 +- trunk/drivers/char/rio/mca.h | 2 +- trunk/drivers/char/rio/mesg.h | 2 +- trunk/drivers/char/rio/param.h | 27 +- trunk/drivers/char/rio/parmmap.h | 79 +- trunk/drivers/char/rio/pci.h | 2 +- trunk/drivers/char/rio/phb.h | 285 +- trunk/drivers/char/rio/pkt.h | 72 +- trunk/drivers/char/rio/poll.h | 27 +- trunk/drivers/char/rio/port.h | 294 +- trunk/drivers/char/rio/proto.h | 132 +- trunk/drivers/char/rio/protsts.h | 2 + trunk/drivers/char/rio/qbuf.h | 15 +- trunk/drivers/char/rio/rio.h | 15 +- trunk/drivers/char/rio/rio_linux.c | 1522 ++++---- trunk/drivers/char/rio/rio_linux.h | 57 +- trunk/drivers/char/rio/rioboard.h | 204 +- trunk/drivers/char/rio/riocmd.c | 896 ++--- trunk/drivers/char/rio/rioctrl.c | 3119 ++++++++-------- trunk/drivers/char/rio/riodrvr.h | 128 +- trunk/drivers/char/rio/rioinfo.h | 30 +- trunk/drivers/char/rio/riointr.c | 1510 ++++---- trunk/drivers/char/rio/rioioctl.h | 18 +- trunk/drivers/char/rio/rioparam.c | 563 +-- trunk/drivers/char/rio/riopcicopy.c | 6 +- trunk/drivers/char/rio/rioroute.c | 1572 ++++---- trunk/drivers/char/rio/riospace.h | 31 +- trunk/drivers/char/rio/riotable.c | 1019 +++--- trunk/drivers/char/rio/riotime.h | 4 +- trunk/drivers/char/rio/riotty.c | 1224 ++++--- trunk/drivers/char/rio/riotypes.h | 71 +- trunk/drivers/char/rio/riowinif.h | 934 ++--- trunk/drivers/char/rio/riscos.h | 2 +- trunk/drivers/char/rio/rom.h | 22 +- trunk/drivers/char/rio/route.h | 61 +- trunk/drivers/char/rio/rtahw.h | 14 +- trunk/drivers/char/rio/rup.h | 39 +- trunk/drivers/char/rio/rupstat.h | 3 +- trunk/drivers/char/rio/sam.h | 13 +- trunk/drivers/char/rio/selftest.h | 48 +- trunk/drivers/char/rio/space.h | 2 +- trunk/drivers/char/rio/sysmap.h | 23 +- trunk/drivers/char/rio/timeouts.h | 7 +- trunk/drivers/char/rio/top.h | 9 +- trunk/drivers/char/rio/typdef.h | 36 +- trunk/drivers/char/rio/unixrup.h | 21 +- trunk/drivers/char/riscom8.c | 47 +- trunk/drivers/char/rocket.c | 19 +- trunk/drivers/char/rtc.c | 14 +- trunk/drivers/char/scc.h | 2 +- trunk/drivers/char/selection.c | 5 +- trunk/drivers/char/ser_a2232.c | 8 +- trunk/drivers/char/serial167.c | 37 +- trunk/drivers/char/specialix.c | 38 +- trunk/drivers/char/stallion.c | 65 +- trunk/drivers/char/sx.c | 19 +- trunk/drivers/char/synclink.c | 51 +- trunk/drivers/char/synclink_gt.c | 52 +- trunk/drivers/char/synclinkmp.c | 38 +- trunk/drivers/char/sysrq.c | 19 - trunk/drivers/char/tb0219.c | 4 +- trunk/drivers/char/tlclk.c | 15 +- trunk/drivers/char/tty_io.c | 266 +- trunk/drivers/char/viocons.c | 45 +- trunk/drivers/char/vme_scc.c | 20 +- trunk/drivers/char/vr41xx_giu.c | 4 +- trunk/drivers/char/vr41xx_rtc.c | 9 +- trunk/drivers/char/vt.c | 33 +- trunk/drivers/char/watchdog/cpu5wdt.c | 9 +- trunk/drivers/char/watchdog/mpc8xx_wdt.c | 20 +- trunk/drivers/connector/cn_proc.c | 11 +- trunk/drivers/crypto/padlock-aes.c | 26 +- trunk/drivers/crypto/padlock.h | 2 +- trunk/drivers/firmware/efivars.c | 2 +- trunk/drivers/hwmon/vt8231.c | 2 +- trunk/drivers/i2c/busses/Kconfig | 24 +- trunk/drivers/i2c/busses/Makefile | 3 +- trunk/drivers/i2c/busses/i2c-keywest.c | 751 ++++ trunk/drivers/i2c/busses/i2c-keywest.h | 108 + trunk/drivers/i2c/busses/i2c-pmac-smu.c | 315 ++ trunk/drivers/i2c/busses/i2c-powermac.c | 290 -- trunk/drivers/i2c/busses/i2c-pxa.c | 10 - trunk/drivers/ide/ide-cd.c | 12 +- trunk/drivers/ide/ide-io.c | 9 +- trunk/drivers/ide/ide-probe.c | 4 +- trunk/drivers/ide/ide.c | 8 +- trunk/drivers/ide/pci/pdc202xx_new.c | 2 +- trunk/drivers/ide/pci/via82cxxx.c | 2 +- trunk/drivers/ide/ppc/pmac.c | 6 +- trunk/drivers/ieee1394/amdtp.c | 1 + trunk/drivers/ieee1394/dv1394.c | 1 + trunk/drivers/ieee1394/video1394.c | 1 + .../infiniband/hw/mthca/mthca_provider.c | 18 +- trunk/drivers/input/evdev.c | 6 +- trunk/drivers/input/input.c | 2 +- trunk/drivers/input/joystick/amijoy.c | 4 +- trunk/drivers/input/joystick/grip_mp.c | 9 + trunk/drivers/input/keyboard/Kconfig | 10 + trunk/drivers/input/keyboard/Makefile | 1 + trunk/drivers/input/misc/wistron_btns.c | 6 +- trunk/drivers/input/mouse/Kconfig | 10 + trunk/drivers/input/mouse/Makefile | 1 + trunk/drivers/input/mouse/amimouse.c | 6 +- trunk/drivers/input/mouse/maplemouse.c | 101 + trunk/drivers/input/serio/sa1111ps2.c | 1 + trunk/drivers/input/serio/serport.c | 13 +- trunk/drivers/isdn/capi/capi.c | 3 +- trunk/drivers/isdn/capi/capifs.c | 6 +- trunk/drivers/isdn/i4l/isdn_common.c | 112 - trunk/drivers/isdn/i4l/isdn_common.h | 1 - trunk/drivers/isdn/i4l/isdn_tty.c | 75 +- trunk/drivers/macintosh/Kconfig | 10 +- trunk/drivers/macintosh/adb-iop.c | 2 +- trunk/drivers/macintosh/macio_asic.c | 254 +- trunk/drivers/macintosh/mediabay.c | 8 +- trunk/drivers/macintosh/smu.c | 50 +- trunk/drivers/macintosh/therm_pm72.c | 4 +- trunk/drivers/macintosh/via-cuda.c | 52 +- trunk/drivers/macintosh/via-macii.c | 4 +- trunk/drivers/macintosh/via-maciisi.c | 22 +- trunk/drivers/macintosh/via-pmu.c | 364 +- trunk/drivers/macintosh/via-pmu68k.c | 4 +- .../drivers/macintosh/windfarm_lm75_sensor.c | 50 +- trunk/drivers/macintosh/windfarm_pm81.c | 2 +- trunk/drivers/md/dm.c | 5 +- trunk/drivers/md/md.c | 11 +- trunk/drivers/md/multipath.c | 7 +- trunk/drivers/media/common/saa7146_core.c | 9 +- trunk/drivers/media/common/saa7146_fops.c | 44 +- trunk/drivers/media/common/saa7146_hlp.c | 13 +- trunk/drivers/media/common/saa7146_vbi.c | 6 +- trunk/drivers/media/common/saa7146_video.c | 9 +- .../drivers/media/dvb/b2c2/flexcop-fe-tuner.c | 33 +- trunk/drivers/media/dvb/b2c2/flexcop-reg.h | 4 +- trunk/drivers/media/dvb/b2c2/flexcop.c | 6 +- trunk/drivers/media/dvb/bt8xx/dst.c | 52 +- trunk/drivers/media/dvb/bt8xx/dst_ca.c | 3 +- trunk/drivers/media/dvb/bt8xx/dvb-bt8xx.c | 19 +- trunk/drivers/media/dvb/cinergyT2/Kconfig | 20 +- trunk/drivers/media/dvb/cinergyT2/cinergyT2.c | 82 +- trunk/drivers/media/dvb/dvb-core/Kconfig | 2 +- trunk/drivers/media/dvb/dvb-core/Makefile | 2 +- .../media/dvb/dvb-core/dvb_ca_en50221.c | 12 +- trunk/drivers/media/dvb/dvb-core/dvb_filter.c | 16 +- .../drivers/media/dvb/dvb-core/dvb_frontend.c | 318 +- .../drivers/media/dvb/dvb-core/dvb_frontend.h | 16 +- trunk/drivers/media/dvb/dvb-core/dvb_net.c | 6 +- .../media/dvb/dvb-core/dvb_ringbuffer.c | 32 +- .../media/dvb/dvb-core/dvb_ringbuffer.h | 8 +- trunk/drivers/media/dvb/dvb-core/dvbdev.c | 22 +- trunk/drivers/media/dvb/dvb-core/dvbdev.h | 2 +- trunk/drivers/media/dvb/dvb-usb/Kconfig | 24 +- trunk/drivers/media/dvb/dvb-usb/cxusb.c | 442 +-- trunk/drivers/media/dvb/dvb-usb/cxusb.h | 2 - trunk/drivers/media/dvb/dvb-usb/dibusb-mb.c | 46 +- trunk/drivers/media/dvb/dvb-usb/digitv.c | 2 +- trunk/drivers/media/dvb/dvb-usb/dtt200u-fe.c | 3 +- trunk/drivers/media/dvb/dvb-usb/dtt200u.c | 6 +- trunk/drivers/media/dvb/dvb-usb/dtt200u.h | 31 +- .../media/dvb/dvb-usb/dvb-usb-common.h | 2 +- .../media/dvb/dvb-usb/dvb-usb-firmware.c | 154 +- trunk/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c | 8 +- trunk/drivers/media/dvb/dvb-usb/dvb-usb-ids.h | 14 +- .../drivers/media/dvb/dvb-usb/dvb-usb-init.c | 57 +- trunk/drivers/media/dvb/dvb-usb/dvb-usb-urb.c | 9 +- trunk/drivers/media/dvb/dvb-usb/dvb-usb.h | 29 +- trunk/drivers/media/dvb/dvb-usb/nova-t-usb2.c | 7 +- trunk/drivers/media/dvb/dvb-usb/vp702x-fe.c | 5 +- trunk/drivers/media/dvb/dvb-usb/vp702x.h | 43 +- trunk/drivers/media/dvb/dvb-usb/vp7045-fe.c | 3 +- trunk/drivers/media/dvb/dvb-usb/vp7045.c | 2 +- trunk/drivers/media/dvb/frontends/Kconfig | 46 +- trunk/drivers/media/dvb/frontends/Makefile | 1 - trunk/drivers/media/dvb/frontends/bcm3510.c | 9 +- trunk/drivers/media/dvb/frontends/cx22702.c | 22 +- trunk/drivers/media/dvb/frontends/cx24110.c | 23 +- trunk/drivers/media/dvb/frontends/cx24123.c | 889 ----- trunk/drivers/media/dvb/frontends/cx24123.h | 51 - trunk/drivers/media/dvb/frontends/dib3000mb.c | 3 +- trunk/drivers/media/dvb/frontends/dib3000mc.c | 3 +- trunk/drivers/media/dvb/frontends/dvb-pll.c | 32 +- trunk/drivers/media/dvb/frontends/dvb-pll.h | 3 +- trunk/drivers/media/dvb/frontends/lgdt330x.c | 6 +- trunk/drivers/media/dvb/frontends/mt312.c | 3 +- trunk/drivers/media/dvb/frontends/mt352.c | 3 +- trunk/drivers/media/dvb/frontends/nxt2002.c | 3 +- trunk/drivers/media/dvb/frontends/nxt200x.c | 3 +- trunk/drivers/media/dvb/frontends/nxt6000.c | 10 +- trunk/drivers/media/dvb/frontends/or51211.c | 5 +- trunk/drivers/media/dvb/frontends/s5h1420.c | 4 +- trunk/drivers/media/dvb/frontends/sp8870.c | 3 +- trunk/drivers/media/dvb/frontends/sp887x.c | 5 +- trunk/drivers/media/dvb/frontends/stv0299.c | 12 +- trunk/drivers/media/dvb/frontends/stv0299.h | 1 - trunk/drivers/media/dvb/frontends/tda10021.c | 4 +- trunk/drivers/media/dvb/frontends/tda1004x.c | 141 +- trunk/drivers/media/dvb/pluto2/Kconfig | 2 +- trunk/drivers/media/dvb/pluto2/pluto2.c | 3 +- trunk/drivers/media/dvb/ttpci/Kconfig | 7 +- trunk/drivers/media/dvb/ttpci/Makefile | 2 +- trunk/drivers/media/dvb/ttpci/av7110.c | 137 +- trunk/drivers/media/dvb/ttpci/av7110.h | 17 +- trunk/drivers/media/dvb/ttpci/av7110_av.c | 12 +- trunk/drivers/media/dvb/ttpci/av7110_hw.c | 7 +- trunk/drivers/media/dvb/ttpci/av7110_hw.h | 3 +- trunk/drivers/media/dvb/ttpci/av7110_ir.c | 14 +- trunk/drivers/media/dvb/ttpci/av7110_v4l.c | 118 +- trunk/drivers/media/dvb/ttpci/budget-av.c | 313 +- trunk/drivers/media/dvb/ttpci/budget-core.c | 4 +- trunk/drivers/media/dvb/ttpci/budget.c | 13 +- trunk/drivers/media/dvb/ttpci/budget.h | 1 - trunk/drivers/media/dvb/ttpci/ttpci-eeprom.c | 2 +- trunk/drivers/media/dvb/ttusb-budget/Kconfig | 2 +- .../media/dvb/ttusb-budget/dvb-ttusb-budget.c | 4 +- trunk/drivers/media/dvb/ttusb-dec/Kconfig | 13 +- trunk/drivers/media/dvb/ttusb-dec/ttusb_dec.c | 24 +- .../drivers/media/dvb/ttusb-dec/ttusbdecfe.c | 53 +- trunk/drivers/media/radio/miropcm20-radio.c | 1 - trunk/drivers/media/radio/radio-aimslab.c | 1 - trunk/drivers/media/radio/radio-aztech.c | 1 - trunk/drivers/media/radio/radio-cadet.c | 1 - trunk/drivers/media/radio/radio-gemtek-pci.c | 6 +- trunk/drivers/media/radio/radio-gemtek.c | 1 - trunk/drivers/media/radio/radio-maestro.c | 391 +- trunk/drivers/media/radio/radio-maxiradio.c | 3 +- trunk/drivers/media/radio/radio-rtrack2.c | 1 - trunk/drivers/media/radio/radio-sf16fmi.c | 1 - trunk/drivers/media/radio/radio-sf16fmr2.c | 3 +- trunk/drivers/media/radio/radio-terratec.c | 1 - trunk/drivers/media/radio/radio-trust.c | 1 - trunk/drivers/media/radio/radio-typhoon.c | 1 - trunk/drivers/media/radio/radio-zoltrix.c | 1 - trunk/drivers/media/video/Kconfig | 13 +- trunk/drivers/media/video/Makefile | 10 +- trunk/drivers/media/video/adv7170.c | 6 +- trunk/drivers/media/video/adv7175.c | 6 +- trunk/drivers/media/video/arv.c | 1 - trunk/drivers/media/video/bt819.c | 7 +- trunk/drivers/media/video/bt832.c | 73 +- trunk/drivers/media/video/bt856.c | 6 +- trunk/drivers/media/video/bttv-cards.c | 359 +- trunk/drivers/media/video/bttv-driver.c | 68 +- trunk/drivers/media/video/bttv-gpio.c | 21 +- trunk/drivers/media/video/bttv-i2c.c | 15 +- trunk/drivers/media/video/bttv-vbi.c | 57 +- trunk/drivers/media/video/bttv.h | 38 +- trunk/drivers/media/video/bttvp.h | 13 +- trunk/drivers/media/video/bw-qcam.c | 1 - trunk/drivers/media/video/c-qcam.c | 1 - trunk/drivers/media/video/compat_ioctl32.c | 879 ----- trunk/drivers/media/video/cpia.c | 1 - trunk/drivers/media/video/cpia_pp.c | 3 +- trunk/drivers/media/video/cpia_usb.c | 4 +- trunk/drivers/media/video/cs53l32a.c | 95 +- .../media/video/cx25840/cx25840-audio.c | 91 +- .../media/video/cx25840/cx25840-core.c | 389 +- .../media/video/cx25840/cx25840-firmware.c | 36 +- .../drivers/media/video/cx25840/cx25840-vbi.c | 4 +- trunk/drivers/media/video/cx25840/cx25840.h | 81 +- trunk/drivers/media/video/cx88/Kconfig | 25 - trunk/drivers/media/video/cx88/Makefile | 4 +- trunk/drivers/media/video/cx88/cx88-alsa.c | 848 ----- .../drivers/media/video/cx88/cx88-blackbird.c | 24 +- trunk/drivers/media/video/cx88/cx88-cards.c | 232 +- trunk/drivers/media/video/cx88/cx88-core.c | 70 +- trunk/drivers/media/video/cx88/cx88-dvb.c | 218 +- trunk/drivers/media/video/cx88/cx88-i2c.c | 13 +- trunk/drivers/media/video/cx88/cx88-input.c | 143 +- trunk/drivers/media/video/cx88/cx88-mpeg.c | 5 - trunk/drivers/media/video/cx88/cx88-tvaudio.c | 10 +- trunk/drivers/media/video/cx88/cx88-video.c | 100 +- .../media/video/cx88/cx88-vp3054-i2c.c | 173 - .../media/video/cx88/cx88-vp3054-i2c.h | 35 - trunk/drivers/media/video/cx88/cx88.h | 17 +- trunk/drivers/media/video/dpc7146.c | 3 +- .../drivers/media/video/em28xx/em28xx-cards.c | 8 +- .../drivers/media/video/em28xx/em28xx-core.c | 61 +- trunk/drivers/media/video/em28xx/em28xx-i2c.c | 3 +- .../drivers/media/video/em28xx/em28xx-video.c | 170 +- trunk/drivers/media/video/em28xx/em28xx.h | 6 +- trunk/drivers/media/video/hexium_gemini.c | 3 +- trunk/drivers/media/video/hexium_orion.c | 3 +- trunk/drivers/media/video/indycam.c | 7 +- .../video/{bttv-input.c => ir-kbd-gpio.c} | 262 +- trunk/drivers/media/video/ir-kbd-i2c.c | 18 +- trunk/drivers/media/video/meye.c | 1 - trunk/drivers/media/video/msp3400-driver.c | 1274 ------- trunk/drivers/media/video/msp3400-kthreads.c | 1010 ------ trunk/drivers/media/video/msp3400.c | 2229 ++++++++++++ trunk/drivers/media/video/msp3400.h | 102 +- trunk/drivers/media/video/mt20xx.c | 10 - trunk/drivers/media/video/mxb.c | 4 +- trunk/drivers/media/video/ovcamchip/ov6x20.c | 3 +- trunk/drivers/media/video/ovcamchip/ov6x30.c | 3 +- trunk/drivers/media/video/ovcamchip/ov76be.c | 3 +- trunk/drivers/media/video/ovcamchip/ov7x10.c | 3 +- trunk/drivers/media/video/ovcamchip/ov7x20.c | 3 +- .../media/video/ovcamchip/ovcamchip_core.c | 3 +- trunk/drivers/media/video/pms.c | 1 - trunk/drivers/media/video/saa5246a.c | 3 +- trunk/drivers/media/video/saa5249.c | 6 +- trunk/drivers/media/video/saa6588.c | 12 +- trunk/drivers/media/video/saa7110.c | 6 +- trunk/drivers/media/video/saa7111.c | 6 +- trunk/drivers/media/video/saa7114.c | 6 +- trunk/drivers/media/video/saa7115.c | 325 +- trunk/drivers/media/video/saa711x.c | 8 +- trunk/drivers/media/video/saa7127.c | 88 +- trunk/drivers/media/video/saa7134/Kconfig | 2 +- trunk/drivers/media/video/saa7134/saa6752hs.c | 11 +- .../media/video/saa7134/saa7134-alsa.c | 2 +- .../media/video/saa7134/saa7134-cards.c | 85 +- .../media/video/saa7134/saa7134-core.c | 141 +- .../drivers/media/video/saa7134/saa7134-dvb.c | 1 - .../media/video/saa7134/saa7134-empress.c | 3 +- .../drivers/media/video/saa7134/saa7134-i2c.c | 3 +- .../media/video/saa7134/saa7134-input.c | 39 +- .../drivers/media/video/saa7134/saa7134-oss.c | 40 +- .../media/video/saa7134/saa7134-video.c | 10 +- trunk/drivers/media/video/saa7134/saa7134.h | 10 +- trunk/drivers/media/video/saa7146.h | 1 + trunk/drivers/media/video/saa7185.c | 6 +- trunk/drivers/media/video/saa7191.c | 7 +- trunk/drivers/media/video/stradis.c | 1137 +++--- trunk/drivers/media/video/tda7432.c | 46 +- trunk/drivers/media/video/tda8290.c | 6 + trunk/drivers/media/video/tda9875.c | 10 +- trunk/drivers/media/video/tda9887.c | 231 +- trunk/drivers/media/video/tea5767.c | 5 +- trunk/drivers/media/video/tea6420.c | 3 +- trunk/drivers/media/video/tuner-3036.c | 3 +- trunk/drivers/media/video/tuner-core.c | 141 +- trunk/drivers/media/video/tuner-simple.c | 889 +---- trunk/drivers/media/video/tvaudio.c | 180 +- trunk/drivers/media/video/tveeprom.c | 49 +- trunk/drivers/media/video/tvmixer.c | 20 +- trunk/drivers/media/video/tvp5150.c | 538 +-- trunk/drivers/media/video/v4l1-compat.c | 35 +- trunk/drivers/media/video/v4l2-common.c | 219 +- trunk/drivers/media/video/video-buf.c | 9 +- trunk/drivers/media/video/videocodec.c | 11 +- trunk/drivers/media/video/videodev.c | 15 +- trunk/drivers/media/video/vino.c | 4 +- trunk/drivers/media/video/vpx3220.c | 7 +- trunk/drivers/media/video/w9966.c | 1 - trunk/drivers/media/video/wm8775.c | 91 +- trunk/drivers/media/video/zoran_card.c | 3 +- trunk/drivers/media/video/zoran_driver.c | 4 +- trunk/drivers/media/video/zr36016.c | 3 +- trunk/drivers/media/video/zr36050.c | 3 +- trunk/drivers/media/video/zr36060.c | 3 +- trunk/drivers/media/video/zr36120.c | 1 - trunk/drivers/message/fusion/mptctl.c | 2 + trunk/drivers/message/i2o/README.ioctl | 2 +- trunk/drivers/mfd/ucb1x00-core.c | 27 +- trunk/drivers/misc/ibmasm/remote.c | 1 - trunk/drivers/mmc/mmc.c | 1 - trunk/drivers/mmc/mmc_block.c | 19 +- trunk/drivers/mmc/wbsd.c | 533 ++- trunk/drivers/mtd/maps/Kconfig | 8 + trunk/drivers/mtd/maps/Makefile | 1 + trunk/drivers/mtd/maps/epxa10db-flash.c | 179 + trunk/drivers/mtd/nand/au1550nd.c | 2 +- trunk/drivers/mtd/nand/rtc_from4.c | 2 +- trunk/drivers/mtd/nand/spia.c | 2 +- trunk/drivers/net/3c503.c | 16 +- trunk/drivers/net/8139too.c | 2 +- trunk/drivers/net/Kconfig | 21 +- trunk/drivers/net/Makefile | 1 - trunk/drivers/net/ac3200.c | 16 +- trunk/drivers/net/arm/Kconfig | 13 + trunk/drivers/net/arm/Makefile | 1 + trunk/drivers/net/arm/am79c961a.c | 12 +- trunk/drivers/net/arm/ether00.c | 1017 ++++++ trunk/drivers/net/arm/ether3.c | 1 + trunk/drivers/net/arm/etherh.c | 1 + trunk/drivers/net/bonding/bond_alb.c | 4 +- trunk/drivers/net/bonding/bonding.h | 12 +- trunk/drivers/net/cs89x0.c | 2 +- trunk/drivers/net/e100.c | 32 +- trunk/drivers/net/e1000/e1000_param.c | 10 +- trunk/drivers/net/e2100.c | 14 +- trunk/drivers/net/es3210.c | 14 +- trunk/drivers/net/forcedeth.c | 164 +- trunk/drivers/net/gianfar.c | 6 +- trunk/drivers/net/gianfar.h | 4 +- trunk/drivers/net/gianfar_mii.c | 5 +- trunk/drivers/net/gianfar_sysfs.c | 2 +- trunk/drivers/net/hamradio/6pack.c | 7 +- trunk/drivers/net/hamradio/mkiss.c | 9 +- trunk/drivers/net/hp-plus.c | 12 +- trunk/drivers/net/hp.c | 12 +- trunk/drivers/net/hp100.c | 2 +- trunk/drivers/net/hplance.c | 2 +- trunk/drivers/net/ibm_emac/ibm_emac.h | 3 +- trunk/drivers/net/ibm_emac/ibm_emac_core.c | 2 +- trunk/drivers/net/ifb.c | 294 -- trunk/drivers/net/irda/Kconfig | 3 +- trunk/drivers/net/irda/Makefile | 2 +- trunk/drivers/net/irda/irport.c | 15 +- trunk/drivers/net/irda/irtty-sir.c | 18 +- trunk/drivers/net/irda/sir-dev.h | 2 + trunk/drivers/net/irda/sir_core.c | 56 + trunk/drivers/net/irda/sir_dev.c | 10 +- trunk/drivers/net/irda/sir_dongle.c | 2 - trunk/drivers/net/irda/sir_kthread.c | 11 +- trunk/drivers/net/iseries_veth.c | 4 +- trunk/drivers/net/lance.c | 22 +- trunk/drivers/net/lne390.c | 14 +- trunk/drivers/net/mac8390.c | 31 +- trunk/drivers/net/mv643xx_eth.c | 2 +- trunk/drivers/net/ne.c | 18 +- trunk/drivers/net/ne2.c | 16 +- trunk/drivers/net/pci-skeleton.c | 2 +- trunk/drivers/net/pcmcia/xirc2ps_cs.c | 2 +- trunk/drivers/net/phy/mdio_bus.c | 2 +- trunk/drivers/net/phy/phy.c | 2 +- trunk/drivers/net/ppp_async.c | 9 +- trunk/drivers/net/ppp_synctty.c | 9 +- trunk/drivers/net/r8169.c | 2 +- trunk/drivers/net/sis190.c | 2 +- trunk/drivers/net/sk98lin/skdim.c | 2 +- trunk/drivers/net/sk98lin/skge.c | 131 +- trunk/drivers/net/sk98lin/skgepnmi.c | 8 +- trunk/drivers/net/slip.c | 11 +- trunk/drivers/net/smc-ultra.c | 24 +- trunk/drivers/net/sun3lance.c | 2 +- trunk/drivers/net/tulip/tulip_core.c | 2 +- trunk/drivers/net/tulip/uli526x.c | 6 +- trunk/drivers/net/via-velocity.c | 2 +- trunk/drivers/net/wan/pc300_tty.c | 2 +- trunk/drivers/net/wan/x25_asy.c | 7 +- trunk/drivers/net/wd.c | 14 +- trunk/drivers/net/wireless/Kconfig | 2 +- trunk/drivers/net/wireless/atmel.c | 227 +- trunk/drivers/net/wireless/ipw2100.c | 5 +- trunk/drivers/net/wireless/strip.c | 10 +- trunk/drivers/oprofile/event_buffer.c | 1 - trunk/drivers/parisc/dino.c | 30 +- trunk/drivers/parisc/eisa.c | 4 +- trunk/drivers/parisc/eisa_eeprom.c | 2 +- trunk/drivers/parisc/lasi.c | 2 +- trunk/drivers/parisc/lba_pci.c | 115 +- trunk/drivers/parisc/led.c | 21 +- trunk/drivers/parisc/pdc_stable.c | 46 +- trunk/drivers/parisc/power.c | 12 +- trunk/drivers/parport/Kconfig | 1 - trunk/drivers/parport/parport_serial.c | 2 +- trunk/drivers/pci/hotplug/acpiphp_glue.c | 6 +- trunk/drivers/pci/hotplug/cpqphp.h | 8 +- trunk/drivers/pci/hotplug/cpqphp_core.c | 127 +- trunk/drivers/pci/hotplug/cpqphp_ctrl.c | 28 +- trunk/drivers/pci/hotplug/cpqphp_sysfs.c | 138 +- trunk/drivers/pci/hotplug/ibmphp_pci.c | 2 +- trunk/drivers/pci/hotplug/pciehp_core.c | 92 +- trunk/drivers/pci/hotplug/pciehp_hpc.c | 19 +- trunk/drivers/pci/hotplug/pciehp_pci.c | 52 +- trunk/drivers/pci/hotplug/pciehprm_acpi.c | 13 +- trunk/drivers/pci/hotplug/rpadlpar_core.c | 27 +- trunk/drivers/pci/hotplug/rpaphp_pci.c | 47 +- trunk/drivers/pci/hotplug/shpchp.h | 4 - trunk/drivers/pci/hotplug/shpchp_core.c | 16 +- trunk/drivers/pci/hotplug/shpchp_ctrl.c | 37 + trunk/drivers/pci/hotplug/shpchp_hpc.c | 138 +- trunk/drivers/pci/hotplug/shpchp_pci.c | 19 +- trunk/drivers/pci/pci.c | 7 +- trunk/drivers/pci/pci.h | 5 + trunk/drivers/pci/pcie/portdrv_core.c | 4 +- trunk/drivers/pci/probe.c | 49 +- trunk/drivers/pci/proc.c | 7 +- trunk/drivers/pci/quirks.c | 26 - trunk/drivers/pci/remove.c | 3 +- trunk/drivers/pcmcia/ds.c | 37 +- trunk/drivers/pcmcia/pxa2xx_mainstone.c | 15 +- trunk/drivers/pcmcia/pxa2xx_sharpsl.c | 19 +- trunk/drivers/pcmcia/socket_sysfs.c | 25 - trunk/drivers/pcmcia/vrc4171_card.c | 4 +- trunk/drivers/pcmcia/vrc4173_cardu.c | 6 +- trunk/drivers/pcmcia/vrc4173_cardu.h | 2 +- trunk/drivers/s390/block/dasd.c | 1 - trunk/drivers/s390/block/dasd_int.h | 1 - trunk/drivers/s390/block/dasd_ioctl.c | 12 - trunk/drivers/s390/char/con3215.c | 25 +- trunk/drivers/s390/char/fs3270.c | 20 +- trunk/drivers/s390/char/sclp_tty.c | 21 +- trunk/drivers/s390/char/sclp_vt220.c | 12 +- trunk/drivers/s390/char/tape_char.c | 20 - trunk/drivers/s390/crypto/z90main.c | 1 + trunk/drivers/s390/net/ctctty.c | 28 +- trunk/drivers/scsi/Makefile | 3 +- trunk/drivers/scsi/NCR53C9x.c | 5 +- trunk/drivers/scsi/aacraid/linit.c | 1 + trunk/drivers/scsi/arm/acornscsi.c | 1 + trunk/drivers/scsi/arm/arxescsi.c | 1 + trunk/drivers/scsi/arm/cumana_1.c | 1 + trunk/drivers/scsi/arm/cumana_2.c | 1 + trunk/drivers/scsi/arm/eesox.c | 1 + trunk/drivers/scsi/arm/powertec.c | 1 + trunk/drivers/scsi/blz1230.c | 4 +- trunk/drivers/scsi/blz2060.c | 4 +- trunk/drivers/scsi/ch.c | 1 + trunk/drivers/scsi/cyberstorm.c | 4 +- trunk/drivers/scsi/cyberstormII.c | 4 +- trunk/drivers/scsi/fastlane.c | 4 +- trunk/drivers/scsi/mac53c94.c | 22 +- trunk/drivers/scsi/megaraid/megaraid_mm.h | 1 + trunk/drivers/scsi/mesh.c | 3 +- trunk/drivers/scsi/oktagon_esp.c | 2 +- trunk/drivers/scsi/sata_nv.c | 30 +- trunk/drivers/scsi/scsi.c | 109 +- trunk/drivers/scsi/scsi_lib.c | 36 - trunk/drivers/scsi/scsi_priv.h | 1 - trunk/drivers/scsi/sg.c | 2 +- trunk/drivers/scsi/wd33c93.c | 4 +- trunk/drivers/serial/21285.c | 9 + trunk/drivers/serial/68328serial.c | 18 +- trunk/drivers/serial/68360serial.c | 54 +- trunk/drivers/serial/8250.c | 52 +- trunk/drivers/serial/Kconfig | 69 +- trunk/drivers/serial/Makefile | 2 +- trunk/drivers/serial/amba-pl010.c | 9 + trunk/drivers/serial/amba-pl011.c | 9 + trunk/drivers/serial/at91_serial.c | 894 ----- trunk/drivers/serial/au1x00_uart.c | 31 +- trunk/drivers/serial/clps711x.c | 2 + trunk/drivers/serial/cpm_uart/cpm_uart_core.c | 2 +- trunk/drivers/serial/crisv10.c | 11 +- trunk/drivers/serial/dz.c | 2 + trunk/drivers/serial/icom.c | 57 +- trunk/drivers/serial/imx.c | 3 + trunk/drivers/serial/ioc4_serial.c | 10 +- trunk/drivers/serial/ip22zilog.c | 34 +- trunk/drivers/serial/m32r_sio.c | 31 +- trunk/drivers/serial/mcfserial.c | 25 +- trunk/drivers/serial/mpc52xx_uart.c | 46 +- trunk/drivers/serial/mpsc.c | 6 +- trunk/drivers/serial/mux.c | 9 +- trunk/drivers/serial/pmac_zilog.c | 77 +- trunk/drivers/serial/pxa.c | 8 + trunk/drivers/serial/s3c2410.c | 10 + trunk/drivers/serial/sa1100.c | 2 + trunk/drivers/serial/serial_core.c | 16 +- trunk/drivers/serial/serial_cs.c | 2 - trunk/drivers/serial/serial_lh7a40x.c | 9 + trunk/drivers/serial/serial_txx9.c | 24 +- trunk/drivers/serial/sh-sci.c | 81 +- trunk/drivers/serial/sn_console.c | 6 +- trunk/drivers/serial/sunsab.c | 38 +- trunk/drivers/serial/sunsu.c | 32 +- trunk/drivers/serial/sunzilog.c | 34 +- trunk/drivers/serial/uart00.c | 782 ++++ trunk/drivers/serial/vr41xx_siu.c | 7 +- trunk/drivers/usb/atm/speedtch.c | 4 +- trunk/drivers/usb/class/cdc-acm.c | 11 +- trunk/drivers/usb/core/inode.c | 28 +- trunk/drivers/usb/gadget/file_storage.c | 4 +- trunk/drivers/usb/gadget/inode.c | 4 +- trunk/drivers/usb/gadget/serial.c | 19 +- trunk/drivers/usb/host/Kconfig | 10 +- trunk/drivers/usb/image/microtek.c | 2 +- trunk/drivers/usb/media/dsbr100.c | 1 - trunk/drivers/usb/media/ov511.c | 1 - trunk/drivers/usb/media/pwc/pwc-if.c | 1 - trunk/drivers/usb/media/se401.c | 1 - trunk/drivers/usb/media/stv680.c | 1 - trunk/drivers/usb/media/usbvideo.c | 1 - trunk/drivers/usb/media/vicam.c | 1 - trunk/drivers/usb/media/w9968cf.c | 1 - trunk/drivers/usb/serial/Kconfig | 2 +- trunk/drivers/usb/serial/cyberjack.c | 11 +- trunk/drivers/usb/serial/cypress_m8.c | 6 +- trunk/drivers/usb/serial/digi_acceleport.c | 28 +- trunk/drivers/usb/serial/empeg.c | 16 +- trunk/drivers/usb/serial/ftdi_sio.c | 15 +- trunk/drivers/usb/serial/garmin_gps.c | 13 +- trunk/drivers/usb/serial/generic.c | 11 +- trunk/drivers/usb/serial/io_edgeport.c | 20 +- trunk/drivers/usb/serial/io_ti.c | 20 +- trunk/drivers/usb/serial/ipaq.c | 12 +- trunk/drivers/usb/serial/ipw.c | 11 +- trunk/drivers/usb/serial/kl5kusb105.c | 13 +- trunk/drivers/usb/serial/kobil_sct.c | 11 +- trunk/drivers/usb/serial/option.c | 9 +- trunk/drivers/usb/serial/pl2303.c | 8 +- trunk/drivers/usb/serial/ti_usb_3410_5052.c | 20 +- trunk/drivers/usb/serial/usb-serial.c | 2 +- trunk/drivers/usb/serial/visor.c | 11 +- trunk/drivers/usb/serial/whiteheat.c | 11 +- trunk/drivers/video/Kconfig | 12 +- trunk/drivers/video/amifb.c | 36 +- trunk/drivers/video/arcfb.c | 8 +- trunk/drivers/video/asiliantfb.c | 2 +- trunk/drivers/video/aty/Makefile | 1 + trunk/drivers/video/aty/atyfb.h | 2 +- trunk/drivers/video/aty/atyfb_base.c | 247 +- trunk/drivers/video/aty/mach64_ct.c | 17 +- trunk/drivers/video/aty/radeon_monitor.c | 2 +- trunk/drivers/video/aty/xlinit.c | 359 ++ trunk/drivers/video/console/bitblit.c | 14 +- trunk/drivers/video/console/fbcon.c | 81 +- trunk/drivers/video/console/fbcon.h | 11 +- trunk/drivers/video/console/fbcon_ccw.c | 17 +- trunk/drivers/video/console/fbcon_cw.c | 17 +- trunk/drivers/video/console/fbcon_rotate.c | 9 +- trunk/drivers/video/console/fbcon_rotate.h | 2 + trunk/drivers/video/console/fbcon_ud.c | 19 +- trunk/drivers/video/console/softcursor.c | 2 - trunk/drivers/video/console/tileblit.c | 17 +- trunk/drivers/video/controlfb.c | 114 +- trunk/drivers/video/cyber2000fb.c | 1 + trunk/drivers/video/cyblafb.c | 1524 ++++---- trunk/drivers/video/fbcvt.c | 3 +- trunk/drivers/video/fbmem.c | 37 +- trunk/drivers/video/fbmon.c | 129 +- trunk/drivers/video/fbsysfs.c | 81 +- trunk/drivers/video/hgafb.c | 107 +- trunk/drivers/video/i810/i810-i2c.c | 3 +- trunk/drivers/video/i810/i810_accel.c | 27 +- trunk/drivers/video/i810/i810_gtf.c | 1 - trunk/drivers/video/i810/i810_main.c | 137 +- trunk/drivers/video/i810/i810_main.h | 56 +- trunk/drivers/video/imsttfb.c | 56 +- trunk/drivers/video/kyro/STG4000InitDevice.c | 1 - trunk/drivers/video/kyro/STG4000Interface.h | 3 +- .../drivers/video/kyro/STG4000OverlayDevice.c | 1 - trunk/drivers/video/kyro/fbdev.c | 32 +- trunk/drivers/video/logo/Makefile | 2 +- trunk/drivers/video/macfb.c | 15 +- trunk/drivers/video/matrox/matroxfb_base.h | 4 + trunk/drivers/video/matrox/matroxfb_g450.c | 2 - trunk/drivers/video/matrox/matroxfb_misc.c | 8 +- trunk/drivers/video/neofb.c | 36 +- trunk/drivers/video/nvidia/nv_hw.c | 82 +- trunk/drivers/video/nvidia/nv_i2c.c | 12 +- trunk/drivers/video/nvidia/nv_proto.h | 2 +- trunk/drivers/video/nvidia/nv_setup.c | 37 +- trunk/drivers/video/nvidia/nvidia.c | 117 +- trunk/drivers/video/offb.c | 122 +- trunk/drivers/video/platinumfb.c | 98 +- trunk/drivers/video/platinumfb.h | 4 +- trunk/drivers/video/pm2fb.c | 21 +- trunk/drivers/video/riva/fbdev.c | 68 +- trunk/drivers/video/riva/rivafb-i2c.c | 8 +- trunk/drivers/video/s3c2410fb.c | 10 +- trunk/drivers/video/sa1100fb.c | 15 +- trunk/drivers/video/savage/savagefb-i2c.c | 44 +- trunk/drivers/video/savage/savagefb_accel.c | 8 +- trunk/drivers/video/savage/savagefb_driver.c | 53 +- trunk/drivers/video/skeletonfb.c | 482 +-- trunk/drivers/video/sstfb.c | 60 +- trunk/drivers/video/stifb.c | 65 +- trunk/drivers/video/tdfxfb.c | 59 +- trunk/drivers/video/valkyriefb.c | 12 +- trunk/drivers/video/vesafb.c | 47 +- trunk/drivers/video/vga16fb.c | 8 + trunk/drivers/video/vgastate.c | 5 +- trunk/drivers/w1/Kconfig | 2 +- trunk/drivers/zorro/proc.c | 2 +- trunk/fs/9p/vfs_inode.c | 2 +- trunk/fs/9p/vfs_super.c | 2 +- trunk/fs/Kconfig | 2 +- trunk/fs/Makefile | 2 +- trunk/fs/affs/inode.c | 4 +- trunk/fs/afs/cmservice.c | 2 +- trunk/fs/attr.c | 2 +- trunk/fs/autofs/root.c | 5 +- trunk/fs/autofs4/root.c | 23 +- trunk/fs/binfmt_aout.c | 2 + trunk/fs/binfmt_elf.c | 10 +- trunk/fs/binfmt_elf_fdpic.c | 2 +- trunk/fs/binfmt_flat.c | 19 +- trunk/fs/binfmt_misc.c | 12 +- trunk/fs/bio.c | 1 - trunk/fs/block_dev.c | 4 +- trunk/fs/buffer.c | 7 +- trunk/fs/cifs/cifs_uniupr.h | 2 +- trunk/fs/cifs/cifsfs.c | 6 +- trunk/fs/cifs/inode.c | 8 +- trunk/fs/coda/dir.c | 4 +- trunk/fs/coda/file.c | 8 +- trunk/fs/compat_ioctl.c | 395 +- trunk/fs/configfs/dir.c | 54 +- trunk/fs/configfs/file.c | 4 +- trunk/fs/configfs/inode.c | 6 +- trunk/fs/dcache.c | 7 +- trunk/fs/dcookies.c | 1 - trunk/fs/debugfs/inode.c | 8 +- trunk/fs/devfs/base.c | 22 +- trunk/fs/devpts/inode.c | 8 +- trunk/fs/direct-io.c | 30 +- trunk/fs/dquot.c | 17 +- trunk/fs/exec.c | 6 +- trunk/fs/exportfs/expfs.c | 12 +- trunk/fs/ext2/acl.c | 11 +- trunk/fs/ext2/balloc.c | 1 - trunk/fs/ext2/bitmap.c | 7 - trunk/fs/ext2/dir.c | 2 +- trunk/fs/ext2/ext2.h | 2 +- trunk/fs/ext2/ioctl.c | 1 - trunk/fs/ext2/super.c | 4 +- trunk/fs/ext2/xattr.c | 6 +- trunk/fs/ext2/xattr_trusted.c | 5 +- trunk/fs/ext2/xattr_user.c | 14 + trunk/fs/ext3/acl.c | 11 +- trunk/fs/ext3/balloc.c | 3 +- trunk/fs/ext3/bitmap.c | 8 +- trunk/fs/ext3/bitmap.h | 8 + trunk/fs/ext3/ialloc.c | 1 + trunk/fs/ext3/ioctl.c | 1 - trunk/fs/ext3/super.c | 6 +- trunk/fs/ext3/xattr.c | 6 +- trunk/fs/ext3/xattr_trusted.c | 5 +- trunk/fs/ext3/xattr_user.c | 15 + trunk/fs/fat/dir.c | 4 +- trunk/fs/fat/file.c | 5 +- trunk/fs/fcntl.c | 1 - trunk/fs/fifo.c | 6 +- trunk/fs/file_table.c | 1 - trunk/fs/fuse/file.c | 4 +- trunk/fs/hfs/inode.c | 4 +- trunk/fs/hfsplus/bitmap.c | 8 +- trunk/fs/hfsplus/hfsplus_fs.h | 3 + trunk/fs/hfsplus/inode.c | 14 +- trunk/fs/hfsplus/ioctl.c | 1 - trunk/fs/hfsplus/super.c | 19 + trunk/fs/hpfs/dir.c | 6 +- trunk/fs/hppfs/hppfs_kern.c | 6 +- trunk/fs/hugetlbfs/inode.c | 5 +- trunk/fs/inode.c | 53 +- trunk/fs/ioctl.c | 1 - trunk/fs/ioprio.c | 1 - trunk/fs/jffs/inode-v23.c | 2 +- trunk/fs/jffs2/fs.c | 1 - trunk/fs/jfs/jfs_incore.h | 4 +- trunk/fs/jfs/xattr.c | 67 +- trunk/fs/libfs.c | 8 +- trunk/fs/namei.c | 83 +- trunk/fs/namespace.c | 25 +- trunk/fs/ncpfs/file.c | 2 +- trunk/fs/ncpfs/ioctl.c | 1 - trunk/fs/nfs/dir.c | 10 +- trunk/fs/nfs/inode.c | 17 +- trunk/fs/nfsd/nfs4recover.c | 20 +- trunk/fs/nfsd/vfs.c | 133 +- trunk/fs/ntfs/attrib.c | 4 +- trunk/fs/ntfs/dir.c | 8 +- trunk/fs/ntfs/file.c | 20 +- trunk/fs/ntfs/index.c | 6 +- trunk/fs/ntfs/inode.c | 28 +- trunk/fs/ntfs/namei.c | 6 +- trunk/fs/ntfs/quota.c | 6 +- trunk/fs/ntfs/super.c | 44 +- trunk/fs/ocfs2/alloc.c | 24 +- trunk/fs/ocfs2/cluster/nodemanager.c | 2 +- trunk/fs/ocfs2/dir.c | 4 +- trunk/fs/ocfs2/file.c | 9 +- trunk/fs/ocfs2/inode.c | 12 +- trunk/fs/ocfs2/journal.c | 14 +- trunk/fs/ocfs2/localalloc.c | 6 +- trunk/fs/ocfs2/mmap.c | 8 +- trunk/fs/ocfs2/super.c | 2 +- trunk/fs/open.c | 25 +- trunk/fs/partitions/Kconfig | 20 +- trunk/fs/pipe.c | 46 +- trunk/fs/proc/array.c | 6 +- trunk/fs/proc/base.c | 1 - trunk/fs/proc/kcore.c | 1 - trunk/fs/proc/vmcore.c | 6 +- trunk/fs/quota.c | 7 +- trunk/fs/read_write.c | 4 +- trunk/fs/readdir.c | 4 +- trunk/fs/reiserfs/file.c | 12 +- trunk/fs/reiserfs/inode.c | 14 +- trunk/fs/reiserfs/ioctl.c | 5 +- trunk/fs/reiserfs/journal.c | 5 +- trunk/fs/reiserfs/super.c | 4 +- trunk/fs/reiserfs/tail_conversion.c | 2 +- trunk/fs/reiserfs/xattr.c | 56 +- trunk/fs/reiserfs/xattr_acl.c | 7 +- trunk/fs/reiserfs/xattr_trusted.c | 1 - trunk/fs/reiserfs/xattr_user.c | 30 + trunk/fs/relayfs/inode.c | 12 +- trunk/fs/smbfs/proc.c | 1 - trunk/fs/super.c | 2 +- trunk/fs/sysfs/dir.c | 31 +- trunk/fs/sysfs/file.c | 17 +- trunk/fs/sysfs/inode.c | 9 +- trunk/fs/sysfs/symlink.c | 5 +- trunk/fs/udf/file.c | 1 - trunk/fs/ufs/balloc.c | 1 - trunk/fs/ufs/super.c | 6 +- trunk/fs/ufs/util.h | 4 +- trunk/fs/xattr.c | 199 +- trunk/fs/xfs/Kbuild | 6 - trunk/fs/xfs/linux-2.6/mutex.h | 10 +- trunk/fs/xfs/linux-2.6/xfs_aops.c | 1088 +++--- trunk/fs/xfs/linux-2.6/xfs_aops.h | 10 - trunk/fs/xfs/linux-2.6/xfs_buf.c | 1373 +++---- trunk/fs/xfs/linux-2.6/xfs_buf.h | 696 ++-- trunk/fs/xfs/linux-2.6/xfs_cred.h | 4 +- trunk/fs/xfs/linux-2.6/xfs_file.c | 6 +- trunk/fs/xfs/linux-2.6/xfs_ioctl.c | 16 +- trunk/fs/xfs/linux-2.6/xfs_ioctl32.c | 1 + trunk/fs/xfs/linux-2.6/xfs_iops.c | 127 +- trunk/fs/xfs/linux-2.6/xfs_iops.h | 5 + trunk/fs/xfs/linux-2.6/xfs_linux.h | 6 +- trunk/fs/xfs/linux-2.6/xfs_lrw.c | 76 +- trunk/fs/xfs/linux-2.6/xfs_stats.c | 2 +- trunk/fs/xfs/linux-2.6/xfs_stats.h | 18 +- trunk/fs/xfs/linux-2.6/xfs_super.c | 19 +- trunk/fs/xfs/linux-2.6/xfs_vnode.c | 1 + trunk/fs/xfs/linux-2.6/xfs_vnode.h | 19 - trunk/fs/xfs/quota/xfs_dquot.c | 4 +- trunk/fs/xfs/quota/xfs_dquot_item.c | 4 +- trunk/fs/xfs/quota/xfs_qm.c | 28 +- trunk/fs/xfs/quota/xfs_qm.h | 2 +- trunk/fs/xfs/quota/xfs_qm_bhv.c | 2 +- trunk/fs/xfs/quota/xfs_qm_syscalls.c | 11 +- trunk/fs/xfs/quota/xfs_quota_priv.h | 2 +- trunk/fs/xfs/support/debug.c | 60 +- trunk/fs/xfs/support/debug.h | 25 +- trunk/fs/xfs/support/uuid.c | 29 +- trunk/fs/xfs/xfs_acl.c | 1 - trunk/fs/xfs/xfs_arch.h | 22 +- trunk/fs/xfs/xfs_attr.c | 32 +- trunk/fs/xfs/xfs_attr_leaf.c | 12 +- trunk/fs/xfs/xfs_attr_leaf.h | 79 +- trunk/fs/xfs/xfs_bmap.c | 412 +-- trunk/fs/xfs/xfs_bmap.h | 7 +- trunk/fs/xfs/xfs_clnt.h | 2 +- trunk/fs/xfs/xfs_dfrag.c | 16 +- trunk/fs/xfs/xfs_dinode.h | 22 +- trunk/fs/xfs/xfs_dir.c | 2 +- trunk/fs/xfs/xfs_dir.h | 2 - trunk/fs/xfs/xfs_dir2.h | 3 + trunk/fs/xfs/xfs_dir_leaf.h | 64 +- trunk/fs/xfs/xfs_dmapi.h | 14 +- trunk/fs/xfs/xfs_error.c | 1 + trunk/fs/xfs/xfs_error.h | 8 +- trunk/fs/xfs/xfs_fs.h | 10 +- trunk/fs/xfs/xfs_fsops.c | 26 - trunk/fs/xfs/xfs_fsops.h | 1 - trunk/fs/xfs/xfs_iget.c | 5 +- trunk/fs/xfs/xfs_inode.c | 61 +- trunk/fs/xfs/xfs_inode.h | 4 - trunk/fs/xfs/xfs_inode_item.c | 9 +- trunk/fs/xfs/xfs_iomap.c | 426 +-- trunk/fs/xfs/xfs_itable.c | 5 +- trunk/fs/xfs/xfs_log.c | 123 +- trunk/fs/xfs/xfs_log.h | 11 +- trunk/fs/xfs/xfs_log_priv.h | 77 +- trunk/fs/xfs/xfs_log_recover.c | 12 +- trunk/fs/xfs/xfs_mount.c | 7 +- trunk/fs/xfs/xfs_mount.h | 5 +- trunk/fs/xfs/xfs_rename.c | 7 +- trunk/fs/xfs/xfs_rw.c | 9 +- trunk/fs/xfs/xfs_sb.h | 17 + trunk/fs/xfs/xfs_trans.c | 14 +- trunk/fs/xfs/xfs_trans.h | 1 + trunk/fs/xfs/xfs_utils.c | 9 +- trunk/fs/xfs/xfs_vfsops.c | 50 +- trunk/fs/xfs/xfs_vnodeops.c | 196 +- trunk/include/asm-alpha/atomic.h | 1 - trunk/include/asm-alpha/mmu_context.h | 6 +- trunk/include/asm-alpha/mutex.h | 9 - trunk/include/asm-alpha/processor.h | 13 +- trunk/include/asm-alpha/ptrace.h | 6 +- trunk/include/asm-alpha/system.h | 18 +- trunk/include/asm-alpha/thread_info.h | 2 + .../asm-arm/arch-at91rm9200/at91rm9200.h | 261 -- .../asm-arm/arch-at91rm9200/at91rm9200_pdc.h | 36 - .../asm-arm/arch-at91rm9200/at91rm9200_sys.h | 328 -- .../arch-at91rm9200/at91rm9200_usart.h | 123 - trunk/include/asm-arm/arch-at91rm9200/board.h | 80 - .../asm-arm/arch-at91rm9200/debug-macro.S | 38 - .../asm-arm/arch-at91rm9200/entry-macro.S | 25 - trunk/include/asm-arm/arch-at91rm9200/gpio.h | 193 - .../asm-arm/arch-at91rm9200/hardware.h | 92 - trunk/include/asm-arm/arch-at91rm9200/irqs.h | 52 - trunk/include/asm-arm/arch-at91rm9200/pio.h | 115 - .../asm-arm/arch-at91rm9200/uncompress.h | 55 - .../asm-arm/arch-epxa10db/debug-macro.S | 41 + .../{arch-at91rm9200 => arch-epxa10db}/dma.h | 4 +- .../asm-arm/arch-epxa10db/entry-macro.S | 25 + trunk/include/asm-arm/arch-epxa10db/ether00.h | 482 +++ .../include/asm-arm/arch-epxa10db/excalibur.h | 91 + .../include/asm-arm/arch-epxa10db/hardware.h | 64 + .../asm-arm/arch-epxa10db/int_ctrl00.h | 288 ++ .../{arch-at91rm9200 => arch-epxa10db}/io.h | 26 +- trunk/include/asm-arm/arch-epxa10db/irqs.h | 45 + .../memory.h | 19 +- .../asm-arm/arch-epxa10db/mode_ctrl00.h | 80 + .../param.h | 13 +- .../include/asm-arm/arch-epxa10db/platform.h | 7 + .../asm-arm/arch-epxa10db/pld_conf00.h | 73 + .../system.h | 28 +- trunk/include/asm-arm/arch-epxa10db/tdkphy.h | 209 ++ trunk/include/asm-arm/arch-epxa10db/timer00.h | 98 + .../timex.h | 18 +- trunk/include/asm-arm/arch-epxa10db/uart00.h | 181 + .../asm-arm/arch-epxa10db/uncompress.h | 54 + .../vmalloc.h | 12 +- trunk/include/asm-arm/atomic.h | 2 - trunk/include/asm-arm/byteorder.h | 11 +- trunk/include/asm-arm/io.h | 6 - trunk/include/asm-arm/ioctl.h | 75 +- trunk/include/asm-arm/mach/map.h | 3 + .../include/asm-arm/mach/serial_at91rm9200.h | 36 - trunk/include/asm-arm/memory.h | 15 - trunk/include/asm-arm/mutex.h | 128 - trunk/include/asm-arm/processor.h | 8 +- trunk/include/asm-arm/system.h | 12 +- trunk/include/asm-arm/thread_info.h | 7 +- trunk/include/asm-arm26/atomic.h | 2 - trunk/include/asm-arm26/ioctl.h | 75 +- trunk/include/asm-arm26/system.h | 12 +- trunk/include/asm-arm26/thread_info.h | 9 +- trunk/include/asm-cris/arch-v10/processor.h | 2 +- trunk/include/asm-cris/arch-v32/processor.h | 2 +- trunk/include/asm-cris/atomic.h | 2 - trunk/include/asm-cris/ioctl.h | 84 +- trunk/include/asm-cris/mutex.h | 9 - trunk/include/asm-cris/processor.h | 3 +- trunk/include/asm-cris/thread_info.h | 2 + trunk/include/asm-frv/atomic.h | 1 - trunk/include/asm-frv/ioctl.h | 81 +- trunk/include/asm-frv/mutex.h | 9 - trunk/include/asm-frv/thread_info.h | 2 + trunk/include/asm-generic/ioctl.h | 80 - trunk/include/asm-generic/mutex-dec.h | 110 - trunk/include/asm-generic/mutex-null.h | 24 - trunk/include/asm-generic/mutex-xchg.h | 117 - trunk/include/asm-h8300/atomic.h | 2 - trunk/include/asm-h8300/ioctl.h | 81 +- trunk/include/asm-h8300/mutex.h | 9 - trunk/include/asm-h8300/page.h | 6 + trunk/include/asm-h8300/thread_info.h | 2 + trunk/include/asm-i386/apic.h | 5 - trunk/include/asm-i386/atomic.h | 1 - trunk/include/asm-i386/bitops.h | 24 +- trunk/include/asm-i386/cpufeature.h | 1 - trunk/include/asm-i386/dma-mapping.h | 12 +- trunk/include/asm-i386/i387.h | 8 +- trunk/include/asm-i386/io.h | 5 - trunk/include/asm-i386/ioctl.h | 86 +- trunk/include/asm-i386/kexec.h | 47 +- trunk/include/asm-i386/kprobes.h | 9 +- .../include/asm-i386/mach-default/mach_ipi.h | 4 +- trunk/include/asm-i386/mutex.h | 136 - trunk/include/asm-i386/processor.h | 26 +- trunk/include/asm-i386/system.h | 9 - trunk/include/asm-i386/thread_info.h | 2 + trunk/include/asm-i386/topology.h | 1 + trunk/include/asm-ia64/atomic.h | 1 - trunk/include/asm-ia64/compat.h | 2 +- trunk/include/asm-ia64/ioctl.h | 78 +- trunk/include/asm-ia64/kprobes.h | 14 +- trunk/include/asm-ia64/mutex.h | 9 - trunk/include/asm-ia64/processor.h | 2 +- trunk/include/asm-ia64/ptrace.h | 4 +- trunk/include/asm-ia64/system.h | 9 +- trunk/include/asm-ia64/thread_info.h | 9 - trunk/include/asm-ia64/topology.h | 2 + trunk/include/asm-m32r/atomic.h | 1 - trunk/include/asm-m32r/ioctl.h | 79 +- trunk/include/asm-m32r/mutex.h | 9 - trunk/include/asm-m32r/ptrace.h | 3 - trunk/include/asm-m32r/system.h | 10 - trunk/include/asm-m32r/thread_info.h | 2 + trunk/include/asm-m68k/amigahw.h | 12 +- trunk/include/asm-m68k/amigaints.h | 2 + trunk/include/asm-m68k/atomic.h | 1 - trunk/include/asm-m68k/checksum.h | 2 +- trunk/include/asm-m68k/dsp56k.h | 2 +- trunk/include/asm-m68k/floppy.h | 2 +- trunk/include/asm-m68k/hardirq.h | 9 + trunk/include/asm-m68k/io.h | 49 +- trunk/include/asm-m68k/ioctl.h | 81 +- trunk/include/asm-m68k/irq.h | 9 - trunk/include/asm-m68k/machdep.h | 1 + trunk/include/asm-m68k/mutex.h | 9 - trunk/include/asm-m68k/raw_io.h | 40 +- trunk/include/asm-m68k/signal.h | 2 +- trunk/include/asm-m68k/sun3_pgtable.h | 2 +- trunk/include/asm-m68k/sun3ints.h | 1 + trunk/include/asm-m68k/sun3xflop.h | 4 +- trunk/include/asm-m68k/thread_info.h | 1 - trunk/include/asm-m68k/uaccess.h | 20 +- trunk/include/asm-m68k/zorro.h | 8 +- trunk/include/asm-m68knommu/atomic.h | 1 - trunk/include/asm-m68knommu/bitops.h | 2 +- trunk/include/asm-m68knommu/ioctl.h | 2 +- trunk/include/asm-m68knommu/machdep.h | 1 + trunk/include/asm-m68knommu/mutex.h | 9 - trunk/include/asm-m68knommu/sigcontext.h | 1 - trunk/include/asm-m68knommu/thread_info.h | 2 + trunk/include/asm-mips/atomic.h | 44 +- trunk/include/asm-mips/cpu-features.h | 21 - trunk/include/asm-mips/cpu.h | 20 +- trunk/include/asm-mips/delay.h | 6 +- trunk/include/asm-mips/dsp.h | 4 +- trunk/include/asm-mips/elf.h | 4 +- trunk/include/asm-mips/hazards.h | 20 +- trunk/include/asm-mips/interrupt.h | 1 - trunk/include/asm-mips/mach-au1x00/au1000.h | 7 +- .../mach-ip22/cpu-feature-overrides.h | 5 - .../mach-ip27/cpu-feature-overrides.h | 5 - trunk/include/asm-mips/mach-ip27/topology.h | 1 + .../mach-ip32/cpu-feature-overrides.h | 5 - .../asm-mips/mach-ja/cpu-feature-overrides.h | 5 - .../mach-ocelot3/cpu-feature-overrides.h | 5 - .../mach-rm200/cpu-feature-overrides.h | 5 - .../mach-yosemite/cpu-feature-overrides.h | 5 - trunk/include/asm-mips/mipsregs.h | 2 +- trunk/include/asm-mips/mutex.h | 9 - trunk/include/asm-mips/processor.h | 11 +- trunk/include/asm-mips/system.h | 12 +- trunk/include/asm-mips/thread_info.h | 2 + trunk/include/asm-mips/vr41xx/capcella.h | 2 +- trunk/include/asm-mips/vr41xx/e55.h | 2 +- trunk/include/asm-mips/vr41xx/giu.h | 2 +- trunk/include/asm-mips/vr41xx/mpc30x.h | 2 +- trunk/include/asm-mips/vr41xx/pci.h | 2 +- trunk/include/asm-mips/vr41xx/siu.h | 2 +- trunk/include/asm-mips/vr41xx/tb0219.h | 2 +- trunk/include/asm-mips/vr41xx/tb0226.h | 2 +- trunk/include/asm-mips/vr41xx/vr41xx.h | 2 +- trunk/include/asm-mips/vr41xx/vrc4173.h | 2 +- trunk/include/asm-mips/vr41xx/workpad.h | 2 +- trunk/include/asm-parisc/atomic.h | 1 - trunk/include/asm-parisc/cache.h | 8 +- trunk/include/asm-parisc/io.h | 2 +- trunk/include/asm-parisc/mutex.h | 9 - trunk/include/asm-parisc/page.h | 7 - trunk/include/asm-parisc/pci.h | 8 +- trunk/include/asm-parisc/processor.h | 18 +- trunk/include/asm-parisc/system.h | 9 - trunk/include/asm-parisc/thread_info.h | 3 + trunk/include/asm-parisc/tlbflush.h | 1 - trunk/include/asm-powerpc/abs_addr.h | 2 - trunk/include/asm-powerpc/agp.h | 2 - trunk/include/asm-powerpc/asm-compat.h | 3 +- trunk/include/asm-powerpc/atomic.h | 1 - trunk/include/asm-powerpc/bootx.h | 171 - trunk/include/asm-powerpc/btext.h | 19 +- trunk/include/asm-powerpc/bug.h | 2 - trunk/include/asm-powerpc/checksum.h | 2 - trunk/include/asm-powerpc/compat.h | 2 - trunk/include/asm-powerpc/cputable.h | 36 +- trunk/include/asm-powerpc/current.h | 2 - trunk/include/asm-powerpc/delay.h | 2 - trunk/include/asm-powerpc/dma-mapping.h | 2 - trunk/include/asm-powerpc/dma.h | 2 - trunk/include/asm-powerpc/eeh.h | 23 +- trunk/include/asm-powerpc/eeh_event.h | 9 +- trunk/include/asm-powerpc/elf.h | 4 +- trunk/include/asm-powerpc/firmware.h | 6 - trunk/include/asm-powerpc/floppy.h | 2 - trunk/include/asm-powerpc/grackle.h | 5 - trunk/include/asm-powerpc/hardirq.h | 2 - trunk/include/asm-powerpc/heathrow.h | 5 - trunk/include/asm-powerpc/hvcall.h | 2 - trunk/include/asm-powerpc/hvconsole.h | 2 - trunk/include/asm-powerpc/hvcserver.h | 2 - trunk/include/asm-powerpc/i8259.h | 2 - trunk/include/asm-powerpc/ibmebus.h | 85 - trunk/include/asm-powerpc/io.h | 6 +- trunk/include/asm-powerpc/iommu.h | 27 +- trunk/include/asm-powerpc/iseries/hv_call.h | 4 +- .../asm-powerpc/iseries/hv_call_event.h | 134 +- .../include/asm-powerpc/iseries/hv_call_sc.h | 1 + .../asm-powerpc/iseries/hv_lp_config.h | 1 + .../include/asm-powerpc/iseries/hv_lp_event.h | 42 +- trunk/include/asm-powerpc/iseries/hv_types.h | 1 + .../include/asm-powerpc/iseries/iseries_io.h | 14 +- .../asm-powerpc/iseries/it_exp_vpd_panel.h | 1 + .../include/asm-powerpc/iseries/it_lp_naca.h | 22 +- .../include/asm-powerpc/iseries/it_lp_queue.h | 1 + .../asm-powerpc/iseries/it_lp_reg_save.h | 5 +- trunk/include/asm-powerpc/iseries/lpar_map.h | 1 + trunk/include/asm-powerpc/iseries/mf.h | 1 + trunk/include/asm-powerpc/iseries/vio.h | 1 + trunk/include/asm-powerpc/kdebug.h | 2 - trunk/include/asm-powerpc/kdump.h | 13 - trunk/include/asm-powerpc/kexec.h | 28 +- trunk/include/asm-powerpc/keylargo.h | 15 +- trunk/include/asm-powerpc/kprobes.h | 16 +- trunk/include/asm-powerpc/lmb.h | 2 - trunk/include/asm-powerpc/lppaca.h | 2 - trunk/include/asm-powerpc/machdep.h | 12 +- trunk/include/asm-powerpc/macio.h | 2 - trunk/include/asm-powerpc/mmu.h | 9 +- trunk/include/asm-powerpc/mmu_context.h | 2 - trunk/include/asm-powerpc/mmzone.h | 2 - trunk/include/asm-powerpc/module.h | 2 - trunk/include/asm-powerpc/mpic.h | 6 +- trunk/include/asm-powerpc/mutex.h | 9 - trunk/include/asm-powerpc/numnodes.h | 2 - trunk/include/asm-powerpc/nvram.h | 4 - trunk/include/asm-powerpc/of_device.h | 2 - trunk/include/asm-powerpc/ohare.h | 6 - trunk/include/asm-powerpc/oprofile_impl.h | 33 +- trunk/include/asm-powerpc/pSeries_reconfig.h | 2 - trunk/include/asm-powerpc/paca.h | 22 +- trunk/include/asm-powerpc/page.h | 34 +- trunk/include/asm-powerpc/page_32.h | 2 - trunk/include/asm-powerpc/page_64.h | 12 +- trunk/include/asm-powerpc/param.h | 2 + trunk/include/asm-powerpc/parport.h | 30 +- trunk/include/asm-powerpc/pci-bridge.h | 35 +- trunk/include/asm-powerpc/pci.h | 2 - trunk/include/asm-powerpc/percpu.h | 56 - trunk/include/asm-powerpc/pgalloc.h | 2 - trunk/include/asm-powerpc/pgtable-64k.h | 6 - trunk/include/asm-powerpc/pgtable.h | 13 - trunk/include/asm-powerpc/pmac_feature.h | 25 +- trunk/include/asm-powerpc/pmac_low_i2c.h | 92 +- trunk/include/asm-powerpc/pmac_pfunc.h | 253 -- trunk/include/asm-powerpc/pmc.h | 2 - trunk/include/asm-powerpc/ppc-pci.h | 25 +- trunk/include/asm-powerpc/ppc_asm.h | 3 - trunk/include/asm-powerpc/processor.h | 5 +- trunk/include/asm-powerpc/prom.h | 71 +- trunk/include/asm-powerpc/ptrace.h | 2 +- trunk/include/asm-powerpc/reg.h | 58 +- trunk/include/asm-powerpc/rtas.h | 3 +- trunk/include/asm-powerpc/seccomp.h | 4 - trunk/include/asm-powerpc/sections.h | 2 - trunk/include/asm-powerpc/serial.h | 6 - trunk/include/asm-powerpc/signal.h | 7 +- trunk/include/asm-powerpc/smu.h | 40 +- trunk/include/asm-powerpc/sparsemem.h | 10 - trunk/include/asm-powerpc/spinlock.h | 2 - trunk/include/asm-powerpc/spu.h | 600 ---- trunk/include/asm-powerpc/spu_csa.h | 255 -- trunk/include/asm-powerpc/synch.h | 4 +- trunk/include/asm-powerpc/system.h | 21 +- trunk/include/asm-powerpc/tce.h | 2 - trunk/include/asm-powerpc/thread_info.h | 15 +- trunk/include/asm-powerpc/tlb.h | 2 - trunk/include/asm-powerpc/topology.h | 7 +- trunk/include/asm-powerpc/udbg.h | 26 +- trunk/include/asm-powerpc/unistd.h | 4 +- trunk/include/asm-powerpc/vdso_datapage.h | 2 - trunk/include/asm-powerpc/vio.h | 2 - trunk/include/asm-ppc/bseip.h | 38 + trunk/include/asm-ppc/btext.h | 2 +- trunk/include/{asm-powerpc => asm-ppc}/ipic.h | 0 trunk/include/asm-ppc/machdep.h | 4 +- trunk/include/asm-ppc/mpc85xx.h | 4 - trunk/include/asm-ppc/pci-bridge.h | 9 - trunk/include/asm-ppc/prom.h | 32 - trunk/include/asm-ppc/system.h | 22 +- trunk/include/asm-s390/atomic.h | 2 - trunk/include/asm-s390/elf.h | 2 +- trunk/include/asm-s390/ioctl.h | 89 +- trunk/include/asm-s390/kexec.h | 5 +- trunk/include/asm-s390/mutex.h | 9 - trunk/include/asm-s390/processor.h | 8 +- trunk/include/asm-s390/system.h | 10 - trunk/include/asm-s390/thread_info.h | 2 + trunk/include/asm-sh/atomic.h | 2 - trunk/include/asm-sh/ioctl.h | 76 +- trunk/include/asm-sh/mutex.h | 9 - trunk/include/asm-sh/ptrace.h | 10 - trunk/include/asm-sh/system.h | 10 - trunk/include/asm-sh/thread_info.h | 2 + trunk/include/asm-sh64/atomic.h | 2 - trunk/include/asm-sh64/io.h | 8 +- trunk/include/asm-sh64/ioctl.h | 84 +- trunk/include/asm-sh64/mmu_context.h | 2 +- trunk/include/asm-sh64/mutex.h | 9 - trunk/include/asm-sh64/pgalloc.h | 14 +- trunk/include/asm-sh64/pgtable.h | 24 +- trunk/include/asm-sh64/processor.h | 4 +- trunk/include/asm-sh64/system.h | 4 +- trunk/include/asm-sh64/thread_info.h | 2 + trunk/include/asm-sh64/tlbflush.h | 2 +- trunk/include/asm-sh64/uaccess.h | 2 +- trunk/include/asm-sparc/atomic.h | 1 - trunk/include/asm-sparc/mutex.h | 9 - trunk/include/asm-sparc/system.h | 12 +- trunk/include/asm-sparc/thread_info.h | 3 + trunk/include/asm-sparc64/atomic.h | 1 - trunk/include/asm-sparc64/elf.h | 2 +- trunk/include/asm-sparc64/kprobes.h | 10 +- trunk/include/asm-sparc64/mmu_context.h | 2 +- trunk/include/asm-sparc64/mutex.h | 9 - trunk/include/asm-sparc64/processor.h | 5 +- trunk/include/asm-sparc64/system.h | 14 +- trunk/include/asm-um/mutex.h | 9 - trunk/include/asm-um/processor-generic.h | 1 + trunk/include/asm-um/thread_info.h | 3 + trunk/include/asm-v850/atomic.h | 2 - trunk/include/asm-v850/ioctl.h | 81 +- trunk/include/asm-v850/mutex.h | 9 - trunk/include/asm-v850/processor.h | 8 +- trunk/include/asm-v850/thread_info.h | 2 + trunk/include/asm-x86_64/apic.h | 17 +- trunk/include/asm-x86_64/apicdef.h | 1 - trunk/include/asm-x86_64/atomic.h | 2 - trunk/include/asm-x86_64/bitops.h | 43 +- trunk/include/asm-x86_64/cache.h | 12 - trunk/include/asm-x86_64/compat.h | 7 +- trunk/include/asm-x86_64/cpufeature.h | 3 +- trunk/include/asm-x86_64/desc.h | 18 +- trunk/include/asm-x86_64/dma-mapping.h | 221 +- trunk/include/asm-x86_64/dwarf2.h | 4 +- trunk/include/asm-x86_64/e820.h | 1 - trunk/include/asm-x86_64/gart-mapping.h | 16 - trunk/include/asm-x86_64/hw_irq.h | 10 +- trunk/include/asm-x86_64/i387.h | 68 +- trunk/include/asm-x86_64/idle.h | 14 - trunk/include/asm-x86_64/io.h | 5 - trunk/include/asm-x86_64/ioctl.h | 76 +- trunk/include/asm-x86_64/ipi.h | 4 + trunk/include/asm-x86_64/kdebug.h | 13 +- trunk/include/asm-x86_64/kexec.h | 37 +- trunk/include/asm-x86_64/kprobes.h | 4 - trunk/include/asm-x86_64/mmu_context.h | 9 +- trunk/include/asm-x86_64/mmzone.h | 16 +- trunk/include/asm-x86_64/mutex.h | 113 - trunk/include/asm-x86_64/numa.h | 5 - trunk/include/asm-x86_64/page.h | 15 +- trunk/include/asm-x86_64/pci.h | 11 +- trunk/include/asm-x86_64/pda.h | 11 +- trunk/include/asm-x86_64/percpu.h | 2 +- trunk/include/asm-x86_64/pgtable.h | 32 +- trunk/include/asm-x86_64/processor.h | 12 +- trunk/include/asm-x86_64/proto.h | 15 +- trunk/include/asm-x86_64/segment.h | 4 +- trunk/include/asm-x86_64/smp.h | 1 - trunk/include/asm-x86_64/swiotlb.h | 16 +- trunk/include/asm-x86_64/system.h | 53 +- trunk/include/asm-x86_64/thread_info.h | 3 +- trunk/include/asm-x86_64/timex.h | 16 - trunk/include/asm-x86_64/topology.h | 1 + trunk/include/asm-x86_64/uaccess.h | 1 - trunk/include/asm-x86_64/vsyscall.h | 4 +- trunk/include/asm-xtensa/atomic.h | 1 - trunk/include/asm-xtensa/ioctl.h | 84 +- trunk/include/asm-xtensa/mutex.h | 9 - trunk/include/asm-xtensa/processor.h | 6 +- trunk/include/asm-xtensa/ptrace.h | 4 +- trunk/include/asm-xtensa/thread_info.h | 2 + trunk/include/linux/auxvec.h | 2 +- trunk/include/linux/blkdev.h | 22 +- trunk/include/linux/cache.h | 2 +- trunk/include/linux/calc64.h | 49 - trunk/include/linux/capability.h | 3 - trunk/include/linux/compat_ioctl.h | 34 + trunk/include/linux/compiler-gcc.h | 8 +- trunk/include/linux/crypto.h | 5 - trunk/include/linux/dmi.h | 5 +- trunk/include/linux/dvb/frontend.h | 10 - trunk/include/linux/elevator.h | 4 +- trunk/include/linux/ext3_fs_i.h | 2 +- trunk/include/linux/fs.h | 30 +- trunk/include/linux/fsl_devices.h | 6 +- trunk/include/linux/gfp.h | 5 - trunk/include/linux/hrtimer.h | 139 - trunk/include/linux/i2c-id.h | 1 - trunk/include/linux/ide.h | 5 +- trunk/include/linux/interrupt.h | 2 +- trunk/include/linux/isicom.h | 59 +- trunk/include/linux/jffs2_fs_i.h | 4 +- trunk/include/linux/jiffies.h | 18 +- trunk/include/linux/kbd_kern.h | 2 +- trunk/include/linux/kernel.h | 15 - trunk/include/linux/kexec.h | 4 +- trunk/include/linux/kprobes.h | 6 +- trunk/include/linux/ktime.h | 284 -- trunk/include/linux/list.h | 14 - trunk/include/linux/loop.h | 4 +- trunk/include/linux/mm.h | 5 - trunk/include/linux/mmc/mmc.h | 6 +- trunk/include/linux/mmzone.h | 2 +- trunk/include/linux/mount.h | 8 +- trunk/include/linux/mutex-debug.h | 23 - trunk/include/linux/mutex.h | 120 - trunk/include/linux/namei.h | 2 +- .../linux/netfilter/nf_conntrack_common.h | 3 - trunk/include/linux/netfilter/x_tables.h | 224 -- trunk/include/linux/netfilter/xt_CLASSIFY.h | 8 - trunk/include/linux/netfilter/xt_CONNMARK.h | 25 - trunk/include/linux/netfilter/xt_MARK.h | 21 - trunk/include/linux/netfilter/xt_NFQUEUE.h | 16 - trunk/include/linux/netfilter/xt_comment.h | 10 - trunk/include/linux/netfilter/xt_connbytes.h | 25 - trunk/include/linux/netfilter/xt_connmark.h | 18 - trunk/include/linux/netfilter/xt_conntrack.h | 63 - trunk/include/linux/netfilter/xt_dccp.h | 23 - trunk/include/linux/netfilter/xt_helper.h | 8 - trunk/include/linux/netfilter/xt_length.h | 9 - trunk/include/linux/netfilter/xt_limit.h | 21 - trunk/include/linux/netfilter/xt_mac.h | 8 - trunk/include/linux/netfilter/xt_mark.h | 9 - trunk/include/linux/netfilter/xt_physdev.h | 24 - trunk/include/linux/netfilter/xt_pkttype.h | 8 - trunk/include/linux/netfilter/xt_realm.h | 10 - trunk/include/linux/netfilter/xt_sctp.h | 107 - trunk/include/linux/netfilter/xt_state.h | 13 - trunk/include/linux/netfilter/xt_string.h | 18 - trunk/include/linux/netfilter/xt_tcpmss.h | 9 - trunk/include/linux/netfilter/xt_tcpudp.h | 36 - .../include/linux/netfilter_arp/arp_tables.h | 123 +- .../linux/netfilter_ipv4/ip_conntrack.h | 3 + .../linux/netfilter_ipv4/ip_nat_protocol.h | 7 + .../include/linux/netfilter_ipv4/ip_tables.h | 217 +- .../linux/netfilter_ipv4/ipt_CLASSIFY.h | 5 +- .../linux/netfilter_ipv4/ipt_CONNMARK.h | 16 +- trunk/include/linux/netfilter_ipv4/ipt_MARK.h | 22 +- .../linux/netfilter_ipv4/ipt_NFQUEUE.h | 8 +- .../linux/netfilter_ipv4/ipt_comment.h | 8 +- .../linux/netfilter_ipv4/ipt_connbytes.h | 31 +- .../linux/netfilter_ipv4/ipt_connmark.h | 15 +- .../linux/netfilter_ipv4/ipt_conntrack.h | 66 +- trunk/include/linux/netfilter_ipv4/ipt_dccp.h | 22 +- .../include/linux/netfilter_ipv4/ipt_helper.h | 7 +- .../include/linux/netfilter_ipv4/ipt_length.h | 6 +- .../include/linux/netfilter_ipv4/ipt_limit.h | 19 +- trunk/include/linux/netfilter_ipv4/ipt_mac.h | 7 +- trunk/include/linux/netfilter_ipv4/ipt_mark.h | 8 +- .../linux/netfilter_ipv4/ipt_physdev.h | 27 +- .../linux/netfilter_ipv4/ipt_pkttype.h | 7 +- .../include/linux/netfilter_ipv4/ipt_realm.h | 7 +- .../include/linux/netfilter_ipv4/ipt_state.h | 16 +- .../include/linux/netfilter_ipv4/ipt_string.h | 16 +- .../include/linux/netfilter_ipv4/ipt_tcpmss.h | 6 +- trunk/include/linux/netfilter_ipv6.h | 5 - .../include/linux/netfilter_ipv6/ip6_tables.h | 208 +- .../include/linux/netfilter_ipv6/ip6t_MARK.h | 9 +- .../linux/netfilter_ipv6/ip6t_length.h | 6 +- .../include/linux/netfilter_ipv6/ip6t_limit.h | 21 +- trunk/include/linux/netfilter_ipv6/ip6t_mac.h | 9 +- .../include/linux/netfilter_ipv6/ip6t_mark.h | 8 +- .../linux/netfilter_ipv6/ip6t_physdev.h | 27 +- trunk/include/linux/nfsd/nfsfh.h | 6 +- trunk/include/linux/pci.h | 69 - trunk/include/linux/pci_ids.h | 17 - trunk/include/linux/pci_regs.h | 1 - trunk/include/linux/phy.h | 3 - trunk/include/linux/pipe_fs_i.h | 2 +- trunk/include/linux/pmu.h | 8 +- trunk/include/linux/posix-timers.h | 90 +- trunk/include/linux/rcupdate.h | 35 +- trunk/include/linux/reiserfs_fs.h | 2 +- trunk/include/linux/rio_drv.h | 4 +- trunk/include/linux/sched.h | 44 +- trunk/include/linux/screen_info.h | 3 +- trunk/include/linux/serial_core.h | 3 - trunk/include/linux/socket.h | 3 - trunk/include/linux/syscalls.h | 5 - trunk/include/linux/time.h | 186 +- trunk/include/linux/timer.h | 2 +- trunk/include/linux/tipc.h | 212 -- trunk/include/linux/tipc_config.h | 407 --- trunk/include/linux/topology.h | 2 + trunk/include/linux/tty.h | 25 +- trunk/include/linux/tty_flip.h | 20 +- trunk/include/linux/tty_ldisc.h | 9 + trunk/include/linux/video_decoder.h | 2 - trunk/include/linux/videodev2.h | 16 +- trunk/include/linux/xattr.h | 19 - trunk/include/linux/zlib.h | 11 - trunk/include/media/audiochip.h | 16 + trunk/include/media/saa7146_vv.h | 2 - trunk/include/media/tuner.h | 96 +- trunk/include/media/v4l2-common.h | 84 +- trunk/include/net/act_api.h | 2 +- trunk/include/net/genetlink.h | 1 + trunk/include/net/ieee80211.h | 6 +- trunk/include/net/inet_connection_sock.h | 4 +- .../net/netfilter/ipv4/nf_conntrack_ipv4.h | 3 + trunk/include/net/netfilter/nf_conntrack.h | 3 + .../net/netfilter/nf_conntrack_tuple.h | 2 +- trunk/include/net/pkt_sched.h | 23 +- trunk/include/net/sctp/sctp.h | 4 +- trunk/include/net/tipc/tipc.h | 257 -- trunk/include/net/tipc/tipc_bearer.h | 121 - trunk/include/net/tipc/tipc_msg.h | 223 -- trunk/include/net/tipc/tipc_port.h | 108 - trunk/include/sound/core.h | 3 +- trunk/include/video/cyblafb.h | 4 - trunk/include/video/kyro.h | 1 - trunk/include/video/neomagic.h | 1 - trunk/include/video/newport.h | 5 +- trunk/include/video/sstfb.h | 1 - trunk/include/video/tdfx.h | 86 +- trunk/init/Kconfig | 13 +- trunk/init/main.c | 1 - trunk/ipc/mqueue.c | 9 +- trunk/ipc/msg.c | 1 - trunk/ipc/sem.c | 1 - trunk/ipc/shm.c | 1 - trunk/ipc/util.c | 1 - trunk/kernel/Makefile | 5 +- trunk/kernel/acct.c | 1 - trunk/kernel/capability.c | 1 - trunk/kernel/compat.c | 20 +- trunk/kernel/cpuset.c | 10 +- trunk/{arch/x86_64 => }/kernel/crash_dump.c | 32 +- trunk/kernel/exit.c | 45 +- trunk/kernel/fork.c | 17 +- trunk/kernel/hrtimer.c | 825 ----- trunk/kernel/itimer.c | 106 +- trunk/kernel/kexec.c | 21 +- trunk/kernel/kprobes.c | 137 +- trunk/kernel/ksysfs.c | 13 + trunk/kernel/module.c | 1 - trunk/kernel/mutex-debug.c | 462 --- trunk/kernel/mutex-debug.h | 134 - trunk/kernel/mutex.c | 315 -- trunk/kernel/mutex.h | 35 - trunk/kernel/posix-cpu-timers.c | 63 +- trunk/kernel/posix-timers.c | 887 ++++- trunk/kernel/ptrace.c | 1 - trunk/kernel/rcupdate.c | 120 +- trunk/kernel/resource.c | 2 +- trunk/kernel/sched.c | 486 +-- trunk/kernel/signal.c | 1 - trunk/kernel/stop_machine.c | 6 +- trunk/kernel/sys.c | 13 - trunk/kernel/sys_ni.c | 2 - trunk/kernel/sysctl.c | 1 - trunk/kernel/time.c | 118 +- trunk/kernel/timer.c | 57 +- trunk/kernel/uid16.c | 1 - trunk/lib/Kconfig.debug | 22 +- trunk/lib/spinlock_debug.c | 18 +- trunk/lib/swiotlb.c | 2 +- trunk/lib/zlib_deflate/deflate.c | 6 - trunk/lib/zlib_deflate/deflate_syms.c | 2 + trunk/lib/zlib_inflate/infblock.c | 4 - trunk/lib/zlib_inflate/infblock.h | 4 - trunk/lib/zlib_inflate/inflate_syms.c | 2 + trunk/lib/zlib_inflate/inflate_sync.c | 4 - trunk/mm/filemap.c | 33 +- trunk/mm/filemap_xip.c | 8 +- trunk/mm/memory.c | 6 +- trunk/mm/mempolicy.c | 4 +- trunk/mm/mlock.c | 1 - trunk/mm/mmap.c | 1 - trunk/mm/mremap.c | 1 - trunk/mm/msync.c | 2 +- trunk/mm/page_alloc.c | 14 +- trunk/mm/rmap.c | 8 +- trunk/mm/shmem.c | 6 +- trunk/mm/slab.c | 1 - trunk/mm/swap.c | 2 - trunk/mm/swapfile.c | 11 +- trunk/mm/tiny-shmem.c | 2 +- trunk/mm/truncate.c | 2 +- trunk/net/8021q/vlan.c | 1 - trunk/net/8021q/vlan_dev.c | 2 +- trunk/net/Kconfig | 1 - trunk/net/Makefile | 1 - trunk/net/appletalk/ddp.c | 1 - trunk/net/atm/br2684.c | 5 +- trunk/net/atm/clip.c | 1 - trunk/net/atm/ioctl.c | 1 - trunk/net/atm/lec.c | 10 +- trunk/net/atm/mpc.c | 3 +- trunk/net/atm/pppoatm.c | 1 - trunk/net/atm/raw.c | 1 - trunk/net/atm/resources.c | 1 - trunk/net/ax25/af_ax25.c | 1 - trunk/net/ax25/ax25_route.c | 2 - trunk/net/ax25/ax25_uid.c | 2 - trunk/net/bluetooth/bnep/core.c | 6 +- trunk/net/bluetooth/bnep/sock.c | 1 - trunk/net/bluetooth/cmtp/sock.c | 1 - trunk/net/bluetooth/hci_conn.c | 2 +- trunk/net/bluetooth/hci_sock.c | 1 - trunk/net/bluetooth/hidp/sock.c | 1 - trunk/net/bluetooth/l2cap.c | 1 - trunk/net/bluetooth/rfcomm/tty.c | 10 +- trunk/net/bridge/br_ioctl.c | 1 - trunk/net/bridge/br_sysfs_br.c | 1 - trunk/net/bridge/br_sysfs_if.c | 1 - trunk/net/bridge/netfilter/ebt_ip.c | 3 - trunk/net/bridge/netfilter/ebt_log.c | 1 - trunk/net/bridge/netfilter/ebt_stp.c | 5 +- trunk/net/bridge/netfilter/ebtables.c | 4 +- trunk/net/core/dev.c | 10 +- trunk/net/core/dev_mcast.c | 2 +- trunk/net/core/dv.c | 3 +- trunk/net/core/ethtool.c | 1 - trunk/net/core/filter.c | 10 +- trunk/net/core/net-sysfs.c | 29 +- trunk/net/core/pktgen.c | 2 +- trunk/net/core/scm.c | 1 - trunk/net/core/skbuff.c | 15 +- trunk/net/core/sock.c | 1 - trunk/net/core/wireless.c | 3 +- trunk/net/decnet/af_decnet.c | 1 - trunk/net/decnet/dn_dev.c | 1 - trunk/net/decnet/netfilter/dn_rtmsg.c | 2 + trunk/net/ieee80211/ieee80211_crypt_wep.c | 61 +- trunk/net/ieee80211/ieee80211_rx.c | 14 +- trunk/net/ieee80211/ieee80211_tx.c | 2 +- trunk/net/ieee80211/ieee80211_wx.c | 2 +- trunk/net/ipv4/Makefile | 4 +- trunk/net/ipv4/af_inet.c | 1 - trunk/net/ipv4/arp.c | 1 - trunk/net/ipv4/devinet.c | 1 - trunk/net/ipv4/fib_frontend.c | 1 - trunk/net/ipv4/icmp.c | 3 +- trunk/net/ipv4/igmp.c | 15 +- trunk/net/ipv4/inet_diag.c | 243 +- trunk/net/ipv4/inetpeer.c | 6 +- trunk/net/ipv4/ip_gre.c | 34 +- trunk/net/ipv4/ip_options.c | 1 - trunk/net/ipv4/ip_output.c | 1 - trunk/net/ipv4/ip_sockglue.c | 6 +- trunk/net/ipv4/ipip.c | 19 +- trunk/net/ipv4/ipmr.c | 23 +- trunk/net/ipv4/ipvs/ip_vs_ctl.c | 1 - trunk/net/ipv4/netfilter.c | 10 + trunk/net/ipv4/netfilter/Kconfig | 250 +- trunk/net/ipv4/netfilter/Makefile | 21 + trunk/net/ipv4/netfilter/arp_tables.c | 445 ++- trunk/net/ipv4/netfilter/arpt_mangle.c | 7 +- trunk/net/ipv4/netfilter/arptable_filter.c | 1 - .../ipv4/netfilter/ip_conntrack_helper_pptp.c | 2 +- .../netfilter/ip_conntrack_proto_generic.c | 2 +- .../ipv4/netfilter/ip_conntrack_proto_gre.c | 5 +- .../ipv4/netfilter/ip_conntrack_proto_icmp.c | 3 +- .../ipv4/netfilter/ip_conntrack_proto_sctp.c | 18 +- .../ipv4/netfilter/ip_conntrack_proto_tcp.c | 25 +- .../ipv4/netfilter/ip_conntrack_proto_udp.c | 5 +- .../ipv4/netfilter/ip_conntrack_standalone.c | 30 +- trunk/net/ipv4/netfilter/ip_nat_helper_pptp.c | 81 +- trunk/net/ipv4/netfilter/ip_nat_proto_gre.c | 38 + trunk/net/ipv4/netfilter/ip_nat_proto_icmp.c | 34 + trunk/net/ipv4/netfilter/ip_nat_proto_tcp.c | 36 + trunk/net/ipv4/netfilter/ip_nat_proto_udp.c | 36 + .../net/ipv4/netfilter/ip_nat_proto_unknown.c | 16 + trunk/net/ipv4/netfilter/ip_nat_rule.c | 5 +- trunk/net/ipv4/netfilter/ip_nat_standalone.c | 2 +- trunk/net/ipv4/netfilter/ip_tables.c | 843 ++++- .../netfilter/ipt_CLASSIFY.c} | 41 +- trunk/net/ipv4/netfilter/ipt_CLUSTERIP.c | 3 +- .../netfilter/ipt_CONNMARK.c} | 51 +- trunk/net/ipv4/netfilter/ipt_DSCP.c | 2 +- trunk/net/ipv4/netfilter/ipt_ECN.c | 3 +- trunk/net/ipv4/netfilter/ipt_LOG.c | 2 +- .../xt_MARK.c => ipv4/netfilter/ipt_MARK.c} | 79 +- trunk/net/ipv4/netfilter/ipt_MASQUERADE.c | 2 +- trunk/net/ipv4/netfilter/ipt_NETMAP.c | 2 +- trunk/net/ipv4/netfilter/ipt_NFQUEUE.c | 70 + .../netfilter/ipt_NOTRACK.c} | 38 +- trunk/net/ipv4/netfilter/ipt_REDIRECT.c | 2 +- trunk/net/ipv4/netfilter/ipt_REJECT.c | 3 +- trunk/net/ipv4/netfilter/ipt_SAME.c | 2 +- trunk/net/ipv4/netfilter/ipt_TCPMSS.c | 3 +- trunk/net/ipv4/netfilter/ipt_TOS.c | 2 +- trunk/net/ipv4/netfilter/ipt_TTL.c | 2 +- trunk/net/ipv4/netfilter/ipt_ULOG.c | 2 +- trunk/net/ipv4/netfilter/ipt_addrtype.c | 4 +- trunk/net/ipv4/netfilter/ipt_ah.c | 6 +- .../netfilter/ipt_comment.c} | 35 +- .../netfilter/ipt_connbytes.c} | 73 +- .../netfilter/ipt_connmark.c} | 41 +- .../netfilter/ipt_conntrack.c} | 110 +- .../xt_dccp.c => ipv4/netfilter/ipt_dccp.c} | 105 +- trunk/net/ipv4/netfilter/ipt_dscp.c | 4 +- trunk/net/ipv4/netfilter/ipt_ecn.c | 5 +- trunk/net/ipv4/netfilter/ipt_esp.c | 6 +- trunk/net/ipv4/netfilter/ipt_hashlimit.c | 3 +- .../netfilter/ipt_helper.c} | 56 +- trunk/net/ipv4/netfilter/ipt_iprange.c | 4 +- trunk/net/ipv4/netfilter/ipt_length.c | 64 + .../xt_limit.c => ipv4/netfilter/ipt_limit.c} | 48 +- .../xt_mac.c => ipv4/netfilter/ipt_mac.c} | 43 +- .../xt_mark.c => ipv4/netfilter/ipt_mark.c} | 38 +- trunk/net/ipv4/netfilter/ipt_multiport.c | 10 +- trunk/net/ipv4/netfilter/ipt_owner.c | 3 +- trunk/net/ipv4/netfilter/ipt_physdev.c | 135 + .../netfilter/ipt_pkttype.c} | 46 +- .../xt_realm.c => ipv4/netfilter/ipt_realm.c} | 25 +- trunk/net/ipv4/netfilter/ipt_recent.c | 6 +- .../xt_sctp.c => ipv4/netfilter/ipt_sctp.c} | 109 +- .../xt_state.c => ipv4/netfilter/ipt_state.c} | 50 +- .../netfilter/ipt_string.c} | 40 +- .../netfilter/ipt_tcpmss.c} | 69 +- trunk/net/ipv4/netfilter/ipt_tos.c | 3 +- trunk/net/ipv4/netfilter/ipt_ttl.c | 4 +- trunk/net/ipv4/netfilter/iptable_filter.c | 3 +- trunk/net/ipv4/netfilter/iptable_mangle.c | 1 - trunk/net/ipv4/netfilter/iptable_raw.c | 3 +- .../netfilter/nf_conntrack_l3proto_ipv4.c | 9 +- trunk/net/ipv4/tcp_input.c | 2 +- trunk/net/ipv4/xfrm4_state.c | 15 - trunk/net/ipv6/Makefile | 4 +- trunk/net/ipv6/addrconf.c | 3 +- trunk/net/ipv6/af_inet6.c | 1 - trunk/net/ipv6/ah6.c | 3 +- trunk/net/ipv6/anycast.c | 5 +- trunk/net/ipv6/datagram.c | 1 - trunk/net/ipv6/esp6.c | 3 +- trunk/net/ipv6/icmp.c | 2 +- trunk/net/ipv6/ip6_flowlabel.c | 9 +- trunk/net/ipv6/ip6_output.c | 4 - trunk/net/ipv6/ip6_tunnel.c | 25 +- trunk/net/ipv6/ipcomp6.c | 3 +- trunk/net/ipv6/ipv6_sockglue.c | 3 +- trunk/net/ipv6/mcast.c | 20 +- trunk/net/ipv6/ndisc.c | 2 +- trunk/net/ipv6/netfilter.c | 20 +- trunk/net/ipv6/netfilter/Kconfig | 72 +- trunk/net/ipv6/netfilter/Makefile | 6 + trunk/net/ipv6/netfilter/ip6_tables.c | 830 ++++- trunk/net/ipv6/netfilter/ip6t_HL.c | 2 +- trunk/net/ipv6/netfilter/ip6t_LOG.c | 7 +- trunk/net/ipv6/netfilter/ip6t_MARK.c | 81 + trunk/net/ipv6/netfilter/ip6t_NFQUEUE.c | 70 + trunk/net/ipv6/netfilter/ip6t_REJECT.c | 3 +- trunk/net/ipv6/netfilter/ip6t_ah.c | 2 +- trunk/net/ipv6/netfilter/ip6t_dst.c | 2 +- trunk/net/ipv6/netfilter/ip6t_esp.c | 2 +- trunk/net/ipv6/netfilter/ip6t_eui64.c | 2 +- trunk/net/ipv6/netfilter/ip6t_frag.c | 2 +- trunk/net/ipv6/netfilter/ip6t_hbh.c | 2 +- trunk/net/ipv6/netfilter/ip6t_hl.c | 2 +- trunk/net/ipv6/netfilter/ip6t_ipv6header.c | 2 +- trunk/net/ipv6/netfilter/ip6t_length.c | 66 + trunk/net/ipv6/netfilter/ip6t_limit.c | 147 + trunk/net/ipv6/netfilter/ip6t_mac.c | 80 + trunk/net/ipv6/netfilter/ip6t_mark.c | 66 + trunk/net/ipv6/netfilter/ip6t_multiport.c | 3 +- trunk/net/ipv6/netfilter/ip6t_owner.c | 2 +- .../netfilter/ip6t_physdev.c} | 82 +- trunk/net/ipv6/netfilter/ip6t_rt.c | 2 +- trunk/net/ipv6/netfilter/ip6table_filter.c | 1 - trunk/net/ipv6/netfilter/ip6table_mangle.c | 1 - trunk/net/ipv6/netfilter/ip6table_raw.c | 5 +- .../netfilter/nf_conntrack_l3proto_ipv6.c | 14 +- trunk/net/ipv6/netfilter/nf_conntrack_reasm.c | 45 +- trunk/net/ipv6/route.c | 1 - trunk/net/ipv6/sit.c | 21 +- trunk/net/ipv6/tcp_ipv6.c | 20 +- trunk/net/ipv6/xfrm6_state.c | 17 - trunk/net/ipv6/xfrm6_tunnel.c | 8 +- trunk/net/ipx/af_ipx.c | 1 - trunk/net/irda/af_irda.c | 1 - trunk/net/irda/irda_device.c | 1 - trunk/net/irda/irias_object.c | 12 +- trunk/net/irda/irnet/irnet.h | 1 - trunk/net/key/af_key.c | 4 +- trunk/net/netfilter/Kconfig | 258 -- trunk/net/netfilter/Makefile | 37 +- trunk/net/netfilter/nf_conntrack_ftp.c | 4 +- .../netfilter/nf_conntrack_proto_generic.c | 2 +- trunk/net/netfilter/nf_conntrack_proto_sctp.c | 18 +- trunk/net/netfilter/nf_conntrack_proto_tcp.c | 24 +- trunk/net/netfilter/nf_conntrack_proto_udp.c | 4 +- trunk/net/netfilter/nf_conntrack_standalone.c | 28 +- trunk/net/netfilter/x_tables.c | 624 ---- trunk/net/netfilter/xt_NFQUEUE.c | 107 - trunk/net/netfilter/xt_length.c | 98 - trunk/net/netfilter/xt_tcpudp.c | 333 -- trunk/net/netlink/af_netlink.c | 5 +- trunk/net/netlink/genetlink.c | 7 + trunk/net/netrom/af_netrom.c | 1 - trunk/net/packet/af_packet.c | 3 +- trunk/net/rose/af_rose.c | 2 - trunk/net/rxrpc/connection.c | 14 +- trunk/net/sched/Kconfig | 4 +- trunk/net/sched/Makefile | 14 +- trunk/net/sched/act_api.c | 4 +- trunk/net/sched/ematch.c | 1 + trunk/net/sched/{act_gact.c => gact.c} | 3 +- trunk/net/sched/{act_ipt.c => ipt.c} | 8 +- trunk/net/sched/{act_mirred.c => mirred.c} | 3 +- trunk/net/sched/{act_pedit.c => pedit.c} | 5 +- trunk/net/sched/{act_police.c => police.c} | 17 +- trunk/net/sched/sch_cbq.c | 4 +- trunk/net/sched/sch_hfsc.c | 12 +- trunk/net/sched/sch_htb.c | 4 +- trunk/net/sched/sch_prio.c | 7 +- trunk/net/sched/sch_teql.c | 12 +- trunk/net/sched/{act_simple.c => simple.c} | 3 +- trunk/net/sctp/ipv6.c | 24 +- trunk/net/sctp/sm_make_chunk.c | 2 +- trunk/net/sctp/sm_sideeffect.c | 3 +- trunk/net/sctp/sm_statefuns.c | 4 +- trunk/net/sctp/socket.c | 5 +- trunk/net/socket.c | 2 +- trunk/net/sunrpc/auth.c | 2 +- trunk/net/sunrpc/auth_unix.c | 2 +- trunk/net/sunrpc/cache.c | 5 +- trunk/net/sunrpc/clnt.c | 7 +- trunk/net/sunrpc/rpc_pipe.c | 58 +- trunk/net/sunrpc/svc.c | 9 +- trunk/net/tipc/Kconfig | 112 - trunk/net/tipc/Makefile | 13 - trunk/net/tipc/addr.c | 94 - trunk/net/tipc/addr.h | 128 - trunk/net/tipc/bcast.c | 806 ----- trunk/net/tipc/bcast.h | 223 -- trunk/net/tipc/bearer.c | 692 ---- trunk/net/tipc/bearer.h | 172 - trunk/net/tipc/cluster.c | 576 --- trunk/net/tipc/cluster.h | 92 - trunk/net/tipc/config.c | 718 ---- trunk/net/tipc/config.h | 80 - trunk/net/tipc/core.c | 285 -- trunk/net/tipc/core.h | 316 -- trunk/net/tipc/dbg.c | 395 -- trunk/net/tipc/dbg.h | 59 - trunk/net/tipc/discover.c | 318 -- trunk/net/tipc/discover.h | 58 - trunk/net/tipc/eth_media.c | 299 -- trunk/net/tipc/handler.c | 132 - trunk/net/tipc/link.c | 3167 ----------------- trunk/net/tipc/link.h | 296 -- trunk/net/tipc/msg.c | 334 -- trunk/net/tipc/msg.h | 818 ----- trunk/net/tipc/name_distr.c | 309 -- trunk/net/tipc/name_distr.h | 48 - trunk/net/tipc/name_table.c | 1079 ------ trunk/net/tipc/name_table.h | 108 - trunk/net/tipc/net.c | 311 -- trunk/net/tipc/net.h | 66 - trunk/net/tipc/netlink.c | 112 - trunk/net/tipc/node.c | 679 ---- trunk/net/tipc/node.h | 144 - trunk/net/tipc/node_subscr.c | 79 - trunk/net/tipc/node_subscr.h | 63 - trunk/net/tipc/port.c | 1708 --------- trunk/net/tipc/port.h | 209 -- trunk/net/tipc/ref.c | 189 - trunk/net/tipc/ref.h | 131 - trunk/net/tipc/socket.c | 1726 --------- trunk/net/tipc/subscr.c | 527 --- trunk/net/tipc/subscr.h | 80 - trunk/net/tipc/user_reg.c | 265 -- trunk/net/tipc/user_reg.h | 48 - trunk/net/tipc/zone.c | 169 - trunk/net/tipc/zone.h | 71 - trunk/net/unix/af_unix.c | 4 +- trunk/net/wanrouter/af_wanpipe.c | 1 - trunk/net/wanrouter/wanmain.c | 1 - trunk/net/x25/af_x25.c | 1 - trunk/net/xfrm/xfrm_algo.c | 6 +- trunk/net/xfrm/xfrm_policy.c | 6 +- trunk/scripts/Kbuild.include | 13 +- trunk/scripts/Makefile.build | 4 +- trunk/scripts/Makefile.modpost | 2 +- trunk/scripts/kconfig/lxdialog/Makefile | 48 +- .../kconfig/lxdialog/check-lxdialog.sh | 67 - trunk/scripts/kernel-doc | 12 +- trunk/scripts/mksysmap | 2 +- trunk/scripts/mod/file2alias.c | 2 +- trunk/scripts/reference_discarded.pl | 6 - trunk/scripts/setlocalversion | 2 +- trunk/security/commoncap.c | 1 - trunk/security/dummy.c | 1 - trunk/security/inode.c | 8 +- trunk/security/keys/keyctl.c | 1 - trunk/security/security.c | 1 - trunk/security/selinux/avc.c | 5 +- trunk/security/selinux/ss/services.c | 6 +- trunk/sound/core/oss/pcm_oss.c | 2 + trunk/sound/core/seq/seq_memory.c | 4 + trunk/sound/oss/ad1889.c | 2 +- trunk/sound/oss/btaudio.c | 2 +- trunk/sound/oss/cmpci.c | 2 +- trunk/sound/oss/cs4281/cs4281m.c | 2 +- trunk/sound/oss/cs46xx.c | 2 +- trunk/sound/oss/dmasound/dmasound.h | 1 + trunk/sound/oss/dmasound/dmasound_atari.c | 112 +- trunk/sound/oss/dmasound/dmasound_awacs.c | 81 +- trunk/sound/oss/dmasound/dmasound_paula.c | 14 +- trunk/sound/oss/dmasound/dmasound_q40.c | 18 +- trunk/sound/oss/dmasound/trans_16.c | 1 - trunk/sound/oss/emu10k1/main.c | 2 +- trunk/sound/oss/es1370.c | 2 +- trunk/sound/oss/es1371.c | 2 +- trunk/sound/oss/harmony.c | 4 +- trunk/sound/oss/i810_audio.c | 4 +- trunk/sound/oss/ite8172.c | 2 +- trunk/sound/oss/kahlua.c | 2 +- trunk/sound/oss/maestro.c | 2 +- trunk/sound/oss/nec_vrc5477.c | 2 +- trunk/sound/oss/nm256_audio.c | 2 +- trunk/sound/oss/rme96xx.c | 2 +- trunk/sound/oss/sonicvibes.c | 2 +- trunk/sound/oss/ymfpci.c | 2 +- trunk/sound/pci/cs5535audio/cs5535audio.c | 2 +- trunk/sound/pci/emu10k1/emufx.c | 1 - trunk/sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c | 2 +- trunk/sound/ppc/pmac.c | 100 +- trunk/sound/ppc/pmac.h | 3 +- 2688 files changed, 53273 insertions(+), 107394 deletions(-) delete mode 100644 trunk/Documentation/DocBook/.gitignore delete mode 100644 trunk/Documentation/fb/cyblafb/whatsnew delete mode 100644 trunk/Documentation/filesystems/spufs.txt delete mode 100644 trunk/Documentation/hrtimers.txt delete mode 100644 trunk/Documentation/mutex-design.txt delete mode 100644 trunk/Documentation/pci-error-recovery.txt delete mode 100644 trunk/Documentation/x86_64/cpu-hotplug-spec delete mode 100644 trunk/arch/arm/boot/compressed/head-at91rm9200.S create mode 100644 trunk/arch/arm/boot/compressed/head-epxa10db.S delete mode 100644 trunk/arch/arm/configs/at91rm9200dk_defconfig delete mode 100644 trunk/arch/arm/configs/at91rm9200ek_defconfig delete mode 100644 trunk/arch/arm/configs/csb337_defconfig delete mode 100644 trunk/arch/arm/configs/csb637_defconfig create mode 100644 trunk/arch/arm/configs/epxa10db_defconfig delete mode 100644 trunk/arch/arm/mach-at91rm9200/Kconfig delete mode 100644 trunk/arch/arm/mach-at91rm9200/Makefile delete mode 100644 trunk/arch/arm/mach-at91rm9200/Makefile.boot delete mode 100644 trunk/arch/arm/mach-at91rm9200/board-csb337.c delete mode 100644 trunk/arch/arm/mach-at91rm9200/board-csb637.c delete mode 100644 trunk/arch/arm/mach-at91rm9200/board-dk.c delete mode 100644 trunk/arch/arm/mach-at91rm9200/board-ek.c delete mode 100644 trunk/arch/arm/mach-at91rm9200/clock.c delete mode 100644 trunk/arch/arm/mach-at91rm9200/common.c delete mode 100644 trunk/arch/arm/mach-at91rm9200/devices.c delete mode 100644 trunk/arch/arm/mach-at91rm9200/generic.h delete mode 100644 trunk/arch/arm/mach-at91rm9200/gpio.c delete mode 100644 trunk/arch/arm/mach-at91rm9200/irq.c delete mode 100644 trunk/arch/arm/mach-at91rm9200/time.c create mode 100644 trunk/arch/arm/mach-epxa10db/Kconfig create mode 100644 trunk/arch/arm/mach-epxa10db/Makefile create mode 100644 trunk/arch/arm/mach-epxa10db/Makefile.boot create mode 100644 trunk/arch/arm/mach-epxa10db/arch.c create mode 100644 trunk/arch/arm/mach-epxa10db/irq.c create mode 100644 trunk/arch/arm/mach-epxa10db/mm.c create mode 100644 trunk/arch/arm/mach-epxa10db/time.c create mode 100644 trunk/arch/i386/kernel/cpu/changelog create mode 100644 trunk/arch/i386/kernel/cpu/cpufreq/speedstep-est-common.h create mode 100644 trunk/arch/i386/kernel/cpu/mtrr/changelog delete mode 100644 trunk/arch/i386/kernel/crash_dump.c create mode 100644 trunk/arch/ia64/ia32/ia32_ioctl.c create mode 100644 trunk/arch/mips/kernel/ioctl32.c create mode 100644 trunk/arch/parisc/kernel/ioctl32.c delete mode 100644 trunk/arch/powerpc/boot/.gitignore delete mode 100644 trunk/arch/powerpc/configs/pmac32_defconfig delete mode 100644 trunk/arch/powerpc/kernel/crash.c delete mode 100644 trunk/arch/powerpc/kernel/crash_dump.c delete mode 100644 trunk/arch/powerpc/kernel/ibmebus.c create mode 100644 trunk/arch/powerpc/kernel/ioctl32.c delete mode 100644 trunk/arch/powerpc/kernel/legacy_serial.c delete mode 100644 trunk/arch/powerpc/kernel/machine_kexec.c delete mode 100644 trunk/arch/powerpc/kernel/machine_kexec_32.c delete mode 100644 trunk/arch/powerpc/kernel/prom_parse.c rename trunk/arch/powerpc/{platforms/powermac => kernel}/udbg_scc.c (65%) delete mode 100644 trunk/arch/powerpc/kernel/vdso32/.gitignore delete mode 100644 trunk/arch/powerpc/kernel/vdso64/.gitignore delete mode 100644 trunk/arch/powerpc/oprofile/op_model_7450.c delete mode 100644 trunk/arch/powerpc/platforms/83xx/Kconfig delete mode 100644 trunk/arch/powerpc/platforms/83xx/Makefile delete mode 100644 trunk/arch/powerpc/platforms/cell/Kconfig delete mode 100644 trunk/arch/powerpc/platforms/cell/pervasive.c delete mode 100644 trunk/arch/powerpc/platforms/cell/pervasive.h delete mode 100644 trunk/arch/powerpc/platforms/cell/spu_base.c delete mode 100644 trunk/arch/powerpc/platforms/cell/spu_priv1.c delete mode 100644 trunk/arch/powerpc/platforms/cell/spu_syscalls.c delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/Makefile delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/backing_ops.c delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/context.c delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/file.c delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/hw_ops.c delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/inode.c delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/run.c delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/sched.c delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/spu_restore.c delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/spu_restore_crt0.S delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/spu_restore_dump.h_shipped delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/spu_save.c delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/spu_save_crt0.S delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/spu_save_dump.h_shipped delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/spu_utils.h delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/spufs.h delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/switch.c delete mode 100644 trunk/arch/powerpc/platforms/cell/spufs/syscalls.c delete mode 100644 trunk/arch/powerpc/platforms/iseries/iommu.h delete mode 100644 trunk/arch/powerpc/platforms/powermac/bootx_init.c delete mode 100644 trunk/arch/powerpc/platforms/powermac/pfunc_base.c delete mode 100644 trunk/arch/powerpc/platforms/powermac/pfunc_core.c delete mode 100644 trunk/arch/powerpc/platforms/powermac/udbg_adb.c delete mode 100644 trunk/arch/powerpc/platforms/pseries/eeh_cache.c delete mode 100644 trunk/arch/powerpc/platforms/pseries/eeh_driver.c delete mode 100644 trunk/arch/powerpc/platforms/pseries/pci_dlpar.c delete mode 100644 trunk/arch/powerpc/platforms/pseries/ras.h rename trunk/arch/powerpc/sysdev/{dart_iommu.c => u3_iommu.c} (65%) create mode 100644 trunk/arch/powerpc/xmon/start_32.c rename trunk/arch/powerpc/xmon/{start.c => start_64.c} (100%) create mode 100644 trunk/arch/powerpc/xmon/start_8xx.c delete mode 100644 trunk/arch/ppc/configs/TQM8540_defconfig delete mode 100644 trunk/arch/ppc/configs/TQM8541_defconfig delete mode 100644 trunk/arch/ppc/configs/TQM8555_defconfig delete mode 100644 trunk/arch/ppc/configs/TQM8560_defconfig create mode 100644 trunk/arch/ppc/kernel/process.c delete mode 100644 trunk/arch/ppc/platforms/85xx/tqm85xx.c delete mode 100644 trunk/arch/ppc/platforms/85xx/tqm85xx.h rename trunk/arch/{powerpc/sysdev => ppc/syslib}/ipic.c (100%) rename trunk/arch/{powerpc/sysdev => ppc/syslib}/ipic.h (100%) create mode 100644 trunk/arch/s390/kernel/compat_ioctl.c create mode 100644 trunk/arch/sparc64/kernel/ioctl32.c rename trunk/arch/um/{include/sysdep-i386/kernel-offsets.h => sys-i386/kernel-offsets.c} (80%) rename trunk/arch/um/{include/sysdep-x86_64/kernel-offsets.h => sys-x86_64/kernel-offsets.c} (90%) create mode 100644 trunk/arch/x86_64/ia32/ia32_ioctl.c delete mode 100644 trunk/arch/x86_64/kernel/pci-swiotlb.c delete mode 100644 trunk/arch/x86_64/kernel/vsmp.c create mode 100644 trunk/arch/x86_64/pci/Makefile-BUS delete mode 100644 trunk/drivers/char/cs5535_gpio.c create mode 100644 trunk/drivers/char/drm/drm_init.c delete mode 100644 trunk/drivers/char/drm/via_dmablit.c delete mode 100644 trunk/drivers/char/drm/via_dmablit.h create mode 100644 trunk/drivers/i2c/busses/i2c-keywest.c create mode 100644 trunk/drivers/i2c/busses/i2c-keywest.h create mode 100644 trunk/drivers/i2c/busses/i2c-pmac-smu.c delete mode 100644 trunk/drivers/i2c/busses/i2c-powermac.c create mode 100644 trunk/drivers/input/mouse/maplemouse.c delete mode 100644 trunk/drivers/media/dvb/frontends/cx24123.c delete mode 100644 trunk/drivers/media/dvb/frontends/cx24123.h delete mode 100644 trunk/drivers/media/video/compat_ioctl32.c delete mode 100644 trunk/drivers/media/video/cx88/cx88-alsa.c delete mode 100644 trunk/drivers/media/video/cx88/cx88-vp3054-i2c.c delete mode 100644 trunk/drivers/media/video/cx88/cx88-vp3054-i2c.h rename trunk/drivers/media/video/{bttv-input.c => ir-kbd-gpio.c} (73%) delete mode 100644 trunk/drivers/media/video/msp3400-driver.c delete mode 100644 trunk/drivers/media/video/msp3400-kthreads.c create mode 100644 trunk/drivers/media/video/msp3400.c create mode 100644 trunk/drivers/mtd/maps/epxa10db-flash.c create mode 100644 trunk/drivers/net/arm/ether00.c delete mode 100644 trunk/drivers/net/ifb.c create mode 100644 trunk/drivers/net/irda/sir_core.c delete mode 100644 trunk/drivers/serial/at91_serial.c create mode 100644 trunk/drivers/serial/uart00.c create mode 100644 trunk/drivers/video/aty/xlinit.c create mode 100644 trunk/fs/ext3/bitmap.h delete mode 100644 trunk/fs/xfs/Kbuild delete mode 100644 trunk/include/asm-alpha/mutex.h delete mode 100644 trunk/include/asm-arm/arch-at91rm9200/at91rm9200.h delete mode 100644 trunk/include/asm-arm/arch-at91rm9200/at91rm9200_pdc.h delete mode 100644 trunk/include/asm-arm/arch-at91rm9200/at91rm9200_sys.h delete mode 100644 trunk/include/asm-arm/arch-at91rm9200/at91rm9200_usart.h delete mode 100644 trunk/include/asm-arm/arch-at91rm9200/board.h delete mode 100644 trunk/include/asm-arm/arch-at91rm9200/debug-macro.S delete mode 100644 trunk/include/asm-arm/arch-at91rm9200/entry-macro.S delete mode 100644 trunk/include/asm-arm/arch-at91rm9200/gpio.h delete mode 100644 trunk/include/asm-arm/arch-at91rm9200/hardware.h delete mode 100644 trunk/include/asm-arm/arch-at91rm9200/irqs.h delete mode 100644 trunk/include/asm-arm/arch-at91rm9200/pio.h delete mode 100644 trunk/include/asm-arm/arch-at91rm9200/uncompress.h create mode 100644 trunk/include/asm-arm/arch-epxa10db/debug-macro.S rename trunk/include/asm-arm/{arch-at91rm9200 => arch-epxa10db}/dma.h (89%) create mode 100644 trunk/include/asm-arm/arch-epxa10db/entry-macro.S create mode 100644 trunk/include/asm-arm/arch-epxa10db/ether00.h create mode 100644 trunk/include/asm-arm/arch-epxa10db/excalibur.h create mode 100644 trunk/include/asm-arm/arch-epxa10db/hardware.h create mode 100644 trunk/include/asm-arm/arch-epxa10db/int_ctrl00.h rename trunk/include/asm-arm/{arch-at91rm9200 => arch-epxa10db}/io.h (63%) create mode 100644 trunk/include/asm-arm/arch-epxa10db/irqs.h rename trunk/include/asm-arm/{arch-at91rm9200 => arch-epxa10db}/memory.h (78%) create mode 100644 trunk/include/asm-arm/arch-epxa10db/mode_ctrl00.h rename trunk/include/asm-arm/{arch-at91rm9200 => arch-epxa10db}/param.h (80%) create mode 100644 trunk/include/asm-arm/arch-epxa10db/platform.h create mode 100644 trunk/include/asm-arm/arch-epxa10db/pld_conf00.h rename trunk/include/asm-arm/{arch-at91rm9200 => arch-epxa10db}/system.h (55%) create mode 100644 trunk/include/asm-arm/arch-epxa10db/tdkphy.h create mode 100644 trunk/include/asm-arm/arch-epxa10db/timer00.h rename trunk/include/asm-arm/{arch-at91rm9200 => arch-epxa10db}/timex.h (77%) create mode 100644 trunk/include/asm-arm/arch-epxa10db/uart00.h create mode 100644 trunk/include/asm-arm/arch-epxa10db/uncompress.h rename trunk/include/asm-arm/{arch-at91rm9200 => arch-epxa10db}/vmalloc.h (78%) delete mode 100644 trunk/include/asm-arm/mach/serial_at91rm9200.h delete mode 100644 trunk/include/asm-arm/mutex.h delete mode 100644 trunk/include/asm-cris/mutex.h delete mode 100644 trunk/include/asm-frv/mutex.h delete mode 100644 trunk/include/asm-generic/ioctl.h delete mode 100644 trunk/include/asm-generic/mutex-dec.h delete mode 100644 trunk/include/asm-generic/mutex-null.h delete mode 100644 trunk/include/asm-generic/mutex-xchg.h delete mode 100644 trunk/include/asm-h8300/mutex.h delete mode 100644 trunk/include/asm-i386/mutex.h delete mode 100644 trunk/include/asm-ia64/mutex.h delete mode 100644 trunk/include/asm-m32r/mutex.h delete mode 100644 trunk/include/asm-m68k/mutex.h delete mode 100644 trunk/include/asm-m68knommu/mutex.h delete mode 100644 trunk/include/asm-mips/mutex.h delete mode 100644 trunk/include/asm-parisc/mutex.h delete mode 100644 trunk/include/asm-powerpc/bootx.h delete mode 100644 trunk/include/asm-powerpc/ibmebus.h delete mode 100644 trunk/include/asm-powerpc/kdump.h delete mode 100644 trunk/include/asm-powerpc/mutex.h delete mode 100644 trunk/include/asm-powerpc/pmac_pfunc.h delete mode 100644 trunk/include/asm-powerpc/spu.h delete mode 100644 trunk/include/asm-powerpc/spu_csa.h create mode 100644 trunk/include/asm-ppc/bseip.h rename trunk/include/{asm-powerpc => asm-ppc}/ipic.h (100%) delete mode 100644 trunk/include/asm-s390/mutex.h delete mode 100644 trunk/include/asm-sh/mutex.h delete mode 100644 trunk/include/asm-sh64/mutex.h delete mode 100644 trunk/include/asm-sparc/mutex.h delete mode 100644 trunk/include/asm-sparc64/mutex.h delete mode 100644 trunk/include/asm-um/mutex.h delete mode 100644 trunk/include/asm-v850/mutex.h delete mode 100644 trunk/include/asm-x86_64/gart-mapping.h delete mode 100644 trunk/include/asm-x86_64/idle.h delete mode 100644 trunk/include/asm-x86_64/mutex.h delete mode 100644 trunk/include/asm-xtensa/mutex.h delete mode 100644 trunk/include/linux/calc64.h delete mode 100644 trunk/include/linux/hrtimer.h delete mode 100644 trunk/include/linux/ktime.h delete mode 100644 trunk/include/linux/mutex-debug.h delete mode 100644 trunk/include/linux/mutex.h delete mode 100644 trunk/include/linux/netfilter/x_tables.h delete mode 100644 trunk/include/linux/netfilter/xt_CLASSIFY.h delete mode 100644 trunk/include/linux/netfilter/xt_CONNMARK.h delete mode 100644 trunk/include/linux/netfilter/xt_MARK.h delete mode 100644 trunk/include/linux/netfilter/xt_NFQUEUE.h delete mode 100644 trunk/include/linux/netfilter/xt_comment.h delete mode 100644 trunk/include/linux/netfilter/xt_connbytes.h delete mode 100644 trunk/include/linux/netfilter/xt_connmark.h delete mode 100644 trunk/include/linux/netfilter/xt_conntrack.h delete mode 100644 trunk/include/linux/netfilter/xt_dccp.h delete mode 100644 trunk/include/linux/netfilter/xt_helper.h delete mode 100644 trunk/include/linux/netfilter/xt_length.h delete mode 100644 trunk/include/linux/netfilter/xt_limit.h delete mode 100644 trunk/include/linux/netfilter/xt_mac.h delete mode 100644 trunk/include/linux/netfilter/xt_mark.h delete mode 100644 trunk/include/linux/netfilter/xt_physdev.h delete mode 100644 trunk/include/linux/netfilter/xt_pkttype.h delete mode 100644 trunk/include/linux/netfilter/xt_realm.h delete mode 100644 trunk/include/linux/netfilter/xt_sctp.h delete mode 100644 trunk/include/linux/netfilter/xt_state.h delete mode 100644 trunk/include/linux/netfilter/xt_string.h delete mode 100644 trunk/include/linux/netfilter/xt_tcpmss.h delete mode 100644 trunk/include/linux/netfilter/xt_tcpudp.h delete mode 100644 trunk/include/linux/tipc.h delete mode 100644 trunk/include/linux/tipc_config.h delete mode 100644 trunk/include/net/tipc/tipc.h delete mode 100644 trunk/include/net/tipc/tipc_bearer.h delete mode 100644 trunk/include/net/tipc/tipc_msg.h delete mode 100644 trunk/include/net/tipc/tipc_port.h rename trunk/{arch/x86_64 => }/kernel/crash_dump.c (63%) delete mode 100644 trunk/kernel/hrtimer.c delete mode 100644 trunk/kernel/mutex-debug.c delete mode 100644 trunk/kernel/mutex-debug.h delete mode 100644 trunk/kernel/mutex.c delete mode 100644 trunk/kernel/mutex.h rename trunk/net/{netfilter/xt_CLASSIFY.c => ipv4/netfilter/ipt_CLASSIFY.c} (66%) rename trunk/net/{netfilter/xt_CONNMARK.c => ipv4/netfilter/ipt_CONNMARK.c} (73%) rename trunk/net/{netfilter/xt_MARK.c => ipv4/netfilter/ipt_MARK.c} (61%) create mode 100644 trunk/net/ipv4/netfilter/ipt_NFQUEUE.c rename trunk/net/{netfilter/xt_NOTRACK.c => ipv4/netfilter/ipt_NOTRACK.c} (69%) rename trunk/net/{netfilter/xt_comment.c => ipv4/netfilter/ipt_comment.c} (55%) rename trunk/net/{netfilter/xt_connbytes.c => ipv4/netfilter/ipt_connbytes.c} (66%) rename trunk/net/{netfilter/xt_connmark.c => ipv4/netfilter/ipt_connmark.c} (70%) rename trunk/net/{netfilter/xt_conntrack.c => ipv4/netfilter/ipt_conntrack.c} (63%) rename trunk/net/{netfilter/xt_dccp.c => ipv4/netfilter/ipt_dccp.c} (58%) rename trunk/net/{netfilter/xt_helper.c => ipv4/netfilter/ipt_helper.c} (72%) create mode 100644 trunk/net/ipv4/netfilter/ipt_length.c rename trunk/net/{netfilter/xt_limit.c => ipv4/netfilter/ipt_limit.c} (78%) rename trunk/net/{netfilter/xt_mac.c => ipv4/netfilter/ipt_mac.c} (60%) rename trunk/net/{netfilter/xt_mark.c => ipv4/netfilter/ipt_mark.c} (60%) create mode 100644 trunk/net/ipv4/netfilter/ipt_physdev.c rename trunk/net/{netfilter/xt_pkttype.c => ipv4/netfilter/ipt_pkttype.c} (55%) rename trunk/net/{netfilter/xt_realm.c => ipv4/netfilter/ipt_realm.c} (70%) rename trunk/net/{netfilter/xt_sctp.c => ipv4/netfilter/ipt_sctp.c} (62%) rename trunk/net/{netfilter/xt_state.c => ipv4/netfilter/ipt_state.c} (53%) rename trunk/net/{netfilter/xt_string.c => ipv4/netfilter/ipt_string.c} (66%) rename trunk/net/{netfilter/xt_tcpmss.c => ipv4/netfilter/ipt_tcpmss.c} (59%) create mode 100644 trunk/net/ipv6/netfilter/ip6t_MARK.c create mode 100644 trunk/net/ipv6/netfilter/ip6t_NFQUEUE.c create mode 100644 trunk/net/ipv6/netfilter/ip6t_length.c create mode 100644 trunk/net/ipv6/netfilter/ip6t_limit.c create mode 100644 trunk/net/ipv6/netfilter/ip6t_mac.c create mode 100644 trunk/net/ipv6/netfilter/ip6t_mark.c rename trunk/net/{netfilter/xt_physdev.c => ipv6/netfilter/ip6t_physdev.c} (57%) delete mode 100644 trunk/net/netfilter/x_tables.c delete mode 100644 trunk/net/netfilter/xt_NFQUEUE.c delete mode 100644 trunk/net/netfilter/xt_length.c delete mode 100644 trunk/net/netfilter/xt_tcpudp.c rename trunk/net/sched/{act_gact.c => gact.c} (98%) rename trunk/net/sched/{act_ipt.c => ipt.c} (95%) rename trunk/net/sched/{act_mirred.c => mirred.c} (98%) rename trunk/net/sched/{act_pedit.c => pedit.c} (98%) rename trunk/net/sched/{act_police.c => police.c} (97%) rename trunk/net/sched/{act_simple.c => simple.c} (94%) delete mode 100644 trunk/net/tipc/Kconfig delete mode 100644 trunk/net/tipc/Makefile delete mode 100644 trunk/net/tipc/addr.c delete mode 100644 trunk/net/tipc/addr.h delete mode 100644 trunk/net/tipc/bcast.c delete mode 100644 trunk/net/tipc/bcast.h delete mode 100644 trunk/net/tipc/bearer.c delete mode 100644 trunk/net/tipc/bearer.h delete mode 100644 trunk/net/tipc/cluster.c delete mode 100644 trunk/net/tipc/cluster.h delete mode 100644 trunk/net/tipc/config.c delete mode 100644 trunk/net/tipc/config.h delete mode 100644 trunk/net/tipc/core.c delete mode 100644 trunk/net/tipc/core.h delete mode 100644 trunk/net/tipc/dbg.c delete mode 100644 trunk/net/tipc/dbg.h delete mode 100644 trunk/net/tipc/discover.c delete mode 100644 trunk/net/tipc/discover.h delete mode 100644 trunk/net/tipc/eth_media.c delete mode 100644 trunk/net/tipc/handler.c delete mode 100644 trunk/net/tipc/link.c delete mode 100644 trunk/net/tipc/link.h delete mode 100644 trunk/net/tipc/msg.c delete mode 100644 trunk/net/tipc/msg.h delete mode 100644 trunk/net/tipc/name_distr.c delete mode 100644 trunk/net/tipc/name_distr.h delete mode 100644 trunk/net/tipc/name_table.c delete mode 100644 trunk/net/tipc/name_table.h delete mode 100644 trunk/net/tipc/net.c delete mode 100644 trunk/net/tipc/net.h delete mode 100644 trunk/net/tipc/netlink.c delete mode 100644 trunk/net/tipc/node.c delete mode 100644 trunk/net/tipc/node.h delete mode 100644 trunk/net/tipc/node_subscr.c delete mode 100644 trunk/net/tipc/node_subscr.h delete mode 100644 trunk/net/tipc/port.c delete mode 100644 trunk/net/tipc/port.h delete mode 100644 trunk/net/tipc/ref.c delete mode 100644 trunk/net/tipc/ref.h delete mode 100644 trunk/net/tipc/socket.c delete mode 100644 trunk/net/tipc/subscr.c delete mode 100644 trunk/net/tipc/subscr.h delete mode 100644 trunk/net/tipc/user_reg.c delete mode 100644 trunk/net/tipc/user_reg.h delete mode 100644 trunk/net/tipc/zone.c delete mode 100644 trunk/net/tipc/zone.h delete mode 100644 trunk/scripts/kconfig/lxdialog/check-lxdialog.sh diff --git a/[refs] b/[refs] index ddb758e366fa..55ef90202e31 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 69eebed240b32377b9034551f1b8c4ae2774ceb6 +refs/heads/master: 6627fa662e86c400284b64c13661fdf6bff05983 diff --git a/trunk/Documentation/CodingStyle b/trunk/Documentation/CodingStyle index ce5d2c038cf5..ce780ef648f1 100644 --- a/trunk/Documentation/CodingStyle +++ b/trunk/Documentation/CodingStyle @@ -199,7 +199,7 @@ The rationale is: modifications are prevented - saves the compiler work to optimize redundant code away ;) -int fun(int a) +int fun(int ) { int result = 0; char *buffer = kmalloc(SIZE); diff --git a/trunk/Documentation/DocBook/.gitignore b/trunk/Documentation/DocBook/.gitignore deleted file mode 100644 index c102c02ecf89..000000000000 --- a/trunk/Documentation/DocBook/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.xml -*.ps -*.pdf -*.html -*.9.gz -*.9 diff --git a/trunk/Documentation/DocBook/kernel-api.tmpl b/trunk/Documentation/DocBook/kernel-api.tmpl index 8c9c6704e85b..3c47a3f0dc55 100644 --- a/trunk/Documentation/DocBook/kernel-api.tmpl +++ b/trunk/Documentation/DocBook/kernel-api.tmpl @@ -53,11 +53,6 @@ !Iinclude/linux/sched.h !Ekernel/sched.c !Ekernel/timer.c - - High-resolution timers -!Iinclude/linux/ktime.h -!Iinclude/linux/hrtimer.h -!Ekernel/hrtimer.c Internal Functions !Ikernel/exit.c diff --git a/trunk/Documentation/DocBook/kernel-locking.tmpl b/trunk/Documentation/DocBook/kernel-locking.tmpl index 158ffe9bfade..90dc2de8e0af 100644 --- a/trunk/Documentation/DocBook/kernel-locking.tmpl +++ b/trunk/Documentation/DocBook/kernel-locking.tmpl @@ -222,7 +222,7 @@ Two Main Types of Kernel Locks: Spinlocks and Semaphores - There are three main types of kernel locks. The fundamental type + There are two main types of kernel locks. The fundamental type is the spinlock (include/asm/spinlock.h), which is a very simple single-holder lock: if you can't get the @@ -230,22 +230,16 @@ very small and fast, and can be used anywhere. - The second type is a mutex - (include/linux/mutex.h): it - is like a spinlock, but you may block holding a mutex. - If you can't lock a mutex, your task will suspend itself, and be woken - up when the mutex is released. This means the CPU can do something - else while you are waiting. There are many cases when you simply - can't sleep (see ), and so have to - use a spinlock instead. - - - The third type is a semaphore + The second type is a semaphore (include/asm/semaphore.h): it can have more than one holder at any time (the number decided at initialization time), although it is most commonly used as a - single-holder lock (a mutex). If you can't get a semaphore, your - task will be suspended and later on woken up - just like for mutexes. + single-holder lock (a mutex). If you can't get a semaphore, + your task will put itself on the queue, and be woken up when the + semaphore is released. This means the CPU will do something + else while you are waiting, but there are many cases when you + simply can't sleep (see ), and so + have to use a spinlock instead. Neither type of lock is recursive: see diff --git a/trunk/Documentation/applying-patches.txt b/trunk/Documentation/applying-patches.txt index a083ba35d1ad..05a08c2c1889 100644 --- a/trunk/Documentation/applying-patches.txt +++ b/trunk/Documentation/applying-patches.txt @@ -3,7 +3,8 @@ ------------------------------------ Original by: Jesper Juhl, August 2005 - Last update: 2006-01-05 + Last update: 2005-12-02 + A frequently asked question on the Linux Kernel Mailing List is how to apply @@ -76,7 +77,7 @@ instead: If you wish to uncompress the patch file by hand first before applying it (what I assume you've done in the examples below), then you simply run -gunzip or bunzip2 on the file -- like this: +gunzip or bunzip2 on the file - like this: gunzip patch-x.y.z.gz bunzip2 patch-x.y.z.bz2 @@ -94,7 +95,7 @@ Common errors when patching --- When patch applies a patch file it attempts to verify the sanity of the file in different ways. -Checking that the file looks like a valid patch file & checking the code +Checking that the file looks like a valid patch file, checking the code around the bits being modified matches the context provided in the patch are just two of the basic sanity checks patch does. @@ -121,7 +122,7 @@ outright and leaves a file with a .rej extension (a reject file). You can read this file to see exactly what change couldn't be applied, so you can go fix it up by hand if you wish. -If you don't have any third-party patches applied to your kernel source, but +If you don't have any third party patches applied to your kernel source, but only patches from kernel.org and you apply the patches in the correct order, and have made no modifications yourself to the source files, then you should never see a fuzz or reject message from patch. If you do see such messages @@ -136,7 +137,7 @@ If patch stops and presents a "File to patch:" prompt, then patch could not find a file to be patched. Most likely you forgot to specify -p1 or you are in the wrong directory. Less often, you'll find patches that need to be applied with -p0 instead of -p1 (reading the patch file should reveal if -this is the case -- if so, then this is an error by the person who created +this is the case - if so, then this is an error by the person who created the patch but is not fatal). If you get "Hunk #2 succeeded at 1887 with fuzz 2 (offset 7 lines)." or a @@ -167,17 +168,13 @@ the patch will in fact apply it. A message similar to "patch: **** unexpected end of file in patch" or "patch unexpectedly ends in middle of line" means that patch could make no sense of -the file you fed to it. Either your download is broken, you tried to feed -patch a compressed patch file without uncompressing it first, or the patch -file that you are using has been mangled by a mail client or mail transfer -agent along the way somewhere, e.g., by splitting a long line into two lines. -Often these warnings can easily be fixed by joining (concatenating) the -two lines that had been split. +the file you fed to it. Either your download is broken or you tried to feed +patch a compressed patch file without uncompressing it first. As I already mentioned above, these errors should never happen if you apply a patch from kernel.org to the correct version of an unmodified source tree. So if you get these errors with kernel.org patches then you should probably -assume that either your patch file or your tree is broken and I'd advise you +assume that either your patch file or your tree is broken and I'd advice you to start over with a fresh download of a full kernel tree and the patch you wish to apply. @@ -203,10 +200,10 @@ do the additional steps since interdiff can get things wrong in some cases. Another alternative is `ketchup', which is a python script for automatic downloading and applying of patches (http://www.selenic.com/ketchup/). - Other nice tools are diffstat, which shows a summary of changes made by a -patch; lsdiff, which displays a short listing of affected files in a patch -file, along with (optionally) the line numbers of the start of each patch; -and grepdiff, which displays a list of the files modified by a patch where + Other nice tools are diffstat which shows a summary of changes made by a +patch, lsdiff which displays a short listing of affected files in a patch +file, along with (optionally) the line numbers of the start of each patch +and grepdiff which displays a list of the files modified by a patch where the patch contains a given regular expression. @@ -231,8 +228,8 @@ The -mm kernels live at In place of ftp.kernel.org you can use ftp.cc.kernel.org, where cc is a country code. This way you'll be downloading from a mirror site that's most likely geographically closer to you, resulting in faster downloads for you, -less bandwidth used globally and less load on the main kernel.org servers -- -these are good things, so do use mirrors when possible. +less bandwidth used globally and less load on the main kernel.org servers - +these are good things, do use mirrors when possible. The 2.6.x kernels @@ -240,14 +237,14 @@ The 2.6.x kernels These are the base stable releases released by Linus. The highest numbered release is the most recent. -If regressions or other serious flaws are found, then a -stable fix patch +If regressions or other serious flaws are found then a -stable fix patch will be released (see below) on top of this base. Once a new 2.6.x base kernel is released, a patch is made available that is a delta between the previous 2.6.x kernel and the new one. -To apply a patch moving from 2.6.11 to 2.6.12, you'd do the following (note +To apply a patch moving from 2.6.11 to 2.6.12 you'd do the following (note that such patches do *NOT* apply on top of 2.6.x.y kernels but on top of the -base 2.6.x kernel -- if you need to move from 2.6.x.y to 2.6.x+1 you need to +base 2.6.x kernel - if you need to move from 2.6.x.y to 2.6.x+1 you need to first revert the 2.6.x.y patch). Here are some examples: @@ -269,7 +266,7 @@ $ mv linux-2.6.11.1 linux-2.6.12 # rename source dir The 2.6.x.y kernels --- - Kernels with 4-digit versions are -stable kernels. They contain small(ish) + Kernels with 4 digit versions are -stable kernels. They contain small(ish) critical fixes for security problems or significant regressions discovered in a given 2.6.x kernel. @@ -280,14 +277,9 @@ versions. If no 2.6.x.y kernel is available, then the highest numbered 2.6.x kernel is the current stable kernel. - note: the -stable team usually do make incremental patches available as well - as patches against the latest mainline release, but I only cover the - non-incremental ones below. The incremental ones can be found at - ftp://ftp.kernel.org/pub/linux/kernel/v2.6/incr/ - These patches are not incremental, meaning that for example the 2.6.12.3 patch does not apply on top of the 2.6.12.2 kernel source, but rather on top -of the base 2.6.12 kernel source . +of the base 2.6.12 kernel source. So, in order to apply the 2.6.12.3 patch to your existing 2.6.12.2 kernel source you have to first back out the 2.6.12.2 patch (so you are left with a base 2.6.12 kernel source) and then apply the new 2.6.12.3 patch. @@ -353,12 +345,12 @@ The -git kernels repository, hence the name). These patches are usually released daily and represent the current state of -Linus's tree. They are more experimental than -rc kernels since they are +Linus' tree. They are more experimental than -rc kernels since they are generated automatically without even a cursory glance to see if they are sane. -git patches are not incremental and apply either to a base 2.6.x kernel or -a base 2.6.x-rc kernel -- you can see which from their name. +a base 2.6.x-rc kernel - you can see which from their name. A patch named 2.6.12-git1 applies to the 2.6.12 kernel source and a patch named 2.6.13-rc3-git2 applies to the source of the 2.6.13-rc3 kernel. @@ -401,12 +393,12 @@ You should generally strive to get your patches into mainline via -mm to ensure maximum testing. This branch is in constant flux and contains many experimental features, a -lot of debugging patches not appropriate for mainline etc., and is the most +lot of debugging patches not appropriate for mainline etc and is the most experimental of the branches described in this document. These kernels are not appropriate for use on systems that are supposed to be stable and they are more risky to run than any of the other branches (make -sure you have up-to-date backups -- that goes for any experimental kernel but +sure you have up-to-date backups - that goes for any experimental kernel but even more so for -mm kernels). These kernels in addition to all the other experimental patches they contain diff --git a/trunk/Documentation/cpusets.txt b/trunk/Documentation/cpusets.txt index 990998ee10b6..9e49b1c35729 100644 --- a/trunk/Documentation/cpusets.txt +++ b/trunk/Documentation/cpusets.txt @@ -135,7 +135,7 @@ Cpusets extends these two mechanisms as follows: The implementation of cpusets requires a few, simple hooks into the rest of the kernel, none in performance critical paths: - - in init/main.c, to initialize the root cpuset at system boot. + - in main/init.c, to initialize the root cpuset at system boot. - in fork and exit, to attach and detach a task from its cpuset. - in sched_setaffinity, to mask the requested CPUs by what's allowed in that tasks cpuset. @@ -146,7 +146,7 @@ into the rest of the kernel, none in performance critical paths: and related changes in both sched.c and arch/ia64/kernel/domain.c - in the mbind and set_mempolicy system calls, to mask the requested Memory Nodes by what's allowed in that tasks cpuset. - - in page_alloc.c, to restrict memory to allowed nodes. + - in page_alloc, to restrict memory to allowed nodes. - in vmscan.c, to restrict page recovery to the current cpuset. In addition a new file system, of type "cpuset" may be mounted, diff --git a/trunk/Documentation/dvb/avermedia.txt b/trunk/Documentation/dvb/avermedia.txt index 068070ff13cd..2dc260b2b0a4 100644 --- a/trunk/Documentation/dvb/avermedia.txt +++ b/trunk/Documentation/dvb/avermedia.txt @@ -150,8 +150,7 @@ Getting the card going The frontend module sp887x.o, requires an external firmware. Please use the command "get_dvb_firmware sp887x" to download - it. Then copy it to /usr/lib/hotplug/firmware or /lib/firmware/ - (depending on configuration of firmware hotplug). + it. Then copy it to /usr/lib/hotplug/firmware. Receiving DVB-T in Australia diff --git a/trunk/Documentation/dvb/get_dvb_firmware b/trunk/Documentation/dvb/get_dvb_firmware index 75c28a174092..be6eb4c75991 100644 --- a/trunk/Documentation/dvb/get_dvb_firmware +++ b/trunk/Documentation/dvb/get_dvb_firmware @@ -23,7 +23,7 @@ use IO::Handle; @components = ( "sp8870", "sp887x", "tda10045", "tda10046", "av7110", "dec2000t", "dec2540t", "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004", - "or51211", "or51132_qam", "or51132_vsb", "bluebird"); + "or51211", "or51132_qam", "or51132_vsb"); # Check args syntax() if (scalar(@ARGV) != 1); @@ -34,11 +34,7 @@ for ($i=0; $i < scalar(@components); $i++) { if ($cid eq $components[$i]) { $outfile = eval($cid); die $@ if $@; - print STDERR < "/tmp", CLEANUP => 1); checkstandard(); - + wgetfile($sourcefile, $url); unzip($sourcefile, $tmpdir); verify("$tmpdir/SkyNETU.sys", $hash); @@ -312,19 +308,6 @@ sub or51132_vsb { $fwfile; } -sub bluebird { - my $url = "http://www.linuxtv.org/download/dvb/firmware/dvb-usb-bluebird-01.fw"; - my $outfile = "dvb-usb-bluebird-01.fw"; - my $hash = "658397cb9eba9101af9031302671f49d"; - - checkstandard(); - - wgetfile($outfile, $url); - verify($outfile,$hash); - - $outfile; -} - # --------------------------------------------------------------- # Utilities diff --git a/trunk/Documentation/dvb/ttusb-dec.txt b/trunk/Documentation/dvb/ttusb-dec.txt index b2f271cd784b..5c1e984c26a7 100644 --- a/trunk/Documentation/dvb/ttusb-dec.txt +++ b/trunk/Documentation/dvb/ttusb-dec.txt @@ -41,5 +41,4 @@ Hotplug Firmware Loading for 2.6 kernels For 2.6 kernels the firmware is loaded at the point that the driver module is loaded. See linux/Documentation/dvb/firmware.txt for more information. -Copy the three files downloaded above into the /usr/lib/hotplug/firmware or -/lib/firmware directory (depending on configuration of firmware hotplug). +Copy the three files downloaded above into the /usr/lib/hotplug/firmware directory. diff --git a/trunk/Documentation/fb/cyblafb/bugs b/trunk/Documentation/fb/cyblafb/bugs index 9443a6d72cdd..f90cc66ea919 100644 --- a/trunk/Documentation/fb/cyblafb/bugs +++ b/trunk/Documentation/fb/cyblafb/bugs @@ -11,3 +11,4 @@ Untested features All LCD stuff is untested. If it worked in tridentfb, it should work in cyblafb. Please test and report the results to Knut_Petersen@t-online.de. + diff --git a/trunk/Documentation/fb/cyblafb/fb.modes b/trunk/Documentation/fb/cyblafb/fb.modes index fe0e5223ba86..cf4351fc32ff 100644 --- a/trunk/Documentation/fb/cyblafb/fb.modes +++ b/trunk/Documentation/fb/cyblafb/fb.modes @@ -14,141 +14,142 @@ # mode "640x480-50" - geometry 640 480 2048 4096 8 + geometry 640 480 640 3756 8 timings 47619 4294967256 24 17 0 216 3 endmode mode "640x480-60" - geometry 640 480 2048 4096 8 + geometry 640 480 640 3756 8 timings 39682 4294967256 24 17 0 216 3 endmode mode "640x480-70" - geometry 640 480 2048 4096 8 + geometry 640 480 640 3756 8 timings 34013 4294967256 24 17 0 216 3 endmode mode "640x480-72" - geometry 640 480 2048 4096 8 + geometry 640 480 640 3756 8 timings 33068 4294967256 24 17 0 216 3 endmode mode "640x480-75" - geometry 640 480 2048 4096 8 + geometry 640 480 640 3756 8 timings 31746 4294967256 24 17 0 216 3 endmode mode "640x480-80" - geometry 640 480 2048 4096 8 + geometry 640 480 640 3756 8 timings 29761 4294967256 24 17 0 216 3 endmode mode "640x480-85" - geometry 640 480 2048 4096 8 + geometry 640 480 640 3756 8 timings 28011 4294967256 24 17 0 216 3 endmode mode "800x600-50" - geometry 800 600 2048 4096 8 + geometry 800 600 800 3221 8 timings 30303 96 24 14 0 136 11 endmode mode "800x600-60" - geometry 800 600 2048 4096 8 + geometry 800 600 800 3221 8 timings 25252 96 24 14 0 136 11 endmode mode "800x600-70" - geometry 800 600 2048 4096 8 + geometry 800 600 800 3221 8 timings 21645 96 24 14 0 136 11 endmode mode "800x600-72" - geometry 800 600 2048 4096 8 + geometry 800 600 800 3221 8 timings 21043 96 24 14 0 136 11 endmode mode "800x600-75" - geometry 800 600 2048 4096 8 + geometry 800 600 800 3221 8 timings 20202 96 24 14 0 136 11 endmode mode "800x600-80" - geometry 800 600 2048 4096 8 + geometry 800 600 800 3221 8 timings 18939 96 24 14 0 136 11 endmode mode "800x600-85" - geometry 800 600 2048 4096 8 + geometry 800 600 800 3221 8 timings 17825 96 24 14 0 136 11 endmode mode "1024x768-50" - geometry 1024 768 2048 4096 8 + geometry 1024 768 1024 2815 8 timings 19054 144 24 29 0 120 3 endmode mode "1024x768-60" - geometry 1024 768 2048 4096 8 + geometry 1024 768 1024 2815 8 timings 15880 144 24 29 0 120 3 endmode mode "1024x768-70" - geometry 1024 768 2048 4096 8 + geometry 1024 768 1024 2815 8 timings 13610 144 24 29 0 120 3 endmode mode "1024x768-72" - geometry 1024 768 2048 4096 8 + geometry 1024 768 1024 2815 8 timings 13232 144 24 29 0 120 3 endmode mode "1024x768-75" - geometry 1024 768 2048 4096 8 + geometry 1024 768 1024 2815 8 timings 12703 144 24 29 0 120 3 endmode mode "1024x768-80" - geometry 1024 768 2048 4096 8 + geometry 1024 768 1024 2815 8 timings 11910 144 24 29 0 120 3 endmode mode "1024x768-85" - geometry 1024 768 2048 4096 8 + geometry 1024 768 1024 2815 8 timings 11209 144 24 29 0 120 3 endmode mode "1280x1024-50" - geometry 1280 1024 2048 4096 8 + geometry 1280 1024 1280 2662 8 timings 11114 232 16 39 0 160 3 endmode mode "1280x1024-60" - geometry 1280 1024 2048 4096 8 + geometry 1280 1024 1280 2662 8 timings 9262 232 16 39 0 160 3 endmode mode "1280x1024-70" - geometry 1280 1024 2048 4096 8 + geometry 1280 1024 1280 2662 8 timings 7939 232 16 39 0 160 3 endmode mode "1280x1024-72" - geometry 1280 1024 2048 4096 8 + geometry 1280 1024 1280 2662 8 timings 7719 232 16 39 0 160 3 endmode mode "1280x1024-75" - geometry 1280 1024 2048 4096 8 + geometry 1280 1024 1280 2662 8 timings 7410 232 16 39 0 160 3 endmode mode "1280x1024-80" - geometry 1280 1024 2048 4096 8 + geometry 1280 1024 1280 2662 8 timings 6946 232 16 39 0 160 3 endmode mode "1280x1024-85" - geometry 1280 1024 2048 4096 8 + geometry 1280 1024 1280 2662 8 timings 6538 232 16 39 0 160 3 endmode + diff --git a/trunk/Documentation/fb/cyblafb/performance b/trunk/Documentation/fb/cyblafb/performance index 8d15d5dfc6b3..eb4e47a9cea6 100644 --- a/trunk/Documentation/fb/cyblafb/performance +++ b/trunk/Documentation/fb/cyblafb/performance @@ -77,3 +77,4 @@ patch that speeds up kernel bitblitting a lot ( > 20%). | | | | | | | | | | +-----------+-----------------+-----------------+-----------------+ + diff --git a/trunk/Documentation/fb/cyblafb/todo b/trunk/Documentation/fb/cyblafb/todo index c5f6d0eae545..80fb2f89b6c1 100644 --- a/trunk/Documentation/fb/cyblafb/todo +++ b/trunk/Documentation/fb/cyblafb/todo @@ -22,10 +22,11 @@ accelerated color blitting Who needs it? The console driver does use color everything else is done using color expanding blitting of 1bpp character bitmaps. +xpanning Who needs it? + ioctls Who needs it? -TV-out Will be done later. Use "vga= " at boot time - to set a suitable video mode. +TV-out Will be done later ??? Feel free to contact me if you have any feature requests diff --git a/trunk/Documentation/fb/cyblafb/usage b/trunk/Documentation/fb/cyblafb/usage index a39bb3d402a2..e627c8f54211 100644 --- a/trunk/Documentation/fb/cyblafb/usage +++ b/trunk/Documentation/fb/cyblafb/usage @@ -40,16 +40,6 @@ Selecting Modes None of the modes possible to select as startup modes are affected by the problems described at the end of the next subsection. - For all startup modes cyblafb chooses a virtual x resolution of 2048, - the only exception is mode 1280x1024 in combination with 32 bpp. This - allows ywrap scrolling for all those modes if rotation is 0 or 2, and - also fast scrolling if rotation is 1 or 3. The default virtual y reso- - lution is 4096 for bpp == 8, 2048 for bpp==16 and 1024 for bpp == 32, - again with the only exception of 1280x1024 at 32 bpp. - - Please do set your video memory size to 8 Mb in the Bios setup. Other - values will work, but performace is decreased for a lot of modes. - Mode changes using fbset ======================== @@ -64,26 +54,20 @@ Selecting Modes - if a flat panel is found, cyblafb does not allow you to program a resolution higher than the physical resolution of the flat panel monitor + - cyblafb does not allow xres to differ from xres_virtual - cyblafb does not allow vclk to exceed 230 MHz. As 32 bpp and (currently) 24 bit modes use a doubled vclk internally, the dotclock limit as seen by fbset is 115 MHz for those modes and 230 MHz for 8 and 16 bpp modes. - - cyblafb will allow you to select very high resolutions as - long as the hardware can be programmed to these modes. The - documented limit 1600x1200 is not enforced, but don't expect - perfect signal quality. - Any request that violates the rules given above will be either changed - to something the hardware supports or an error value will be returned. + Any request that violates the rules given above will be ignored and + fbset will return an error. If you program a virtual y resolution higher than the hardware limit, cyblafb will silently decrease that value to the highest possible - value. The same is true for a virtual x resolution that is not - supported by the hardware. Cyblafb tries to adapt vyres first because - vxres decides if ywrap scrolling is possible or not. + value. - Attempts to disable acceleration are ignored, I believe that this is - safe. + Attempts to disable acceleration are ignored. Some video modes that should work do not work as expected. If you use the standard fb.modes, fbset 640x480-60 will program that mode, but @@ -145,6 +129,10 @@ mode 640x480 or 800x600 or 1024x768 or 1280x1024 verbosity 0 is the default, increase to at least 2 for every bug report! +vesafb allows cyblafb to be loaded after vesafb has been + loaded. See sections "Module unloading ...". + + Development hints ================= @@ -207,7 +195,7 @@ a graphics mode. After booting, load cyblafb without any mode and bpp parameter and assign cyblafb to individual ttys using con2fb, e.g.: - modprobe cyblafb + modprobe cyblafb vesafb=1 con2fb /dev/fb1 /dev/tty1 Unloading cyblafb works without problems after you assign vesafb to all @@ -215,3 +203,4 @@ ttys again, e.g.: con2fb /dev/fb0 /dev/tty1 rmmod cyblafb + diff --git a/trunk/Documentation/fb/cyblafb/whatsnew b/trunk/Documentation/fb/cyblafb/whatsnew deleted file mode 100644 index 76c07a26e044..000000000000 --- a/trunk/Documentation/fb/cyblafb/whatsnew +++ /dev/null @@ -1,29 +0,0 @@ -0.62 -==== - - - the vesafb parameter has been removed as I decided to allow the - feature without any special parameter. - - - Cyblafb does not use the vga style of panning any longer, now the - "right view" register in the graphics engine IO space is used. Without - that change it was impossible to use all available memory, and without - access to all available memory it is impossible to ywrap. - - - The imageblit function now uses hardware acceleration for all font - widths. Hardware blitting across pixel column 2048 is broken in the - cyberblade/i1 graphics core, but we work around that hardware bug. - - - modes with vxres != xres are supported now. - - - ywrap scrolling is supported now and the default. This is a big - performance gain. - - - default video modes use vyres > yres and vxres > xres to allow - almost optimal scrolling speed for normal and rotated screens - - - some features mainly usefull for debugging the upper layers of the - framebuffer system have been added, have a look at the code - - - fixed: Oops after unloading cyblafb when reading /proc/io* - - - we work around some bugs of the higher framebuffer layers. diff --git a/trunk/Documentation/filesystems/ext3.txt b/trunk/Documentation/filesystems/ext3.txt index afb1335c05d6..22e4040564d5 100644 --- a/trunk/Documentation/filesystems/ext3.txt +++ b/trunk/Documentation/filesystems/ext3.txt @@ -2,11 +2,11 @@ Ext3 Filesystem =============== -Ext3 was originally released in September 1999. Written by Stephen Tweedie -for the 2.2 branch, and ported to 2.4 kernels by Peter Braam, Andreas Dilger, +ext3 was originally released in September 1999. Written by Stephen Tweedie +for 2.2 branch, and ported to 2.4 kernels by Peter Braam, Andreas Dilger, Andrew Morton, Alexander Viro, Ted Ts'o and Stephen Tweedie. -Ext3 is the ext2 filesystem enhanced with journalling capabilities. +ext3 is ext2 filesystem enhanced with journalling capabilities. Options ======= @@ -14,81 +14,81 @@ Options When mounting an ext3 filesystem, the following option are accepted: (*) == default -journal=update Update the ext3 file system's journal to the current - format. +jounal=update Update the ext3 file system's journal to the + current format. -journal=inum When a journal already exists, this option is ignored. - Otherwise, it specifies the number of the inode which - will represent the ext3 file system's journal file. +journal=inum When a journal already exists, this option is + ignored. Otherwise, it specifies the number of + the inode which will represent the ext3 file + system's journal file. journal_dev=devnum When the external journal device's major/minor numbers - have changed, this option allows the user to specify - the new journal location. The journal device is - identified through its new major/minor numbers encoded - in devnum. + have changed, this option allows to specify the new + journal location. The journal device is identified + through its new major/minor numbers encoded in devnum. noload Don't load the journal on mounting. -data=journal All data are committed into the journal prior to being - written into the main file system. +data=journal All data are committed into the journal prior + to being written into the main file system. data=ordered (*) All data are forced directly out to the main file - system prior to its metadata being committed to the - journal. + system prior to its metadata being committed to + the journal. -data=writeback Data ordering is not preserved, data may be written - into the main file system after its metadata has been - committed to the journal. +data=writeback Data ordering is not preserved, data may be + written into the main file system after its + metadata has been committed to the journal. commit=nrsec (*) Ext3 can be told to sync all its data and metadata every 'nrsec' seconds. The default value is 5 seconds. - This means that if you lose your power, you will lose - as much as the latest 5 seconds of work (your - filesystem will not be damaged though, thanks to the - journaling). This default value (or any low value) - will hurt performance, but it's good for data-safety. - Setting it to 0 will have the same effect as leaving - it at the default (5 seconds). + This means that if you lose your power, you will lose, + as much, the latest 5 seconds of work (your filesystem + will not be damaged though, thanks to journaling). This + default value (or any low value) will hurt performance, + but it's good for data-safety. Setting it to 0 will + have the same effect than leaving the default 5 sec. Setting it to very large values will improve performance. -barrier=1 This enables/disables barriers. barrier=0 disables - it, barrier=1 enables it. +barrier=1 This enables/disables barriers. barrier=0 disables it, + barrier=1 enables it. -orlov (*) This enables the new Orlov block allocator. It is - enabled by default. +orlov (*) This enables the new Orlov block allocator. It's enabled + by default. -oldalloc This disables the Orlov block allocator and enables - the old block allocator. Orlov should have better - performance - we'd like to get some feedback if it's - the contrary for you. +oldalloc This disables the Orlov block allocator and enables the + old block allocator. Orlov should have better performance, + we'd like to get some feedback if it's the contrary for + you. -user_xattr Enables Extended User Attributes. Additionally, you - need to have extended attribute support enabled in the - kernel configuration (CONFIG_EXT3_FS_XATTR). See the - attr(5) manual page and http://acl.bestbits.at/ to - learn more about extended attributes. +user_xattr Enables Extended User Attributes. Additionally, you need + to have extended attribute support enabled in the kernel + configuration (CONFIG_EXT3_FS_XATTR). See the attr(5) + manual page and http://acl.bestbits.at to learn more + about extended attributes. nouser_xattr Disables Extended User Attributes. -acl Enables POSIX Access Control Lists support. - Additionally, you need to have ACL support enabled in - the kernel configuration (CONFIG_EXT3_FS_POSIX_ACL). - See the acl(5) manual page and http://acl.bestbits.at/ - for more information. +acl Enables POSIX Access Control Lists support. Additionally, + you need to have ACL support enabled in the kernel + configuration (CONFIG_EXT3_FS_POSIX_ACL). See the acl(5) + manual page and http://acl.bestbits.at for more + information. -noacl This option disables POSIX Access Control List - support. +noacl This option disables POSIX Access Control List support. reservation noreservation +resize= + bsddf (*) Make 'df' act like BSD. minixdf Make 'df' act like Minix. check=none Don't do extra checking of bitmaps on mount. -nocheck +nocheck debug Extra debugging information is sent to syslog. @@ -97,7 +97,7 @@ errors=continue Keep going on a filesystem error. errors=panic Panic and halt the machine if an error occurs. grpid Give objects the same group ID as their creator. -bsdgroups +bsdgroups nogrpid (*) New objects have the group ID of their creator. sysvgroups @@ -108,83 +108,81 @@ resuid=n The user ID which may use the reserved blocks. sb=n Use alternate superblock at this location. -quota -noquota +quota Quota options are currently silently ignored. +noquota (see fs/ext3/super.c, line 594) grpquota usrquota Specification ============= -Ext3 shares all disk implementation with the ext2 filesystem, and adds -transactions capabilities to ext2. Journaling is done by the Journaling Block -Device layer. +ext3 shares all disk implementation with ext2 filesystem, and add +transactions capabilities to ext2. Journaling is done by the +Journaling block device layer. Journaling Block Device layer ----------------------------- -The Journaling Block Device layer (JBD) isn't ext3 specific. It was design to -add journaling capabilities on a block device. The ext3 filesystem code will -inform the JBD of modifications it is performing (called a transaction). The -journal supports the transactions start and stop, and in case of crash, the -journal can replayed the transactions to put the partition back in a -consistent state fast. +The Journaling Block Device layer (JBD) isn't ext3 specific. It was +design to add journaling capabilities on a block device. The ext3 +filesystem code will inform the JBD of modifications it is performing +(Call a transaction). the journal support the transactions start and +stop, and in case of crash, the journal can replayed the transactions +to put the partition on a consistent state fastly. -Handles represent a single atomic update to a filesystem. JBD can handle an -external journal on a block device. +handles represent a single atomic update to a filesystem. JBD can +handle external journal on a block device. Data Mode --------- -There are 3 different data modes: +There's 3 different data modes: * writeback mode -In data=writeback mode, ext3 does not journal data at all. This mode provides -a similar level of journaling as that of XFS, JFS, and ReiserFS in its default -mode - metadata journaling. A crash+recovery can cause incorrect data to -appear in files which were written shortly before the crash. This mode will -typically provide the best ext3 performance. +In data=writeback mode, ext3 does not journal data at all. This mode +provides a similar level of journaling as XFS, JFS, and ReiserFS in its +default mode - metadata journaling. A crash+recovery can cause +incorrect data to appear in files which were written shortly before the +crash. This mode will typically provide the best ext3 performance. * ordered mode -In data=ordered mode, ext3 only officially journals metadata, but it logically -groups metadata and data blocks into a single unit called a transaction. When -it's time to write the new metadata out to disk, the associated data blocks -are written first. In general, this mode performs slightly slower than -writeback but significantly faster than journal mode. +In data=ordered mode, ext3 only officially journals metadata, but it +logically groups metadata and data blocks into a single unit called a +transaction. When it's time to write the new metadata out to disk, the +associated data blocks are written first. In general, this mode +perform slightly slower than writeback but significantly faster than +journal mode. * journal mode -data=journal mode provides full data and metadata journaling. All new data is -written to the journal first, and then to its final location. -In the event of a crash, the journal can be replayed, bringing both data and -metadata into a consistent state. This mode is the slowest except when data -needs to be read from and written to disk at the same time where it -outperforms all others modes. +data=journal mode provides full data and metadata journaling. All new +data is written to the journal first, and then to its final location. +In the event of a crash, the journal can be replayed, bringing both +data and metadata into a consistent state. This mode is the slowest +except when data needs to be read from and written to disk at the same +time where it outperform all others mode. Compatibility ------------- Ext2 partitions can be easily convert to ext3, with `tune2fs -j `. -Ext3 is fully compatible with Ext2. Ext3 partitions can easily be mounted as -Ext2. - +Ext3 is fully compatible with Ext2. Ext3 partitions can easily be +mounted as Ext2. External Tools ============== -See manual pages to learn more. - -tune2fs: create a ext3 journal on a ext2 partition with the -j flag. -mke2fs: create a ext3 partition with the -j flag. -debugfs: ext2 and ext3 file system debugger. -ext2online: online (mounted) ext2 and ext3 filesystem resizer +see manual pages to know more. +tune2fs: create a ext3 journal on a ext2 partition with the -j flags +mke2fs: create a ext3 partition with the -j flags +debugfs: ext2 and ext3 file system debugger References ========== -kernel source: - +kernel source: file:/usr/src/linux/fs/ext3 + file:/usr/src/linux/fs/jbd -programs: http://e2fsprogs.sourceforge.net/ - http://ext2resize.sourceforge.net +programs: http://e2fsprogs.sourceforge.net -useful links: http://www.zip.com.au/~akpm/linux/ext3/ext3-usage.html +useful link: + http://www.zip.com.au/~akpm/linux/ext3/ext3-usage.html http://www-106.ibm.com/developerworks/linux/library/l-fs7/ http://www-106.ibm.com/developerworks/linux/library/l-fs8/ diff --git a/trunk/Documentation/filesystems/proc.txt b/trunk/Documentation/filesystems/proc.txt index 944cf109a6f5..a4dcf42c2fd9 100644 --- a/trunk/Documentation/filesystems/proc.txt +++ b/trunk/Documentation/filesystems/proc.txt @@ -418,7 +418,7 @@ VmallocChunk: 111088 kB Dirty: Memory which is waiting to get written back to the disk Writeback: Memory which is actively being written back to the disk Mapped: files which have been mmaped, such as libraries - Slab: in-kernel data structures cache + Slab: in-kernel data structures cache CommitLimit: Based on the overcommit ratio ('vm.overcommit_ratio'), this is the total amount of memory currently available to be allocated on the system. This limit is only adhered to diff --git a/trunk/Documentation/filesystems/spufs.txt b/trunk/Documentation/filesystems/spufs.txt deleted file mode 100644 index 8edc3952eff4..000000000000 --- a/trunk/Documentation/filesystems/spufs.txt +++ /dev/null @@ -1,521 +0,0 @@ -SPUFS(2) Linux Programmer's Manual SPUFS(2) - - - -NAME - spufs - the SPU file system - - -DESCRIPTION - The SPU file system is used on PowerPC machines that implement the Cell - Broadband Engine Architecture in order to access Synergistic Processor - Units (SPUs). - - The file system provides a name space similar to posix shared memory or - message queues. Users that have write permissions on the file system - can use spu_create(2) to establish SPU contexts in the spufs root. - - Every SPU context is represented by a directory containing a predefined - set of files. These files can be used for manipulating the state of the - logical SPU. Users can change permissions on those files, but not actu- - ally add or remove files. - - -MOUNT OPTIONS - uid= - set the user owning the mount point, the default is 0 (root). - - gid= - set the group owning the mount point, the default is 0 (root). - - -FILES - The files in spufs mostly follow the standard behavior for regular sys- - tem calls like read(2) or write(2), but often support only a subset of - the operations supported on regular file systems. This list details the - supported operations and the deviations from the behaviour in the - respective man pages. - - All files that support the read(2) operation also support readv(2) and - all files that support the write(2) operation also support writev(2). - All files support the access(2) and stat(2) family of operations, but - only the st_mode, st_nlink, st_uid and st_gid fields of struct stat - contain reliable information. - - All files support the chmod(2)/fchmod(2) and chown(2)/fchown(2) opera- - tions, but will not be able to grant permissions that contradict the - possible operations, e.g. read access on the wbox file. - - The current set of files is: - - - /mem - the contents of the local storage memory of the SPU. This can be - accessed like a regular shared memory file and contains both code and - data in the address space of the SPU. The possible operations on an - open mem file are: - - read(2), pread(2), write(2), pwrite(2), lseek(2) - These operate as documented, with the exception that seek(2), - write(2) and pwrite(2) are not supported beyond the end of the - file. The file size is the size of the local storage of the SPU, - which normally is 256 kilobytes. - - mmap(2) - Mapping mem into the process address space gives access to the - SPU local storage within the process address space. Only - MAP_SHARED mappings are allowed. - - - /mbox - The first SPU to CPU communication mailbox. This file is read-only and - can be read in units of 32 bits. The file can only be used in non- - blocking mode and it even poll() will not block on it. The possible - operations on an open mbox file are: - - read(2) - If a count smaller than four is requested, read returns -1 and - sets errno to EINVAL. If there is no data available in the mail - box, the return value is set to -1 and errno becomes EAGAIN. - When data has been read successfully, four bytes are placed in - the data buffer and the value four is returned. - - - /ibox - The second SPU to CPU communication mailbox. This file is similar to - the first mailbox file, but can be read in blocking I/O mode, and the - poll familiy of system calls can be used to wait for it. The possible - operations on an open ibox file are: - - read(2) - If a count smaller than four is requested, read returns -1 and - sets errno to EINVAL. If there is no data available in the mail - box and the file descriptor has been opened with O_NONBLOCK, the - return value is set to -1 and errno becomes EAGAIN. - - If there is no data available in the mail box and the file - descriptor has been opened without O_NONBLOCK, the call will - block until the SPU writes to its interrupt mailbox channel. - When data has been read successfully, four bytes are placed in - the data buffer and the value four is returned. - - poll(2) - Poll on the ibox file returns (POLLIN | POLLRDNORM) whenever - data is available for reading. - - - /wbox - The CPU to SPU communation mailbox. It is write-only can can be written - in units of 32 bits. If the mailbox is full, write() will block and - poll can be used to wait for it becoming empty again. The possible - operations on an open wbox file are: write(2) If a count smaller than - four is requested, write returns -1 and sets errno to EINVAL. If there - is no space available in the mail box and the file descriptor has been - opened with O_NONBLOCK, the return value is set to -1 and errno becomes - EAGAIN. - - If there is no space available in the mail box and the file descriptor - has been opened without O_NONBLOCK, the call will block until the SPU - reads from its PPE mailbox channel. When data has been read success- - fully, four bytes are placed in the data buffer and the value four is - returned. - - poll(2) - Poll on the ibox file returns (POLLOUT | POLLWRNORM) whenever - space is available for writing. - - - /mbox_stat - /ibox_stat - /wbox_stat - Read-only files that contain the length of the current queue, i.e. how - many words can be read from mbox or ibox or how many words can be - written to wbox without blocking. The files can be read only in 4-byte - units and return a big-endian binary integer number. The possible - operations on an open *box_stat file are: - - read(2) - If a count smaller than four is requested, read returns -1 and - sets errno to EINVAL. Otherwise, a four byte value is placed in - the data buffer, containing the number of elements that can be - read from (for mbox_stat and ibox_stat) or written to (for - wbox_stat) the respective mail box without blocking or resulting - in EAGAIN. - - - /npc - /decr - /decr_status - /spu_tag_mask - /event_mask - /srr0 - Internal registers of the SPU. The representation is an ASCII string - with the numeric value of the next instruction to be executed. These - can be used in read/write mode for debugging, but normal operation of - programs should not rely on them because access to any of them except - npc requires an SPU context save and is therefore very inefficient. - - The contents of these files are: - - npc Next Program Counter - - decr SPU Decrementer - - decr_status Decrementer Status - - spu_tag_mask MFC tag mask for SPU DMA - - event_mask Event mask for SPU interrupts - - srr0 Interrupt Return address register - - - The possible operations on an open npc, decr, decr_status, - spu_tag_mask, event_mask or srr0 file are: - - read(2) - When the count supplied to the read call is shorter than the - required length for the pointer value plus a newline character, - subsequent reads from the same file descriptor will result in - completing the string, regardless of changes to the register by - a running SPU task. When a complete string has been read, all - subsequent read operations will return zero bytes and a new file - descriptor needs to be opened to read the value again. - - write(2) - A write operation on the file results in setting the register to - the value given in the string. The string is parsed from the - beginning to the first non-numeric character or the end of the - buffer. Subsequent writes to the same file descriptor overwrite - the previous setting. - - - /fpcr - This file gives access to the Floating Point Status and Control Regis- - ter as a four byte long file. The operations on the fpcr file are: - - read(2) - If a count smaller than four is requested, read returns -1 and - sets errno to EINVAL. Otherwise, a four byte value is placed in - the data buffer, containing the current value of the fpcr regis- - ter. - - write(2) - If a count smaller than four is requested, write returns -1 and - sets errno to EINVAL. Otherwise, a four byte value is copied - from the data buffer, updating the value of the fpcr register. - - - /signal1 - /signal2 - The two signal notification channels of an SPU. These are read-write - files that operate on a 32 bit word. Writing to one of these files - triggers an interrupt on the SPU. The value writting to the signal - files can be read from the SPU through a channel read or from host user - space through the file. After the value has been read by the SPU, it - is reset to zero. The possible operations on an open signal1 or sig- - nal2 file are: - - read(2) - If a count smaller than four is requested, read returns -1 and - sets errno to EINVAL. Otherwise, a four byte value is placed in - the data buffer, containing the current value of the specified - signal notification register. - - write(2) - If a count smaller than four is requested, write returns -1 and - sets errno to EINVAL. Otherwise, a four byte value is copied - from the data buffer, updating the value of the specified signal - notification register. The signal notification register will - either be replaced with the input data or will be updated to the - bitwise OR or the old value and the input data, depending on the - contents of the signal1_type, or signal2_type respectively, - file. - - - /signal1_type - /signal2_type - These two files change the behavior of the signal1 and signal2 notifi- - cation files. The contain a numerical ASCII string which is read as - either "1" or "0". In mode 0 (overwrite), the hardware replaces the - contents of the signal channel with the data that is written to it. in - mode 1 (logical OR), the hardware accumulates the bits that are subse- - quently written to it. The possible operations on an open signal1_type - or signal2_type file are: - - read(2) - When the count supplied to the read call is shorter than the - required length for the digit plus a newline character, subse- - quent reads from the same file descriptor will result in com- - pleting the string. When a complete string has been read, all - subsequent read operations will return zero bytes and a new file - descriptor needs to be opened to read the value again. - - write(2) - A write operation on the file results in setting the register to - the value given in the string. The string is parsed from the - beginning to the first non-numeric character or the end of the - buffer. Subsequent writes to the same file descriptor overwrite - the previous setting. - - -EXAMPLES - /etc/fstab entry - none /spu spufs gid=spu 0 0 - - -AUTHORS - Arnd Bergmann , Mark Nutter , - Ulrich Weigand - -SEE ALSO - capabilities(7), close(2), spu_create(2), spu_run(2), spufs(7) - - - -Linux 2005-09-28 SPUFS(2) - ------------------------------------------------------------------------------- - -SPU_RUN(2) Linux Programmer's Manual SPU_RUN(2) - - - -NAME - spu_run - execute an spu context - - -SYNOPSIS - #include - - int spu_run(int fd, unsigned int *npc, unsigned int *event); - -DESCRIPTION - The spu_run system call is used on PowerPC machines that implement the - Cell Broadband Engine Architecture in order to access Synergistic Pro- - cessor Units (SPUs). It uses the fd that was returned from spu_cre- - ate(2) to address a specific SPU context. When the context gets sched- - uled to a physical SPU, it starts execution at the instruction pointer - passed in npc. - - Execution of SPU code happens synchronously, meaning that spu_run does - not return while the SPU is still running. If there is a need to exe- - cute SPU code in parallel with other code on either the main CPU or - other SPUs, you need to create a new thread of execution first, e.g. - using the pthread_create(3) call. - - When spu_run returns, the current value of the SPU instruction pointer - is written back to npc, so you can call spu_run again without updating - the pointers. - - event can be a NULL pointer or point to an extended status code that - gets filled when spu_run returns. It can be one of the following con- - stants: - - SPE_EVENT_DMA_ALIGNMENT - A DMA alignment error - - SPE_EVENT_SPE_DATA_SEGMENT - A DMA segmentation error - - SPE_EVENT_SPE_DATA_STORAGE - A DMA storage error - - If NULL is passed as the event argument, these errors will result in a - signal delivered to the calling process. - -RETURN VALUE - spu_run returns the value of the spu_status register or -1 to indicate - an error and set errno to one of the error codes listed below. The - spu_status register value contains a bit mask of status codes and - optionally a 14 bit code returned from the stop-and-signal instruction - on the SPU. The bit masks for the status codes are: - - 0x02 SPU was stopped by stop-and-signal. - - 0x04 SPU was stopped by halt. - - 0x08 SPU is waiting for a channel. - - 0x10 SPU is in single-step mode. - - 0x20 SPU has tried to execute an invalid instruction. - - 0x40 SPU has tried to access an invalid channel. - - 0x3fff0000 - The bits masked with this value contain the code returned from - stop-and-signal. - - There are always one or more of the lower eight bits set or an error - code is returned from spu_run. - -ERRORS - EAGAIN or EWOULDBLOCK - fd is in non-blocking mode and spu_run would block. - - EBADF fd is not a valid file descriptor. - - EFAULT npc is not a valid pointer or status is neither NULL nor a valid - pointer. - - EINTR A signal occured while spu_run was in progress. The npc value - has been updated to the new program counter value if necessary. - - EINVAL fd is not a file descriptor returned from spu_create(2). - - ENOMEM Insufficient memory was available to handle a page fault result- - ing from an MFC direct memory access. - - ENOSYS the functionality is not provided by the current system, because - either the hardware does not provide SPUs or the spufs module is - not loaded. - - -NOTES - spu_run is meant to be used from libraries that implement a more - abstract interface to SPUs, not to be used from regular applications. - See http://www.bsc.es/projects/deepcomputing/linuxoncell/ for the rec- - ommended libraries. - - -CONFORMING TO - This call is Linux specific and only implemented by the ppc64 architec- - ture. Programs using this system call are not portable. - - -BUGS - The code does not yet fully implement all features lined out here. - - -AUTHOR - Arnd Bergmann - -SEE ALSO - capabilities(7), close(2), spu_create(2), spufs(7) - - - -Linux 2005-09-28 SPU_RUN(2) - ------------------------------------------------------------------------------- - -SPU_CREATE(2) Linux Programmer's Manual SPU_CREATE(2) - - - -NAME - spu_create - create a new spu context - - -SYNOPSIS - #include - #include - - int spu_create(const char *pathname, int flags, mode_t mode); - -DESCRIPTION - The spu_create system call is used on PowerPC machines that implement - the Cell Broadband Engine Architecture in order to access Synergistic - Processor Units (SPUs). It creates a new logical context for an SPU in - pathname and returns a handle to associated with it. pathname must - point to a non-existing directory in the mount point of the SPU file - system (spufs). When spu_create is successful, a directory gets cre- - ated on pathname and it is populated with files. - - The returned file handle can only be passed to spu_run(2) or closed, - other operations are not defined on it. When it is closed, all associ- - ated directory entries in spufs are removed. When the last file handle - pointing either inside of the context directory or to this file - descriptor is closed, the logical SPU context is destroyed. - - The parameter flags can be zero or any bitwise or'd combination of the - following constants: - - SPU_RAWIO - Allow mapping of some of the hardware registers of the SPU into - user space. This flag requires the CAP_SYS_RAWIO capability, see - capabilities(7). - - The mode parameter specifies the permissions used for creating the new - directory in spufs. mode is modified with the user's umask(2) value - and then used for both the directory and the files contained in it. The - file permissions mask out some more bits of mode because they typically - support only read or write access. See stat(2) for a full list of the - possible mode values. - - -RETURN VALUE - spu_create returns a new file descriptor. It may return -1 to indicate - an error condition and set errno to one of the error codes listed - below. - - -ERRORS - EACCESS - The current user does not have write access on the spufs mount - point. - - EEXIST An SPU context already exists at the given path name. - - EFAULT pathname is not a valid string pointer in the current address - space. - - EINVAL pathname is not a directory in the spufs mount point. - - ELOOP Too many symlinks were found while resolving pathname. - - EMFILE The process has reached its maximum open file limit. - - ENAMETOOLONG - pathname was too long. - - ENFILE The system has reached the global open file limit. - - ENOENT Part of pathname could not be resolved. - - ENOMEM The kernel could not allocate all resources required. - - ENOSPC There are not enough SPU resources available to create a new - context or the user specific limit for the number of SPU con- - texts has been reached. - - ENOSYS the functionality is not provided by the current system, because - either the hardware does not provide SPUs or the spufs module is - not loaded. - - ENOTDIR - A part of pathname is not a directory. - - - -NOTES - spu_create is meant to be used from libraries that implement a more - abstract interface to SPUs, not to be used from regular applications. - See http://www.bsc.es/projects/deepcomputing/linuxoncell/ for the rec- - ommended libraries. - - -FILES - pathname must point to a location beneath the mount point of spufs. By - convention, it gets mounted in /spu. - - -CONFORMING TO - This call is Linux specific and only implemented by the ppc64 architec- - ture. Programs using this system call are not portable. - - -BUGS - The code does not yet fully implement all features lined out here. - - -AUTHOR - Arnd Bergmann - -SEE ALSO - capabilities(7), close(2), spu_run(2), spufs(7) - - - -Linux 2005-09-28 SPU_CREATE(2) diff --git a/trunk/Documentation/filesystems/sysfs-pci.txt b/trunk/Documentation/filesystems/sysfs-pci.txt index 7ba2baa165ff..988a62fae11f 100644 --- a/trunk/Documentation/filesystems/sysfs-pci.txt +++ b/trunk/Documentation/filesystems/sysfs-pci.txt @@ -1,5 +1,4 @@ Accessing PCI device resources through sysfs --------------------------------------------- sysfs, usually mounted at /sys, provides access to PCI resources on platforms that support it. For example, a given bus might look like this: @@ -48,21 +47,14 @@ files, each with their own function. binary - file contains binary data cpumask - file contains a cpumask type -The read only files are informational, writes to them will be ignored, with -the exception of the 'rom' file. Writable files can be used to perform -actions on the device (e.g. changing config space, detaching a device). -mmapable files are available via an mmap of the file at offset 0 and can be -used to do actual device programming from userspace. Note that some platforms -don't support mmapping of certain resources, so be sure to check the return -value from any attempted mmap. - -The 'rom' file is special in that it provides read-only access to the device's -ROM file, if available. It's disabled by default, however, so applications -should write the string "1" to the file to enable it before attempting a read -call, and disable it following the access by writing "0" to the file. +The read only files are informational, writes to them will be ignored. +Writable files can be used to perform actions on the device (e.g. changing +config space, detaching a device). mmapable files are available via an +mmap of the file at offset 0 and can be used to do actual device programming +from userspace. Note that some platforms don't support mmapping of certain +resources, so be sure to check the return value from any attempted mmap. Accessing legacy resources through sysfs ----------------------------------------- Legacy I/O port and ISA memory resources are also provided in sysfs if the underlying platform supports them. They're located in the PCI class heirarchy, @@ -83,7 +75,6 @@ simply dereference the returned pointer (after checking for errors of course) to access legacy memory space. Supporting PCI access on new platforms --------------------------------------- In order to support PCI resource mapping as described above, Linux platform code must define HAVE_PCI_MMAP and provide a pci_mmap_page_range function. diff --git a/trunk/Documentation/hrtimers.txt b/trunk/Documentation/hrtimers.txt deleted file mode 100644 index 7620ff735faf..000000000000 --- a/trunk/Documentation/hrtimers.txt +++ /dev/null @@ -1,178 +0,0 @@ - -hrtimers - subsystem for high-resolution kernel timers ----------------------------------------------------- - -This patch introduces a new subsystem for high-resolution kernel timers. - -One might ask the question: we already have a timer subsystem -(kernel/timers.c), why do we need two timer subsystems? After a lot of -back and forth trying to integrate high-resolution and high-precision -features into the existing timer framework, and after testing various -such high-resolution timer implementations in practice, we came to the -conclusion that the timer wheel code is fundamentally not suitable for -such an approach. We initially didnt believe this ('there must be a way -to solve this'), and spent a considerable effort trying to integrate -things into the timer wheel, but we failed. In hindsight, there are -several reasons why such integration is hard/impossible: - -- the forced handling of low-resolution and high-resolution timers in - the same way leads to a lot of compromises, macro magic and #ifdef - mess. The timers.c code is very "tightly coded" around jiffies and - 32-bitness assumptions, and has been honed and micro-optimized for a - relatively narrow use case (jiffies in a relatively narrow HZ range) - for many years - and thus even small extensions to it easily break - the wheel concept, leading to even worse compromises. The timer wheel - code is very good and tight code, there's zero problems with it in its - current usage - but it is simply not suitable to be extended for - high-res timers. - -- the unpredictable [O(N)] overhead of cascading leads to delays which - necessiate a more complex handling of high resolution timers, which - in turn decreases robustness. Such a design still led to rather large - timing inaccuracies. Cascading is a fundamental property of the timer - wheel concept, it cannot be 'designed out' without unevitably - degrading other portions of the timers.c code in an unacceptable way. - -- the implementation of the current posix-timer subsystem on top of - the timer wheel has already introduced a quite complex handling of - the required readjusting of absolute CLOCK_REALTIME timers at - settimeofday or NTP time - further underlying our experience by - example: that the timer wheel data structure is too rigid for high-res - timers. - -- the timer wheel code is most optimal for use cases which can be - identified as "timeouts". Such timeouts are usually set up to cover - error conditions in various I/O paths, such as networking and block - I/O. The vast majority of those timers never expire and are rarely - recascaded because the expected correct event arrives in time so they - can be removed from the timer wheel before any further processing of - them becomes necessary. Thus the users of these timeouts can accept - the granularity and precision tradeoffs of the timer wheel, and - largely expect the timer subsystem to have near-zero overhead. - Accurate timing for them is not a core purpose - in fact most of the - timeout values used are ad-hoc. For them it is at most a necessary - evil to guarantee the processing of actual timeout completions - (because most of the timeouts are deleted before completion), which - should thus be as cheap and unintrusive as possible. - -The primary users of precision timers are user-space applications that -utilize nanosleep, posix-timers and itimer interfaces. Also, in-kernel -users like drivers and subsystems which require precise timed events -(e.g. multimedia) can benefit from the availability of a seperate -high-resolution timer subsystem as well. - -While this subsystem does not offer high-resolution clock sources just -yet, the hrtimer subsystem can be easily extended with high-resolution -clock capabilities, and patches for that exist and are maturing quickly. -The increasing demand for realtime and multimedia applications along -with other potential users for precise timers gives another reason to -separate the "timeout" and "precise timer" subsystems. - -Another potential benefit is that such a seperation allows even more -special-purpose optimization of the existing timer wheel for the low -resolution and low precision use cases - once the precision-sensitive -APIs are separated from the timer wheel and are migrated over to -hrtimers. E.g. we could decrease the frequency of the timeout subsystem -from 250 Hz to 100 HZ (or even smaller). - -hrtimer subsystem implementation details ----------------------------------------- - -the basic design considerations were: - -- simplicity - -- data structure not bound to jiffies or any other granularity. All the - kernel logic works at 64-bit nanoseconds resolution - no compromises. - -- simplification of existing, timing related kernel code - -another basic requirement was the immediate enqueueing and ordering of -timers at activation time. After looking at several possible solutions -such as radix trees and hashes, we chose the red black tree as the basic -data structure. Rbtrees are available as a library in the kernel and are -used in various performance-critical areas of e.g. memory management and -file systems. The rbtree is solely used for time sorted ordering, while -a separate list is used to give the expiry code fast access to the -queued timers, without having to walk the rbtree. - -(This seperate list is also useful for later when we'll introduce -high-resolution clocks, where we need seperate pending and expired -queues while keeping the time-order intact.) - -Time-ordered enqueueing is not purely for the purposes of -high-resolution clocks though, it also simplifies the handling of -absolute timers based on a low-resolution CLOCK_REALTIME. The existing -implementation needed to keep an extra list of all armed absolute -CLOCK_REALTIME timers along with complex locking. In case of -settimeofday and NTP, all the timers (!) had to be dequeued, the -time-changing code had to fix them up one by one, and all of them had to -be enqueued again. The time-ordered enqueueing and the storage of the -expiry time in absolute time units removes all this complex and poorly -scaling code from the posix-timer implementation - the clock can simply -be set without having to touch the rbtree. This also makes the handling -of posix-timers simpler in general. - -The locking and per-CPU behavior of hrtimers was mostly taken from the -existing timer wheel code, as it is mature and well suited. Sharing code -was not really a win, due to the different data structures. Also, the -hrtimer functions now have clearer behavior and clearer names - such as -hrtimer_try_to_cancel() and hrtimer_cancel() [which are roughly -equivalent to del_timer() and del_timer_sync()] - so there's no direct -1:1 mapping between them on the algorithmical level, and thus no real -potential for code sharing either. - -Basic data types: every time value, absolute or relative, is in a -special nanosecond-resolution type: ktime_t. The kernel-internal -representation of ktime_t values and operations is implemented via -macros and inline functions, and can be switched between a "hybrid -union" type and a plain "scalar" 64bit nanoseconds representation (at -compile time). The hybrid union type optimizes time conversions on 32bit -CPUs. This build-time-selectable ktime_t storage format was implemented -to avoid the performance impact of 64-bit multiplications and divisions -on 32bit CPUs. Such operations are frequently necessary to convert -between the storage formats provided by kernel and userspace interfaces -and the internal time format. (See include/linux/ktime.h for further -details.) - -hrtimers - rounding of timer values ------------------------------------ - -the hrtimer code will round timer events to lower-resolution clocks -because it has to. Otherwise it will do no artificial rounding at all. - -one question is, what resolution value should be returned to the user by -the clock_getres() interface. This will return whatever real resolution -a given clock has - be it low-res, high-res, or artificially-low-res. - -hrtimers - testing and verification ----------------------------------- - -We used the high-resolution clock subsystem ontop of hrtimers to verify -the hrtimer implementation details in praxis, and we also ran the posix -timer tests in order to ensure specification compliance. We also ran -tests on low-resolution clocks. - -The hrtimer patch converts the following kernel functionality to use -hrtimers: - - - nanosleep - - itimers - - posix-timers - -The conversion of nanosleep and posix-timers enabled the unification of -nanosleep and clock_nanosleep. - -The code was successfully compiled for the following platforms: - - i386, x86_64, ARM, PPC, PPC64, IA64 - -The code was run-tested on the following platforms: - - i386(UP/SMP), x86_64(UP/SMP), ARM, PPC - -hrtimers were also integrated into the -rt tree, along with a -hrtimers-based high-resolution clock implementation, so the hrtimers -code got a healthy amount of testing and use in practice. - - Thomas Gleixner, Ingo Molnar diff --git a/trunk/Documentation/i2o/ioctl b/trunk/Documentation/i2o/ioctl index 1e77fac4e120..3e174978997d 100644 --- a/trunk/Documentation/i2o/ioctl +++ b/trunk/Documentation/i2o/ioctl @@ -185,7 +185,7 @@ VII. Getting Parameters ENOMEM Kernel memory allocation error A return value of 0 does not mean that the value was actually - properly retrieved. The user should check the result list + properly retreived. The user should check the result list to determine the specific status of the transaction. VIII. Downloading Software diff --git a/trunk/Documentation/kbuild/makefiles.txt b/trunk/Documentation/kbuild/makefiles.txt index 443230b43e09..d802ce88bedc 100644 --- a/trunk/Documentation/kbuild/makefiles.txt +++ b/trunk/Documentation/kbuild/makefiles.txt @@ -1033,9 +1033,9 @@ When kbuild executes the following steps are followed (roughly): Example: #arch/i386/Makefile + GCC_VERSION := $(call cc-version) cflags-y += $(shell \ - if [ $(call cc-version) -ge 0300 ] ; then \ - echo "-mregparm=3"; fi ;) + if [ $(GCC_VERSION) -ge 0300 ] ; then echo "-mregparm=3"; fi ;) In the above example -mregparm=3 is only used for gcc version greater than or equal to gcc 3.0. diff --git a/trunk/Documentation/kdump/gdbmacros.txt b/trunk/Documentation/kdump/gdbmacros.txt index dcf5580380ab..bc1b9eb92ae1 100644 --- a/trunk/Documentation/kdump/gdbmacros.txt +++ b/trunk/Documentation/kdump/gdbmacros.txt @@ -177,25 +177,3 @@ document trapinfo 'trapinfo ' will tell you by which trap & possibly addresthe kernel paniced. end - - -define dmesg - set $i = 0 - set $end_idx = (log_end - 1) & (log_buf_len - 1) - - while ($i < logged_chars) - set $idx = (log_end - 1 - logged_chars + $i) & (log_buf_len - 1) - - if ($idx + 100 <= $end_idx) || \ - ($end_idx <= $idx && $idx + 100 < log_buf_len) - printf "%.100s", &log_buf[$idx] - set $i = $i + 100 - else - printf "%c", log_buf[$idx] - set $i = $i + 1 - end - end -end -document dmesg - print the kernel ring buffer -end diff --git a/trunk/Documentation/kdump/kdump.txt b/trunk/Documentation/kdump/kdump.txt index 212cf3c21abf..5f08f9ce6046 100644 --- a/trunk/Documentation/kdump/kdump.txt +++ b/trunk/Documentation/kdump/kdump.txt @@ -4,10 +4,10 @@ Documentation for kdump - the kexec-based crash dumping solution DESIGN ====== -Kdump uses kexec to reboot to a second kernel whenever a dump needs to be -taken. This second kernel is booted with very little memory. The first kernel -reserves the section of memory that the second kernel uses. This ensures that -on-going DMA from the first kernel does not corrupt the second kernel. +Kdump uses kexec to reboot to a second kernel whenever a dump needs to be taken. +This second kernel is booted with very little memory. The first kernel reserves +the section of memory that the second kernel uses. This ensures that on-going +DMA from the first kernel does not corrupt the second kernel. All the necessary information about Core image is encoded in ELF format and stored in reserved area of memory before crash. Physical address of start of @@ -35,82 +35,77 @@ In the second kernel, "old memory" can be accessed in two ways. SETUP ===== -1) Download the upstream kexec-tools userspace package from - http://www.xmission.com/~ebiederm/files/kexec/kexec-tools-1.101.tar.gz. +1) Download http://www.xmission.com/~ebiederm/files/kexec/kexec-tools-1.101.tar.gz + and apply http://lse.sourceforge.net/kdump/patches/kexec-tools-1.101-kdump.patch + and after that build the source. - Apply the latest consolidated kdump patch on top of kexec-tools-1.101 - from http://lse.sourceforge.net/kdump/. This arrangment has been made - till all the userspace patches supporting kdump are integrated with - upstream kexec-tools userspace. +2) Download and build the appropriate (2.6.13-rc1 onwards) vanilla kernel. -2) Download and build the appropriate (2.6.13-rc1 onwards) vanilla kernels. Two kernels need to be built in order to get this feature working. - Following are the steps to properly configure the two kernels specific - to kexec and kdump features: - A) First kernel or regular kernel: - ---------------------------------- + A) First kernel: a) Enable "kexec system call" feature (in Processor type and features). - CONFIG_KEXEC=y - b) Enable "sysfs file system support" (in Pseudo filesystems). - CONFIG_SYSFS=y - c) make + CONFIG_KEXEC=y + b) This kernel's physical load address should be the default value of + 0x100000 (0x100000, 1 MB) (in Processor type and features). + CONFIG_PHYSICAL_START=0x100000 + c) Enable "sysfs file system support" (in Pseudo filesystems). + CONFIG_SYSFS=y d) Boot into first kernel with the command line parameter "crashkernel=Y@X". Use appropriate values for X and Y. Y denotes how much memory to reserve - for the second kernel, and X denotes at what physical address the - reserved memory section starts. For example: "crashkernel=64M@16M". - - - B) Second kernel or dump capture kernel: - --------------------------------------- - a) For i386 architecture enable Highmem support - CONFIG_HIGHMEM=y - b) Enable "kernel crash dumps" feature (under "Processor type and features") - CONFIG_CRASH_DUMP=y - c) Make sure a suitable value for "Physical address where the kernel is - loaded" (under "Processor type and features"). By default this value - is 0x1000000 (16MB) and it should be same as X (See option d above), - e.g., 16 MB or 0x1000000. - CONFIG_PHYSICAL_START=0x1000000 - d) Enable "/proc/vmcore support" (Optional, under "Pseudo filesystems"). - CONFIG_PROC_VMCORE=y - -3) After booting to regular kernel or first kernel, load the second kernel - using the following command: + for the second kernel, and X denotes at what physical address the reserved + memory section starts. For example: "crashkernel=64M@16M". + + B) Second kernel: + a) Enable "kernel crash dumps" feature (in Processor type and features). + CONFIG_CRASH_DUMP=y + b) Specify a suitable value for "Physical address where the kernel is + loaded" (in Processor type and features). Typically this value + should be same as X (See option d) above, e.g., 16 MB or 0x1000000. + CONFIG_PHYSICAL_START=0x1000000 + c) Enable "/proc/vmcore support" (Optional, in Pseudo filesystems). + CONFIG_PROC_VMCORE=y + d) Disable SMP support and build a UP kernel (Until it is fixed). + CONFIG_SMP=n + e) Enable "Local APIC support on uniprocessors". + CONFIG_X86_UP_APIC=y + f) Enable "IO-APIC support on uniprocessors" + CONFIG_X86_UP_IOAPIC=y + + Note: i) Options a) and b) depend upon "Configure standard kernel features + (for small systems)" (under General setup). + ii) Option a) also depends on CONFIG_HIGHMEM (under Processor + type and features). + iii) Both option a) and b) are under "Processor type and features". + +3) Boot into the first kernel. You are now ready to try out kexec-based crash + dumps. + +4) Load the second kernel to be booted using: kexec -p --args-linux --elf32-core-headers - --append="root= init 1 irqpoll maxcpus=1" - - Notes: - ====== - i) has to be a vmlinux image ie uncompressed elf image. - bzImage will not work, as of now. - ii) --args-linux has to be speicfied as if kexec it loading an elf image, - it needs to know that the arguments supplied are of linux type. - iii) By default ELF headers are stored in ELF64 format to support systems - with more than 4GB memory. Option --elf32-core-headers forces generation - of ELF32 headers. The reason for this option being, as of now gdb can - not open vmcore file with ELF64 headers on a 32 bit systems. So ELF32 - headers can be used if one has non-PAE systems and hence memory less - than 4GB. - iv) Specify "irqpoll" as command line parameter. This reduces driver - initialization failures in second kernel due to shared interrupts. - v) needs to be specified in a format corresponding to the root - device name in the output of mount command. - vi) If you have built the drivers required to mount root file system as - modules in , then, specify - --initrd=. - vii) Specify maxcpus=1 as, if during first kernel run, if panic happens on - non-boot cpus, second kernel doesn't seem to be boot up all the cpus. - The other option is to always built the second kernel without SMP - support ie CONFIG_SMP=n - -4) After successfully loading the second kernel as above, if a panic occurs - system reboots into the second kernel. A module can be written to force - the panic or "ALT-SysRq-c" can be used initiate a crash dump for testing - purposes. - -5) Once the second kernel has booted, write out the dump file using + --append="root= init 1 irqpoll" + + Note: i) has to be a vmlinux image. bzImage will not work, + as of now. + ii) By default ELF headers are stored in ELF64 format. Option + --elf32-core-headers forces generation of ELF32 headers. gdb can + not open ELF64 headers on 32 bit systems. So creating ELF32 + headers can come handy for users who have got non-PAE systems and + hence have memory less than 4GB. + iii) Specify "irqpoll" as command line parameter. This reduces driver + initialization failures in second kernel due to shared interrupts. + iv) needs to be specified in a format corresponding to + the root device name in the output of mount command. + v) If you have built the drivers required to mount root file + system as modules in , then, specify + --initrd=. + +5) System reboots into the second kernel when a panic occurs. A module can be + written to force the panic or "ALT-SysRq-c" can be used initiate a crash + dump for testing purposes. + +6) Write out the dump file using cp /proc/vmcore @@ -124,9 +119,9 @@ SETUP Entire memory: dd if=/dev/oldmem of=oldmem.001 - ANALYSIS ======== + Limited analysis can be done using gdb on the dump file copied out of /proc/vmcore. Use vmlinux built with -g and run @@ -137,19 +132,15 @@ work fine. Note: gdb cannot analyse core files generated in ELF64 format for i386. -Latest "crash" (crash-4.0-2.18) as available on Dave Anderson's site -http://people.redhat.com/~anderson/ works well with kdump format. - - TODO ==== + 1) Provide a kernel pages filtering mechanism so that core file size is not insane on systems having huge memory banks. -2) Relocatable kernel can help in maintaining multiple kernels for crashdump - and same kernel as the first kernel can be used to capture the dump. - +2) Modify "crash" tool to make it recognize this dump. CONTACT ======= + Vivek Goyal (vgoyal@in.ibm.com) Maneesh Soni (maneesh@in.ibm.com) diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index fe11fccf7e41..acb010bb087b 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -475,11 +475,10 @@ running once the system is up. See Documentation/block/as-iosched.txt and Documentation/block/deadline-iosched.txt for details. - elfcorehdr= [IA-32, X86_64] + elfcorehdr= [IA-32] Specifies physical address of start of kernel core - image elf header. Generally kexec loader will - pass this option to capture kernel. - See Documentation/kdump/kdump.txt for details. + image elf header. + See Documentation/kdump.txt for details. enforcing [SELINUX] Set initial enforcing status. Format: {"0" | "1"} @@ -833,7 +832,7 @@ running once the system is up. mem=nopentium [BUGS=IA-32] Disable usage of 4MB pages for kernel memory. - memmap=exactmap [KNL,IA-32,X86_64] Enable setting of an exact + memmap=exactmap [KNL,IA-32] Enable setting of an exact E820 memory map, as specified by the user. Such memmap=exactmap lines can be constructed based on BIOS output or other requirements. See the memmap=nn@ss @@ -856,49 +855,6 @@ running once the system is up. mga= [HW,DRM] - migration_cost= - [KNL,SMP] debug: override scheduler migration costs - Format: ,,... - This debugging option can be used to override the - default scheduler migration cost matrix. The numbers - are indexed by 'CPU domain distance'. - E.g. migration_cost=1000,2000,3000 on an SMT NUMA - box will set up an intra-core migration cost of - 1 msec, an inter-core migration cost of 2 msecs, - and an inter-node migration cost of 3 msecs. - - WARNING: using the wrong values here can break - scheduler performance, so it's only for scheduler - development purposes, not production environments. - - migration_debug= - [KNL,SMP] migration cost auto-detect verbosity - Format=<0|1|2> - If a system's migration matrix reported at bootup - seems erroneous then this option can be used to - increase verbosity of the detection process. - We default to 0 (no extra messages), 1 will print - some more information, and 2 will be really - verbose (probably only useful if you also have a - serial console attached to the system). - - migration_factor= - [KNL,SMP] multiply/divide migration costs by a factor - Format= - This debug option can be used to proportionally - increase or decrease the auto-detected migration - costs for all entries of the migration matrix. - E.g. migration_factor=150 will increase migration - costs by 50%. (and thus the scheduler will be less - eager migrating cache-hot tasks) - migration_factor=80 will decrease migration costs - by 20%. (thus the scheduler will be more eager to - migrate tasks) - - WARNING: using the wrong values here can break - scheduler performance, so it's only for scheduler - development purposes, not production environments. - mousedev.tap_time= [MOUSE] Maximum time between finger touching and leaving touchpad surface for touch to be considered @@ -1042,8 +998,6 @@ running once the system is up. nowb [ARM] - nr_uarts= [SERIAL] maximum number of UARTs to be registered. - opl3= [HW,OSS] Format: diff --git a/trunk/Documentation/kprobes.txt b/trunk/Documentation/kprobes.txt index 0ea5a0c6e827..0541fe1de704 100644 --- a/trunk/Documentation/kprobes.txt +++ b/trunk/Documentation/kprobes.txt @@ -411,8 +411,7 @@ int init_module(void) printk("Couldn't find %s to plant kprobe\n", "do_fork"); return -1; } - ret = register_kprobe(&kp); - if (ret < 0) { + if ((ret = register_kprobe(&kp) < 0)) { printk("register_kprobe failed, returned %d\n", ret); return -1; } diff --git a/trunk/Documentation/laptop-mode.txt b/trunk/Documentation/laptop-mode.txt index f42e4c089356..dc4e810afdcd 100644 --- a/trunk/Documentation/laptop-mode.txt +++ b/trunk/Documentation/laptop-mode.txt @@ -3,7 +3,7 @@ How to conserve battery power using laptop-mode Document Author: Bart Samwel (bart@samwel.tk) Date created: January 2, 2004 -Last modified: December 06, 2004 +Last modified: July 10, 2004 Introduction ------------ @@ -33,7 +33,7 @@ or anything. Simply install all the files included in this document, and laptop mode will automatically be started when you're on battery. For your convenience, a tarball containing an installer can be downloaded at: -http://www.xs4all.nl/~bsamwel/laptop_mode/tools/ +http://www.xs4all.nl/~bsamwel/laptop_mode/tools To configure laptop mode, you need to edit the configuration file, which is located in /etc/default/laptop-mode on Debian-based systems, or in @@ -912,7 +912,7 @@ void usage() exit(0); } -int main(int argc, char **argv) +int main(int ac, char **av) { int fd; char *disk = 0; diff --git a/trunk/Documentation/locks.txt b/trunk/Documentation/locks.txt index e3b402ef33bd..ce1be79edfb8 100644 --- a/trunk/Documentation/locks.txt +++ b/trunk/Documentation/locks.txt @@ -65,3 +65,20 @@ The default is to disallow mandatory locking. The intention is that mandatory locking only be enabled on a local filesystem as the specific need arises. +Until an updated version of mount(8) becomes available you may have to apply +this patch to the mount sources (based on the version distributed with Rick +Faith's util-linux-2.5 package): + +*** mount.c.orig Sat Jun 8 09:14:31 1996 +--- mount.c Sat Jun 8 09:13:02 1996 +*************** +*** 100,105 **** +--- 100,107 ---- + { "noauto", 0, MS_NOAUTO }, /* Can only be mounted explicitly */ + { "user", 0, MS_USER }, /* Allow ordinary user to mount */ + { "nouser", 1, MS_USER }, /* Forbid ordinary user to mount */ ++ { "mand", 0, MS_MANDLOCK }, /* Allow mandatory locks on this FS */ ++ { "nomand", 1, MS_MANDLOCK }, /* Forbid mandatory locks on this FS */ + /* add new options here */ + #ifdef MS_NOSUB + { "sub", 1, MS_NOSUB }, /* allow submounts */ diff --git a/trunk/Documentation/mutex-design.txt b/trunk/Documentation/mutex-design.txt deleted file mode 100644 index cbf79881a41c..000000000000 --- a/trunk/Documentation/mutex-design.txt +++ /dev/null @@ -1,135 +0,0 @@ -Generic Mutex Subsystem - -started by Ingo Molnar - - "Why on earth do we need a new mutex subsystem, and what's wrong - with semaphores?" - -firstly, there's nothing wrong with semaphores. But if the simpler -mutex semantics are sufficient for your code, then there are a couple -of advantages of mutexes: - - - 'struct mutex' is smaller on most architectures: .e.g on x86, - 'struct semaphore' is 20 bytes, 'struct mutex' is 16 bytes. - A smaller structure size means less RAM footprint, and better - CPU-cache utilization. - - - tighter code. On x86 i get the following .text sizes when - switching all mutex-alike semaphores in the kernel to the mutex - subsystem: - - text data bss dec hex filename - 3280380 868188 396860 4545428 455b94 vmlinux-semaphore - 3255329 865296 396732 4517357 44eded vmlinux-mutex - - that's 25051 bytes of code saved, or a 0.76% win - off the hottest - codepaths of the kernel. (The .data savings are 2892 bytes, or 0.33%) - Smaller code means better icache footprint, which is one of the - major optimization goals in the Linux kernel currently. - - - the mutex subsystem is slightly faster and has better scalability for - contended workloads. On an 8-way x86 system, running a mutex-based - kernel and testing creat+unlink+close (of separate, per-task files) - in /tmp with 16 parallel tasks, the average number of ops/sec is: - - Semaphores: Mutexes: - - $ ./test-mutex V 16 10 $ ./test-mutex V 16 10 - 8 CPUs, running 16 tasks. 8 CPUs, running 16 tasks. - checking VFS performance. checking VFS performance. - avg loops/sec: 34713 avg loops/sec: 84153 - CPU utilization: 63% CPU utilization: 22% - - i.e. in this workload, the mutex based kernel was 2.4 times faster - than the semaphore based kernel, _and_ it also had 2.8 times less CPU - utilization. (In terms of 'ops per CPU cycle', the semaphore kernel - performed 551 ops/sec per 1% of CPU time used, while the mutex kernel - performed 3825 ops/sec per 1% of CPU time used - it was 6.9 times - more efficient.) - - the scalability difference is visible even on a 2-way P4 HT box: - - Semaphores: Mutexes: - - $ ./test-mutex V 16 10 $ ./test-mutex V 16 10 - 4 CPUs, running 16 tasks. 8 CPUs, running 16 tasks. - checking VFS performance. checking VFS performance. - avg loops/sec: 127659 avg loops/sec: 181082 - CPU utilization: 100% CPU utilization: 34% - - (the straight performance advantage of mutexes is 41%, the per-cycle - efficiency of mutexes is 4.1 times better.) - - - there are no fastpath tradeoffs, the mutex fastpath is just as tight - as the semaphore fastpath. On x86, the locking fastpath is 2 - instructions: - - c0377ccb : - c0377ccb: f0 ff 08 lock decl (%eax) - c0377cce: 78 0e js c0377cde <.text.lock.mutex> - c0377cd0: c3 ret - - the unlocking fastpath is equally tight: - - c0377cd1 : - c0377cd1: f0 ff 00 lock incl (%eax) - c0377cd4: 7e 0f jle c0377ce5 <.text.lock.mutex+0x7> - c0377cd6: c3 ret - - - 'struct mutex' semantics are well-defined and are enforced if - CONFIG_DEBUG_MUTEXES is turned on. Semaphores on the other hand have - virtually no debugging code or instrumentation. The mutex subsystem - checks and enforces the following rules: - - * - only one task can hold the mutex at a time - * - only the owner can unlock the mutex - * - multiple unlocks are not permitted - * - recursive locking is not permitted - * - a mutex object must be initialized via the API - * - a mutex object must not be initialized via memset or copying - * - task may not exit with mutex held - * - memory areas where held locks reside must not be freed - * - held mutexes must not be reinitialized - * - mutexes may not be used in irq contexts - - furthermore, there are also convenience features in the debugging - code: - - * - uses symbolic names of mutexes, whenever they are printed in debug output - * - point-of-acquire tracking, symbolic lookup of function names - * - list of all locks held in the system, printout of them - * - owner tracking - * - detects self-recursing locks and prints out all relevant info - * - detects multi-task circular deadlocks and prints out all affected - * locks and tasks (and only those tasks) - -Disadvantages -------------- - -The stricter mutex API means you cannot use mutexes the same way you -can use semaphores: e.g. they cannot be used from an interrupt context, -nor can they be unlocked from a different context that which acquired -it. [ I'm not aware of any other (e.g. performance) disadvantages from -using mutexes at the moment, please let me know if you find any. ] - -Implementation of mutexes -------------------------- - -'struct mutex' is the new mutex type, defined in include/linux/mutex.h -and implemented in kernel/mutex.c. It is a counter-based mutex with a -spinlock and a wait-list. The counter has 3 states: 1 for "unlocked", -0 for "locked" and negative numbers (usually -1) for "locked, potential -waiters queued". - -the APIs of 'struct mutex' have been streamlined: - - DEFINE_MUTEX(name); - - mutex_init(mutex); - - void mutex_lock(struct mutex *lock); - int mutex_lock_interruptible(struct mutex *lock); - int mutex_trylock(struct mutex *lock); - void mutex_unlock(struct mutex *lock); - int mutex_is_locked(struct mutex *lock); - diff --git a/trunk/Documentation/networking/bonding.txt b/trunk/Documentation/networking/bonding.txt index 8d8b4e5ea184..b0fe41da007b 100644 --- a/trunk/Documentation/networking/bonding.txt +++ b/trunk/Documentation/networking/bonding.txt @@ -945,6 +945,7 @@ bond0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4 collisions:0 txqueuelen:0 eth0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4 + inet addr:XXX.XXX.XXX.YYY Bcast:XXX.XXX.XXX.255 Mask:255.255.252.0 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:3573025 errors:0 dropped:0 overruns:0 frame:0 TX packets:1643167 errors:1 dropped:0 overruns:1 carrier:0 @@ -952,6 +953,7 @@ eth0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4 Interrupt:10 Base address:0x1080 eth1 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4 + inet addr:XXX.XXX.XXX.YYY Bcast:XXX.XXX.XXX.255 Mask:255.255.252.0 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:3651769 errors:0 dropped:0 overruns:0 frame:0 TX packets:1643480 errors:0 dropped:0 overruns:0 carrier:0 diff --git a/trunk/Documentation/networking/sk98lin.txt b/trunk/Documentation/networking/sk98lin.txt index f9d979ee9526..851fc97bb22f 100644 --- a/trunk/Documentation/networking/sk98lin.txt +++ b/trunk/Documentation/networking/sk98lin.txt @@ -245,7 +245,7 @@ Default: Both This parameters is only relevant if auto-negotiation for this port is not set to "Sense". If auto-negotiation is set to "On", all three values are possible. If it is set to "Off", only "Full" and "Half" are allowed. -This parameter is useful if your link partner does not support all +This parameter is usefull if your link partner does not support all possible combinations. Flow Control diff --git a/trunk/Documentation/oops-tracing.txt b/trunk/Documentation/oops-tracing.txt index 2503404ae5c2..05960f8a748e 100644 --- a/trunk/Documentation/oops-tracing.txt +++ b/trunk/Documentation/oops-tracing.txt @@ -41,9 +41,11 @@ the disk is not available then you have three options :- run a null modem to a second machine and capture the output there using your favourite communication program. Minicom works well. -(3) Use Kdump (see Documentation/kdump/kdump.txt), - extract the kernel ring buffer from old memory with using dmesg - gdbmacro in Documentation/kdump/gdbmacros.txt. +(3) Patch the kernel with one of the crash dump patches. These save + data to a floppy disk or video rom or a swap partition. None of + these are standard kernel patches so you have to find and apply + them yourself. Search kernel archives for kmsgdump, lkcd and + oops+smram. Full Information diff --git a/trunk/Documentation/pci-error-recovery.txt b/trunk/Documentation/pci-error-recovery.txt deleted file mode 100644 index d089967e4948..000000000000 --- a/trunk/Documentation/pci-error-recovery.txt +++ /dev/null @@ -1,246 +0,0 @@ - - PCI Error Recovery - ------------------ - May 31, 2005 - - Current document maintainer: - Linas Vepstas - - -Some PCI bus controllers are able to detect certain "hard" PCI errors -on the bus, such as parity errors on the data and address busses, as -well as SERR and PERR errors. These chipsets are then able to disable -I/O to/from the affected device, so that, for example, a bad DMA -address doesn't end up corrupting system memory. These same chipsets -are also able to reset the affected PCI device, and return it to -working condition. This document describes a generic API form -performing error recovery. - -The core idea is that after a PCI error has been detected, there must -be a way for the kernel to coordinate with all affected device drivers -so that the pci card can be made operational again, possibly after -performing a full electrical #RST of the PCI card. The API below -provides a generic API for device drivers to be notified of PCI -errors, and to be notified of, and respond to, a reset sequence. - -Preliminary sketch of API, cut-n-pasted-n-modified email from -Ben Herrenschmidt, circa 5 april 2005 - -The error recovery API support is exposed to the driver in the form of -a structure of function pointers pointed to by a new field in struct -pci_driver. The absence of this pointer in pci_driver denotes an -"non-aware" driver, behaviour on these is platform dependant. -Platforms like ppc64 can try to simulate pci hotplug remove/add. - -The definition of "pci_error_token" is not covered here. It is based on -Seto's work on the synchronous error detection. We still need to define -functions for extracting infos out of an opaque error token. This is -separate from this API. - -This structure has the form: - -struct pci_error_handlers -{ - int (*error_detected)(struct pci_dev *dev, pci_error_token error); - int (*mmio_enabled)(struct pci_dev *dev); - int (*resume)(struct pci_dev *dev); - int (*link_reset)(struct pci_dev *dev); - int (*slot_reset)(struct pci_dev *dev); -}; - -A driver doesn't have to implement all of these callbacks. The -only mandatory one is error_detected(). If a callback is not -implemented, the corresponding feature is considered unsupported. -For example, if mmio_enabled() and resume() aren't there, then the -driver is assumed as not doing any direct recovery and requires -a reset. If link_reset() is not implemented, the card is assumed as -not caring about link resets, in which case, if recover is supported, -the core can try recover (but not slot_reset() unless it really did -reset the slot). If slot_reset() is not supported, link_reset() can -be called instead on a slot reset. - -At first, the call will always be : - - 1) error_detected() - - Error detected. This is sent once after an error has been detected. At -this point, the device might not be accessible anymore depending on the -platform (the slot will be isolated on ppc64). The driver may already -have "noticed" the error because of a failing IO, but this is the proper -"synchronisation point", that is, it gives a chance to the driver to -cleanup, waiting for pending stuff (timers, whatever, etc...) to -complete; it can take semaphores, schedule, etc... everything but touch -the device. Within this function and after it returns, the driver -shouldn't do any new IOs. Called in task context. This is sort of a -"quiesce" point. See note about interrupts at the end of this doc. - - Result codes: - - PCIERR_RESULT_CAN_RECOVER: - Driever returns this if it thinks it might be able to recover - the HW by just banging IOs or if it wants to be given - a chance to extract some diagnostic informations (see - below). - - PCIERR_RESULT_NEED_RESET: - Driver returns this if it thinks it can't recover unless the - slot is reset. - - PCIERR_RESULT_DISCONNECT: - Return this if driver thinks it won't recover at all, - (this will detach the driver ? or just leave it - dangling ? to be decided) - -So at this point, we have called error_detected() for all drivers -on the segment that had the error. On ppc64, the slot is isolated. What -happens now typically depends on the result from the drivers. If all -drivers on the segment/slot return PCIERR_RESULT_CAN_RECOVER, we would -re-enable IOs on the slot (or do nothing special if the platform doesn't -isolate slots) and call 2). If not and we can reset slots, we go to 4), -if neither, we have a dead slot. If it's an hotplug slot, we might -"simulate" reset by triggering HW unplug/replug though. - ->>> Current ppc64 implementation assumes that a device driver will ->>> *not* schedule or semaphore in this routine; the current ppc64 ->>> implementation uses one kernel thread to notify all devices; ->>> thus, of one device sleeps/schedules, all devices are affected. ->>> Doing better requires complex multi-threaded logic in the error ->>> recovery implementation (e.g. waiting for all notification threads ->>> to "join" before proceeding with recovery.) This seems excessively ->>> complex and not worth implementing. - ->>> The current ppc64 implementation doesn't much care if the device ->>> attempts i/o at this point, or not. I/O's will fail, returning ->>> a value of 0xff on read, and writes will be dropped. If the device ->>> driver attempts more than 10K I/O's to a frozen adapter, it will ->>> assume that the device driver has gone into an infinite loop, and ->>> it will panic the the kernel. - - 2) mmio_enabled() - - This is the "early recovery" call. IOs are allowed again, but DMA is -not (hrm... to be discussed, I prefer not), with some restrictions. This -is NOT a callback for the driver to start operations again, only to -peek/poke at the device, extract diagnostic information, if any, and -eventually do things like trigger a device local reset or some such, -but not restart operations. This is sent if all drivers on a segment -agree that they can try to recover and no automatic link reset was -performed by the HW. If the platform can't just re-enable IOs without -a slot reset or a link reset, it doesn't call this callback and goes -directly to 3) or 4). All IOs should be done _synchronously_ from -within this callback, errors triggered by them will be returned via -the normal pci_check_whatever() api, no new error_detected() callback -will be issued due to an error happening here. However, such an error -might cause IOs to be re-blocked for the whole segment, and thus -invalidate the recovery that other devices on the same segment might -have done, forcing the whole segment into one of the next states, -that is link reset or slot reset. - - Result codes: - - PCIERR_RESULT_RECOVERED - Driver returns this if it thinks the device is fully - functionnal and thinks it is ready to start - normal driver operations again. There is no - guarantee that the driver will actually be - allowed to proceed, as another driver on the - same segment might have failed and thus triggered a - slot reset on platforms that support it. - - - PCIERR_RESULT_NEED_RESET - Driver returns this if it thinks the device is not - recoverable in it's current state and it needs a slot - reset to proceed. - - - PCIERR_RESULT_DISCONNECT - Same as above. Total failure, no recovery even after - reset driver dead. (To be defined more precisely) - ->>> The current ppc64 implementation does not implement this callback. - - 3) link_reset() - - This is called after the link has been reset. This is typically -a PCI Express specific state at this point and is done whenever a -non-fatal error has been detected that can be "solved" by resetting -the link. This call informs the driver of the reset and the driver -should check if the device appears to be in working condition. -This function acts a bit like 2) mmio_enabled(), in that the driver -is not supposed to restart normal driver I/O operations right away. -Instead, it should just "probe" the device to check it's recoverability -status. If all is right, then the core will call resume() once all -drivers have ack'd link_reset(). - - Result codes: - (identical to mmio_enabled) - ->>> The current ppc64 implementation does not implement this callback. - - 4) slot_reset() - - This is called after the slot has been soft or hard reset by the -platform. A soft reset consists of asserting the adapter #RST line -and then restoring the PCI BARs and PCI configuration header. If the -platform supports PCI hotplug, then it might instead perform a hard -reset by toggling power on the slot off/on. This call gives drivers -the chance to re-initialize the hardware (re-download firmware, etc.), -but drivers shouldn't restart normal I/O processing operations at -this point. (See note about interrupts; interrupts aren't guaranteed -to be delivered until the resume() callback has been called). If all -device drivers report success on this callback, the patform will call -resume() to complete the error handling and let the driver restart -normal I/O processing. - -A driver can still return a critical failure for this function if -it can't get the device operational after reset. If the platform -previously tried a soft reset, it migh now try a hard reset (power -cycle) and then call slot_reset() again. It the device still can't -be recovered, there is nothing more that can be done; the platform -will typically report a "permanent failure" in such a case. The -device will be considered "dead" in this case. - - Result codes: - - PCIERR_RESULT_DISCONNECT - Same as above. - ->>> The current ppc64 implementation does not try a power-cycle reset ->>> if the driver returned PCIERR_RESULT_DISCONNECT. However, it should. - - 5) resume() - - This is called if all drivers on the segment have returned -PCIERR_RESULT_RECOVERED from one of the 3 prevous callbacks. -That basically tells the driver to restart activity, tht everything -is back and running. No result code is taken into account here. If -a new error happens, it will restart a new error handling process. - -That's it. I think this covers all the possibilities. The way those -callbacks are called is platform policy. A platform with no slot reset -capability for example may want to just "ignore" drivers that can't -recover (disconnect them) and try to let other cards on the same segment -recover. Keep in mind that in most real life cases, though, there will -be only one driver per segment. - -Now, there is a note about interrupts. If you get an interrupt and your -device is dead or has been isolated, there is a problem :) - -After much thinking, I decided to leave that to the platform. That is, -the recovery API only precies that: - - - There is no guarantee that interrupt delivery can proceed from any -device on the segment starting from the error detection and until the -restart callback is sent, at which point interrupts are expected to be -fully operational. - - - There is no guarantee that interrupt delivery is stopped, that is, ad -river that gets an interrupts after detecting an error, or that detects -and error within the interrupt handler such that it prevents proper -ack'ing of the interrupt (and thus removal of the source) should just -return IRQ_NOTHANDLED. It's up to the platform to deal with taht -condition, typically by masking the irq source during the duration of -the error handling. It is expected that the platform "knows" which -interrupts are routed to error-management capable slots and can deal -with temporarily disabling that irq number during error processing (this -isn't terribly complex). That means some IRQ latency for other devices -sharing the interrupt, but there is simply no other way. High end -platforms aren't supposed to share interrupts between many devices -anyway :) - - -Revised: 31 May 2005 Linas Vepstas diff --git a/trunk/Documentation/power/swsusp.txt b/trunk/Documentation/power/swsusp.txt index 08c79d4dc540..cd0fcd89a6f0 100644 --- a/trunk/Documentation/power/swsusp.txt +++ b/trunk/Documentation/power/swsusp.txt @@ -212,7 +212,7 @@ A: Try running cat `cat /proc/[0-9]*/maps | grep / | sed 's:.* /:/:' | sort -u` > /dev/null -after resume. swapoff -a; swapon -a may also be useful. +after resume. swapoff -a; swapon -a may also be usefull. Q: What happens to devices during swsusp? They seem to be resumed during system suspend? @@ -323,7 +323,7 @@ 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 useful for debugging suspend-to-disk problems? +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 diff --git a/trunk/Documentation/powerpc/00-INDEX b/trunk/Documentation/powerpc/00-INDEX index d6d65b9bcfe3..e7bea0a407b4 100644 --- a/trunk/Documentation/powerpc/00-INDEX +++ b/trunk/Documentation/powerpc/00-INDEX @@ -8,18 +8,12 @@ please mail me. cpu_features.txt - info on how we support a variety of CPUs with minimal compile-time options. -eeh-pci-error-recovery.txt - - info on PCI Bus EEH Error Recovery -hvcs.txt - - IBM "Hypervisor Virtual Console Server" Installation Guide -mpc52xx.txt - - Linux 2.6.x on MPC52xx family ppc_htab.txt - info about the Linux/PPC /proc/ppc_htab entry -SBC8260_memory_mapping.txt - - EST SBC8260 board info smp.txt - use and state info about Linux/PPC on MP machines +SBC8260_memory_mapping.txt + - EST SBC8260 board info sound.txt - info on sound support under Linux/PPC zImage_layout.txt diff --git a/trunk/Documentation/stable_kernel_rules.txt b/trunk/Documentation/stable_kernel_rules.txt index e409e5d07486..2c81305090df 100644 --- a/trunk/Documentation/stable_kernel_rules.txt +++ b/trunk/Documentation/stable_kernel_rules.txt @@ -1,56 +1,58 @@ Everything you ever wanted to know about Linux 2.6 -stable releases. -Rules on what kind of patches are accepted, and which ones are not, into the -"-stable" tree: +Rules on what kind of patches are accepted, and what ones are not, into +the "-stable" tree: - It must be obviously correct and tested. - - It can not be bigger than 100 lines, with context. + - It can not bigger than 100 lines, with context. - It must fix only one thing. - It must fix a real bug that bothers people (not a, "This could be a - problem..." type thing). + problem..." type thing.) - It must fix a problem that causes a build error (but not for things marked CONFIG_BROKEN), an oops, a hang, data corruption, a real - security issue, or some "oh, that's not good" issue. In short, something - critical. - - No "theoretical race condition" issues, unless an explanation of how the - race can be exploited is also provided. + security issue, or some "oh, that's not good" issue. In short, + something critical. + - No "theoretical race condition" issues, unless an explanation of how + the race can be exploited. - It can not contain any "trivial" fixes in it (spelling changes, - whitespace cleanups, etc). + whitespace cleanups, etc.) - It must be accepted by the relevant subsystem maintainer. - - It must follow the Documentation/SubmittingPatches rules. + - It must follow Documentation/SubmittingPatches rules. Procedure for submitting patches to the -stable tree: - Send the patch, after verifying that it follows the above rules, to stable@kernel.org. - - The sender will receive an ACK when the patch has been accepted into the - queue, or a NAK if the patch is rejected. This response might take a few - days, according to the developer's schedules. - - If accepted, the patch will be added to the -stable queue, for review by - other developers. + - The sender will receive an ack when the patch has been accepted into + the queue, or a nak if the patch is rejected. This response might + take a few days, according to the developer's schedules. + - If accepted, the patch will be added to the -stable queue, for review + by other developers. - Security patches should not be sent to this alias, but instead to the - documented security@kernel.org address. + documented security@kernel.org. Review cycle: - - When the -stable maintainers decide for a review cycle, the patches will be - sent to the review committee, and the maintainer of the affected area of - the patch (unless the submitter is the maintainer of the area) and CC: to - the linux-kernel mailing list. - - The review committee has 48 hours in which to ACK or NAK the patch. + - When the -stable maintainers decide for a review cycle, the patches + will be sent to the review committee, and the maintainer of the + affected area of the patch (unless the submitter is the maintainer of + the area) and CC: to the linux-kernel mailing list. + - The review committee has 48 hours in which to ack or nak the patch. - If the patch is rejected by a member of the committee, or linux-kernel - members object to the patch, bringing up issues that the maintainers and - members did not realize, the patch will be dropped from the queue. - - At the end of the review cycle, the ACKed patches will be added to the - latest -stable release, and a new -stable release will happen. - - Security patches will be accepted into the -stable tree directly from the - security kernel team, and not go through the normal review cycle. + members object to the patch, bringing up issues that the maintainers + and members did not realize, the patch will be dropped from the + queue. + - At the end of the review cycle, the acked patches will be added to + the latest -stable release, and a new -stable release will happen. + - Security patches will be accepted into the -stable tree directly from + the security kernel team, and not go through the normal review cycle. Contact the kernel security team for more details on this procedure. Review committe: - - This is made up of a number of kernel developers who have volunteered for - this task, and a few that haven't. + - This will be made up of a number of kernel developers who have + volunteered for this task, and a few that haven't. + diff --git a/trunk/Documentation/video4linux/CARDLIST.bttv b/trunk/Documentation/video4linux/CARDLIST.bttv index b72706c58a44..330246ac80f8 100644 --- a/trunk/Documentation/video4linux/CARDLIST.bttv +++ b/trunk/Documentation/video4linux/CARDLIST.bttv @@ -141,5 +141,3 @@ 140 -> Osprey 440 [0070:ff07] 141 -> Asound Skyeye PCTV 142 -> Sabrent TV-FM (bttv version) -143 -> Hauppauge ImpactVCB (bt878) [0070:13eb] -144 -> MagicTV diff --git a/trunk/Documentation/video4linux/CARDLIST.cx88 b/trunk/Documentation/video4linux/CARDLIST.cx88 index 56e194f1a0b0..a1017d1a85d4 100644 --- a/trunk/Documentation/video4linux/CARDLIST.cx88 +++ b/trunk/Documentation/video4linux/CARDLIST.cx88 @@ -16,10 +16,10 @@ 15 -> DViCO FusionHDTV DVB-T1 [18ac:db00] 16 -> KWorld LTV883RF 17 -> DViCO FusionHDTV 3 Gold-Q [18ac:d810] - 18 -> Hauppauge Nova-T DVB-T [0070:9002,0070:9001] + 18 -> Hauppauge Nova-T DVB-T [0070:9002] 19 -> Conexant DVB-T reference design [14f1:0187] 20 -> Provideo PV259 [1540:2580] - 21 -> DViCO FusionHDTV DVB-T Plus [18ac:db10,18ac:db11] + 21 -> DViCO FusionHDTV DVB-T Plus [18ac:db10] 22 -> pcHDTV HD3000 HDTV [7063:3000] 23 -> digitalnow DNTV Live! DVB-T [17de:a8a6] 24 -> Hauppauge WinTV 28xxx (Roslyn) models [0070:2801] @@ -35,11 +35,3 @@ 34 -> ATI HDTV Wonder [1002:a101] 35 -> WinFast DTV1000-T [107d:665f] 36 -> AVerTV 303 (M126) [1461:000a] - 37 -> Hauppauge Nova-S-Plus DVB-S [0070:9201,0070:9202] - 38 -> Hauppauge Nova-SE2 DVB-S [0070:9200] - 39 -> KWorld DVB-S 100 [17de:08b2] - 40 -> Hauppauge WinTV-HVR1100 DVB-T/Hybrid [0070:9400,0070:9402] - 41 -> Hauppauge WinTV-HVR1100 DVB-T/Hybrid (Low Profile) [0070:9800,0070:9802] - 42 -> digitalnow DNTV Live! DVB-T Pro [1822:0025] - 43 -> KWorld/VStream XPert DVB-T with cx22702 [17de:08a1] - 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50] diff --git a/trunk/Documentation/video4linux/CARDLIST.saa7134 b/trunk/Documentation/video4linux/CARDLIST.saa7134 index cb3a59bbeb17..efb708ec116a 100644 --- a/trunk/Documentation/video4linux/CARDLIST.saa7134 +++ b/trunk/Documentation/video4linux/CARDLIST.saa7134 @@ -56,7 +56,7 @@ 55 -> LifeView FlyDVB-T DUO [5168:0502,5168:0306] 56 -> Avermedia AVerTV 307 [1461:a70a] 57 -> Avermedia AVerTV GO 007 FM [1461:f31f] - 58 -> ADS Tech Instant TV (saa7135) [1421:0350,1421:0351,1421:0370,1421:1370] + 58 -> ADS Tech Instant TV (saa7135) [1421:0350,1421:0370,1421:1370] 59 -> Kworld/Tevion V-Stream Xpert TV PVR7134 60 -> Typhoon DVB-T Duo Digital/Analog Cardbus [4e42:0502] 61 -> Philips TOUGH DVB-T reference design [1131:2004] @@ -81,5 +81,4 @@ 80 -> ASUS Digimatrix TV [1043:0210] 81 -> Philips Tiger reference design [1131:2018] 82 -> MSI TV@Anywhere plus [1462:6231] - 83 -> Terratec Cinergy 250 PCI TV [153b:1160] - 84 -> LifeView FlyDVB Trio [5168:0319] + diff --git a/trunk/Documentation/video4linux/CARDLIST.tuner b/trunk/Documentation/video4linux/CARDLIST.tuner index 0bf3d5bf9ef8..9d6544ea9f41 100644 --- a/trunk/Documentation/video4linux/CARDLIST.tuner +++ b/trunk/Documentation/video4linux/CARDLIST.tuner @@ -40,7 +40,7 @@ tuner=38 - Philips PAL/SECAM multi (FM1216ME MK3) tuner=39 - LG NTSC (newer TAPC series) tuner=40 - HITACHI V7-J180AT tuner=41 - Philips PAL_MK (FI1216 MK) -tuner=42 - Philips 1236D ATSC/NTSC dual in +tuner=42 - Philips 1236D ATSC/NTSC daul in tuner=43 - Philips NTSC MK3 (FM1236MK3 or FM1236/F) tuner=44 - Philips 4 in 1 (ATI TV Wonder Pro/Conexant) tuner=45 - Microtune 4049 FM5 @@ -50,7 +50,7 @@ tuner=48 - Tenna TNF 8831 BGFF) tuner=49 - Microtune 4042 FI5 ATSC/NTSC dual in tuner=50 - TCL 2002N tuner=51 - Philips PAL/SECAM_D (FM 1256 I-H3) -tuner=52 - Thomson DTT 7610 (ATSC/NTSC) +tuner=52 - Thomson DDT 7610 (ATSC/NTSC) tuner=53 - Philips FQ1286 tuner=54 - tda8290+75 tuner=55 - TCL 2002MB @@ -58,7 +58,7 @@ tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4) tuner=57 - Philips FQ1236A MK4 tuner=58 - Ymec TVision TVF-8531MF/8831MF/8731MF tuner=59 - Ymec TVision TVF-5533MF -tuner=60 - Thomson DTT 761X (ATSC/NTSC) +tuner=60 - Thomson DDT 7611 (ATSC/NTSC) tuner=61 - Tena TNF9533-D/IF/TNF9533-B/DF tuner=62 - Philips TEA5767HN FM Radio tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner diff --git a/trunk/Documentation/x86_64/boot-options.txt b/trunk/Documentation/x86_64/boot-options.txt index 72ab9b99b22c..e566affeed7f 100644 --- a/trunk/Documentation/x86_64/boot-options.txt +++ b/trunk/Documentation/x86_64/boot-options.txt @@ -125,7 +125,7 @@ SMP cpumask=MASK only use cpus with bits set in mask additional_cpus=NUM Allow NUM more CPUs for hotplug - (defaults are specified by the BIOS, see Documentation/x86_64/cpu-hotplug-spec) + (defaults are specified by the BIOS or half the available CPUs) NUMA diff --git a/trunk/Documentation/x86_64/cpu-hotplug-spec b/trunk/Documentation/x86_64/cpu-hotplug-spec deleted file mode 100644 index 5c0fa345e556..000000000000 --- a/trunk/Documentation/x86_64/cpu-hotplug-spec +++ /dev/null @@ -1,21 +0,0 @@ -Firmware support for CPU hotplug under Linux/x86-64 ---------------------------------------------------- - -Linux/x86-64 supports CPU hotplug now. For various reasons Linux wants to -know in advance boot time the maximum number of CPUs that could be plugged -into the system. ACPI 3.0 currently has no official way to supply -this information from the firmware to the operating system. - -In ACPI each CPU needs an LAPIC object in the MADT table (5.2.11.5 in the -ACPI 3.0 specification). ACPI already has the concept of disabled LAPIC -objects by setting the Enabled bit in the LAPIC object to zero. - -For CPU hotplug Linux/x86-64 expects now that any possible future hotpluggable -CPU is already available in the MADT. If the CPU is not available yet -it should have its LAPIC Enabled bit set to 0. Linux will use the number -of disabled LAPICs to compute the maximum number of future CPUs. - -In the worst case the user can overwrite this choice using a command line -option (additional_cpus=...), but it is recommended to supply the correct -number (or a reasonable approximation of it, with erring towards more not less) -in the MADT to avoid manual configuration. diff --git a/trunk/Kbuild b/trunk/Kbuild index 95d6a00bace0..79003918f37f 100644 --- a/trunk/Kbuild +++ b/trunk/Kbuild @@ -22,6 +22,8 @@ sed-$(CONFIG_MIPS) := "/^@@@/s///p" quiet_cmd_offsets = GEN $@ define cmd_offsets + mkdir -p $(dir $@); \ + cat $< | \ (set -e; \ echo "#ifndef __ASM_OFFSETS_H__"; \ echo "#define __ASM_OFFSETS_H__"; \ @@ -32,7 +34,7 @@ define cmd_offsets echo " *"; \ echo " */"; \ echo ""; \ - sed -ne $(sed-y) $<; \ + sed -ne $(sed-y); \ echo ""; \ echo "#endif" ) > $@ endef @@ -43,6 +45,5 @@ arch/$(ARCH)/kernel/asm-offsets.s: arch/$(ARCH)/kernel/asm-offsets.c FORCE $(call if_changed_dep,cc_s_c) $(obj)/$(offsets-file): arch/$(ARCH)/kernel/asm-offsets.s Kbuild - $(Q)mkdir -p $(dir $@) $(call cmd,offsets) diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 71693c5c3137..76dc820bc889 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -546,6 +546,13 @@ W: http://linuxtv.org T: git kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git S: Maintained +BUSLOGIC SCSI DRIVER +P: Leonard N. Zubkoff +M: Leonard N. Zubkoff +L: linux-scsi@vger.kernel.org +W: http://www.dandelion.com/Linux/ +S: Maintained + COMMON INTERNET FILE SYSTEM (CIFS) P: Steve French M: sfrench@samba.org @@ -804,7 +811,6 @@ S: Maintained DOCBOOK FOR DOCUMENTATION P: Martin Waitz M: tali@admingilde.org -T: git http://tali.admingilde.org/git/linux-docbook.git S: Maintained DOUBLETALK DRIVER @@ -1691,6 +1697,7 @@ S: Maintained MARVELL MV64340 ETHERNET DRIVER P: Manish Lachwani +M: Manish_Lachwani@pmc-sierra.com L: linux-mips@linux-mips.org L: netdev@vger.kernel.org S: Supported @@ -1988,13 +1995,6 @@ M: hch@infradead.org L: linux-abi-devel@lists.sourceforge.net S: Maintained -PCI ERROR RECOVERY -P: Linas Vepstas -M: linas@austin.ibm.com -L: linux-kernel@vger.kernel.org -L: linux-pci@atrey.karlin.mff.cuni.cz -S: Supported - PCI SOUND DRIVERS (ES1370, ES1371 and SONICVIBES) P: Thomas Sailer M: sailer@ife.ee.ethz.ch @@ -2359,6 +2359,13 @@ P: Nicolas Pitre M: nico@cam.org S: Maintained +SNA NETWORK LAYER +P: Jay Schulist +M: jschlst@samba.org +L: linux-sna@turbolinux.com +W: http://www.linux-sna.org +S: Supported + SOFTWARE RAID (Multiple Disks) SUPPORT P: Ingo Molnar M: mingo@redhat.com @@ -2480,7 +2487,7 @@ P: Paul Mundt M: lethal@linux-sh.org P: Kazumoto Kojima M: kkojima@rr.iij4u.or.jp -L: linuxsh-dev@lists.sourceforge.net +L: linux-sh@m17n.org W: http://www.linux-sh.org W: http://www.m17n.org/linux-sh/ W: http://www.rr.iij4u.or.jp/~kkojima/linux-sh4.html @@ -2519,19 +2526,6 @@ P: Romain Lievin M: roms@lpg.ticalc.org S: Maintained -TIPC NETWORK LAYER -P: Per Liden -M: per.liden@nospam.ericsson.com -P: Jon Maloy -M: jon.maloy@nospam.ericsson.com -P: Allan Stephens -M: allan.stephens@nospam.windriver.com -L: tipc-discussion@lists.sourceforge.net -W: http://tipc.sourceforge.net/ -W: http://tipc.cslab.ericsson.net/ -T: git tipc.cslab.ericsson.net:/pub/git/tipc.git -S: Maintained - TLAN NETWORK DRIVER P: Samuel Chessman M: chessman@tux.org diff --git a/trunk/Makefile b/trunk/Makefile index deedaf79cdca..599e744d3e33 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -141,6 +141,24 @@ VPATH := $(srctree) export srctree objtree VPATH TOPDIR +nullstring := +space := $(nullstring) # end of line + +# Take the contents of any files called localversion* and the config +# variable CONFIG_LOCALVERSION and append them to KERNELRELEASE. Be +# careful not to include files twice if building in the source +# directory. LOCALVERSION from the command line override all of this + +localver := $(objtree)/localversion* $(srctree)/localversion* +localver := $(sort $(wildcard $(localver))) +# skip backup files (containing '~') +localver := $(foreach f, $(localver), $(if $(findstring ~, $(f)),,$(f))) + +LOCALVERSION = $(subst $(space),, \ + $(shell cat /dev/null $(localver)) \ + $(patsubst "%",%,$(CONFIG_LOCALVERSION))) + +KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)$(LOCALVERSION) # SUBARCH tells the usermode build what the underlying arch is. That is set # first, and if a usermode build is happening, the "ARCH=um" on the command @@ -233,7 +251,7 @@ export KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD # If it is set to "silent_", nothing wil be printed at all, since # the variable $(silent_cmd_cc_o_c) doesn't exist. # -# A simple variant is to prefix commands with $(Q) - that's useful +# A simple variant is to prefix commands with $(Q) - that's usefull # for commands that shall be hidden in non-verbose mode. # # $(Q)ln $@ :< @@ -335,10 +353,7 @@ CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ -ffreestanding AFLAGS := -D__ASSEMBLY__ -# Read KERNELRELEASE from .kernelrelease (if it exists) -KERNELRELEASE = $(shell cat .kernelrelease 2> /dev/null) - -export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE \ +export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION LOCALVERSION KERNELRELEASE \ ARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \ CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE \ HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS @@ -536,6 +551,26 @@ export KBUILD_IMAGE ?= vmlinux # images. Default is /boot, but you can set it to other values export INSTALL_PATH ?= /boot +# If CONFIG_LOCALVERSION_AUTO is set, we automatically perform some tests +# and try to determine if the current source tree is a release tree, of any sort, +# or if is a pure development tree. +# +# A 'release tree' is any tree with a git TAG associated +# with it. The primary goal of this is to make it safe for a native +# git/CVS/SVN user to build a release tree (i.e, 2.6.9) and also to +# continue developing against the current Linus tree, without having the Linus +# tree overwrite the 2.6.9 tree when installed. +# +# Currently, only git is supported. +# Other SCMs can edit scripts/setlocalversion and add the appropriate +# checks as needed. + + +ifdef CONFIG_LOCALVERSION_AUTO + localversion-auto := $(shell $(PERL) $(srctree)/scripts/setlocalversion $(srctree)) + LOCALVERSION := $(LOCALVERSION)$(localversion-auto) +endif + # # INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory # relocations required by build roots. This is not defined in the @@ -747,50 +782,6 @@ $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ; $(vmlinux-dirs): prepare scripts $(Q)$(MAKE) $(build)=$@ -# Build the kernel release string -# The KERNELRELEASE is stored in a file named .kernelrelease -# to be used when executing for example make install or make modules_install -# -# Take the contents of any files called localversion* and the config -# variable CONFIG_LOCALVERSION and append them to KERNELRELEASE. -# LOCALVERSION from the command line override all of this - -nullstring := -space := $(nullstring) # end of line - -___localver = $(objtree)/localversion* $(srctree)/localversion* -__localver = $(sort $(wildcard $(___localver))) -# skip backup files (containing '~') -_localver = $(foreach f, $(__localver), $(if $(findstring ~, $(f)),,$(f))) - -localver = $(subst $(space),, \ - $(shell cat /dev/null $(_localver)) \ - $(patsubst "%",%,$(CONFIG_LOCALVERSION))) - -# If CONFIG_LOCALVERSION_AUTO is set scripts/setlocalversion is called -# and if the SCM is know a tag from the SCM is appended. -# The appended tag is determinded by the SCM used. -# -# Currently, only git is supported. -# Other SCMs can edit scripts/setlocalversion and add the appropriate -# checks as needed. -ifdef CONFIG_LOCALVERSION_AUTO - _localver-auto = $(shell $(CONFIG_SHELL) \ - $(srctree)/scripts/setlocalversion $(srctree)) - localver-auto = $(LOCALVERSION)$(_localver-auto) -endif - -localver-full = $(localver)$(localver-auto) - -# Store (new) KERNELRELASE string in .kernelrelease -kernelrelease = \ - $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)$(localver-full) -.kernelrelease: FORCE - $(Q)rm -f .kernelrelease - $(Q)echo $(kernelrelease) > .kernelrelease - $(Q)echo " Building kernel $(kernelrelease)" - - # Things we need to do before we recursively start building the kernel # or the modules are listed in "prepare". # A multi level approach is used. prepareN is processed before prepareN-1. @@ -807,7 +798,8 @@ kernelrelease = \ # and if so do: # 1) Check that make has not been executed in the kernel src $(srctree) # 2) Create the include2 directory, used for the second asm symlink -prepare3: .kernelrelease + +prepare3: ifneq ($(KBUILD_SRC),) @echo ' Using $(srctree) as source for kernel' $(Q)if [ -f $(srctree)/.config ]; then \ @@ -992,9 +984,9 @@ CLEAN_FILES += vmlinux System.map \ # Directories & files removed with 'make mrproper' MRPROPER_DIRS += include/config include2 -MRPROPER_FILES += .config .config.old include/asm .version .old_version \ +MRPROPER_FILES += .config .config.old include/asm .version \ include/linux/autoconf.h include/linux/version.h \ - .kernelrelease Module.symvers tags TAGS cscope* + Module.symvers tags TAGS cscope* # clean - Delete most, but leave enough to build external modules # @@ -1080,7 +1072,6 @@ help: @echo ' tags/TAGS - Generate tags file for editors' @echo ' cscope - Generate cscope index' @echo ' kernelrelease - Output the release version string' - @echo ' kernelversion - Output the version stored in Makefile' @echo '' @echo 'Static analysers' @echo ' buildcheck - List dangling references to vmlinux discarded sections' @@ -1302,8 +1293,6 @@ checkstack: kernelrelease: @echo $(KERNELRELEASE) -kernelversion: - @echo $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) # FIXME Should go into a make.lib or something # =========================================================================== diff --git a/trunk/arch/alpha/kernel/alpha_ksyms.c b/trunk/arch/alpha/kernel/alpha_ksyms.c index 1898ea79d0e2..f3e98f837784 100644 --- a/trunk/arch/alpha/kernel/alpha_ksyms.c +++ b/trunk/arch/alpha/kernel/alpha_ksyms.c @@ -40,6 +40,7 @@ #include extern struct hwrpb_struct *hwrpb; +extern void dump_thread(struct pt_regs *, struct user *); extern spinlock_t rtc_lock; /* these are C runtime functions with special calling conventions: */ diff --git a/trunk/arch/alpha/kernel/pci-noop.c b/trunk/arch/alpha/kernel/pci-noop.c index fff5cf93e816..9903e3a79102 100644 --- a/trunk/arch/alpha/kernel/pci-noop.c +++ b/trunk/arch/alpha/kernel/pci-noop.c @@ -7,7 +7,6 @@ #include #include #include -#include #include #include #include diff --git a/trunk/arch/alpha/kernel/process.c b/trunk/arch/alpha/kernel/process.c index 9924fd07743a..abb739b88ed1 100644 --- a/trunk/arch/alpha/kernel/process.c +++ b/trunk/arch/alpha/kernel/process.c @@ -276,7 +276,7 @@ copy_thread(int nr, unsigned long clone_flags, unsigned long usp, { extern void ret_from_fork(void); - struct thread_info *childti = task_thread_info(p); + struct thread_info *childti = p->thread_info; struct pt_regs * childregs; struct switch_stack * childstack, *stack; unsigned long stack_offset, settls; @@ -285,7 +285,7 @@ copy_thread(int nr, unsigned long clone_flags, unsigned long usp, if (!(regs->ps & 8)) stack_offset = (PAGE_SIZE-1) & (unsigned long) regs; childregs = (struct pt_regs *) - (stack_offset + PAGE_SIZE + task_stack_page(p)); + (stack_offset + PAGE_SIZE + (long) childti); *childregs = *regs; settls = regs->r20; @@ -428,15 +428,30 @@ dump_elf_thread(elf_greg_t *dest, struct pt_regs *pt, struct thread_info *ti) int dump_elf_task(elf_greg_t *dest, struct task_struct *task) { - dump_elf_thread(dest, task_pt_regs(task), task_thread_info(task)); + struct thread_info *ti; + struct pt_regs *pt; + + ti = task->thread_info; + pt = (struct pt_regs *)((unsigned long)ti + 2*PAGE_SIZE) - 1; + + dump_elf_thread(dest, pt, ti); + return 1; } int dump_elf_task_fp(elf_fpreg_t *dest, struct task_struct *task) { - struct switch_stack *sw = (struct switch_stack *)task_pt_regs(task) - 1; + struct thread_info *ti; + struct pt_regs *pt; + struct switch_stack *sw; + + ti = task->thread_info; + pt = (struct pt_regs *)((unsigned long)ti + 2*PAGE_SIZE) - 1; + sw = (struct switch_stack *)pt - 1; + memcpy(dest, sw->fp, 32 * 8); + return 1; } @@ -477,8 +492,8 @@ do_sys_execve(char __user *ufilename, char __user * __user *argv, unsigned long thread_saved_pc(task_t *t) { - unsigned long base = (unsigned long)task_stack_page(t); - unsigned long fp, sp = task_thread_info(t)->pcb.ksp; + unsigned long base = (unsigned long)t->thread_info; + unsigned long fp, sp = t->thread_info->pcb.ksp; if (sp > base && sp+6*8 < base + 16*1024) { fp = ((unsigned long*)sp)[6]; @@ -508,7 +523,7 @@ get_wchan(struct task_struct *p) pc = thread_saved_pc(p); if (in_sched_functions(pc)) { - schedule_frame = ((unsigned long *)task_thread_info(p)->pcb.ksp)[6]; + schedule_frame = ((unsigned long *)p->thread_info->pcb.ksp)[6]; return ((unsigned long *)schedule_frame)[12]; } return pc; diff --git a/trunk/arch/alpha/kernel/ptrace.c b/trunk/arch/alpha/kernel/ptrace.c index 0cd060598f9a..9969d212e94d 100644 --- a/trunk/arch/alpha/kernel/ptrace.c +++ b/trunk/arch/alpha/kernel/ptrace.c @@ -72,13 +72,6 @@ enum { REG_R0 = 0, REG_F0 = 32, REG_FPCR = 63, REG_PC = 64 }; -#define PT_REG(reg) \ - (PAGE_SIZE*2 - sizeof(struct pt_regs) + offsetof(struct pt_regs, reg)) - -#define SW_REG(reg) \ - (PAGE_SIZE*2 - sizeof(struct pt_regs) - sizeof(struct switch_stack) \ - + offsetof(struct switch_stack, reg)) - static int regoff[] = { PT_REG( r0), PT_REG( r1), PT_REG( r2), PT_REG( r3), PT_REG( r4), PT_REG( r5), PT_REG( r6), PT_REG( r7), @@ -110,14 +103,14 @@ get_reg_addr(struct task_struct * task, unsigned long regno) unsigned long *addr; if (regno == 30) { - addr = &task_thread_info(task)->pcb.usp; + addr = &task->thread_info->pcb.usp; } else if (regno == 65) { - addr = &task_thread_info(task)->pcb.unique; + addr = &task->thread_info->pcb.unique; } else if (regno == 31 || regno > 65) { zero = 0; addr = &zero; } else { - addr = task_stack_page(task) + regoff[regno]; + addr = (void *)task->thread_info + regoff[regno]; } return addr; } @@ -132,7 +125,7 @@ get_reg(struct task_struct * task, unsigned long regno) if (regno == 63) { unsigned long fpcr = *get_reg_addr(task, regno); unsigned long swcr - = task_thread_info(task)->ieee_state & IEEE_SW_MASK; + = task->thread_info->ieee_state & IEEE_SW_MASK; swcr = swcr_update_status(swcr, fpcr); return fpcr | swcr; } @@ -146,8 +139,8 @@ static int put_reg(struct task_struct *task, unsigned long regno, unsigned long data) { if (regno == 63) { - task_thread_info(task)->ieee_state - = ((task_thread_info(task)->ieee_state & ~IEEE_SW_MASK) + task->thread_info->ieee_state + = ((task->thread_info->ieee_state & ~IEEE_SW_MASK) | (data & IEEE_SW_MASK)); data = (data & FPCR_DYN_MASK) | ieee_swcr_to_fpcr(data); } @@ -195,35 +188,35 @@ ptrace_set_bpt(struct task_struct * child) * branch (emulation can be tricky for fp branches). */ displ = ((s32)(insn << 11)) >> 9; - task_thread_info(child)->bpt_addr[nsaved++] = pc + 4; + child->thread_info->bpt_addr[nsaved++] = pc + 4; if (displ) /* guard against unoptimized code */ - task_thread_info(child)->bpt_addr[nsaved++] + child->thread_info->bpt_addr[nsaved++] = pc + 4 + displ; DBG(DBG_BPT, ("execing branch\n")); } else if (op_code == 0x1a) { reg_b = (insn >> 16) & 0x1f; - task_thread_info(child)->bpt_addr[nsaved++] = get_reg(child, reg_b); + child->thread_info->bpt_addr[nsaved++] = get_reg(child, reg_b); DBG(DBG_BPT, ("execing jump\n")); } else { - task_thread_info(child)->bpt_addr[nsaved++] = pc + 4; + child->thread_info->bpt_addr[nsaved++] = pc + 4; DBG(DBG_BPT, ("execing normal insn\n")); } /* install breakpoints: */ for (i = 0; i < nsaved; ++i) { - res = read_int(child, task_thread_info(child)->bpt_addr[i], + res = read_int(child, child->thread_info->bpt_addr[i], (int *) &insn); if (res < 0) return res; - task_thread_info(child)->bpt_insn[i] = insn; + child->thread_info->bpt_insn[i] = insn; DBG(DBG_BPT, (" -> next_pc=%lx\n", - task_thread_info(child)->bpt_addr[i])); - res = write_int(child, task_thread_info(child)->bpt_addr[i], + child->thread_info->bpt_addr[i])); + res = write_int(child, child->thread_info->bpt_addr[i], BREAKINST); if (res < 0) return res; } - task_thread_info(child)->bpt_nsaved = nsaved; + child->thread_info->bpt_nsaved = nsaved; return 0; } @@ -234,9 +227,9 @@ ptrace_set_bpt(struct task_struct * child) int ptrace_cancel_bpt(struct task_struct * child) { - int i, nsaved = task_thread_info(child)->bpt_nsaved; + int i, nsaved = child->thread_info->bpt_nsaved; - task_thread_info(child)->bpt_nsaved = 0; + child->thread_info->bpt_nsaved = 0; if (nsaved > 2) { printk("ptrace_cancel_bpt: bogus nsaved: %d!\n", nsaved); @@ -244,8 +237,8 @@ ptrace_cancel_bpt(struct task_struct * child) } for (i = 0; i < nsaved; ++i) { - write_int(child, task_thread_info(child)->bpt_addr[i], - task_thread_info(child)->bpt_insn[i]); + write_int(child, child->thread_info->bpt_addr[i], + child->thread_info->bpt_insn[i]); } return (nsaved != 0); } @@ -362,7 +355,7 @@ do_sys_ptrace(long request, long pid, long addr, long data, if (!valid_signal(data)) break; /* Mark single stepping. */ - task_thread_info(child)->bpt_nsaved = -1; + child->thread_info->bpt_nsaved = -1; clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); child->exit_code = data; wake_up_process(child); diff --git a/trunk/arch/alpha/kernel/smp.c b/trunk/arch/alpha/kernel/smp.c index 4b873527ce1c..da0be3465791 100644 --- a/trunk/arch/alpha/kernel/smp.c +++ b/trunk/arch/alpha/kernel/smp.c @@ -302,7 +302,7 @@ secondary_cpu_start(int cpuid, struct task_struct *idle) + hwrpb->processor_offset + cpuid * hwrpb->processor_size); hwpcb = (struct pcb_struct *) cpu->hwpcb; - ipcb = &task_thread_info(idle)->pcb; + ipcb = &idle->thread_info->pcb; /* Initialize the CPU's HWPCB to something just good enough for us to get started. Immediately after starting, we'll swpctx diff --git a/trunk/arch/alpha/kernel/sys_alcor.c b/trunk/arch/alpha/kernel/sys_alcor.c index d7f0e97fe56f..145dcde143ae 100644 --- a/trunk/arch/alpha/kernel/sys_alcor.c +++ b/trunk/arch/alpha/kernel/sys_alcor.c @@ -254,7 +254,7 @@ alcor_init_pci(void) * motherboard, by looking for a 21040 TULIP in slot 6, which is * built into XLT and BRET/MAVERICK, but not available on ALCOR. */ - dev = pci_get_device(PCI_VENDOR_ID_DEC, + dev = pci_find_device(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP, NULL); if (dev && dev->devfn == PCI_DEVFN(6,0)) { @@ -262,7 +262,6 @@ alcor_init_pci(void) printk(KERN_INFO "%s: Detected AS500 or XLT motherboard.\n", __FUNCTION__); } - pci_dev_put(dev); } diff --git a/trunk/arch/alpha/kernel/sys_sio.c b/trunk/arch/alpha/kernel/sys_sio.c index 131a2d9f79d3..47df48a6ddb7 100644 --- a/trunk/arch/alpha/kernel/sys_sio.c +++ b/trunk/arch/alpha/kernel/sys_sio.c @@ -105,7 +105,7 @@ sio_collect_irq_levels(void) struct pci_dev *dev = NULL; /* Iterate through the devices, collecting IRQ levels. */ - for_each_pci_dev(dev) { + while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) { if ((dev->class >> 16 == PCI_BASE_CLASS_BRIDGE) && (dev->class >> 8 != PCI_CLASS_BRIDGE_PCMCIA)) continue; @@ -229,8 +229,8 @@ alphabook1_init_pci(void) */ dev = NULL; - while ((dev = pci_get_device(PCI_VENDOR_ID_NCR, PCI_ANY_ID, dev))) { - if (dev->device == PCI_DEVICE_ID_NCR_53C810 + while ((dev = pci_find_device(PCI_VENDOR_ID_NCR, PCI_ANY_ID, dev))) { + if (dev->device == PCI_DEVICE_ID_NCR_53C810 || dev->device == PCI_DEVICE_ID_NCR_53C815 || dev->device == PCI_DEVICE_ID_NCR_53C820 || dev->device == PCI_DEVICE_ID_NCR_53C825) { diff --git a/trunk/arch/alpha/mm/init.c b/trunk/arch/alpha/mm/init.c index 486d7945583d..90752f6d8867 100644 --- a/trunk/arch/alpha/mm/init.c +++ b/trunk/arch/alpha/mm/init.c @@ -7,7 +7,6 @@ /* 2.3.x zone allocator, 1999 Andrea Arcangeli */ #include -#include #include #include #include diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 50b9afa8ae6d..7a74e3e5f916 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -99,6 +99,13 @@ config ARCH_EBSA110 Ethernet interface, two PCMCIA sockets, two serial ports and a parallel port. +config ARCH_CAMELOT + bool "Epxa10db" + help + This enables support for Altera's Excalibur XA10 development board. + If you would like to build your kernel to run on one of these boards + then you must say 'Y' here. Otherwise say 'N' + config ARCH_FOOTBRIDGE bool "FootBridge" select FOOTBRIDGE @@ -206,16 +213,12 @@ config ARCH_AAEC2000 help This enables support for systems based on the Agilent AAEC-2000 -config ARCH_AT91RM9200 - bool "AT91RM9200" - help - Say Y here if you intend to run this kernel on an AT91RM9200-based - board. - endchoice source "arch/arm/mach-clps711x/Kconfig" +source "arch/arm/mach-epxa10db/Kconfig" + source "arch/arm/mach-footbridge/Kconfig" source "arch/arm/mach-integrator/Kconfig" @@ -250,8 +253,6 @@ source "arch/arm/mach-aaec2000/Kconfig" source "arch/arm/mach-realview/Kconfig" -source "arch/arm/mach-at91rm9200/Kconfig" - # Definitions to make life easier config ARCH_ACORN bool @@ -417,8 +418,7 @@ config LEDS ARCH_EBSA285 || ARCH_IMX || ARCH_INTEGRATOR || \ ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \ ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \ - ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \ - ARCH_AT91RM9200 + ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE help If you say Y here, the LEDs on your machine will be used to provide useful information about your current system status. diff --git a/trunk/arch/arm/Makefile b/trunk/arch/arm/Makefile index 1fa2a1011584..afaf3a1e903c 100644 --- a/trunk/arch/arm/Makefile +++ b/trunk/arch/arm/Makefile @@ -84,6 +84,7 @@ endif machine-$(CONFIG_ARCH_PXA) := pxa machine-$(CONFIG_ARCH_L7200) := l7200 machine-$(CONFIG_ARCH_INTEGRATOR) := integrator + machine-$(CONFIG_ARCH_CAMELOT) := epxa10db textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000 machine-$(CONFIG_ARCH_CLPS711X) := clps711x machine-$(CONFIG_ARCH_IOP3XX) := iop3xx @@ -99,7 +100,6 @@ endif machine-$(CONFIG_ARCH_H720X) := h720x machine-$(CONFIG_ARCH_AAEC2000) := aaec2000 machine-$(CONFIG_ARCH_REALVIEW) := realview - machine-$(CONFIG_ARCH_AT91RM9200) := at91rm9200 ifeq ($(CONFIG_ARCH_EBSA110),y) # This is what happens if you forget the IOCS16 line. diff --git a/trunk/arch/arm/boot/compressed/Makefile b/trunk/arch/arm/boot/compressed/Makefile index 35ffe0f4ece7..6b505ce41a75 100644 --- a/trunk/arch/arm/boot/compressed/Makefile +++ b/trunk/arch/arm/boot/compressed/Makefile @@ -21,6 +21,10 @@ ifeq ($(CONFIG_ARCH_SHARK),y) OBJS += head-shark.o ofw-shark.o endif +ifeq ($(CONFIG_ARCH_CAMELOT),y) +OBJS += head-epxa10db.o +endif + ifeq ($(CONFIG_ARCH_L7200),y) OBJS += head-l7200.o endif @@ -46,10 +50,6 @@ ifeq ($(CONFIG_PXA_SHARPSL),y) OBJS += head-sharpsl.o endif -ifeq ($(CONFIG_ARCH_AT91RM9200),y) -OBJS += head-at91rm9200.o -endif - ifeq ($(CONFIG_DEBUG_ICEDCC),y) OBJS += ice-dcc.o endif diff --git a/trunk/arch/arm/boot/compressed/head-at91rm9200.S b/trunk/arch/arm/boot/compressed/head-at91rm9200.S deleted file mode 100644 index 2119ea62b547..000000000000 --- a/trunk/arch/arm/boot/compressed/head-at91rm9200.S +++ /dev/null @@ -1,57 +0,0 @@ -/* - * linux/arch/arm/boot/compressed/head-at91rm9200.S - * - * Copyright (C) 2003 SAN People - * - * 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 - - .section ".start", "ax" - - @ Atmel AT91RM9200-DK : 262 - mov r3, #(MACH_TYPE_AT91RM9200DK & 0xff) - orr r3, r3, #(MACH_TYPE_AT91RM9200DK & 0xff00) - cmp r7, r3 - beq 99f - - @ Cogent CSB337 : 399 - mov r3, #(MACH_TYPE_CSB337 & 0xff) - orr r3, r3, #(MACH_TYPE_CSB337 & 0xff00) - cmp r7, r3 - beq 99f - - @ Cogent CSB637 : 648 - mov r3, #(MACH_TYPE_CSB637 & 0xff) - orr r3, r3, #(MACH_TYPE_CSB637 & 0xff00) - cmp r7, r3 - beq 99f - - @ Atmel AT91RM9200-EK : 705 - mov r3, #(MACH_TYPE_AT91RM9200EK & 0xff) - orr r3, r3, #(MACH_TYPE_AT91RM9200EK & 0xff00) - cmp r7, r3 - beq 99f - - @ Conitec Carmeva : 769 - mov r3, #(MACH_TYPE_CARMEVA & 0xff) - orr r3, r3, #(MACH_TYPE_CARMEVA & 0xff00) - cmp r7, r3 - beq 99f - - @ KwikByte KB920x : 612 - mov r3, #(MACH_TYPE_KB9200 & 0xff) - orr r3, r3, #(MACH_TYPE_KB9200 & 0xff00) - cmp r7, r3 - beq 99f - - @ Unknown board, use the AT91RM9200DK board - @ mov r7, #MACH_TYPE_AT91RM9200 - mov r7, #(MACH_TYPE_AT91RM9200DK & 0xff) - orr r7, r7, #(MACH_TYPE_AT91RM9200DK & 0xff00) - -99: diff --git a/trunk/arch/arm/boot/compressed/head-epxa10db.S b/trunk/arch/arm/boot/compressed/head-epxa10db.S new file mode 100644 index 000000000000..757681f12a39 --- /dev/null +++ b/trunk/arch/arm/boot/compressed/head-epxa10db.S @@ -0,0 +1,5 @@ +#include +#include + + .section ".start", "ax" + mov r7, #MACH_TYPE_CAMELOT diff --git a/trunk/arch/arm/boot/compressed/head.S b/trunk/arch/arm/boot/compressed/head.S index aaa47400eb9c..6abafb6f1844 100644 --- a/trunk/arch/arm/boot/compressed/head.S +++ b/trunk/arch/arm/boot/compressed/head.S @@ -84,7 +84,7 @@ kputc #'\n' kphex r5, 8 /* decompressed kernel start */ kputc #'-' - kphex r9, 8 /* decompressed kernel end */ + kphex r8, 8 /* decompressed kernel end */ kputc #'>' kphex r4, 8 /* kernel execution address */ kputc #'\n' @@ -116,7 +116,7 @@ start: .word start @ absolute load/run zImage address .word _edata @ zImage end address 1: mov r7, r1 @ save architecture ID - mov r8, r2 @ save atags pointer + mov r8, #0 @ save r0 #ifndef __ARM_ARCH_2__ /* @@ -144,7 +144,7 @@ not_angel: /* * some architecture specific code can be inserted - * by the linker here, but it should preserve r7, r8, and r9. + * by the linker here, but it should preserve r7 and r8. */ .text @@ -249,17 +249,16 @@ not_relocated: mov r0, #0 * r5 = decompressed kernel start * r6 = processor ID * r7 = architecture ID - * r8 = atags pointer - * r9-r14 = corrupted + * r8-r14 = unused */ add r1, r5, r0 @ end of decompressed kernel adr r2, reloc_start ldr r3, LC1 add r3, r2, r3 -1: ldmia r2!, {r9 - r14} @ copy relocation code - stmia r1!, {r9 - r14} - ldmia r2!, {r9 - r14} - stmia r1!, {r9 - r14} +1: ldmia r2!, {r8 - r13} @ copy relocation code + stmia r1!, {r8 - r13} + ldmia r2!, {r8 - r13} + stmia r1!, {r8 - r13} cmp r2, r3 blo 1b @@ -309,12 +308,11 @@ params: ldr r0, =params_phys * r4 = kernel execution address * r6 = processor ID * r7 = architecture number - * r8 = atags pointer - * r9 = run-time address of "start" (???) + * r8 = run-time address of "start" * On exit, - * r1, r2, r3, r9, r10, r12 corrupted + * r1, r2, r3, r8, r9, r12 corrupted * This routine must preserve: - * r4, r5, r6, r7, r8 + * r4, r5, r6, r7 */ .align 5 cache_on: mov r3, #8 @ cache_on function @@ -328,15 +326,15 @@ __setup_mmu: sub r3, r4, #16384 @ Page directory size * bits for the RAM area only. */ mov r0, r3 - mov r9, r0, lsr #18 - mov r9, r9, lsl #18 @ start of RAM - add r10, r9, #0x10000000 @ a reasonable RAM size + mov r8, r0, lsr #18 + mov r8, r8, lsl #18 @ start of RAM + add r9, r8, #0x10000000 @ a reasonable RAM size mov r1, #0x12 orr r1, r1, #3 << 10 add r2, r3, #16384 1: cmp r1, r8 @ if virt > start of RAM orrhs r1, r1, #0x0c @ set cacheable, bufferable - cmp r1, r10 @ if virt > end of RAM + cmp r1, r9 @ if virt > end of RAM bichs r1, r1, #0x0c @ clear cacheable, bufferable str r1, [r0], #4 @ 1:1 mapping add r1, r1, #1048576 @@ -405,28 +403,26 @@ __common_cache_on: * r5 = decompressed kernel start * r6 = processor ID * r7 = architecture ID - * r8 = atags pointer - * r9-r14 = corrupted + * r8-r14 = unused */ .align 5 -reloc_start: add r9, r5, r0 +reloc_start: add r8, r5, r0 debug_reloc_start mov r1, r4 1: .rept 4 - ldmia r5!, {r0, r2, r3, r10 - r14} @ relocate kernel - stmia r1!, {r0, r2, r3, r10 - r14} + ldmia r5!, {r0, r2, r3, r9 - r13} @ relocate kernel + stmia r1!, {r0, r2, r3, r9 - r13} .endr - cmp r5, r9 + cmp r5, r8 blo 1b debug_reloc_end call_kernel: bl cache_clean_flush bl cache_off - mov r0, #0 @ must be zero + mov r0, #0 mov r1, r7 @ restore architecture number - mov r2, r8 @ restore atags pointer mov pc, r4 @ call kernel /* diff --git a/trunk/arch/arm/common/rtctime.c b/trunk/arch/arm/common/rtctime.c index 48b1e19b131f..72b03f201eb9 100644 --- a/trunk/arch/arm/common/rtctime.c +++ b/trunk/arch/arm/common/rtctime.c @@ -17,9 +17,7 @@ #include #include #include -#include #include -#include #include #include @@ -36,7 +34,7 @@ static unsigned long rtc_irq_data; /* * rtc_sem protects rtc_inuse and rtc_ops */ -static DEFINE_MUTEX(rtc_mutex); +static DECLARE_MUTEX(rtc_sem); static unsigned long rtc_inuse; static struct rtc_ops *rtc_ops; @@ -357,7 +355,7 @@ static int rtc_open(struct inode *inode, struct file *file) { int ret; - mutex_lock(&rtc_mutex); + down(&rtc_sem); if (rtc_inuse) { ret = -EBUSY; @@ -375,7 +373,7 @@ static int rtc_open(struct inode *inode, struct file *file) rtc_inuse = 1; } } - mutex_unlock(&rtc_mutex); + up(&rtc_sem); return ret; } @@ -481,7 +479,7 @@ int register_rtc(struct rtc_ops *ops) { int ret = -EBUSY; - mutex_lock(&rtc_mutex); + down(&rtc_sem); if (rtc_ops == NULL) { rtc_ops = ops; @@ -490,7 +488,7 @@ int register_rtc(struct rtc_ops *ops) create_proc_read_entry("driver/rtc", 0, NULL, rtc_read_proc, ops); } - mutex_unlock(&rtc_mutex); + up(&rtc_sem); return ret; } @@ -498,12 +496,12 @@ EXPORT_SYMBOL(register_rtc); void unregister_rtc(struct rtc_ops *rtc) { - mutex_lock(&rtc_mutex); + down(&rtc_sem); if (rtc == rtc_ops) { remove_proc_entry("driver/rtc", NULL); misc_deregister(&rtc_miscdev); rtc_ops = NULL; } - mutex_unlock(&rtc_mutex); + up(&rtc_sem); } EXPORT_SYMBOL(unregister_rtc); diff --git a/trunk/arch/arm/configs/assabet_defconfig b/trunk/arch/arm/configs/assabet_defconfig index 089c9d598409..ccbb4c0d58c4 100644 --- a/trunk/arch/arm/configs/assabet_defconfig +++ b/trunk/arch/arm/configs/assabet_defconfig @@ -63,6 +63,7 @@ CONFIG_OBSOLETE_MODPARM=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/at91rm9200dk_defconfig b/trunk/arch/arm/configs/at91rm9200dk_defconfig deleted file mode 100644 index 5cdd13acf8ff..000000000000 --- a/trunk/arch/arm/configs/at91rm9200dk_defconfig +++ /dev/null @@ -1,1009 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.15 -# Mon Jan 9 20:54:30 2006 -# -CONFIG_ARM=y -CONFIG_MMU=y -CONFIG_UID16=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_GENERIC_CALIBRATE_DELAY=y - -# -# Code maturity level options -# -CONFIG_EXPERIMENTAL=y -CONFIG_CLEAN_COMPILE=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 - -# -# General setup -# -CONFIG_LOCALVERSION="" -CONFIG_LOCALVERSION_AUTO=y -# CONFIG_SWAP is not set -CONFIG_SYSVIPC=y -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -CONFIG_SYSCTL=y -# CONFIG_AUDIT is not set -CONFIG_HOTPLUG=y -CONFIG_KOBJECT_UEVENT=y -# CONFIG_IKCONFIG is not set -CONFIG_INITRAMFS_SOURCE="" -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_EMBEDDED is not set -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_SHMEM=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 -# CONFIG_TINY_SHMEM is not set -CONFIG_BASE_SMALL=0 - -# -# Loadable module support -# -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_OBSOLETE_MODPARM=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_KMOD=y - -# -# Block layer -# - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -# CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_IOSCHED_CFQ is not set -CONFIG_DEFAULT_AS=y -# CONFIG_DEFAULT_DEADLINE is not set -# CONFIG_DEFAULT_CFQ is not set -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="anticipatory" - -# -# System Type -# -# CONFIG_ARCH_CLPS7500 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CO285 is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_CAMELOT is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_IOP3XX is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_IXP2000 is not set -# CONFIG_ARCH_L7200 is not set -# CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_AAEC2000 is not set -CONFIG_ARCH_AT91RM9200=y - -# -# AT91RM9200 Implementations -# - -# -# AT91RM9200 Board Type -# -CONFIG_ARCH_AT91RM9200DK=y -# CONFIG_MACH_AT91RM9200EK is not set -# CONFIG_MACH_CSB337 is not set -# CONFIG_MACH_CSB637 is not set -# CONFIG_MACH_CARMEVA is not set -# CONFIG_MACH_KB9200 is not set -# CONFIG_MACH_ATEB9200 is not set - -# -# AT91RM9200 Feature Selections -# -CONFIG_AT91_PROGRAMMABLE_CLOCKS=y - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_ARM920T=y -CONFIG_CPU_32v4=y -CONFIG_CPU_ABRT_EV4T=y -CONFIG_CPU_CACHE_V4WT=y -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_COPY_V4WB=y -CONFIG_CPU_TLB_V4WBI=y - -# -# Processor Features -# -# CONFIG_ARM_THUMB is not set -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_WRITETHROUGH is not set - -# -# Bus support -# -CONFIG_ISA_DMA_API=y - -# -# PCCARD (PCMCIA/CardBus) support -# -CONFIG_PCCARD=y -# CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA=y -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y - -# -# PC-card bridges -# -CONFIG_AT91_CF=y - -# -# Kernel Features -# -# 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_SPLIT_PTLOCK_CPUS=4096 -CONFIG_LEDS=y -CONFIG_LEDS_TIMER=y -# CONFIG_LEDS_CPU is not set -CONFIG_ALIGNMENT_TRAP=y - -# -# Boot options -# -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x20410000,3145728 root=/dev/ram0 rw" -# CONFIG_XIP_KERNEL is not set - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -# CONFIG_FPE_FASTFPE is not set - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set -# CONFIG_ARTHUR is not set - -# -# Power management options -# -# CONFIG_PM is not set - -# -# Networking -# -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 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 - -# -# QoS and/or fair queueing -# -# CONFIG_NET_SCHED is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN 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 -# - -# -# Generic Driver Options -# -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=y -# CONFIG_DEBUG_DRIVER is not set - -# -# Connector - unified userspace <-> kernelspace linker -# -# CONFIG_CONNECTOR is not set - -# -# Memory Technology Devices (MTD) -# -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -# 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 - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set - -# -# RAM/ROM/Flash chip drivers -# -CONFIG_MTD_CFI=y -CONFIG_MTD_JEDECPROBE=y -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 is not set -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_CFI_AMDSTD_RETRY=0 -# 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 - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_PHYSMAP_START=0x10000000 -CONFIG_MTD_PHYSMAP_LEN=0x200000 -CONFIG_MTD_PHYSMAP_BANKWIDTH=2 -# CONFIG_MTD_ARM_INTEGRATOR is not set -# CONFIG_MTD_IMPA7 is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# 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 -CONFIG_MTD_AT91_DATAFLASH=y -CONFIG_MTD_AT91_DATAFLASH_CARD=y - -# -# NAND Flash Device Drivers -# -# CONFIG_MTD_NAND is not set - -# -# OneNAND Flash Device Drivers -# -# CONFIG_MTD_ONENAND is not set - -# -# Parallel port support -# -# CONFIG_PARPORT is not set - -# -# Plug and Play support -# - -# -# Block devices -# -# CONFIG_BLK_DEV_COW_COMMON is not set -# CONFIG_BLK_DEV_LOOP is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_UB is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=8192 -CONFIG_BLK_DEV_INITRD=y -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set - -# -# ATA/ATAPI/MFM/RLL support -# -# CONFIG_IDE is not set - -# -# SCSI device support -# -# CONFIG_RAID_ATTRS is not set -# CONFIG_SCSI is not set - -# -# Multi-device support (RAID and LVM) -# -# CONFIG_MD is not set - -# -# Fusion MPT device support -# -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# - -# -# I2O device support -# - -# -# Network device support -# -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) -# -CONFIG_NET_ETHERNET=y -CONFIG_MII=y -CONFIG_ARM_AT91_ETHER=y -# CONFIG_SMC91X is not set -# CONFIG_DM9000 is not set - -# -# Ethernet (1000 Mbit) -# - -# -# Ethernet (10000 Mbit) -# - -# -# Token Ring devices -# - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set - -# -# PCMCIA network device support -# -# CONFIG_NET_PCMCIA is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set - -# -# ISDN subsystem -# -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=y - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_TSDEV is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -# CONFIG_INPUT_MISC is not set - -# -# Hardware I/O ports -# -# CONFIG_SERIO is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -# CONFIG_SERIAL_8250 is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_AT91=y -CONFIG_SERIAL_AT91_CONSOLE=y -# CONFIG_SERIAL_AT91_TTYAT is not set -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 - -# -# IPMI -# -# CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# -CONFIG_WATCHDOG=y -CONFIG_WATCHDOG_NOWAYOUT=y - -# -# Watchdog Device Drivers -# -# CONFIG_SOFT_WATCHDOG is not set -CONFIG_AT91_WATCHDOG=y - -# -# USB-based Watchdog Cards -# -# CONFIG_USBPCWATCHDOG is not set -# CONFIG_NVRAM is not set -# CONFIG_RTC is not set -CONFIG_AT91_RTC=y -# CONFIG_DTLK is not set -# CONFIG_R3964 is not set - -# -# Ftape, the floppy tape device driver -# - -# -# PCMCIA character devices -# -# CONFIG_SYNCLINK_CS is not set -# CONFIG_CARDMAN_4000 is not set -# CONFIG_CARDMAN_4040 is not set -# CONFIG_RAW_DRIVER is not set - -# -# TPM devices -# -# CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set -CONFIG_AT91_SPI=y -CONFIG_AT91_SPIDEV=y - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y - -# -# I2C Algorithms -# -# CONFIG_I2C_ALGOBIT is not set -# CONFIG_I2C_ALGOPCF is not set -# CONFIG_I2C_ALGOPCA is not set - -# -# I2C Hardware Bus support -# -CONFIG_I2C_AT91=y -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_PCA_ISA is not set - -# -# Miscellaneous 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_SENSORS_MAX6875 is not set -# CONFIG_RTC_X1205_I2C 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 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_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47B397 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 -# - -# -# Multimedia Capabilities Port drivers -# - -# -# Multimedia devices -# -# CONFIG_VIDEO_DEV is not set - -# -# Digital Video Broadcasting Devices -# -# CONFIG_DVB is not set - -# -# Graphics support -# -# CONFIG_FB is not set - -# -# Console display driver support -# -# CONFIG_VGA_CONSOLE is not set -CONFIG_DUMMY_CONSOLE=y - -# -# Sound -# -# CONFIG_SOUND is not set - -# -# USB support -# -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB=y -CONFIG_USB_DEBUG=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -# CONFIG_USB_BANDWIDTH is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_OTG is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_ISP116X_HCD is not set -CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_BIG_ENDIAN is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -# CONFIG_USB_SL811_HCD is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_ACM is not set -# CONFIG_USB_PRINTER is not set - -# -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' -# - -# -# may also be needed; see USB_STORAGE Help for more information -# -# CONFIG_USB_STORAGE is not set - -# -# USB Input Devices -# -# CONFIG_USB_HID is not set - -# -# USB HID Boot Protocol drivers -# -# CONFIG_USB_KBD is not set -# CONFIG_USB_MOUSE is not set -# CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set -# CONFIG_USB_ACECAD is not set -# CONFIG_USB_KBTAB is not set -# CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_ITMTOUCH is not set -# CONFIG_USB_EGALAX is not set -# CONFIG_USB_YEALINK is not set -# CONFIG_USB_XPAD is not set -# CONFIG_USB_ATI_REMOTE is not set -# CONFIG_USB_KEYSPAN_REMOTE is not set -# CONFIG_USB_APPLETOUCH is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set - -# -# Video4Linux support is needed for USB Multimedia device support -# - -# -# USB Network Adapters -# -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_USBNET is not set -CONFIG_USB_MON=y - -# -# USB port drivers -# - -# -# USB Serial Converter support -# -# CONFIG_USB_SERIAL is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_AUERSWALD is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_LED is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGETKIT is not set -# CONFIG_USB_PHIDGETSERVO is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_LD is not set -# CONFIG_USB_TEST is not set - -# -# USB DSL modem support -# - -# -# USB Gadget Support -# -CONFIG_USB_GADGET=y -# CONFIG_USB_GADGET_DEBUG_FILES is not set -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_PXA2XX is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_OMAP is not set -CONFIG_USB_GADGET_AT91=y -CONFIG_USB_AT91=y -# CONFIG_USB_GADGET_DUMMY_HCD is not set -# CONFIG_USB_GADGET_DUALSPEED is not set -# CONFIG_USB_ZERO is not set -# CONFIG_USB_ETH is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set - -# -# MMC/SD Card support -# -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC_BLOCK=y -# CONFIG_MMC_WBSD is not set -CONFIG_MMC_AT91RM9200=y - -# -# File systems -# -CONFIG_EXT2_FS=y -# CONFIG_EXT2_FS_XATTR is not set -# CONFIG_EXT2_FS_XIP is not set -# CONFIG_EXT3_FS is not set -# CONFIG_JBD is not set -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set -# CONFIG_XFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_ROMFS_FS is not set -CONFIG_INOTIFY=y -# CONFIG_QUOTA is not set -CONFIG_DNOTIFY=y -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_FUSE_FS is not set - -# -# CD-ROM/DVD Filesystems -# -# CONFIG_ISO9660_FS is not set -# CONFIG_UDF_FS is not set - -# -# DOS/FAT/NT Filesystems -# -# CONFIG_MSDOS_FS is not set -# CONFIG_VFAT_FS is not set -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set - -# -# Miscellaneous filesystems -# -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -# CONFIG_JFFS_FS is not set -# CONFIG_JFFS2_FS is not set -CONFIG_CRAMFS=y -# CONFIG_VXFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set - -# -# Network File Systems -# -# CONFIG_NFS_FS is not set -# CONFIG_NFSD is not set -# CONFIG_SMB_FS is not set -# CONFIG_CIFS is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set -# CONFIG_9P_FS is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y - -# -# Native Language Support -# -# CONFIG_NLS is not set - -# -# Profiling support -# -# CONFIG_PROFILING is not set - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_MAGIC_SYSRQ is not set -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_SCHEDSTATS is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_KOBJECT is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_DEBUG_VM is not set -CONFIG_FRAME_POINTER=y -# CONFIG_RCU_TORTURE_TEST is not set -CONFIG_DEBUG_USER=y -# CONFIG_DEBUG_WAITQ is not set -# CONFIG_DEBUG_ERRORS is not set -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY is not set - -# -# Cryptographic options -# -# CONFIG_CRYPTO is not set - -# -# Hardware crypto devices -# - -# -# Library routines -# -# CONFIG_CRC_CCITT is not set -# CONFIG_CRC16 is not set -CONFIG_CRC32=y -# CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y diff --git a/trunk/arch/arm/configs/at91rm9200ek_defconfig b/trunk/arch/arm/configs/at91rm9200ek_defconfig deleted file mode 100644 index 20838ccf1da7..000000000000 --- a/trunk/arch/arm/configs/at91rm9200ek_defconfig +++ /dev/null @@ -1,998 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.15 -# Mon Jan 9 20:57:31 2006 -# -CONFIG_ARM=y -CONFIG_MMU=y -CONFIG_UID16=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_GENERIC_CALIBRATE_DELAY=y - -# -# Code maturity level options -# -CONFIG_EXPERIMENTAL=y -CONFIG_CLEAN_COMPILE=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 - -# -# General setup -# -CONFIG_LOCALVERSION="" -# CONFIG_LOCALVERSION_AUTO is not set -# CONFIG_SWAP is not set -CONFIG_SYSVIPC=y -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -CONFIG_SYSCTL=y -# CONFIG_AUDIT is not set -CONFIG_HOTPLUG=y -CONFIG_KOBJECT_UEVENT=y -# CONFIG_IKCONFIG is not set -CONFIG_INITRAMFS_SOURCE="" -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_EMBEDDED is not set -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_SHMEM=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 -# CONFIG_TINY_SHMEM is not set -CONFIG_BASE_SMALL=0 - -# -# Loadable module support -# -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_OBSOLETE_MODPARM=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_KMOD=y - -# -# Block layer -# - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -# CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_IOSCHED_CFQ is not set -CONFIG_DEFAULT_AS=y -# CONFIG_DEFAULT_DEADLINE is not set -# CONFIG_DEFAULT_CFQ is not set -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="anticipatory" - -# -# System Type -# -# CONFIG_ARCH_CLPS7500 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CO285 is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_CAMELOT is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_IOP3XX is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_IXP2000 is not set -# CONFIG_ARCH_L7200 is not set -# CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_AAEC2000 is not set -CONFIG_ARCH_AT91RM9200=y - -# -# AT91RM9200 Implementations -# - -# -# AT91RM9200 Board Type -# -# CONFIG_ARCH_AT91RM9200DK is not set -CONFIG_MACH_AT91RM9200EK=y -# CONFIG_MACH_CSB337 is not set -# CONFIG_MACH_CSB637 is not set -# CONFIG_MACH_CARMEVA is not set -# CONFIG_MACH_KB9200 is not set -# CONFIG_MACH_ATEB9200 is not set - -# -# AT91RM9200 Feature Selections -# -CONFIG_AT91_PROGRAMMABLE_CLOCKS=y - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_ARM920T=y -CONFIG_CPU_32v4=y -CONFIG_CPU_ABRT_EV4T=y -CONFIG_CPU_CACHE_V4WT=y -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_COPY_V4WB=y -CONFIG_CPU_TLB_V4WBI=y - -# -# Processor Features -# -# CONFIG_ARM_THUMB is not set -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_WRITETHROUGH is not set - -# -# Bus support -# -CONFIG_ISA_DMA_API=y - -# -# PCCARD (PCMCIA/CardBus) support -# -# CONFIG_PCCARD is not set - -# -# Kernel Features -# -# 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_SPLIT_PTLOCK_CPUS=4096 -CONFIG_LEDS=y -CONFIG_LEDS_TIMER=y -CONFIG_LEDS_CPU=y -CONFIG_ALIGNMENT_TRAP=y - -# -# Boot options -# -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x20410000,3145728 root=/dev/ram0 rw" -# CONFIG_XIP_KERNEL is not set - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -# CONFIG_FPE_FASTFPE is not set - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set -# CONFIG_ARTHUR is not set - -# -# Power management options -# -# CONFIG_PM is not set - -# -# Networking -# -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 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 - -# -# QoS and/or fair queueing -# -# CONFIG_NET_SCHED is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN 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 -# - -# -# Generic Driver Options -# -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -# CONFIG_FW_LOADER is not set -# CONFIG_DEBUG_DRIVER is not set - -# -# Connector - unified userspace <-> kernelspace linker -# -# CONFIG_CONNECTOR is not set - -# -# Memory Technology Devices (MTD) -# -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -# 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 - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set - -# -# RAM/ROM/Flash chip drivers -# -CONFIG_MTD_CFI=y -CONFIG_MTD_JEDECPROBE=y -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 is not set -CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_CFI_AMDSTD_RETRY=0 -# 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 - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_PHYSMAP_START=0x10000000 -CONFIG_MTD_PHYSMAP_LEN=0x800000 -CONFIG_MTD_PHYSMAP_BANKWIDTH=2 -# CONFIG_MTD_ARM_INTEGRATOR is not set -# CONFIG_MTD_IMPA7 is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# 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 -CONFIG_MTD_AT91_DATAFLASH=y -CONFIG_MTD_AT91_DATAFLASH_CARD=y - -# -# NAND Flash Device Drivers -# -# CONFIG_MTD_NAND is not set - -# -# OneNAND Flash Device Drivers -# -# CONFIG_MTD_ONENAND is not set - -# -# Parallel port support -# -# CONFIG_PARPORT is not set - -# -# Plug and Play support -# - -# -# Block devices -# -# CONFIG_BLK_DEV_COW_COMMON is not set -# CONFIG_BLK_DEV_LOOP is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_UB is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=8192 -CONFIG_BLK_DEV_INITRD=y -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set - -# -# SCSI device support -# -# CONFIG_RAID_ATTRS is not set -# CONFIG_SCSI is not set - -# -# Multi-device support (RAID and LVM) -# -# CONFIG_MD is not set - -# -# Fusion MPT device support -# -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# - -# -# I2O device support -# - -# -# Network device support -# -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) -# -CONFIG_NET_ETHERNET=y -CONFIG_MII=y -CONFIG_ARM_AT91_ETHER=y -# CONFIG_SMC91X is not set -# CONFIG_DM9000 is not set - -# -# Ethernet (1000 Mbit) -# - -# -# Ethernet (10000 Mbit) -# - -# -# Token Ring devices -# - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set - -# -# ISDN subsystem -# -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=y - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_TSDEV is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -# CONFIG_INPUT_MISC is not set - -# -# Hardware I/O ports -# -# CONFIG_SERIO is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -# CONFIG_SERIAL_8250 is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_AT91=y -CONFIG_SERIAL_AT91_CONSOLE=y -# CONFIG_SERIAL_AT91_TTYAT is not set -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 - -# -# IPMI -# -# CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# -CONFIG_WATCHDOG=y -CONFIG_WATCHDOG_NOWAYOUT=y - -# -# Watchdog Device Drivers -# -# CONFIG_SOFT_WATCHDOG is not set -CONFIG_AT91_WATCHDOG=y - -# -# USB-based Watchdog Cards -# -# CONFIG_USBPCWATCHDOG is not set -# CONFIG_NVRAM is not set -# CONFIG_RTC is not set -CONFIG_AT91_RTC=y -# CONFIG_DTLK is not set -# CONFIG_R3964 is not set - -# -# Ftape, the floppy tape device driver -# -# CONFIG_RAW_DRIVER is not set - -# -# TPM devices -# -# CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set -CONFIG_AT91_SPI=y -CONFIG_AT91_SPIDEV=y - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y - -# -# I2C Algorithms -# -# CONFIG_I2C_ALGOBIT is not set -# CONFIG_I2C_ALGOPCF is not set -# CONFIG_I2C_ALGOPCA is not set - -# -# I2C Hardware Bus support -# -CONFIG_I2C_AT91=y -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_PCA_ISA is not set - -# -# Miscellaneous 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_SENSORS_MAX6875 is not set -# CONFIG_RTC_X1205_I2C 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 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_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47B397 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 -# - -# -# Multimedia Capabilities Port drivers -# - -# -# Multimedia devices -# -# CONFIG_VIDEO_DEV is not set - -# -# Digital Video Broadcasting Devices -# -# CONFIG_DVB is not set - -# -# Graphics support -# -CONFIG_FB=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_MODE_HELPERS is not set -# CONFIG_FB_TILEBLITTING is not set -CONFIG_FB_S1D13XXX=y -# CONFIG_FB_VIRTUAL is not set - -# -# Console display driver support -# -# CONFIG_VGA_CONSOLE is not set -CONFIG_DUMMY_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE is not set - -# -# Logo configuration -# -# CONFIG_LOGO is not set -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set - -# -# Sound -# -# CONFIG_SOUND is not set - -# -# USB support -# -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB=y -CONFIG_USB_DEBUG=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -# CONFIG_USB_BANDWIDTH is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_OTG is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_ISP116X_HCD is not set -CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_BIG_ENDIAN is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -# CONFIG_USB_SL811_HCD is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_ACM is not set -# CONFIG_USB_PRINTER is not set - -# -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' -# - -# -# may also be needed; see USB_STORAGE Help for more information -# -# CONFIG_USB_STORAGE is not set - -# -# USB Input Devices -# -# CONFIG_USB_HID is not set - -# -# USB HID Boot Protocol drivers -# -# CONFIG_USB_KBD is not set -# CONFIG_USB_MOUSE is not set -# CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set -# CONFIG_USB_ACECAD is not set -# CONFIG_USB_KBTAB is not set -# CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_ITMTOUCH is not set -# CONFIG_USB_EGALAX is not set -# CONFIG_USB_YEALINK is not set -# CONFIG_USB_XPAD is not set -# CONFIG_USB_ATI_REMOTE is not set -# CONFIG_USB_KEYSPAN_REMOTE is not set -# CONFIG_USB_APPLETOUCH is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set - -# -# Video4Linux support is needed for USB Multimedia device support -# - -# -# USB Network Adapters -# -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_USBNET is not set -CONFIG_USB_MON=y - -# -# USB port drivers -# - -# -# USB Serial Converter support -# -# CONFIG_USB_SERIAL is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_AUERSWALD is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_LED is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGETKIT is not set -# CONFIG_USB_PHIDGETSERVO is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_LD is not set -# CONFIG_USB_TEST is not set - -# -# USB DSL modem support -# - -# -# USB Gadget Support -# -CONFIG_USB_GADGET=y -# CONFIG_USB_GADGET_DEBUG_FILES is not set -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_PXA2XX is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_OMAP is not set -CONFIG_USB_GADGET_AT91=y -CONFIG_USB_AT91=y -# CONFIG_USB_GADGET_DUMMY_HCD is not set -# CONFIG_USB_GADGET_DUALSPEED is not set -# CONFIG_USB_ZERO is not set -# CONFIG_USB_ETH is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set - -# -# MMC/SD Card support -# -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC_BLOCK=y -# CONFIG_MMC_WBSD is not set -CONFIG_MMC_AT91RM9200=y - -# -# File systems -# -CONFIG_EXT2_FS=y -# CONFIG_EXT2_FS_XATTR is not set -# CONFIG_EXT2_FS_XIP is not set -# CONFIG_EXT3_FS is not set -# CONFIG_JBD is not set -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set -# CONFIG_XFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_ROMFS_FS is not set -CONFIG_INOTIFY=y -# CONFIG_QUOTA is not set -CONFIG_DNOTIFY=y -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_FUSE_FS is not set - -# -# CD-ROM/DVD Filesystems -# -# CONFIG_ISO9660_FS is not set -# CONFIG_UDF_FS is not set - -# -# DOS/FAT/NT Filesystems -# -# CONFIG_MSDOS_FS is not set -# CONFIG_VFAT_FS is not set -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set - -# -# Miscellaneous filesystems -# -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -# CONFIG_JFFS_FS is not set -# CONFIG_JFFS2_FS is not set -CONFIG_CRAMFS=y -# CONFIG_VXFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set - -# -# Network File Systems -# -# CONFIG_NFS_FS is not set -# CONFIG_NFSD is not set -# CONFIG_SMB_FS is not set -# CONFIG_CIFS is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set -# CONFIG_9P_FS is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y - -# -# Native Language Support -# -# CONFIG_NLS is not set - -# -# Profiling support -# -# CONFIG_PROFILING is not set - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_MAGIC_SYSRQ is not set -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_SCHEDSTATS is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_KOBJECT is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_DEBUG_VM is not set -CONFIG_FRAME_POINTER=y -# CONFIG_RCU_TORTURE_TEST is not set -CONFIG_DEBUG_USER=y -# CONFIG_DEBUG_WAITQ is not set -# CONFIG_DEBUG_ERRORS is not set -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY is not set - -# -# Cryptographic options -# -# CONFIG_CRYPTO is not set - -# -# Hardware crypto devices -# - -# -# Library routines -# -# CONFIG_CRC_CCITT is not set -# CONFIG_CRC16 is not set -CONFIG_CRC32=y -# CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y diff --git a/trunk/arch/arm/configs/badge4_defconfig b/trunk/arch/arm/configs/badge4_defconfig index cfe6bd8e81cd..5d92af975d87 100644 --- a/trunk/arch/arm/configs/badge4_defconfig +++ b/trunk/arch/arm/configs/badge4_defconfig @@ -66,6 +66,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/bast_defconfig b/trunk/arch/arm/configs/bast_defconfig index 6886001b5366..35e3a99bcbb6 100644 --- a/trunk/arch/arm/configs/bast_defconfig +++ b/trunk/arch/arm/configs/bast_defconfig @@ -64,6 +64,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/cerfcube_defconfig b/trunk/arch/arm/configs/cerfcube_defconfig index f81a60005cd3..d8fe0f40408f 100644 --- a/trunk/arch/arm/configs/cerfcube_defconfig +++ b/trunk/arch/arm/configs/cerfcube_defconfig @@ -65,6 +65,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/clps7500_defconfig b/trunk/arch/arm/configs/clps7500_defconfig index af9ae5389131..908758371405 100644 --- a/trunk/arch/arm/configs/clps7500_defconfig +++ b/trunk/arch/arm/configs/clps7500_defconfig @@ -57,6 +57,7 @@ CONFIG_ARCH_CLPS7500=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/collie_defconfig b/trunk/arch/arm/configs/collie_defconfig index 15468a0cf70e..40dfe07a8bce 100644 --- a/trunk/arch/arm/configs/collie_defconfig +++ b/trunk/arch/arm/configs/collie_defconfig @@ -71,6 +71,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/corgi_defconfig b/trunk/arch/arm/configs/corgi_defconfig index 3c3461e83398..06229026f78b 100644 --- a/trunk/arch/arm/configs/corgi_defconfig +++ b/trunk/arch/arm/configs/corgi_defconfig @@ -87,6 +87,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/csb337_defconfig b/trunk/arch/arm/configs/csb337_defconfig deleted file mode 100644 index 885a3184830a..000000000000 --- a/trunk/arch/arm/configs/csb337_defconfig +++ /dev/null @@ -1,1136 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.15 -# Mon Jan 9 21:51:31 2006 -# -CONFIG_ARM=y -CONFIG_MMU=y -CONFIG_UID16=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_GENERIC_CALIBRATE_DELAY=y - -# -# Code maturity level options -# -CONFIG_EXPERIMENTAL=y -CONFIG_CLEAN_COMPILE=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 - -# -# General setup -# -CONFIG_LOCALVERSION="" -CONFIG_LOCALVERSION_AUTO=y -# CONFIG_SWAP is not set -CONFIG_SYSVIPC=y -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -CONFIG_SYSCTL=y -# CONFIG_AUDIT is not set -CONFIG_HOTPLUG=y -CONFIG_KOBJECT_UEVENT=y -# CONFIG_IKCONFIG is not set -CONFIG_INITRAMFS_SOURCE="" -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_EMBEDDED is not set -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_SHMEM=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 -# CONFIG_TINY_SHMEM is not set -CONFIG_BASE_SMALL=0 - -# -# Loadable module support -# -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_OBSOLETE_MODPARM=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_KMOD=y - -# -# Block layer -# - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -CONFIG_DEFAULT_AS=y -# CONFIG_DEFAULT_DEADLINE is not set -# CONFIG_DEFAULT_CFQ is not set -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="anticipatory" - -# -# System Type -# -# CONFIG_ARCH_CLPS7500 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CO285 is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_CAMELOT is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_IOP3XX is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_IXP2000 is not set -# CONFIG_ARCH_L7200 is not set -# CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_AAEC2000 is not set -CONFIG_ARCH_AT91RM9200=y - -# -# AT91RM9200 Implementations -# - -# -# AT91RM9200 Board Type -# -# CONFIG_ARCH_AT91RM9200DK is not set -# CONFIG_MACH_AT91RM9200EK is not set -CONFIG_MACH_CSB337=y -# CONFIG_MACH_CSB637 is not set -# CONFIG_MACH_CARMEVA is not set -# CONFIG_MACH_KB9200 is not set -# CONFIG_MACH_ATEB9200 is not set - -# -# AT91RM9200 Feature Selections -# -CONFIG_AT91_PROGRAMMABLE_CLOCKS=y - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_ARM920T=y -CONFIG_CPU_32v4=y -CONFIG_CPU_ABRT_EV4T=y -CONFIG_CPU_CACHE_V4WT=y -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_COPY_V4WB=y -CONFIG_CPU_TLB_V4WBI=y - -# -# Processor Features -# -# CONFIG_ARM_THUMB is not set -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_WRITETHROUGH is not set - -# -# Bus support -# -CONFIG_ISA_DMA_API=y - -# -# PCCARD (PCMCIA/CardBus) support -# -CONFIG_PCCARD=y -# CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA=y -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y - -# -# PC-card bridges -# -CONFIG_AT91_CF=y - -# -# Kernel Features -# -# 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_SPLIT_PTLOCK_CPUS=4096 -CONFIG_LEDS=y -CONFIG_LEDS_TIMER=y -CONFIG_LEDS_CPU=y -CONFIG_ALIGNMENT_TRAP=y - -# -# Boot options -# -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="mem=32M console=ttyS0,38400 initrd=0x20410000,3145728 root=/dev/ram0 rw" -# CONFIG_XIP_KERNEL is not set - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -# CONFIG_FPE_FASTFPE is not set - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set -# CONFIG_ARTHUR is not set - -# -# Power management options -# -# CONFIG_PM is not set - -# -# Networking -# -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_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 - -# -# QoS and/or fair queueing -# -# CONFIG_NET_SCHED is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN 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 -# - -# -# Generic Driver Options -# -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=y -# CONFIG_DEBUG_DRIVER is not set - -# -# Connector - unified userspace <-> kernelspace linker -# -# CONFIG_CONNECTOR is not set - -# -# Memory Technology Devices (MTD) -# -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -# 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 - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set - -# -# RAM/ROM/Flash chip drivers -# -CONFIG_MTD_CFI=y -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_GEN_PROBE=y -# CONFIG_MTD_CFI_ADV_OPTIONS is not set -CONFIG_MTD_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 - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_ARM_INTEGRATOR is not set -# CONFIG_MTD_PLATRAM is not set -CONFIG_MTD_CSB337=y - -# -# Self-contained MTD device drivers -# -# 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 -# CONFIG_MTD_AT91_DATAFLASH is not set - -# -# NAND Flash Device Drivers -# -# CONFIG_MTD_NAND is not set - -# -# OneNAND Flash Device Drivers -# -# CONFIG_MTD_ONENAND is not set - -# -# Parallel port support -# -# CONFIG_PARPORT is not set - -# -# Plug and Play support -# - -# -# Block devices -# -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -# CONFIG_BLK_DEV_CRYPTOLOOP is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_UB is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=8192 -CONFIG_BLK_DEV_INITRD=y -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set - -# -# ATA/ATAPI/MFM/RLL support -# -# CONFIG_IDE is not set - -# -# SCSI device support -# -# CONFIG_RAID_ATTRS is not set -CONFIG_SCSI=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -# CONFIG_BLK_DEV_SD is not set -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -# CONFIG_BLK_DEV_SR is not set -# CONFIG_CHR_DEV_SG is not set -# CONFIG_CHR_DEV_SCH is not set - -# -# Some SCSI devices (e.g. CD jukebox) support multiple LUNs -# -# CONFIG_SCSI_MULTI_LUN is not set -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set - -# -# SCSI Transport Attributes -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set -# CONFIG_SCSI_SAS_ATTRS is not set - -# -# SCSI low-level drivers -# -# CONFIG_ISCSI_TCP is not set -# CONFIG_SCSI_SATA is not set -# CONFIG_SCSI_DEBUG is not set - -# -# PCMCIA SCSI adapter support -# -# CONFIG_PCMCIA_AHA152X is not set -# CONFIG_PCMCIA_FDOMAIN is not set -# CONFIG_PCMCIA_NINJA_SCSI is not set -# CONFIG_PCMCIA_QLOGIC is not set -# CONFIG_PCMCIA_SYM53C500 is not set - -# -# Multi-device support (RAID and LVM) -# -# CONFIG_MD is not set - -# -# Fusion MPT device support -# -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# - -# -# I2O device support -# - -# -# Network device support -# -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) -# -CONFIG_NET_ETHERNET=y -CONFIG_MII=y -CONFIG_ARM_AT91_ETHER=y -# CONFIG_SMC91X is not set -# CONFIG_DM9000 is not set - -# -# Ethernet (1000 Mbit) -# - -# -# Ethernet (10000 Mbit) -# - -# -# Token Ring devices -# - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set - -# -# PCMCIA network device support -# -# CONFIG_NET_PCMCIA is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set - -# -# ISDN subsystem -# -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=y - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_TSDEV is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -# CONFIG_INPUT_MISC is not set - -# -# Hardware I/O ports -# -# CONFIG_SERIO is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -# CONFIG_SERIAL_8250 is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_AT91=y -CONFIG_SERIAL_AT91_CONSOLE=y -# CONFIG_SERIAL_AT91_TTYAT is not set -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 - -# -# IPMI -# -# CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# -CONFIG_WATCHDOG=y -CONFIG_WATCHDOG_NOWAYOUT=y - -# -# Watchdog Device Drivers -# -# CONFIG_SOFT_WATCHDOG is not set -CONFIG_AT91_WATCHDOG=y - -# -# USB-based Watchdog Cards -# -# CONFIG_USBPCWATCHDOG is not set -# CONFIG_NVRAM is not set -CONFIG_RTC=y -# CONFIG_AT91_RTC is not set -# CONFIG_DTLK is not set -# CONFIG_R3964 is not set - -# -# Ftape, the floppy tape device driver -# - -# -# PCMCIA character devices -# -# CONFIG_SYNCLINK_CS is not set -# CONFIG_CARDMAN_4000 is not set -# CONFIG_CARDMAN_4040 is not set -# CONFIG_RAW_DRIVER is not set - -# -# TPM devices -# -# CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set -CONFIG_AT91_SPI=y -CONFIG_AT91_SPIDEV=y - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y - -# -# I2C Algorithms -# -# CONFIG_I2C_ALGOBIT is not set -# CONFIG_I2C_ALGOPCF is not set -# CONFIG_I2C_ALGOPCA is not set - -# -# I2C Hardware Bus support -# -CONFIG_I2C_AT91=y -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_PCA_ISA is not set - -# -# Miscellaneous 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_SENSORS_MAX6875 is not set -# CONFIG_RTC_X1205_I2C 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 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_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47B397 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 -# - -# -# Multimedia Capabilities Port drivers -# - -# -# Multimedia devices -# -# CONFIG_VIDEO_DEV is not set - -# -# Digital Video Broadcasting Devices -# -# CONFIG_DVB is not set - -# -# Graphics support -# -# CONFIG_FB is not set - -# -# Console display driver support -# -# CONFIG_VGA_CONSOLE is not set -CONFIG_DUMMY_CONSOLE=y - -# -# Sound -# -# CONFIG_SOUND is not set - -# -# USB support -# -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB=y -CONFIG_USB_DEBUG=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -# CONFIG_USB_BANDWIDTH is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_OTG is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_ISP116X_HCD is not set -CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_BIG_ENDIAN is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -# CONFIG_USB_SL811_HCD is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_ACM is not set -# CONFIG_USB_PRINTER is not set - -# -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' -# - -# -# may also be needed; see USB_STORAGE Help for more information -# -CONFIG_USB_STORAGE=y -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_DPCM is not set -# CONFIG_USB_STORAGE_USBAT is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set - -# -# USB Input Devices -# -# CONFIG_USB_HID is not set - -# -# USB HID Boot Protocol drivers -# -# CONFIG_USB_KBD is not set -# CONFIG_USB_MOUSE is not set -# CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set -# CONFIG_USB_ACECAD is not set -# CONFIG_USB_KBTAB is not set -# CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_ITMTOUCH is not set -# CONFIG_USB_EGALAX is not set -# CONFIG_USB_YEALINK is not set -# CONFIG_USB_XPAD is not set -# CONFIG_USB_ATI_REMOTE is not set -# CONFIG_USB_KEYSPAN_REMOTE is not set -# CONFIG_USB_APPLETOUCH is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set - -# -# Video4Linux support is needed for USB Multimedia device support -# - -# -# USB Network Adapters -# -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_USBNET is not set -CONFIG_USB_MON=y - -# -# USB port drivers -# - -# -# USB Serial Converter support -# -CONFIG_USB_SERIAL=y -CONFIG_USB_SERIAL_CONSOLE=y -CONFIG_USB_SERIAL_GENERIC=y -# CONFIG_USB_SERIAL_AIRPRIME is not set -# CONFIG_USB_SERIAL_ANYDATA is not set -# CONFIG_USB_SERIAL_BELKIN is not set -# CONFIG_USB_SERIAL_WHITEHEAT is not set -# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -# CONFIG_USB_SERIAL_CP2101 is not set -# CONFIG_USB_SERIAL_CYPRESS_M8 is not set -# CONFIG_USB_SERIAL_EMPEG is not set -CONFIG_USB_SERIAL_FTDI_SIO=y -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set -# CONFIG_USB_SERIAL_EDGEPORT is not set -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -# CONFIG_USB_SERIAL_GARMIN is not set -# CONFIG_USB_SERIAL_IPW is not set -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -CONFIG_USB_SERIAL_KEYSPAN=y -CONFIG_USB_SERIAL_KEYSPAN_MPR=y -CONFIG_USB_SERIAL_KEYSPAN_USA28=y -CONFIG_USB_SERIAL_KEYSPAN_USA28X=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y -CONFIG_USB_SERIAL_KEYSPAN_USA19=y -CONFIG_USB_SERIAL_KEYSPAN_USA18X=y -CONFIG_USB_SERIAL_KEYSPAN_USA19W=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y -CONFIG_USB_SERIAL_KEYSPAN_USA49W=y -CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -CONFIG_USB_SERIAL_MCT_U232=y -# CONFIG_USB_SERIAL_PL2303 is not set -# CONFIG_USB_SERIAL_HP4X is not set -# CONFIG_USB_SERIAL_SAFE is not set -# CONFIG_USB_SERIAL_TI is not set -# CONFIG_USB_SERIAL_CYBERJACK is not set -# CONFIG_USB_SERIAL_XIRCOM is not set -# CONFIG_USB_SERIAL_OPTION is not set -# CONFIG_USB_SERIAL_OMNINET is not set -CONFIG_USB_EZUSB=y - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_AUERSWALD is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_LED is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGETKIT is not set -# CONFIG_USB_PHIDGETSERVO is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_LD is not set -# CONFIG_USB_TEST is not set - -# -# USB DSL modem support -# - -# -# USB Gadget Support -# -CONFIG_USB_GADGET=y -# CONFIG_USB_GADGET_DEBUG_FILES is not set -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_PXA2XX is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_OMAP is not set -CONFIG_USB_GADGET_AT91=y -CONFIG_USB_AT91=y -# CONFIG_USB_GADGET_DUMMY_HCD is not set -# CONFIG_USB_GADGET_DUALSPEED is not set -# CONFIG_USB_ZERO is not set -# CONFIG_USB_ETH is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set - -# -# MMC/SD Card support -# -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC_BLOCK=y -# CONFIG_MMC_WBSD is not set -CONFIG_MMC_AT91RM9200=y - -# -# File systems -# -CONFIG_EXT2_FS=y -# CONFIG_EXT2_FS_XATTR is not set -# CONFIG_EXT2_FS_XIP is not set -# CONFIG_EXT3_FS is not set -# CONFIG_JBD is not set -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set -# CONFIG_XFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_ROMFS_FS is not set -CONFIG_INOTIFY=y -# CONFIG_QUOTA is not set -CONFIG_DNOTIFY=y -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_FUSE_FS is not set - -# -# CD-ROM/DVD Filesystems -# -# CONFIG_ISO9660_FS is not set -# CONFIG_UDF_FS is not set - -# -# DOS/FAT/NT Filesystems -# -# CONFIG_MSDOS_FS is not set -# CONFIG_VFAT_FS is not set -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set - -# -# Miscellaneous filesystems -# -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -# CONFIG_JFFS_FS is not set -# CONFIG_JFFS2_FS is not set -CONFIG_CRAMFS=y -# CONFIG_VXFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set - -# -# Network File Systems -# -CONFIG_NFS_FS=y -CONFIG_NFS_V3=y -# CONFIG_NFS_V3_ACL is not set -CONFIG_NFS_V4=y -# CONFIG_NFS_DIRECTIO is not set -# CONFIG_NFSD is not set -CONFIG_ROOT_NFS=y -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -CONFIG_SUNRPC_GSS=y -CONFIG_RPCSEC_GSS_KRB5=y -# CONFIG_RPCSEC_GSS_SPKM3 is not set -# CONFIG_SMB_FS is not set -# CONFIG_CIFS is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set -# CONFIG_9P_FS is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y - -# -# Native Language Support -# -# CONFIG_NLS is not set - -# -# Profiling support -# -# CONFIG_PROFILING is not set - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_MAGIC_SYSRQ is not set -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_SCHEDSTATS is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_KOBJECT is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_DEBUG_VM is not set -CONFIG_FRAME_POINTER=y -# CONFIG_RCU_TORTURE_TEST is not set -CONFIG_DEBUG_USER=y -# CONFIG_DEBUG_WAITQ is not set -# CONFIG_DEBUG_ERRORS is not set -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY is not set - -# -# Cryptographic options -# -CONFIG_CRYPTO=y -# CONFIG_CRYPTO_HMAC is not set -# CONFIG_CRYPTO_NULL is not set -# CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=y -# CONFIG_CRYPTO_SHA1 is not set -# CONFIG_CRYPTO_SHA256 is not set -# CONFIG_CRYPTO_SHA512 is not set -# CONFIG_CRYPTO_WP512 is not set -# CONFIG_CRYPTO_TGR192 is not set -CONFIG_CRYPTO_DES=y -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_TWOFISH is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_AES is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_TEA is not set -# CONFIG_CRYPTO_ARC4 is not set -# CONFIG_CRYPTO_KHAZAD is not set -# CONFIG_CRYPTO_ANUBIS is not set -# CONFIG_CRYPTO_DEFLATE is not set -# CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_CRC32C is not set -# CONFIG_CRYPTO_TEST is not set - -# -# Hardware crypto devices -# - -# -# Library routines -# -# CONFIG_CRC_CCITT is not set -# CONFIG_CRC16 is not set -CONFIG_CRC32=y -# CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y diff --git a/trunk/arch/arm/configs/csb637_defconfig b/trunk/arch/arm/configs/csb637_defconfig deleted file mode 100644 index 95a96a5462a0..000000000000 --- a/trunk/arch/arm/configs/csb637_defconfig +++ /dev/null @@ -1,1116 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.15 -# Mon Jan 9 21:52:00 2006 -# -CONFIG_ARM=y -CONFIG_MMU=y -CONFIG_UID16=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_GENERIC_CALIBRATE_DELAY=y - -# -# Code maturity level options -# -CONFIG_EXPERIMENTAL=y -CONFIG_CLEAN_COMPILE=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 - -# -# General setup -# -CONFIG_LOCALVERSION="" -CONFIG_LOCALVERSION_AUTO=y -# CONFIG_SWAP is not set -CONFIG_SYSVIPC=y -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -CONFIG_SYSCTL=y -# CONFIG_AUDIT is not set -CONFIG_HOTPLUG=y -CONFIG_KOBJECT_UEVENT=y -# CONFIG_IKCONFIG is not set -CONFIG_INITRAMFS_SOURCE="" -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_EMBEDDED is not set -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_SHMEM=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 -# CONFIG_TINY_SHMEM is not set -CONFIG_BASE_SMALL=0 - -# -# Loadable module support -# -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_OBSOLETE_MODPARM=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_KMOD=y - -# -# Block layer -# - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -CONFIG_DEFAULT_AS=y -# CONFIG_DEFAULT_DEADLINE is not set -# CONFIG_DEFAULT_CFQ is not set -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="anticipatory" - -# -# System Type -# -# CONFIG_ARCH_CLPS7500 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CO285 is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_CAMELOT is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_IOP3XX is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_IXP2000 is not set -# CONFIG_ARCH_L7200 is not set -# CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_AAEC2000 is not set -CONFIG_ARCH_AT91RM9200=y - -# -# AT91RM9200 Implementations -# - -# -# AT91RM9200 Board Type -# -# CONFIG_ARCH_AT91RM9200DK is not set -# CONFIG_MACH_AT91RM9200EK is not set -# CONFIG_MACH_CSB337 is not set -CONFIG_MACH_CSB637=y -# CONFIG_MACH_CARMEVA is not set -# CONFIG_MACH_KB9200 is not set -# CONFIG_MACH_ATEB9200 is not set - -# -# AT91RM9200 Feature Selections -# -CONFIG_AT91_PROGRAMMABLE_CLOCKS=y - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_ARM920T=y -CONFIG_CPU_32v4=y -CONFIG_CPU_ABRT_EV4T=y -CONFIG_CPU_CACHE_V4WT=y -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_COPY_V4WB=y -CONFIG_CPU_TLB_V4WBI=y - -# -# Processor Features -# -# CONFIG_ARM_THUMB is not set -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_WRITETHROUGH is not set - -# -# Bus support -# -CONFIG_ISA_DMA_API=y - -# -# PCCARD (PCMCIA/CardBus) support -# -CONFIG_PCCARD=y -# CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA=y -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y - -# -# PC-card bridges -# -CONFIG_AT91_CF=y - -# -# Kernel Features -# -# 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_SPLIT_PTLOCK_CPUS=4096 -CONFIG_LEDS=y -CONFIG_LEDS_TIMER=y -CONFIG_LEDS_CPU=y -CONFIG_ALIGNMENT_TRAP=y - -# -# Boot options -# -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="mem=32M console=ttyS0,38400 initrd=0x20410000,3145728 root=/dev/ram0 rw" -# CONFIG_XIP_KERNEL is not set - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -# CONFIG_FPE_FASTFPE is not set - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set -# CONFIG_ARTHUR is not set - -# -# Power management options -# -# CONFIG_PM is not set - -# -# Networking -# -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_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 - -# -# QoS and/or fair queueing -# -# CONFIG_NET_SCHED is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN 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 -# - -# -# Generic Driver Options -# -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=y -# CONFIG_DEBUG_DRIVER is not set - -# -# Connector - unified userspace <-> kernelspace linker -# -# CONFIG_CONNECTOR is not set - -# -# Memory Technology Devices (MTD) -# -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -# 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 - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set - -# -# RAM/ROM/Flash chip drivers -# -CONFIG_MTD_CFI=y -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_GEN_PROBE=y -# CONFIG_MTD_CFI_ADV_OPTIONS is not set -CONFIG_MTD_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 - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_ARM_INTEGRATOR is not set -# CONFIG_MTD_PLATRAM is not set -CONFIG_MTD_CSB637=y - -# -# Self-contained MTD device drivers -# -# 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 -# CONFIG_MTD_AT91_DATAFLASH is not set - -# -# NAND Flash Device Drivers -# -# CONFIG_MTD_NAND is not set - -# -# OneNAND Flash Device Drivers -# -# CONFIG_MTD_ONENAND is not set - -# -# Parallel port support -# -# CONFIG_PARPORT is not set - -# -# Plug and Play support -# - -# -# Block devices -# -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -# CONFIG_BLK_DEV_CRYPTOLOOP is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_UB is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=8192 -CONFIG_BLK_DEV_INITRD=y -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set - -# -# ATA/ATAPI/MFM/RLL support -# -# CONFIG_IDE is not set - -# -# SCSI device support -# -# CONFIG_RAID_ATTRS is not set -CONFIG_SCSI=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -# CONFIG_BLK_DEV_SD is not set -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -# CONFIG_BLK_DEV_SR is not set -# CONFIG_CHR_DEV_SG is not set -# CONFIG_CHR_DEV_SCH is not set - -# -# Some SCSI devices (e.g. CD jukebox) support multiple LUNs -# -# CONFIG_SCSI_MULTI_LUN is not set -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set - -# -# SCSI Transport Attributes -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set -# CONFIG_SCSI_SAS_ATTRS is not set - -# -# SCSI low-level drivers -# -# CONFIG_ISCSI_TCP is not set -# CONFIG_SCSI_SATA is not set -# CONFIG_SCSI_DEBUG is not set - -# -# PCMCIA SCSI adapter support -# -# CONFIG_PCMCIA_AHA152X is not set -# CONFIG_PCMCIA_FDOMAIN is not set -# CONFIG_PCMCIA_NINJA_SCSI is not set -# CONFIG_PCMCIA_QLOGIC is not set -# CONFIG_PCMCIA_SYM53C500 is not set - -# -# Multi-device support (RAID and LVM) -# -# CONFIG_MD is not set - -# -# Fusion MPT device support -# -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# - -# -# I2O device support -# - -# -# Network device support -# -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) -# -CONFIG_NET_ETHERNET=y -CONFIG_MII=y -CONFIG_ARM_AT91_ETHER=y -# CONFIG_SMC91X is not set -# CONFIG_DM9000 is not set - -# -# Ethernet (1000 Mbit) -# - -# -# Ethernet (10000 Mbit) -# - -# -# Token Ring devices -# - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set - -# -# PCMCIA network device support -# -# CONFIG_NET_PCMCIA is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set - -# -# ISDN subsystem -# -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=y - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_TSDEV is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -# CONFIG_INPUT_MISC is not set - -# -# Hardware I/O ports -# -# CONFIG_SERIO is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -# CONFIG_SERIAL_8250 is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_AT91=y -CONFIG_SERIAL_AT91_CONSOLE=y -# CONFIG_SERIAL_AT91_TTYAT is not set -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 - -# -# IPMI -# -# CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# -CONFIG_WATCHDOG=y -CONFIG_WATCHDOG_NOWAYOUT=y - -# -# Watchdog Device Drivers -# -# CONFIG_SOFT_WATCHDOG is not set -CONFIG_AT91_WATCHDOG=y - -# -# USB-based Watchdog Cards -# -# CONFIG_USBPCWATCHDOG is not set -# CONFIG_NVRAM is not set -CONFIG_RTC=y -# CONFIG_AT91_RTC is not set -# CONFIG_DTLK is not set -# CONFIG_R3964 is not set - -# -# Ftape, the floppy tape device driver -# - -# -# PCMCIA character devices -# -# CONFIG_SYNCLINK_CS is not set -# CONFIG_CARDMAN_4000 is not set -# CONFIG_CARDMAN_4040 is not set -# CONFIG_RAW_DRIVER is not set - -# -# TPM devices -# -# CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set -CONFIG_AT91_SPI=y -CONFIG_AT91_SPIDEV=y - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y - -# -# I2C Algorithms -# -# CONFIG_I2C_ALGOBIT is not set -# CONFIG_I2C_ALGOPCF is not set -# CONFIG_I2C_ALGOPCA is not set - -# -# I2C Hardware Bus support -# -CONFIG_I2C_AT91=y -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_PCA_ISA is not set - -# -# Miscellaneous 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_SENSORS_MAX6875 is not set -# CONFIG_RTC_X1205_I2C 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 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_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47B397 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 -# - -# -# Multimedia Capabilities Port drivers -# - -# -# Multimedia devices -# -# CONFIG_VIDEO_DEV is not set - -# -# Digital Video Broadcasting Devices -# -# CONFIG_DVB is not set - -# -# Graphics support -# -# CONFIG_FB is not set - -# -# Console display driver support -# -# CONFIG_VGA_CONSOLE is not set -CONFIG_DUMMY_CONSOLE=y - -# -# Sound -# -# CONFIG_SOUND is not set - -# -# USB support -# -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB=y -CONFIG_USB_DEBUG=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -# CONFIG_USB_BANDWIDTH is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_OTG is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_ISP116X_HCD is not set -CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_BIG_ENDIAN is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -# CONFIG_USB_SL811_HCD is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_ACM is not set -# CONFIG_USB_PRINTER is not set - -# -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' -# - -# -# may also be needed; see USB_STORAGE Help for more information -# -CONFIG_USB_STORAGE=y -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_DPCM is not set -# CONFIG_USB_STORAGE_USBAT is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set - -# -# USB Input Devices -# -# CONFIG_USB_HID is not set - -# -# USB HID Boot Protocol drivers -# -# CONFIG_USB_KBD is not set -# CONFIG_USB_MOUSE is not set -# CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set -# CONFIG_USB_ACECAD is not set -# CONFIG_USB_KBTAB is not set -# CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_ITMTOUCH is not set -# CONFIG_USB_EGALAX is not set -# CONFIG_USB_YEALINK is not set -# CONFIG_USB_XPAD is not set -# CONFIG_USB_ATI_REMOTE is not set -# CONFIG_USB_KEYSPAN_REMOTE is not set -# CONFIG_USB_APPLETOUCH is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set - -# -# Video4Linux support is needed for USB Multimedia device support -# - -# -# USB Network Adapters -# -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_USBNET is not set -CONFIG_USB_MON=y - -# -# USB port drivers -# - -# -# USB Serial Converter support -# -CONFIG_USB_SERIAL=y -CONFIG_USB_SERIAL_CONSOLE=y -CONFIG_USB_SERIAL_GENERIC=y -# CONFIG_USB_SERIAL_AIRPRIME is not set -# CONFIG_USB_SERIAL_ANYDATA is not set -# CONFIG_USB_SERIAL_BELKIN is not set -# CONFIG_USB_SERIAL_WHITEHEAT is not set -# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -# CONFIG_USB_SERIAL_CP2101 is not set -# CONFIG_USB_SERIAL_CYPRESS_M8 is not set -# CONFIG_USB_SERIAL_EMPEG is not set -CONFIG_USB_SERIAL_FTDI_SIO=y -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set -# CONFIG_USB_SERIAL_EDGEPORT is not set -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -# CONFIG_USB_SERIAL_GARMIN is not set -# CONFIG_USB_SERIAL_IPW is not set -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -CONFIG_USB_SERIAL_KEYSPAN=y -CONFIG_USB_SERIAL_KEYSPAN_MPR=y -CONFIG_USB_SERIAL_KEYSPAN_USA28=y -CONFIG_USB_SERIAL_KEYSPAN_USA28X=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y -CONFIG_USB_SERIAL_KEYSPAN_USA19=y -CONFIG_USB_SERIAL_KEYSPAN_USA18X=y -CONFIG_USB_SERIAL_KEYSPAN_USA19W=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y -CONFIG_USB_SERIAL_KEYSPAN_USA49W=y -CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -CONFIG_USB_SERIAL_MCT_U232=y -# CONFIG_USB_SERIAL_PL2303 is not set -# CONFIG_USB_SERIAL_HP4X is not set -# CONFIG_USB_SERIAL_SAFE is not set -# CONFIG_USB_SERIAL_TI is not set -# CONFIG_USB_SERIAL_CYBERJACK is not set -# CONFIG_USB_SERIAL_XIRCOM is not set -# CONFIG_USB_SERIAL_OPTION is not set -# CONFIG_USB_SERIAL_OMNINET is not set -CONFIG_USB_EZUSB=y - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_AUERSWALD is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_LED is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGETKIT is not set -# CONFIG_USB_PHIDGETSERVO is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_LD is not set -# CONFIG_USB_TEST is not set - -# -# USB DSL modem support -# - -# -# USB Gadget Support -# -# CONFIG_USB_GADGET is not set - -# -# MMC/SD Card support -# -# CONFIG_MMC is not set - -# -# File systems -# -CONFIG_EXT2_FS=y -# CONFIG_EXT2_FS_XATTR is not set -# CONFIG_EXT2_FS_XIP is not set -# CONFIG_EXT3_FS is not set -# CONFIG_JBD is not set -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set -# CONFIG_XFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_ROMFS_FS is not set -CONFIG_INOTIFY=y -# CONFIG_QUOTA is not set -CONFIG_DNOTIFY=y -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_FUSE_FS is not set - -# -# CD-ROM/DVD Filesystems -# -# CONFIG_ISO9660_FS is not set -# CONFIG_UDF_FS is not set - -# -# DOS/FAT/NT Filesystems -# -# CONFIG_MSDOS_FS is not set -# CONFIG_VFAT_FS is not set -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set - -# -# Miscellaneous filesystems -# -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -# CONFIG_JFFS_FS is not set -# CONFIG_JFFS2_FS is not set -CONFIG_CRAMFS=y -# CONFIG_VXFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set - -# -# Network File Systems -# -CONFIG_NFS_FS=y -CONFIG_NFS_V3=y -# CONFIG_NFS_V3_ACL is not set -CONFIG_NFS_V4=y -# CONFIG_NFS_DIRECTIO is not set -# CONFIG_NFSD is not set -CONFIG_ROOT_NFS=y -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -CONFIG_SUNRPC_GSS=y -CONFIG_RPCSEC_GSS_KRB5=y -# CONFIG_RPCSEC_GSS_SPKM3 is not set -# CONFIG_SMB_FS is not set -# CONFIG_CIFS is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set -# CONFIG_9P_FS is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y - -# -# Native Language Support -# -# CONFIG_NLS is not set - -# -# Profiling support -# -# CONFIG_PROFILING is not set - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_MAGIC_SYSRQ is not set -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_SCHEDSTATS is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_KOBJECT is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_DEBUG_VM is not set -CONFIG_FRAME_POINTER=y -# CONFIG_RCU_TORTURE_TEST is not set -CONFIG_DEBUG_USER=y -# CONFIG_DEBUG_WAITQ is not set -# CONFIG_DEBUG_ERRORS is not set -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY is not set - -# -# Cryptographic options -# -CONFIG_CRYPTO=y -# CONFIG_CRYPTO_HMAC is not set -# CONFIG_CRYPTO_NULL is not set -# CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=y -# CONFIG_CRYPTO_SHA1 is not set -# CONFIG_CRYPTO_SHA256 is not set -# CONFIG_CRYPTO_SHA512 is not set -# CONFIG_CRYPTO_WP512 is not set -# CONFIG_CRYPTO_TGR192 is not set -CONFIG_CRYPTO_DES=y -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_TWOFISH is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_AES is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_TEA is not set -# CONFIG_CRYPTO_ARC4 is not set -# CONFIG_CRYPTO_KHAZAD is not set -# CONFIG_CRYPTO_ANUBIS is not set -# CONFIG_CRYPTO_DEFLATE is not set -# CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_CRC32C is not set -# CONFIG_CRYPTO_TEST is not set - -# -# Hardware crypto devices -# - -# -# Library routines -# -# CONFIG_CRC_CCITT is not set -# CONFIG_CRC16 is not set -CONFIG_CRC32=y -# CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y diff --git a/trunk/arch/arm/configs/ebsa110_defconfig b/trunk/arch/arm/configs/ebsa110_defconfig index afcfff6140f2..6f61929b97a8 100644 --- a/trunk/arch/arm/configs/ebsa110_defconfig +++ b/trunk/arch/arm/configs/ebsa110_defconfig @@ -63,6 +63,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set CONFIG_ARCH_EBSA110=y +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/edb7211_defconfig b/trunk/arch/arm/configs/edb7211_defconfig index 6ba7355ff85b..78b08ed4d5f4 100644 --- a/trunk/arch/arm/configs/edb7211_defconfig +++ b/trunk/arch/arm/configs/edb7211_defconfig @@ -57,6 +57,7 @@ CONFIG_BASE_SMALL=0 CONFIG_ARCH_CLPS711X=y # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/enp2611_defconfig b/trunk/arch/arm/configs/enp2611_defconfig index 9592e3925c79..fd7c0042bcca 100644 --- a/trunk/arch/arm/configs/enp2611_defconfig +++ b/trunk/arch/arm/configs/enp2611_defconfig @@ -86,6 +86,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/ep80219_defconfig b/trunk/arch/arm/configs/ep80219_defconfig index fbe312e757cb..96342afa9c5f 100644 --- a/trunk/arch/arm/configs/ep80219_defconfig +++ b/trunk/arch/arm/configs/ep80219_defconfig @@ -64,6 +64,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set CONFIG_ARCH_IOP3XX=y diff --git a/trunk/arch/arm/configs/epxa10db_defconfig b/trunk/arch/arm/configs/epxa10db_defconfig new file mode 100644 index 000000000000..9fb8b58c4954 --- /dev/null +++ b/trunk/arch/arm/configs/epxa10db_defconfig @@ -0,0 +1,644 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.12-rc1-bk2 +# Sun Mar 27 22:46:51 2005 +# +CONFIG_ARM=y +CONFIG_MMU=y +CONFIG_UID16=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_IOMAP=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_CLEAN_COMPILE=y +CONFIG_BROKEN_ON_SMP=y + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set +# CONFIG_HOTPLUG is not set +CONFIG_KOBJECT_UEVENT=y +# CONFIG_IKCONFIG is not set +# CONFIG_EMBEDDED is not set +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SHMEM=y +CONFIG_CC_ALIGN_FUNCTIONS=0 +CONFIG_CC_ALIGN_LABELS=0 +CONFIG_CC_ALIGN_LOOPS=0 +CONFIG_CC_ALIGN_JUMPS=0 +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_OBSOLETE_MODPARM=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_KMOD is not set + +# +# System Type +# +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +CONFIG_ARCH_CAMELOT=y +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_IOP3XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_H720X is not set + +# +# Epxa10db +# + +# +# PLD hotswap support +# +CONFIG_PLD=y +# CONFIG_PLD_HOTSWAP is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_ARM922T=y +CONFIG_CPU_32v4=y +CONFIG_CPU_ABRT_EV4T=y +CONFIG_CPU_CACHE_V4WT=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_COPY_V4WB=y +CONFIG_CPU_TLB_V4WBI=y + +# +# Processor Features +# +# CONFIG_ARM_THUMB is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set + +# +# Bus support +# + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +# CONFIG_PREEMPT is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="mem=32M console=ttyUA0,115200 initrd=0x00200000,8M root=/dev/ram0 rw" +# CONFIG_XIP_KERNEL is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set + +# +# Power management options +# +# CONFIG_PM is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_FW_LOADER is not set + +# +# Memory Technology Devices (MTD) +# +# CONFIG_MTD is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_CDROM_PKTCDVD is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_ATA_OVER_ETH is not set + +# +# SCSI device support +# +# CONFIG_SCSI is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Networking support +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +# CONFIG_NETLINK_DEV is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE 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 is not set +# 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 + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +CONFIG_PPP=y +CONFIG_PPP_MULTILINK=y +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=y +CONFIG_PPP_SYNC_TTY=y +CONFIG_PPP_DEFLATE=y +# CONFIG_PPP_BSDCOMP is not set +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_RAW is not set +# CONFIG_GAMEPORT is not set +CONFIG_SOUND_GAMEPORT=y + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_UART00=y +CONFIG_SERIAL_UART00_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_DRM is not set +# CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# Misc devices +# + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +# CONFIG_FB is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB is not set + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set + +# +# MMC/SD Card support +# +# CONFIG_MMC is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set + +# +# XFS support +# +# CONFIG_XFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +CONFIG_AUTOFS_FS=y +CONFIG_AUTOFS4_FS=y + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +# CONFIG_MSDOS_FS is not set +# CONFIG_VFAT_FS is not set +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_SYSFS=y +# CONFIG_DEVFS_FS is not set +# CONFIG_DEVPTS_FS_XATTR is not set +# CONFIG_TMPFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +# CONFIG_NFS_FS is not set +# CONFIG_NFSD is not set +CONFIG_SMB_FS=y +# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +# CONFIG_NLS_CODEPAGE_437 is not set +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +# CONFIG_NLS_ISO8859_1 is not set +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_UTF8 is not set + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +# CONFIG_DEBUG_KERNEL is not set +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_FRAME_POINTER=y +# CONFIG_DEBUG_USER is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Hardware crypto devices +# + +# +# Library routines +# +CONFIG_CRC_CCITT=y +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y diff --git a/trunk/arch/arm/configs/footbridge_defconfig b/trunk/arch/arm/configs/footbridge_defconfig index 2a612d23120b..9737c4850721 100644 --- a/trunk/arch/arm/configs/footbridge_defconfig +++ b/trunk/arch/arm/configs/footbridge_defconfig @@ -63,6 +63,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set CONFIG_ARCH_FOOTBRIDGE=y # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/fortunet_defconfig b/trunk/arch/arm/configs/fortunet_defconfig index 65dc73a88c43..b6f688d850dc 100644 --- a/trunk/arch/arm/configs/fortunet_defconfig +++ b/trunk/arch/arm/configs/fortunet_defconfig @@ -57,6 +57,7 @@ CONFIG_BASE_SMALL=0 CONFIG_ARCH_CLPS711X=y # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/h3600_defconfig b/trunk/arch/arm/configs/h3600_defconfig index 7a0da0b7facb..b9de07de80fe 100644 --- a/trunk/arch/arm/configs/h3600_defconfig +++ b/trunk/arch/arm/configs/h3600_defconfig @@ -65,6 +65,7 @@ CONFIG_OBSOLETE_MODPARM=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/h7201_defconfig b/trunk/arch/arm/configs/h7201_defconfig index 116920aecef7..39c13a354541 100644 --- a/trunk/arch/arm/configs/h7201_defconfig +++ b/trunk/arch/arm/configs/h7201_defconfig @@ -60,6 +60,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/h7202_defconfig b/trunk/arch/arm/configs/h7202_defconfig index 9d62ed16bf57..fbf5c244c696 100644 --- a/trunk/arch/arm/configs/h7202_defconfig +++ b/trunk/arch/arm/configs/h7202_defconfig @@ -63,6 +63,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/hackkit_defconfig b/trunk/arch/arm/configs/hackkit_defconfig index a45b57582b86..fb41a36a5a68 100644 --- a/trunk/arch/arm/configs/hackkit_defconfig +++ b/trunk/arch/arm/configs/hackkit_defconfig @@ -66,6 +66,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/integrator_defconfig b/trunk/arch/arm/configs/integrator_defconfig index d1ba7fdde818..27ee76825254 100644 --- a/trunk/arch/arm/configs/integrator_defconfig +++ b/trunk/arch/arm/configs/integrator_defconfig @@ -65,6 +65,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set CONFIG_ARCH_INTEGRATOR=y # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/iq31244_defconfig b/trunk/arch/arm/configs/iq31244_defconfig index c07628ceaf0c..e71443b97390 100644 --- a/trunk/arch/arm/configs/iq31244_defconfig +++ b/trunk/arch/arm/configs/iq31244_defconfig @@ -65,6 +65,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set CONFIG_ARCH_IOP3XX=y diff --git a/trunk/arch/arm/configs/iq80321_defconfig b/trunk/arch/arm/configs/iq80321_defconfig index 18fa1615fdfd..ab5ad23b27da 100644 --- a/trunk/arch/arm/configs/iq80321_defconfig +++ b/trunk/arch/arm/configs/iq80321_defconfig @@ -64,6 +64,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set CONFIG_ARCH_IOP3XX=y diff --git a/trunk/arch/arm/configs/iq80331_defconfig b/trunk/arch/arm/configs/iq80331_defconfig index f50035de1fff..bb536133ef87 100644 --- a/trunk/arch/arm/configs/iq80331_defconfig +++ b/trunk/arch/arm/configs/iq80331_defconfig @@ -64,6 +64,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set CONFIG_ARCH_IOP3XX=y diff --git a/trunk/arch/arm/configs/iq80332_defconfig b/trunk/arch/arm/configs/iq80332_defconfig index 18b3f372ed68..305f01f3a729 100644 --- a/trunk/arch/arm/configs/iq80332_defconfig +++ b/trunk/arch/arm/configs/iq80332_defconfig @@ -64,6 +64,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set CONFIG_ARCH_IOP3XX=y diff --git a/trunk/arch/arm/configs/ixdp2400_defconfig b/trunk/arch/arm/configs/ixdp2400_defconfig index d9d6bb86a6fa..e6a4d2656fe5 100644 --- a/trunk/arch/arm/configs/ixdp2400_defconfig +++ b/trunk/arch/arm/configs/ixdp2400_defconfig @@ -86,6 +86,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/ixdp2401_defconfig b/trunk/arch/arm/configs/ixdp2401_defconfig index 2dc9d499c7d7..5572cf95d5f8 100644 --- a/trunk/arch/arm/configs/ixdp2401_defconfig +++ b/trunk/arch/arm/configs/ixdp2401_defconfig @@ -86,6 +86,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/ixdp2800_defconfig b/trunk/arch/arm/configs/ixdp2800_defconfig index 4248123815e9..0fddbde85835 100644 --- a/trunk/arch/arm/configs/ixdp2800_defconfig +++ b/trunk/arch/arm/configs/ixdp2800_defconfig @@ -86,6 +86,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/ixdp2801_defconfig b/trunk/arch/arm/configs/ixdp2801_defconfig index ea8f4b478fa3..89b9aa06aa91 100644 --- a/trunk/arch/arm/configs/ixdp2801_defconfig +++ b/trunk/arch/arm/configs/ixdp2801_defconfig @@ -86,6 +86,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/ixp4xx_defconfig b/trunk/arch/arm/configs/ixp4xx_defconfig index 4975b914f923..613afab62720 100644 --- a/trunk/arch/arm/configs/ixp4xx_defconfig +++ b/trunk/arch/arm/configs/ixp4xx_defconfig @@ -85,6 +85,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/jornada720_defconfig b/trunk/arch/arm/configs/jornada720_defconfig index ad1048db96fb..b88aeba82bc0 100644 --- a/trunk/arch/arm/configs/jornada720_defconfig +++ b/trunk/arch/arm/configs/jornada720_defconfig @@ -63,6 +63,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/lart_defconfig b/trunk/arch/arm/configs/lart_defconfig index c3a932844160..7033829ed145 100644 --- a/trunk/arch/arm/configs/lart_defconfig +++ b/trunk/arch/arm/configs/lart_defconfig @@ -62,6 +62,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/lpd7a400_defconfig b/trunk/arch/arm/configs/lpd7a400_defconfig index 67eaa26c2647..d64706d3ff35 100644 --- a/trunk/arch/arm/configs/lpd7a400_defconfig +++ b/trunk/arch/arm/configs/lpd7a400_defconfig @@ -60,6 +60,7 @@ CONFIG_BASE_SMALL=0 # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/lpd7a404_defconfig b/trunk/arch/arm/configs/lpd7a404_defconfig index 208d591ebfce..87cbedfb303f 100644 --- a/trunk/arch/arm/configs/lpd7a404_defconfig +++ b/trunk/arch/arm/configs/lpd7a404_defconfig @@ -60,6 +60,7 @@ CONFIG_BASE_SMALL=0 # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/lubbock_defconfig b/trunk/arch/arm/configs/lubbock_defconfig index 81daadcbe0ba..4bc8717c6f57 100644 --- a/trunk/arch/arm/configs/lubbock_defconfig +++ b/trunk/arch/arm/configs/lubbock_defconfig @@ -63,6 +63,7 @@ CONFIG_OBSOLETE_MODPARM=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/lusl7200_defconfig b/trunk/arch/arm/configs/lusl7200_defconfig index 42f6a77bc3c0..3ca64cabc92c 100644 --- a/trunk/arch/arm/configs/lusl7200_defconfig +++ b/trunk/arch/arm/configs/lusl7200_defconfig @@ -62,6 +62,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/mainstone_defconfig b/trunk/arch/arm/configs/mainstone_defconfig index b112bd75bda2..153d68594beb 100644 --- a/trunk/arch/arm/configs/mainstone_defconfig +++ b/trunk/arch/arm/configs/mainstone_defconfig @@ -63,6 +63,7 @@ CONFIG_OBSOLETE_MODPARM=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/mx1ads_defconfig b/trunk/arch/arm/configs/mx1ads_defconfig index d16f6cd6e039..6517d167acf0 100644 --- a/trunk/arch/arm/configs/mx1ads_defconfig +++ b/trunk/arch/arm/configs/mx1ads_defconfig @@ -63,6 +63,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/neponset_defconfig b/trunk/arch/arm/configs/neponset_defconfig index 3d35255c64ed..7fb1f7c7bf43 100644 --- a/trunk/arch/arm/configs/neponset_defconfig +++ b/trunk/arch/arm/configs/neponset_defconfig @@ -65,6 +65,7 @@ CONFIG_OBSOLETE_MODPARM=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/netwinder_defconfig b/trunk/arch/arm/configs/netwinder_defconfig index 2cae1ead9f9b..6e81acf94c2f 100644 --- a/trunk/arch/arm/configs/netwinder_defconfig +++ b/trunk/arch/arm/configs/netwinder_defconfig @@ -58,6 +58,7 @@ CONFIG_BASE_SMALL=0 # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set CONFIG_ARCH_FOOTBRIDGE=y # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/omap_h2_1610_defconfig b/trunk/arch/arm/configs/omap_h2_1610_defconfig index ee3ecbd9002d..529f0f72e1e9 100644 --- a/trunk/arch/arm/configs/omap_h2_1610_defconfig +++ b/trunk/arch/arm/configs/omap_h2_1610_defconfig @@ -85,6 +85,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/pleb_defconfig b/trunk/arch/arm/configs/pleb_defconfig index 24e8bdd4cb91..10fec890578d 100644 --- a/trunk/arch/arm/configs/pleb_defconfig +++ b/trunk/arch/arm/configs/pleb_defconfig @@ -63,6 +63,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/pxa255-idp_defconfig b/trunk/arch/arm/configs/pxa255-idp_defconfig index b71d31a4bb56..21c327883d8c 100644 --- a/trunk/arch/arm/configs/pxa255-idp_defconfig +++ b/trunk/arch/arm/configs/pxa255-idp_defconfig @@ -63,6 +63,7 @@ CONFIG_OBSOLETE_MODPARM=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/realview_defconfig b/trunk/arch/arm/configs/realview_defconfig index 3f1ec4e304f7..0485b2f1cc20 100644 --- a/trunk/arch/arm/configs/realview_defconfig +++ b/trunk/arch/arm/configs/realview_defconfig @@ -65,6 +65,7 @@ CONFIG_OBSOLETE_MODPARM=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/rpc_defconfig b/trunk/arch/arm/configs/rpc_defconfig index b498afdc03b6..19184c1010ad 100644 --- a/trunk/arch/arm/configs/rpc_defconfig +++ b/trunk/arch/arm/configs/rpc_defconfig @@ -66,6 +66,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/s3c2410_defconfig b/trunk/arch/arm/configs/s3c2410_defconfig index 33f31080a98c..3f97590c91f2 100644 --- a/trunk/arch/arm/configs/s3c2410_defconfig +++ b/trunk/arch/arm/configs/s3c2410_defconfig @@ -85,6 +85,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/shannon_defconfig b/trunk/arch/arm/configs/shannon_defconfig index d052c8f80515..e3facc4fe792 100644 --- a/trunk/arch/arm/configs/shannon_defconfig +++ b/trunk/arch/arm/configs/shannon_defconfig @@ -62,6 +62,7 @@ CONFIG_OBSOLETE_MODPARM=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/shark_defconfig b/trunk/arch/arm/configs/shark_defconfig index c48d17062262..271823f0d708 100644 --- a/trunk/arch/arm/configs/shark_defconfig +++ b/trunk/arch/arm/configs/shark_defconfig @@ -66,6 +66,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/simpad_defconfig b/trunk/arch/arm/configs/simpad_defconfig index 2e5a616cc98d..5373eeb7d578 100644 --- a/trunk/arch/arm/configs/simpad_defconfig +++ b/trunk/arch/arm/configs/simpad_defconfig @@ -64,6 +64,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/smdk2410_defconfig b/trunk/arch/arm/configs/smdk2410_defconfig index 4d123d33c7df..2c60865fda19 100644 --- a/trunk/arch/arm/configs/smdk2410_defconfig +++ b/trunk/arch/arm/configs/smdk2410_defconfig @@ -58,6 +58,7 @@ CONFIG_BASE_SMALL=0 # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/spitz_defconfig b/trunk/arch/arm/configs/spitz_defconfig index d1ace3abfd8a..9895539533d6 100644 --- a/trunk/arch/arm/configs/spitz_defconfig +++ b/trunk/arch/arm/configs/spitz_defconfig @@ -87,6 +87,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/configs/versatile_defconfig b/trunk/arch/arm/configs/versatile_defconfig index 2687a225aa6a..d72f2c754268 100644 --- a/trunk/arch/arm/configs/versatile_defconfig +++ b/trunk/arch/arm/configs/versatile_defconfig @@ -64,6 +64,7 @@ CONFIG_KMOD=y # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set diff --git a/trunk/arch/arm/kernel/apm.c b/trunk/arch/arm/kernel/apm.c index 766b6c05c6db..b9df1b782bb1 100644 --- a/trunk/arch/arm/kernel/apm.c +++ b/trunk/arch/arm/kernel/apm.c @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include diff --git a/trunk/arch/arm/kernel/ecard.c b/trunk/arch/arm/kernel/ecard.c index 96fd91926c9b..dceb826bd216 100644 --- a/trunk/arch/arm/kernel/ecard.c +++ b/trunk/arch/arm/kernel/ecard.c @@ -40,7 +40,6 @@ #include #include #include -#include #include #include @@ -207,7 +206,7 @@ static void ecard_task_readbytes(struct ecard_request *req) static DECLARE_WAIT_QUEUE_HEAD(ecard_wait); static struct ecard_request *ecard_req; -static DEFINE_MUTEX(ecard_mutex); +static DECLARE_MUTEX(ecard_sem); /* * Set up the expansion card daemon's page tables. @@ -300,7 +299,7 @@ static void ecard_call(struct ecard_request *req) req->complete = &completion; - mutex_lock(&ecard_mutex); + down(&ecard_sem); ecard_req = req; wake_up(&ecard_wait); @@ -308,7 +307,7 @@ static void ecard_call(struct ecard_request *req) * Now wait for kecardd to run. */ wait_for_completion(&completion); - mutex_unlock(&ecard_mutex); + up(&ecard_sem); } /* ======================= Mid-level card control ===================== */ diff --git a/trunk/arch/arm/kernel/fiq.c b/trunk/arch/arm/kernel/fiq.c index 1ec3f7faa259..9299dfc25698 100644 --- a/trunk/arch/arm/kernel/fiq.c +++ b/trunk/arch/arm/kernel/fiq.c @@ -101,7 +101,7 @@ void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs) ldmia %1, {r8 - r14}\n\ msr cpsr_c, %0 @ return to SVC mode\n\ mov r0, r0\n\ - ldmfd sp, {fp, sp, pc}" + ldmea fp, {fp, sp, pc}" : "=&r" (tmp) : "r" (®s->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE)); } @@ -119,7 +119,7 @@ void __attribute__((naked)) get_fiq_regs(struct pt_regs *regs) stmia %1, {r8 - r14}\n\ msr cpsr_c, %0 @ return to SVC mode\n\ mov r0, r0\n\ - ldmfd sp, {fp, sp, pc}" + ldmea fp, {fp, sp, pc}" : "=&r" (tmp) : "r" (®s->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE)); } diff --git a/trunk/arch/arm/kernel/irq.c b/trunk/arch/arm/kernel/irq.c index 1d50d2b98f55..b5645c4462cf 100644 --- a/trunk/arch/arm/kernel/irq.c +++ b/trunk/arch/arm/kernel/irq.c @@ -710,8 +710,7 @@ int setup_irq(unsigned int irq, struct irqaction *new) desc->pending = 0; desc->disable_depth = 1; - if (new->flags & SA_TRIGGER_MASK && - desc->chip->set_type) { + if (new->flags & SA_TRIGGER_MASK) { unsigned int type = new->flags & SA_TRIGGER_MASK; desc->chip->set_type(irq, type); } diff --git a/trunk/arch/arm/kernel/process.c b/trunk/arch/arm/kernel/process.c index 4b4e4cf79c80..54a21bdcba5c 100644 --- a/trunk/arch/arm/kernel/process.c +++ b/trunk/arch/arm/kernel/process.c @@ -342,10 +342,10 @@ void flush_thread(void) void release_thread(struct task_struct *dead_task) { #if defined(CONFIG_VFP) - vfp_release_thread(&task_thread_info(dead_task)->vfpstate); + vfp_release_thread(&dead_task->thread_info->vfpstate); #endif #if defined(CONFIG_IWMMXT) - iwmmxt_task_release(task_thread_info(dead_task)); + iwmmxt_task_release(dead_task->thread_info); #endif } @@ -355,9 +355,10 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long stack_start, unsigned long stk_sz, struct task_struct *p, struct pt_regs *regs) { - struct thread_info *thread = task_thread_info(p); - struct pt_regs *childregs = task_pt_regs(p); + struct thread_info *thread = p->thread_info; + struct pt_regs *childregs; + childregs = (void *)thread + THREAD_START_SP - sizeof(*regs); *childregs = *regs; childregs->ARM_r0 = 0; childregs->ARM_sp = stack_start; @@ -459,8 +460,8 @@ unsigned long get_wchan(struct task_struct *p) if (!p || p == current || p->state == TASK_RUNNING) return 0; - stack_start = (unsigned long)end_of_stack(p); - stack_end = (unsigned long)task_stack_page(p) + THREAD_SIZE; + stack_start = (unsigned long)(p->thread_info + 1); + stack_end = ((unsigned long)p->thread_info) + THREAD_SIZE; fp = thread_saved_fp(p); do { diff --git a/trunk/arch/arm/kernel/ptrace.c b/trunk/arch/arm/kernel/ptrace.c index e591f72bcdeb..2b84f78d7b0f 100644 --- a/trunk/arch/arm/kernel/ptrace.c +++ b/trunk/arch/arm/kernel/ptrace.c @@ -54,6 +54,23 @@ #define BREAKINST_THUMB 0xde01 #endif +/* + * Get the address of the live pt_regs for the specified task. + * These are saved onto the top kernel stack when the process + * is not running. + * + * Note: if a user thread is execve'd from kernel space, the + * kernel stack will not be empty on entry to the kernel, so + * ptracing these tasks will fail. + */ +static inline struct pt_regs * +get_user_regs(struct task_struct *task) +{ + return (struct pt_regs *) + ((unsigned long)task->thread_info + THREAD_SIZE - + 8 - sizeof(struct pt_regs)); +} + /* * this routine will get a word off of the processes privileged stack. * the offset is how far from the base addr as stored in the THREAD. @@ -62,7 +79,7 @@ */ static inline long get_user_reg(struct task_struct *task, int offset) { - return task_pt_regs(task)->uregs[offset]; + return get_user_regs(task)->uregs[offset]; } /* @@ -74,7 +91,7 @@ static inline long get_user_reg(struct task_struct *task, int offset) static inline int put_user_reg(struct task_struct *task, int offset, long data) { - struct pt_regs newregs, *regs = task_pt_regs(task); + struct pt_regs newregs, *regs = get_user_regs(task); int ret = -EINVAL; newregs = *regs; @@ -404,7 +421,7 @@ void ptrace_set_bpt(struct task_struct *child) u32 insn; int res; - regs = task_pt_regs(child); + regs = get_user_regs(child); pc = instruction_pointer(regs); if (thumb_mode(regs)) { @@ -555,7 +572,7 @@ static int ptrace_write_user(struct task_struct *tsk, unsigned long off, */ static int ptrace_getregs(struct task_struct *tsk, void __user *uregs) { - struct pt_regs *regs = task_pt_regs(tsk); + struct pt_regs *regs = get_user_regs(tsk); return copy_to_user(uregs, regs, sizeof(struct pt_regs)) ? -EFAULT : 0; } @@ -570,7 +587,7 @@ static int ptrace_setregs(struct task_struct *tsk, void __user *uregs) ret = -EFAULT; if (copy_from_user(&newregs, uregs, sizeof(struct pt_regs)) == 0) { - struct pt_regs *regs = task_pt_regs(tsk); + struct pt_regs *regs = get_user_regs(tsk); ret = -EINVAL; if (valid_user_regs(&newregs)) { @@ -587,7 +604,7 @@ static int ptrace_setregs(struct task_struct *tsk, void __user *uregs) */ static int ptrace_getfpregs(struct task_struct *tsk, void __user *ufp) { - return copy_to_user(ufp, &task_thread_info(tsk)->fpstate, + return copy_to_user(ufp, &tsk->thread_info->fpstate, sizeof(struct user_fp)) ? -EFAULT : 0; } @@ -596,7 +613,7 @@ static int ptrace_getfpregs(struct task_struct *tsk, void __user *ufp) */ static int ptrace_setfpregs(struct task_struct *tsk, void __user *ufp) { - struct thread_info *thread = task_thread_info(tsk); + struct thread_info *thread = tsk->thread_info; thread->used_cp[1] = thread->used_cp[2] = 1; return copy_from_user(&thread->fpstate, ufp, sizeof(struct user_fp)) ? -EFAULT : 0; @@ -609,7 +626,7 @@ static int ptrace_setfpregs(struct task_struct *tsk, void __user *ufp) */ static int ptrace_getwmmxregs(struct task_struct *tsk, void __user *ufp) { - struct thread_info *thread = task_thread_info(tsk); + struct thread_info *thread = tsk->thread_info; void *ptr = &thread->fpstate; if (!test_ti_thread_flag(thread, TIF_USING_IWMMXT)) @@ -626,7 +643,7 @@ static int ptrace_getwmmxregs(struct task_struct *tsk, void __user *ufp) */ static int ptrace_setwmmxregs(struct task_struct *tsk, void __user *ufp) { - struct thread_info *thread = task_thread_info(tsk); + struct thread_info *thread = tsk->thread_info; void *ptr = &thread->fpstate; if (!test_ti_thread_flag(thread, TIF_USING_IWMMXT)) @@ -762,7 +779,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) #endif case PTRACE_GET_THREAD_AREA: - ret = put_user(task_thread_info(child)->tp_value, + ret = put_user(child->thread_info->tp_value, (unsigned long __user *) data); break; diff --git a/trunk/arch/arm/kernel/setup.c b/trunk/arch/arm/kernel/setup.c index c45d10d07bde..2cab741ad0f8 100644 --- a/trunk/arch/arm/kernel/setup.c +++ b/trunk/arch/arm/kernel/setup.c @@ -205,7 +205,7 @@ static const char *proc_arch[] = { "5TE", "5TEJ", "6TEJ", - "7", + "?(10)", "?(11)", "?(12)", "?(13)", @@ -258,17 +258,14 @@ int cpu_architecture(void) { int cpu_arch; - if ((processor_id & 0x0008f000) == 0) { + if ((processor_id & 0x0000f000) == 0) { cpu_arch = CPU_ARCH_UNKNOWN; - } else if ((processor_id & 0x0008f000) == 0x00007000) { + } else if ((processor_id & 0x0000f000) == 0x00007000) { cpu_arch = (processor_id & (1 << 23)) ? CPU_ARCH_ARMv4T : CPU_ARCH_ARMv3; - } else if ((processor_id & 0x00080000) == 0x00000000) { + } else { cpu_arch = (processor_id >> 16) & 7; if (cpu_arch) cpu_arch += CPU_ARCH_ARMv3; - } else { - /* the revised CPUID */ - cpu_arch = ((processor_id >> 12) & 0xf) - 0xb + CPU_ARCH_ARMv6; } return cpu_arch; @@ -866,11 +863,11 @@ static int c_show(struct seq_file *m, void *v) seq_printf(m, "\nCPU implementer\t: 0x%02x\n", processor_id >> 24); seq_printf(m, "CPU architecture: %s\n", proc_arch[cpu_architecture()]); - if ((processor_id & 0x0008f000) == 0x00000000) { + if ((processor_id & 0x0000f000) == 0x00000000) { /* pre-ARM7 */ seq_printf(m, "CPU part\t\t: %07x\n", processor_id >> 4); } else { - if ((processor_id & 0x0008f000) == 0x00007000) { + if ((processor_id & 0x0000f000) == 0x00007000) { /* ARM7 */ seq_printf(m, "CPU variant\t: 0x%02x\n", (processor_id >> 16) & 127); diff --git a/trunk/arch/arm/kernel/smp.c b/trunk/arch/arm/kernel/smp.c index 7338948bd7d3..373c0959bc2f 100644 --- a/trunk/arch/arm/kernel/smp.c +++ b/trunk/arch/arm/kernel/smp.c @@ -114,7 +114,7 @@ int __cpuinit __cpu_up(unsigned int cpu) * We need to tell the secondary core where to find * its stack and the page tables. */ - secondary_data.stack = task_stack_page(idle) + THREAD_START_SP; + secondary_data.stack = (void *)idle->thread_info + THREAD_START_SP; secondary_data.pgdir = virt_to_phys(pgd); wmb(); @@ -245,7 +245,7 @@ void __cpuexit cpu_die(void) __asm__("mov sp, %0\n" " b secondary_start_kernel" : - : "r" (task_stack_page(current) + THREAD_SIZE - 8)); + : "r" ((void *)current->thread_info + THREAD_SIZE - 8)); } #endif /* CONFIG_HOTPLUG_CPU */ diff --git a/trunk/arch/arm/kernel/traps.c b/trunk/arch/arm/kernel/traps.c index 93cfd3ffcc72..c9fe6f5f7ee3 100644 --- a/trunk/arch/arm/kernel/traps.c +++ b/trunk/arch/arm/kernel/traps.c @@ -164,7 +164,7 @@ static void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk) } else if (verify_stack(fp)) { printk("invalid frame pointer 0x%08x", fp); ok = 0; - } else if (fp < (unsigned long)end_of_stack(tsk)) + } else if (fp < (unsigned long)(tsk->thread_info + 1)) printk("frame pointer underflow"); printk("\n"); @@ -210,7 +210,7 @@ static void __die(const char *str, int err, struct thread_info *thread, struct p if (!user_mode(regs) || in_interrupt()) { dump_mem("Stack: ", regs->ARM_sp, - THREAD_SIZE + (unsigned long)task_stack_page(tsk)); + THREAD_SIZE + (unsigned long)tsk->thread_info); dump_backtrace(regs, tsk); dump_instr(regs); } diff --git a/trunk/arch/arm/lib/csumpartialcopy.S b/trunk/arch/arm/lib/csumpartialcopy.S index 21effe0dbf97..990ee63b2465 100644 --- a/trunk/arch/arm/lib/csumpartialcopy.S +++ b/trunk/arch/arm/lib/csumpartialcopy.S @@ -18,13 +18,11 @@ */ .macro save_regs - mov ip, sp stmfd sp!, {r1, r4 - r8, fp, ip, lr, pc} - sub fp, ip, #4 .endm - .macro load_regs - ldmfd sp, {r1, r4 - r8, fp, sp, pc} + .macro load_regs,flags + LOADREGS(\flags,fp,{r1, r4 - r8, fp, sp, pc}) .endm .macro load1b, reg1 diff --git a/trunk/arch/arm/lib/csumpartialcopygeneric.S b/trunk/arch/arm/lib/csumpartialcopygeneric.S index c50e8f5285d1..4a4609c19095 100644 --- a/trunk/arch/arm/lib/csumpartialcopygeneric.S +++ b/trunk/arch/arm/lib/csumpartialcopygeneric.S @@ -23,7 +23,7 @@ len .req r2 sum .req r3 .Lzero: mov r0, sum - load_regs + load_regs ea /* * Align an unaligned destination pointer. We know that @@ -87,7 +87,9 @@ sum .req r3 b .Ldone FN_ENTRY + mov ip, sp save_regs + sub fp, ip, #4 cmp len, #8 @ Ensure that we have at least blo .Lless8 @ 8 bytes to copy. @@ -161,7 +163,7 @@ FN_ENTRY ldr sum, [sp, #0] @ dst tst sum, #1 movne r0, r0, ror #8 - load_regs + load_regs ea .Lsrc_not_aligned: adc sum, sum, #0 @ include C from dst alignment diff --git a/trunk/arch/arm/lib/csumpartialcopyuser.S b/trunk/arch/arm/lib/csumpartialcopyuser.S index c3b93e22ea25..333bca292de9 100644 --- a/trunk/arch/arm/lib/csumpartialcopyuser.S +++ b/trunk/arch/arm/lib/csumpartialcopyuser.S @@ -18,13 +18,11 @@ .text .macro save_regs - mov ip, sp stmfd sp!, {r1 - r2, r4 - r8, fp, ip, lr, pc} - sub fp, ip, #4 .endm - .macro load_regs - ldmfd sp, {r1, r2, r4-r8, fp, sp, pc} + .macro load_regs,flags + ldm\flags fp, {r1, r2, r4-r8, fp, sp, pc} .endm .macro load1b, reg1 @@ -102,5 +100,5 @@ 6002: teq r2, r1 strneb r0, [r1], #1 bne 6002b - load_regs + load_regs ea .previous diff --git a/trunk/arch/arm/mach-aaec2000/clock.c b/trunk/arch/arm/mach-aaec2000/clock.c index 74aa7a39bb68..1c84c60941e1 100644 --- a/trunk/arch/arm/mach-aaec2000/clock.c +++ b/trunk/arch/arm/mach-aaec2000/clock.c @@ -16,27 +16,26 @@ #include #include #include -#include #include #include "clock.h" static LIST_HEAD(clocks); -static DEFINE_MUTEX(clocks_mutex); +static DECLARE_MUTEX(clocks_sem); struct clk *clk_get(struct device *dev, const char *id) { struct clk *p, *clk = ERR_PTR(-ENOENT); - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_for_each_entry(p, &clocks, node) { if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) { clk = p; break; } } - mutex_unlock(&clocks_mutex); + up(&clocks_sem); return clk; } @@ -79,18 +78,18 @@ EXPORT_SYMBOL(clk_set_rate); int clk_register(struct clk *clk) { - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_add(&clk->node, &clocks); - mutex_unlock(&clocks_mutex); + up(&clocks_sem); return 0; } EXPORT_SYMBOL(clk_register); void clk_unregister(struct clk *clk) { - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_del(&clk->node); - mutex_unlock(&clocks_mutex); + up(&clocks_sem); } EXPORT_SYMBOL(clk_unregister); diff --git a/trunk/arch/arm/mach-at91rm9200/Kconfig b/trunk/arch/arm/mach-at91rm9200/Kconfig deleted file mode 100644 index 4b7218fc3eb1..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/Kconfig +++ /dev/null @@ -1,54 +0,0 @@ -if ARCH_AT91RM9200 - -menu "AT91RM9200 Implementations" - -comment "AT91RM9200 Board Type" - -config ARCH_AT91RM9200DK - bool "Atmel AT91RM9200-DK Development board" - depends on ARCH_AT91RM9200 - help - Select this if you are using Atmel's AT91RM9200-DK Development board - -config MACH_AT91RM9200EK - bool "Atmel AT91RM9200-EK Evaluation Kit" - depends on ARCH_AT91RM9200 - help - Select this if you are using Atmel's AT91RM9200-EK Evaluation Kit - -config MACH_CSB337 - bool "Cogent CSB337 board" - depends on ARCH_AT91RM9200 - help - Select this if you are using Cogent's CSB337 board - -config MACH_CSB637 - bool "Cogent CSB637 board" - depends on ARCH_AT91RM9200 - help - Select this if you are using Cogent's CSB637 board - -config MACH_CARMEVA - bool "Conitec's ARM&EVA" - depends on ARCH_AT91RM9200 - help - Select this if you are using Conitec's AT91RM9200-MCU-Module - -config MACH_KB9200 - bool "KwikByte's KB920x" - depends on ARCH_AT91RM9200 - help - Select this if you are using KwikByte's KB920x board - - -comment "AT91RM9200 Feature Selections" - -config AT91_PROGRAMMABLE_CLOCKS - bool "Programmable Clocks" - help - Select this if you need to program one or more of the PCK0..PCK3 - programmable clock outputs. - -endmenu - -endif diff --git a/trunk/arch/arm/mach-at91rm9200/Makefile b/trunk/arch/arm/mach-at91rm9200/Makefile deleted file mode 100644 index 75e6ee318ded..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -# -# Makefile for the linux kernel. -# - -obj-y := clock.o irq.o time.o gpio.o common.o devices.o -obj-m := -obj-n := -obj- := - -# Board-specific support -obj-$(CONFIG_ARCH_AT91RM9200DK) += board-dk.o -obj-$(CONFIG_MACH_AT91RM9200EK) += board-ek.o -obj-$(CONFIG_MACH_CSB337) += board-csb337.o -obj-$(CONFIG_MACH_CSB637) += board-csb637.o -#obj-$(CONFIG_MACH_CARMEVA) += board-carmeva.o -#obj-$(CONFIG_MACH_KB9200) += board-kb9202.o - -# LEDs support -#led-$(CONFIG_ARCH_AT91RM9200DK) += leds.o -#led-$(CONFIG_MACH_AT91RM9200EK) += leds.o -#led-$(CONFIG_MACH_CSB337) += leds.o -#led-$(CONFIG_MACH_CSB637) += leds.o -#led-$(CONFIG_MACH_KB9200) += leds.o -obj-$(CONFIG_LEDS) += $(led-y) - -# VGA support -#obj-$(CONFIG_FB_S1D13XXX) += ics1523.o diff --git a/trunk/arch/arm/mach-at91rm9200/Makefile.boot b/trunk/arch/arm/mach-at91rm9200/Makefile.boot deleted file mode 100644 index e667dcc7cd34..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/Makefile.boot +++ /dev/null @@ -1,9 +0,0 @@ -# Note: the following conditions must always be true: -# ZRELADDR == virt_to_phys(TEXTADDR) -# PARAMS_PHYS must be within 4MB of ZRELADDR -# INITRD_PHYS must be in RAM - - zreladdr-y := 0x20008000 -params_phys-y := 0x20000100 -initrd_phys-y := 0x20410000 - diff --git a/trunk/arch/arm/mach-at91rm9200/board-csb337.c b/trunk/arch/arm/mach-at91rm9200/board-csb337.c deleted file mode 100644 index 4aec834ee47f..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/board-csb337.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - * linux/arch/arm/mach-at91rm9200/board-csb337.c - * - * Copyright (C) 2005 SAN People - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include "generic.h" - -static void __init csb337_init_irq(void) -{ - /* Initialize AIC controller */ - at91rm9200_init_irq(NULL); - - /* Set up the GPIO interrupts */ - at91_gpio_irq_setup(BGA_GPIO_BANKS); -} - -/* - * Serial port configuration. - * 0 .. 3 = USART0 .. USART3 - * 4 = DBGU - */ -#define CSB337_UART_MAP { 4, 1, -1, -1, -1 } /* ttyS0, ..., ttyS4 */ -#define CSB337_SERIAL_CONSOLE 0 /* ttyS0 */ - -static void __init csb337_map_io(void) -{ - int serial[AT91_NR_UART] = CSB337_UART_MAP; - int i; - - at91rm9200_map_io(); - - /* Initialize clocks: 3.6864 MHz crystal */ - at91_clock_init(3686400); - -#ifdef CONFIG_SERIAL_AT91 - at91_console_port = CSB337_SERIAL_CONSOLE; - memcpy(at91_serial_map, serial, sizeof(serial)); - - /* Register UARTs */ - for (i = 0; i < AT91_NR_UART; i++) { - if (serial[i] >= 0) - at91_register_uart(i, serial[i]); - } -#endif -} - -static struct at91_eth_data __initdata csb337_eth_data = { - .phy_irq_pin = AT91_PIN_PC2, - .is_rmii = 0, -}; - -static struct at91_usbh_data __initdata csb337_usbh_data = { - .ports = 2, -}; - -static struct at91_udc_data __initdata csb337_udc_data = { - // this has no VBUS sensing pin - .pullup_pin = AT91_PIN_PA24, -}; - -static struct at91_cf_data __initdata csb337_cf_data = { - /* - * connector P4 on the CSB 337 mates to - * connector P8 on the CSB 300CF - */ - - /* CSB337 specific */ - .det_pin = AT91_PIN_PC3, - - /* CSB300CF specific */ - .irq_pin = AT91_PIN_PA19, - .vcc_pin = AT91_PIN_PD0, - .rst_pin = AT91_PIN_PD2, -}; - -static struct at91_mmc_data __initdata csb337_mmc_data = { - .det_pin = AT91_PIN_PD5, - .is_b = 0, - .wire4 = 1, - .wp_pin = AT91_PIN_PD6, -}; - -static void __init csb337_board_init(void) -{ - /* Ethernet */ - at91_add_device_eth(&csb337_eth_data); - /* USB Host */ - at91_add_device_usbh(&csb337_usbh_data); - /* USB Device */ - at91_add_device_udc(&csb337_udc_data); - /* Compact Flash */ - at91_set_gpio_input(AT91_PIN_PB22, 1); /* IOIS16 */ - at91_add_device_cf(&csb337_cf_data); - /* MMC */ - at91_add_device_mmc(&csb337_mmc_data); -} - -MACHINE_START(CSB337, "Cogent CSB337") - /* Maintainer: Bill Gatliff */ - .phys_ram = AT91_SDRAM_BASE, - .phys_io = AT91_BASE_SYS, - .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc, - .boot_params = AT91_SDRAM_BASE + 0x100, - .timer = &at91rm9200_timer, - .map_io = csb337_map_io, - .init_irq = csb337_init_irq, - .init_machine = csb337_board_init, -MACHINE_END diff --git a/trunk/arch/arm/mach-at91rm9200/board-csb637.c b/trunk/arch/arm/mach-at91rm9200/board-csb637.c deleted file mode 100644 index 23e4cc21481a..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/board-csb637.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - * linux/arch/arm/mach-at91rm9200/board-csb637.c - * - * Copyright (C) 2005 SAN People - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include "generic.h" - -static void __init csb637_init_irq(void) -{ - /* Initialize AIC controller */ - at91rm9200_init_irq(NULL); - - /* Set up the GPIO interrupts */ - at91_gpio_irq_setup(BGA_GPIO_BANKS); -} - -/* - * Serial port configuration. - * 0 .. 3 = USART0 .. USART3 - * 4 = DBGU - */ -#define CSB637_UART_MAP { 4, 1, -1, -1, -1 } /* ttyS0, ..., ttyS4 */ -#define CSB637_SERIAL_CONSOLE 0 /* ttyS0 */ - -static void __init csb637_map_io(void) -{ - int serial[AT91_NR_UART] = CSB637_UART_MAP; - int i; - - at91rm9200_map_io(); - - /* Initialize clocks: 3.6864 MHz crystal */ - at91_clock_init(3686400); - -#ifdef CONFIG_SERIAL_AT91 - at91_console_port = CSB637_SERIAL_CONSOLE; - memcpy(at91_serial_map, serial, sizeof(serial)); - - /* Register UARTs */ - for (i = 0; i < AT91_NR_UART; i++) { - if (serial[i] >= 0) - at91_register_uart(i, serial[i]); - } -#endif -} - -static struct at91_eth_data __initdata csb637_eth_data = { - .phy_irq_pin = AT91_PIN_PC0, - .is_rmii = 0, -}; - -static struct at91_usbh_data __initdata csb637_usbh_data = { - .ports = 2, -}; - -static struct at91_udc_data __initdata csb637_udc_data = { - .vbus_pin = AT91_PIN_PB28, - .pullup_pin = AT91_PIN_PB1, -}; - -static void __init csb637_board_init(void) -{ - /* Ethernet */ - at91_add_device_eth(&csb637_eth_data); - /* USB Host */ - at91_add_device_usbh(&csb637_usbh_data); - /* USB Device */ - at91_add_device_udc(&csb637_udc_data); -} - -MACHINE_START(CSB637, "Cogent CSB637") - /* Maintainer: Bill Gatliff */ - .phys_ram = AT91_SDRAM_BASE, - .phys_io = AT91_BASE_SYS, - .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc, - .boot_params = AT91_SDRAM_BASE + 0x100, - .timer = &at91rm9200_timer, - .map_io = csb637_map_io, - .init_irq = csb637_init_irq, - .init_machine = csb637_board_init, -MACHINE_END diff --git a/trunk/arch/arm/mach-at91rm9200/board-dk.c b/trunk/arch/arm/mach-at91rm9200/board-dk.c deleted file mode 100644 index 8c747a31b95a..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/board-dk.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - * linux/arch/arm/mach-at91rm9200/board-dk.c - * - * Copyright (C) 2005 SAN People - * - * Epson S1D framebuffer glue code is: - * Copyright (C) 2005 Thibaut VARENE - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include "generic.h" - -static void __init dk_init_irq(void) -{ - /* Initialize AIC controller */ - at91rm9200_init_irq(NULL); - - /* Set up the GPIO interrupts */ - at91_gpio_irq_setup(BGA_GPIO_BANKS); -} - -/* - * Serial port configuration. - * 0 .. 3 = USART0 .. USART3 - * 4 = DBGU - */ -#define DK_UART_MAP { 4, 1, -1, -1, -1 } /* ttyS0, ..., ttyS4 */ -#define DK_SERIAL_CONSOLE 0 /* ttyS0 */ - -static void __init dk_map_io(void) -{ - int serial[AT91_NR_UART] = DK_UART_MAP; - int i; - - at91rm9200_map_io(); - - /* Initialize clocks: 18.432 MHz crystal */ - at91_clock_init(18432000); - -#ifdef CONFIG_SERIAL_AT91 - at91_console_port = DK_SERIAL_CONSOLE; - memcpy(at91_serial_map, serial, sizeof(serial)); - - /* Register UARTs */ - for (i = 0; i < AT91_NR_UART; i++) { - if (at91_serial_map[i] >= 0) - at91_register_uart(i, at91_serial_map[i]); - } -#endif -} - -static struct at91_eth_data __initdata dk_eth_data = { - .phy_irq_pin = AT91_PIN_PC4, - .is_rmii = 1, -}; - -static struct at91_usbh_data __initdata dk_usbh_data = { - .ports = 2, -}; - -static struct at91_udc_data __initdata dk_udc_data = { - .vbus_pin = AT91_PIN_PD4, - .pullup_pin = AT91_PIN_PD5, -}; - -static struct at91_cf_data __initdata dk_cf_data = { - .det_pin = AT91_PIN_PB0, - .rst_pin = AT91_PIN_PC5, - // .irq_pin = ... not connected - // .vcc_pin = ... always powered -}; - -static struct at91_mmc_data __initdata dk_mmc_data = { - .is_b = 0, - .wire4 = 1, -}; - -static void __init dk_board_init(void) -{ - /* Ethernet */ - at91_add_device_eth(&dk_eth_data); - /* USB Host */ - at91_add_device_usbh(&dk_usbh_data); - /* USB Device */ - at91_add_device_udc(&dk_udc_data); - /* Compact Flash */ - at91_add_device_cf(&dk_cf_data); - /* MMC */ - at91_set_gpio_output(AT91_PIN_PB7, 1); /* this MMC card slot can optionally use SPI signaling (CS3). default: MMC */ - at91_add_device_mmc(&dk_mmc_data); - /* VGA */ -// dk_add_device_video(); -} - -MACHINE_START(AT91RM9200DK, "Atmel AT91RM9200-DK") - /* Maintainer: SAN People/Atmel */ - .phys_ram = AT91_SDRAM_BASE, - .phys_io = AT91_BASE_SYS, - .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc, - .boot_params = AT91_SDRAM_BASE + 0x100, - .timer = &at91rm9200_timer, - .map_io = dk_map_io, - .init_irq = dk_init_irq, - .init_machine = dk_board_init, -MACHINE_END diff --git a/trunk/arch/arm/mach-at91rm9200/board-ek.c b/trunk/arch/arm/mach-at91rm9200/board-ek.c deleted file mode 100644 index d140645711be..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/board-ek.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - * linux/arch/arm/mach-at91rm9200/board-ek.c - * - * Copyright (C) 2005 SAN People - * - * Epson S1D framebuffer glue code is: - * Copyright (C) 2005 Thibaut VARENE - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include "generic.h" - -static void __init ek_init_irq(void) -{ - /* Initialize AIC controller */ - at91rm9200_init_irq(NULL); - - /* Set up the GPIO interrupts */ - at91_gpio_irq_setup(BGA_GPIO_BANKS); -} - -/* - * Serial port configuration. - * 0 .. 3 = USART0 .. USART3 - * 4 = DBGU - */ -#define EK_UART_MAP { 4, 1, -1, -1, -1 } /* ttyS0, ..., ttyS4 */ -#define EK_SERIAL_CONSOLE 0 /* ttyS0 */ - -static void __init ek_map_io(void) -{ - int serial[AT91_NR_UART] = EK_UART_MAP; - int i; - - at91rm9200_map_io(); - - /* Initialize clocks: 18.432 MHz crystal */ - at91_clock_init(18432000); - -#ifdef CONFIG_SERIAL_AT91 - at91_console_port = EK_SERIAL_CONSOLE; - memcpy(at91_serial_map, serial, sizeof(serial)); - - /* Register UARTs */ - for (i = 0; i < AT91_NR_UART; i++) { - if (serial[i] >= 0) - at91_register_uart(i, serial[i]); - } -#endif -} - -static struct at91_eth_data __initdata ek_eth_data = { - .phy_irq_pin = AT91_PIN_PC4, - .is_rmii = 1, -}; - -static struct at91_usbh_data __initdata ek_usbh_data = { - .ports = 2, -}; - -static struct at91_udc_data __initdata ek_udc_data = { - .vbus_pin = AT91_PIN_PD4, - .pullup_pin = AT91_PIN_PD5, -}; - -static struct at91_mmc_data __initdata ek_mmc_data = { - .det_pin = AT91_PIN_PB27, - .is_b = 0, - .wire4 = 1, - .wp_pin = AT91_PIN_PA17, -}; - -static void __init ek_board_init(void) -{ - /* Ethernet */ - at91_add_device_eth(&ek_eth_data); - /* USB Host */ - at91_add_device_usbh(&ek_usbh_data); - /* USB Device */ - at91_add_device_udc(&ek_udc_data); - /* MMC */ - at91_set_gpio_output(AT91_PIN_PB22, 1); /* this MMC card slot can optionally use SPI signaling (CS3). default: MMC */ - at91_add_device_mmc(&ek_mmc_data); - /* VGA */ -// ek_add_device_video(); -} - -MACHINE_START(AT91RM9200EK, "Atmel AT91RM9200-EK") - /* Maintainer: SAN People/Atmel */ - .phys_ram = AT91_SDRAM_BASE, - .phys_io = AT91_BASE_SYS, - .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc, - .boot_params = AT91_SDRAM_BASE + 0x100, - .timer = &at91rm9200_timer, - .map_io = ek_map_io, - .init_irq = ek_init_irq, - .init_machine = ek_board_init, -MACHINE_END diff --git a/trunk/arch/arm/mach-at91rm9200/clock.c b/trunk/arch/arm/mach-at91rm9200/clock.c deleted file mode 100644 index ec8195a2a3cc..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/clock.c +++ /dev/null @@ -1,620 +0,0 @@ -/* - * linux/arch/arm/mach-at91rm9200/clock.c - * - * Copyright (C) 2005 David Brownell - * Copyright (C) 2005 Ivan Kokshaysky - * - * 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 -#include -#include - -#include -#include /* for master clock global */ - -#include "generic.h" - -#undef DEBUG - -/* - * There's a lot more which can be done with clocks, including cpufreq - * integration, slow clock mode support (for system suspend), letting - * PLLB be used at other rates (on boards that don't need USB), etc. - */ - -struct clk { - const char *name; - unsigned long rate_hz; - struct clk *parent; - u32 pmc_mask; - void (*mode)(struct clk *, int); - unsigned id:2; /* PCK0..3, or 32k/main/a/b */ - unsigned primary:1; - unsigned pll:1; - unsigned programmable:1; - u16 users; -}; - -static spinlock_t clk_lock; -static u32 at91_pllb_usb_init; - -/* - * Four primary clock sources: two crystal oscillators (32K, main), and - * two PLLs. PLLA usually runs the master clock; and PLLB must run at - * 48 MHz (unless no USB function clocks are needed). The main clock and - * both PLLs are turned off to run in "slow clock mode" (system suspend). - */ -static struct clk clk32k = { - .name = "clk32k", - .rate_hz = AT91_SLOW_CLOCK, - .users = 1, /* always on */ - .id = 0, - .primary = 1, -}; -static struct clk main_clk = { - .name = "main", - .pmc_mask = 1 << 0, /* in PMC_SR */ - .users = 1, - .id = 1, - .primary = 1, -}; -static struct clk plla = { - .name = "plla", - .parent = &main_clk, - .pmc_mask = 1 << 1, /* in PMC_SR */ - .id = 2, - .primary = 1, - .pll = 1, -}; - -static void pllb_mode(struct clk *clk, int is_on) -{ - u32 value; - - if (is_on) { - is_on = AT91_PMC_LOCKB; - value = at91_pllb_usb_init; - } else - value = 0; - - at91_sys_write(AT91_CKGR_PLLBR, value); - - do { - cpu_relax(); - } while ((at91_sys_read(AT91_PMC_SR) & AT91_PMC_LOCKB) != is_on); -} - -static struct clk pllb = { - .name = "pllb", - .parent = &main_clk, - .pmc_mask = 1 << 2, /* in PMC_SR */ - .mode = pllb_mode, - .id = 3, - .primary = 1, - .pll = 1, -}; - -static void pmc_sys_mode(struct clk *clk, int is_on) -{ - if (is_on) - at91_sys_write(AT91_PMC_SCER, clk->pmc_mask); - else - at91_sys_write(AT91_PMC_SCDR, clk->pmc_mask); -} - -/* USB function clocks (PLLB must be 48 MHz) */ -static struct clk udpck = { - .name = "udpck", - .parent = &pllb, - .pmc_mask = AT91_PMC_UDP, - .mode = pmc_sys_mode, -}; -static struct clk uhpck = { - .name = "uhpck", - .parent = &pllb, - .pmc_mask = AT91_PMC_UHP, - .mode = pmc_sys_mode, -}; - -#ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS -/* - * The four programmable clocks can be parented by any primary clock. - * You must configure pin multiplexing to bring these signals out. - */ -static struct clk pck0 = { - .name = "pck0", - .pmc_mask = AT91_PMC_PCK0, - .mode = pmc_sys_mode, - .programmable = 1, - .id = 0, -}; -static struct clk pck1 = { - .name = "pck1", - .pmc_mask = AT91_PMC_PCK1, - .mode = pmc_sys_mode, - .programmable = 1, - .id = 1, -}; -static struct clk pck2 = { - .name = "pck2", - .pmc_mask = AT91_PMC_PCK2, - .mode = pmc_sys_mode, - .programmable = 1, - .id = 2, -}; -static struct clk pck3 = { - .name = "pck3", - .pmc_mask = AT91_PMC_PCK3, - .mode = pmc_sys_mode, - .programmable = 1, - .id = 3, -}; -#endif /* CONFIG_AT91_PROGRAMMABLE_CLOCKS */ - - -/* - * The master clock is divided from the CPU clock (by 1-4). It's used for - * memory, interfaces to on-chip peripherals, the AIC, and sometimes more - * (e.g baud rate generation). It's sourced from one of the primary clocks. - */ -static struct clk mck = { - .name = "mck", - .pmc_mask = 1 << 3, /* in PMC_SR */ - .users = 1, /* (must be) always on */ -}; - -static void pmc_periph_mode(struct clk *clk, int is_on) -{ - if (is_on) - at91_sys_write(AT91_PMC_PCER, clk->pmc_mask); - else - at91_sys_write(AT91_PMC_PCDR, clk->pmc_mask); -} - -static struct clk udc_clk = { - .name = "udc_clk", - .parent = &mck, - .pmc_mask = 1 << AT91_ID_UDP, - .mode = pmc_periph_mode, -}; -static struct clk ohci_clk = { - .name = "ohci_clk", - .parent = &mck, - .pmc_mask = 1 << AT91_ID_UHP, - .mode = pmc_periph_mode, -}; - -static struct clk *const clock_list[] = { - /* four primary clocks -- MUST BE FIRST! */ - &clk32k, - &main_clk, - &plla, - &pllb, - - /* PLLB children (USB) */ - &udpck, - &uhpck, - -#ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS - /* programmable clocks */ - &pck0, - &pck1, - &pck2, - &pck3, -#endif /* CONFIG_AT91_PROGRAMMABLE_CLOCKS */ - - /* MCK and peripherals */ - &mck, - // usart0..usart3 - // mmc - &udc_clk, - // i2c - // spi - // ssc0..ssc2 - // tc0..tc5 - &ohci_clk, - // ether -}; - - -/* clocks are all static for now; no refcounting necessary */ -struct clk *clk_get(struct device *dev, const char *id) -{ - int i; - - for (i = 0; i < ARRAY_SIZE(clock_list); i++) { - if (strcmp(id, clock_list[i]->name) == 0) - return clock_list[i]; - } - - return ERR_PTR(-ENOENT); -} -EXPORT_SYMBOL(clk_get); - -void clk_put(struct clk *clk) -{ -} -EXPORT_SYMBOL(clk_put); - -static void __clk_enable(struct clk *clk) -{ - if (clk->parent) - __clk_enable(clk->parent); - if (clk->users++ == 0 && clk->mode) - clk->mode(clk, 1); -} - -int clk_enable(struct clk *clk) -{ - unsigned long flags; - - spin_lock_irqsave(&clk_lock, flags); - __clk_enable(clk); - spin_unlock_irqrestore(&clk_lock, flags); - return 0; -} -EXPORT_SYMBOL(clk_enable); - -static void __clk_disable(struct clk *clk) -{ - BUG_ON(clk->users == 0); - if (--clk->users == 0 && clk->mode) - clk->mode(clk, 0); - if (clk->parent) - __clk_disable(clk->parent); -} - -void clk_disable(struct clk *clk) -{ - unsigned long flags; - - spin_lock_irqsave(&clk_lock, flags); - __clk_disable(clk); - spin_unlock_irqrestore(&clk_lock, flags); -} -EXPORT_SYMBOL(clk_disable); - -unsigned long clk_get_rate(struct clk *clk) -{ - unsigned long flags; - unsigned long rate; - - spin_lock_irqsave(&clk_lock, flags); - for (;;) { - rate = clk->rate_hz; - if (rate || !clk->parent) - break; - clk = clk->parent; - } - spin_unlock_irqrestore(&clk_lock, flags); - return rate; -} -EXPORT_SYMBOL(clk_get_rate); - -/*------------------------------------------------------------------------*/ - -#ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS - -/* - * For now, only the programmable clocks support reparenting (MCK could - * do this too, with care) or rate changing (the PLLs could do this too, - * ditto MCK but that's more for cpufreq). Drivers may reparent to get - * a better rate match; we don't. - */ - -long clk_round_rate(struct clk *clk, unsigned long rate) -{ - unsigned long flags; - unsigned prescale; - unsigned long actual; - - if (!clk->programmable) - return -EINVAL; - spin_lock_irqsave(&clk_lock, flags); - - actual = clk->parent->rate_hz; - for (prescale = 0; prescale < 7; prescale++) { - if (actual && actual <= rate) - break; - actual >>= 1; - } - - spin_unlock_irqrestore(&clk_lock, flags); - return (prescale < 7) ? actual : -ENOENT; -} -EXPORT_SYMBOL(clk_round_rate); - -int clk_set_rate(struct clk *clk, unsigned long rate) -{ - unsigned long flags; - unsigned prescale; - unsigned long actual; - - if (!clk->programmable) - return -EINVAL; - if (clk->users) - return -EBUSY; - spin_lock_irqsave(&clk_lock, flags); - - actual = clk->parent->rate_hz; - for (prescale = 0; prescale < 7; prescale++) { - if (actual && actual <= rate) { - u32 pckr; - - pckr = at91_sys_read(AT91_PMC_PCKR(clk->id)); - pckr &= 0x03; - pckr |= prescale << 2; - at91_sys_write(AT91_PMC_PCKR(clk->id), pckr); - clk->rate_hz = actual; - break; - } - actual >>= 1; - } - - spin_unlock_irqrestore(&clk_lock, flags); - return (prescale < 7) ? actual : -ENOENT; -} -EXPORT_SYMBOL(clk_set_rate); - -struct clk *clk_get_parent(struct clk *clk) -{ - return clk->parent; -} -EXPORT_SYMBOL(clk_get_parent); - -int clk_set_parent(struct clk *clk, struct clk *parent) -{ - unsigned long flags; - - if (clk->users) - return -EBUSY; - if (!parent->primary || !clk->programmable) - return -EINVAL; - spin_lock_irqsave(&clk_lock, flags); - - clk->rate_hz = parent->rate_hz; - clk->parent = parent; - at91_sys_write(AT91_PMC_PCKR(clk->id), parent->id); - - spin_unlock_irqrestore(&clk_lock, flags); - return 0; -} -EXPORT_SYMBOL(clk_set_parent); - -#endif /* CONFIG_AT91_PROGRAMMABLE_CLOCKS */ - -/*------------------------------------------------------------------------*/ - -#ifdef CONFIG_DEBUG_FS - -static int at91_clk_show(struct seq_file *s, void *unused) -{ - u32 scsr, pcsr, sr; - unsigned i; - - seq_printf(s, "SCSR = %8x\n", scsr = at91_sys_read(AT91_PMC_SCSR)); - seq_printf(s, "PCSR = %8x\n", pcsr = at91_sys_read(AT91_PMC_PCSR)); - - seq_printf(s, "MOR = %8x\n", at91_sys_read(AT91_CKGR_MOR)); - seq_printf(s, "MCFR = %8x\n", at91_sys_read(AT91_CKGR_MCFR)); - seq_printf(s, "PLLA = %8x\n", at91_sys_read(AT91_CKGR_PLLAR)); - seq_printf(s, "PLLB = %8x\n", at91_sys_read(AT91_CKGR_PLLBR)); - - seq_printf(s, "MCKR = %8x\n", at91_sys_read(AT91_PMC_MCKR)); - for (i = 0; i < 4; i++) - seq_printf(s, "PCK%d = %8x\n", i, at91_sys_read(AT91_PMC_PCKR(i))); - seq_printf(s, "SR = %8x\n", sr = at91_sys_read(AT91_PMC_SR)); - - seq_printf(s, "\n"); - - for (i = 0; i < ARRAY_SIZE(clock_list); i++) { - char *state; - struct clk *clk = clock_list[i]; - - if (clk->mode == pmc_sys_mode) - state = (scsr & clk->pmc_mask) ? "on" : "off"; - else if (clk->mode == pmc_periph_mode) - state = (pcsr & clk->pmc_mask) ? "on" : "off"; - else if (clk->pmc_mask) - state = (sr & clk->pmc_mask) ? "on" : "off"; - else if (clk == &clk32k || clk == &main_clk) - state = "on"; - else - state = ""; - - seq_printf(s, "%-10s users=%d %-3s %9ld Hz %s\n", - clk->name, clk->users, state, clk_get_rate(clk), - clk->parent ? clk->parent->name : ""); - } - return 0; -} - -static int at91_clk_open(struct inode *inode, struct file *file) -{ - return single_open(file, at91_clk_show, NULL); -} - -static struct file_operations at91_clk_operations = { - .open = at91_clk_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; - -static int __init at91_clk_debugfs_init(void) -{ - /* /sys/kernel/debug/at91_clk */ - (void) debugfs_create_file("at91_clk", S_IFREG | S_IRUGO, NULL, NULL, &at91_clk_operations); - - return 0; -} -postcore_initcall(at91_clk_debugfs_init); - -#endif - -/*------------------------------------------------------------------------*/ - -static u32 __init at91_pll_rate(struct clk *pll, u32 freq, u32 reg) -{ - unsigned mul, div; - - div = reg & 0xff; - mul = (reg >> 16) & 0x7ff; - if (div && mul) { - freq /= div; - freq *= mul + 1; - } else - freq = 0; - if (pll == &pllb && (reg & (1 << 28))) - freq /= 2; - return freq; -} - -static unsigned __init at91_pll_calc(unsigned main_freq, unsigned out_freq) -{ - unsigned i, div = 0, mul = 0, diff = 1 << 30; - unsigned ret = (out_freq > 155000000) ? 0xbe00 : 0x3e00; - - /* PLL output max 240 MHz (or 180 MHz per errata) */ - if (out_freq > 240000000) - goto fail; - - for (i = 1; i < 256; i++) { - int diff1; - unsigned input, mul1; - - /* - * PLL input between 1MHz and 32MHz per spec, but lower - * frequences seem necessary in some cases so allow 100K. - */ - input = main_freq / i; - if (input < 100000) - continue; - if (input > 32000000) - continue; - - mul1 = out_freq / input; - if (mul1 > 2048) - continue; - if (mul1 < 2) - goto fail; - - diff1 = out_freq - input * mul1; - if (diff1 < 0) - diff1 = -diff1; - if (diff > diff1) { - diff = diff1; - div = i; - mul = mul1; - if (diff == 0) - break; - } - } - if (i == 256 && diff > (out_freq >> 5)) - goto fail; - return ret | ((mul - 1) << 16) | div; -fail: - return 0; -} - -int __init at91_clock_init(unsigned long main_clock) -{ - unsigned tmp, freq, mckr; - - spin_lock_init(&clk_lock); - - /* - * When the bootloader initialized the main oscillator correctly, - * there's no problem using the cycle counter. But if it didn't, - * or when using oscillator bypass mode, we must be told the speed - * of the main clock. - */ - if (!main_clock) { - do { - tmp = at91_sys_read(AT91_CKGR_MCFR); - } while (!(tmp & 0x10000)); - main_clock = (tmp & 0xffff) * (AT91_SLOW_CLOCK / 16); - } - main_clk.rate_hz = main_clock; - - /* report if PLLA is more than mildly overclocked */ - plla.rate_hz = at91_pll_rate(&plla, main_clock, at91_sys_read(AT91_CKGR_PLLAR)); - if (plla.rate_hz > 209000000) - pr_info("Clocks: PLLA overclocked, %ld MHz\n", plla.rate_hz / 1000000); - - /* - * USB clock init: choose 48 MHz PLLB value, turn all clocks off, - * disable 48MHz clock during usb peripheral suspend. - * - * REVISIT: assumes MCK doesn't derive from PLLB! - */ - at91_pllb_usb_init = at91_pll_calc(main_clock, 48000000 * 2) | 0x10000000; - pllb.rate_hz = at91_pll_rate(&pllb, main_clock, at91_pllb_usb_init); - at91_sys_write(AT91_PMC_PCDR, (1 << AT91_ID_UHP) | (1 << AT91_ID_UDP)); - at91_sys_write(AT91_PMC_SCDR, AT91_PMC_UHP | AT91_PMC_UDP); - at91_sys_write(AT91_CKGR_PLLBR, 0); - at91_sys_write(AT91_PMC_SCER, AT91_PMC_MCKUDP); - - /* - * MCK and CPU derive from one of those primary clocks. - * For now, assume this parentage won't change. - */ - mckr = at91_sys_read(AT91_PMC_MCKR); - mck.parent = clock_list[mckr & AT91_PMC_CSS]; - mck.parent->users++; - freq = mck.parent->rate_hz; - freq /= (1 << ((mckr >> 2) & 3)); /* prescale */ - mck.rate_hz = freq / (1 + ((mckr >> 8) & 3)); /* mdiv */ - - printk("Clocks: CPU %u MHz, master %u MHz, main %u.%03u MHz\n", - freq / 1000000, (unsigned) mck.rate_hz / 1000000, - (unsigned) main_clock / 1000000, - ((unsigned) main_clock % 1000000) / 1000); - - /* FIXME get rid of master_clock global */ - at91_master_clock = mck.rate_hz; - -#ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS - /* establish PCK0..PCK3 parentage */ - for (tmp = 0; tmp < ARRAY_SIZE(clock_list); tmp++) { - struct clk *clk = clock_list[tmp], *parent; - u32 pckr; - - if (!clk->programmable) - continue; - - pckr = at91_sys_read(AT91_PMC_PCKR(clk->id)); - parent = clock_list[pckr & 3]; - clk->parent = parent; - clk->rate_hz = parent->rate_hz / (1 << ((pckr >> 2) & 3)); - } -#else - /* disable unused clocks */ - at91_sys_write(AT91_PMC_SCDR, AT91_PMC_PCK0 | AT91_PMC_PCK1 | AT91_PMC_PCK2 | AT91_PMC_PCK3); -#endif /* CONFIG_AT91_PROGRAMMABLE_CLOCKS */ - - /* FIXME several unused clocks may still be active... provide - * a CONFIG option to turn off all unused clocks at some point - * before driver init starts. - */ - - return 0; -} diff --git a/trunk/arch/arm/mach-at91rm9200/common.c b/trunk/arch/arm/mach-at91rm9200/common.c deleted file mode 100644 index 3848fd2d5596..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/common.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * arch/arm/mach-at91rm9200/common.c - * - * Copyright (C) 2005 SAN People - * - * 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 - -static struct map_desc at91rm9200_io_desc[] __initdata = { - { - .virtual = AT91_VA_BASE_SYS, - .pfn = __phys_to_pfn(AT91_BASE_SYS), - .length = SZ_4K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_SPI, - .pfn = __phys_to_pfn(AT91_BASE_SPI), - .length = SZ_16K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_SSC2, - .pfn = __phys_to_pfn(AT91_BASE_SSC2), - .length = SZ_16K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_SSC1, - .pfn = __phys_to_pfn(AT91_BASE_SSC1), - .length = SZ_16K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_SSC0, - .pfn = __phys_to_pfn(AT91_BASE_SSC0), - .length = SZ_16K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_US3, - .pfn = __phys_to_pfn(AT91_BASE_US3), - .length = SZ_16K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_US2, - .pfn = __phys_to_pfn(AT91_BASE_US2), - .length = SZ_16K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_US1, - .pfn = __phys_to_pfn(AT91_BASE_US1), - .length = SZ_16K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_US0, - .pfn = __phys_to_pfn(AT91_BASE_US0), - .length = SZ_16K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_EMAC, - .pfn = __phys_to_pfn(AT91_BASE_EMAC), - .length = SZ_16K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_TWI, - .pfn = __phys_to_pfn(AT91_BASE_TWI), - .length = SZ_16K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_MCI, - .pfn = __phys_to_pfn(AT91_BASE_MCI), - .length = SZ_16K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_UDP, - .pfn = __phys_to_pfn(AT91_BASE_UDP), - .length = SZ_16K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_TCB1, - .pfn = __phys_to_pfn(AT91_BASE_TCB1), - .length = SZ_16K, - .type = MT_DEVICE, - }, { - .virtual = AT91_VA_BASE_TCB0, - .pfn = __phys_to_pfn(AT91_BASE_TCB0), - .length = SZ_16K, - .type = MT_DEVICE, - }, -}; - -void __init at91rm9200_map_io(void) -{ - iotable_init(at91rm9200_io_desc, ARRAY_SIZE(at91rm9200_io_desc)); -} - - -unsigned long at91_master_clock; - -EXPORT_SYMBOL(at91_master_clock); - - -int at91_serial_map[AT91_NR_UART]; -int at91_console_port; - -EXPORT_SYMBOL(at91_serial_map); -EXPORT_SYMBOL(at91_console_port); diff --git a/trunk/arch/arm/mach-at91rm9200/devices.c b/trunk/arch/arm/mach-at91rm9200/devices.c deleted file mode 100644 index 8df3e5245651..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/devices.c +++ /dev/null @@ -1,291 +0,0 @@ -/* - * arch/arm/mach-at91rm9200/devices.c - * - * Copyright (C) 2005 Thibaut VARENE - * Copyright (C) 2005 David Brownell - * - * 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 - - -/* -------------------------------------------------------------------- - * USB Host - * -------------------------------------------------------------------- */ - -#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) -static u64 ohci_dmamask = 0xffffffffUL; -static struct at91_usbh_data usbh_data; - -static struct resource at91rm9200_usbh_resource[] = { - [0] = { - .start = AT91_UHP_BASE, - .end = AT91_UHP_BASE + SZ_1M -1, - .flags = IORESOURCE_MEM, - }, - [1] = { - .start = AT91_ID_UHP, - .end = AT91_ID_UHP, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device at91rm9200_usbh_device = { - .name = "at91rm9200-ohci", - .id = -1, - .dev = { - .dma_mask = &ohci_dmamask, - .coherent_dma_mask = 0xffffffff, - .platform_data = &usbh_data, - }, - .resource = at91rm9200_usbh_resource, - .num_resources = ARRAY_SIZE(at91rm9200_usbh_resource), -}; - -void __init at91_add_device_usbh(struct at91_usbh_data *data) -{ - if (!data) - return; - - usbh_data = *data; - platform_device_register(&at91rm9200_usbh_device); -} -#else -void __init at91_add_device_usbh(struct at91_usbh_data *data) {} -#endif - - -/* -------------------------------------------------------------------- - * USB Device (Gadget) - * -------------------------------------------------------------------- */ - -#ifdef CONFIG_USB_GADGET_AT91 -static struct at91_udc_data udc_data; - -static struct resource at91_udc_resources[] = { - { - .start = AT91_BASE_UDP, - .end = AT91_BASE_UDP + SZ_16K - 1, - .flags = IORESOURCE_MEM, - } -}; - -static struct platform_device at91rm9200_udc_device = { - .name = "at91_udc", - .id = -1, - .dev = { - .platform_data = &udc_data, - }, - .resource = at91_udc_resources, - .num_resources = ARRAY_SIZE(at91_udc_resources), -}; - -void __init at91_add_device_udc(struct at91_udc_data *data) -{ - if (!data) - return; - - if (data->vbus_pin) { - at91_set_gpio_input(data->vbus_pin, 0); - at91_set_deglitch(data->vbus_pin, 1); - } - if (data->pullup_pin) - at91_set_gpio_output(data->pullup_pin, 0); - - udc_data = *data; - platform_device_register(&at91rm9200_udc_device); -} -#else -void __init at91_add_device_udc(struct at91_udc_data *data) {} -#endif - - -/* -------------------------------------------------------------------- - * Ethernet - * -------------------------------------------------------------------- */ - -#if defined(CONFIG_ARM_AT91_ETHER) || defined(CONFIG_ARM_AT91_ETHER_MODULE) -static u64 eth_dmamask = 0xffffffffUL; -static struct at91_eth_data eth_data; - -static struct platform_device at91rm9200_eth_device = { - .name = "at91_ether", - .id = -1, - .dev = { - .dma_mask = ð_dmamask, - .coherent_dma_mask = 0xffffffff, - .platform_data = ð_data, - }, - .num_resources = 0, -}; - -void __init at91_add_device_eth(struct at91_eth_data *data) -{ - if (!data) - return; - - if (data->phy_irq_pin) { - at91_set_gpio_input(data->phy_irq_pin, 0); - at91_set_deglitch(data->phy_irq_pin, 1); - } - - /* Pins used for MII and RMII */ - at91_set_A_periph(AT91_PIN_PA16, 0); /* EMDIO */ - at91_set_A_periph(AT91_PIN_PA15, 0); /* EMDC */ - at91_set_A_periph(AT91_PIN_PA14, 0); /* ERXER */ - at91_set_A_periph(AT91_PIN_PA13, 0); /* ERX1 */ - at91_set_A_periph(AT91_PIN_PA12, 0); /* ERX0 */ - at91_set_A_periph(AT91_PIN_PA11, 0); /* ECRS_ECRSDV */ - at91_set_A_periph(AT91_PIN_PA10, 0); /* ETX1 */ - at91_set_A_periph(AT91_PIN_PA9, 0); /* ETX0 */ - at91_set_A_periph(AT91_PIN_PA8, 0); /* ETXEN */ - at91_set_A_periph(AT91_PIN_PA7, 0); /* ETXCK_EREFCK */ - - if (!data->is_rmii) { - at91_set_B_periph(AT91_PIN_PB19, 0); /* ERXCK */ - at91_set_B_periph(AT91_PIN_PB18, 0); /* ECOL */ - at91_set_B_periph(AT91_PIN_PB17, 0); /* ERXDV */ - at91_set_B_periph(AT91_PIN_PB16, 0); /* ERX3 */ - at91_set_B_periph(AT91_PIN_PB15, 0); /* ERX2 */ - at91_set_B_periph(AT91_PIN_PB14, 0); /* ETXER */ - at91_set_B_periph(AT91_PIN_PB13, 0); /* ETX3 */ - at91_set_B_periph(AT91_PIN_PB12, 0); /* ETX2 */ - } - - eth_data = *data; - platform_device_register(&at91rm9200_eth_device); -} -#else -void __init at91_add_device_eth(struct at91_eth_data *data) {} -#endif - - -/* -------------------------------------------------------------------- - * Compact Flash / PCMCIA - * -------------------------------------------------------------------- */ - -#if defined(CONFIG_AT91_CF) || defined(CONFIG_AT91_CF_MODULE) -static struct at91_cf_data cf_data; - -static struct platform_device at91rm9200_cf_device = { - .name = "at91_cf", - .id = -1, - .dev = { - .platform_data = &cf_data, - }, - .num_resources = 0, -}; - -void __init at91_add_device_cf(struct at91_cf_data *data) -{ - if (!data) - return; - - /* input/irq */ - if (data->irq_pin) { - at91_set_gpio_input(data->irq_pin, 1); - at91_set_deglitch(data->irq_pin, 1); - } - at91_set_gpio_input(data->det_pin, 1); - at91_set_deglitch(data->det_pin, 1); - - /* outputs, initially off */ - if (data->vcc_pin) - at91_set_gpio_output(data->vcc_pin, 0); - at91_set_gpio_output(data->rst_pin, 0); - - cf_data = *data; - platform_device_register(&at91rm9200_cf_device); -} -#else -void __init at91_add_device_cf(struct at91_cf_data *data) {} -#endif - - -/* -------------------------------------------------------------------- - * MMC / SD - * -------------------------------------------------------------------- */ - -#if defined(CONFIG_MMC_AT91RM9200) || defined(CONFIG_MMC_AT91RM9200_MODULE) -static u64 mmc_dmamask = 0xffffffffUL; -static struct at91_mmc_data mmc_data; - -static struct resource at91_mmc_resources[] = { - { - .start = AT91_BASE_MCI, - .end = AT91_BASE_MCI + SZ_16K - 1, - .flags = IORESOURCE_MEM, - } -}; - -static struct platform_device at91rm9200_mmc_device = { - .name = "at91rm9200_mci", - .id = -1, - .dev = { - .dma_mask = &mmc_dmamask, - .coherent_dma_mask = 0xffffffff, - .platform_data = &mmc_data, - }, - .resource = at91_mmc_resources, - .num_resources = ARRAY_SIZE(at91_mmc_resources), -}; - -void __init at91_add_device_mmc(struct at91_mmc_data *data) -{ - if (!data) - return; - - /* input/irq */ - if (data->det_pin) { - at91_set_gpio_input(data->det_pin, 1); - at91_set_deglitch(data->det_pin, 1); - } - if (data->wp_pin) - at91_set_gpio_input(data->wp_pin, 1); - - /* CLK */ - at91_set_A_periph(AT91_PIN_PA27, 0); - - if (data->is_b) { - /* CMD */ - at91_set_B_periph(AT91_PIN_PA8, 0); - - /* DAT0, maybe DAT1..DAT3 */ - at91_set_B_periph(AT91_PIN_PA9, 0); - if (data->wire4) { - at91_set_B_periph(AT91_PIN_PA10, 0); - at91_set_B_periph(AT91_PIN_PA11, 0); - at91_set_B_periph(AT91_PIN_PA12, 0); - } - } else { - /* CMD */ - at91_set_A_periph(AT91_PIN_PA28, 0); - - /* DAT0, maybe DAT1..DAT3 */ - at91_set_A_periph(AT91_PIN_PA29, 0); - if (data->wire4) { - at91_set_B_periph(AT91_PIN_PB3, 0); - at91_set_B_periph(AT91_PIN_PB4, 0); - at91_set_B_periph(AT91_PIN_PB5, 0); - } - } - - mmc_data = *data; - platform_device_register(&at91rm9200_mmc_device); -} -#else -void __init at91_add_device_mmc(struct at91_mmc_data *data) {} -#endif - -/* -------------------------------------------------------------------- */ diff --git a/trunk/arch/arm/mach-at91rm9200/generic.h b/trunk/arch/arm/mach-at91rm9200/generic.h deleted file mode 100644 index 9bd541eba0a0..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/generic.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * linux/arch/arm/mach-at91rm9200/generic.h - * - * Copyright (C) 2005 David Brownell - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -void at91_gpio_irq_setup(unsigned banks); - -struct sys_timer; -extern struct sys_timer at91rm9200_timer; - -extern void __init at91rm9200_map_io(void); - -extern int __init at91_clock_init(unsigned long main_clock); diff --git a/trunk/arch/arm/mach-at91rm9200/gpio.c b/trunk/arch/arm/mach-at91rm9200/gpio.c deleted file mode 100644 index 2fd2ef583e4d..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/gpio.c +++ /dev/null @@ -1,302 +0,0 @@ -/* - * linux/arch/arm/mach-at91rm9200/gpio.c - * - * Copyright (C) 2005 HP Labs - * - * 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 - -static const u32 pio_controller_offset[4] = { - AT91_PIOA, - AT91_PIOB, - AT91_PIOC, - AT91_PIOD, -}; - -static inline void __iomem *pin_to_controller(unsigned pin) -{ - void __iomem *sys_base = (void __iomem *) AT91_VA_BASE_SYS; - - pin -= PIN_BASE; - pin /= 32; - if (likely(pin < BGA_GPIO_BANKS)) - return sys_base + pio_controller_offset[pin]; - - return NULL; -} - -static inline unsigned pin_to_mask(unsigned pin) -{ - pin -= PIN_BASE; - return 1 << (pin % 32); -} - - -/*--------------------------------------------------------------------------*/ - -/* Not all hardware capabilities are exposed through these calls; they - * only encapsulate the most common features and modes. (So if you - * want to change signals in groups, do it directly.) - * - * Bootloaders will usually handle some of the pin multiplexing setup. - * The intent is certainly that by the time Linux is fully booted, all - * pins should have been fully initialized. These setup calls should - * only be used by board setup routines, or possibly in driver probe(). - * - * For bootloaders doing all that setup, these calls could be inlined - * as NOPs so Linux won't duplicate any setup code - */ - - -/* - * mux the pin to the "A" internal peripheral role. - */ -int __init_or_module at91_set_A_periph(unsigned pin, int use_pullup) -{ - void __iomem *pio = pin_to_controller(pin); - unsigned mask = pin_to_mask(pin); - - if (!pio) - return -EINVAL; - - __raw_writel(mask, pio + PIO_IDR); - __raw_writel(mask, pio + (use_pullup ? PIO_PUER : PIO_PUDR)); - __raw_writel(mask, pio + PIO_ASR); - __raw_writel(mask, pio + PIO_PDR); - return 0; -} -EXPORT_SYMBOL(at91_set_A_periph); - - -/* - * mux the pin to the "B" internal peripheral role. - */ -int __init_or_module at91_set_B_periph(unsigned pin, int use_pullup) -{ - void __iomem *pio = pin_to_controller(pin); - unsigned mask = pin_to_mask(pin); - - if (!pio) - return -EINVAL; - - __raw_writel(mask, pio + PIO_IDR); - __raw_writel(mask, pio + (use_pullup ? PIO_PUER : PIO_PUDR)); - __raw_writel(mask, pio + PIO_BSR); - __raw_writel(mask, pio + PIO_PDR); - return 0; -} -EXPORT_SYMBOL(at91_set_B_periph); - - -/* - * mux the pin to the gpio controller (instead of "A" or "B" peripheral), and - * configure it for an input. - */ -int __init_or_module at91_set_gpio_input(unsigned pin, int use_pullup) -{ - void __iomem *pio = pin_to_controller(pin); - unsigned mask = pin_to_mask(pin); - - if (!pio) - return -EINVAL; - - __raw_writel(mask, pio + PIO_IDR); - __raw_writel(mask, pio + (use_pullup ? PIO_PUER : PIO_PUDR)); - __raw_writel(mask, pio + PIO_ODR); - __raw_writel(mask, pio + PIO_PER); - return 0; -} -EXPORT_SYMBOL(at91_set_gpio_input); - - -/* - * mux the pin to the gpio controller (instead of "A" or "B" peripheral), - * and configure it for an output. - */ -int __init_or_module at91_set_gpio_output(unsigned pin, int value) -{ - void __iomem *pio = pin_to_controller(pin); - unsigned mask = pin_to_mask(pin); - - if (!pio) - return -EINVAL; - - __raw_writel(mask, pio + PIO_IDR); - __raw_writel(mask, pio + PIO_PUDR); - __raw_writel(mask, pio + (value ? PIO_SODR : PIO_CODR)); - __raw_writel(mask, pio + PIO_OER); - __raw_writel(mask, pio + PIO_PER); - return 0; -} -EXPORT_SYMBOL(at91_set_gpio_output); - - -/* - * enable/disable the glitch filter; mostly used with IRQ handling. - */ -int __init_or_module at91_set_deglitch(unsigned pin, int is_on) -{ - void __iomem *pio = pin_to_controller(pin); - unsigned mask = pin_to_mask(pin); - - if (!pio) - return -EINVAL; - __raw_writel(mask, pio + (is_on ? PIO_IFER : PIO_IFDR)); - return 0; -} -EXPORT_SYMBOL(at91_set_deglitch); - -/*--------------------------------------------------------------------------*/ - - -/* - * assuming the pin is muxed as a gpio output, set its value. - */ -int at91_set_gpio_value(unsigned pin, int value) -{ - void __iomem *pio = pin_to_controller(pin); - unsigned mask = pin_to_mask(pin); - - if (!pio) - return -EINVAL; - __raw_writel(mask, pio + (value ? PIO_SODR : PIO_CODR)); - return 0; -} -EXPORT_SYMBOL(at91_set_gpio_value); - - -/* - * read the pin's value (works even if it's not muxed as a gpio). - */ -int at91_get_gpio_value(unsigned pin) -{ - void __iomem *pio = pin_to_controller(pin); - unsigned mask = pin_to_mask(pin); - u32 pdsr; - - if (!pio) - return -EINVAL; - pdsr = __raw_readl(pio + PIO_PDSR); - return (pdsr & mask) != 0; -} -EXPORT_SYMBOL(at91_get_gpio_value); - -/*--------------------------------------------------------------------------*/ - - -/* Several AIC controller irqs are dispatched through this GPIO handler. - * To use any AT91_PIN_* as an externally triggered IRQ, first call - * at91_set_gpio_input() then maybe enable its glitch filter. - * Then just request_irq() with the pin ID; it works like any ARM IRQ - * handler, though it always triggers on rising and falling edges. - * - * Alternatively, certain pins may be used directly as IRQ0..IRQ6 after - * configuring them with at91_set_a_periph() or at91_set_b_periph(). - * IRQ0..IRQ6 should be configurable, e.g. level vs edge triggering. - */ - -static void gpio_irq_mask(unsigned pin) -{ - void __iomem *pio = pin_to_controller(pin); - unsigned mask = pin_to_mask(pin); - - if (pio) - __raw_writel(mask, pio + PIO_IDR); -} - -static void gpio_irq_unmask(unsigned pin) -{ - void __iomem *pio = pin_to_controller(pin); - unsigned mask = pin_to_mask(pin); - - if (pio) - __raw_writel(mask, pio + PIO_IER); -} - -static int gpio_irq_type(unsigned pin, unsigned type) -{ - return (type == IRQT_BOTHEDGE) ? 0 : -EINVAL; -} - -static struct irqchip gpio_irqchip = { - .mask = gpio_irq_mask, - .unmask = gpio_irq_unmask, - .set_type = gpio_irq_type, -}; - -static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs *regs) -{ - unsigned pin; - struct irqdesc *gpio; - void __iomem *pio; - u32 isr; - - pio = (void __force __iomem *) desc->chipdata; - - /* temporarily mask (level sensitive) parent IRQ */ - desc->chip->ack(irq); - for (;;) { - isr = __raw_readl(pio + PIO_ISR) & __raw_readl(pio + PIO_IMR); - if (!isr) - break; - - pin = (unsigned) desc->data; - gpio = &irq_desc[pin]; - - while (isr) { - if (isr & 1) - gpio->handle(pin, gpio, regs); - pin++; - gpio++; - isr >>= 1; - } - } - desc->chip->unmask(irq); - /* now it may re-trigger */ -} - -/* call this from board-specific init_irq */ -void __init at91_gpio_irq_setup(unsigned banks) -{ - unsigned pioc, pin, id; - - if (banks > 4) - banks = 4; - for (pioc = 0, pin = PIN_BASE, id = AT91_ID_PIOA; - pioc < banks; - pioc++, id++) { - void __iomem *controller; - unsigned i; - - controller = (void __iomem *) AT91_VA_BASE_SYS + pio_controller_offset[pioc]; - __raw_writel(~0, controller + PIO_IDR); - - set_irq_data(id, (void *) pin); - set_irq_chipdata(id, (void __force *) controller); - - for (i = 0; i < 32; i++, pin++) { - set_irq_chip(pin, &gpio_irqchip); - set_irq_handler(pin, do_simple_IRQ); - set_irq_flags(pin, IRQF_VALID); - } - - set_irq_chained_handler(id, gpio_irq_handler); - - /* enable the PIO peripheral clock */ - at91_sys_write(AT91_PMC_PCER, 1 << id); - } - pr_info("AT91: %d gpio irqs in %d banks\n", pin - PIN_BASE, banks); -} diff --git a/trunk/arch/arm/mach-at91rm9200/irq.c b/trunk/arch/arm/mach-at91rm9200/irq.c deleted file mode 100644 index cb62bc83a1dd..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/irq.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - * linux/arch/arm/mach-at91rm9200/irq.c - * - * Copyright (C) 2004 SAN People - * Copyright (C) 2004 ATMEL - * Copyright (C) Rick Bronson - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include - -#include "generic.h" - -/* - * The default interrupt priority levels (0 = lowest, 7 = highest). - */ -static unsigned int at91rm9200_default_irq_priority[NR_AIC_IRQS] __initdata = { - 7, /* Advanced Interrupt Controller */ - 7, /* System Peripheral */ - 0, /* Parallel IO Controller A */ - 0, /* Parallel IO Controller B */ - 0, /* Parallel IO Controller C */ - 0, /* Parallel IO Controller D */ - 6, /* USART 0 */ - 6, /* USART 1 */ - 6, /* USART 2 */ - 6, /* USART 3 */ - 0, /* Multimedia Card Interface */ - 4, /* USB Device Port */ - 0, /* Two-Wire Interface */ - 6, /* Serial Peripheral Interface */ - 5, /* Serial Synchronous Controller */ - 5, /* Serial Synchronous Controller */ - 5, /* Serial Synchronous Controller */ - 0, /* Timer Counter 0 */ - 0, /* Timer Counter 1 */ - 0, /* Timer Counter 2 */ - 0, /* Timer Counter 3 */ - 0, /* Timer Counter 4 */ - 0, /* Timer Counter 5 */ - 3, /* USB Host port */ - 3, /* Ethernet MAC */ - 0, /* Advanced Interrupt Controller */ - 0, /* Advanced Interrupt Controller */ - 0, /* Advanced Interrupt Controller */ - 0, /* Advanced Interrupt Controller */ - 0, /* Advanced Interrupt Controller */ - 0, /* Advanced Interrupt Controller */ - 0 /* Advanced Interrupt Controller */ -}; - - -static void at91rm9200_mask_irq(unsigned int irq) -{ - /* Disable interrupt on AIC */ - at91_sys_write(AT91_AIC_IDCR, 1 << irq); -} - -static void at91rm9200_unmask_irq(unsigned int irq) -{ - /* Enable interrupt on AIC */ - at91_sys_write(AT91_AIC_IECR, 1 << irq); -} - -static int at91rm9200_irq_type(unsigned irq, unsigned type) -{ - unsigned int smr, srctype; - - /* change triggering only for FIQ and external IRQ0..IRQ6 */ - if ((irq < AT91_ID_IRQ0) && (irq != AT91_ID_FIQ)) - return -EINVAL; - - switch (type) { - case IRQT_HIGH: - srctype = AT91_AIC_SRCTYPE_HIGH; - break; - case IRQT_RISING: - srctype = AT91_AIC_SRCTYPE_RISING; - break; - case IRQT_LOW: - srctype = AT91_AIC_SRCTYPE_LOW; - break; - case IRQT_FALLING: - srctype = AT91_AIC_SRCTYPE_FALLING; - break; - default: - return -EINVAL; - } - - smr = at91_sys_read(AT91_AIC_SMR(irq)) & ~AT91_AIC_SRCTYPE; - at91_sys_write(AT91_AIC_SMR(irq), smr | srctype); - return 0; -} - -static struct irqchip at91rm9200_irq_chip = { - .ack = at91rm9200_mask_irq, - .mask = at91rm9200_mask_irq, - .unmask = at91rm9200_unmask_irq, - .set_type = at91rm9200_irq_type, -}; - -/* - * Initialize the AIC interrupt controller. - */ -void __init at91rm9200_init_irq(unsigned int priority[NR_AIC_IRQS]) -{ - unsigned int i; - - /* No priority list specified for this board -> use defaults */ - if (priority == NULL) - priority = at91rm9200_default_irq_priority; - - /* - * The IVR is used by macro get_irqnr_and_base to read and verify. - * The irq number is NR_AIC_IRQS when a spurious interrupt has occurred. - */ - for (i = 0; i < NR_AIC_IRQS; i++) { - /* Put irq number in Source Vector Register: */ - at91_sys_write(AT91_AIC_SVR(i), i); - /* Store the Source Mode Register as defined in table above */ - at91_sys_write(AT91_AIC_SMR(i), AT91_AIC_SRCTYPE_LOW | priority[i]); - - set_irq_chip(i, &at91rm9200_irq_chip); - set_irq_handler(i, do_level_IRQ); - set_irq_flags(i, IRQF_VALID | IRQF_PROBE); - - /* Perform 8 End Of Interrupt Command to make sure AIC will not Lock out nIRQ */ - if (i < 8) - at91_sys_write(AT91_AIC_EOICR, 0); - } - - /* - * Spurious Interrupt ID in Spurious Vector Register is NR_AIC_IRQS - * When there is no current interrupt, the IRQ Vector Register reads the value stored in AIC_SPU - */ - at91_sys_write(AT91_AIC_SPU, NR_AIC_IRQS); - - /* No debugging in AIC: Debug (Protect) Control Register */ - at91_sys_write(AT91_AIC_DCR, 0); - - /* Disable and clear all interrupts initially */ - at91_sys_write(AT91_AIC_IDCR, 0xFFFFFFFF); - at91_sys_write(AT91_AIC_ICCR, 0xFFFFFFFF); -} diff --git a/trunk/arch/arm/mach-at91rm9200/time.c b/trunk/arch/arm/mach-at91rm9200/time.c deleted file mode 100644 index 1b6dd2deeb22..000000000000 --- a/trunk/arch/arm/mach-at91rm9200/time.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * linux/arch/arm/mach-at91rm9200/time.c - * - * Copyright (C) 2003 SAN People - * Copyright (C) 2003 ATMEL - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -/* - * The ST_CRTR is updated asynchronously to the master clock. It is therefore - * necessary to read it twice (with the same value) to ensure accuracy. - */ -static inline unsigned long read_CRTR(void) { - unsigned long x1, x2; - - do { - x1 = at91_sys_read(AT91_ST_CRTR); - x2 = at91_sys_read(AT91_ST_CRTR); - } while (x1 != x2); - - return x1; -} - -/* - * Returns number of microseconds since last timer interrupt. Note that interrupts - * will have been disabled by do_gettimeofday() - * 'LATCH' is hwclock ticks (see CLOCK_TICK_RATE in timex.h) per jiffy. - * 'tick' is usecs per jiffy (linux/timex.h). - */ -static unsigned long at91rm9200_gettimeoffset(void) -{ - unsigned long elapsed; - - elapsed = (read_CRTR() - at91_sys_read(AT91_ST_RTAR)) & AT91_ST_ALMV; - - return (unsigned long)(elapsed * (tick_nsec / 1000)) / LATCH; -} - -/* - * IRQ handler for the timer. - */ -static irqreturn_t at91rm9200_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) -{ - unsigned long rtar; - - if (at91_sys_read(AT91_ST_SR) & AT91_ST_PITS) { /* This is a shared interrupt */ - write_seqlock(&xtime_lock); - - do { - timer_tick(regs); - rtar = (at91_sys_read(AT91_ST_RTAR) + LATCH) & AT91_ST_ALMV; - at91_sys_write(AT91_ST_RTAR, rtar); - } while (((read_CRTR() - at91_sys_read(AT91_ST_RTAR)) & AT91_ST_ALMV) >= LATCH); - - write_sequnlock(&xtime_lock); - - return IRQ_HANDLED; - } - else - return IRQ_NONE; /* not handled */ -} - -static struct irqaction at91rm9200_timer_irq = { - .name = "at91_tick", - .flags = SA_SHIRQ | SA_INTERRUPT, - .handler = at91rm9200_timer_interrupt -}; - -/* - * Set up timer interrupt. - */ -void __init at91rm9200_timer_init(void) -{ - /* Disable all timer interrupts */ - at91_sys_write(AT91_ST_IDR, AT91_ST_PITS | AT91_ST_WDOVF | AT91_ST_RTTINC | AT91_ST_ALMS); - (void) at91_sys_read(AT91_ST_SR); /* Clear any pending interrupts */ - - /* - * Make IRQs happen for the system timer. - */ - setup_irq(AT91_ID_SYS, &at91rm9200_timer_irq); - - /* Set initial alarm to 0 */ - at91_sys_write(AT91_ST_RTAR, 0); - - /* Real time counter incremented every 30.51758 microseconds */ - at91_sys_write(AT91_ST_RTMR, 1); - - /* Set Period Interval timer */ - at91_sys_write(AT91_ST_PIMR, LATCH); - - /* Change the kernel's 'tick' value to 10009 usec. (the default is 10000) */ - tick_usec = (LATCH * 1000000) / CLOCK_TICK_RATE; - - /* Enable Period Interval Timer interrupt */ - at91_sys_write(AT91_ST_IER, AT91_ST_PITS); -} - -struct sys_timer at91rm9200_timer = { - .init = at91rm9200_timer_init, - .offset = at91rm9200_gettimeoffset, -}; diff --git a/trunk/arch/arm/mach-epxa10db/Kconfig b/trunk/arch/arm/mach-epxa10db/Kconfig new file mode 100644 index 000000000000..55d896dd4950 --- /dev/null +++ b/trunk/arch/arm/mach-epxa10db/Kconfig @@ -0,0 +1,23 @@ +if ARCH_CAMELOT + +menu "Epxa10db" + +comment "PLD hotswap support" + +config PLD + bool + default y + +config PLD_HOTSWAP + bool "Support for PLD device hotplugging (experimental)" + depends on EXPERIMENTAL + help + This enables support for the dynamic loading and configuration of + compatible drivers when the contents of the PLD are changed. This + is still experimental and requires configuration tools which are + not yet generally available. Say N here. You must enable the kernel + module loader for this feature to work. + +endmenu + +endif diff --git a/trunk/arch/arm/mach-epxa10db/Makefile b/trunk/arch/arm/mach-epxa10db/Makefile new file mode 100644 index 000000000000..24fbd7d3a3c1 --- /dev/null +++ b/trunk/arch/arm/mach-epxa10db/Makefile @@ -0,0 +1,11 @@ +# +# Makefile for the linux kernel. +# + +# Object file lists. + +obj-y := arch.o irq.o mm.o time.o +obj-m := +obj-n := +obj- := + diff --git a/trunk/arch/arm/mach-epxa10db/Makefile.boot b/trunk/arch/arm/mach-epxa10db/Makefile.boot new file mode 100644 index 000000000000..28bec7d3fc88 --- /dev/null +++ b/trunk/arch/arm/mach-epxa10db/Makefile.boot @@ -0,0 +1,2 @@ + zreladdr-y := 0x00008000 + diff --git a/trunk/arch/arm/mach-epxa10db/arch.c b/trunk/arch/arm/mach-epxa10db/arch.c new file mode 100644 index 000000000000..44c56571d183 --- /dev/null +++ b/trunk/arch/arm/mach-epxa10db/arch.c @@ -0,0 +1,74 @@ +/* + * linux/arch/arm/mach-epxa10db/arch.c + * + * Copyright (C) 2000 Deep Blue Solutions Ltd + * Copyright (C) 2001 Altera Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include +#include +#include + +#include +#include +#include + +#include + +static struct plat_serial8250_port serial_platform_data[] = { + { + .iobase = 0x3f8, + .irq = IRQ_UARTINT0, +#error FIXME + .uartclk = 0, + .regshift = 0, + .iotype = UPIO_PORT, + .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, + }, + { + .iobase = 0x2f8, + .irq = IRQ_UARTINT1, +#error FIXME + .uartclk = 0, + .regshift = 0, + .iotype = UPIO_PORT, + .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, + }, + { }, +}; + +static struct platform_device serial_device = { + .name = "serial8250", + .id = PLAT8250_DEV_PLATFORM, + .dev = { + .platform_data = serial_platform_data, + }, +}; + +extern void epxa10db_map_io(void); +extern void epxa10db_init_irq(void); +extern struct sys_timer epxa10db_timer; + +MACHINE_START(CAMELOT, "Altera Epxa10db") + /* Maintainer: Altera Corporation */ + .phys_ram = 0x00000000, + .phys_io = 0x7fffc000, + .io_pg_offst = ((0xffffc000) >> 18) & 0xfffc, + .map_io = epxa10db_map_io, + .init_irq = epxa10db_init_irq, + .timer = &epxa10db_timer, +MACHINE_END + diff --git a/trunk/arch/arm/mach-epxa10db/irq.c b/trunk/arch/arm/mach-epxa10db/irq.c new file mode 100644 index 000000000000..9bf927e13309 --- /dev/null +++ b/trunk/arch/arm/mach-epxa10db/irq.c @@ -0,0 +1,82 @@ +/* + * linux/arch/arm/mach-epxa10db/irq.c + * + * Copyright (C) 2001 Altera Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +static void epxa_mask_irq(unsigned int irq) +{ + writel(1 << irq, INT_MC(IO_ADDRESS(EXC_INT_CTRL00_BASE))); +} + +static void epxa_unmask_irq(unsigned int irq) +{ + writel(1 << irq, INT_MS(IO_ADDRESS(EXC_INT_CTRL00_BASE))); +} + + +static struct irqchip epxa_irq_chip = { + .ack = epxa_mask_irq, + .mask = epxa_mask_irq, + .unmask = epxa_unmask_irq, +}; + +static struct resource irq_resource = { + .name = "irq_handler", + .start = IO_ADDRESS(EXC_INT_CTRL00_BASE), + .end = IO_ADDRESS(INT_PRIORITY_FC(EXC_INT_CTRL00_BASE))+4, +}; + +void __init epxa10db_init_irq(void) +{ + unsigned int i; + + request_resource(&iomem_resource, &irq_resource); + + /* + * This bit sets up the interrupt controller using + * the 6 PLD interrupts mode (the default) each + * irqs is assigned a priority which is the same + * as its interrupt number. This scheme is used because + * its easy, but you may want to change it depending + * on the contents of your PLD + */ + + writel(3,INT_MODE(IO_ADDRESS(EXC_INT_CTRL00_BASE))); + for (i = 0; i < NR_IRQS; i++){ + writel(i+1, INT_PRIORITY_P0(IO_ADDRESS(EXC_INT_CTRL00_BASE)) + (4*i)); + set_irq_chip(i,&epxa_irq_chip); + set_irq_handler(i,do_level_IRQ); + set_irq_flags(i, IRQF_VALID | IRQF_PROBE); + } + + /* Disable all interrupts */ + writel(-1,INT_MC(IO_ADDRESS(EXC_INT_CTRL00_BASE))); + +} diff --git a/trunk/arch/arm/mach-epxa10db/mm.c b/trunk/arch/arm/mach-epxa10db/mm.c new file mode 100644 index 000000000000..cfd0d2182d44 --- /dev/null +++ b/trunk/arch/arm/mach-epxa10db/mm.c @@ -0,0 +1,71 @@ +/* + * linux/arch/arm/mach-epxa10db/mm.c + * + * MM routines for Altera'a Epxa10db board + * + * Copyright (C) 2001 Altera Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include +#include + +#include +#include +#include +#include + +#include + +/* Page table mapping for I/O region */ + +static struct map_desc epxa10db_io_desc[] __initdata = { + { + .virtual = IO_ADDRESS(EXC_REGISTERS_BASE), + .pfn = __phys_to_pfn(EXC_REGISTERS_BASE), + .length = SZ_16K, + .type = MT_DEVICE + }, { + .virtual = IO_ADDRESS(EXC_PLD_BLOCK0_BASE), + .pfn = __phys_to_pfn(EXC_PLD_BLOCK0_BASE), + .length = SZ_16K, + .type = MT_DEVICE + }, { + .virtual = IO_ADDRESS(EXC_PLD_BLOCK1_BASE), + .pfn =__phys_to_pfn(EXC_PLD_BLOCK1_BASE), + .length = SZ_16K, + .type = MT_DEVICE + }, { + .virtual = IO_ADDRESS(EXC_PLD_BLOCK2_BASE), + .physical = __phys_to_pfn(EXC_PLD_BLOCK2_BASE), + .length = SZ_16K, + .type = MT_DEVICE + }, { + .virtual = IO_ADDRESS(EXC_PLD_BLOCK3_BASE), + .pfn = __phys_to_pfn(EXC_PLD_BLOCK3_BASE), + .length = SZ_16K, + .type = MT_DEVICE + }, { + .virtual = FLASH_VADDR(EXC_EBI_BLOCK0_BASE), + .pfn = __phys_to_pfn(EXC_EBI_BLOCK0_BASE), + .length = SZ_16M, + .type = MT_DEVICE + } +}; + +void __init epxa10db_map_io(void) +{ + iotable_init(epxa10db_io_desc, ARRAY_SIZE(epxa10db_io_desc)); +} diff --git a/trunk/arch/arm/mach-epxa10db/time.c b/trunk/arch/arm/mach-epxa10db/time.c new file mode 100644 index 000000000000..4b1084dde8dd --- /dev/null +++ b/trunk/arch/arm/mach-epxa10db/time.c @@ -0,0 +1,78 @@ +/* + * linux/arch/arm/mach-epxa10db/time.c + * + * Copyright (C) 2000 Deep Blue Solutions + * Copyright (C) 2001 Altera Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#include +#include +#include +#include + +#include +#include +#include + +#include + +#define TIMER00_TYPE (volatile unsigned int*) +#include + +static int epxa10db_set_rtc(void) +{ + return 1; +} + +static int epxa10db_rtc_init(void) +{ + set_rtc = epxa10db_set_rtc; + + return 0; +} + +__initcall(epxa10db_rtc_init); + + +/* + * IRQ handler for the timer + */ +static irqreturn_t +epxa10db_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + write_seqlock(&xtime_lock); + + // ...clear the interrupt + *TIMER0_CR(IO_ADDRESS(EXC_TIMER00_BASE))|=TIMER0_CR_CI_MSK; + + timer_tick(regs); + write_sequnlock(&xtime_lock); + + return IRQ_HANDLED; +} + +static struct irqaction epxa10db_timer_irq = { + .name = "Excalibur Timer Tick", + .flags = SA_INTERRUPT | SA_TIMER, + .handler = epxa10db_timer_interrupt, +}; + +/* + * Set up timer interrupt, and return the current time in seconds. + */ +static void __init epxa10db_timer_init(void) +{ + /* Start the timer */ + *TIMER0_LIMIT(IO_ADDRESS(EXC_TIMER00_BASE))=(unsigned int)(EXC_AHB2_CLK_FREQUENCY/200); + *TIMER0_PRESCALE(IO_ADDRESS(EXC_TIMER00_BASE))=1; + *TIMER0_CR(IO_ADDRESS(EXC_TIMER00_BASE))=TIMER0_CR_IE_MSK | TIMER0_CR_S_MSK; + + setup_irq(IRQ_TIMER0, &epxa10db_timer_irq); +} + +struct sys_timer epxa10db_timer = { + .init = epxa10db_timer_init, +}; diff --git a/trunk/arch/arm/mach-integrator/clock.c b/trunk/arch/arm/mach-integrator/clock.c index 95a1e263f7fa..40684e01e865 100644 --- a/trunk/arch/arm/mach-integrator/clock.c +++ b/trunk/arch/arm/mach-integrator/clock.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include @@ -23,20 +22,20 @@ #include "clock.h" static LIST_HEAD(clocks); -static DEFINE_MUTEX(clocks_mutex); +static DECLARE_MUTEX(clocks_sem); struct clk *clk_get(struct device *dev, const char *id) { struct clk *p, *clk = ERR_PTR(-ENOENT); - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_for_each_entry(p, &clocks, node) { if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) { clk = p; break; } } - mutex_unlock(&clocks_mutex); + up(&clocks_sem); return clk; } @@ -108,18 +107,18 @@ static struct clk uart_clk = { int clk_register(struct clk *clk) { - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_add(&clk->node, &clocks); - mutex_unlock(&clocks_mutex); + up(&clocks_sem); return 0; } EXPORT_SYMBOL(clk_register); void clk_unregister(struct clk *clk) { - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_del(&clk->node); - mutex_unlock(&clocks_mutex); + up(&clocks_sem); } EXPORT_SYMBOL(clk_unregister); diff --git a/trunk/arch/arm/mach-omap1/board-perseus2.c b/trunk/arch/arm/mach-omap1/board-perseus2.c index 92ff5dc07351..bd900b7ab33c 100644 --- a/trunk/arch/arm/mach-omap1/board-perseus2.c +++ b/trunk/arch/arm/mach-omap1/board-perseus2.c @@ -184,7 +184,7 @@ static void __init omap_perseus2_map_io(void) omap_writel(0x00000088, OMAP730_FLASH_ACFG_0); /* - * Ethernet support through the debug board + * Ethernet support trough the debug board * CS1 timings setup */ omap_writel(0x0000fff3, OMAP730_FLASH_CFG_1); diff --git a/trunk/arch/arm/mach-pxa/ssp.c b/trunk/arch/arm/mach-pxa/ssp.c index 93096befd017..a68b30eff4d2 100644 --- a/trunk/arch/arm/mach-pxa/ssp.c +++ b/trunk/arch/arm/mach-pxa/ssp.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include @@ -60,7 +59,7 @@ static const struct ssp_info_ ssp_info[PXA_SSP_PORTS] = { #endif }; -static DEFINE_MUTEX(mutex); +static DECLARE_MUTEX(sem); static int use_count[PXA_SSP_PORTS] = {0, 0, 0}; static irqreturn_t ssp_interrupt(int irq, void *dev_id, struct pt_regs *regs) @@ -240,16 +239,16 @@ int ssp_init(struct ssp_dev *dev, u32 port, u32 init_flags) if (port > PXA_SSP_PORTS || port == 0) return -ENODEV; - mutex_lock(&mutex); + down(&sem); if (use_count[port - 1]) { - mutex_unlock(&mutex); + up(&sem); return -EBUSY; } use_count[port - 1]++; if (!request_mem_region(__PREG(SSCR0_P(port)), 0x2c, "SSP")) { use_count[port - 1]--; - mutex_unlock(&mutex); + up(&sem); return -EBUSY; } dev->port = port; @@ -266,13 +265,13 @@ int ssp_init(struct ssp_dev *dev, u32 port, u32 init_flags) /* turn on SSP port clock */ pxa_set_cken(ssp_info[port-1].clock, 1); - mutex_unlock(&mutex); + up(&sem); return 0; out_region: release_mem_region(__PREG(SSCR0_P(port)), 0x2c); use_count[port - 1]--; - mutex_unlock(&mutex); + up(&sem); return ret; } @@ -283,7 +282,7 @@ int ssp_init(struct ssp_dev *dev, u32 port, u32 init_flags) */ void ssp_exit(struct ssp_dev *dev) { - mutex_lock(&mutex); + down(&sem); SSCR0_P(dev->port) &= ~SSCR0_SSE; if (dev->port > PXA_SSP_PORTS || dev->port == 0) { @@ -296,7 +295,7 @@ void ssp_exit(struct ssp_dev *dev) free_irq(dev->irq, dev); release_mem_region(__PREG(SSCR0_P(dev->port)), 0x2c); use_count[dev->port - 1]--; - mutex_unlock(&mutex); + up(&sem); } EXPORT_SYMBOL(ssp_write_word); diff --git a/trunk/arch/arm/mach-realview/clock.c b/trunk/arch/arm/mach-realview/clock.c index 21325a4da9da..ec3f7e798623 100644 --- a/trunk/arch/arm/mach-realview/clock.c +++ b/trunk/arch/arm/mach-realview/clock.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include @@ -22,20 +21,20 @@ #include "clock.h" static LIST_HEAD(clocks); -static DEFINE_MUTEX(clocks_mutex); +static DECLARE_MUTEX(clocks_sem); struct clk *clk_get(struct device *dev, const char *id) { struct clk *p, *clk = ERR_PTR(-ENOENT); - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_for_each_entry(p, &clocks, node) { if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) { clk = p; break; } } - mutex_unlock(&clocks_mutex); + up(&clocks_sem); return clk; } @@ -110,18 +109,18 @@ static struct clk mmci_clk = { int clk_register(struct clk *clk) { - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_add(&clk->node, &clocks); - mutex_unlock(&clocks_mutex); + up(&clocks_sem); return 0; } EXPORT_SYMBOL(clk_register); void clk_unregister(struct clk *clk) { - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_del(&clk->node); - mutex_unlock(&clocks_mutex); + up(&clocks_sem); } EXPORT_SYMBOL(clk_unregister); diff --git a/trunk/arch/arm/mach-s3c2410/clock.c b/trunk/arch/arm/mach-s3c2410/clock.c index af2f3d52b61b..5830ae3ddd19 100644 --- a/trunk/arch/arm/mach-s3c2410/clock.c +++ b/trunk/arch/arm/mach-s3c2410/clock.c @@ -37,7 +37,6 @@ #include #include #include -#include #include #include @@ -52,7 +51,7 @@ /* clock information */ static LIST_HEAD(clocks); -static DEFINE_MUTEX(clocks_mutex); +static DECLARE_MUTEX(clocks_sem); /* old functions */ @@ -103,7 +102,7 @@ struct clk *clk_get(struct device *dev, const char *id) else idno = to_platform_device(dev)->id; - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_for_each_entry(p, &clocks, list) { if (p->id == idno && @@ -127,7 +126,7 @@ struct clk *clk_get(struct device *dev, const char *id) } } - mutex_unlock(&clocks_mutex); + up(&clocks_sem); return clk; } @@ -254,101 +253,100 @@ struct clk s3c24xx_uclk = { /* clock definitions */ static struct clk init_clocks[] = { - { - .name = "nand", - .id = -1, - .parent = &clk_h, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_NAND, - }, { - .name = "lcd", - .id = -1, - .parent = &clk_h, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_LCDC, - }, { - .name = "usb-host", - .id = -1, - .parent = &clk_h, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_USBH, - }, { - .name = "usb-device", - .id = -1, - .parent = &clk_h, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_USBD, - }, { - .name = "timers", - .id = -1, - .parent = &clk_p, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_PWMT, - }, { - .name = "sdi", - .id = -1, - .parent = &clk_p, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_SDI, - }, { - .name = "uart", - .id = 0, - .parent = &clk_p, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_UART0, - }, { - .name = "uart", - .id = 1, - .parent = &clk_p, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_UART1, - }, { - .name = "uart", - .id = 2, - .parent = &clk_p, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_UART2, - }, { - .name = "gpio", - .id = -1, - .parent = &clk_p, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_GPIO, - }, { - .name = "rtc", - .id = -1, - .parent = &clk_p, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_RTC, - }, { - .name = "adc", - .id = -1, - .parent = &clk_p, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_ADC, - }, { - .name = "i2c", - .id = -1, - .parent = &clk_p, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_IIC, - }, { - .name = "iis", - .id = -1, - .parent = &clk_p, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_IIS, - }, { - .name = "spi", - .id = -1, - .parent = &clk_p, - .enable = s3c24xx_clkcon_enable, - .ctrlbit = S3C2410_CLKCON_SPI, - }, { - .name = "watchdog", - .id = -1, - .parent = &clk_p, - .ctrlbit = 0, + { .name = "nand", + .id = -1, + .parent = &clk_h, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_NAND + }, + { .name = "lcd", + .id = -1, + .parent = &clk_h, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_LCDC + }, + { .name = "usb-host", + .id = -1, + .parent = &clk_h, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_USBH + }, + { .name = "usb-device", + .id = -1, + .parent = &clk_h, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_USBD + }, + { .name = "timers", + .id = -1, + .parent = &clk_p, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_PWMT + }, + { .name = "sdi", + .id = -1, + .parent = &clk_p, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_SDI + }, + { .name = "uart", + .id = 0, + .parent = &clk_p, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_UART0 + }, + { .name = "uart", + .id = 1, + .parent = &clk_p, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_UART1 + }, + { .name = "uart", + .id = 2, + .parent = &clk_p, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_UART2 + }, + { .name = "gpio", + .id = -1, + .parent = &clk_p, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_GPIO + }, + { .name = "rtc", + .id = -1, + .parent = &clk_p, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_RTC + }, + { .name = "adc", + .id = -1, + .parent = &clk_p, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_ADC + }, + { .name = "i2c", + .id = -1, + .parent = &clk_p, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_IIC + }, + { .name = "iis", + .id = -1, + .parent = &clk_p, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_IIS + }, + { .name = "spi", + .id = -1, + .parent = &clk_p, + .enable = s3c24xx_clkcon_enable, + .ctrlbit = S3C2410_CLKCON_SPI + }, + { .name = "watchdog", + .id = -1, + .parent = &clk_p, + .ctrlbit = 0 } }; @@ -363,9 +361,9 @@ int s3c24xx_register_clock(struct clk *clk) /* add to the list of available clocks */ - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_add(&clk->list, &clocks); - mutex_unlock(&clocks_mutex); + up(&clocks_sem); return 0; } @@ -392,15 +390,16 @@ int __init s3c24xx_setup_clocks(unsigned long xtal, clk_p.rate = pclk; clk_f.rate = fclk; - /* We must be careful disabling the clocks we are not intending to - * be using at boot time, as subsytems such as the LCD which do - * their own DMA requests to the bus can cause the system to lockup - * if they where in the middle of requesting bus access. + /* it looks like just setting the register here is not good + * enough, and causes the odd hang at initial boot time, so + * do all of them indivdually. * - * Disabling the LCD clock if the LCD is active is very dangerous, - * and therefore the bootloader should be careful to not enable - * the LCD clock if it is not needed. - */ + * I think disabling the LCD clock if the LCD is active is + * very dangerous, and therefore the bootloader should be + * careful to not enable the LCD clock if it is not needed. + * + * and of course, this looks neater + */ s3c24xx_clk_enable(S3C2410_CLKCON_NAND, 0); s3c24xx_clk_enable(S3C2410_CLKCON_USBH, 0); diff --git a/trunk/arch/arm/mach-versatile/clock.c b/trunk/arch/arm/mach-versatile/clock.c index 9858c96560e2..dcf10014f5cd 100644 --- a/trunk/arch/arm/mach-versatile/clock.c +++ b/trunk/arch/arm/mach-versatile/clock.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include @@ -23,20 +22,20 @@ #include "clock.h" static LIST_HEAD(clocks); -static DEFINE_MUTEX(clocks_mutex); +static DECLARE_MUTEX(clocks_sem); struct clk *clk_get(struct device *dev, const char *id) { struct clk *p, *clk = ERR_PTR(-ENOENT); - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_for_each_entry(p, &clocks, node) { if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) { clk = p; break; } } - mutex_unlock(&clocks_mutex); + up(&clocks_sem); return clk; } @@ -111,18 +110,18 @@ static struct clk mmci_clk = { int clk_register(struct clk *clk) { - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_add(&clk->node, &clocks); - mutex_unlock(&clocks_mutex); + up(&clocks_sem); return 0; } EXPORT_SYMBOL(clk_register); void clk_unregister(struct clk *clk) { - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_del(&clk->node); - mutex_unlock(&clocks_mutex); + up(&clocks_sem); } EXPORT_SYMBOL(clk_unregister); diff --git a/trunk/arch/arm/mm/Kconfig b/trunk/arch/arm/mm/Kconfig index 3b79d0e23455..e84fdde6edf8 100644 --- a/trunk/arch/arm/mm/Kconfig +++ b/trunk/arch/arm/mm/Kconfig @@ -62,8 +62,8 @@ config CPU_ARM720T # ARM920T config CPU_ARM920T bool "Support ARM920T processor" if !ARCH_S3C2410 - depends on ARCH_INTEGRATOR || ARCH_S3C2410 || ARCH_IMX || ARCH_AAEC2000 || ARCH_AT91RM9200 - default y if ARCH_S3C2410 || ARCH_AT91RM9200 + depends on ARCH_INTEGRATOR || ARCH_S3C2410 || ARCH_IMX || ARCH_AAEC2000 + default y if ARCH_S3C2410 select CPU_32v4 select CPU_ABRT_EV4T select CPU_CACHE_V4WT @@ -83,8 +83,8 @@ config CPU_ARM920T # ARM922T config CPU_ARM922T bool "Support ARM922T processor" if ARCH_INTEGRATOR - depends on ARCH_LH7A40X || ARCH_INTEGRATOR - default y if ARCH_LH7A40X + depends on ARCH_CAMELOT || ARCH_LH7A40X || ARCH_INTEGRATOR + default y if ARCH_CAMELOT || ARCH_LH7A40X select CPU_32v4 select CPU_ABRT_EV4T select CPU_CACHE_V4WT diff --git a/trunk/arch/arm/mm/consistent.c b/trunk/arch/arm/mm/consistent.c index c2ee18d2075e..0513ed1b2fcf 100644 --- a/trunk/arch/arm/mm/consistent.c +++ b/trunk/arch/arm/mm/consistent.c @@ -20,25 +20,15 @@ #include #include -#include - -/* Sanity check size */ -#if (CONSISTENT_DMA_SIZE % SZ_2M) -#error "CONSISTENT_DMA_SIZE must be multiple of 2MiB" -#endif +#define CONSISTENT_BASE (0xffc00000) #define CONSISTENT_END (0xffe00000) -#define CONSISTENT_BASE (CONSISTENT_END - CONSISTENT_DMA_SIZE) - #define CONSISTENT_OFFSET(x) (((unsigned long)(x) - CONSISTENT_BASE) >> PAGE_SHIFT) -#define CONSISTENT_PTE_INDEX(x) (((unsigned long)(x) - CONSISTENT_BASE) >> PGDIR_SHIFT) -#define NUM_CONSISTENT_PTES (CONSISTENT_DMA_SIZE >> PGDIR_SHIFT) - /* - * These are the page tables (2MB each) covering uncached, DMA consistent allocations + * This is the page table (2MB) covering uncached, DMA consistent allocations */ -static pte_t *consistent_pte[NUM_CONSISTENT_PTES]; +static pte_t *consistent_pte; static DEFINE_SPINLOCK(consistent_lock); /* @@ -152,7 +142,7 @@ __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp, unsigned long order; u64 mask = ISA_DMA_THRESHOLD, limit; - if (!consistent_pte[0]) { + if (!consistent_pte) { printk(KERN_ERR "%s: not initialised\n", __func__); dump_stack(); return NULL; @@ -215,12 +205,9 @@ __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp, c = vm_region_alloc(&consistent_head, size, gfp & ~(__GFP_DMA | __GFP_HIGHMEM)); if (c) { - pte_t *pte; + pte_t *pte = consistent_pte + CONSISTENT_OFFSET(c->vm_start); struct page *end = page + (1 << order); - int idx = CONSISTENT_PTE_INDEX(c->vm_start); - u32 off = CONSISTENT_OFFSET(c->vm_start) & (PTRS_PER_PTE-1); - pte = consistent_pte[idx] + off; c->vm_pages = page; /* @@ -239,11 +226,6 @@ __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp, set_pte(pte, mk_pte(page, prot)); page++; pte++; - off++; - if (off >= PTRS_PER_PTE) { - off = 0; - pte = consistent_pte[++idx]; - } } while (size -= PAGE_SIZE); /* @@ -345,8 +327,6 @@ void dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, dma_addr struct vm_region *c; unsigned long flags, addr; pte_t *ptep; - int idx; - u32 off; WARN_ON(irqs_disabled()); @@ -367,9 +347,7 @@ void dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, dma_addr size = c->vm_end - c->vm_start; } - idx = CONSISTENT_PTE_INDEX(c->vm_start); - off = CONSISTENT_OFFSET(c->vm_start) & (PTRS_PER_PTE-1); - ptep = consistent_pte[idx] + off; + ptep = consistent_pte + CONSISTENT_OFFSET(c->vm_start); addr = c->vm_start; do { pte_t pte = ptep_get_and_clear(&init_mm, addr, ptep); @@ -377,11 +355,6 @@ void dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, dma_addr ptep++; addr += PAGE_SIZE; - off++; - if (off >= PTRS_PER_PTE) { - off = 0; - ptep = consistent_pte[++idx]; - } if (!pte_none(pte) && pte_present(pte)) { pfn = pte_pfn(pte); @@ -428,12 +401,11 @@ static int __init consistent_init(void) pgd_t *pgd; pmd_t *pmd; pte_t *pte; - int ret = 0, i = 0; - u32 base = CONSISTENT_BASE; + int ret = 0; do { - pgd = pgd_offset(&init_mm, base); - pmd = pmd_alloc(&init_mm, pgd, base); + pgd = pgd_offset(&init_mm, CONSISTENT_BASE); + pmd = pmd_alloc(&init_mm, pgd, CONSISTENT_BASE); if (!pmd) { printk(KERN_ERR "%s: no pmd tables\n", __func__); ret = -ENOMEM; @@ -441,16 +413,15 @@ static int __init consistent_init(void) } WARN_ON(!pmd_none(*pmd)); - pte = pte_alloc_kernel(pmd, base); + pte = pte_alloc_kernel(pmd, CONSISTENT_BASE); if (!pte) { printk(KERN_ERR "%s: no pte tables\n", __func__); ret = -ENOMEM; break; } - consistent_pte[i++] = pte; - base += (1 << PGDIR_SHIFT); - } while (base < CONSISTENT_END); + consistent_pte = pte; + } while (0); return ret; } diff --git a/trunk/arch/arm/mm/ioremap.c b/trunk/arch/arm/mm/ioremap.c index de3ce1eec2ec..10901398e4a2 100644 --- a/trunk/arch/arm/mm/ioremap.c +++ b/trunk/arch/arm/mm/ioremap.c @@ -86,12 +86,11 @@ remap_area_pmd(pmd_t * pmd, unsigned long address, unsigned long size, } static int -remap_area_pages(unsigned long start, unsigned long pfn, +remap_area_pages(unsigned long start, unsigned long phys_addr, unsigned long size, unsigned long flags) { unsigned long address = start; unsigned long end = start + size; - unsigned long phys_addr = __pfn_to_phys(pfn); int err = 0; pgd_t * dir; @@ -130,45 +129,37 @@ remap_area_pages(unsigned long start, unsigned long pfn, * 'flags' are the extra L_PTE_ flags that you want to specify for this * mapping. See include/asm-arm/proc-armv/pgtable.h for more information. */ -void __iomem * -__ioremap_pfn(unsigned long pfn, unsigned long offset, size_t size, - unsigned long flags) -{ - unsigned long addr; - struct vm_struct * area; - - area = get_vm_area(size, VM_IOREMAP); - if (!area) - return NULL; - addr = (unsigned long)area->addr; - if (remap_area_pages(addr, pfn, size, flags)) { - vfree(addr); - return NULL; - } - return (void __iomem *) (offset + (char *)addr); -} -EXPORT_SYMBOL(__ioremap_pfn); - void __iomem * __ioremap(unsigned long phys_addr, size_t size, unsigned long flags) { - unsigned long last_addr; - unsigned long offset = phys_addr & ~PAGE_MASK; - unsigned long pfn = __phys_to_pfn(phys_addr); + void * addr; + struct vm_struct * area; + unsigned long offset, last_addr; - /* - * Don't allow wraparound or zero size - */ + /* Don't allow wraparound or zero size */ last_addr = phys_addr + size - 1; if (!size || last_addr < phys_addr) return NULL; /* - * Page align the mapping size + * Mappings have to be page-aligned */ + offset = phys_addr & ~PAGE_MASK; + phys_addr &= PAGE_MASK; size = PAGE_ALIGN(last_addr + 1) - phys_addr; - return __ioremap_pfn(pfn, offset, size, flags); + /* + * Ok, go for it.. + */ + area = get_vm_area(size, VM_IOREMAP); + if (!area) + return NULL; + addr = area->addr; + if (remap_area_pages((unsigned long) addr, phys_addr, size, flags)) { + vfree(addr); + return NULL; + } + return (void __iomem *) (offset + (char *)addr); } EXPORT_SYMBOL(__ioremap); diff --git a/trunk/arch/arm/plat-omap/clock.c b/trunk/arch/arm/plat-omap/clock.c index 7ebc5a29db8d..84fd65656fcf 100644 --- a/trunk/arch/arm/plat-omap/clock.c +++ b/trunk/arch/arm/plat-omap/clock.c @@ -20,7 +20,6 @@ #include #include #include -#include #include #include @@ -28,7 +27,7 @@ #include LIST_HEAD(clocks); -static DEFINE_MUTEX(clocks_mutex); +static DECLARE_MUTEX(clocks_sem); DEFINE_SPINLOCK(clockfw_lock); static struct clk_functions *arch_clock; @@ -41,14 +40,14 @@ struct clk * clk_get(struct device *dev, const char *id) { struct clk *p, *clk = ERR_PTR(-ENOENT); - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_for_each_entry(p, &clocks, node) { if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) { clk = p; break; } } - mutex_unlock(&clocks_mutex); + up(&clocks_sem); return clk; } @@ -250,11 +249,11 @@ void propagate_rate(struct clk * tclk) int clk_register(struct clk *clk) { - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_add(&clk->node, &clocks); if (clk->init) clk->init(clk); - mutex_unlock(&clocks_mutex); + up(&clocks_sem); return 0; } @@ -262,9 +261,9 @@ EXPORT_SYMBOL(clk_register); void clk_unregister(struct clk *clk) { - mutex_lock(&clocks_mutex); + down(&clocks_sem); list_del(&clk->node); - mutex_unlock(&clocks_mutex); + up(&clocks_sem); } EXPORT_SYMBOL(clk_unregister); diff --git a/trunk/arch/arm/plat-omap/dma.c b/trunk/arch/arm/plat-omap/dma.c index a4e5ac77f6df..f5cc21ad0956 100644 --- a/trunk/arch/arm/plat-omap/dma.c +++ b/trunk/arch/arm/plat-omap/dma.c @@ -64,7 +64,7 @@ static int dma_chan_count; static spinlock_t dma_chan_lock; static struct omap_dma_lch dma_chan[OMAP_LOGICAL_DMA_CH_COUNT]; -static const u8 omap1_dma_irq[OMAP_LOGICAL_DMA_CH_COUNT] = { +const static u8 omap1_dma_irq[OMAP_LOGICAL_DMA_CH_COUNT] = { INT_DMA_CH0_6, INT_DMA_CH1_7, INT_DMA_CH2_8, INT_DMA_CH3, INT_DMA_CH4, INT_DMA_CH5, INT_1610_DMA_CH6, INT_1610_DMA_CH7, INT_1610_DMA_CH8, INT_1610_DMA_CH9, INT_1610_DMA_CH10, diff --git a/trunk/arch/arm/tools/mach-types b/trunk/arch/arm/tools/mach-types index d0f9bb5e9023..465487470d0e 100644 --- a/trunk/arch/arm/tools/mach-types +++ b/trunk/arch/arm/tools/mach-types @@ -12,7 +12,7 @@ # # http://www.arm.linux.org.uk/developer/machines/?action=new # -# Last update: Mon Jan 9 12:56:42 2006 +# Last update: Fri Nov 25 14:43:04 2005 # # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number # @@ -910,31 +910,3 @@ mbus MACH_MBUS MBUS 896 nadia2vb MACH_NADIA2VB NADIA2VB 897 r1000 MACH_R1000 R1000 898 hw90250 MACH_HW90250 HW90250 899 -omap_2430sdp MACH_OMAP_2430SDP OMAP_2430SDP 900 -davinci_evm MACH_DAVINCI_EVM DAVINCI_EVM 901 -omap_tornado MACH_OMAP_TORNADO OMAP_TORNADO 902 -olocreek MACH_OLOCREEK OLOCREEK 903 -palmz72 MACH_PALMZ72 PALMZ72 904 -nxdb500 MACH_NXDB500 NXDB500 905 -apf9328 MACH_APF9328 APF9328 906 -omap_wipoq MACH_OMAP_WIPOQ OMAP_WIPOQ 907 -omap_twip MACH_OMAP_TWIP OMAP_TWIP 908 -xscale_treo650 MACH_XSCALE_PALMTREO650 XSCALE_PALMTREO650 909 -acumen MACH_ACUMEN ACUMEN 910 -xp100 MACH_XP100 XP100 911 -fs2410 MACH_FS2410 FS2410 912 -pxa270_cerf MACH_PXA270_CERF PXA270_CERF 913 -sq2ftlpalm MACH_SQ2FTLPALM SQ2FTLPALM 914 -bsemserver MACH_BSEMSERVER BSEMSERVER 915 -netclient MACH_NETCLIENT NETCLIENT 916 -xscale_palmtt5 MACH_XSCALE_PALMTT5 XSCALE_PALMTT5 917 -xscale_palmtc MACH_OMAP_PALMTC OMAP_PALMTC 918 -omap_apollon MACH_OMAP_APOLLON OMAP_APOLLON 919 -argonlvevb MACH_ARGONLVEVB ARGONLVEVB 920 -rea_2d MACH_REA_2D REA_2D 921 -eti3e524 MACH_TI3E524 TI3E524 922 -ateb9200 MACH_ATEB9200 ATEB9200 923 -auckland MACH_AUCKLAND AUCKLAND 924 -ak3220m MACH_AK3320M AK3320M 925 -duramax MACH_DURAMAX DURAMAX 926 -n35 MACH_N35 N35 927 diff --git a/trunk/arch/arm26/kernel/armksyms.c b/trunk/arch/arm26/kernel/armksyms.c index 811a6376c624..35514b398e2e 100644 --- a/trunk/arch/arm26/kernel/armksyms.c +++ b/trunk/arch/arm26/kernel/armksyms.c @@ -35,6 +35,7 @@ #include #include +extern void dump_thread(struct pt_regs *, struct user *); extern int dump_fpu(struct pt_regs *, struct user_fp_struct *); extern void inswb(unsigned int port, void *to, int len); extern void outswb(unsigned int port, const void *to, int len); diff --git a/trunk/arch/arm26/kernel/process.c b/trunk/arch/arm26/kernel/process.c index 386305659171..15833a0057dd 100644 --- a/trunk/arch/arm26/kernel/process.c +++ b/trunk/arch/arm26/kernel/process.c @@ -277,9 +277,10 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long stack_start, unsigned long unused, struct task_struct *p, struct pt_regs *regs) { - struct thread_info *thread = task_thread_info(p); - struct pt_regs *childregs = task_pt_regs(p); + struct thread_info *thread = p->thread_info; + struct pt_regs *childregs; + childregs = __get_user_regs(thread); *childregs = *regs; childregs->ARM_r0 = 0; childregs->ARM_sp = stack_start; diff --git a/trunk/arch/arm26/kernel/ptrace.c b/trunk/arch/arm26/kernel/ptrace.c index 3c3371d4683e..4e6b7356a722 100644 --- a/trunk/arch/arm26/kernel/ptrace.c +++ b/trunk/arch/arm26/kernel/ptrace.c @@ -39,6 +39,21 @@ */ #define BREAKINST_ARM 0xef9f0001 +/* + * Get the address of the live pt_regs for the specified task. + * These are saved onto the top kernel stack when the process + * is not running. + * + * Note: if a user thread is execve'd from kernel space, the + * kernel stack will not be empty on entry to the kernel, so + * ptracing these tasks will fail. + */ +static inline struct pt_regs * +get_user_regs(struct task_struct *task) +{ + return __get_user_regs(task->thread_info); +} + /* * this routine will get a word off of the processes privileged stack. * the offset is how far from the base addr as stored in the THREAD. @@ -47,7 +62,7 @@ */ static inline long get_user_reg(struct task_struct *task, int offset) { - return task_pt_regs(task)->uregs[offset]; + return get_user_regs(task)->uregs[offset]; } /* @@ -59,7 +74,7 @@ static inline long get_user_reg(struct task_struct *task, int offset) static inline int put_user_reg(struct task_struct *task, int offset, long data) { - struct pt_regs newregs, *regs = task_pt_regs(task); + struct pt_regs newregs, *regs = get_user_regs(task); int ret = -EINVAL; newregs = *regs; @@ -362,7 +377,7 @@ void ptrace_set_bpt(struct task_struct *child) u32 insn; int res; - regs = task_pt_regs(child); + regs = get_user_regs(child); pc = instruction_pointer(regs); res = read_instr(child, pc, &insn); @@ -485,7 +500,7 @@ static int ptrace_write_user(struct task_struct *tsk, unsigned long off, */ static int ptrace_getregs(struct task_struct *tsk, void *uregs) { - struct pt_regs *regs = task_pt_regs(tsk); + struct pt_regs *regs = get_user_regs(tsk); return copy_to_user(uregs, regs, sizeof(struct pt_regs)) ? -EFAULT : 0; } @@ -500,7 +515,7 @@ static int ptrace_setregs(struct task_struct *tsk, void *uregs) ret = -EFAULT; if (copy_from_user(&newregs, uregs, sizeof(struct pt_regs)) == 0) { - struct pt_regs *regs = task_pt_regs(tsk); + struct pt_regs *regs = get_user_regs(tsk); ret = -EINVAL; if (valid_user_regs(&newregs)) { @@ -517,7 +532,7 @@ static int ptrace_setregs(struct task_struct *tsk, void *uregs) */ static int ptrace_getfpregs(struct task_struct *tsk, void *ufp) { - return copy_to_user(ufp, &task_thread_info(tsk)->fpstate, + return copy_to_user(ufp, &tsk->thread_info->fpstate, sizeof(struct user_fp)) ? -EFAULT : 0; } @@ -527,7 +542,7 @@ static int ptrace_getfpregs(struct task_struct *tsk, void *ufp) static int ptrace_setfpregs(struct task_struct *tsk, void *ufp) { set_stopped_child_used_math(tsk); - return copy_from_user(&task_threas_info(tsk)->fpstate, ufp, + return copy_from_user(&tsk->thread_info->fpstate, ufp, sizeof(struct user_fp)) ? -EFAULT : 0; } diff --git a/trunk/arch/arm26/kernel/traps.c b/trunk/arch/arm26/kernel/traps.c index 5847ea5d7747..f64f59022392 100644 --- a/trunk/arch/arm26/kernel/traps.c +++ b/trunk/arch/arm26/kernel/traps.c @@ -132,7 +132,7 @@ static void dump_instr(struct pt_regs *regs) /*static*/ void __dump_stack(struct task_struct *tsk, unsigned long sp) { - dump_mem("Stack: ", sp, 8192+(unsigned long)task_stack_page(tsk)); + dump_mem("Stack: ", sp, 8192+(unsigned long)tsk->thread_info); } void dump_stack(void) @@ -158,7 +158,7 @@ void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk) } else if (verify_stack(fp)) { printk("invalid frame pointer 0x%08x", fp); ok = 0; - } else if (fp < (unsigned long)end_of_stack(tsk)) + } else if (fp < (unsigned long)(tsk->thread_info + 1)) printk("frame pointer underflow"); printk("\n"); @@ -168,7 +168,7 @@ void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk) /* FIXME - this is probably wrong.. */ void show_stack(struct task_struct *task, unsigned long *sp) { - dump_mem("Stack: ", (unsigned long)sp, 8192+(unsigned long)task_stack_page(task)); + dump_mem("Stack: ", (unsigned long)sp, 8192+(unsigned long)task->thread_info); } DEFINE_SPINLOCK(die_lock); @@ -187,7 +187,7 @@ NORET_TYPE void die(const char *str, struct pt_regs *regs, int err) printk("CPU: %d\n", smp_processor_id()); show_regs(regs); printk("Process %s (pid: %d, stack limit = 0x%p)\n", - current->comm, current->pid, end_of_stack(tsk)); + current->comm, current->pid, tsk->thread_info + 1); if (!user_mode(regs) || in_interrupt()) { __dump_stack(tsk, (unsigned long)(regs + 1)); diff --git a/trunk/arch/cris/arch-v10/drivers/ds1302.c b/trunk/arch/cris/arch-v10/drivers/ds1302.c index b100f26497c4..10795f67f687 100644 --- a/trunk/arch/cris/arch-v10/drivers/ds1302.c +++ b/trunk/arch/cris/arch-v10/drivers/ds1302.c @@ -148,7 +148,6 @@ #include #include #include -#include #include #include diff --git a/trunk/arch/cris/arch-v10/drivers/pcf8563.c b/trunk/arch/cris/arch-v10/drivers/pcf8563.c index af517c210383..f2c55742e90c 100644 --- a/trunk/arch/cris/arch-v10/drivers/pcf8563.c +++ b/trunk/arch/cris/arch-v10/drivers/pcf8563.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include diff --git a/trunk/arch/cris/arch-v10/kernel/process.c b/trunk/arch/cris/arch-v10/kernel/process.c index 0a675ce9e099..69e28b4057e8 100644 --- a/trunk/arch/cris/arch-v10/kernel/process.c +++ b/trunk/arch/cris/arch-v10/kernel/process.c @@ -79,7 +79,7 @@ void hard_reset_now (void) */ unsigned long thread_saved_pc(struct task_struct *t) { - return task_pt_regs(t)->irp; + return (unsigned long)user_regs(t->thread_info)->irp; } static void kernel_thread_helper(void* dummy, int (*fn)(void *), void * arg) @@ -128,7 +128,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp, * remember that the task_struct doubles as the kernel stack for the task */ - childregs = task_pt_regs(p); + childregs = user_regs(p->thread_info); *childregs = *regs; /* struct copy of pt_regs */ diff --git a/trunk/arch/cris/arch-v10/kernel/ptrace.c b/trunk/arch/cris/arch-v10/kernel/ptrace.c index f214f74f264e..6cbd34a27b90 100644 --- a/trunk/arch/cris/arch-v10/kernel/ptrace.c +++ b/trunk/arch/cris/arch-v10/kernel/ptrace.c @@ -37,7 +37,7 @@ inline long get_reg(struct task_struct *task, unsigned int regno) if (regno == PT_USP) return task->thread.usp; else if (regno < PT_MAX) - return ((unsigned long *)task_pt_regs(task))[regno]; + return ((unsigned long *)user_regs(task->thread_info))[regno]; else return 0; } @@ -51,7 +51,7 @@ inline int put_reg(struct task_struct *task, unsigned int regno, if (regno == PT_USP) task->thread.usp = data; else if (regno < PT_MAX) - ((unsigned long *)task_pt_regs(task))[regno] = data; + ((unsigned long *)user_regs(task->thread_info))[regno] = data; else return -1; return 0; diff --git a/trunk/arch/cris/arch-v32/kernel/process.c b/trunk/arch/cris/arch-v32/kernel/process.c index 843513102d3c..882be42114f7 100644 --- a/trunk/arch/cris/arch-v32/kernel/process.c +++ b/trunk/arch/cris/arch-v32/kernel/process.c @@ -96,7 +96,7 @@ hard_reset_now(void) */ unsigned long thread_saved_pc(struct task_struct *t) { - return task_pt_regs(t)->erp; + return (unsigned long)user_regs(t->thread_info)->erp; } static void @@ -148,7 +148,7 @@ copy_thread(int nr, unsigned long clone_flags, unsigned long usp, * fix it up. Note: the task_struct doubles as the kernel stack for the * task. */ - childregs = task_pt_regs(p); + childregs = user_regs(p->thread_info); *childregs = *regs; /* Struct copy of pt_regs. */ p->set_child_tid = p->clear_child_tid = NULL; childregs->r10 = 0; /* Child returns 0 after a fork/clone. */ @@ -157,7 +157,7 @@ copy_thread(int nr, unsigned long clone_flags, unsigned long usp, * The TLS is in $mof beacuse it is the 5th argument to sys_clone. */ if (p->mm && (clone_flags & CLONE_SETTLS)) { - task_thread_info(p)->tls = regs->mof; + p->thread_info->tls = regs->mof; } /* Put the switch stack right below the pt_regs. */ diff --git a/trunk/arch/cris/arch-v32/kernel/ptrace.c b/trunk/arch/cris/arch-v32/kernel/ptrace.c index 82cf2e3624a4..5528b83a622b 100644 --- a/trunk/arch/cris/arch-v32/kernel/ptrace.c +++ b/trunk/arch/cris/arch-v32/kernel/ptrace.c @@ -46,7 +46,7 @@ long get_reg(struct task_struct *task, unsigned int regno) unsigned long ret; if (regno <= PT_EDA) - ret = ((unsigned long *)task_pt_regs(task))[regno]; + ret = ((unsigned long *)user_regs(task->thread_info))[regno]; else if (regno == PT_USP) ret = task->thread.usp; else if (regno == PT_PPC) @@ -65,13 +65,13 @@ long get_reg(struct task_struct *task, unsigned int regno) int put_reg(struct task_struct *task, unsigned int regno, unsigned long data) { if (regno <= PT_EDA) - ((unsigned long *)task_pt_regs(task))[regno] = data; + ((unsigned long *)user_regs(task->thread_info))[regno] = data; else if (regno == PT_USP) task->thread.usp = data; else if (regno == PT_PPC) { /* Write pseudo-PC to ERP only if changed. */ if (data != get_pseudo_pc(task)) - task_pt_regs(task)->erp = data; + ((unsigned long *)user_regs(task->thread_info))[PT_ERP] = data; } else if (regno <= PT_MAX) return put_debugreg(task->pid, regno, data); else diff --git a/trunk/arch/cris/arch-v32/kernel/smp.c b/trunk/arch/cris/arch-v32/kernel/smp.c index da40d19a151e..13867f4fad16 100644 --- a/trunk/arch/cris/arch-v32/kernel/smp.c +++ b/trunk/arch/cris/arch-v32/kernel/smp.c @@ -113,10 +113,10 @@ smp_boot_one_cpu(int cpuid) if (IS_ERR(idle)) panic("SMP: fork failed for CPU:%d", cpuid); - task_thread_info(idle)->cpu = cpuid; + idle->thread_info->cpu = cpuid; /* Information to the CPU that is about to boot */ - smp_init_current_idle_thread = task_thread_info(idle); + smp_init_current_idle_thread = idle->thread_info; cpu_now_booting = cpuid; /* Wait for CPU to come online */ diff --git a/trunk/arch/cris/arch-v32/mm/tlb.c b/trunk/arch/cris/arch-v32/mm/tlb.c index 9d75d7692303..b08a28bb58ab 100644 --- a/trunk/arch/cris/arch-v32/mm/tlb.c +++ b/trunk/arch/cris/arch-v32/mm/tlb.c @@ -198,9 +198,9 @@ switch_mm(struct mm_struct *prev, struct mm_struct *next, per_cpu(current_pgd, cpu) = next->pgd; /* Switch context in the MMU. */ - if (tsk && task_thread_info(tsk)) + if (tsk && tsk->thread_info) { - SPEC_REG_WR(SPEC_REG_PID, next->context.page_id | task_thread_info(tsk)->tls); + SPEC_REG_WR(SPEC_REG_PID, next->context.page_id | tsk->thread_info->tls); } else { diff --git a/trunk/arch/cris/kernel/crisksyms.c b/trunk/arch/cris/kernel/crisksyms.c index de39725da920..85833d704ebb 100644 --- a/trunk/arch/cris/kernel/crisksyms.c +++ b/trunk/arch/cris/kernel/crisksyms.c @@ -21,6 +21,7 @@ #include #include +extern void dump_thread(struct pt_regs *, struct user *); extern unsigned long get_cmos_time(void); extern void __Udiv(void); extern void __Umod(void); @@ -32,6 +33,7 @@ extern void __lshrdi3(void); extern void iounmap(volatile void * __iomem); /* Platform dependent support */ +EXPORT_SYMBOL(dump_thread); EXPORT_SYMBOL(kernel_thread); EXPORT_SYMBOL(get_cmos_time); EXPORT_SYMBOL(loops_per_usec); diff --git a/trunk/arch/cris/kernel/process.c b/trunk/arch/cris/kernel/process.c index 4ab3e87115b6..7c80afb10460 100644 --- a/trunk/arch/cris/kernel/process.c +++ b/trunk/arch/cris/kernel/process.c @@ -257,6 +257,34 @@ void flush_thread(void) { } +/* + * fill in the user structure for a core dump.. + */ +void dump_thread(struct pt_regs * regs, struct user * dump) +{ +#if 0 + int i; + + /* changed the size calculations - should hopefully work better. lbt */ + dump->magic = CMAGIC; + dump->start_code = 0; + dump->start_stack = regs->esp & ~(PAGE_SIZE - 1); + dump->u_tsize = ((unsigned long) current->mm->end_code) >> PAGE_SHIFT; + dump->u_dsize = ((unsigned long) (current->mm->brk + (PAGE_SIZE-1))) >> PAGE_SHIFT; + dump->u_dsize -= dump->u_tsize; + dump->u_ssize = 0; + for (i = 0; i < 8; i++) + dump->u_debugreg[i] = current->debugreg[i]; + + if (dump->start_stack < TASK_SIZE) + dump->u_ssize = ((unsigned long) (TASK_SIZE - dump->start_stack)) >> PAGE_SHIFT; + + dump->regs = *regs; + + dump->u_fpvalid = dump_fpu (regs, &dump->i387); +#endif +} + /* Fill in the fpu structure for a core dump. */ int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpu) { diff --git a/trunk/arch/frv/Kconfig b/trunk/arch/frv/Kconfig index 60a617aff8ba..61261b78ced7 100644 --- a/trunk/arch/frv/Kconfig +++ b/trunk/arch/frv/Kconfig @@ -6,6 +6,10 @@ config FRV bool default y +config UID16 + bool + default y + config RWSEM_GENERIC_SPINLOCK bool default y diff --git a/trunk/arch/frv/boot/Makefile b/trunk/arch/frv/boot/Makefile index 5dfc93fd945a..d75e0d771366 100644 --- a/trunk/arch/frv/boot/Makefile +++ b/trunk/arch/frv/boot/Makefile @@ -57,10 +57,10 @@ initrd: # installation # install: $(CONFIGURE) Image - sh ./install.sh $(KERNELRELEASE) Image $(TOPDIR)/System.map "$(INSTALL_PATH)" + sh ./install.sh $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) Image $(TOPDIR)/System.map "$(INSTALL_PATH)" zinstall: $(CONFIGURE) zImage - sh ./install.sh $(KERNELRELEASE) zImage $(TOPDIR)/System.map "$(INSTALL_PATH)" + sh ./install.sh $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) zImage $(TOPDIR)/System.map "$(INSTALL_PATH)" # # miscellany diff --git a/trunk/arch/frv/kernel/frv_ksyms.c b/trunk/arch/frv/kernel/frv_ksyms.c index 0f1c6cbc4f50..5f118c89d091 100644 --- a/trunk/arch/frv/kernel/frv_ksyms.c +++ b/trunk/arch/frv/kernel/frv_ksyms.c @@ -18,6 +18,7 @@ #include #include +extern void dump_thread(struct pt_regs *, struct user *); extern long __memcpy_user(void *dst, const void *src, size_t count); extern long __memset_user(void *dst, const void *src, size_t count); @@ -26,6 +27,7 @@ extern long __memset_user(void *dst, const void *src, size_t count); EXPORT_SYMBOL(__ioremap); EXPORT_SYMBOL(iounmap); +EXPORT_SYMBOL(dump_thread); EXPORT_SYMBOL(strnlen); EXPORT_SYMBOL(strrchr); EXPORT_SYMBOL(strstr); diff --git a/trunk/arch/frv/kernel/process.c b/trunk/arch/frv/kernel/process.c index 0fff8a61ef2a..54a452136f00 100644 --- a/trunk/arch/frv/kernel/process.c +++ b/trunk/arch/frv/kernel/process.c @@ -204,7 +204,7 @@ int copy_thread(int nr, unsigned long clone_flags, regs0 = __kernel_frame0_ptr; childregs0 = (struct pt_regs *) - (task_stack_page(p) + THREAD_SIZE - USER_CONTEXT_SIZE); + ((unsigned long) p->thread_info + THREAD_SIZE - USER_CONTEXT_SIZE); childregs = childregs0; /* set up the userspace frame (the only place that the USP is stored) */ @@ -220,7 +220,7 @@ int copy_thread(int nr, unsigned long clone_flags, *childregs = *regs; childregs->sp = (unsigned long) childregs0; childregs->next_frame = childregs0; - childregs->gr15 = (unsigned long) task_thread_info(p); + childregs->gr15 = (unsigned long) p->thread_info; childregs->gr29 = (unsigned long) p; } @@ -243,6 +243,28 @@ int copy_thread(int nr, unsigned long clone_flags, return 0; } /* end copy_thread() */ +/* + * fill in the user structure for a core dump.. + */ +void dump_thread(struct pt_regs *regs, struct user *dump) +{ +#if 0 + /* changed the size calculations - should hopefully work better. lbt */ + dump->magic = CMAGIC; + dump->start_code = 0; + dump->start_stack = user_stack(regs) & ~(PAGE_SIZE - 1); + dump->u_tsize = ((unsigned long) current->mm->end_code) >> PAGE_SHIFT; + dump->u_dsize = ((unsigned long) (current->mm->brk + (PAGE_SIZE-1))) >> PAGE_SHIFT; + dump->u_dsize -= dump->u_tsize; + dump->u_ssize = 0; + + if (dump->start_stack < TASK_SIZE) + dump->u_ssize = ((unsigned long) (TASK_SIZE - dump->start_stack)) >> PAGE_SHIFT; + + dump->regs = *(struct user_context *) regs; +#endif +} + /* * sys_execve() executes a new program. */ diff --git a/trunk/arch/frv/mb93090-mb00/pci-frv.c b/trunk/arch/frv/mb93090-mb00/pci-frv.c index 0a26bf6f1cd4..83e5489cf039 100644 --- a/trunk/arch/frv/mb93090-mb00/pci-frv.c +++ b/trunk/arch/frv/mb93090-mb00/pci-frv.c @@ -142,7 +142,9 @@ static void __init pcibios_allocate_resources(int pass) u16 command; struct resource *r, *pr; - for_each_pci_dev(dev) { + while (dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev), + dev != NULL + ) { pci_read_config_word(dev, PCI_COMMAND, &command); for(idx = 0; idx < 6; idx++) { r = &dev->resource[idx]; @@ -186,7 +188,9 @@ static void __init pcibios_assign_resources(void) int idx; struct resource *r; - for_each_pci_dev(dev) { + while (dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev), + dev != NULL + ) { int class = dev->class >> 8; /* Don't touch classless devices and host bridges */ diff --git a/trunk/arch/frv/mb93090-mb00/pci-irq.c b/trunk/arch/frv/mb93090-mb00/pci-irq.c index c4a1144c98b0..24622d89b1ca 100644 --- a/trunk/arch/frv/mb93090-mb00/pci-irq.c +++ b/trunk/arch/frv/mb93090-mb00/pci-irq.c @@ -48,7 +48,9 @@ void __init pcibios_fixup_irqs(void) struct pci_dev *dev = NULL; uint8_t line, pin; - for_each_pci_dev(dev) { + while (dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev), + dev != NULL + ) { pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin); if (pin) { dev->irq = pci_bus0_irq_routing[PCI_SLOT(dev->devfn)][pin - 1]; diff --git a/trunk/arch/h8300/kernel/gpio.c b/trunk/arch/h8300/kernel/gpio.c index d195568ca8a2..795682b873e2 100644 --- a/trunk/arch/h8300/kernel/gpio.c +++ b/trunk/arch/h8300/kernel/gpio.c @@ -122,7 +122,7 @@ int h8300_get_gpio_dir(int port_bit) static char *port_status(int portno) { static char result[10]; - static const char io[2]={'I','O'}; + const static char io[2]={'I','O'}; char *rp; int c; unsigned char used,ddr; @@ -143,7 +143,7 @@ static int gpio_proc_read(char *buf, char **start, off_t offset, int len, int *unused_i, void *unused_v) { int c,outlen; - static const char port_name[]="123456789ABCDEFGH"; + const static char port_name[]="123456789ABCDEFGH"; outlen = 0; for (c = 0; c < MAX_PORT; c++) { if (ddrs[c] == NULL) diff --git a/trunk/arch/h8300/kernel/h8300_ksyms.c b/trunk/arch/h8300/kernel/h8300_ksyms.c index 5cc76efaf7aa..5a630233112f 100644 --- a/trunk/arch/h8300/kernel/h8300_ksyms.c +++ b/trunk/arch/h8300/kernel/h8300_ksyms.c @@ -22,8 +22,11 @@ //asmlinkage long long __lshrdi3 (long long, int); extern char h8300_debug_device[]; +extern void dump_thread(struct pt_regs *, struct user *); + /* platform dependent support */ +EXPORT_SYMBOL(dump_thread); EXPORT_SYMBOL(strnlen); EXPORT_SYMBOL(strrchr); EXPORT_SYMBOL(strstr); @@ -100,6 +103,10 @@ EXPORT_SYMBOL(__udivsi3); EXPORT_SYMBOL(__umoddi3); EXPORT_SYMBOL(__umodsi3); +#ifdef MAGIC_ROM_PTR +EXPORT_SYMBOL(is_in_rom); +#endif + EXPORT_SYMBOL(h8300_reserved_gpio); EXPORT_SYMBOL(h8300_free_gpio); EXPORT_SYMBOL(h8300_set_gpio_dir); diff --git a/trunk/arch/h8300/kernel/process.c b/trunk/arch/h8300/kernel/process.c index ed79ae20e88d..fe21adf3e75e 100644 --- a/trunk/arch/h8300/kernel/process.c +++ b/trunk/arch/h8300/kernel/process.c @@ -195,7 +195,7 @@ int copy_thread(int nr, unsigned long clone_flags, { struct pt_regs * childregs; - childregs = (struct pt_regs *) (THREAD_SIZE + task_stack_page(p)) - 1; + childregs = ((struct pt_regs *) (THREAD_SIZE + (unsigned long) p->thread_info)) - 1; *childregs = *regs; childregs->retpc = (unsigned long) ret_from_fork; @@ -207,6 +207,34 @@ int copy_thread(int nr, unsigned long clone_flags, return 0; } +/* + * fill in the user structure for a core dump.. + */ +void dump_thread(struct pt_regs * regs, struct user * dump) +{ +/* changed the size calculations - should hopefully work better. lbt */ + dump->magic = CMAGIC; + dump->start_code = 0; + dump->start_stack = rdusp() & ~(PAGE_SIZE - 1); + dump->u_tsize = ((unsigned long) current->mm->end_code) >> PAGE_SHIFT; + dump->u_dsize = ((unsigned long) (current->mm->brk + + (PAGE_SIZE-1))) >> PAGE_SHIFT; + dump->u_dsize -= dump->u_tsize; + dump->u_ssize = 0; + + dump->u_ar0 = (struct user_regs_struct *)(((int)(&dump->regs)) -((int)(dump))); + dump->regs.er0 = regs->er0; + dump->regs.er1 = regs->er1; + dump->regs.er2 = regs->er2; + dump->regs.er3 = regs->er3; + dump->regs.er4 = regs->er4; + dump->regs.er5 = regs->er5; + dump->regs.er6 = regs->er6; + dump->regs.orig_er0 = regs->orig_er0; + dump->regs.ccr = regs->ccr; + dump->regs.pc = regs->pc; +} + /* * sys_execve() executes a new program. */ diff --git a/trunk/arch/h8300/mm/memory.c b/trunk/arch/h8300/mm/memory.c index 81eace93f867..f4ddece3216f 100644 --- a/trunk/arch/h8300/mm/memory.c +++ b/trunk/arch/h8300/mm/memory.c @@ -55,3 +55,16 @@ unsigned long kernel_map(unsigned long paddr, unsigned long size, return paddr; } +#ifdef MAGIC_ROM_PTR + +int is_in_rom(unsigned long addr) +{ + /* Anything not in operational RAM is returned as in rom! */ + if (addr < _ramstart || addr >= _ramend) + return 1; + else + return 0; +} + +#endif + diff --git a/trunk/arch/h8300/platform/h8300h/ptrace_h8300h.c b/trunk/arch/h8300/platform/h8300h/ptrace_h8300h.c index 746b1ae672a1..6ac93c05a1ae 100644 --- a/trunk/arch/h8300/platform/h8300h/ptrace_h8300h.c +++ b/trunk/arch/h8300/platform/h8300h/ptrace_h8300h.c @@ -98,7 +98,7 @@ struct optable { .type = jmp, \ } -static const struct optable optable_0[] = { +const static struct optable optable_0[] = { OPTABLE(0x00,0xff, 1,none), /* 0x00 */ OPTABLE(0x01,0xff,-1,none), /* 0x01 */ OPTABLE(0x02,0xfe, 1,none), /* 0x02-0x03 */ @@ -131,31 +131,31 @@ static const struct optable optable_0[] = { OPTABLE(0x80,0x80, 1,none), /* 0x80-0xff */ }; -static const struct optable optable_1[] = { +const static struct optable optable_1[] = { OPTABLE(0x00,0xff,-3,none), /* 0x0100 */ OPTABLE(0x40,0xf0,-3,none), /* 0x0140-0x14f */ OPTABLE(0x80,0xf0, 1,none), /* 0x0180-0x018f */ OPTABLE(0xc0,0xc0, 2,none), /* 0x01c0-0x01ff */ }; -static const struct optable optable_2[] = { +const static struct optable optable_2[] = { OPTABLE(0x00,0x20, 2,none), /* 0x6a0?/0x6a8?/0x6b0?/0x6b8? */ OPTABLE(0x20,0x20, 3,none), /* 0x6a2?/0x6aa?/0x6b2?/0x6ba? */ }; -static const struct optable optable_3[] = { +const static struct optable optable_3[] = { OPTABLE(0x69,0xfb, 2,none), /* 0x010069/0x01006d/014069/0x01406d */ OPTABLE(0x6b,0xff,-4,none), /* 0x01006b/0x01406b */ OPTABLE(0x6f,0xff, 3,none), /* 0x01006f/0x01406f */ OPTABLE(0x78,0xff, 5,none), /* 0x010078/0x014078 */ }; -static const struct optable optable_4[] = { +const static struct optable optable_4[] = { OPTABLE(0x00,0x78, 3,none), /* 0x0100690?/0x01006d0?/0140690/0x01406d0?/0x0100698?/0x01006d8?/0140698?/0x01406d8? */ OPTABLE(0x20,0x78, 4,none), /* 0x0100692?/0x01006d2?/0140692/0x01406d2?/0x010069a?/0x01006da?/014069a?/0x01406da? */ }; -static const struct optables_list { +const static struct optables_list { const struct optable *ptr; int size; } optables[] = { diff --git a/trunk/arch/h8300/platform/h8s/ints.c b/trunk/arch/h8300/platform/h8s/ints.c index f6ed663bdde0..5441cdd12a39 100644 --- a/trunk/arch/h8300/platform/h8s/ints.c +++ b/trunk/arch/h8300/platform/h8s/ints.c @@ -52,7 +52,7 @@ struct irq_pins { unsigned char bit_no; }; /* ISTR = 0 */ -static const struct irq_pins irq_assign_table0[16]={ +const static struct irq_pins irq_assign_table0[16]={ {H8300_GPIO_P5,H8300_GPIO_B0},{H8300_GPIO_P5,H8300_GPIO_B1}, {H8300_GPIO_P5,H8300_GPIO_B2},{H8300_GPIO_P5,H8300_GPIO_B3}, {H8300_GPIO_P5,H8300_GPIO_B4},{H8300_GPIO_P5,H8300_GPIO_B5}, @@ -63,7 +63,7 @@ static const struct irq_pins irq_assign_table0[16]={ {H8300_GPIO_PF,H8300_GPIO_B1},{H8300_GPIO_PF,H8300_GPIO_B2}, }; /* ISTR = 1 */ -static const struct irq_pins irq_assign_table1[16]={ +const static struct irq_pins irq_assign_table1[16]={ {H8300_GPIO_P8,H8300_GPIO_B0},{H8300_GPIO_P8,H8300_GPIO_B1}, {H8300_GPIO_P8,H8300_GPIO_B2},{H8300_GPIO_P8,H8300_GPIO_B3}, {H8300_GPIO_P8,H8300_GPIO_B4},{H8300_GPIO_P8,H8300_GPIO_B5}, diff --git a/trunk/arch/h8300/platform/h8s/ints_h8s.c b/trunk/arch/h8300/platform/h8s/ints_h8s.c index 8268dfd12f1f..f53de493e3e8 100644 --- a/trunk/arch/h8300/platform/h8s/ints_h8s.c +++ b/trunk/arch/h8300/platform/h8s/ints_h8s.c @@ -42,7 +42,7 @@ struct irq_pins { unsigned char bit_no; } __attribute__((aligned(1),packed)); /* ISTR = 0 */ -static const struct irq_pins irq_assign_table0[16]={ +const static struct irq_pins irq_assign_table0[16]={ {H8300_GPIO_P5,H8300_GPIO_B0},{H8300_GPIO_P5,H8300_GPIO_B1}, {H8300_GPIO_P5,H8300_GPIO_B2},{H8300_GPIO_P5,H8300_GPIO_B3}, {H8300_GPIO_P5,H8300_GPIO_B4},{H8300_GPIO_P5,H8300_GPIO_B5}, @@ -53,7 +53,7 @@ static const struct irq_pins irq_assign_table0[16]={ {H8300_GPIO_PF,H8300_GPIO_B1},{H8300_GPIO_PF,H8300_GPIO_B2}, }; /* ISTR = 1 */ -static const struct irq_pins irq_assign_table1[16]={ +const static struct irq_pins irq_assign_table1[16]={ {H8300_GPIO_P8,H8300_GPIO_B0},{H8300_GPIO_P8,H8300_GPIO_B1}, {H8300_GPIO_P8,H8300_GPIO_B2},{H8300_GPIO_P8,H8300_GPIO_B3}, {H8300_GPIO_P8,H8300_GPIO_B4},{H8300_GPIO_P8,H8300_GPIO_B5}, diff --git a/trunk/arch/i386/Kconfig b/trunk/arch/i386/Kconfig index d5d0df7f04fc..d849c6870e3a 100644 --- a/trunk/arch/i386/Kconfig +++ b/trunk/arch/i386/Kconfig @@ -41,21 +41,8 @@ config ARCH_MAY_HAVE_PC_FDC bool default y -config DMI - bool - default y - source "init/Kconfig" -config DOUBLEFAULT - default y - bool "Enable doublefault exception handler" if EMBEDDED - help - This option allows trapping of rare doublefault exceptions that - would otherwise cause a system to silently reboot. Disabling this - option saves about 4k and might cause you much additional grey - hair. - menu "Processor type and features" choice @@ -658,6 +645,17 @@ config SECCOMP source kernel/Kconfig.hz +config PHYSICAL_START + hex "Physical address where the kernel is loaded" if EMBEDDED + default "0x100000" + help + This gives the physical address where the kernel is loaded. + Primarily used in the case of kexec on panic where the + fail safe kernel needs to run at a different address than + the panic-ed kernel. + + Don't change this unless you know what you are doing. + config KEXEC bool "kexec system call (EXPERIMENTAL)" depends on EXPERIMENTAL @@ -677,31 +675,11 @@ config KEXEC config CRASH_DUMP bool "kernel crash dumps (EXPERIMENTAL)" + depends on EMBEDDED depends on EXPERIMENTAL depends on HIGHMEM help Generate crash dump after being started by kexec. - -config PHYSICAL_START - hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) - - default "0x1000000" if CRASH_DUMP - default "0x100000" - help - This gives the physical address where the kernel is loaded. Normally - for regular kernels this value is 0x100000 (1MB). But in the case - of kexec on panic the fail safe kernel needs to run at a different - address than the panic-ed kernel. This option is used to set the load - address for kernels used to capture crash dump on being kexec'ed - after panic. The default value for crash dump kernels is - 0x1000000 (16MB). This can also be set based on the "X" value as - specified in the "crashkernel=YM@XM" command line boot parameter - passed to the panic-ed kernel. Typically this parameter is set as - crashkernel=64M@16M. Please take a look at - Documentation/kdump/kdump.txt for more details about crash dumps. - - Don't change this unless you know what you are doing. - endmenu @@ -1073,7 +1051,3 @@ config X86_TRAMPOLINE bool depends on X86_SMP || (X86_VOYAGER && SMP) default y - -config KTIME_SCALAR - bool - default y diff --git a/trunk/arch/i386/Makefile b/trunk/arch/i386/Makefile index d3c0409d201c..b84119f9cc63 100644 --- a/trunk/arch/i386/Makefile +++ b/trunk/arch/i386/Makefile @@ -37,10 +37,7 @@ CFLAGS += $(call cc-option,-mpreferred-stack-boundary=2) # CPU-specific tuning. Anything which can be shared with UML should go here. include $(srctree)/arch/i386/Makefile.cpu -# -mregparm=3 works ok on gcc-3.0 and later -# -cflags-$(CONFIG_REGPARM) += $(shell if [ $(call cc-version) -ge 0300 ] ; then \ - echo "-mregparm=3"; fi ;) +cflags-$(CONFIG_REGPARM) += -mregparm=3 # Disable unit-at-a-time mode, it makes gcc use a lot more stack # due to the lack of sharing of stacklots. @@ -103,7 +100,7 @@ AFLAGS += $(mflags-y) boot := arch/i386/boot .PHONY: zImage bzImage compressed zlilo bzlilo \ - zdisk bzdisk fdimage fdimage144 fdimage288 install + zdisk bzdisk fdimage fdimage144 fdimage288 install kernel_install all: bzImage @@ -125,7 +122,8 @@ zdisk bzdisk: vmlinux fdimage fdimage144 fdimage288: vmlinux $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) $@ -install: +install: vmlinux +install kernel_install: $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) install archclean: diff --git a/trunk/arch/i386/boot/Makefile b/trunk/arch/i386/boot/Makefile index f136752563b1..1e71382d413a 100644 --- a/trunk/arch/i386/boot/Makefile +++ b/trunk/arch/i386/boot/Makefile @@ -100,5 +100,5 @@ zlilo: $(BOOTIMAGE) cp System.map $(INSTALL_PATH)/ if [ -x /sbin/lilo ]; then /sbin/lilo; else /etc/lilo/install; fi -install: - sh $(srctree)/$(src)/install.sh $(KERNELRELEASE) $(BOOTIMAGE) System.map "$(INSTALL_PATH)" +install: $(BOOTIMAGE) + sh $(srctree)/$(src)/install.sh $(KERNELRELEASE) $< System.map "$(INSTALL_PATH)" diff --git a/trunk/arch/i386/boot/install.sh b/trunk/arch/i386/boot/install.sh index 5e44c736eea8..f17b40dfc0f4 100644 --- a/trunk/arch/i386/boot/install.sh +++ b/trunk/arch/i386/boot/install.sh @@ -19,20 +19,6 @@ # $4 - default install path (blank if root directory) # -verify () { - if [ ! -f "$1" ]; then - echo "" 1>&2 - echo " *** Missing file: $1" 1>&2 - echo ' *** You need to run "make" before "make install".' 1>&2 - echo "" 1>&2 - exit 1 - fi -} - -# Make sure the files actually exist -verify "$2" -verify "$3" - # User may have a custom install script if [ -x ~/bin/${CROSS_COMPILE}installkernel ]; then exec ~/bin/${CROSS_COMPILE}installkernel "$@"; fi diff --git a/trunk/arch/i386/boot/video.S b/trunk/arch/i386/boot/video.S index 2ac40c8244c4..92f669470142 100644 --- a/trunk/arch/i386/boot/video.S +++ b/trunk/arch/i386/boot/video.S @@ -97,6 +97,7 @@ #define PARAM_VESAPM_OFF 0x30 #define PARAM_LFB_PAGES 0x32 #define PARAM_VESA_ATTRIB 0x34 +#define PARAM_CAPABILITIES 0x36 /* Define DO_STORE according to CONFIG_VIDEO_RETAIN */ #ifdef CONFIG_VIDEO_RETAIN @@ -233,6 +234,10 @@ mopar_gr: movw 18(%di), %ax movl %eax, %fs:(PARAM_LFB_SIZE) +# store mode capabilities + movl 10(%di), %eax + movl %eax, %fs:(PARAM_CAPABILITIES) + # switching the DAC to 8-bit is for <= 8 bpp only movw %fs:(PARAM_LFB_DEPTH), %ax cmpw $8, %ax diff --git a/trunk/arch/i386/crypto/aes-i586-asm.S b/trunk/arch/i386/crypto/aes-i586-asm.S index 911b15377f2e..7b73c67cb4e8 100644 --- a/trunk/arch/i386/crypto/aes-i586-asm.S +++ b/trunk/arch/i386/crypto/aes-i586-asm.S @@ -255,17 +255,18 @@ aes_enc_blk: xor 8(%ebp),%r4 xor 12(%ebp),%r5 - sub $8,%esp // space for register saves on stack - add $16,%ebp // increment to next round key - cmp $12,%r3 - jb 4f // 10 rounds for 128-bit key - lea 32(%ebp),%ebp - je 3f // 12 rounds for 192-bit key - lea 32(%ebp),%ebp - -2: fwd_rnd1( -64(%ebp) ,ft_tab) // 14 rounds for 256-bit key + sub $8,%esp // space for register saves on stack + add $16,%ebp // increment to next round key + sub $10,%r3 + je 4f // 10 rounds for 128-bit key + add $32,%ebp + sub $2,%r3 + je 3f // 12 rounds for 128-bit key + add $32,%ebp + +2: fwd_rnd1( -64(%ebp) ,ft_tab) // 14 rounds for 128-bit key fwd_rnd2( -48(%ebp) ,ft_tab) -3: fwd_rnd1( -32(%ebp) ,ft_tab) // 12 rounds for 192-bit key +3: fwd_rnd1( -32(%ebp) ,ft_tab) // 12 rounds for 128-bit key fwd_rnd2( -16(%ebp) ,ft_tab) 4: fwd_rnd1( (%ebp) ,ft_tab) // 10 rounds for 128-bit key fwd_rnd2( +16(%ebp) ,ft_tab) @@ -333,17 +334,18 @@ aes_dec_blk: xor 8(%ebp),%r4 xor 12(%ebp),%r5 - sub $8,%esp // space for register saves on stack - sub $16,%ebp // increment to next round key - cmp $12,%r3 - jb 4f // 10 rounds for 128-bit key - lea -32(%ebp),%ebp - je 3f // 12 rounds for 192-bit key - lea -32(%ebp),%ebp + sub $8,%esp // space for register saves on stack + sub $16,%ebp // increment to next round key + sub $10,%r3 + je 4f // 10 rounds for 128-bit key + sub $32,%ebp + sub $2,%r3 + je 3f // 12 rounds for 128-bit key + sub $32,%ebp -2: inv_rnd1( +64(%ebp), it_tab) // 14 rounds for 256-bit key +2: inv_rnd1( +64(%ebp), it_tab) // 14 rounds for 128-bit key inv_rnd2( +48(%ebp), it_tab) -3: inv_rnd1( +32(%ebp), it_tab) // 12 rounds for 192-bit key +3: inv_rnd1( +32(%ebp), it_tab) // 12 rounds for 128-bit key inv_rnd2( +16(%ebp), it_tab) 4: inv_rnd1( (%ebp), it_tab) // 10 rounds for 128-bit key inv_rnd2( -16(%ebp), it_tab) diff --git a/trunk/arch/i386/crypto/aes.c b/trunk/arch/i386/crypto/aes.c index a50397b1d5c7..88ee85c3b43b 100644 --- a/trunk/arch/i386/crypto/aes.c +++ b/trunk/arch/i386/crypto/aes.c @@ -36,8 +36,6 @@ * Copyright (c) 2004 Red Hat, Inc., James Morris * */ - -#include #include #include #include @@ -61,6 +59,7 @@ struct aes_ctx { }; #define WPOLY 0x011b +#define u32_in(x) le32_to_cpup((const __le32 *)(x)) #define bytes2word(b0, b1, b2, b3) \ (((u32)(b3) << 24) | ((u32)(b2) << 16) | ((u32)(b1) << 8) | (b0)) @@ -94,6 +93,7 @@ static u32 rcon_tab[RC_LENGTH]; u32 ft_tab[4][256]; u32 fl_tab[4][256]; +static u32 ls_tab[4][256]; static u32 im_tab[4][256]; u32 il_tab[4][256]; u32 it_tab[4][256]; @@ -144,6 +144,15 @@ static void gen_tabs(void) fl_tab[2][i] = upr(w, 2); fl_tab[3][i] = upr(w, 3); + /* + * table for key schedule if fl_tab above is + * not of the required form + */ + ls_tab[0][i] = w; + ls_tab[1][i] = upr(w, 1); + ls_tab[2][i] = upr(w, 2); + ls_tab[3][i] = upr(w, 3); + b = fi(inv_affine((u8)i)); w = bytes2word(fe(b), f9(b), fd(b), fb(b)); @@ -384,14 +393,13 @@ aes_set_key(void *ctx_arg, const u8 *in_key, unsigned int key_len, u32 *flags) int i; u32 ss[8]; struct aes_ctx *ctx = ctx_arg; - const __le32 *key = (const __le32 *)in_key; /* encryption schedule */ - ctx->ekey[0] = ss[0] = le32_to_cpu(key[0]); - ctx->ekey[1] = ss[1] = le32_to_cpu(key[1]); - ctx->ekey[2] = ss[2] = le32_to_cpu(key[2]); - ctx->ekey[3] = ss[3] = le32_to_cpu(key[3]); + ctx->ekey[0] = ss[0] = u32_in(in_key); + ctx->ekey[1] = ss[1] = u32_in(in_key + 4); + ctx->ekey[2] = ss[2] = u32_in(in_key + 8); + ctx->ekey[3] = ss[3] = u32_in(in_key + 12); switch(key_len) { case 16: @@ -402,8 +410,8 @@ aes_set_key(void *ctx_arg, const u8 *in_key, unsigned int key_len, u32 *flags) break; case 24: - ctx->ekey[4] = ss[4] = le32_to_cpu(key[4]); - ctx->ekey[5] = ss[5] = le32_to_cpu(key[5]); + ctx->ekey[4] = ss[4] = u32_in(in_key + 16); + ctx->ekey[5] = ss[5] = u32_in(in_key + 20); for (i = 0; i < 7; i++) ke6(ctx->ekey, i); kel6(ctx->ekey, 7); @@ -411,10 +419,10 @@ aes_set_key(void *ctx_arg, const u8 *in_key, unsigned int key_len, u32 *flags) break; case 32: - ctx->ekey[4] = ss[4] = le32_to_cpu(key[4]); - ctx->ekey[5] = ss[5] = le32_to_cpu(key[5]); - ctx->ekey[6] = ss[6] = le32_to_cpu(key[6]); - ctx->ekey[7] = ss[7] = le32_to_cpu(key[7]); + ctx->ekey[4] = ss[4] = u32_in(in_key + 16); + ctx->ekey[5] = ss[5] = u32_in(in_key + 20); + ctx->ekey[6] = ss[6] = u32_in(in_key + 24); + ctx->ekey[7] = ss[7] = u32_in(in_key + 28); for (i = 0; i < 6; i++) ke8(ctx->ekey, i); kel8(ctx->ekey, 6); @@ -428,10 +436,10 @@ aes_set_key(void *ctx_arg, const u8 *in_key, unsigned int key_len, u32 *flags) /* decryption schedule */ - ctx->dkey[0] = ss[0] = le32_to_cpu(key[0]); - ctx->dkey[1] = ss[1] = le32_to_cpu(key[1]); - ctx->dkey[2] = ss[2] = le32_to_cpu(key[2]); - ctx->dkey[3] = ss[3] = le32_to_cpu(key[3]); + ctx->dkey[0] = ss[0] = u32_in(in_key); + ctx->dkey[1] = ss[1] = u32_in(in_key + 4); + ctx->dkey[2] = ss[2] = u32_in(in_key + 8); + ctx->dkey[3] = ss[3] = u32_in(in_key + 12); switch (key_len) { case 16: @@ -442,8 +450,8 @@ aes_set_key(void *ctx_arg, const u8 *in_key, unsigned int key_len, u32 *flags) break; case 24: - ctx->dkey[4] = ff(ss[4] = le32_to_cpu(key[4])); - ctx->dkey[5] = ff(ss[5] = le32_to_cpu(key[5])); + ctx->dkey[4] = ff(ss[4] = u32_in(in_key + 16)); + ctx->dkey[5] = ff(ss[5] = u32_in(in_key + 20)); kdf6(ctx->dkey, 0); for (i = 1; i < 7; i++) kd6(ctx->dkey, i); @@ -451,10 +459,10 @@ aes_set_key(void *ctx_arg, const u8 *in_key, unsigned int key_len, u32 *flags) break; case 32: - ctx->dkey[4] = ff(ss[4] = le32_to_cpu(key[4])); - ctx->dkey[5] = ff(ss[5] = le32_to_cpu(key[5])); - ctx->dkey[6] = ff(ss[6] = le32_to_cpu(key[6])); - ctx->dkey[7] = ff(ss[7] = le32_to_cpu(key[7])); + ctx->dkey[4] = ff(ss[4] = u32_in(in_key + 16)); + ctx->dkey[5] = ff(ss[5] = u32_in(in_key + 20)); + ctx->dkey[6] = ff(ss[6] = u32_in(in_key + 24)); + ctx->dkey[7] = ff(ss[7] = u32_in(in_key + 28)); kdf8(ctx->dkey, 0); for (i = 1; i < 6; i++) kd8(ctx->dkey, i); @@ -476,8 +484,6 @@ static inline void aes_decrypt(void *ctx, u8 *dst, const u8 *src) static struct crypto_alg aes_alg = { .cra_name = "aes", - .cra_driver_name = "aes-i586", - .cra_priority = 200, .cra_flags = CRYPTO_ALG_TYPE_CIPHER, .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct aes_ctx), diff --git a/trunk/arch/i386/kernel/Makefile b/trunk/arch/i386/kernel/Makefile index 60c3f76dfca4..be1880bb75b4 100644 --- a/trunk/arch/i386/kernel/Makefile +++ b/trunk/arch/i386/kernel/Makefile @@ -25,7 +25,6 @@ obj-$(CONFIG_X86_LOCAL_APIC) += apic.o nmi.o obj-$(CONFIG_X86_IO_APIC) += io_apic.o obj-$(CONFIG_X86_REBOOTFIXUPS) += reboot_fixups.o obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o crash.o -obj-$(CONFIG_CRASH_DUMP) += crash_dump.o obj-$(CONFIG_X86_NUMAQ) += numaq.o obj-$(CONFIG_X86_SUMMIT_NUMA) += summit.o obj-$(CONFIG_KPROBES) += kprobes.o diff --git a/trunk/arch/i386/kernel/acpi/boot.c b/trunk/arch/i386/kernel/acpi/boot.c index 2111529dea77..447fa9e33ffb 100644 --- a/trunk/arch/i386/kernel/acpi/boot.c +++ b/trunk/arch/i386/kernel/acpi/boot.c @@ -108,7 +108,7 @@ char *__acpi_map_table(unsigned long phys_addr, unsigned long size) if (!phys_addr || !size) return NULL; - if (phys_addr+size <= (end_pfn_map << PAGE_SHIFT) + PAGE_SIZE) + if (phys_addr < (end_pfn_map << PAGE_SHIFT)) return __va(phys_addr); return NULL; diff --git a/trunk/arch/i386/kernel/apic.c b/trunk/arch/i386/kernel/apic.c index acd3f1e34ca6..d8f94e78de8a 100644 --- a/trunk/arch/i386/kernel/apic.c +++ b/trunk/arch/i386/kernel/apic.c @@ -26,7 +26,6 @@ #include #include #include -#include #include #include @@ -38,16 +37,9 @@ #include #include -#include #include "io_ports.h" -/* - * cpu_mask that denotes the CPUs that needs timer interrupt coming in as - * IPIs in place of local APIC timers - */ -static cpumask_t timer_bcast_ipi; - /* * Knob to control our willingness to enable the local APIC. */ @@ -100,6 +92,10 @@ void __init apic_intr_init(void) /* Using APIC to generate smp_local_timer_interrupt? */ int using_apic_timer = 0; +static DEFINE_PER_CPU(int, prof_multiplier) = 1; +static DEFINE_PER_CPU(int, prof_old_multiplier) = 1; +static DEFINE_PER_CPU(int, prof_counter) = 1; + static int enabled_via_apicbase; void enable_NMI_through_LVT0 (void * dummy) @@ -939,16 +935,11 @@ void (*wait_timer_tick)(void) __devinitdata = wait_8254_wraparound; static void __setup_APIC_LVTT(unsigned int clocks) { unsigned int lvtt_value, tmp_value, ver; - int cpu = smp_processor_id(); ver = GET_APIC_VERSION(apic_read(APIC_LVR)); lvtt_value = APIC_LVT_TIMER_PERIODIC | LOCAL_TIMER_VECTOR; if (!APIC_INTEGRATED(ver)) lvtt_value |= SET_APIC_TIMER_BASE(APIC_TIMER_BASE_DIV); - - if (cpu_isset(cpu, timer_bcast_ipi)) - lvtt_value |= APIC_LVT_MASKED; - apic_write_around(APIC_LVTT, lvtt_value); /* @@ -1081,7 +1072,7 @@ void __devinit setup_secondary_APIC_clock(void) setup_APIC_timer(calibration_result); } -void disable_APIC_timer(void) +void __devinit disable_APIC_timer(void) { if (using_apic_timer) { unsigned long v; @@ -1093,10 +1084,7 @@ void disable_APIC_timer(void) void enable_APIC_timer(void) { - int cpu = smp_processor_id(); - - if (using_apic_timer && - !cpu_isset(cpu, timer_bcast_ipi)) { + if (using_apic_timer) { unsigned long v; v = apic_read(APIC_LVTT); @@ -1104,31 +1092,33 @@ void enable_APIC_timer(void) } } -void switch_APIC_timer_to_ipi(void *cpumask) +/* + * the frequency of the profiling timer can be changed + * by writing a multiplier value into /proc/profile. + */ +int setup_profiling_timer(unsigned int multiplier) { - cpumask_t mask = *(cpumask_t *)cpumask; - int cpu = smp_processor_id(); - - if (cpu_isset(cpu, mask) && - !cpu_isset(cpu, timer_bcast_ipi)) { - disable_APIC_timer(); - cpu_set(cpu, timer_bcast_ipi); - } -} -EXPORT_SYMBOL(switch_APIC_timer_to_ipi); + int i; -void switch_ipi_to_APIC_timer(void *cpumask) -{ - cpumask_t mask = *(cpumask_t *)cpumask; - int cpu = smp_processor_id(); + /* + * Sanity check. [at least 500 APIC cycles should be + * between APIC interrupts as a rule of thumb, to avoid + * irqs flooding us] + */ + if ( (!multiplier) || (calibration_result/multiplier < 500)) + return -EINVAL; + + /* + * Set the new multiplier for each CPU. CPUs don't start using the + * new values until the next timer interrupt in which they do process + * accounting. At that time they also adjust their APIC timers + * accordingly. + */ + for (i = 0; i < NR_CPUS; ++i) + per_cpu(prof_multiplier, i) = multiplier; - if (cpu_isset(cpu, mask) && - cpu_isset(cpu, timer_bcast_ipi)) { - cpu_clear(cpu, timer_bcast_ipi); - enable_APIC_timer(); - } + return 0; } -EXPORT_SYMBOL(switch_ipi_to_APIC_timer); #undef APIC_DIVISOR @@ -1144,10 +1134,32 @@ EXPORT_SYMBOL(switch_ipi_to_APIC_timer); inline void smp_local_timer_interrupt(struct pt_regs * regs) { + int cpu = smp_processor_id(); + profile_tick(CPU_PROFILING, regs); + if (--per_cpu(prof_counter, cpu) <= 0) { + /* + * The multiplier may have changed since the last time we got + * to this point as a result of the user writing to + * /proc/profile. In this case we need to adjust the APIC + * timer accordingly. + * + * Interrupts are already masked off at this point. + */ + per_cpu(prof_counter, cpu) = per_cpu(prof_multiplier, cpu); + if (per_cpu(prof_counter, cpu) != + per_cpu(prof_old_multiplier, cpu)) { + __setup_APIC_LVTT( + calibration_result/ + per_cpu(prof_counter, cpu)); + per_cpu(prof_old_multiplier, cpu) = + per_cpu(prof_counter, cpu); + } + #ifdef CONFIG_SMP - update_process_times(user_mode_vm(regs)); + update_process_times(user_mode_vm(regs)); #endif + } /* * We take the 'long' return path, and there every subsystem @@ -1194,43 +1206,6 @@ fastcall void smp_apic_timer_interrupt(struct pt_regs *regs) irq_exit(); } -#ifndef CONFIG_SMP -static void up_apic_timer_interrupt_call(struct pt_regs *regs) -{ - int cpu = smp_processor_id(); - - /* - * the NMI deadlock-detector uses this. - */ - per_cpu(irq_stat, cpu).apic_timer_irqs++; - - smp_local_timer_interrupt(regs); -} -#endif - -void smp_send_timer_broadcast_ipi(struct pt_regs *regs) -{ - cpumask_t mask; - - cpus_and(mask, cpu_online_map, timer_bcast_ipi); - if (!cpus_empty(mask)) { -#ifdef CONFIG_SMP - send_IPI_mask(mask, LOCAL_TIMER_VECTOR); -#else - /* - * We can directly call the apic timer interrupt handler - * in UP case. Minus all irq related functions - */ - up_apic_timer_interrupt_call(regs); -#endif - } -} - -int setup_profiling_timer(unsigned int multiplier) -{ - return -EINVAL; -} - /* * This interrupt should _never_ happen with our APIC/SMP architecture */ diff --git a/trunk/arch/i386/kernel/apm.c b/trunk/arch/i386/kernel/apm.c index 05312a8abb8b..9d8827156e54 100644 --- a/trunk/arch/i386/kernel/apm.c +++ b/trunk/arch/i386/kernel/apm.c @@ -219,7 +219,6 @@ #include #include #include -#include #include #include #include diff --git a/trunk/arch/i386/kernel/cpu/amd.c b/trunk/arch/i386/kernel/cpu/amd.c index 333578a4e91a..e7697e077f6b 100644 --- a/trunk/arch/i386/kernel/cpu/amd.c +++ b/trunk/arch/i386/kernel/cpu/amd.c @@ -216,12 +216,6 @@ static void __init init_amd(struct cpuinfo_x86 *c) c->x86_max_cores = 1; } - if (cpuid_eax(0x80000000) >= 0x80000007) { - c->x86_power = cpuid_edx(0x80000007); - if (c->x86_power & (1<<8)) - set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability); - } - #ifdef CONFIG_X86_HT /* * On a AMD dual core setup the lower bits of the APIC id @@ -239,7 +233,6 @@ static void __init init_amd(struct cpuinfo_x86 *c) cpu, c->x86_max_cores, cpu_core_id[cpu]); } #endif - } static unsigned int amd_size_cache(struct cpuinfo_x86 * c, unsigned int size) diff --git a/trunk/arch/i386/kernel/cpu/changelog b/trunk/arch/i386/kernel/cpu/changelog new file mode 100644 index 000000000000..cef76b80a710 --- /dev/null +++ b/trunk/arch/i386/kernel/cpu/changelog @@ -0,0 +1,63 @@ +/* + * Enhanced CPU type detection by Mike Jagdis, Patrick St. Jean + * and Martin Mares, November 1997. + * + * Force Cyrix 6x86(MX) and M II processors to report MTRR capability + * and Cyrix "coma bug" recognition by + * Zoltán Böszörményi February 1999. + * + * Force Centaur C6 processors to report MTRR capability. + * Bart Hartgers , May 1999. + * + * Intel Mobile Pentium II detection fix. Sean Gilley, June 1999. + * + * IDT Winchip tweaks, misc clean ups. + * Dave Jones , August 1999 + * + * Better detection of Centaur/IDT WinChip models. + * Bart Hartgers , August 1999. + * + * Cleaned up cache-detection code + * Dave Jones , October 1999 + * + * Added proper L2 cache detection for Coppermine + * Dragan Stancevic , October 1999 + * + * Added the original array for capability flags but forgot to credit + * myself :) (~1998) Fixed/cleaned up some cpu_model_info and other stuff + * Jauder Ho , January 2000 + * + * Detection for Celeron coppermine, identify_cpu() overhauled, + * and a few other clean ups. + * Dave Jones , April 2000 + * + * Pentium III FXSR, SSE support + * General FPU state handling cleanups + * Gareth Hughes , May 2000 + * + * Added proper Cascades CPU and L2 cache detection for Cascades + * and 8-way type cache happy bunch from Intel:^) + * Dragan Stancevic , May 2000 + * + * Forward port AMD Duron errata T13 from 2.2.17pre + * Dave Jones , August 2000 + * + * Forward port lots of fixes/improvements from 2.2.18pre + * Cyrix III, Pentium IV support. + * Dave Jones , October 2000 + * + * Massive cleanup of CPU detection and bug handling; + * Transmeta CPU detection, + * H. Peter Anvin , November 2000 + * + * VIA C3 Support. + * Dave Jones , March 2001 + * + * AMD Athlon/Duron/Thunderbird bluesmoke support. + * Dave Jones , April 2001. + * + * CacheSize bug workaround updates for AMD, Intel & VIA Cyrix. + * Dave Jones , September, October 2001. + * + */ + diff --git a/trunk/arch/i386/kernel/cpu/common.c b/trunk/arch/i386/kernel/cpu/common.c index 15aee26ec2b6..170400879f44 100644 --- a/trunk/arch/i386/kernel/cpu/common.c +++ b/trunk/arch/i386/kernel/cpu/common.c @@ -204,10 +204,7 @@ static int __devinit have_cpuid_p(void) /* Do minimum CPU detection early. Fields really needed: vendor, cpuid_level, family, model, mask, cache alignment. - The others are not touched to avoid unwanted side effects. - - WARNING: this function is only called on the BP. Don't add code here - that is supposed to run on all CPUs. */ + The others are not touched to avoid unwanted side effects. */ static void __init early_cpu_detect(void) { struct cpuinfo_x86 *c = &boot_cpu_data; @@ -239,6 +236,12 @@ static void __init early_cpu_detect(void) if (cap0 & (1<<19)) c->x86_cache_alignment = ((misc >> 8) & 0xff) * 8; } + + early_intel_workaround(c); + +#ifdef CONFIG_X86_HT + phys_proc_id[smp_processor_id()] = (cpuid_ebx(1) >> 24) & 0xff; +#endif } void __devinit generic_identify(struct cpuinfo_x86 * c) @@ -286,12 +289,6 @@ void __devinit generic_identify(struct cpuinfo_x86 * c) get_model_name(c); /* Default name */ } } - - early_intel_workaround(c); - -#ifdef CONFIG_X86_HT - phys_proc_id[smp_processor_id()] = (cpuid_ebx(1) >> 24) & 0xff; -#endif } static void __devinit squash_the_stupid_serial_number(struct cpuinfo_x86 *c) diff --git a/trunk/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c b/trunk/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c index 7975e79d5fa4..871366b83b3f 100644 --- a/trunk/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c +++ b/trunk/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c @@ -40,6 +40,8 @@ #include #include +#include "speedstep-est-common.h" + #define dprintk(msg...) cpufreq_debug_printk(CPUFREQ_DEBUG_DRIVER, "acpi-cpufreq", msg) MODULE_AUTHOR("Paul Diefenbaugh, Dominik Brodowski"); @@ -365,7 +367,6 @@ acpi_cpufreq_cpu_init ( unsigned int cpu = policy->cpu; struct cpufreq_acpi_io *data; unsigned int result = 0; - struct cpuinfo_x86 *c = &cpu_data[policy->cpu]; union acpi_object arg0 = {ACPI_TYPE_BUFFER}; u32 arg0_buf[3]; @@ -389,7 +390,7 @@ acpi_cpufreq_cpu_init ( if (result) goto err_free; - if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) { + if (is_const_loops_cpu(cpu)) { acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS; } diff --git a/trunk/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c b/trunk/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c index 9a826cde4fd1..edb9873e27e3 100644 --- a/trunk/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c +++ b/trunk/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c @@ -35,6 +35,8 @@ #include #include +#include "speedstep-est-common.h" + #define PFX "speedstep-centrino: " #define MAINTAINER "Jeremy Fitzhardinge " @@ -491,13 +493,12 @@ static int centrino_cpu_init(struct cpufreq_policy *policy) unsigned l, h; int ret; int i; - struct cpuinfo_x86 *c = &cpu_data[policy->cpu]; /* Only Intel makes Enhanced Speedstep-capable CPUs */ if (cpu->x86_vendor != X86_VENDOR_INTEL || !cpu_has(cpu, X86_FEATURE_EST)) return -ENODEV; - if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) { + if (is_const_loops_cpu(policy->cpu)) { centrino_driver.flags |= CPUFREQ_CONST_LOOPS; } diff --git a/trunk/arch/i386/kernel/cpu/cpufreq/speedstep-est-common.h b/trunk/arch/i386/kernel/cpu/cpufreq/speedstep-est-common.h new file mode 100644 index 000000000000..5ce995c9d866 --- /dev/null +++ b/trunk/arch/i386/kernel/cpu/cpufreq/speedstep-est-common.h @@ -0,0 +1,25 @@ +/* + * Routines common for drivers handling Enhanced Speedstep Technology + * Copyright (C) 2004 Venkatesh Pallipadi + * + * Licensed under the terms of the GNU GPL License version 2 -- see + * COPYING for details. + */ + +static inline int is_const_loops_cpu(unsigned int cpu) +{ + struct cpuinfo_x86 *c = cpu_data + cpu; + + if (c->x86_vendor != X86_VENDOR_INTEL || !cpu_has(c, X86_FEATURE_EST)) + return 0; + + /* + * on P-4s, the TSC runs with constant frequency independent of cpu freq + * when we use EST + */ + if (c->x86 == 0xf) + return 1; + + return 0; +} + diff --git a/trunk/arch/i386/kernel/cpu/intel.c b/trunk/arch/i386/kernel/cpu/intel.c index 8c0120186b9f..5e2da704f0fa 100644 --- a/trunk/arch/i386/kernel/cpu/intel.c +++ b/trunk/arch/i386/kernel/cpu/intel.c @@ -183,13 +183,10 @@ static void __devinit init_intel(struct cpuinfo_x86 *c) } #endif - if (c->x86 == 15) + if (c->x86 == 15) set_bit(X86_FEATURE_P4, c->x86_capability); if (c->x86 == 6) set_bit(X86_FEATURE_P3, c->x86_capability); - if ((c->x86 == 0xf && c->x86_model >= 0x03) || - (c->x86 == 0x6 && c->x86_model >= 0x0e)) - set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability); } diff --git a/trunk/arch/i386/kernel/cpu/mtrr/changelog b/trunk/arch/i386/kernel/cpu/mtrr/changelog new file mode 100644 index 000000000000..af1368535955 --- /dev/null +++ b/trunk/arch/i386/kernel/cpu/mtrr/changelog @@ -0,0 +1,229 @@ + ChangeLog + + Prehistory Martin Tischhäuser + Initial register-setting code (from proform-1.0). + 19971216 Richard Gooch + Original version for /proc/mtrr interface, SMP-safe. + v1.0 + 19971217 Richard Gooch + Bug fix for ioctls()'s. + Added sample code in Documentation/mtrr.txt + v1.1 + 19971218 Richard Gooch + Disallow overlapping regions. + 19971219 Jens Maurer + Register-setting fixups. + v1.2 + 19971222 Richard Gooch + Fixups for kernel 2.1.75. + v1.3 + 19971229 David Wragg + Register-setting fixups and conformity with Intel conventions. + 19971229 Richard Gooch + Cosmetic changes and wrote this ChangeLog ;-) + 19980106 Richard Gooch + Fixups for kernel 2.1.78. + v1.4 + 19980119 David Wragg + Included passive-release enable code (elsewhere in PCI setup). + v1.5 + 19980131 Richard Gooch + Replaced global kernel lock with private spinlock. + v1.6 + 19980201 Richard Gooch + Added wait for other CPUs to complete changes. + v1.7 + 19980202 Richard Gooch + Bug fix in definition of for UP. + v1.8 + 19980319 Richard Gooch + Fixups for kernel 2.1.90. + 19980323 Richard Gooch + Move SMP BIOS fixup before secondary CPUs call + v1.9 + 19980325 Richard Gooch + Fixed test for overlapping regions: confused by adjacent regions + 19980326 Richard Gooch + Added wbinvd in . + 19980401 Richard Gooch + Bug fix for non-SMP compilation. + 19980418 David Wragg + Fixed-MTRR synchronisation for SMP and use atomic operations + instead of spinlocks. + 19980418 Richard Gooch + Differentiate different MTRR register classes for BIOS fixup. + v1.10 + 19980419 David Wragg + Bug fix in variable MTRR synchronisation. + v1.11 + 19980419 Richard Gooch + Fixups for kernel 2.1.97. + v1.12 + 19980421 Richard Gooch + Safer synchronisation across CPUs when changing MTRRs. + v1.13 + 19980423 Richard Gooch + Bugfix for SMP systems without MTRR support. + v1.14 + 19980427 Richard Gooch + Trap calls to and on non-MTRR machines. + v1.15 + 19980427 Richard Gooch + Use atomic bitops for setting SMP change mask. + v1.16 + 19980428 Richard Gooch + Removed spurious diagnostic message. + v1.17 + 19980429 Richard Gooch + Moved register-setting macros into this file. + Moved setup code from init/main.c to i386-specific areas. + v1.18 + 19980502 Richard Gooch + Moved MTRR detection outside conditionals in . + v1.19 + 19980502 Richard Gooch + Documentation improvement: mention Pentium II and AGP. + v1.20 + 19980521 Richard Gooch + Only manipulate interrupt enable flag on local CPU. + Allow enclosed uncachable regions. + v1.21 + 19980611 Richard Gooch + Always define . + v1.22 + 19980901 Richard Gooch + Removed module support in order to tidy up code. + Added sanity check for / before . + Created addition queue for prior to SMP commence. + v1.23 + 19980902 Richard Gooch + Ported patch to kernel 2.1.120-pre3. + v1.24 + 19980910 Richard Gooch + Removed sanity checks and addition queue: Linus prefers an OOPS. + v1.25 + 19981001 Richard Gooch + Fixed harmless compiler warning in include/asm-i386/mtrr.h + Fixed version numbering and history for v1.23 -> v1.24. + v1.26 + 19990118 Richard Gooch + Added devfs support. + v1.27 + 19990123 Richard Gooch + Changed locking to spin with reschedule. + Made use of new . + v1.28 + 19990201 Zoltán Böszörményi + Extended the driver to be able to use Cyrix style ARRs. + 19990204 Richard Gooch + Restructured Cyrix support. + v1.29 + 19990204 Zoltán Böszörményi + Refined ARR support: enable MAPEN in set_mtrr_prepare() + and disable MAPEN in set_mtrr_done(). + 19990205 Richard Gooch + Minor cleanups. + v1.30 + 19990208 Zoltán Böszörményi + Protect plain 6x86s (and other processors without the + Page Global Enable feature) against accessing CR4 in + set_mtrr_prepare() and set_mtrr_done(). + 19990210 Richard Gooch + Turned and into function pointers. + v1.31 + 19990212 Zoltán Böszörményi + Major rewrite of cyrix_arr_init(): do not touch ARRs, + leave them as the BIOS have set them up. + Enable usage of all 8 ARRs. + Avoid multiplications by 3 everywhere and other + code clean ups/speed ups. + 19990213 Zoltán Böszörményi + Set up other Cyrix processors identical to the boot cpu. + Since Cyrix don't support Intel APIC, this is l'art pour l'art. + Weigh ARRs by size: + If size <= 32M is given, set up ARR# we were given. + If size > 32M is given, set up ARR7 only if it is free, + fail otherwise. + 19990214 Zoltán Böszörményi + Also check for size >= 256K if we are to set up ARR7, + mtrr_add() returns the value it gets from set_mtrr() + 19990218 Zoltán Böszörményi + Remove Cyrix "coma bug" workaround from here. + Moved to linux/arch/i386/kernel/setup.c and + linux/include/asm-i386/bugs.h + 19990228 Richard Gooch + Added MTRRIOC_KILL_ENTRY ioctl(2) + Trap for counter underflow in . + Trap for 4 MiB aligned regions for PPro, stepping <= 7. + 19990301 Richard Gooch + Created hook. + 19990305 Richard Gooch + Temporarily disable AMD support now MTRR capability flag is set. + v1.32 + 19990308 Zoltán Böszörményi + Adjust my changes (19990212-19990218) to Richard Gooch's + latest changes. (19990228-19990305) + v1.33 + 19990309 Richard Gooch + Fixed typo in message. + 19990310 Richard Gooch + Support K6-II/III based on Alan Cox's patches. + v1.34 + 19990511 Bart Hartgers + Support Centaur C6 MCR's. + 19990512 Richard Gooch + Minor cleanups. + v1.35 + 19990707 Zoltán Böszörményi + Check whether ARR3 is protected in cyrix_get_free_region() + and mtrr_del(). The code won't attempt to delete or change it + from now on if the BIOS protected ARR3. It silently skips ARR3 + in cyrix_get_free_region() or returns with an error code from + mtrr_del(). + 19990711 Zoltán Böszörményi + Reset some bits in the CCRs in cyrix_arr_init() to disable SMM + if ARR3 isn't protected. This is needed because if SMM is active + and ARR3 isn't protected then deleting and setting ARR3 again + may lock up the processor. With SMM entirely disabled, it does + not happen. + 19990812 Zoltán Böszörményi + Rearrange switch() statements so the driver accomodates to + the fact that the AMD Athlon handles its MTRRs the same way + as Intel does. + 19990814 Zoltán Böszörményi + Double check for Intel in mtrr_add()'s big switch() because + that revision check is only valid for Intel CPUs. + 19990819 Alan Cox + Tested Zoltan's changes on a pre production Athlon - 100% + success. + 19991008 Manfred Spraul + replaced spin_lock_reschedule() with a normal semaphore. + v1.36 + 20000221 Richard Gooch + Compile fix if procfs and devfs not enabled. + Formatting changes. + v1.37 + 20001109 H. Peter Anvin + Use the new centralized CPU feature detects. + + v1.38 + 20010309 Dave Jones + Add support for Cyrix III. + + v1.39 + 20010312 Dave Jones + Ugh, I broke AMD support. + Reworked fix by Troels Walsted Hansen + + v1.40 + 20010327 Dave Jones + Adapted Cyrix III support to include VIA C3. + + v2.0 + 20020306 Patrick Mochel + Split mtrr.c -> mtrr/*.c + Converted to Linux Kernel Coding Style + Fixed several minor nits in form + Moved some SMP-only functions out, so they can be used + for power management in the future. + TODO: Fix user interface cruft. diff --git a/trunk/arch/i386/kernel/cpu/mtrr/if.c b/trunk/arch/i386/kernel/cpu/mtrr/if.c index 5ac051bb9d55..cf39e205d33c 100644 --- a/trunk/arch/i386/kernel/cpu/mtrr/if.c +++ b/trunk/arch/i386/kernel/cpu/mtrr/if.c @@ -1,6 +1,5 @@ #include #include -#include #include #include #include diff --git a/trunk/arch/i386/kernel/cpu/proc.c b/trunk/arch/i386/kernel/cpu/proc.c index 89a85af33d28..6d91b274589c 100644 --- a/trunk/arch/i386/kernel/cpu/proc.c +++ b/trunk/arch/i386/kernel/cpu/proc.c @@ -29,7 +29,7 @@ static int show_cpuinfo(struct seq_file *m, void *v) NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "syscall", NULL, NULL, NULL, NULL, NULL, NULL, NULL, "mp", "nx", NULL, "mmxext", NULL, - NULL, "fxsr_opt", "rdtscp", NULL, NULL, "lm", "3dnowext", "3dnow", + NULL, "fxsr_opt", NULL, NULL, NULL, "lm", "3dnowext", "3dnow", /* Transmeta-defined */ "recovery", "longrun", NULL, "lrti", NULL, NULL, NULL, NULL, @@ -40,7 +40,7 @@ static int show_cpuinfo(struct seq_file *m, void *v) /* Other (Linux-defined) */ "cxmmx", "k6_mtrr", "cyrix_arr", "centaur_mcr", NULL, NULL, NULL, NULL, - "constant_tsc", NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @@ -57,21 +57,11 @@ static int show_cpuinfo(struct seq_file *m, void *v) NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* AMD-defined (#2) */ - "lahf_lm", "cmp_legacy", "svm", NULL, "cr8legacy", NULL, NULL, NULL, + "lahf_lm", "cmp_legacy", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, }; - static char *x86_power_flags[] = { - "ts", /* temperature sensor */ - "fid", /* frequency id control */ - "vid", /* voltage id control */ - "ttp", /* thermal trip */ - "tm", - "stc", - NULL, - /* nothing */ /* constant_tsc - moved to flags */ - }; struct cpuinfo_x86 *c = v; int i, n = c - cpu_data; int fpu_exception; @@ -141,17 +131,6 @@ static int show_cpuinfo(struct seq_file *m, void *v) x86_cap_flags[i] != NULL ) seq_printf(m, " %s", x86_cap_flags[i]); - for (i = 0; i < 32; i++) - if (c->x86_power & (1 << i)) { - if (i < ARRAY_SIZE(x86_power_flags) && - x86_power_flags[i]) - seq_printf(m, "%s%s", - x86_power_flags[i][0]?" ":"", - x86_power_flags[i]); - else - seq_printf(m, " [%d]", i); - } - seq_printf(m, "\nbogomips\t: %lu.%02lu\n\n", c->loops_per_jiffy/(500000/HZ), (c->loops_per_jiffy/(5000/HZ)) % 100); diff --git a/trunk/arch/i386/kernel/crash.c b/trunk/arch/i386/kernel/crash.c index d49dbe8dc96b..0248e084017c 100644 --- a/trunk/arch/i386/kernel/crash.c +++ b/trunk/arch/i386/kernel/crash.c @@ -25,6 +25,7 @@ #include +note_buf_t crash_notes[NR_CPUS]; /* This keeps a track of which one is crashing cpu. */ static int crashing_cpu; @@ -71,9 +72,7 @@ static void crash_save_this_cpu(struct pt_regs *regs, int cpu) * squirrelled away. ELF notes happen to provide * all of that that no need to invent something new. */ - buf = (u32*)per_cpu_ptr(crash_notes, cpu); - if (!buf) - return; + buf = &crash_notes[cpu][0]; memset(&prstatus, 0, sizeof(prstatus)); prstatus.pr_pid = current->pid; elf_core_copy_regs(&prstatus.pr_reg, regs); @@ -82,12 +81,51 @@ static void crash_save_this_cpu(struct pt_regs *regs, int cpu) final_note(buf); } -static void crash_save_self(struct pt_regs *regs) +static void crash_get_current_regs(struct pt_regs *regs) +{ + __asm__ __volatile__("movl %%ebx,%0" : "=m"(regs->ebx)); + __asm__ __volatile__("movl %%ecx,%0" : "=m"(regs->ecx)); + __asm__ __volatile__("movl %%edx,%0" : "=m"(regs->edx)); + __asm__ __volatile__("movl %%esi,%0" : "=m"(regs->esi)); + __asm__ __volatile__("movl %%edi,%0" : "=m"(regs->edi)); + __asm__ __volatile__("movl %%ebp,%0" : "=m"(regs->ebp)); + __asm__ __volatile__("movl %%eax,%0" : "=m"(regs->eax)); + __asm__ __volatile__("movl %%esp,%0" : "=m"(regs->esp)); + __asm__ __volatile__("movw %%ss, %%ax;" :"=a"(regs->xss)); + __asm__ __volatile__("movw %%cs, %%ax;" :"=a"(regs->xcs)); + __asm__ __volatile__("movw %%ds, %%ax;" :"=a"(regs->xds)); + __asm__ __volatile__("movw %%es, %%ax;" :"=a"(regs->xes)); + __asm__ __volatile__("pushfl; popl %0" :"=m"(regs->eflags)); + + regs->eip = (unsigned long)current_text_addr(); +} + +/* CPU does not save ss and esp on stack if execution is already + * running in kernel mode at the time of NMI occurrence. This code + * fixes it. + */ +static void crash_setup_regs(struct pt_regs *newregs, struct pt_regs *oldregs) +{ + memcpy(newregs, oldregs, sizeof(*newregs)); + newregs->esp = (unsigned long)&(oldregs->esp); + __asm__ __volatile__("xorl %eax, %eax;"); + __asm__ __volatile__ ("movw %%ss, %%ax;" :"=a"(newregs->xss)); +} + +/* We may have saved_regs from where the error came from + * or it is NULL if via a direct panic(). + */ +static void crash_save_self(struct pt_regs *saved_regs) { + struct pt_regs regs; int cpu; cpu = smp_processor_id(); - crash_save_this_cpu(regs, cpu); + if (saved_regs) + crash_setup_regs(®s, saved_regs); + else + crash_get_current_regs(®s); + crash_save_this_cpu(®s, cpu); } #ifdef CONFIG_SMP @@ -106,7 +144,7 @@ static int crash_nmi_callback(struct pt_regs *regs, int cpu) local_irq_disable(); if (!user_mode(regs)) { - crash_fixup_ss_esp(&fixed_regs, regs); + crash_setup_regs(&fixed_regs, regs); regs = &fixed_regs; } crash_save_this_cpu(regs, cpu); diff --git a/trunk/arch/i386/kernel/crash_dump.c b/trunk/arch/i386/kernel/crash_dump.c deleted file mode 100644 index 3f532df488bc..000000000000 --- a/trunk/arch/i386/kernel/crash_dump.c +++ /dev/null @@ -1,74 +0,0 @@ -/* - * kernel/crash_dump.c - Memory preserving reboot related code. - * - * Created by: Hariprasad Nellitheertha (hari@in.ibm.com) - * Copyright (C) IBM Corporation, 2004. All rights reserved - */ - -#include -#include -#include - -#include - -static void *kdump_buf_page; - -/** - * copy_oldmem_page - copy one page from "oldmem" - * @pfn: page frame number to be copied - * @buf: target memory address for the copy; this can be in kernel address - * space or user address space (see @userbuf) - * @csize: number of bytes to copy - * @offset: offset in bytes into the page (based on pfn) to begin the copy - * @userbuf: if set, @buf is in user address space, use copy_to_user(), - * otherwise @buf is in kernel address space, use memcpy(). - * - * Copy a page from "oldmem". For this page, there is no pte mapped - * in the current kernel. We stitch up a pte, similar to kmap_atomic. - * - * Calling copy_to_user() in atomic context is not desirable. Hence first - * copying the data to a pre-allocated kernel page and then copying to user - * space in non-atomic context. - */ -ssize_t copy_oldmem_page(unsigned long pfn, char *buf, - size_t csize, unsigned long offset, int userbuf) -{ - void *vaddr; - - if (!csize) - return 0; - - vaddr = kmap_atomic_pfn(pfn, KM_PTE0); - - if (!userbuf) { - memcpy(buf, (vaddr + offset), csize); - kunmap_atomic(vaddr, KM_PTE0); - } else { - if (!kdump_buf_page) { - printk(KERN_WARNING "Kdump: Kdump buffer page not" - " allocated\n"); - return -EFAULT; - } - copy_page(kdump_buf_page, vaddr); - kunmap_atomic(vaddr, KM_PTE0); - if (copy_to_user(buf, (kdump_buf_page + offset), csize)) - return -EFAULT; - } - - return csize; -} - -static int __init kdump_buf_page_init(void) -{ - int ret = 0; - - kdump_buf_page = kmalloc(PAGE_SIZE, GFP_KERNEL); - if (!kdump_buf_page) { - printk(KERN_WARNING "Kdump: Failed to allocate kdump buffer" - " page\n"); - ret = -ENOMEM; - } - - return ret; -} -arch_initcall(kdump_buf_page_init); diff --git a/trunk/arch/i386/kernel/dmi_scan.c b/trunk/arch/i386/kernel/dmi_scan.c index 6a93d75db431..58516e2ac172 100644 --- a/trunk/arch/i386/kernel/dmi_scan.c +++ b/trunk/arch/i386/kernel/dmi_scan.c @@ -4,7 +4,7 @@ #include #include #include -#include + static char * __init dmi_string(struct dmi_header *dm, u8 s) { @@ -19,7 +19,7 @@ static char * __init dmi_string(struct dmi_header *dm, u8 s) } if (*bp != 0) { - str = dmi_alloc(strlen(bp) + 1); + str = alloc_bootmem(strlen(bp) + 1); if (str != NULL) strcpy(str, bp); else @@ -40,7 +40,7 @@ static int __init dmi_table(u32 base, int len, int num, u8 *buf, *data; int i = 0; - buf = dmi_ioremap(base, len); + buf = bt_ioremap(base, len); if (buf == NULL) return -1; @@ -65,7 +65,7 @@ static int __init dmi_table(u32 base, int len, int num, data += 2; i++; } - dmi_iounmap(buf, len); + bt_iounmap(buf, len); return 0; } @@ -112,7 +112,7 @@ static void __init dmi_save_devices(struct dmi_header *dm) if ((*d & 0x80) == 0) continue; - dev = dmi_alloc(sizeof(*dev)); + dev = alloc_bootmem(sizeof(*dev)); if (!dev) { printk(KERN_ERR "dmi_save_devices: out of memory.\n"); break; @@ -131,7 +131,7 @@ static void __init dmi_save_ipmi_device(struct dmi_header *dm) struct dmi_device *dev; void * data; - data = dmi_alloc(dm->length); + data = alloc_bootmem(dm->length); if (data == NULL) { printk(KERN_ERR "dmi_save_ipmi_device: out of memory.\n"); return; @@ -139,7 +139,7 @@ static void __init dmi_save_ipmi_device(struct dmi_header *dm) memcpy(data, dm, dm->length); - dev = dmi_alloc(sizeof(*dev)); + dev = alloc_bootmem(sizeof(*dev)); if (!dev) { printk(KERN_ERR "dmi_save_ipmi_device: out of memory.\n"); return; @@ -221,7 +221,7 @@ void __init dmi_scan_machine(void) } } -out: printk(KERN_INFO "DMI not present or invalid.\n"); +out: printk(KERN_INFO "DMI not present.\n"); } diff --git a/trunk/arch/i386/kernel/io_apic.c b/trunk/arch/i386/kernel/io_apic.c index f2dd218d88cb..7554f8fd874a 100644 --- a/trunk/arch/i386/kernel/io_apic.c +++ b/trunk/arch/i386/kernel/io_apic.c @@ -1649,7 +1649,7 @@ static void __init enable_IO_APIC(void) for(apic = 0; apic < nr_ioapics; apic++) { int pin; /* See if any of the pins is in ExtINT mode */ - for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) { + for(pin = 0; pin < nr_ioapic_registers[i]; pin++) { struct IO_APIC_route_entry entry; spin_lock_irqsave(&ioapic_lock, flags); *(((int *)&entry) + 0) = io_apic_read(apic, 0x10 + 2 * pin); diff --git a/trunk/arch/i386/kernel/ioport.c b/trunk/arch/i386/kernel/ioport.c index 79026f026b85..b59a34dbe262 100644 --- a/trunk/arch/i386/kernel/ioport.c +++ b/trunk/arch/i386/kernel/ioport.c @@ -7,7 +7,6 @@ #include #include -#include #include #include #include diff --git a/trunk/arch/i386/kernel/kprobes.c b/trunk/arch/i386/kernel/kprobes.c index 6483eeb1a4e8..19edcd526ba4 100644 --- a/trunk/arch/i386/kernel/kprobes.c +++ b/trunk/arch/i386/kernel/kprobes.c @@ -57,10 +57,14 @@ static inline int is_IF_modifier(kprobe_opcode_t opcode) } int __kprobes arch_prepare_kprobe(struct kprobe *p) +{ + return 0; +} + +void __kprobes arch_copy_kprobe(struct kprobe *p) { memcpy(p->ainsn.insn, p->addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t)); p->opcode = *p->addr; - return 0; } void __kprobes arch_arm_kprobe(struct kprobe *p) @@ -77,6 +81,10 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) (unsigned long) p->addr + sizeof(kprobe_opcode_t)); } +void __kprobes arch_remove_kprobe(struct kprobe *p) +{ +} + static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) { kcb->prev_kprobe.kp = kprobe_running(); @@ -188,19 +196,6 @@ static int __kprobes kprobe_handler(struct pt_regs *regs) kcb->kprobe_status = KPROBE_REENTER; return 1; } else { - if (regs->eflags & VM_MASK) { - /* We are in virtual-8086 mode. Return 0 */ - goto no_kprobe; - } - if (*addr != BREAKPOINT_INSTRUCTION) { - /* The breakpoint instruction was removed by - * another cpu right after we hit, no further - * handling of this interrupt is appropriate - */ - regs->eip -= sizeof(kprobe_opcode_t); - ret = 1; - goto no_kprobe; - } p = __get_cpu_var(current_kprobe); if (p->break_handler && p->break_handler(p, regs)) { goto ss_probe; diff --git a/trunk/arch/i386/kernel/microcode.c b/trunk/arch/i386/kernel/microcode.c index d3fdf0057d82..165f13158c60 100644 --- a/trunk/arch/i386/kernel/microcode.c +++ b/trunk/arch/i386/kernel/microcode.c @@ -70,7 +70,6 @@ */ //#define DEBUG /* pr_debug */ -#include #include #include #include @@ -166,7 +165,7 @@ static void collect_cpu_info (void *unused) wrmsr(MSR_IA32_UCODE_REV, 0, 0); /* see notes above for revision 1.07. Apparent chip bug */ - sync_core(); + serialize_cpu(); /* get the current revision from MSR 0x8B */ rdmsr(MSR_IA32_UCODE_REV, val[0], uci->rev); pr_debug("microcode: collect_cpu_info : sig=0x%x, pf=0x%x, rev=0x%x\n", @@ -380,7 +379,7 @@ static void do_update_one (void * unused) wrmsr(MSR_IA32_UCODE_REV, 0, 0); /* see notes above for revision 1.07. Apparent chip bug */ - sync_core(); + serialize_cpu(); /* get the current revision from MSR 0x8B */ rdmsr(MSR_IA32_UCODE_REV, val[0], val[1]); diff --git a/trunk/arch/i386/kernel/process.c b/trunk/arch/i386/kernel/process.c index 2185377fdde1..035928f3f6c1 100644 --- a/trunk/arch/i386/kernel/process.c +++ b/trunk/arch/i386/kernel/process.c @@ -424,7 +424,18 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long esp, struct task_struct *tsk; int err; - childregs = task_pt_regs(p); + childregs = ((struct pt_regs *) (THREAD_SIZE + (unsigned long) p->thread_info)) - 1; + /* + * The below -8 is to reserve 8 bytes on top of the ring0 stack. + * This is necessary to guarantee that the entire "struct pt_regs" + * is accessable even if the CPU haven't stored the SS/ESP registers + * on the stack (interrupt gate does not save these registers + * when switching to the same priv ring). + * Therefore beware: accessing the xss/esp fields of the + * "struct pt_regs" is possible, but they may contain the + * completely wrong values. + */ + childregs = (struct pt_regs *) ((unsigned long) childregs - 8); *childregs = *regs; childregs->eax = 0; childregs->esp = esp; @@ -529,7 +540,12 @@ EXPORT_SYMBOL(dump_thread); */ int dump_task_regs(struct task_struct *tsk, elf_gregset_t *regs) { - struct pt_regs ptregs = *task_pt_regs(tsk); + struct pt_regs ptregs; + + ptregs = *(struct pt_regs *) + ((unsigned long)tsk->thread_info + + /* see comments in copy_thread() about -8 */ + THREAD_SIZE - sizeof(ptregs) - 8); ptregs.xcs &= 0xffff; ptregs.xds &= 0xffff; ptregs.xes &= 0xffff; @@ -585,8 +601,8 @@ static inline void disable_tsc(struct task_struct *prev_p, * gcc should eliminate the ->thread_info dereference if * has_secure_computing returns 0 at compile time (SECCOMP=n). */ - prev = task_thread_info(prev_p); - next = task_thread_info(next_p); + prev = prev_p->thread_info; + next = next_p->thread_info; if (has_secure_computing(prev) || has_secure_computing(next)) { /* slow path here */ @@ -771,7 +787,7 @@ unsigned long get_wchan(struct task_struct *p) int count = 0; if (!p || p == current || p->state == TASK_RUNNING) return 0; - stack_page = (unsigned long)task_stack_page(p); + stack_page = (unsigned long)p->thread_info; esp = p->thread.esp; if (!stack_page || esp < stack_page || esp > top_esp+stack_page) return 0; diff --git a/trunk/arch/i386/kernel/reboot.c b/trunk/arch/i386/kernel/reboot.c index d207242976d3..2fa5803a759d 100644 --- a/trunk/arch/i386/kernel/reboot.c +++ b/trunk/arch/i386/kernel/reboot.c @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -356,10 +355,10 @@ void machine_halt(void) void machine_power_off(void) { - if (pm_power_off) { - machine_shutdown(); + machine_shutdown(); + + if (pm_power_off) pm_power_off(); - } } diff --git a/trunk/arch/i386/kernel/scx200.c b/trunk/arch/i386/kernel/scx200.c index 321f5fd26e75..9c968ae67c43 100644 --- a/trunk/arch/i386/kernel/scx200.c +++ b/trunk/arch/i386/kernel/scx200.c @@ -143,7 +143,7 @@ static int __init scx200_init(void) { printk(KERN_INFO NAME ": NatSemi SCx200 Driver\n"); - return pci_register_driver(&scx200_pci_driver); + return pci_module_init(&scx200_pci_driver); } static void __exit scx200_cleanup(void) diff --git a/trunk/arch/i386/kernel/setup.c b/trunk/arch/i386/kernel/setup.c index 51e513b4f72d..27c956db0461 100644 --- a/trunk/arch/i386/kernel/setup.c +++ b/trunk/arch/i386/kernel/setup.c @@ -45,7 +45,6 @@ #include #include #include -#include #include